Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Функции
Файл spi.c

Этот файл содержит функции необходимые для взаимодействия с интерфейсом SPI. Подробнее...

#include "chip_5023BC016.h"
#include "system.h"
#include "spi.h"
#include "dma.h"

См. исходные тексты.

Функции

void SPI_DeInit (SPI_T *pSPI)
 Сброс SPI. Подробнее...
 
void SPI_Init (SPI_T *pSPI)
 Инициализация SPI. Подробнее...
 
CTRL_T SPI_GetCtrlNum (SPI_T *pSPI)
 Возвращает номер модуля для использования в функциях включения/выключения SPI. Подробнее...
 
void SPI_SetFormat (SPI_T *pSPI, uint32_t pbits, uint32_t pframeFormat, uint32_t pclockMode)
 Установка формата информационного кадра Подробнее...
 
void SPI_Set_Mode (SPI_T *pSPI, uint32_t pmode)
 Установка режима работы (ведущий или ведомый). Подробнее...
 
void SPI_SetClockRate (SPI_T *pSPI, uint32_t clk_rate, uint32_t prescale)
 Установка скорости последовательного обмена: FSSPCLKOUT=FSSPCLK/(CPSDVR*(1+SCR)) Подробнее...
 
void SPI_SetBitRate (SPI_T *pSPI, uint32_t bitRate)
 Установка частоты тактового сигнала для интерфейса SPI. Подробнее...
 
uint8_t SPI_GetDataSize (SPI_T *pSPI)
 Получение числа бит в одном слове данных. Подробнее...
 
void SPI_SendFrame (SPI_T *pSPI, uint16_t tx_data)
 Отправка слова данных по интерфейсу SPI. Подробнее...
 
uint16_t SPI_ReceiveFrame (SPI_T *pSPI)
 Прием слова данных по интерфейсу SPI. Подробнее...
 
void SPI_Write1BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Запись одного байта в буфер SPI. Подробнее...
 
void SPI_Read1BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение одного байта из буфера SPI. Подробнее...
 
void SPI_Write2BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Запись двух байт в буфер SPI. Подробнее...
 
void SPI_Read2BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение двух байт из буфера SPI. Подробнее...
 
