![]() |
Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
|
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем SpaceWire. Подробнее...
#include "types.h"
Структуры данных | |
struct | SPW_T |
Структура для доступа к регистрам Spacewire. Подробнее... | |
struct | SPW_DMA_DSC_T |
Структура для DMA дескриптора SpaceWire. Подробнее... | |
struct | SPW_DMA_DSC_TBL_T |
Структура для таблицы DMA дескрипторов Spacewire. Подробнее... | |
Макросы | |
#define | SPW_DSC_COUNT 32 |
#define | SW_CONTROL_RESET_AMBA ((uint32_t)(1 << 0)) |
Макросы для CONTROL. Подробнее... | |
#define | SW_CONTROL_RESET_DMA ((uint32_t)(1 << 1)) |
#define | SW_CONTROL_LINK_START ((uint32_t)(1 << 2)) |
#define | SW_CONTROL_AUTOSTART ((uint32_t)(1 << 3)) |
#define | SW_CONTROL_LINK_DISABLE ((uint32_t)(1 << 4)) |
#define | SW_CONTROL_ALLOW_TIMECODE_TX ((uint32_t)(1 << 5)) |
#define | SW_CONTROL_RESTART_RX_DMA ((uint32_t)(1 << 6)) |
#define | SW_CONTROL_RESTART_TX_DMA ((uint32_t)(1 << 7)) |
#define | SW_CONTROL_CANCEL_TX_DMA ((uint32_t)(1 << 8)) |
#define | SW_CONTROL_INT_EN_LINK_UP_DOWN ((uint32_t)(1 << 9)) |
#define | SW_CONTROL_INT_EN_TIME_CODE ((uint32_t)(1 << 10)) |
#define | SW_CONTROL_INT_EN_RX_DSCR_COMPLETE ((uint32_t)(1 << 11)) |
#define | SW_CONTROL_INT_EN_TX_DSCR_COMPLETE ((uint32_t)(1 << 12)) |
#define | SW_CONTROL_INT_EN_RX_PACKET ((uint32_t)(1 << 13)) |
#define | SW_CONTROL_DESCTABLESIZE(x) (__RO (uint32_t)(x & 0xF << 24)) |
#define | SW_STATUS_LINK_STATUS_DISABLED ((uint32_t)(0x0 << 0)) |
Макросы для STATUS. Подробнее... | |
#define | SW_STATUS_LINK_STATUS_START ((uint32_t)(0x1 << 0)) |
#define | SW_STATUS_LINK_STATUS_CONNECTED ((uint32_t)(0x2 << 0)) |
#define | SW_STATUS_LINK_STATUS_ENABLED ((uint32_t)(0x3 << 0)) |
#define | SW_STATUS_DISCONNECT_ERR ((uint32_t)(1 << 2)) |
#define | SW_STATUS_PARITY_ERR ((uint32_t)(1 << 3)) |
#define | SW_STATUS_ESCAPE_ERR ((uint32_t)(1 << 4)) |
#define | SW_STATUS_CREDIT_ERR ((uint32_t)(1 << 5)) |
#define | SW_STATUS_RX_DMA_RUNNING ((uint32_t)(1 << 6)) |
#define | SW_STATUS_TX_DMA_RUNNING ((uint32_t)(1 << 7)) |
#define | SW_STATUS_AHB_ERR ((uint32_t)(1 << 8)) |
#define | SW_STATUS_RECEIVED_TIMECODE ((uint32_t)(1 << 10)) |
#define | SW_STATUS_RX_COMPLETE ((uint32_t)(1 << 11)) |
#define | SW_STATUS_TX_COMPLETE ((uint32_t)(1 << 12)) |
#define | SW_STATUS_PACKET_RX ((uint32_t)(1 << 13)) |
#define | SW_STATUS_RXFIFO_EMPTY ((uint32_t)(1 << 14)) |
#define | SW_TXSCALER_DIVISOR(x) ((uint32_t)((x & 0xFF) << 0)) |
Макросы для TXSCALER. Подробнее... | |
#define | SW_RXDESCPTR_DSCR_NUM(x) ((uint32_t)((x & 0x1F) << 3)) |
Макросы для RXDESCPTR. Подробнее... | |
#define | SW_RXDESCPTR_DSCR_ADDR(x) ((uint32_t)((x & 0xFFFFFF) << 8)) |
#define | SW_TXDESCPTR(x) ((uint32_t)((x & 0x1F) << 3)) |
Макросы для TXDESCPTR. Подробнее... | |
#define | SW_TXDESCPTR_DSCR_ADDR(x) ((uint32_t)((x & 0xFFFFFF) << 8)) |
#define | SW_TxScalerLink_DIVISOR(x) ((uint32_t)((x & 0xFF) << 0)) |
Макросы для TxScalerLink. Подробнее... | |
#define | SW_ResetTime_RESET_TIME(x) ((uint32_t)((x & 0x3FF) << 0)) |
Макросы для ResetTime. Подробнее... | |
#define | SW_DISCONNECTTIME_DISCONNECT_TIME(x) ((uint32_t)((x & 0xFF) << 0)) |
Макросы для DISCONNECTTIME. Подробнее... | |
#define | SW_Endianness_RX_ENDIAN(x) ((uint32_t)(x << 1)) |
Макросы для Endianness. Подробнее... | |
#define | SW_Endianness_TX_ENDIAN(x) ((uint32_t)(x << 0)) |
#define | SW_DMA_DSC_HEADER_NUM(x) ((uint32_t)((x & 0xFFFF) << 0)) |
Макросы для HEADER дескриптора Подробнее... | |
#define | SW_DMA_DSC_HEADER_EN ((uint32_t)(1 << 16)) |
#define | SW_DMA_DSC_HEADER_WR ((uint32_t)(1 << 17)) |
#define | SW_DMA_DSC_HEADER_IE ((uint32_t)(1 << 18)) |
#define | SW_DMA_DSC_HEADER_DONE ((uint32_t)(1 << 19)) |
#define | SW_DMA_DSC_HEADER_EOP ((uint32_t)(1 << 20)) |
#define | SW_DMA_DSC_HEADER_EEP ((uint32_t)(1 << 21)) |
Функции | |
void | SPW_Init (SPW_T *pSPW) |
Инициализация SpaceWire. Подробнее... | |
void | SPW_DeInit (SPW_T *pSPW) |
Денициализация SpaceWire. Подробнее... | |
void | SPW_freq (uint8_t freq_num) |
Выбор тактовой частоты блоков Spacewire. Подробнее... | |
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем SpaceWire.
Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.
Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.
Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.
См. определение в файле spacewire.h
#define SPW_DSC_COUNT 32 |
См. определение в файле spacewire.h строка 36
#define SW_CONTROL_ALLOW_TIMECODE_TX ((uint32_t)(1 << 5)) |
разрешение передачи временных меток
См. определение в файле spacewire.h строка 62
#define SW_CONTROL_AUTOSTART ((uint32_t)(1 << 3)) |
Autostart; Запись «1» разрешает автоматическую установку соединения в случае потери.
См. определение в файле spacewire.h строка 60
#define SW_CONTROL_CANCEL_TX_DMA ((uint32_t)(1 << 8)) |
Запись «1» прерывает работу TXDMA и RXDMA
См. определение в файле spacewire.h строка 65
#define SW_CONTROL_DESCTABLESIZE | ( | x | ) | (__RO (uint32_t)(x & 0xF << 24)) |
Размер таблицы дескрипторов, доступен только на чтение
См. определение в файле spacewire.h строка 71
#define SW_CONTROL_INT_EN_LINK_UP_DOWN ((uint32_t)(1 << 9)) |
Разрешение прерывания при установке соединения
См. определение в файле spacewire.h строка 66
#define SW_CONTROL_INT_EN_RX_DSCR_COMPLETE ((uint32_t)(1 << 11)) |
Разрешение прерывания по завершению RX дескриптора при IE = «1»
См. определение в файле spacewire.h строка 68
#define SW_CONTROL_INT_EN_RX_PACKET ((uint32_t)(1 << 13)) |
Разрешение прерывания при приеме пакета по завершению работы TX дескриптора
См. определение в файле spacewire.h строка 70
#define SW_CONTROL_INT_EN_TIME_CODE ((uint32_t)(1 << 10)) |
Разрешение прерывания при приеме временных меток
См. определение в файле spacewire.h строка 67
#define SW_CONTROL_INT_EN_TX_DSCR_COMPLETE ((uint32_t)(1 << 12)) |
Разрешение прерывания по завершению TX дескриптора при IE = «1»
См. определение в файле spacewire.h строка 69
#define SW_CONTROL_LINK_DISABLE ((uint32_t)(1 << 4)) |
Linkdisable; запись «1» запрещает работу Link контроллера.
См. определение в файле spacewire.h строка 61
#define SW_CONTROL_LINK_START ((uint32_t)(1 << 2)) |
Linkstart; запись «1» разрешает установку соединения.
См. определение в файле spacewire.h строка 59
#define SW_CONTROL_RESET_AMBA ((uint32_t)(1 << 0)) |
#define SW_CONTROL_RESET_DMA ((uint32_t)(1 << 1)) |
Запись «1» сбрасывает контроллер DMA
См. определение в файле spacewire.h строка 58
#define SW_CONTROL_RESTART_RX_DMA ((uint32_t)(1 << 6)) |
запуск RXDMA
См. определение в файле spacewire.h строка 63
#define SW_CONTROL_RESTART_TX_DMA ((uint32_t)(1 << 7)) |
запуск TXDMA
См. определение в файле spacewire.h строка 64
#define SW_DISCONNECTTIME_DISCONNECT_TIME | ( | x | ) | ((uint32_t)((x & 0xFF) << 0)) |
#define SW_DMA_DSC_HEADER_DONE ((uint32_t)(1 << 19)) |
статус завершения
См. определение в файле spacewire.h строка 159
#define SW_DMA_DSC_HEADER_EEP ((uint32_t)(1 << 21)) |
признак EEP
См. определение в файле spacewire.h строка 161
#define SW_DMA_DSC_HEADER_EN ((uint32_t)(1 << 16)) |
разрешение пользоваться дескриптором
См. определение в файле spacewire.h строка 156
#define SW_DMA_DSC_HEADER_EOP ((uint32_t)(1 << 20)) |
признак EOP
См. определение в файле spacewire.h строка 160
#define SW_DMA_DSC_HEADER_IE ((uint32_t)(1 << 18)) |
разрешение прерывания и выставление статуса по завершении
См. определение в файле spacewire.h строка 158
#define SW_DMA_DSC_HEADER_NUM | ( | x | ) | ((uint32_t)((x & 0xFFFF) << 0)) |
#define SW_DMA_DSC_HEADER_WR ((uint32_t)(1 << 17)) |
прерывание списка дескрипторов
См. определение в файле spacewire.h строка 157
#define SW_Endianness_RX_ENDIAN | ( | x | ) | ((uint32_t)(x << 1)) |
Макросы для Endianness.
RxEndianness. Значение 0 - little endian, 1 - big endian
См. определение в файле spacewire.h строка 129
#define SW_Endianness_TX_ENDIAN | ( | x | ) | ((uint32_t)(x << 0)) |
TxEndianness. Значение 0 - little endian, 1 - big endian
См. определение в файле spacewire.h строка 130
#define SW_ResetTime_RESET_TIME | ( | x | ) | ((uint32_t)((x & 0x3FF) << 0)) |
#define SW_RXDESCPTR_DSCR_ADDR | ( | x | ) | ((uint32_t)((x & 0xFFFFFF) << 8)) |
Адрес начала таблицы дескрипторов
См. определение в файле spacewire.h строка 103
#define SW_RXDESCPTR_DSCR_NUM | ( | x | ) | ((uint32_t)((x & 0x1F) << 3)) |
#define SW_STATUS_AHB_ERR ((uint32_t)(1 << 8)) |
ошибка шины AHB
См. определение в файле spacewire.h строка 86
#define SW_STATUS_CREDIT_ERR ((uint32_t)(1 << 5)) |
ошибка credit
См. определение в файле spacewire.h строка 83
#define SW_STATUS_DISCONNECT_ERR ((uint32_t)(1 << 2)) |
ошибка соединения
См. определение в файле spacewire.h строка 80
#define SW_STATUS_ESCAPE_ERR ((uint32_t)(1 << 4)) |
ошибка escape
См. определение в файле spacewire.h строка 82
#define SW_STATUS_LINK_STATUS_CONNECTED ((uint32_t)(0x2 << 0)) |
статус Link контроллера: соединение установлено
См. определение в файле spacewire.h строка 78
#define SW_STATUS_LINK_STATUS_DISABLED ((uint32_t)(0x0 << 0)) |
#define SW_STATUS_LINK_STATUS_ENABLED ((uint32_t)(0x3 << 0)) |
статус Link контроллера: запущен
См. определение в файле spacewire.h строка 79
#define SW_STATUS_LINK_STATUS_START ((uint32_t)(0x1 << 0)) |
статус Link контроллера: старт
См. определение в файле spacewire.h строка 77
#define SW_STATUS_PACKET_RX ((uint32_t)(1 << 13)) |
Получен пакет. Для сброса бита необходимо записать «1»
См. определение в файле spacewire.h строка 90
#define SW_STATUS_PARITY_ERR ((uint32_t)(1 << 3)) |
ошибка четности
См. определение в файле spacewire.h строка 81
#define SW_STATUS_RECEIVED_TIMECODE ((uint32_t)(1 << 10)) |
Получен пакет с временной меткой. Для сброса бита необходимо записать «1»
См. определение в файле spacewire.h строка 87
#define SW_STATUS_RX_COMPLETE ((uint32_t)(1 << 11)) |
RX дескриптор завершен при IE = «1». Для сброса бита необходимо записать «1»
См. определение в файле spacewire.h строка 88
#define SW_STATUS_RX_DMA_RUNNING ((uint32_t)(1 << 6)) |
RXDMA запущен
См. определение в файле spacewire.h строка 84
#define SW_STATUS_RXFIFO_EMPTY ((uint32_t)(1 << 14)) |
(только чтение) - память RXFIFO не содержит данных, и последний пакет был отправлен по RXDMA
См. определение в файле spacewire.h строка 91
#define SW_STATUS_TX_COMPLETE ((uint32_t)(1 << 12)) |
TX дескриптор завершен при IE = «1». Для сброса бита необходимо записать «1»
См. определение в файле spacewire.h строка 89
#define SW_STATUS_TX_DMA_RUNNING ((uint32_t)(1 << 7)) |
TXDMA запущен
См. определение в файле spacewire.h строка 85
#define SW_TXDESCPTR | ( | x | ) | ((uint32_t)((x & 0x1F) << 3)) |
#define SW_TXDESCPTR_DSCR_ADDR | ( | x | ) | ((uint32_t)((x & 0xFFFFFF) << 8)) |
Адрес начала таблицы дескрипторов
См. определение в файле spacewire.h строка 109
#define SW_TXSCALER_DIVISOR | ( | x | ) | ((uint32_t)((x & 0xFF) << 0)) |
Макросы для TXSCALER.
делитель частоты тактового сигнала передатчика
См. определение в файле spacewire.h строка 97
#define SW_TxScalerLink_DIVISOR | ( | x | ) | ((uint32_t)((x & 0xFF) << 0)) |
void SPW_DeInit | ( | SPW_T * | pSPW | ) |
Денициализация SpaceWire.
pSPW | : Указатель на структуру с регистрами SpaceWire |
См. определение в файле spacewire.c строка 79
void SPW_freq | ( | uint8_t | freq_num | ) |
Выбор тактовой частоты блоков Spacewire.
pSPW | : Указатель на структуру с регистрами SpaceWire |
freq_num | : номер частоты 0 – тактирование осуществляется с внешнего вывода SW_CLK (PORTH[4]). 1 – тактирование осуществляется системной частотой |
См. определение в файле spacewire.c строка 72
void SPW_Init | ( | SPW_T * | pSPW | ) |
Инициализация SpaceWire.
pSPW | : Указатель на структуру с регистрами SpaceWire |
<Подача тактового сигнала на модуль
<Вывод модуля из асинхронного сброса
См. определение в файле spacewire.c строка 59