Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
tmtx.h
См. документацию.
1 
29 #ifndef TMTX_H_
30 #define TMTX_H_
31 
32 #include "types.h"
33 
36 typedef struct
37 {
38  volatile uint32_t DATA_PTR;
39  volatile uint32_t HEADER;
40 }TCRX_DSC_T;
41 
44 typedef struct
45 {
46  __RW uint32_t DSCR1_PTR;
47  __RW uint32_t DSCR1_FLAG_SIZE;
48  __RW uint32_t DSCR2_PTR;
49  __RW uint32_t DSCR2_FLAG_SIZE;
50  __RW uint32_t GLOBAL_ENABLE;
51  __RW uint32_t CODER_SEL;
54  __RW uint32_t MARKER1;
55  __RW uint32_t MARKER2;
56  __RW uint32_t MARKER3;
57  __RW uint32_t MARKER4;
58  __RW uint32_t MARKER5;
59  __RW uint32_t MARKER6;
60  __RW uint32_t CODERS_CONFIG;
61 }TMTX_T;
62 
66 #define TMTX_DSCR_PTR_DSCR_PTR(x) ((uint32_t)((x & 0x3FFFFFFF) << 2))
73 #define TMTX_DSCR1_SIZE_FLAG_DATA_SIZE(x) ((uint32_t)((x & 0x7FF) << 0))
74 #define TMTX_DSCR1_SIZE_FLAG_DATA_PRES ((uint32_t)(1 << 31))
79 #define TMTX_GLOBAL_ENABLE ((uint32_t)(1 << 0))
84 #define TMTX_PHY_FIFO_UNDERRUN ((uint32_t)(1 << 0))
89 typedef enum
90 {
91  TMTX_CODER_SEL_LDPC = ((uint32_t)(1 << 0)),
92  TMTX_CODER_SEL_TURBO = ((uint32_t)(2 << 0)),
93  TMTX_CODER_SEL_RS = ((uint32_t)(3 << 0)),
94  TMTX_CODER_SEL_NONE = ((uint32_t)(0 << 0)),
95  TMTX_CODER_CONV_SEL = ((uint32_t)(1 << 2)),
96  TMTX_CODER_RAND_SEL = ((uint32_t)(1 << 3)),
98 
102 #define TMTX_MARKER_AND_FRAME_FRAME_SIZE(x) ((uint32_t)((x & 0xFFFF) << 0))
103 #define TMTX_MARKER_AND_FRAME_MARKER_SIZE(x) ((uint32_t)((x & 0xFF) << 16))
108 typedef enum
109 {
110  TMTX_CC_CONV_1DIV2 = ((uint32_t)(1 << 0)),
111  TMTX_CC_CONV_2DIV3 = ((uint32_t)(2 << 0)),
112  TMTX_CC_CONV_3DIV4 = ((uint32_t)(3 << 0)),
113  TMTX_CC_CONV_5DIV6 = ((uint32_t)(5 << 0)),
114  TMTX_CC_CONV_7DIV8 = ((uint32_t)(7 << 0)),
117 typedef enum
118 {
119  TMTX_CC_TURBO_1DIV2 = ((uint32_t)(0 << 8)),
120  TMTX_CC_TURBO_1DIV3 = ((uint32_t)(1 << 8)),
121  TMTX_CC_TURBO_1DIV4 = ((uint32_t)(2 << 8)),
122  TMTX_CC_TURBO_1DIV6 = ((uint32_t)(3 << 8)),
125 typedef enum
126 {
127  TMTX_CC_RS_TYPE_239 = ((uint32_t)(0 << 16)),
128  TMTX_CC_RS_TYPE_223 = ((uint32_t)(1 << 16)),
129  TMTX_CC_RS_TYPE_239_CONV = ((uint32_t)(2 << 16)),
130  TMTX_CC_RS_TYPE_223_CONV = ((uint32_t)(3 << 16)),
133 typedef enum
134 {
135  TMTX_CC_LDPC_TYPE_7136 = ((uint32_t)(0 << 24)),
138 
139 
140 
144 #define TMTX_FRAME_SIZE_MAX 2048
145 #define TMTX_FRAME_SIZE_LDPC 892
146 #define TMTX_FRAME_SIZE_TURBO 223
147 #define TMTX_FRAME_SIZE_RS_239 239
148 #define TMTX_FRAME_SIZE_RS_223 223
150 #define TMTX_BIT_OUT_SIZE_MAX (TMTX_FRAME_SIZE_MAX*8)
151 #define TMTX_BIT_OUT_SIZE_LDPC_7136 8160
152 #define TMTX_BIT_OUT_SIZE_LDPC_7156 8176
153 #define TMTX_BIT_OUT_SIZE_TURBO_1DIV2 3576
154 #define TMTX_BIT_OUT_SIZE_TURBO_1DIV3 5364
155 #define TMTX_BIT_OUT_SIZE_TURBO_1DIV4 7152
156 #define TMTX_BIT_OUT_SIZE_TURBO_1DIV6 10728
157 #define TMTX_BIT_OUT_SIZE_RS 2040
159 #define TMTX_MAX_MARKER_SIZE 192
160 #define TMTX_MAX_DSCR_SIZE 2048
166 void TMTX_Set_DSCR1_Pointer(uint32_t addr);
167 
172 void TMTX_Set_DSCR2_Pointer(uint32_t addr);
173 
178 void TMTX_Set_DSCR1_Size(uint32_t size);
179 
184 void TMTX_Set_DSCR2_Size(uint32_t size);
185 
189 void TMTX_DSCR1_Data_Ready();
190 
194 void TMTX_DSCR2_Data_Ready();
195 
199 void TMTX_Global_Enable();
200 
204 void TMTX_Global_Disable();
205 
214 uint32_t TMTX_Get_Coder();
215 
221 
226 
232 void TMTX_Set_Marker_And_Frame_Size(uint8_t marker_size, uint32_t frame_size);
233 
243 uint32_t TMTX_Get_Conv_Type();
244 
253 uint32_t TMTX_Get_Turbo_Type();
254 
263 uint32_t TMTX_Get_RS_Type();
264 
265 
272 uint32_t TMTX_Get_LDPC_Type();
273 
277 uint32_t TMTX_GetFrameSize();
278 
289 void TMTX_SetSyncMarker(uint8_t marker_size,
290  uint32_t marker1,
291  uint32_t marker2,
292  uint32_t marker3,
293  uint32_t marker4,
294  uint32_t marker5,
295  uint32_t marker6);
296 
305 void TMTX_SetEncoder(uint32_t coder_sel,
306  uint32_t coder_config,
307  uint32_t rand_state,
308  uint32_t conv_state,
309  uint32_t conv_speed);
310 
311 
312 #endif
__RW uint32_t PHY_FIFO_UNDERRUN
Definition: tmtx.h:52
__RW uint32_t DSCR2_FLAG_SIZE
Definition: tmtx.h:49
void TMTX_Set_DSCR1_Size(uint32_t size)
Установка размера дескриптора 1.
Definition: tmtx.c:150
Этот файл содержит структуры, макросы и функции необходимые для работы с дополнительными типами...
__RW uint32_t MARKER_AND_FRAME_SIZE
Definition: tmtx.h:53
#define __RW
Definition: types.h:39
Структура дескрипторов модуля приемника телекомандной информации
Definition: tcrx.h:38
TMTX_CODER_SEL_T
Типы и макросы для CODER_SEL.
Definition: tmtx.h:91
__RW uint32_t CODER_SEL
Definition: tmtx.h:51
__RW uint32_t GLOBAL_ENABLE
Definition: tmtx.h:50
__RW uint32_t MARKER2
Definition: tmtx.h:55
void TMTX_Set_DSCR2_Pointer(uint32_t addr)
Установка указателя на адрес памяти для дескриптора 2.
Definition: tmtx.c:141
uint32_t TMTX_Get_Conv_Type()
Возвращает тип используемого сверточного кодера
Definition: tmtx.c:268
uint32_t TMTX_Get_Coder()
Возвращает тип используемого кодера
Definition: tmtx.c:218
FlagStatus
Тип для состояний флагов
Definition: types.h:64
void TMTX_Global_Disable()
Функция отключает Global Enable контроллера: все кодеры, fifo, ahb контроллер будут находиться в асин...
Definition: tmtx.c:205
__RW uint32_t DSCR1_PTR
Definition: tmtx.h:46
Структура для доступа к регистрам модуля передатчика телеметрической информации
Definition: tmtx.h:44
TMTX_CODERS_CONFIG_CONV_T
Макросы и типы для CODERS_CONFIG.
Definition: tmtx.h:110
void TMTX_SetEncoder(uint32_t coder_sel, uint32_t coder_config, uint32_t rand_state, uint32_t conv_state, uint32_t conv_speed)
Установка используемого кодера и настройка режима его работы, настройка рандомизатора и сверточного к...
Definition: tmtx.c:118
volatile uint32_t HEADER
Заголовок
Definition: tmtx.h:39
void TMTX_Global_Enable()
Функция активирует Global Enable контроллера: включение всех модулей, ответственных за передачу данны...
Definition: tmtx.c:197
void TMTX_DSCR2_Data_Ready()
Необходимо вызывать функцию после того, как данные для дескриптора 2 подготовлены для передачи ...
Definition: tmtx.c:189
__RW uint32_t MARKER6
Definition: tmtx.h:59
uint32_t TMTX_Get_LDPC_Type()
Возвращает код, соответствующий выбранному типу кодера LDPC.
Definition: tmtx.c:305
void TMTX_SetSyncMarker(uint8_t marker_size, uint32_t marker1, uint32_t marker2, uint32_t marker3, uint32_t marker4, uint32_t marker5, uint32_t marker6)
Настройка параметров синхромаркера. Производится после выбора и настройки кодера. ...
Definition: tmtx.c:99
volatile uint32_t DATA_PTR
Указатель на данные
Definition: tmtx.h:38
void TMTX_Set_DSCR2_Size(uint32_t size)
Установка размера дескриптора 2.
Definition: tmtx.c:166
FlagStatus TMTX_FIFO_Underrun()
Функция возвращает значение флага опустошения асинхронного FIFO.
Definition: tmtx.c:227
void TMTX_Set_Marker_And_Frame_Size(uint8_t marker_size, uint32_t frame_size)
Установка размера синхромаркера и периода вставки синхромаркера
Definition: tmtx.c:245
TMTX_CODERS_CONFIG_TURBO_T
Definition: tmtx.h:119
TMTX_CODERS_CONFIG_RS_T
Definition: tmtx.h:127
uint32_t TMTX_GetFrameSize()
Функция, возвращающая размер фрейма, соответствующий настроенному энкодеру, в байтах ...
Definition: tmtx.c:74
__RW uint32_t CODERS_CONFIG
Definition: tmtx.h:60
__RW uint32_t DSCR2_PTR
Definition: tmtx.h:48
uint32_t TMTX_Get_Turbo_Type()
Возвращает тип используемого турбо кодера
Definition: tmtx.c:281
__RW uint32_t MARKER5
Definition: tmtx.h:58
uint32_t TMTX_Get_RS_Type()
Возвращает тип используемого кодера Рида-Соломона
Definition: tmtx.c:294
__RW uint32_t MARKER4
Definition: tmtx.h:57
void TMTX_FIFO_Underrun_Clear_Flag()
Сброс флага опустошения асинхронного FIFO.
Definition: tmtx.c:235
__RW uint32_t MARKER3
Definition: tmtx.h:56
__RW uint32_t DSCR1_FLAG_SIZE
Definition: tmtx.h:47
TMTX_CODERS_CONFIG_LDPC_T
Definition: tmtx.h:135
__RW uint32_t MARKER1
Definition: tmtx.h:54
void TMTX_DSCR1_Data_Ready()
Необходимо вызывать функцию после того, как данные для дескриптора 1 подготовлены для передачи ...
Definition: tmtx.c:181