uint32_t SPI_RWFrames_Blocking (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение/запись методом постоянного опроса. Подробнее...
 
uint32_t SPI_WriteFrames_Blocking (SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
 Запись методом постоянного опроса. Подробнее...
 
uint32_t SPI_ReadFrames_Blocking (SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
 Чтение методом постоянного опроса. Подробнее...
 
Status SPI_Int_RWFrames8Bits (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение/запись 8 бит данных при помощи прерываний. Подробнее...
 
Status SPI_Int_RWFrames16Bits (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение/запись 16 бит данных при помощи прерываний. Подробнее...
 
void SPI_Int_FlushData (SPI_T *pSPI)
 Очистка буфера приемника и сброс флагов прерываний. Подробнее...
 
FlagStatus SPI_GetStatus (SPI_T *pSPI, SPI_STATUS_T pStat)
 Получение текущего статуса контроллера SPI. Подробнее...
 
IntStatus SPI_GetIntStatus (SPI_T *pSPI, SPI_MASKINTSTATUS_T pMaskInt)
 Получение статуса маскированного прерывания. Подробнее...
 
IntStatus SPI_GetRawIntStatus (SPI_T *pSPI, SPI_RAWINTSTATUS_T pRawInt)
 Получение статуса прерывания. Подробнее...
 

Подробное описание

Этот файл содержит функции необходимые для взаимодействия с интерфейсом SPI.

Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.

См. определение в файле spi.c

Функции

§ SPI_DeInit()

void SPI_DeInit ( SPI_T pSPI)

Сброс SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 41

§ SPI_GetCtrlNum()

CTRL_T SPI_GetCtrlNum ( SPI_T pSPI)

Возвращает номер модуля для использования в функциях включения/выключения SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
CtrlSPIномер модуля.

См. определение в файле spi.c строка 66

§ SPI_GetDataSize()

uint8_t SPI_GetDataSize ( SPI_T pSPI)
inline

Получение числа бит в одном слове данных.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
Количествобит в одном слове данных минус один

См. определение в файле spi.c строка 165

§ SPI_GetIntStatus()

IntStatus SPI_GetIntStatus ( SPI_T pSPI,
SPI_MASKINTSTATUS_T  pMaskInt 
)

Получение статуса маскированного прерывания.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pMaskIntтип маскированного прерывания. Параметр pMaskInt может принимать значения:
  • SPI_MIS_RORMIS: состояние маскированного прерывания SSPRORINTR
  • SPI_MIS_RTMIS: состояние маскированного прерывания SSPRTINTR
  • SPI_MIS_RXMIS: состояние маскированного прерывания SSPRXINTR
  • SPI_MIS_TXMIS: состояние маскированного прерывания SSPTXINTR
Возвращаемые значения
SETor RESET, cтатус прерывания.

См. определение в файле spi.c строка 594

§ SPI_GetRawIntStatus()

IntStatus SPI_GetRawIntStatus ( SPI_T pSPI,
SPI_RAWINTSTATUS_T  pRawInt 
)

Получение статуса прерывания.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pRawIntтип прерывания. Параметр pMaskInt может принимать значения:
  • SPI_MIS_RORRIS: состояние до маскирования прерывания SSPRORINTR
  • SPI_MIS_RTRIS: состояние до маскирования прерывания SSPRTINTR
  • SPI_MIS_RXRIS: состояние до маскирования прерывания SSPRXINTR
  • SPI_MIS_TXRIS: состояние до маскирования прерывания SSPTXINTR
Возвращаемые значения
SETor RESET, cтатус прерывания.

См. определение в файле spi.c строка 610

§ SPI_GetStatus()

FlagStatus SPI_GetStatus ( SPI_T pSPI,
SPI_STATUS_T  pStat 
)

Получение текущего статуса контроллера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pStatтип статуса. Параметр pStat может принимать значения:
  • SPI_SR_TFE: буфер FIFO передатчика пуст
  • SPI_SR_TNF: буфер FIFO передатчика не заполнен
  • SPI_SR_RNE: буфер FIFO приемника не пуст
  • SPI_SR_RFF: буфер FIFO приемника заполнен
  • SPI_SR_BSY: флаг активности передачи или приема
Возвращаемые значения
SETor RESET, cтатус контроллера SPI.

См. определение в файле spi.c строка 578

§ SPI_Init()

void SPI_Init ( SPI_T pSPI)

Инициализация SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 54

§ SPI_Int_FlushData()

void SPI_Int_FlushData ( SPI_T pSPI)

Очистка буфера приемника и сброс флагов прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 549

§ SPI_Int_RWFrames16Bits()

Status SPI_Int_RWFrames16Bits ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение/запись 16 бит данных при помощи прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
Cтатусоперации.

См. определение в файле spi.c строка 516

§ SPI_Int_RWFrames8Bits()

Status SPI_Int_RWFrames8Bits ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение/запись 8 бит данных при помощи прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
Cтатусоперации.

См. определение в файле spi.c строка 482

§ SPI_Read1BFifo()

void SPI_Read1BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение одного байта из буфера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 217

§ SPI_Read2BFifo()

void SPI_Read2BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение двух байт из буфера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 256

§ SPI_ReadFrames_Blocking()

uint32_t SPI_ReadFrames_Blocking ( SPI_T pSPI,
uint8_t *  buffer,
uint32_t  buffer_len 
)

Чтение методом постоянного опроса.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bufferуказатель на принимаемые данные.
buffer_lenразмер принимаемых данных.
Возвращаемые значения
rx_cnt- количество принятых данных.

См. определение в файле spi.c строка 411

§ SPI_ReceiveFrame()

uint16_t SPI_ReceiveFrame ( SPI_T pSPI)

Прием слова данных по интерфейсу SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
Словоданных.

См. определение в файле spi.c строка 186

§ SPI_RWFrames_Blocking()

uint32_t SPI_RWFrames_Blocking ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение/запись методом постоянного опроса.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
Указательна принятые/записанные данные или статус операции.

См. определение в файле spi.c строка 276

§ SPI_SendFrame()

void SPI_SendFrame ( SPI_T pSPI,
uint16_t  tx_data 
)

Отправка слова данных по интерфейсу SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
tx_dataданные для отправки
Возвращаемые значения
None.

См. определение в файле spi.c строка 176

§ SPI_Set_Mode()

void SPI_Set_Mode ( SPI_T pSPI,
uint32_t  pmode 
)

Установка режима работы (ведущий или ведомый).

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pmodeрежим работы, принимает следующие значения: Параметр pmode может принимать значения:
  • SPI_MODE_MASTER: режим работы - ведущий
  • SPI_MODE_SLAVE: режим работы - ведомый
Возвращаемые значения
None.

См. определение в файле spi.c строка 111

§ SPI_SetBitRate()

void SPI_SetBitRate ( SPI_T pSPI,
uint32_t  bitRate 
)

Установка частоты тактового сигнала для интерфейса SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bitRateчастота обмена.
Возвращаемые значения
None.

См. определение в файле spi.c строка 137

§ SPI_SetClockRate()

void SPI_SetClockRate ( SPI_T pSPI,
uint32_t  clk_rate,
uint32_t  prescale 
)

Установка скорости последовательного обмена: FSSPCLKOUT=FSSPCLK/(CPSDVR*(1+SCR))

Аргументы
pSPIуказатель на структуру с регистрами SPI.
clk_rateSCR - делитель частоты (1..256).
prescaleCPSDVR - четный коэффициент (2..254).
Возвращаемые значения
None.

См. определение в файле spi.c строка 123

§ SPI_SetFormat()

void SPI_SetFormat ( SPI_T pSPI,
uint32_t  pbits,
uint32_t  pframeFormat,
uint32_t  pclockMode 
)

Установка формата информационного кадра

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pbitsразмер слова данных, может быть SPI_BITS_4..SPI_BITS_16.
pframeFormatформат информационного кадра. Параметр pframeFormat может принимать значения:
  • SPI_FRF_SPI: протокол SPI фирмы Motorola
  • SPI_FRF_TI: протокол SSI фирмы Texas Instruments
  • SPI_FRF_MICROWIRE: протокол Microwire фирмы National Semiconductor
pclockModeполярность и фаза тактового сигнала. Используется только в режиме обмена SPI фирмы Motorola Параметр pclockMode может принимать значения:
  • SPI_CLOCK_MODE0: сигнал синхронизации (CPOL) - низкий уровень, выборка данных (CPHA) - передний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - низкий уровень, выборка данных (CPHA) - задний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - высокий уровень, выборка данных (CPHA) - передний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - высокий уровень, выборка данных (CPHA) - задний фронт сигнала синхронизации
Возвращаемые значения
None.

См. определение в файле spi.c строка 97

§ SPI_Write1BFifo()

void SPI_Write1BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Запись одного байта в буфер SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 197

§ SPI_Write2BFifo()

void SPI_Write2BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Запись двух байт в буфер SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 237

§ SPI_WriteFrames_Blocking()

uint32_t SPI_WriteFrames_Blocking ( SPI_T pSPI,
uint8_t *  buffer,
uint32_t  buffer_len 
)

Запись методом постоянного опроса.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bufferуказатель на передаваемые данные.
buffer_lenразмер передаваемых данных.
Возвращаемые значения
tx_cnt- количество переданных данных.

См. определение в файле spi.c строка 339