![]() |
Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
|
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем МКПД. Подробнее...
#include "types.h"
Структуры данных | |
struct | MKPD_T |
Структура для доступа к регистрам МКПД. Подробнее... | |
struct | Command_Word_Bits |
Структура командного слова (КС) Подробнее... | |
union | Command_Word |
Структура для доступа к командному слову (КС) Подробнее... | |
struct | Reply_Word_Bits |
Содержимое ответного слова (ОС) Подробнее... | |
Макросы | |
#define | MKPD_BCONE0_SUB_ADDR1(x) ((uint32_t)((x & 0x1F) << 0)) |
Макросы для регистра BCONE0. Подробнее... | |
#define | MKPD_BCONE0_EP_ADDR1(x) ((uint32_t)((x & 0x1F) << 5)) |
#define | MKPD_BCONE0_NUM(x) ((uint32_t)((x & 0x1F) << 10)) |
#define | MKPD_BCONE0_SUB_ADDR0(x) ((uint32_t)((x & 0x1F) << 16)) |
#define | MKPD_BCONE0_EP_ADDR0(x) ((uint32_t)((x & 0x1F) << 21)) |
#define | MKPD_BCONE2_TYPE_TRANS(x) ((uint32_t)((x & 0x0F) << 0)) |
Макросы для регистра BCONE2. Подробнее... | |
#define | MKPD_BCONE2_MANAGE_CODE(x) ((unsigned int)((x & 0x01) << 4)) |
#define | MKPD_BCONE2_ENA ((uint32_t)(1 << 8)) |
#define | MKPD_BCONE2_COM_DATA(x) ((uint32_t)((x & 0xFFFF) << 16)) |
#define | MKPD_BCONE3_REPLY_WORD(x) ((uint32_t)(x & 0xFFFF)) |
Макросы для регистра BCONE3. Подробнее... | |
#define | MKPD_BCONE3_REPLY(x) ((uint32_t)((x >> 16) & 0xFFFF)) |
#define | MKPD_BCONE4_STATUS ((uint32_t)(1 << 0)) |
Макросы для регистра BCONE4. Подробнее... | |
#define | MKPD_BCONE4_ERROR ((uint32_t)(1 << 8)) |
#define | MKPD_BCONE4_TIMEOUT ((uint32_t)(1 << 16)) |
#define | MKPD_BCTWO0_SUB_ADDR1(x) ((uint32_t)((x & 0x1F) << 0)) |
Макросы для регистра BCTWO0. Подробнее... | |
#define | MKPD_BCTWO0_EP_ADDR1(x) ((uint32_t)((x & 0x1F) << 5)) |
#define | MKPD_BCTWO0_NUM(x) ((uint32_t)((x & 0x1F) << 10)) |
#define | MKPD_BCTWO0_SUB_ADDR0(x) ((uint32_t)((x & 0x1F) << 16)) |
#define | MKPD_BCTWO0_EP_ADDR0(x) ((uint32_t)((x & 0x1F) << 21)) |
#define | MKPD_BCTWO2_TYPE_TRANS(x) ((uint32_t)((x & 0x0F) << 0)) |
Макросы для регистра BCTWO2. Подробнее... | |
#define | MKPD_BCTWO2_MANAGE_CODE ((uint32_t)(1 << 4)) |
#define | MKPD_BCTWO2_ENA ((uint32_t)(1 << 8)) |
#define | MKPD_BCTWO2_COM_DATA(x) ((uint32_t)((x & 0xFFFF) << 16)) |
#define | MKPD_BCTWO3_REPLY_WORD(x) ((uint32_t)(x & 0xFFFF)) |
Макросы для регистра BCTWO3. Подробнее... | |
#define | MKPD_BCTWO3_REPLY(x) ((uint32_t)((x >> 16) & 0xFFFF)) |
#define | MKPD_BCTWO4_STATUS ((uint32_t)(1 << 0)) |
Макросы для регистра BCTWO4. Подробнее... | |
#define | MKPD_BCTWO4_ERROR ((uint32_t)(1 << 8)) |
#define | MKPD_BCTWO4_TIMEOUT ((uint32_t)(1 << 16)) |
#define | MKPD_EP1_FEP1 ((uint32_t)(1 << 0)) |
Макросы для регистра EP1. Подробнее... | |
#define | MKPD_EP1_MAN ((uint32_t)(1 << 1)) |
#define | MKPD_EP1_FEP0 ((uint32_t)(1 << 2)) |
#define | MKPD_EP1_BUSY ((uint32_t)(1 << 3)) |
#define | MKPD_EP1_RXGROUP ((uint32_t)(1 << 4)) |
#define | MKPD_EP1_RESERV(x) ((uint32_t)((x & 0x03) << 5)) |
#define | MKPD_EP1_SREQ ((uint32_t)(1 << 8)) |
#define | MKPD_EP1_ERROR ((uint32_t)(1 << 8)) |
#define | MKPD_EP1_RDATA(x) ((uint32_t)((x & 0xFFFF) << 16)) |
#define | MKPD_EP2_EP_COM_ERR ((uint32_t)(1 << 0)) |
Макросы для регистра EP2. Подробнее... | |
#define | MKPD_EP2_EP_COM_TIMEOUT ((uint32_t)(1 << 1)) |
#define | MKPD_EP3_EP_COM_DATA(x) ((uint32_t)(x & 0xFFFF)) |
Макросы для регистра EP3. Подробнее... | |
#define | MKPD_EP3_EP_COM(x) ((uint32_t)((x >> 16) & 0xFFFF)) |
#define | MKPD_SETTING0_EP_ADDR(x) ((uint32_t)((x & 0x1F) << 0)) |
Макросы и типы для регистра SETTING0. Подробнее... | |
#define | MKPD_SETTING0_SYS_CLK(x) ((uint32_t)((x & 0xFF) << 24)) |
#define | MKPD_SETTING1_EDGE(x) ((uint32_t)((x & 0xFF) << 8)) |
Макросы для регистра SETTING1. Подробнее... | |
#define | MKPD_SETTING1_RWAIT(x) ((uint32_t)((x & 0xFF) << 16)) |
#define | MKPD_SETTING1_TIME(x) ((uint32_t)((x & 0x0F) << 24)) |
#define | MKPD_SETTING2_500NS(x) ((unsigned int)((x & 0xFF) << 0)) |
Макросы и типы для регистра SETTING2. Подробнее... | |
#define | MKPD_SETTING2_INVTX(x) ((unsigned int)((x & 0x01) << 8)) |
#define | MKPD_SETTING2_INCWITH(x) ((unsigned int)((x & 0x01) << 9)) |
#define | MKPD_SETTING2_DECDIS(x) ((unsigned int)((x & 0x0F) << 10)) |
#define | MKPD_SETTING2_NOACTTIME(x) ((unsigned int)((x & 0xFF) << 16)) |
#define | MKPD_SETTING2_BCWAITREPLY(x) ((unsigned int)((x & 0xFF) << 24)) |
#define | MKPD_SETTING2_NOACTTIME(x) ((uint32_t)((x & 0xFF) << 16)) |
#define | MKPD_SETTING2_BCWAITREPLY(x) ((uint32_t)((x & 0xFF) << 24)) |
#define | MKPD_SETTING3_1250NS(x) ((uint32_t)((x & 0xFF) << 0)) |
Макросы для регистра SETTING3. Подробнее... | |
#define | MKPD_SETTING3_1500NS(x) ((uint32_t)((x & 0xFF) << 8)) |
#define | MKPD_SETTING3_1750NS(x) ((uint32_t)((x & 0xFF) << 16)) |
#define | MKPD_SETTING3_2250NS(x) ((uint32_t)((x & 0xFF) << 24)) |
#define | MKPD_INTERRUPT_BC_INT ((uint32_t)(1 << 0)) |
Макросы для регистра INTERRUPT. Подробнее... | |
#define | MKPD_INTERRUPT_EP_INT0 ((uint32_t)(1 << 1)) |
#define | MKPD_INTERRUPT_EP_INT1 ((uint32_t)(1 << 2)) |
#define | MKPD_INTERRUPT_MON_INT ((uint32_t)(1 << 3)) |
#define | MKPD_MAX_WORD_IN_PACKET 32 |
Макросы, относящиеся к логике работы контроллера Подробнее... | |
#define | MKPD_EP_SUBADDR_COUNT 32 |
#define | MKPD_MANAGE_MODE_MASK 0xF |
#define | MKPD_EP_GROUP_ADDR 0x1F |
Определения типов | |
typedef union Command_Word | Command_Word_T |
Структура для доступа к командному слову (КС) Подробнее... | |
Перечисления | |
enum | MKPD_SETTING0_MODE_T { MKPD_SETTING0_MODE_DISABLED = ((uint32_t)(0 << 8)), MKPD_SETTING0_MODE_BC = ((uint32_t)(1 << 8)), MKPD_SETTING0_MODE_EP = ((uint32_t)(2 << 8)), MKPD_SETTING0_MODE_M = ((uint32_t)(3 << 8)) } |
enum | MKPD_SETTING0_CHANNEL_T { MKPD_SETTING0_CHANNEL_A = ((uint32_t)(0 << 16)), MKPD_SETTING0_CHANNEL_B = ((uint32_t)(1 << 16)) } |
enum | MKPD_DECDIS_MODE_T { MKPD_SETTING2_DECDIS_A = ((uint32_t)(1 << 10)), MKPD_SETTING2_DECDIS_B = ((uint32_t)(1 << 11)), MKPD_SETTING2_DECDIS_C = ((uint32_t)(1 << 12)), MKPD_SETTING2_DECDIS_D = ((uint32_t)(1 << 13)) } |
enum | MKPD_TX_T { TX_ONE, TX_TWO } |
Выбор интерфейса передачи для контроллера шины Подробнее... | |
Функции | |
void | MKPD_Set_System_Clock (MKPD_T *pMKPD, uint32_t sys_clk) |
Установка значения системной частоты Подробнее... | |
static void | MKPD_Set_Channel (MKPD_T *pMKPD, uint32_t channel) |
Установка рабочего канала для контроллера шины. Подробнее... | |
static void | MKPD_Set_Mode (MKPD_T *pMKPD, uint32_t mode) |
Установка режима работы блока. Подробнее... | |
static void | MKPD_Set_BC_Transaction_Format2 (MKPD_T *pMKPD, MKPD_TX_T index, unsigned int type_trans, unsigned int manage_code) |
Установка формата транзакции Подробнее... | |
static void | MKPD_Set_EP_Address (MKPD_T *pMKPD, uint32_t ep_addr) |
Установка адреса оконечного устройства. Подробнее... | |
void | MKPD_Set_Interpacket_Time (MKPD_T *pMKPD, uint32_t time) |
Установка временного интервала между передачей пакетов Подробнее... | |
void | MKPD_Set_Wait_Time (MKPD_T *pMKPD, uint32_t rwait) |
Установка времени ожидания ОС или СД в режиме работы КШ и ОУ Подробнее... | |
void | MKPD_Set_Edge_Time (MKPD_T *pMKPD, uint32_t edge) |
Установка времени запрещенного состояния дифференциального сигнала Подробнее... | |
static void | MKPD_Set_IncWith (MKPD_T *pMKPD, unsigned int IncWith) |
Настройка сигнала разрешения передачи Подробнее... | |
static void | MKPD_Set_DecoderDisable (MKPD_T *pMKPD, unsigned int Disable_mask) |
Программное отключение декодеров Подробнее... | |
static void | MKPD_Set_NoActivity_Time (MKPD_T *pMKPD, unsigned int Noacttime) |
Настройка времени ожидания отсутствия активности на линии, не менее 1.3 мкс Подробнее... | |
static void | MKPD_Set_BCWaitReply_Time (MKPD_T *pMKPD, unsigned int Bcwaitreply) |
Настройка времени ожидания ОС в режиме КШ Подробнее... | |
static void | MKPD_Set_Clk_500NS (MKPD_T *pMKPD, unsigned int Clk) |
Тонкая настройка количества тактов системной частоты в 500 нс Подробнее... | |
static void | MKPD_Set_Clk_1250NS (MKPD_T *pMKPD, unsigned int Clk) |
Тонкая настройка количества тактов системной частоты в 1250 нс Подробнее... | |
static void | MKPD_Set_Clk_1500NS (MKPD_T *pMKPD, unsigned int Clk) |
Тонкая настройка количества тактов системной частоты в 1500 нс Подробнее... | |
static void | MKPD_Set_Clk_1750NS (MKPD_T *pMKPD, unsigned int Clk) |
Тонкая настройка количества тактов системной частоты в 1750 нс Подробнее... | |
static void | MKPD_Set_Clk_2250NS (MKPD_T *pMKPD, unsigned int Clk) |
Тонкая настройка количества тактов системной частоты в 2250 нс Подробнее... | |
static int | MKPD_BC_IsReady (MKPD_T *pMKPD, MKPD_TX_T index) |
Определяет готовность контроллера шины к новой транзакции Подробнее... | |
uint32_t | MKPD_Get_Interrupt (MKPD_T *pMKPD) |
Установка приёмной частоты сигнала Подробнее... | |
void | MKPD_Set_Inverting (MKPD_T *pMKPD, uint32_t invert_params) |
Настройка параметров инвертирования дифференциального сигнала Подробнее... | |
void | MKPD_Loopback_Enable (MKPD_T *pMKPD) |
Включение местного заворота линии Подробнее... | |
void | MKPD_Loopback_Disable (MKPD_T *pMKPD) |
Отключение местного заворота линии Подробнее... | |
static void | MKPD_Set_BC_TX_Params (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t ep_addr0, uint32_t sub_addr0, uint32_t ep_addr1, uint32_t sub_addr1, uint32_t num) |
Установка параметров транзакции Подробнее... | |
static void | MKPD_Set_BC_DMA_Address (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t dma_addr) |
Установка адреса DMA. Подробнее... | |
static void | MKPD_ConfigBusController (MKPD_T *pMKPD, uint32_t address_one, uint32_t address_two, uint32_t channel) |
Настройка контроллера шины Подробнее... | |
void | MKPD_Set_BC_COM_Data (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t com_data) |
Установка слова данных для передачи в транзакциях формата 6 или 10. Подробнее... | |
void | MKPD_Set_BC_Transaction_Format (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t type_trans) |
Установка формата транзакции Подробнее... | |
static void | MKPD_BC_Start_Transaction (MKPD_T *pMKPD, MKPD_TX_T index) |
Установка формата транзакции Подробнее... | |
FlagStatus | MKPD_BC_IsWaiting (MKPD_T *pMKPD, MKPD_TX_T index) |
Определяет, находится ли транзакция в очереди на передачу Подробнее... | |
FlagStatus | MKPD_BC_IsSending (MKPD_T *pMKPD, MKPD_TX_T index) |
Определяет, передается ли транзакция в настоящий момент Подробнее... | |
FlagStatus | MKPD_BC_IsError (MKPD_T *pMKPD, MKPD_TX_T index) |
Возвращает значение флага ошибки транзации Подробнее... | |
FlagStatus | MKPD_BC_IsTimeout (MKPD_T *pMKPD, MKPD_TX_T index) |
Возвращает значение флага таймаута транзации Подробнее... | |
uint32_t | MKPD_BC_Reply_Word (MKPD_T *pMKPD, MKPD_TX_T index) |
Возвращает ответное слово, полученное от ОУ Подробнее... | |
uint32_t | MKPD_BC_Reply_Data (MKPD_T *pMKPD, MKPD_TX_T index) |
Возвращает ответные данные, полученные от ОУ (для транзакций формата 5) Подробнее... | |
static unsigned int | MKPD_StartMessage (MKPD_T *pMKPD, MKPD_TX_T index, unsigned int type_trans, unsigned int ep_addr0, unsigned int sub_addr0, unsigned int ep_addr1, unsigned int sub_addr1, unsigned int num, unsigned int timeout, unsigned int manage_code) |
Передача сообщения от КШ Подробнее... | |
static void | MKPD_Set_Endpoint_DMA_Address (MKPD_T *pMKPD, uint32_t dma_ep) |
Установка адреса первого байта области памяти ОУ Подробнее... | |
static void | MKPD_ConfigEndpoint (MKPD_T *pMKPD, uint32_t address, uint32_t ep_address) |
Настройка оконечного устройства Подробнее... | |
void | MKPD_Set_Endpoint_RDATA (MKPD_T *pMKPD, uint32_t rdata) |
Установка слова данных для передачи от ОУ Подробнее... | |
static void | MKPD_Set_Endpoint_Attributes (MKPD_T *pMKPD, uint32_t attributes) |
Установка признаков в ОС ОУ Подробнее... | |
void | MKPD_Set_InvTX (MKPD_T *pMKPD, unsigned int invTX) |
Установка инвертирования дифференциального сигнала на передаче Подробнее... | |
uint32_t | MKPD_Get_Endpoint_COM_Data (MKPD_T *pMKPD) |
Возвращает принятое от КШ слово данных Подробнее... | |
FlagStatus | MKPD_Get_Endpoint_COM_Timeout (MKPD_T *pMKPD) |
Возвращает значение флага таймаута Подробнее... | |
FlagStatus | MKPD_Get_Endpoint_COM_Error (MKPD_T *pMKPD) |
Возвращает значение флага ошибки в слове данных (используется в транзакциях №6, 10) Подробнее... | |
uint32_t | MKPD_Get_Endpoint_Command_Word (MKPD_T *pMKPD) |
Возвращает командное слово, принятое ОУ Подробнее... | |
void | MKPD_Set_Monitor_DMA_Address (MKPD_T *pMKPD, uint32_t dma_monitor_addr) |
Задание начального адреса DMA для монитора Подробнее... | |
void | MKPD_Set_Monitor_Memory_Size (MKPD_T *pMKPD, uint32_t memory_size) |
Задание размера буфера монитора Подробнее... | |
void | MKPD_Set_Monitor_Threshold (MKPD_T *pMKPD, uint32_t threshold) |
Задание порогового значения для монитора Подробнее... | |
void | MKPD_ConfigMonitor (MKPD_T *pMKPD, uint32_t address, uint32_t size, uint32_t threshold) |
Настройка монитора Подробнее... | |
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем МКПД.
Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.
Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.
См. определение в файле mkpd.h
#define MKPD_BCONE0_EP_ADDR0 | ( | x | ) | ((uint32_t)((x & 0x1F) << 21)) |
#define MKPD_BCONE0_EP_ADDR1 | ( | x | ) | ((uint32_t)((x & 0x1F) << 5)) |
#define MKPD_BCONE0_NUM | ( | x | ) | ((uint32_t)((x & 0x1F) << 10)) |
#define MKPD_BCONE0_SUB_ADDR0 | ( | x | ) | ((uint32_t)((x & 0x1F) << 16)) |
#define MKPD_BCONE0_SUB_ADDR1 | ( | x | ) | ((uint32_t)((x & 0x1F) << 0)) |
#define MKPD_BCONE2_COM_DATA | ( | x | ) | ((uint32_t)((x & 0xFFFF) << 16)) |
#define MKPD_BCONE2_ENA ((uint32_t)(1 << 8)) |
#define MKPD_BCONE2_MANAGE_CODE | ( | x | ) | ((unsigned int)((x & 0x01) << 4)) |
#define MKPD_BCONE2_TYPE_TRANS | ( | x | ) | ((uint32_t)((x & 0x0F) << 0)) |
#define MKPD_BCONE3_REPLY | ( | x | ) | ((uint32_t)((x >> 16) & 0xFFFF)) |
#define MKPD_BCONE3_REPLY_WORD | ( | x | ) | ((uint32_t)(x & 0xFFFF)) |
#define MKPD_BCONE4_ERROR ((uint32_t)(1 << 8)) |
#define MKPD_BCONE4_STATUS ((uint32_t)(1 << 0)) |
#define MKPD_BCONE4_TIMEOUT ((uint32_t)(1 << 16)) |
#define MKPD_BCTWO0_EP_ADDR0 | ( | x | ) | ((uint32_t)((x & 0x1F) << 21)) |
#define MKPD_BCTWO0_EP_ADDR1 | ( | x | ) | ((uint32_t)((x & 0x1F) << 5)) |
#define MKPD_BCTWO0_NUM | ( | x | ) | ((uint32_t)((x & 0x1F) << 10)) |
#define MKPD_BCTWO0_SUB_ADDR0 | ( | x | ) | ((uint32_t)((x & 0x1F) << 16)) |
#define MKPD_BCTWO0_SUB_ADDR1 | ( | x | ) | ((uint32_t)((x & 0x1F) << 0)) |
#define MKPD_BCTWO2_COM_DATA | ( | x | ) | ((uint32_t)((x & 0xFFFF) << 16)) |
#define MKPD_BCTWO2_ENA ((uint32_t)(1 << 8)) |
#define MKPD_BCTWO2_MANAGE_CODE ((uint32_t)(1 << 4)) |
#define MKPD_BCTWO2_TYPE_TRANS | ( | x | ) | ((uint32_t)((x & 0x0F) << 0)) |
#define MKPD_BCTWO3_REPLY | ( | x | ) | ((uint32_t)((x >> 16) & 0xFFFF)) |
#define MKPD_BCTWO3_REPLY_WORD | ( | x | ) | ((uint32_t)(x & 0xFFFF)) |
#define MKPD_BCTWO4_ERROR ((uint32_t)(1 << 8)) |
#define MKPD_BCTWO4_STATUS ((uint32_t)(1 << 0)) |
#define MKPD_BCTWO4_TIMEOUT ((uint32_t)(1 << 16)) |
#define MKPD_EP1_BUSY ((uint32_t)(1 << 3)) |
#define MKPD_EP1_ERROR ((uint32_t)(1 << 8)) |
#define MKPD_EP1_FEP0 ((uint32_t)(1 << 2)) |
#define MKPD_EP1_FEP1 ((uint32_t)(1 << 0)) |
#define MKPD_EP1_MAN ((uint32_t)(1 << 1)) |
#define MKPD_EP1_RDATA | ( | x | ) | ((uint32_t)((x & 0xFFFF) << 16)) |
#define MKPD_EP1_RESERV | ( | x | ) | ((uint32_t)((x & 0x03) << 5)) |
#define MKPD_EP1_RXGROUP ((uint32_t)(1 << 4)) |
#define MKPD_EP1_SREQ ((uint32_t)(1 << 8)) |
#define MKPD_EP2_EP_COM_ERR ((uint32_t)(1 << 0)) |
#define MKPD_EP2_EP_COM_TIMEOUT ((uint32_t)(1 << 1)) |
#define MKPD_EP3_EP_COM | ( | x | ) | ((uint32_t)((x >> 16) & 0xFFFF)) |
#define MKPD_EP3_EP_COM_DATA | ( | x | ) | ((uint32_t)(x & 0xFFFF)) |
#define MKPD_EP_GROUP_ADDR 0x1F |
#define MKPD_INTERRUPT_BC_INT ((uint32_t)(1 << 0)) |
#define MKPD_INTERRUPT_EP_INT0 ((uint32_t)(1 << 1)) |
#define MKPD_INTERRUPT_EP_INT1 ((uint32_t)(1 << 2)) |
#define MKPD_INTERRUPT_MON_INT ((uint32_t)(1 << 3)) |
#define MKPD_MANAGE_MODE_MASK 0xF |
#define MKPD_MAX_WORD_IN_PACKET 32 |
#define MKPD_SETTING0_EP_ADDR | ( | x | ) | ((uint32_t)((x & 0x1F) << 0)) |
#define MKPD_SETTING0_SYS_CLK | ( | x | ) | ((uint32_t)((x & 0xFF) << 24)) |
#define MKPD_SETTING1_EDGE | ( | x | ) | ((uint32_t)((x & 0xFF) << 8)) |
#define MKPD_SETTING1_RWAIT | ( | x | ) | ((uint32_t)((x & 0xFF) << 16)) |
#define MKPD_SETTING1_TIME | ( | x | ) | ((uint32_t)((x & 0x0F) << 24)) |
#define MKPD_SETTING2_500NS | ( | x | ) | ((unsigned int)((x & 0xFF) << 0)) |
#define MKPD_SETTING2_BCWAITREPLY | ( | x | ) | ((unsigned int)((x & 0xFF) << 24)) |
#define MKPD_SETTING2_BCWAITREPLY | ( | x | ) | ((uint32_t)((x & 0xFF) << 24)) |
#define MKPD_SETTING2_DECDIS | ( | x | ) | ((unsigned int)((x & 0x0F) << 10)) |
#define MKPD_SETTING2_INCWITH | ( | x | ) | ((unsigned int)((x & 0x01) << 9)) |
#define MKPD_SETTING2_INVTX | ( | x | ) | ((unsigned int)((x & 0x01) << 8)) |
#define MKPD_SETTING2_NOACTTIME | ( | x | ) | ((unsigned int)((x & 0xFF) << 16)) |
#define MKPD_SETTING2_NOACTTIME | ( | x | ) | ((uint32_t)((x & 0xFF) << 16)) |
#define MKPD_SETTING3_1250NS | ( | x | ) | ((uint32_t)((x & 0xFF) << 0)) |
#define MKPD_SETTING3_1500NS | ( | x | ) | ((uint32_t)((x & 0xFF) << 8)) |
#define MKPD_SETTING3_1750NS | ( | x | ) | ((uint32_t)((x & 0xFF) << 16)) |
#define MKPD_SETTING3_2250NS | ( | x | ) | ((uint32_t)((x & 0xFF) << 24)) |
typedef union Command_Word Command_Word_T |
Структура для доступа к командному слову (КС)
enum MKPD_DECDIS_MODE_T |
enum MKPD_SETTING0_MODE_T |
enum MKPD_TX_T |
FlagStatus MKPD_BC_IsError | ( | MKPD_T * | pMKPD, |
MKPD_TX_T | index | ||
) |
FlagStatus MKPD_BC_IsSending | ( | MKPD_T * | pMKPD, |
MKPD_TX_T | index | ||
) |
FlagStatus MKPD_BC_IsTimeout | ( | MKPD_T * | pMKPD, |
MKPD_TX_T | index | ||
) |
FlagStatus MKPD_BC_IsWaiting | ( | MKPD_T * | pMKPD, |
MKPD_TX_T | index | ||
) |
|
inlinestatic |
Настройка контроллера шины
pMKPD | указатель на структуру с регистрами MKPD |
address_one | начальный адрес в памяти для хранения слов данных интерфейса 1 |
address_two | начальный адрес в памяти для хранения слов данных интерфейса 2 |
channel | номер рабочего канала. Параметр channel может принимать значения:
|
None |
|
inlinestatic |
void MKPD_ConfigMonitor | ( | MKPD_T * | pMKPD, |
uint32_t | address, | ||
uint32_t | size, | ||
uint32_t | threshold | ||
) |
Настройка монитора
pMKPD | указатель на структуру с регистрами MKPD |
address | начальный адрес в памяти для хранения слов данных |
size | количество 32-битных слов, выделенных для монитора |
threshold | количество записанных слов, при котором срабатывает прерывание монитора |
None |
uint32_t MKPD_Get_Endpoint_COM_Data | ( | MKPD_T * | pMKPD | ) |
FlagStatus MKPD_Get_Endpoint_COM_Error | ( | MKPD_T * | pMKPD | ) |
FlagStatus MKPD_Get_Endpoint_COM_Timeout | ( | MKPD_T * | pMKPD | ) |
uint32_t MKPD_Get_Endpoint_Command_Word | ( | MKPD_T * | pMKPD | ) |
uint32_t MKPD_Get_Interrupt | ( | MKPD_T * | pMKPD | ) |
Установка приёмной частоты сигнала
pMKPD | указатель на структуру с регистрами MKPD |
clkrx | частота (в МГц). |
None | Возвращает значение прерывания |
pMKPD | указатель на структуру с регистрами MKPD |
Установка приёмной частоты сигнала
pMKPD | указатель на структуру с регистрами MKPD |
void MKPD_Loopback_Disable | ( | MKPD_T * | pMKPD | ) |
Отключение местного заворота линии
pMKPD | указатель на структуру с регистрами MKPD |
None |
void MKPD_Loopback_Enable | ( | MKPD_T * | pMKPD | ) |
Включение местного заворота линии
pMKPD | указатель на структуру с регистрами MKPD |
None |
|
inlinestatic |
Установка формата транзакции
pMKPD | : Указатель на структуру с регистрами MKPD |
index | : Номер интерфейса для передачи. TX_ONE либо TX_TWO |
type_trans | : Формат транзакции, доступны значения до 1 до 10 в соответствии с ГОСТ Р 52070-2003 |
manage_code | : Формат признака режима управления в командном слове. 0 = 00000 либо 1 = 11111 |
|
inlinestatic |
Установка параметров транзакции
pMKPD | указатель на структуру с регистрами MKPD |
index | номер интерфейса для передачи (TX_ONE/TX_TWO) |
ep_addr0 | адрес ОУ, которому предназначено КС |
sub_addr0 | подадрес ОУ (признак режима управления), которому предназначено КС |
ep_addr1 | адрес ОУ для второго КС |
sub_addr1 | подадрес ОУ для второго КС |
num | количество передаваемых или принимаемых СД. В режиме управления также содержит код команды |
None |
|
inlinestatic |
|
inlinestatic |
Установка рабочего канала для контроллера шины.
pMKPD | указатель на структуру с регистрами MKPD. |
channel | номер рабочего канала. Параметр channel может принимать значения:
|
None |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void MKPD_Set_Edge_Time | ( | MKPD_T * | pMKPD, |
uint32_t | edge | ||
) |
|
inlinestatic |
Установка признаков в ОС ОУ
pMKPD | указатель на структуру с регистрами MKPD |
attributes | набор признаков. Параметр attributes может принимать значения:
|
None |
|
inlinestatic |
void MKPD_Set_Endpoint_RDATA | ( | MKPD_T * | pMKPD, |
uint32_t | rdata | ||
) |
|
inlinestatic |
|
inlinestatic |
void MKPD_Set_Interpacket_Time | ( | MKPD_T * | pMKPD, |
uint32_t | time | ||
) |
void MKPD_Set_Inverting | ( | MKPD_T * | pMKPD, |
uint32_t | invert_params | ||
) |
Настройка параметров инвертирования дифференциального сигнала
pMKPD | указатель на структуру с регистрами MKPD |
invert_params | параметры инвертирования. Параметр invert_params может принимать значения:
|
None |
void MKPD_Set_InvTX | ( | MKPD_T * | pMKPD, |
unsigned int | invTX | ||
) |
|
inlinestatic |
Установка режима работы блока.
pMKPD | указатель на структуру с регистрами MKPD. |
channel | номер рабочего канала. Параметр channel может принимать значения:
|
None |
void MKPD_Set_Monitor_DMA_Address | ( | MKPD_T * | pMKPD, |
uint32_t | dma_monitor_addr | ||
) |
void MKPD_Set_Monitor_Memory_Size | ( | MKPD_T * | pMKPD, |
uint32_t | memory_size | ||
) |
void MKPD_Set_Monitor_Threshold | ( | MKPD_T * | pMKPD, |
uint32_t | threshold | ||
) |
|
inlinestatic |
void MKPD_Set_System_Clock | ( | MKPD_T * | pMKPD, |
uint32_t | sys_clk | ||
) |
void MKPD_Set_Wait_Time | ( | MKPD_T * | pMKPD, |
uint32_t | rwait | ||
) |
|
inlinestatic |
Передача сообщения от КШ
pMKPD | указатель на структуру с регистрами MKPD |
index | номер интерфейса для передачи (TX_ONE/TX_TWO) |
type_trans | формат транзакции, доступны значения (1..10) |
ep_addr0 | адрес ОУ, которому предназначено КС |
sub_addr0 | подадрес ОУ, которому предназначено КС |
ep_addr1 | адрес ОУ для второго КС |
sub_addr1 | подадрес ОУ для второго КС |
num | количество передаваемых или принимаемых СД. В режиме управления содержит код команды |
timeout | таймаут на передачу сообщения |