This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1243BOOST: Implementing SPI communication between AWR1234BOOST and MSP430F5529

Part Number: AWR1243BOOST
Other Parts Discussed in Thread: MSP430F5529, , AWR1243

Hi,

For quite some time now we are trying to implement an SPI communication between AWR1243BOOST and MSP430F5529 for a non OS solution, but because some lack of skills it was still not successful.

We were browsing the forums and found some threads that provided some solutions but it was still too convoluted for us and we still struggle to implement an non OS solution.

We found the example mmwavelink_example_nonos in mmwave_dfp_01_02_05_01. And we tried to implement the solution on the MSP430F5529. We have some questions regarding this problem.

Do we have to use the code that is already provided and just implement the following functions?

clientCtx.comIfCb.rlComIfOpen = MMWL_spiOpen;
clientCtx.comIfCb.rlComIfClose = rlsSpiClose;
clientCtx.comIfCb.rlComIfRead = rlsSpiRead;
clientCtx.comIfCb.rlComIfWrite = rlsSpiWrite;

clientCtx.devCtrlCb.rlDeviceMaskHostIrq = rlsSpiIRQMask;
clientCtx.devCtrlCb.rlDeviceUnMaskHostIrq = rlsSpiIRQUnMask;
clientCtx.devCtrlCb.rlRegisterInterruptHandler = rlsRegisterInterruptHandler;
clientCtx.devCtrlCb.rlDeviceWaitIrqStatus = rlsDeviceWaitIrqStatus;

 If so can we help ourselves with the template provided for the SPI communication for the MSP430F5529 board or are there some other ways to implement the functions needed.

Also is there  any way to get some more precise stop by step instructions how to implement a non OS solution for AWR1243BOOST. 

Best regards,

Tadej Krmac

  • Hello Tadej,

    Reference Non-OS example in mmwave DFP is to communicate with FTDI SPI interface where it invoke the FTDI library to have SPI Read/Write.

    This FTDI library source code is available in mmwave Studio in slight different version.

    C:\ti\mmwave_studio_02_01_00_00\mmWaveStudio\ReferenceCode\FTDILib\SourceCode

    Refer rlsSpiRead, rlsSpiWrite,rlsCommClose, rlsCommOpen, etc. API for your reference to implement similar callback to MSP430 board.

    Similar thread for your reference-

    https://e2e.ti.com/support/sensors/f/1023/p/799855/2963359#pi320995=1

    Regards,

    Jitendra

  • Hi,

    thank you for the response.

    We already tried to implement similar callback functions to implement the SPI communication on MSP430 instead of FTDI. 

    Our final goal is to use the example provided in mmwave DFP without the constant usage of PC to start the example. We want a standalone version that every time the AWR1243BOOST is turned on the example would load and start.

    Unfortunately we did not get sufficient answers how to correctly do that from the similar threads,

    Do you think we could get some other answers on other forums (The one dedicated to MSP430 boards for example) or is the implementation we want not possible

    Regards

    Tadej Krmac

  • Hello Tadej,

    That is possible to write an application on MSP430 to control AWR1243BOOST over SPI. For this purpose only we recommend to port the mmwave DFP example to MSP430 or any other external processor.

    For this mainly you need to implement all the mmwavelink callback function on MSP430.

    You can refer this application:  C:\ti\mmwave_dfp_01_02_05_01\ti\example\mmwavelink_example_nonos

    Few pointers to assist you to port this application on MSP430.

    1. This example reads the device configuration from the mmwaveconfig.txt file which you can skip and embed the configuration value in the code itself for MSP430.

    2. implement all the callbacks of rlClientCbs_t at MSP430, few of those are already defined in the application (for OS related : mutex/semaphore/spawn etc.)

    other callbacks which require to access SPI, GPIO (for HostIRQ), nReset (to power on the AWR1243 device)

    /* implement these callback at MSP430 (SPI master) which are used for SPI communication with AWR1243 device (SPI slave)*/

    clientCtx.comIfCb.rlComIfOpen = MMWL_spiOpen;
    clientCtx.comIfCb.rlComIfClose = rlsSpiClose;
    clientCtx.comIfCb.rlComIfRead = rlsSpiRead;
    clientCtx.comIfCb.rlComIfWrite = rlsSpiWrite;

    clientCtx.devCtrlCb.rlDeviceDisable = MMWL_disableDevice; /* power off the AWR1243 device */
    clientCtx.devCtrlCb.rlDeviceEnable = MMWL_enableDevice; /* power on the AWR1243 device : out of nReset */
    clientCtx.devCtrlCb.rlDeviceMaskHostIrq = rlsSpiIRQMask; /* Mask the HostIRQ interrupt */
    clientCtx.devCtrlCb.rlDeviceUnMaskHostIrq = rlsSpiIRQUnMask; /* unmask the HostIRQ interrupt */
    clientCtx.devCtrlCb.rlRegisterInterruptHandler = rlsRegisterInterruptHandler; /* SW based interrupt handler when GPIO is active high */
    clientCtx.devCtrlCb.rlDeviceWaitIrqStatus = rlsDeviceWaitIrqStatus; /* GPIO status read */

    You can refer my first reply for code reference how it is implemented for FTDI based SPI interface.

    Regards,

    Jitendra