TI-radar AWR1843 C674x DSP core  1
mmWave_XSS.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * @file mmWave_XSS.h
3  * @brief This is the main common header file for both the MSS and DSS
4  * @author A. Astro, a.astro7x@gmail.com
5  * @date Jan 13 2020
6  * @version 0.1
7  *******************************************************************************/
8 
9 
10 #ifndef MMWAVE_XSS_H
11 #define MMWAVE_XSS_H
12 
13 /* To be enabled on MSS Core */
14 #define DSS
15 /* To be enabled on DSS Core */
16 //#define DSS
17 
18 /* MMWAVE Driver Include Files */
19 #include <ti/common/mmwave_error.h>
20 #include <ti/drivers/soc/soc.h>
21 #include <ti/drivers/crc/crc.h>
22 #include <ti/drivers/uart/UART.h>
23 #include <ti/drivers/pinmux/pinmux.h>
24 #include <ti/drivers/esm/esm.h>
25 #include <ti/drivers/soc/soc.h>
26 #include <ti/drivers/mailbox/mailbox.h>
27 #include <ti/control/mmwave/mmwave.h>
28 #include <ti/drivers/cbuff/cbuff.h>
29 #include <ti/drivers/adcbuf/ADCBuf.h>
30 #include <ti/drivers/edma/edma.h>
31 #include <ti/drivers/osal/DebugP.h>
32 
33 
34 /* BIOS/XDC Include Files */
35 #include <ti/sysbios/knl/Semaphore.h>
36 #include <ti/sysbios/knl/Event.h>
37 /* MMWAVE library Include Files */
38 #include <ti/control/mmwave/mmwave.h>
39 #include <common/app_cfg.h>
40 
41 /* MMW Demo Include Files */
42 #ifdef DSS
43 #include "dss_data_path.h"
44 #endif
45 
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
59 /*
60  #define MMWDEMO_CLI_SENSORSTART_EVT Event_Id_00
62 #define MMWDEMO_CLI_SENSORSTOP_EVT Event_Id_01
64 #define MMWDEMO_CLI_FRAMESTART_EVT Event_Id_02
66 #define MMWDEMO_BSS_CPUFAULT_EVT Event_Id_03
68 #define MMWDEMO_BSS_ESMFAULT_EVT Event_Id_04
70 #define MMWDEMO_BSS_MONITORING_REP_EVT Event_Id_05
72 #define MMWDEMO_BSS_CALIBRATION_REP_EVT Event_Id_06
74 #define MMWDEMO_DSS_START_COMPLETED_EVT Event_Id_07
76 #define MMWDEMO_DSS_STOP_COMPLETED_EVT Event_Id_08
78 #define MMWDEMO_DSS_START_FAILED_EVT Event_Id_09
79 */
80 
81 #define DSS_START_COMPLETED_EVT Event_Id_07
82 
83 
84 /* All CLI events */
85 #define MMWDEMO_CLI_EVENTS (MMWDEMO_CLI_SENSORSTART_EVT | \
86  MMWDEMO_CLI_SENSORSTOP_EVT | \
87  MMWDEMO_CLI_FRAMESTART_EVT)
88 
89 
90 /* All BSS faults events */
91 #define MMWDEMO_BSS_FAULT_EVENTS (MMWDEMO_BSS_CPUFAULT_EVT | \
92  MMWDEMO_BSS_ESMFAULT_EVT )
93 
94 
95 
96 
97 #ifdef DSS
98 
106 typedef enum MmwDemo_DSS_STATE_e
107 {
110 
113 
116 
120 
122 
123 typedef struct MmwDemo_DSS_STATS_t
124 {
128  uint8_t configEvt;
129 
133  uint8_t startEvt;
134 
138  uint8_t stopEvt;
139 
141  uint32_t chirpIntSkipCounter;
142 
144  uint32_t frameIntSkipCounter;
145 
147  uint32_t chirpIntCounter;
148 
150  uint32_t frameStartIntCounter;
151 
154  uint32_t chirpEvt;
155 
158  uint32_t frameStartEvt;
159 
162  uint32_t frameTrigEvt;
163 
165  uint32_t numFailedTimingReports;
166 
168  uint32_t numCalibrationReports;
169 
172  uint32_t detObjLoggingSkip;
173 
176  uint32_t detObjLoggingErr;
178 
179 #else
180 
187 typedef struct mmW_MSS_STATS_t
188 {
189 
190  uint8_t cliSensorStartEvt;
191  uint8_t cliSensorStopEvt;
192  uint8_t cliFrameStartEvt;
193  uint8_t datapathConfigEvt;
195  uint8_t datapathStartEvt;
196  uint8_t datapathStopEvt;
197  uint32_t numFailedTimingReports;
199  uint32_t numCalibrationReports;
200 }mmW_MSS_STATS;
201 #endif
202 
211 typedef struct MCB_t
212 {
213 
214  SOC_Handle socHandle;
215  Mbox_Handle mboxHandle;
216  Semaphore_Handle mboxSemHandle;
217  SOC_SysIntListenerHandle chirpIntHandle;
218  SOC_SysIntListenerHandle frameStartIntHandle;
219  MMWave_Handle ctrlHandle;
224 #ifdef DSS
225  ADCBuf_Handle adcBufHandle;
230  uint8_t subframeIndx;
233  uint8_t chirpProcToken;
234  uint8_t mboxProcToken;
235  uint8_t frameProcToken;
236 
237 #else
238  Event_Handle eventHandle;
239  UART_Handle loggingUartHandle;
240  UART_Handle commandUartHandle;
241  mmW_MSS_STATS stats;
242  bool cfgStatus;
243  bool runningStatus;
244  bool isMMWaveOpen;
245  int32_t frameStartToken;
246  int32_t subframeCntFromChirpInt;
247  int32_t subframeCntFromFrameStart;
248  int32_t chirpIntcumSum;
249  int32_t chirpInt;
250  int32_t numChirpsPerSubframe[NUM_SUBFRAMES];
251  int32_t subframeId;
252 #endif
253 
254 }MCB;
255 
256 extern MCB gMCB;
257 
258 #ifdef DSS
259 extern void _MmwDemo_dssAssert(int32_t expression, const char *file, int32_t line);
260 #define MmwDemo_dssAssert(expression) { \
261  _MmwDemo_dssAssert(expression, \
262  __FILE__, __LINE__); \
263  DebugP_assert(expression); \
264  }
265 #else
266 /*******************************************************************************************
267  * Extern CLI API:
268  *******************************************************************************************/
269 extern void MSS_CLIInit (void);
270 
271 #endif
272 
273 
274 /*******************************************************************************************
275  * Extern CFG API:
276  *******************************************************************************************/
277 extern void Cfg_AdvFrameCfgInitParams (rlAdvFrameCfg_t* ptrAdvFrameCfg);
278 extern void Cfg_FrameCfgInitParams (rlFrameCfg_t* ptrFrameCfg);
279 extern void Cfg_ProfileCfgInitParams (uint8_t profileNum, rlProfileCfg_t* ptrProfileCfg);
280 extern void Cfg_ChirpCfgInitParams (uint8_t chirpNum, rlChirpCfg_t* ptrChirpCfg);
281 extern void Cfg_LowPowerModeInitParams (rlLowPowerModeCfg_t* ptrLowPowerMode);
282 extern void Cfg_ChannelCfgInitParams (rlChanCfg_t* ptrChannelCfg);
283 extern void Cfg_ADCOutCfgInitParams (rlAdcOutCfg_t* ptrADCOutCfg);
284 
285 #ifdef __cplusplus
286 }
287 #endif
288 
289 #endif /* MMWAVE_XSS */
MmwDemo_DSS_STATS_t::chirpIntSkipCounter
uint32_t chirpIntSkipCounter
Counter which tracks the number of chirp interrupt skipped due to stopped state of sensor.
Definition: mmWave_XSS.h:140
MmwDemo_DSS_STATE_INIT
State after data path is initialized.
Definition: mmWave_XSS.h:108
MmwDemo_DSS_STATS_t::chirpIntCounter
uint32_t chirpIntCounter
Counter which tracks the number of chirp interrupt detected.
Definition: mmWave_XSS.h:146
MCB_t::loggingBufferAvailable
uint8_t loggingBufferAvailable
! Data Path object
Definition: mmWave_XSS.h:228
MmwDemo_DSS_STATE_STARTED
State after data path is started.
Definition: mmWave_XSS.h:111
MCB
struct MCB_t MCB
DSP-Subsystem (DSS) Master control block (MCB) The structure is used to hold handling information,...
MmwDemo_DSS_STATE_STOP_PENDING
State after STOP request was received by DSP but complete stop is on-going.
Definition: mmWave_XSS.h:118
MmwDemo_DSS_STATS_t::frameStartEvt
uint32_t frameStartEvt
Counter which tracks the number of frame start event detected The frame start event is triggered in t...
Definition: mmWave_XSS.h:157
MmwDemo_DSS_STATE_STOPPED
State after data path is stopped.
Definition: mmWave_XSS.h:114
MmwDemo_DSS_STATS_t::detObjLoggingSkip
uint32_t detObjLoggingSkip
Counter which tracks the number of times saving detected objects in logging buffer is skipped.
Definition: mmWave_XSS.h:171
Cfg_ProfileCfgInitParams
void Cfg_ProfileCfgInitParams(uint8_t profileNum, rlProfileCfg_t *ptrProfileCfg)
The function initializes the profile configuration with the default parameters.
Definition: frame_cfg.c:167
MmwDemo_DSS_STATS_t::frameStartIntCounter
uint32_t frameStartIntCounter
Counter which tracks the number of frame start interrupt detected.
Definition: mmWave_XSS.h:149
Cfg_ChirpCfgInitParams
void Cfg_ChirpCfgInitParams(uint8_t chirpNum, rlChirpCfg_t *ptrChirpCfg)
The function initializes the chirp configuration with the default parameters.
Definition: frame_cfg.c:204
MCB_t::mboxHandle
Mbox_Handle mboxHandle
! Handle to the SOC Module
Definition: mmWave_XSS.h:214
_MmwDemo_dssAssert
void _MmwDemo_dssAssert(int32_t expression, const char *file, int32_t line)
Definition: dss_main.c:302
MmwDemo_DSS_STATS
struct MmwDemo_DSS_STATS_t MmwDemo_DSS_STATS
MmwDemo_DSS_STATS_t
Definition: mmWave_XSS.h:122
MmwDemo_DSS_STATS_t::configEvt
uint8_t configEvt
Counter which tracks the number of config events The config event is triggered in mmwave config callb...
Definition: mmWave_XSS.h:127
Cfg_ChannelCfgInitParams
void Cfg_ChannelCfgInitParams(rlChanCfg_t *ptrChannelCfg)
The function initializes the channel configuration with the default parameters.
Definition: frame_cfg.c:285
MmwDemo_DSS_STATS_t::frameIntSkipCounter
uint32_t frameIntSkipCounter
Counter which tracks the number of chirp interrupt skipped due to stopped state of sensor.
Definition: mmWave_XSS.h:143
MCB_t::frameStartIntHandle
SOC_SysIntListenerHandle frameStartIntHandle
! Handle to the SOC chirp interrupt listener Handle
Definition: mmWave_XSS.h:217
MCB_t::ctrlHandle
MMWave_Handle ctrlHandle
! Handle to the SOC frame interrupt listener Handle
Definition: mmWave_XSS.h:218
MCB_t::state
MmwDemo_DSS_STATE state
! Handle to the ADCBUF Driver
Definition: mmWave_XSS.h:225
MmwDemo_DSS_STATE
enum MmwDemo_DSS_STATE_e MmwDemo_DSS_STATE
Millimeter Wave Demo state.
MCB_t::stats
MmwDemo_DSS_STATS stats
! mmw Demo state
Definition: mmWave_XSS.h:226
MmwDemo_DSS_STATS_t::numCalibrationReports
uint32_t numCalibrationReports
Counter which tracks the number of Calibration Report received from BSS
Definition: mmWave_XSS.h:167
MmwDemo_DSS_STATS_t::chirpEvt
uint32_t chirpEvt
Counter which tracks the number of chirp event detected The chirp event is triggered in the ISR for c...
Definition: mmWave_XSS.h:153
app_cfg.h
MmwDemo_DSS_STATE_e
MmwDemo_DSS_STATE_e
Millimeter Wave Demo state.
Definition: mmWave_XSS.h:105
MmwDemo_DSS_STATS_t::detObjLoggingErr
uint32_t detObjLoggingErr
Counter which tracks the number of times saving detected objects in logging buffer has an error.
Definition: mmWave_XSS.h:175
Cfg_ADCOutCfgInitParams
void Cfg_ADCOutCfgInitParams(rlAdcOutCfg_t *ptrADCOutCfg)
The function initializes the ADCOut configuration with the default parameters.
Definition: frame_cfg.c:308
MCB_t::chirpIntHandle
SOC_SysIntListenerHandle chirpIntHandle
! Semaphore handle for the mailbox communication
Definition: mmWave_XSS.h:216
MCB_t::socHandle
SOC_Handle socHandle
Definition: mmWave_XSS.h:213
gMCB
MCB gMCB
Global Variable for tracking information required by the design.
Definition: dss_main.c:97
MCB_t::frameProcToken
uint8_t frameProcToken
! 'mailbox has a message' token
Definition: mmWave_XSS.h:234
Cfg_LowPowerModeInitParams
void Cfg_LowPowerModeInitParams(rlLowPowerModeCfg_t *ptrLowPowerMode)
The function initializes the low power configuration with the default parameters.
Definition: frame_cfg.c:264
MCB_t
DSP-Subsystem (DSS) Master control block (MCB) The structure is used to hold handling information,...
Definition: mmWave_XSS.h:210
MCB_t::dataPathObj
DSS_DataPathObj dataPathObj[NUM_SUBFRAMES]
! mmw Demo statistics
Definition: mmWave_XSS.h:227
MmwDemo_DSS_STATS_t::numFailedTimingReports
uint32_t numFailedTimingReports
Counter which tracks the number of Failed Timing Reports received from BSS
Definition: mmWave_XSS.h:164
DSS_DataPathObj_t
Millimeter Wave Demo Data Path Information.
Definition: dss_data_path.h:444
MCB_t::interFrameProcToken
uint8_t interFrameProcToken
! Subframe index
Definition: mmWave_XSS.h:230
MmwDemo_DSS_STATS_t::stopEvt
uint8_t stopEvt
Counter which tracks the number of stop events The start event is triggered in mmwave stop callback f...
Definition: mmWave_XSS.h:137
MmwDemo_DSS_STATS_t::frameTrigEvt
uint32_t frameTrigEvt
Counter which tracks the number of frames triggered in BSS detected The frame trigger event is trigge...
Definition: mmWave_XSS.h:161
MCB_t::subframeIndx
uint8_t subframeIndx
! Logging buffer flag
Definition: mmWave_XSS.h:229
MCB_t::chirpProcToken
uint8_t chirpProcToken
! frame start token
Definition: mmWave_XSS.h:232
MmwDemo_DSS_STATS_t::startEvt
uint8_t startEvt
Counter which tracks the number of start events The start event is triggered in mmwave start callback...
Definition: mmWave_XSS.h:132
MCB_t::mboxSemHandle
Semaphore_Handle mboxSemHandle
! Handle to the peer Mailbox used to exchange messages between the MSS and DSS
Definition: mmWave_XSS.h:215
MCB_t::frameStartIntToken
uint8_t frameStartIntToken
! inter frameProc token
Definition: mmWave_XSS.h:231
MCB_t::mboxProcToken
uint8_t mboxProcToken
! chirpProc token
Definition: mmWave_XSS.h:233
NUM_SUBFRAMES
#define NUM_SUBFRAMES
Definition: app_cfg.h:80
Cfg_AdvFrameCfgInitParams
void Cfg_AdvFrameCfgInitParams(rlAdvFrameCfg_t *ptrAdvFrameCfg)
The function initializes the frame configuration with the default parameters.
Definition: frame_cfg.c:42
MCB_t::adcBufHandle
ADCBuf_Handle adcBufHandle
mmWave control handle use to initialize the link infrastructure, which allows communication between t...
Definition: mmWave_XSS.h:224
dss_data_path.h
This is the data path processing header.
Cfg_FrameCfgInitParams
void Cfg_FrameCfgInitParams(rlFrameCfg_t *ptrFrameCfg)
The function initializes the frame configuration with the default parameters.
Definition: frame_cfg.c:138