TI中文支持网
TI专业的中文技术问题搜集分享网站

AWR1243: AWR1243+TDA3MV雷达硬件接口及SDK软件开发问题

Part Number:AWR1243

TI专家好,

请问如下结构图(ProcessorSDKRadar_UserGuide.pdf)是AWR1243+TDA3所有必须的硬件接口吗,看官方的硬件是AWR1243+DIB+VAB+TDA3、AWR1243+RVP_TDA3(UB953/UB960)等,中间有一些不同的转接板,请问这些转接板对应的射频板与处理器板对应的接口关系是什么样的呢,如下图中两端口连接关系中对应的两个电阻的作用是什么呢(如TDO——GPIO1-5),是否中间还有其他的一些信号接口链接呢,感谢。

当前用我们自己的雷达开发板通过SDK软件开发包输出的Log定位,发现在bspdrv_ar12xxPriv.c(E:\PROCESSOR_SDK_RADAR_03_08_00_00\ti_components\drivers\pdk_01_10_04_05\packages\ti\drv\vps\src\devices\radar_ar12xx\src)中Bsp_ar12xxRadarDeviceOn陷入无限的循环当中(timeout=0xFFFFFFFF),如下程序及Tera Term打印的Log信息,参考“ RTOS/TDA2P-ACD: AWR1243 Radar Power On using TDA2Px Failing – Processors forum – Processors – TI E2E support forums ”,有可能是这个 SPI_Host_Intr中断响应的问题,但是当前我们硬件上这个 SPI_Host_Intr 与TDA3上的GPIO4_15没有连接,想请问下是否可以通过其他的GPIO口配置响应这个中断信号,在SDK中对应的哪个GPIO的接口呢,需要做怎样的配置更改呢?谢谢。

