1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
\r
2 * File Name : 75x_SSP.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 03/10/2006
\r
5 * Description : This file contains all the functions prototypes for the
\r
6 * SSP software library.
\r
7 ********************************************************************************
\r
10 * 03/10/2006 : V0.1
\r
11 ********************************************************************************
\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
18 *******************************************************************************/
\r
20 /* Define to prevent recursive inclusion -------------------------------------*/
\r
24 /* Includes ------------------------------------------------------------------*/
\r
25 #include "75x_map.h"
\r
27 /* Exported types ------------------------------------------------------------*/
\r
28 /* SSP Init structure definition */
\r
31 u16 SSP_FrameFormat;
\r
37 u16 SSP_SlaveOutput;
\r
39 u8 SSP_ClockPrescaler;
\r
42 /* Exported constants --------------------------------------------------------*/
\r
43 /* SSP Frame Format Select */
\r
44 #define SSP_FrameFormat_TI 0x0010
\r
45 #define SSP_FrameFormat_Motorola 0xFFCF
\r
47 /* SSP Master/Slave Select */
\r
48 #define SSP_Mode_Master 0xFFFB
\r
49 #define SSP_Mode_Slave 0x0004
\r
51 /* SSP Clock Polarity */
\r
52 #define SSP_CPOL_Low 0xFFBF
\r
53 #define SSP_CPOL_High 0x0040
\r
55 /* SSP Clock Phase */
\r
56 #define SSP_CPHA_1Edge 0xFF7F
\r
57 #define SSP_CPHA_2Edge 0x0080
\r
60 #define SSP_DataSize_16b 0x000F
\r
61 #define SSP_DataSize_15b 0x000E
\r
62 #define SSP_DataSize_14b 0x000D
\r
63 #define SSP_DataSize_13b 0x000C
\r
64 #define SSP_DataSize_12b 0x000B
\r
65 #define SSP_DataSize_11b 0x000A
\r
66 #define SSP_DataSize_10b 0x0009
\r
67 #define SSP_DataSize_9b 0x0008
\r
68 #define SSP_DataSize_8b 0x0007
\r
69 #define SSP_DataSize_7b 0x0006
\r
70 #define SSP_DataSize_6b 0x0005
\r
71 #define SSP_DataSize_5b 0x0004
\r
72 #define SSP_DataSize_4b 0x0003
\r
74 /* SSP Slave Select management config */
\r
75 #define SSP_NSS_Hard 0xFFEF
\r
76 #define SSP_NSS_Soft 0x0010
\r
78 /* SSP NSS internal config */
\r
79 #define SSP_NSSInternal_Set 0x0020
\r
80 #define SSP_NSSInternal_Reset 0xFFDF
\r
82 /* SSP Slave output config */
\r
83 #define SSP_SlaveOutput_Enable 0xFFF7
\r
84 #define SSP_SlaveOutput_Disable 0x0008
\r
86 /* SSP Interrupts */
\r
87 #define SSP_IT_TxFifo 0x0008
\r
88 #define SSP_IT_RxFifo 0x0004
\r
89 #define SSP_IT_RxTimeOut 0x0002
\r
90 #define SSP_IT_RxOverrun 0x0001
\r
93 #define SSP_FLAG_Busy 0x0024
\r
94 #define SSP_FLAG_RxFifoFull 0x0023
\r
95 #define SSP_FLAG_RxFifoNotEmpty 0x0022
\r
96 #define SSP_FLAG_TxFifoNotFull 0x0021
\r
97 #define SSP_FLAG_TxFifoEmpty 0x0020
\r
98 #define SSP_FLAG_TxFifo 0x0043
\r
99 #define SSP_FLAG_RxFifo 0x0042
\r
100 #define SSP_FLAG_RxTimeOut 0x0041
\r
101 #define SSP_FLAG_RxOverrun 0x0040
\r
103 /* SSP DMA Requests */
\r
104 #define SSP0_DMA_Transmit 0x0002
\r
105 #define SSP0_DMA_Receive 0x0001
\r
107 #define SSP0_DMATxReq_Single 0xFFF7
\r
108 #define SSP0_DMATxReq_Burst 0x0008
\r
110 #define SSP0_DMARxReq_Single 0xFFFB
\r
111 #define SSP0_DMARxReq_Burst 0x0004
\r
113 /* Exported macro ------------------------------------------------------------*/
\r
114 /* Exported functions ------------------------------------------------------- */
\r
116 void SSP_DeInit(SSP_TypeDef* SSPx);
\r
117 void SSP_Init(SSP_TypeDef* SSPx, SSP_InitTypeDef* SSP_InitStruct);
\r
118 void SSP_StructInit(SSP_InitTypeDef* SSP_InitStruct);
\r
119 void SSP_Cmd(SSP_TypeDef* SSPx, FunctionalState NewState);
\r
120 void SSP_ITConfig(SSP_TypeDef* SSPx, u16 SSP_IT, FunctionalState NewState);
\r
121 void SSP_DMACmd(u16 SSP0_DMAtransfer, FunctionalState NewState);
\r
122 void SSP_DMATxConfig(u16 SSP0_DMATxReq);
\r
123 void SSP_DMARxConfig(u16 SSP0_DMARxReq);
\r
124 void SSP_SendData(SSP_TypeDef* SSPx, u16 Data);
\r
125 u16 SSP_ReceiveData(SSP_TypeDef* SSPx);
\r
126 void SSP_LoopBackConfig(SSP_TypeDef* SSPx, FunctionalState NewState);
\r
127 void SSP_NSSInternalConfig(SSP_TypeDef* SSPx, u16 SSP_NSSState);
\r
128 FlagStatus SSP_GetFlagStatus(SSP_TypeDef* SSPx, u16 SSP_FLAG);
\r
129 void SSP_ClearFlag(SSP_TypeDef* SSPx, u16 SSP_FLAG);
\r
130 ITStatus SSP_GetITStatus(SSP_TypeDef* SSPx, u16 SSP_IT);
\r
131 void SSP_ClearITPendingBit(SSP_TypeDef* SSPx, u16 SSP_IT);
\r
133 #endif /* __75x_SSP_H */
\r
135 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
\r