123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /** @file spi.h
- * @brief SPI Driver Definition File
- * @date 29.May.2013
- * @version 03.05.02
- *
- * (c) Texas Instruments 2009-2013, All rights reserved.
- */
- #ifndef __SPI_H__
- #define __SPI_H__
- #include "reg_spi.h"
- /** @enum chipSelect
- * @brief Transfer Group Chip Select
- */
- enum spiChipSelect
- {
- SPI_CS_NONE = 0xFFU,
- SPI_CS_0 = 0xFEU,
- SPI_CS_1 = 0xFDU,
- SPI_CS_2 = 0xFBU,
- SPI_CS_3 = 0xF7U,
- SPI_CS_4 = 0xEFU,
- SPI_CS_5 = 0xDFU,
- SPI_CS_6 = 0xBFU,
- SPI_CS_7 = 0x7FU
- };
- /** @enum spiPinSelect
- * @brief spi Pin Select
- */
- enum spiPinSelect
- {
- SPI_PIN_CS0 = 0U,
- SPI_PIN_CS1 = 1U,
- SPI_PIN_CS2 = 2U,
- SPI_PIN_CS3 = 3U,
- SPI_PIN_CS4 = 4U,
- SPI_PIN_CS5 = 5U,
- SPI_PIN_CS6 = 6U,
- SPI_PIN_CS7 = 7U,
- SPI_PIN_ENA = 8U,
- SPI_PIN_CLK = 9U,
- SPI_PIN_SIMO = 10U,
- SPI_PIN_SOMI = 11U,
- SPI_PIN_SIMO_1 = 17U,
- SPI_PIN_SIMO_2 = 18U,
- SPI_PIN_SIMO_3 = 19U,
- SPI_PIN_SIMO_4 = 20U,
- SPI_PIN_SIMO_5 = 21U,
- SPI_PIN_SIMO_6 = 22U,
- SPI_PIN_SIMO_7 = 23U,
- SPI_PIN_SOMI_1 = 25U,
- SPI_PIN_SOMI_2 = 26U,
- SPI_PIN_SOMI_3 = 27U,
- SPI_PIN_SOMI_4 = 28U,
- SPI_PIN_SOMI_5 = 29U,
- SPI_PIN_SOMI_6 = 30U,
- SPI_PIN_SOMI_7 = 31U
- };
- /** @enum dataformat
- * @brief SPI dataformat register select
- */
- typedef enum dataformat
- {
- SPI_FMT_0 = 0U,
- SPI_FMT_1 = 1U,
- SPI_FMT_2 = 2U,
- SPI_FMT_3 = 3U
- }SPIDATAFMT_t;
- /** @struct spiDAT1RegConfig
- * @brief SPI data register configuration
- */
- typedef struct spiDAT1RegConfig
- {
- boolean CS_HOLD;
- boolean WDEL;
- SPIDATAFMT_t DFSEL;
- uint8 CSNR;
- }spiDAT1_t;
- /** @enum SpiTxRxDataStatus
- * @brief SPI Data Status
- */
- typedef enum SpiTxRxDataStatus
- {
- SPI_READY = 0U,
- SPI_PENDING = 1U,
- SPI_COMPLETED = 2U
- }SpiDataStatus_t;
- /* USER CODE BEGIN (0) */
- /* USER CODE END */
- /**
- * @defgroup SPI SPI
- * @brief Serial Peripheral Interface Module.
- *
- * SPI is a high-speed synchronous serial input/output port that allows a serial bit stream of
- * programmed length (2 to 16 bits) to be shifted in and out of the device at a programmed bit-transfer rate.
- *
- * Related Files
- * - reg_spi.h
- * - spi.h
- * - spi.c
- * @addtogroup SPI
- * @{
- */
-
- /* SPI Interface Functions */
- void spiInit(void);
- void spiSetFunctional(spiBASE_t *spi, uint32 port);
- void spiEnableNotification(spiBASE_t *spi, uint32 flags);
- void spiDisableNotification(spiBASE_t *spi, uint32 flags);
- uint32 spiTransmitData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * srcbuff);
- void spiSendData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * srcbuff);
- uint32 spiReceiveData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * destbuff);
- void spiGetData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * destbuff);
- uint32 spiTransmitAndReceiveData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * srcbuff, uint16 * destbuff);
- void spiSendAndGetData(spiBASE_t *spi, spiDAT1_t *dataconfig_t, uint32 blocksize, uint16 * srcbuff, uint16 * destbuff);
- void spiEnableLoopback(spiBASE_t *spi, loopBackType_t Loopbacktype);
- void spiDisableLoopback(spiBASE_t *spi);
- SpiDataStatus_t SpiTxStatus(spiBASE_t *spi);
- SpiDataStatus_t SpiRxStatus(spiBASE_t *spi);
- /** @fn void spiNotification(spiBASE_t *spi, uint32 flags)
- * @brief Interrupt callback
- * @param[in] spi - Spi module base address
- * @param[in] flags - Copy of error interrupt flags
- *
- * This is a callback that is provided by the application and is called upon
- * an interrupt. The parameter passed to the callback is a copy of the
- * interrupt flag register.
- */
- void spiNotification(spiBASE_t *spi, uint32 flags);
- /** @fn void spiEndNotification(spiBASE_t *spi)
- * @brief Interrupt callback for End of TX or RX data length.
- * @param[in] spi - Spi module base address
- *
- * This is a callback that is provided by the application and is called upon
- * an interrupt at the End of TX or RX data length.
- */
- void spiEndNotification(spiBASE_t *spi);
- /**@}*/
- /* USER CODE BEGIN (1) */
- /* USER CODE END */
- #endif
|