Stand Übergabe
This commit is contained in:
parent
c986807e75
commit
912c0f9a7a
280
mss/mss_main.c
280
mss/mss_main.c
@ -108,6 +108,8 @@
|
|||||||
#include <ti/drivers/uart/UART.h>
|
#include <ti/drivers/uart/UART.h>
|
||||||
#include <ti/utils/cli/cli.h>
|
#include <ti/utils/cli/cli.h>
|
||||||
#include <ti/utils/mathutils/mathutils.h>
|
#include <ti/utils/mathutils/mathutils.h>
|
||||||
|
#include <ti/drivers/canfd/canfd.h> //Einf<6E>gen des Drivers f<>r den Can Anschluss
|
||||||
|
|
||||||
|
|
||||||
/* Demo Include Files */
|
/* Demo Include Files */
|
||||||
#include <people_counting/68xx_3D_people_counting/src/common/mmwdemo_rfparser.h>
|
#include <people_counting/68xx_3D_people_counting/src/common/mmwdemo_rfparser.h>
|
||||||
@ -182,6 +184,23 @@ uint8_t gDPCTCM[MMWDEMO_OBJDET_LOCALRAM_SIZE];
|
|||||||
#pragma DATA_SECTION(gMmwL3, ".l3ram");
|
#pragma DATA_SECTION(gMmwL3, ".l3ram");
|
||||||
uint8_t gMmwL3[MMWAVE_MSSUSED_L3RAM_SIZE];
|
uint8_t gMmwL3[MMWAVE_MSSUSED_L3RAM_SIZE];
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*************************** MCAN Global Definitions ***********************
|
||||||
|
**************************************************************************/
|
||||||
|
volatile uint32_t gTxDoneFlag = 0, gRxDoneFlag = 0, gParityErrFlag = 0;
|
||||||
|
volatile uint32_t gTxPkts = 0, gRxPkts = 0, gErrStatusInt = 0;
|
||||||
|
volatile uint32_t iterationCount = 0U;
|
||||||
|
uint32_t dataLength = 0U;
|
||||||
|
uint32_t msgLstErrCnt = 0U;
|
||||||
|
uint32_t gDisplayStats = 0;
|
||||||
|
uint8_t rxData[64U];
|
||||||
|
uint32_t txDataLength, rxDataLength;
|
||||||
|
CANFD_MCANFrameType frameType = CANFD_MCANFrameType_CLASSIC; //frameType auf Classic festlegen f<>r kklassische CAN Kommunikation
|
||||||
|
static void MCANAppInitParams(CANFD_MCANInitParams* mcanCfgParams);
|
||||||
|
CANFD_Handle canHandle;
|
||||||
|
CANFD_MsgObjHandle txMsgObjHandle;
|
||||||
|
CANFD_MCANMsgObjCfgParams txMsgObjectParams;
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*************************** Extern Definitions ***************************
|
*************************** Extern Definitions ***************************
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@ -245,7 +264,261 @@ static void Pcount3DDemo_EDMA_transferControllerErrorCallbackFxn(EDMA_Handle han
|
|||||||
EDMA_transferControllerErrorInfo_t *errorInfo);
|
EDMA_transferControllerErrorInfo_t *errorInfo);
|
||||||
static void Pcount3DDemo_EDMA_errorCallbackFxn(EDMA_Handle handle, EDMA_errorInfo_t *errorInfo);
|
static void Pcount3DDemo_EDMA_errorCallbackFxn(EDMA_Handle handle, EDMA_errorInfo_t *errorInfo);
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*************************** CAN Driver Initialize Function ***********************--------------------------------------------------------------------
|
||||||
|
****************************************************************************************CAN-Anbindung**************/
|
||||||
|
void Can_Initalize(void)
|
||||||
|
{
|
||||||
|
int32_t errCode = 0;
|
||||||
|
int32_t retVal = 0;
|
||||||
|
CANFD_MCANInitParams mcanCfgParams;
|
||||||
|
CANFD_MCANBitTimingParams mcanBitTimingParams;
|
||||||
|
CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
|
||||||
|
CANFD_MsgObjHandle rxMsgObjHandle;
|
||||||
|
gTxDoneFlag = 0;
|
||||||
|
gRxDoneFlag = 0;
|
||||||
|
/* Setup the PINMUX to bring out the XWR16xx CAN pins */
|
||||||
|
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PINE14_PADAE, PINMUX_OUTEN_RETAIN_HW_CTRL,
|
||||||
|
PINMUX_INPEN_RETAIN_HW_CTRL);
|
||||||
|
Pinmux_Set_FuncSel(SOC_XWR68XX_PINE14_PADAE, SOC_XWR68XX_PINE14_PADAE_CANFD_TX);
|
||||||
|
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PIND13_PADAD, PINMUX_OUTEN_RETAIN_HW_CTRL,
|
||||||
|
PINMUX_INPEN_RETAIN_HW_CTRL);
|
||||||
|
Pinmux_Set_FuncSel(SOC_XWR68XX_PIND13_PADAD, SOC_XWR68XX_PIND13_PADAD_CANFD_RX);
|
||||||
|
/* Configure the divide value for MCAN source clock */
|
||||||
|
SOC_setPeripheralClock(gMmwMssMCB.socHandle, SOC_MODULE_MCAN, SOC_CLKSOURCE_VCLK, 4U, &errCode);
|
||||||
|
/* Initialize peripheral memory */
|
||||||
|
SOC_initPeripheralRam(gMmwMssMCB.socHandle, SOC_MODULE_MCAN, &errCode);
|
||||||
|
MCANAppInitParams (&mcanCfgParams);
|
||||||
|
/* Initialize the CANFD driver */
|
||||||
|
canHandle = CANFD_init(0U, &mcanCfgParams, &errCode);
|
||||||
|
if (canHandle == NULL)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CANFD Module Initialization failed [Error code %d]\n", errCode);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Configuring 1Mbps and 5Mbps as nominal and data bit-rate respectively
|
||||||
|
Prop seg: 8
|
||||||
|
Ph seg 1: 6
|
||||||
|
Ph Seg2 : 5
|
||||||
|
Sync jump: 1
|
||||||
|
BRP(Baud rate Prescaler): 2
|
||||||
|
Nominal Bit rate = (40)/(((8+6+5)+1)*BRP) = 1Mhz
|
||||||
|
Timing Params for Data Bit rate:
|
||||||
|
Prop seg: 2
|
||||||
|
Ph seg 1: 2
|
||||||
|
Ph Seg2 : 3
|
||||||
|
Sync jump: 1
|
||||||
|
BRP(Baud rate Prescaler): 1
|
||||||
|
Nominal Bit rate = (40)/(((2+2+3)+1)*BRP) = 5Mhz
|
||||||
|
*/
|
||||||
|
mcanBitTimingParams.nomBrp = 0x4U; //um vorgegebene Bitrate zu erreichen
|
||||||
|
mcanBitTimingParams.nomPropSeg = 0x8U;
|
||||||
|
mcanBitTimingParams.nomPseg1 = 0x6U;
|
||||||
|
mcanBitTimingParams.nomPseg2 = 0x5U;
|
||||||
|
mcanBitTimingParams.nomSjw = 0x1U;
|
||||||
|
|
||||||
|
mcanBitTimingParams.dataBrp = 0x4U; //um vorgegebene Bitrate zu erreichen
|
||||||
|
mcanBitTimingParams.dataPropSeg = 0x2U;
|
||||||
|
mcanBitTimingParams.dataPseg1 = 0x2U;
|
||||||
|
mcanBitTimingParams.dataPseg2 = 0x3U;
|
||||||
|
mcanBitTimingParams.dataSjw = 0x1U;
|
||||||
|
|
||||||
|
|
||||||
|
/* Configure the CAN driver */
|
||||||
|
retVal = CANFD_configBitTime (canHandle, &mcanBitTimingParams, &errCode);
|
||||||
|
if (retVal < 0)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CANFD Module configure bit time failed [Error code %d]\n",
|
||||||
|
errCode);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
/* Setup the transmit message object */
|
||||||
|
txMsgObjectParams.direction = CANFD_Direction_TX;
|
||||||
|
txMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT; //ID Type wird ge<67>ndert
|
||||||
|
txMsgObjectParams.msgIdentifier = 0xD1;
|
||||||
|
txMsgObjHandle = CANFD_createMsgObject (canHandle, &txMsgObjectParams, &errCode);
|
||||||
|
if (txMsgObjHandle == NULL)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CANFD create Tx message object failed [Error code %d]\n",
|
||||||
|
errCode);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
/* Setup the receive message object */
|
||||||
|
rxMsgObjectParams.direction = CANFD_Direction_RX;
|
||||||
|
rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT; //ID Type wird ge<67>ndert
|
||||||
|
rxMsgObjectParams.msgIdentifier = 0xD1;
|
||||||
|
rxMsgObjHandle = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
|
||||||
|
if (rxMsgObjHandle == NULL)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n",
|
||||||
|
errCode);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
******************** CAN Parameters initialize Function *****************
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
static void MCANAppCallback(CANFD_MsgObjHandle handle, CANFD_Reason reason)
|
||||||
|
{
|
||||||
|
int32_t errCode, retVal;
|
||||||
|
uint32_t id;
|
||||||
|
CANFD_MCANFrameType rxFrameType;
|
||||||
|
CANFD_MCANXidType rxIdType;
|
||||||
|
if (reason == CANFD_Reason_TX_COMPLETION)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
gTxPkts++;
|
||||||
|
gTxDoneFlag = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reason == CANFD_Reason_RX)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
/* Reset the receive buffer */
|
||||||
|
memset(&rxData, 0, sizeof (rxData));
|
||||||
|
dataLength = 0;
|
||||||
|
retVal = CANFD_getData (handle, &id, &rxFrameType, &rxIdType, &rxDataLength,
|
||||||
|
&rxData[0], &errCode);
|
||||||
|
if (retVal < 0)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CAN receive data for iteration %d failed [Error code %d]\n", iterationCount, errCode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (rxFrameType != frameType)
|
||||||
|
{
|
||||||
|
System_printf ("Error: CAN received incorrect frame type Sent %d Received %d for iteration %d failed\n", frameType, rxFrameType, iterationCount);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* Validate the data */
|
||||||
|
gRxPkts++;
|
||||||
|
gRxDoneFlag = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reason == CANFD_Reason_TX_CANCELED)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
gTxPkts++;
|
||||||
|
gTxDoneFlag = 1;
|
||||||
|
gRxDoneFlag = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void MCANAppErrStatusCallback(CANFD_Handle handle, CANFD_Reason reason,
|
||||||
|
CANFD_ErrStatusResp* errStatusResp)
|
||||||
|
{
|
||||||
|
/*Record the error count */
|
||||||
|
gErrStatusInt++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void MCANAppInitParams(CANFD_MCANInitParams* mcanCfgParams)
|
||||||
|
{
|
||||||
|
/*Intialize MCAN Config Params*/
|
||||||
|
memset (mcanCfgParams, sizeof (CANFD_MCANInitParams), 0);
|
||||||
|
mcanCfgParams->fdMode = 0x1U;
|
||||||
|
mcanCfgParams->brsEnable = 0x1U;
|
||||||
|
mcanCfgParams->txpEnable = 0x0U;
|
||||||
|
mcanCfgParams->efbi = 0x0U;
|
||||||
|
mcanCfgParams->pxhddisable = 0x0U;
|
||||||
|
mcanCfgParams->darEnable = 0x1U;
|
||||||
|
mcanCfgParams->wkupReqEnable = 0x1U;
|
||||||
|
mcanCfgParams->autoWkupEnable = 0x1U;
|
||||||
|
mcanCfgParams->emulationEnable = 0x0U;
|
||||||
|
mcanCfgParams->emulationFAck = 0x0U;
|
||||||
|
mcanCfgParams->clkStopFAck = 0x0U;
|
||||||
|
mcanCfgParams->wdcPreload = 0x0U;
|
||||||
|
mcanCfgParams->tdcEnable = 0x1U;
|
||||||
|
mcanCfgParams->tdcConfig.tdcf = 0U;
|
||||||
|
mcanCfgParams->tdcConfig.tdco = 8U;
|
||||||
|
mcanCfgParams->monEnable = 0x0U;
|
||||||
|
mcanCfgParams->asmEnable = 0x0U;
|
||||||
|
mcanCfgParams->tsPrescalar = 0x0U;
|
||||||
|
mcanCfgParams->tsSelect = 0x0U;
|
||||||
|
mcanCfgParams->timeoutSelect = CANFD_MCANTimeOutSelect_CONT;
|
||||||
|
mcanCfgParams->timeoutPreload = 0x0U;
|
||||||
|
mcanCfgParams->timeoutCntEnable = 0x0U;
|
||||||
|
mcanCfgParams->filterConfig.rrfe = 0x1U;
|
||||||
|
mcanCfgParams->filterConfig.rrfs = 0x1U;
|
||||||
|
mcanCfgParams->filterConfig.anfe = 0x1U;
|
||||||
|
mcanCfgParams->filterConfig.anfs = 0x1U;
|
||||||
|
mcanCfgParams->msgRAMConfig.lss = 127U;
|
||||||
|
mcanCfgParams->msgRAMConfig.lse = 64U;
|
||||||
|
mcanCfgParams->msgRAMConfig.txBufNum = 32U;
|
||||||
|
mcanCfgParams->msgRAMConfig.txFIFOSize = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.txBufMode = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.txEventFIFOSize = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.txEventFIFOWaterMark = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO0size = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO0OpMode = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO0waterMark = 0U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO1size = 64U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO1waterMark = 64U;
|
||||||
|
mcanCfgParams->msgRAMConfig.rxFIFO1OpMode = 64U;
|
||||||
|
mcanCfgParams->eccConfig.enable = 1;
|
||||||
|
mcanCfgParams->eccConfig.enableChk = 1;
|
||||||
|
mcanCfgParams->eccConfig.enableRdModWr = 1;
|
||||||
|
mcanCfgParams->errInterruptEnable = 1U;
|
||||||
|
mcanCfgParams->dataInterruptEnable = 1U;
|
||||||
|
mcanCfgParams->appErrCallBack = MCANAppErrStatusCallback;
|
||||||
|
mcanCfgParams->appDataCallBack = MCANAppCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t Can_Transmit_Schedule( uint32_t msg_id, uint8_t *txmsg, uint32_t len)
|
||||||
|
{
|
||||||
|
volatile uint32_t index = 0;
|
||||||
|
int32_t retVal = 0;
|
||||||
|
int32_t errCode = 0;
|
||||||
|
|
||||||
|
if(frameType == CANFD_MCANFrameType_FD)
|
||||||
|
{
|
||||||
|
Task_sleep(1);
|
||||||
|
while(len > 64U)
|
||||||
|
{
|
||||||
|
retVal = CANFD_transmitData (txMsgObjHandle, msg_id, CANFD_MCANFrameType_FD, 64U, &txmsg[index],
|
||||||
|
&errCode);
|
||||||
|
index = index + 64U;
|
||||||
|
len = len - 64U;
|
||||||
|
Task_sleep(1);
|
||||||
|
}
|
||||||
|
retVal = CANFD_transmitData (txMsgObjHandle, msg_id, CANFD_MCANFrameType_FD, len, &txmsg[index],
|
||||||
|
&errCode);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(len > 8U)
|
||||||
|
{
|
||||||
|
retVal = CANFD_transmitData (txMsgObjHandle, msg_id,
|
||||||
|
CANFD_MCANFrameType_CLASSIC, 8U, &txmsg[index], &errCode);
|
||||||
|
if (retVal < 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
index = index + 8U;
|
||||||
|
len = len - 8U;
|
||||||
|
}
|
||||||
|
retVal = CANFD_transmitData (txMsgObjHandle, msg_id, CANFD_MCANFrameType_CLASSIC,
|
||||||
|
len, &txmsg[index], &errCode);
|
||||||
|
while(retVal < 0)
|
||||||
|
{
|
||||||
|
retVal = CANFD_transmitData (txMsgObjHandle, msg_id, CANFD_MCANFrameType_CLASSIC, len,
|
||||||
|
&txmsg[index], &errCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
************************* Millimeter Wave Demo Functions **********************
|
************************* Millimeter Wave Demo Functions **********************
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@ -2265,6 +2538,11 @@ static void Pcount3DDemo_initTask(UArg arg0, UArg arg1)
|
|||||||
DMA_Params dmaParams;
|
DMA_Params dmaParams;
|
||||||
DMA_Handle dmaHandle;
|
DMA_Handle dmaHandle;
|
||||||
|
|
||||||
|
UART_Handle uartHandle;
|
||||||
|
char out = 'M';
|
||||||
|
uartHandle = gMmwMssMCB.loggingUartHandle;
|
||||||
|
UART_write(uartHandle, (uint8_t*)&out, sizeof(char));
|
||||||
|
|
||||||
DPC_ObjectDetectionRangeHWA_InitParams objDetInitParams;
|
DPC_ObjectDetectionRangeHWA_InitParams objDetInitParams;
|
||||||
// int32_t i;
|
// int32_t i;
|
||||||
|
|
||||||
@ -2274,6 +2552,8 @@ static void Pcount3DDemo_initTask(UArg arg0, UArg arg1)
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Initialize the mmWave SDK components:
|
* Initialize the mmWave SDK components:
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
Can_Initalize(); //Can Aufruf
|
||||||
|
|
||||||
/* Initialize the UART */
|
/* Initialize the UART */
|
||||||
UART_init();
|
UART_init();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user