Int32 Bsp_ar12xxRadarDeviceOn(void)
{
    Int32  retVal = BSP_SOK;
    UInt32 count = Bsp_ar12xxCountBits(gBspAr12xxObj.devIdxMap);

    /* Set a sleep time of 10 seconds for the AR12xx device boot time. This
     * is kept at a worst possible maximum time.
     */
    UInt32 timeout = BSP_AR12XX_TIMEOUT_MAX;

    gBspAr12xxObj.radarInitCompleteFlag = 0U;
    /* Start the first device */
    retVal = rlDevicePowerOn((rlUInt8_t)gBspAr12xxObj.devIdxMap,
                             gBspAr12xxObj.rlApp_ClientCtx);
    if (retVal == BSP_SOK)
    {
        /* Wait for the device to complete its initializaton */
        while ((gBspAr12xxObj.radarInitCompleteFlag != count)
            && (timeout != 0U))
        {
            /* Sleep for 1 ms */
            BspOsal_sleep(1U);
            timeout–;
        }
    }
    if (gBspAr12xxObj.radarInitCompleteFlag != count)
    {
        GT_0trace(BspAppTrace, GT_ERR,
                  " AR12XX: Radar Device Power On failed!!\r\n");
        retVal = BSP_EFAIL;
    }
    return retVal;

Tera Term打印Log信息如下:

[IPU1-0] 24.438632 s: ***** IPU1_0 Firmware build time 11:15:37 Dec 22 2021
[IPU1-0] 24.438784 s: *** SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
[IPU1-0] 24.438998 s: SYSTEM: System Common Init in progress !!!
[IPU1-0] 24.445983 s: SYSTEM: IPC init in progress !!!
[IPU1-0] 24.446074 s: SYSTEM: IPCLIB init in progress !!!
[IPU1-0] 24.446257 s: SYSTEM: IPCLIB: register to [IPU1-1] event 15…
[IPU1-0] 24.446349 s: SYSTEM: IPCLIB: register to [DSP1] event 15…
[IPU1-0] 24.446410 s: SYSTEM: IPCLIB: register to [EVE1] event 15…
[IPU1-0] 24.446501 s: SYSTEM: IPCLIB init DONE !!!
[IPU1-0] 24.446562 s: SYSTEM: Notify init done !!!
[IPU1-0] 24.446684 s: SYSTEM: MsgQ init done !!!
[IPU1-0] 24.446898 s: SYSTEM: Work Queue init done !!!
[IPU1-0] 24.446959 s: SYSTEM: IPC init DONE !!!
[IPU1-0] 24.448880 s: SYSTEM: System Common Init Done !!!
[IPU1-0] 24.448941 s: SYSTEM: System Init in progress !!!
[IPU1-0] 24.449033 s: SYSTEM: BSP Common Init in progress !!!
[IPU1-0] 24.449094 s: SYSTEM: BSP Common Init Done !!!
[IPU1-0] 24.449155 s: SYSTEM: BSP Platform Init in progress !!!
[IPU1-0] 24.449277 s: PLATFORM: UNKNOWN CPU detected, defaulting to CPU REV 2.0
[IPU1-0] 24.449368 s: SYSTEM: BSP Platform Init Done !!!
[IPU1-0] 24.449429 s: SYSTEM: FVID2 Init in progress !!!
[IPU1-0] 24.449521 s: SYSTEM: FVID2 Init Done !!!
[IPU1-0] 24.449582 s: SYSTEM: VPS Init in progress !!!
[IPU1-0] 24.449643 s: SYSTEM: VPDMA Descriptor Memory Address translation ENABLED [0xa0000000 -> 0x80000000]
[IPU1-0] 24.451839 s: *** VPDMA Firmware Loading… ***
[IPU1-0] 24.451930 s: VPDMA Firmware Address = 0x87fc7800
[IPU1-0] 24.452052 s: VPDMA Load Address = 0x4897d004
[IPU1-0] 24.452144 s: VPDMA Firmware Version = 0x4d0001b8
[IPU1-0] 24.452235 s: VPDMA List Busy Status = 0x00000000
[IPU1-0] 24.452296 s: *** VPDMA Firmware Load Success ***
[IPU1-0] 24.471359 s: SYSTEM: VPS Init Done !!!
[IPU1-0] 24.471847 s: UTILS: DMA: HWI Create for INT34 !!!
[IPU1-0] 24.472091 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024
[IPU1-0] 24.472183 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 261568 B (255 KB)
[IPU1-0] 24.472335 s: SYSTEM: Heap = SR_OCMC @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
[IPU1-0] 24.472488 s: SYSTEM: Heap = SR_DDR_CACHED @ 0x82f7fc00, Total size = 77594624 B (74 MB), Free size = 77594624 B (74 MB)
[IPU1-0] 24.472640 s: SYSTEM: Heap = SR_DDR_NON_CACHED @ 0x00000000, Total size = 0 B (0 MB), Free size = 0 B (0 MB)
[IPU1-0] 24.472762 s: SYSTEM: Initializing Links !!!
[IPU1-0] 24.515738 s: SYSTEM: Initializing Links … DONE !!!
[IPU1-0] 28.768010 s: BOARD: Board Init in progress !!!
[IPU1-0] 28.768376 s: BOARD: Board Init Done !!!
[IPU1-0] 28.768437 s: Wang:— Run Bsp_platformGetId done and get platformId value is 2!!!
[IPU1-0] 28.771365 s:
[IPU1-0] 28.771426 s: Vision SDK Version : [REL_VISION_SDK_03_08_00_00]
[IPU1-0] 28.771518 s: FVID2 Version : [FVID_02_01_00_01]
[IPU1-0] 28.771579 s: BSP Version : [PDK_01_10_04__xx]
[IPU1-0] 28.771640 s: Platform : [EVM]
[IPU1-0] 28.771701 s: SOC : [TDA3XX]
[IPU1-0] 28.771792 s: SOC Revision : [ES2.0]
[IPU1-0] 28.771884 s: Board Detected : [TDA3XX AR12 RADAR]
[IPU1-0] 28.771945 s: Wang:— get board information done!!
[IPU1-0] 28.772036 s: Wang:— gBoardCommonObj.customData is't NULL and boardRev is: [4]
[IPU1-0] 28.772158 s: Wang:— gBoardCommonObj.customData is't NULL and boardRevStr is: [REV D]
[IPU1-0] 28.772250 s: Base Board Revision : [REV D]
[IPU1-0] 28.772311 s: Daughter Card Revision: [REV A]
[IPU1-0] 28.772372 s:
[IPU1-0] 28.772402 s: Wang:— ChainsCommon_Init step Board_init() done
[IPU1-0] 28.772494 s: Wang:— Run Bsp_boardGetId() and get Bsp_boardId is 80000
[IPU1-0] 28.772616 s: src/bsp_board.c @ Line 609:
[IPU1-0] 28.772677 s: Wang:— Run Bsp_boardGetData()done!!
[IPU1-0] 28.772799 s: src/bsp_board.c @ Line 612:
[IPU1-0] 28.772860 s: Wang:— Bsp_boardLock()!!
[IPU1-0] 28.772921 s: Wang:— boardData->numDev value is: [41]
[IPU1-0] 28.773043 s: Wang:—Run devData->selectDev(devDrvId, instId)and get retVal value is: [0]
[IPU1-0] 28.773470 s: Wang:— ChainsCommon_Init step System_uartInit() done
[IPU1-1] 25.608186 s: ***** IPU1_1 Firmware build time 11:13:59 Dec 22 2021
[IPU1-1] 25.608338 s: *** SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
[IPU1-1] 25.608643 s: SYSTEM: System Common Init in progress !!!
[IPU1-1] 25.609040 s: SYSTEM: IPC init in progress !!!
[IPU1-1] 25.609101 s: SYSTEM: IPCLIB init in progress !!!
[IPU1-1] 25.609284 s: SYSTEM: IPCLIB: register to [IPU1-0] event 15…
[IPU1-1] 25.609375 s: SYSTEM: IPCLIB: register to [DSP1] event 15…
[IPU1-1] 25.609467 s: SYSTEM: IPCLIB: register to [EVE1] event 15…
[IPU1-1] 25.609528 s: SYSTEM: IPCLIB init DONE !!!
[IPU1-1] 25.609589 s: SYSTEM: Notify init done !!!
[IPU1-1] 25.609802 s: SYSTEM: MsgQ init done !!!
[IPU1-1] 25.610016 s: SYSTEM: Work Queue init done !!!
[IPU1-1] 25.610077 s: SYSTEM: IPC init DONE !!!
[IPU1-1] 25.611999 s: SYSTEM: System Common Init Done !!!
[IPU1-1] 25.612090 s: SYSTEM: System IPU1_1 Init in progress !!!
[IPU1-1] 25.612578 s: UTILS: DMA: HWI Create for INT25 !!!
[IPU1-1] 25.612731 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024
[IPU1-1] 25.612822 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 261960 B (255 KB)
[IPU1-1] 25.612975 s: SYSTEM: Initializing Links !!!
[IPU1-1] 25.637314 s: UTILS: PRF: ##### Cannot allocate Object for SYNC1 ####
[IPU1-1] 25.638199 s: UTILS: PRF: ##### Cannot allocate Object for SYNC2 ####
[IPU1-1] 25.639114 s: UTILS: PRF: ##### Cannot allocate Object for SYNC3 ####
[IPU1-1] 25.640090 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM0 ####
[IPU1-1] 25.641066 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM1 ####
[IPU1-1] 25.642042 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM2 ####
[IPU1-1] 25.643048 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM3 ####
[IPU1-1] 25.644055 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM4 ####
[IPU1-1] 25.645092 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM5 ####
[IPU1-1] 25.646129 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM6 ####
[IPU1-1] 25.647196 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM7 ####
[IPU1-1] 25.647288 s: SYSTEM: Initializing Links … DONE !!!
[IPU1-1] 25.647349 s: SYSTEM: System IPU1_1 Init Done !!!
[DSP1 ] 26.975538 s: ***** DSP1 Firmware build time 11:12:31 Dec 22 2021
[DSP1 ] 26.975599 s: *** SYSTEM: CPU Frequency <ORG = 500000000 Hz>, <NEW = 500000000 Hz>
[DSP1 ] 26.975690 s: SYSTEM: System Common Init in progress !!!
[DSP1 ] 26.975812 s: SYSTEM: IPC init in progress !!!
[DSP1 ] 26.975843 s: SYSTEM: IPCLIB init in progress !!!
[DSP1 ] 26.975904 s: SYSTEM: IPCLIB: register to [IPU1-0] event 15…
[DSP1 ] 26.975934 s: SYSTEM: IPCLIB: register to [IPU1-1] event 15…
[DSP1 ] 26.975965 s: SYSTEM: IPCLIB: register to [EVE1] event 15…
[DSP1 ] 26.975995 s: SYSTEM: IPCLIB init DONE !!!
[DSP1 ] 26.975995 s: SYSTEM: Notify init done !!!
[DSP1 ] 26.976056 s: SYSTEM: MsgQ init done !!!
[DSP1 ] 26.976117 s: SYSTEM: Work Queue init done !!!
[DSP1 ] 26.976148 s: SYSTEM: IPC init DONE !!!
[DSP1 ] 26.976849 s: SYSTEM: System Common Init Done !!!
[DSP1 ] 26.976849 s: SYSTEM: System DSP Init in progress !!!
[DSP1 ] 26.977032 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024
[DSP1 ] 26.977063 s: SYSTEM: Heap = LOCAL_L2 @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[DSP1 ] 26.977124 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 524288 B (512 KB), Free size = 524128 B (511 KB)
[DSP1 ] 26.977154 s: SYSTEM: Initializing Links !!!
[DSP1 ] 26.983346 s: SYSTEM: Initializing Links … DONE !!!
[DSP1 ] 26.983377 s: SYSTEM: System DSP Init Done !!!
[DSP1 ] 28.756755 s: SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 32 KB … after boot !!!
[DSP1 ] 28.756786 s: SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 32 KB … after update by APP !!!
[EVE1 ] 28.655005 s: ***** EVE1 Firmware build time 11:10:57 Dec 22 2021
[EVE1 ] 28.656286 s: *** SYSTEM: CPU Frequency <ORG = 250000000 Hz>, <NEW = 250000000 Hz>
[EVE1 ] 28.657963 s: SYSTEM: System Common Init in progress !!!
[EVE1 ] 28.658939 s: SYSTEM: IPC init in progress !!!
[EVE1 ] 28.659702 s: SYSTEM: IPCLIB init in progress !!!
[EVE1 ] 28.660708 s: SYSTEM: IPCLIB: register to [IPU1-0] event 15…
[EVE1 ] 28.661623 s: SYSTEM: IPCLIB: register to [IPU1-1] event 15…
[EVE1 ] 28.662538 s: SYSTEM: IPCLIB: register to [DSP1] event 15…
[EVE1 ] 28.663423 s: SYSTEM: IPCLIB init DONE !!!
[EVE1 ] 28.664155 s: SYSTEM: Notify init done !!!
[EVE1 ] 28.665161 s: SYSTEM: MsgQ init done !!!
[EVE1 ] 28.666137 s: SYSTEM: Work Queue init done !!!
[EVE1 ] 28.666870 s: SYSTEM: IPC init DONE !!!
[EVE1 ] 28.676782 s: SYSTEM: System Common Init Done !!!
[EVE1 ] 28.677514 s: SYSTEM: System EVE Init in progress !!!
[EVE1 ] 28.678704 s: UTILS: DMA: HWI Create for INT8 !!!
[EVE1 ] 28.679588 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024
[EVE1 ] 28.680534 s: SYSTEM: Heap = LOCAL_L2 @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[EVE1 ] 28.682272 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 261960 B (255 KB)
[EVE1 ] 28.683889 s: SYSTEM: Initializing Links !!!
[EVE1 ] 28.750350 s: SYSTEM: Initializing Links … DONE !!!
[EVE1 ] 28.751143 s: SYSTEM: System EVE Init Done !!!
[IPU1-0] 29.773287 s: Wang:— ChainsCommon_Init step Task_sleep(1000) done
[IPU1-0] 29.773378 s: Wang:— ChainsCommon_Init step Utils_prcmClockRateInit() done
[IPU1-0] 29.773470 s: Wang:— ChainsCommon_Init step Utils_prcmPrintPowerConsumptionInit() done
[IPU1-0] 29.773531 s: QSPI Init Started
[IPU1-0] 29.773714 s: MID – 0
[IPU1-0] 29.773775 s: DID – 0
[IPU1-0] 29.773805 s: QSPI Init Completed Sucessfully
[IPU1-0] 29.773866 s: Wang:— ChainsCommon_Init step System_qspiInit() done
[IPU1-0] 29.776245 s: Wang:— ChainsCommon_Init step GrpxSrcLink_init() done
[IPU1-0] 29.776398 s: UTILS: DMM: API NOT supported in TDA3xx !!!
[IPU1-0] 29.776459 s: UTILS: DMM: API NOT supported in TDA3xx !!!
[IPU1-0] 29.776520 s: Wang:— ChainsCommon_Init step ChainsCommon_SetSystemL3DmmPri() done
[IPU1-0] 29.777038 s: Wang:— ChainsCommon_Init step Utils_statCollectorInit() done
[IPU1-0] 29.777130 s: Wang:— ChainsCommon_Init step Chains_linkStatsMonitorInit() done
[IPU1-0] 29.777221 s:
[IPU1-0] 29.777282 s: Current System Settings,
[IPU1-0] 29.777343 s: ========================
[IPU1-0] 29.777404 s: Display Type : HDMI 1920×1080 @ 60fps
[IPU1-0] 29.777465 s: My IP address for interface 1 : none
[IPU1-0] 29.777526 s: My IP address for interface 2 : none
[IPU1-0] 29.777587 s:
[IPU1-0] 29.777618 s: ============
[IPU1-0] 29.777679 s: Usecase Menu
[IPU1-0] 29.777709 s: ============
[IPU1-0] 29.777770 s:
[IPU1-0]
[IPU1-0] Vision SDK Usecases,
[IPU1-0] ——————–
[IPU1-0]
[IPU1-0] 1: RADAR Usecases
[IPU1-0] 2: MISC Tests
[IPU1-0]
[IPU1-0] s: System Settings
[IPU1-0]
[IPU1-0] x: Exit
[IPU1-0]
[IPU1-0] Enter Choice:
[IPU1-0]
[IPU1-0] 36.330537 s:
[IPU1-0] 36.330628 s:
[IPU1-0]
[IPU1-0] RADAR Usecases
[IPU1-0] —————
[IPU1-0]
[IPU1-0] 2: Radar (Single AWR1243) Capture + Null (TDA3xx Only)
[IPU1-0] 3: Radar (Single AWR1243) Capture + Radar Object Detect (EVE1) + Display (TDA3xx Only)
[IPU1-0] 4: Radar (Single AWR1243) Capture + Radar Object Detect (EVE1) + Null (TDA3xx Only)
[IPU1-0] 5: Radar (Single AWR1243) Capture + Radar Frame Copy (DSP1) + Null (TDA3xx Only)
[IPU1-0]
[IPU1-0] x: Exit
[IPU1-0]
[IPU1-0] Enter Choice:
[IPU1-0]
[IPU1-0] 38.139663 s:
[IPU1-0] 38.139846 s: CHAINS: Init AR12xx …
[IPU1-0] 38.140029 s: UTILS_MCSPI: McSPI is configured in interrupt mode!!
[IPU1-0] 38.140151 s: src/bsp_board.c @ Line 609:
[IPU1-0] 38.140212 s: Wang:— Run Bsp_boardGetData()done!!
[IPU1-0] 38.140303 s: src/bsp_board.c @ Line 612:
[IPU1-0] 38.140364 s: Wang:— Bsp_boardLock()!!
[IPU1-0] 38.140425 s: Wang:— boardData->numDev value is: [41]
[IPU1-0] 38.140608 s: Wang:—Run devData->selectDev(devDrvId, instId)and get retVal value is: [0]
[IPU1-0] 38.140700 s: Wang:— Utils_mcspiInit(CHAINS_AWR1243_SENSOR_MCSPI_INST0) over step …
[IPU1-0] 38.141096 s: Wang:— Get numDevices is 1
[IPU1-0] 38.141188 s: Wang:— Run Bsp_ar12xxGpioInit and gpioInstId is 2
[IPU1-0] 38.141279 s: Wang:— Run Bsp_ar12xxGpioInit and gpioPinNum is 29
[IPU1-0] 38.141371 s: Wang:— Bsp_ar12xxGpioInit and retVal is 0
[IPU1-0] 38.141859 s: Wang:— Bsp_ar12xxCreateCommInfra() and retVal is 0
[IPU1-0] 38.141981 s: Wang:— Bsp_ar12xxRegisterCallbacks() and retVal is 0
[IPU1-0] 38.142286 s: Wang:— Bsp_ar12xxUartInit and retVal is 0
[IPU1-0] 38.142347 s: Wang:— Run Bsp_ar12xxInit(&gAr12xx_initParams) step …
[IPU1-0] 38.142438 s: Wang:— Run UTILS_assert(SYSTEM_LINK_STATUS_SOK == retVal) step …
[IPU1-0] 38.142560 s: Wang:— pCfgOut->numRadars value is 1…
[IPU1-0] 38.142652 s: Wang:— Run Bsp_ar12xxSwitchConfig step …
[IPU1-0] 38.142743 s: Wang:— Start to run Bsp_ar12xxRadarDeviceOn()!!
[IPU1-0] 38.142835 s: Wang:— Run Bsp_ar12xxCountBits over and count value is 1
[IPU1-0] 38.342493 s: Wang:— Waiting for gBspAr12xxObj.radarInitCompleteFlag == count
[IPU1-0] 38.342615 s: Wang:— gBspAr12xxObj.radarInitCompleteFlag value is 0

Chris Meng:

你好,

请查看下面代码,根据你自己的硬件连接进行修改。

C:\PROCESSOR_SDK_RADAR_03_08\vision_sdk\apps\src\rtos\radar\src\common\chains_common_ar12xx.c

static Void ChainsCommon_ar12xxInit(ChainsCommon_Ar12xxConfigOut *pCfgOut){

/* Only RVP with FPD-Link Connection type may have more than 1 radars */ for (i=0; i<pCfgOut->numRadars; i++) { if (boardId == BSP_BOARD_TDA3XX_AR12XX_ALPS) { Bsp_Ar12xxGpioInputParams inGpioParamsDef = {(UInt8) 3, (UInt8) 15, (UInt16) 51}; /* GPIO4, Pin 15, CPU Intr 51 */ Bsp_Ar12xxGpioOutputParams outGpioParamsDef[BSP_AR12XX_GPIO_OUTPUT_COUNT] = { /* GPIO2, PIN 7 BSP_AR12XX_GPIO_OUTPUT_NRESET */ {(UInt8) 1, (UInt8) 7}, /* GPIO2, PIN 6: BSP_AR12XX_GPIO_OUTPUT_WARM_RESET */ {(UInt8) 1, (UInt8) 6}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_NERRORIN */ {(UInt8) 0xFF, (UInt8) 5 }, /* GPIO1, PIN 5: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_TDO */ {(UInt8) 0, (UInt8) 5}, /* GPIO1 PIN 4: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_SYNCOUT */ {(UInt8) 0, (UInt8) 4}, /* GPIO1 PIN 6: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_PMICOUT */ {(UInt8) 0, (UInt8) 6}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTA */ {(UInt8) 0xFF, (UInt8) 0}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTB*/ {(UInt8) 0xFF, (UInt8) 0} }; memcpy(&gAr12xx_initParams.devParams[i].inGpioParams, &inGpioParamsDef, sizeof (inGpioParamsDef)); memcpy(&gAr12xx_initParams.devParams[i].outGpioParams, outGpioParamsDef, sizeof (outGpioParamsDef));

/* Use McSPI 2 */ gAr12xx_initParams.devParams[i].mcSpiDevInst = 1U; gAr12xx_initParams.devParams[i].mcspiChannel = 0U; Utils_mcspiInit(CHAINS_AWR1243_SENSOR_MCSPI_INST1); } else if ((boardId == BSP_BOARD_TDA3XX_RVP_ALPHA) || (boardId == BSP_BOARD_TDA3XX_RVP_BETA) || (boardId == BSP_BOARD_TDA3XX_RVP_A) || (boardId == BSP_BOARD_TDA3XX_D3_SK)) { Bsp_Ar12xxGpioInputParams inGpioParamsDef;

if (Bsp_ar12xxGetConnType() == BSP_AR12XX_CONN_TYPE_DIRECT) { /* GPIO4, Pin 15, CPU Intr 51 */ inGpioParamsDef.gpioInstId = 3; inGpioParamsDef.gpioPinNum = 15; inGpioParamsDef.cpuIntrIdForGpio = 51;

,

Kun Wang:

好的,谢谢,请问SDK里面支持的硬件包含如下三种,这个地方跟chains_common_ar12xx.c里面ChainsCommon_ar12xxInit的boardId及其对应的GPIO、SPI接口是怎么对应的呢?

在chains_common_ar12xx.c里面执行static Void ChainsCommon_ar12xxInit(ChainsCommon_Ar12xxConfigOut *pCfgOut)应该首先是获取默认的接口参数初始化值,如下图1,然后默认获取的GPIO接口、SPI1、UART1如下图2,这个默认获取的接口有对应上述三种硬件中的哪一个吗?

接下来是判定BoardId,BSP_BOARD_TDA3XX_AR12XX_ALPS是对应的

TDA3 + AWR12XX ALPS board. (tda3xx_alps_bios_radar)是吧,如果执行此硬件程序,调用的接口会覆盖上述默认获取的接口吗?

同理,如果执行else if ((boardId == BSP_BOARD_TDA3XX_RVP_ALPHA) || (boardId == BSP_BOARD_TDA3XX_RVP_BETA) || (boardId == BSP_BOARD_TDA3XX_RVP_A) || (boardId == BSP_BOARD_TDA3XX_D3_SK))——{这个对应的是

TDA3 RVP + AWR12XX (tda3xx_rvp_bios_radar)硬件对吧,这几个命名不同的硬件有什么区别吗?},接下来if (Bsp_ar12xxGetConnType() == BSP_AR12XX_CONN_TYPE_DIRECT)条件是判定AWR1243是否是和TDA3xx直接连接的意思吗,没有经过转接板?如果直接连接的话就调用相对应的GPIO、SPI口,否则就进入下面的else调用/* GPIO2, Pin 6 ~ 9, CPU Intr 51 */对吧,如果用户这边自己做的板子该如何选择对应的硬件接口类型呢(不同的硬件类型对应的GPIO、SPI接口还是有差异的),是否选择其中一个硬件GPIO、SPI等接口类型匹配上就可以呢,然后按照对应的硬件类型去编译固件,或者把这些SDK里接口全部改成当前板上连接的接口,这样是否可行?

非常感谢。

if (boardId == BSP_BOARD_TDA3XX_AR12XX_ALPS) { Bsp_Ar12xxGpioInputParams inGpioParamsDef = {(UInt8) 3, (UInt8) 15, (UInt16) 51}; /* GPIO4, Pin 15, CPU Intr 51 */ Bsp_Ar12xxGpioOutputParams outGpioParamsDef[BSP_AR12XX_GPIO_OUTPUT_COUNT] = { /* GPIO2, PIN 7 BSP_AR12XX_GPIO_OUTPUT_NRESET */ {(UInt8) 1, (UInt8) 7}, /* GPIO2, PIN 6: BSP_AR12XX_GPIO_OUTPUT_WARM_RESET */ {(UInt8) 1, (UInt8) 6}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_NERRORIN */ {(UInt8) 0xFF, (UInt8) 5 }, /* GPIO1, PIN 5: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_TDO */ {(UInt8) 0, (UInt8) 5}, /* GPIO1 PIN 4: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_SYNCOUT */ {(UInt8) 0, (UInt8) 4}, /* GPIO1 PIN 6: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_PMICOUT */ {(UInt8) 0, (UInt8) 6}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTA */ {(UInt8) 0xFF, (UInt8) 0}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTB*/ {(UInt8) 0xFF, (UInt8) 0} }; memcpy(&gAr12xx_initParams.devParams[i].inGpioParams, &inGpioParamsDef, sizeof (inGpioParamsDef)); memcpy(&gAr12xx_initParams.devParams[i].outGpioParams, outGpioParamsDef, sizeof (outGpioParamsDef));

/* Use McSPI 2 */ gAr12xx_initParams.devParams[i].mcSpiDevInst = 1U; gAr12xx_initParams.devParams[i].mcspiChannel = 0U; Utils_mcspiInit(CHAINS_AWR1243_SENSOR_MCSPI_INST1); } else if ((boardId == BSP_BOARD_TDA3XX_RVP_ALPHA) || (boardId == BSP_BOARD_TDA3XX_RVP_BETA) || (boardId == BSP_BOARD_TDA3XX_RVP_A) || (boardId == BSP_BOARD_TDA3XX_D3_SK)) { Bsp_Ar12xxGpioInputParams inGpioParamsDef;

if (Bsp_ar12xxGetConnType() == BSP_AR12XX_CONN_TYPE_DIRECT) { /* GPIO4, Pin 15, CPU Intr 51 */ inGpioParamsDef.gpioInstId = 3; inGpioParamsDef.gpioPinNum = 15; inGpioParamsDef.cpuIntrIdForGpio = 51;

Bsp_Ar12xxGpioOutputParams outGpioParamsDef[BSP_AR12XX_GPIO_OUTPUT_COUNT] = { /* GPIO2, PIN 7 BSP_AR12XX_GPIO_OUTPUT_NRESET */ {(UInt8) 1, (UInt8) 7}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_WARM_RESET */ {(UInt8) 0xFF, (UInt8) 17}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_NERRORIN */ {(UInt8) 0xFF, (UInt8) 5 }, /* GPIO2, PIN 14: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_TDO */ {(UInt8) 1, (UInt8) 14}, /* GPIO2, PIN 13: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_SYNCOUT */ {(UInt8) 1, (UInt8) 13}, /* GPIO2, PIN 12: BSP_AR12XX_GPIO_OUTPUT_SOP_MODE_SEL_PMICOUT */ {(UInt8) 1, (UInt8) 12}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTA */ {(UInt8) 0xFF, (UInt8) 0}, /* Not Used: BSP_AR12XX_GPIO_OUTPUT_UART_SELECTB*/ {(UInt8) 0xFF, (UInt8) 0} }; memcpy(&gAr12xx_initParams.devParams[i].inGpioParams, &inGpioParamsDef, sizeof (inGpioParamsDef)); memcpy(&gAr12xx_initParams.devParams[i].outGpioParams, outGpioParamsDef, sizeof (outGpioParamsDef)); gAr12xx_initParams.devParams[i].mcSpiDevInst = 1U; gAr12xx_initParams.devParams[i].mcspiChannel = 0U; Utils_mcspiInit(CHAINS_AWR1243_SENSOR_MCSPI_INST1); } else { /* GPIO2, Pin 6 ~ 9, CPU Intr 51 */ inGpioParamsDef.gpioInstId = 1; inGpioParamsDef.gpioPinNum = 6 + i; inGpioParamsDef.cpuIntrIdForGpio = 51; memcpy(&gAr12xx_initParams.devParams[i].inGpioParams, &inGpioParamsDef, sizeof (inGpioParamsDef));

gAr12xx_initParams.devParams[i].i2cDevInst = UB960_ACCESSIBLE_FROM_I2C_INST; gAr12xx_initParams.devParams[i].i2cDevAddr = D3_AR1243_PORT_0_SENSOR_ADDR + i*2; gAr12xx_initParams.devParams[i].desPortMap = i; gAr12xx_initParams.devParams[i].uartDevInst = 0xFF; } }

,

Chris Meng:

你好,

通常代码启动后会去读取板上EEPROM来确认是哪个板子的信号。你用自己的板子可以加些打印,看看软件认为你使用的是哪个板子,然后做修改。

你手上有源码,请根据你自己的板子做相应的修改。

,

Kun Wang:

好的,谢谢,那在固件编译的时候Rules.make里面选择的类型(比如MAKECONFIG=tda3xx_evm_bios_radar)跟这个EEPROM读出来的板子信号有出入呢,如果硬件接口按照tda3xx_evm_bios_radar布置,MAKECONFIG按照tda3xx_alps_bios_radar编译固件,软件运行的时候也会报错吧?

,

Chris Meng:

你好,

代码本身没有检查和编译选项是否一致。

请搜索一下代码,看看Bsp_boardGetId的具体实现。

Void ChainsCommon_ar12xxConfig(ChainsCommon_Ar12xxConfigOut *pCfgOut){ Int32 retVal; UInt32 i, j; Bsp_BoardId boardId; UInt32 numChirps[CHAINS_MAX_NUM_RADARS][CHAINS_AR1243_MAX_PROFILES] = {{0U}};

Vps_printf(" CHAINS: Init AR12xx … \n\r"); ChainsCommon_ar12xxInit(pCfgOut);

boardId = Bsp_boardGetId();

,

Kun Wang:

您好,

请问这个是通过PROCESSOR_SDK_RADAR_03_08_00_00\ti_components\drivers\pdk_01_10_04_05\packages\ti\drv\vps\include\boards\bsp_board.h读取如下地址来区分不同硬件吗,跟在固件编译的时候Rules.make里面选择的类型(比如MAKECONFIG=tda3xx_evm_bios_radar)有什么关联吗,我们当前现有的硬件通过图中读出来的地址为0x80000,应该对应TDA3xx AR12xx Radar Board,我们在选择MAKECONFIG=tda3xx_evm_bios_radar编译固件时,CCS下载后运行,可以在串口中输出相应的Log信息,但是当MAKECONFIG=tda3xx_alps_bios_radar/tda3xx_rvp_bios_radar编译固件时,当用CCS下载后运行,在串口中没有任何的Log信息输出,看了软件里面串口打印都是通过UART2输出的,请问这个地方的差异在哪里呢?

然后基于这个的话,如果想通过TDA3xx AR12xx Radar Alps board 去做硬件接口的设计该如何实现呢(后续的GPIO中断接口、复位GPIO接口等、SPI接口等等),它是怎么跟软件里面匹配起来呢?

谢谢。

,

Kun Wang:

好的,谢谢,我看一下。

,

Chris Meng:

Kun Wang 说:请问这个是通过PROCESSOR_SDK_RADAR_03_08_00_00\ti_components\drivers\pdk_01_10_04_05\packages\ti\drv\vps\include\boards\bsp_board.h读取如下地址来区分不同硬件吗,

请在代码里搜索 Bsp_boardGetId的具体实现。

Kun Wang 说:然后基于这个的话,如果想通过TDA3xx AR12xx Radar Alps board 去做硬件接口的设计该如何实现呢(后续的GPIO中断接口、复位GPIO接口等、SPI接口等等),它是怎么跟软件里面匹配起来呢?

抱歉,我这里也没有alps board的信息。建议你通过代码来获取相关信息。

,

Kun Wang:

谢谢,请问在Bsp_BoardId Bsp_boardGetId(void)里面定义的defined(SOC_TDAxxx)是对应软件里面识别的SOC类型吗(下图椭圆标记),这个应该是在SDK编译的时候预先设定的吧,工程里面没有直接的定义和调用。

然后在defined (SOC_TDA3XX) gBoardCommonObj.boardId = Bsp_boardGetIdTda3xx();中,Board的类型是不是就是在编译(cfg.mk里面)的时候选择的硬件类型呢?如果是对应的话,那应该在编译的时候没有这几个硬件类型才会执行下面的EEPROM读取的函数吧?

我们当前想通过编译TDA3XX_AR12_ALPS来验证上述BoardId地址是不是对应上图中硬件类型,但是在串口中没有log输出,我们自己的硬件上用UART2做打印的,在

tda3xx_alps_bios_radar的cfg.mk配置里面看到有如下的定义,alps是否支持UART串口打印呢(在SDK软件里面有看到定义的UART2做打印),我们打开UART关闭NETWORK还是没有log输出;

# UART is not present on the board hence using network for loggingENABLE_UART_LOG=noENABLE_NETWORK_LOG=yes

对于tda3xx_rvp_bios_radar编译后Tera Term也是没有任何log输出,请问ALPS和RVP在串口log输出上与

tda3xx_evm_bios_radar有什么差异吗,软件上看着都是通过UART2来打印信息的。

谢谢。

,

Chris Meng:

Kun Wang 说:gBoardCommonObj.boardId = Bsp_boardGetIdTda3xx();中,Board的类型是不是就是在编译(cfg.mk里面)的时候选择的硬件类型呢?如果是对应的话,那应该在编译的时候没有这几个硬件类型才会执行下面的EEPROM读取的函数吧?

同意你的理解。

Kun Wang 说:

对于tda3xx_rvp_bios_radar编译后Tera Term也是没有任何log输出,请问ALPS和RVP在串口log输出上与

tda3xx_evm_bios_radar有什么差异吗,软件上看着都是通过UART2来打印信息的。

TDA3上有多个引脚可以pinumx配置为UART2的功能,请你的板子上使用的引脚和TDA3EVM上使用的一致吗?

,

Kun Wang:

这个引脚应该是一致的,tda3xx_evm_bios_radar编译的固件运行后通过UART2可以打印log出来,但是tda3xx_alps_bios_radar和tda3xx_rvp_bios_radar不行,所以想请问下tda3xx_alps_bios_radar和tda3xx_rvp_bios_radar两个硬件类型下log的打印通过什么接口输出的呢?

在tda3xx_alps_bios_radar(apps——configs)的cfg.mk文件里面有如下定义,我们打开UART,关闭以太网,串口也没有log输出,这个可以像tda3xx_evm_bios_radar那样支持UART2的信息打印吗?

谢谢。

,

Chris Meng:

Kun,

alps看起来是TDA3x和AWR1243在一块板子上的板子,但我没有更多的信息。

TDA3XEVM: Development of Radar Object detection module using awr1243 with tda3x – Processors forum – Processors – TI E2E support forums

你问什么不使用tda3xx_evm_bios_radar来编译呢?

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/896390/tda3xevm-how-to-connect-awr1243-with-tda3xevm

2. TDA3 EVM + VAB + DIB + AWR Booster Pack (tda3xx_evm_bios_radar)

,

Kun Wang:

您好,

想用alps做编译调试主要也是基于ProcessorSDKRadar_UserGuide.pdf里面对于AWR1243和TDA3硬件接口介绍,不同硬件类型对于如下的一些GPIO、SPI接口的调用不太一样,如下的接口与SDK软件中(D:\PROCESSOR_SDK_RADAR_03_08_00_00\ti_components\drivers\pdk_01_10_04_05\packages\ti\drv\vps\src\boards\src\bsp_boardTda3xx.c)ALPS(Bsp_boardTda3xxAr12xxRadarInit函数)调用的接口一致,所以想基于这个硬件接口去做SDK软件的调试;

TDA3 EVM + VAB + DIB + AWR Booster Pack (tda3xx_evm_bios_radar)由于没有VAB和DIB的相关信息,硬件具体的接口和SDK软件中调用的接口不确定是否全部都是一致的,所以想基于alps的硬件接口去做对比调试;

当前编译ALPS固件运行后就是没有相应的log信息打印输出,想咨询下打印的接口及函数是什么样的,跟tda3xx_evm_bios_radar下UART2打印的方式有啥异同?

谢谢。

,

Chris Meng:

你好,

我在processor sdk for radar v3.3的user guide里找到下面的信息,也就是Alps板本身就没有uart,所以它的相关配置里也没有uart输出的支持,用的应该是网口。

,

Kun Wang:

好的,非常感谢,请问这个有办法改成UART输出log信息吗(比如UART2),我们当前硬件上是UART2接口,以太网有其他用,我们把ChainsCommon_ar12xxInit(D:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\common)里面BSP_BOARD_TDA3XX_AR12XX_ALPS对应的UART_Select改成TDA3xx  EVM上对应的UART2接口GPIO4_17和GPIO4_18,如下:

然后把cfg.mk(tda3xx_alps_bios_radar)里面的UART打开、关闭以太网

(# UART is not present on the board hence using network for logging

ENABLE_UART_LOG=no

ENABLE_NETWORK_LOG=yes),

编译选择tda3xx_alps_bios_radar,下载运行后在串口还是没有相应的Log的输出,请问这个有办法在软件里面配置相应的打印接口吗,原始的UART2log打印是怎么调用运行的呢?

非常感谢。

,

Chris Meng:

你好,

我还是建议参考tda3xx_evm_bios_radar配置的代码的设置,源码都有的,里面的接口也都是可以看到的。

如果你一定要使用tda3xx_alps_bios_radar,也请参考tda3xx_evm_bios_rada,看看它的uart是如何配置的。是否alps里的uart初始化等代码都齐全。

赞(0)
未经允许不得转载:TI中文支持网 » AWR1243: AWR1243+TDA3MV雷达硬件接口及SDK软件开发问题
分享到: 更多 (0)