/******************** (C) COPYRIGHT 2006 STMicroelectronics ******************** | |
* File Name : 75x_SSP.h | |
* Author : MCD Application Team | |
* Date First Issued : 03/10/2006 | |
* Description : This file contains all the functions prototypes for the | |
* SSP software library. | |
******************************************************************************** | |
* History: | |
* 07/17/2006 : V1.0 | |
* 03/10/2006 : V0.1 | |
******************************************************************************** | |
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS | |
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. | |
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, | |
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE | |
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING | |
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | |
*******************************************************************************/ | |
/* Define to prevent recursive inclusion -------------------------------------*/ | |
#ifndef __75x_SSP_H | |
#define __75x_SSP_H | |
/* Includes ------------------------------------------------------------------*/ | |
#include "75x_map.h" | |
/* Exported types ------------------------------------------------------------*/ | |
/* SSP Init structure definition */ | |
typedef struct | |
{ | |
u16 SSP_FrameFormat; | |
u16 SSP_Mode; | |
u16 SSP_CPOL; | |
u16 SSP_CPHA; | |
u16 SSP_DataSize; | |
u16 SSP_NSS; | |
u16 SSP_SlaveOutput; | |
u8 SSP_ClockRate; | |
u8 SSP_ClockPrescaler; | |
}SSP_InitTypeDef; | |
/* Exported constants --------------------------------------------------------*/ | |
/* SSP Frame Format Select */ | |
#define SSP_FrameFormat_TI 0x0010 | |
#define SSP_FrameFormat_Motorola 0xFFCF | |
/* SSP Master/Slave Select */ | |
#define SSP_Mode_Master 0xFFFB | |
#define SSP_Mode_Slave 0x0004 | |
/* SSP Clock Polarity */ | |
#define SSP_CPOL_Low 0xFFBF | |
#define SSP_CPOL_High 0x0040 | |
/* SSP Clock Phase */ | |
#define SSP_CPHA_1Edge 0xFF7F | |
#define SSP_CPHA_2Edge 0x0080 | |
/* SSP Data Size */ | |
#define SSP_DataSize_16b 0x000F | |
#define SSP_DataSize_15b 0x000E | |
#define SSP_DataSize_14b 0x000D | |
#define SSP_DataSize_13b 0x000C | |
#define SSP_DataSize_12b 0x000B | |
#define SSP_DataSize_11b 0x000A | |
#define SSP_DataSize_10b 0x0009 | |
#define SSP_DataSize_9b 0x0008 | |
#define SSP_DataSize_8b 0x0007 | |
#define SSP_DataSize_7b 0x0006 | |
#define SSP_DataSize_6b 0x0005 | |
#define SSP_DataSize_5b 0x0004 | |
#define SSP_DataSize_4b 0x0003 | |
/* SSP Slave Select management config */ | |
#define SSP_NSS_Hard 0xFFEF | |
#define SSP_NSS_Soft 0x0010 | |
/* SSP NSS internal config */ | |
#define SSP_NSSInternal_Set 0x0020 | |
#define SSP_NSSInternal_Reset 0xFFDF | |
/* SSP Slave output config */ | |
#define SSP_SlaveOutput_Enable 0xFFF7 | |
#define SSP_SlaveOutput_Disable 0x0008 | |
/* SSP Interrupts */ | |
#define SSP_IT_TxFifo 0x0008 | |
#define SSP_IT_RxFifo 0x0004 | |
#define SSP_IT_RxTimeOut 0x0002 | |
#define SSP_IT_RxOverrun 0x0001 | |
/* SSP Flags */ | |
#define SSP_FLAG_Busy 0x0024 | |
#define SSP_FLAG_RxFifoFull 0x0023 | |
#define SSP_FLAG_RxFifoNotEmpty 0x0022 | |
#define SSP_FLAG_TxFifoNotFull 0x0021 | |
#define SSP_FLAG_TxFifoEmpty 0x0020 | |
#define SSP_FLAG_TxFifo 0x0043 | |
#define SSP_FLAG_RxFifo 0x0042 | |
#define SSP_FLAG_RxTimeOut 0x0041 | |
#define SSP_FLAG_RxOverrun 0x0040 | |
/* SSP DMA Requests */ | |
#define SSP0_DMA_Transmit 0x0002 | |
#define SSP0_DMA_Receive 0x0001 | |
#define SSP0_DMATxReq_Single 0xFFF7 | |
#define SSP0_DMATxReq_Burst 0x0008 | |
#define SSP0_DMARxReq_Single 0xFFFB | |
#define SSP0_DMARxReq_Burst 0x0004 | |
/* Exported macro ------------------------------------------------------------*/ | |
/* Exported functions ------------------------------------------------------- */ | |
void SSP_DeInit(SSP_TypeDef* SSPx); | |
void SSP_Init(SSP_TypeDef* SSPx, SSP_InitTypeDef* SSP_InitStruct); | |
void SSP_StructInit(SSP_InitTypeDef* SSP_InitStruct); | |
void SSP_Cmd(SSP_TypeDef* SSPx, FunctionalState NewState); | |
void SSP_ITConfig(SSP_TypeDef* SSPx, u16 SSP_IT, FunctionalState NewState); | |
void SSP_DMACmd(u16 SSP0_DMAtransfer, FunctionalState NewState); | |
void SSP_DMATxConfig(u16 SSP0_DMATxReq); | |
void SSP_DMARxConfig(u16 SSP0_DMARxReq); | |
void SSP_SendData(SSP_TypeDef* SSPx, u16 Data); | |
u16 SSP_ReceiveData(SSP_TypeDef* SSPx); | |
void SSP_LoopBackConfig(SSP_TypeDef* SSPx, FunctionalState NewState); | |
void SSP_NSSInternalConfig(SSP_TypeDef* SSPx, u16 SSP_NSSState); | |
FlagStatus SSP_GetFlagStatus(SSP_TypeDef* SSPx, u16 SSP_FLAG); | |
void SSP_ClearFlag(SSP_TypeDef* SSPx, u16 SSP_FLAG); | |
ITStatus SSP_GetITStatus(SSP_TypeDef* SSPx, u16 SSP_IT); | |
void SSP_ClearITPendingBit(SSP_TypeDef* SSPx, u16 SSP_IT); | |
#endif /* __75x_SSP_H */ | |
/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/ |