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.

LAUNCHXL-F28379D: CC1310 -> F28379D SPI Data Communication

Part Number: LAUNCHXL-F28379D
Other Parts Discussed in Thread: TMS320F28379D, CC1310, C2000WARE

Hi there,

I am working on a solution where I need to send data over SPI from CC1310 to TMS320F28379D (I'm going to call this guy 283).

Where CC1310 is the Master and 283 is the Slave, there are no other components on the SPI network.

I am having trouble receiving data on 283 as he does not read any data on the receiving buffer.

I need to transfer 10 different numbers, each between 0 and 4096, one way.

I have tried using the spimaster example for CC1310 and the spi_loopback_cpu01 example for 283, adjusting the pinouts, changing receiving and sending datatypes but I do not see anything turning up on the 283's Receiving buffer.

Can anyone help with a bit of code by any chance?

Regards,

  • spi_loopback_cpu01 code for F28379D is configures SPI as master. Did you make sure to configure it as slave and disable loopback mode?

  • I changed the default configuration to slave and disabled loopback mode and still no counter data being received on the 28379d

    • Did you probe SPI bus to see what CC1310 is transmitting?
    • Is SPISTE pin pull low during transmission?
    • You also need to make sure F28379D SPI slave is configured and ready before CC1310 SPI master initiates SPI communication.

  • Yes to all three of those questions.

    CC1310 is sending a sufficient clock signal as big as the data it is sending.

    the CC1310 is performing all necessary steps to complete SPI transactions as it must.

    Why is the F28379D not cooperating?

  • 1) Check whether SPI pins are configured correctly?

    2) Check whether SPI pins from master and slave are connected correctly as shown below?

    CC1310 SSI C2000 SPI
    Master Slave
    TX SPISIMO
    RX SPISOMI
    SSI CLK SPICLK
    CS SPISTE

    3) Make sure the clocking scheme chosen by master and slave are the same.

    4) It is possible that your SPI slave configuration is incorrect. Please check example project spi_ex3_external_loopback_fifo_interrupts available in below path shows how to configure SPI as slave.

    Path: <C2000Ware>\driverlib\f2837xd\examples\cpu1\spi\

    Project: spi_ex3_external_loopback_fifo_interrupts

    Regards,

    Manoj

  • Manoj Santha Mohan said:

    1) Check whether SPI pins are configured correctly?

    They are most certainly configured and connected correctly.

    Manoj Santha Mohan said:

    2) Check whether SPI pins from master and slave are connected correctly as shown below?

    CC1310 SSI C2000 SPI
    Master Slave
    TX SPISIMO
    RX SPISOMI
    SSI CLK SPICLK
    CS SPISTE

    Yep I've got all this sorted.

    CC1310 SSI CC1310 GPIO F28379D GPIO C2000 SPI
    Master - - Slave
    TX DIO9 GPIO16 SPISIMO
    RX DIO8 GPIO59 SPISOMI
    SSI CLK DIO10 GPIO18 SPICLK
    CS DIO11 GPIO19 SPISTE

    I have setup GPIO59 as a substitute pin because default GPIO17 was hard to reach.

    This pin configuration works succesfully for when I use F28379D as master and CC1310 as slave.

    Manoj Santha Mohan said:

    3) Make sure the clocking scheme chosen by master and slave are the same.

    If this is referring to the rising edge detection clock config, both are setup to do this as well

    Manoj Santha Mohan said:

    4) It is possible that your SPI slave configuration is incorrect. Please check example project spi_ex3_external_loopback_fifo_interrupts available in below path shows how to configure SPI as slave.

    Path: <C2000Ware>\driverlib\f2837xd\examples\cpu1\spi\

    Project: spi_ex3_external_loopback_fifo_interrupts

    Please refer to the answers to your first 2 points and instruct me on how I might properly configure F28379D to receive communication from CC1310

  • How you need to configure SPI as slave is clearly shown in spi_ex3_external_loopback_fifo_interrupts, you can adapt this example to your application. Four items I had identified in my previous post are the different possible ways in which things can go wrong.

    Regards,

    Manoj

  • Well clearly, something else, other than what you have stated, is going wrong, if my setup is still not working despite your expert opinion.

    Please refer to my comments in the original post, the code I have referred to for both CC1310 and F28379D and advise of a proper solution thanks.

  • I'm not sure of which original post you are referring to?

  • Shaetrun Pathmanathan said:

    Hi there,

    I am working on a solution where I need to send data over SPI from CC1310 to TMS320F28379D (I'm going to call this guy 283).

    Where CC1310 is the Master and 283 is the Slave, there are no other components on the SPI network.

    I am having trouble receiving data on 283 as he does not read any data on the receiving buffer.

    I need to transfer 10 different numbers, each between 0 and 4096, one way.

    I have tried using the spimaster example for CC1310 and the spi_loopback_cpu01 example for 283, adjusting the pinouts, changing receiving and sending datatypes but I do not see anything turning up on the 283's Receiving buffer.

    Can anyone help with a bit of code by any chance?

    Regards,

    I refer to this post. If you are having trouble understanding what I am asking about, please feel free to pass this question onto one of your colleagues.

  • Shaetrun,

    I don't have any trouble in understanding your post. I was wondering whether you had a earlier E2E thread (which you were calling original thread) you were trying to refer to.

    Are you expecting TI provide a working example which has both CC1310 (SPI master) and F28379D (SPI slave) working with each other? If so, we can't support that request

    We already have a working SPI slave configuration example which can be easily adapted to your application. In my earlier post, I had already pointed out path of this example code. We aren't setup to provide user specific customer code request. If you have any specific question about SPI slave configuration, I can help.

    Regards,

    Manoj

  • Right thanks for providing details on what you can and can't do.

    The already working SPI example, as well as the other examples TI has made, don't seem to work with the earlier referred CC1310 example code I use, even when I try to adapt it, as detailed also  earlier.

    I was hoping you or your colleagues who monitor the CC1310 forums could provide an answer beyond your standard SPI line troubleshooting.

    As I have stated before, there does not seem to be any troubles with these lines, as the two boards work perfectly fine when it's the F28379D communicating to the CC1310. Now I wish to try have the CC1310 communicate to the F28379D.

    I hope this is within the scope of what you can do. If you can't help me, please point me in the direction of someone who can.

  • Shaetrun,

    Did you first try running spi_ex5_external_loopback_fifo_interrupts example code as it is with SPIB as Master and SPIA as slave? The objective of this experiment flush out all setup related issues with hardware if any. This will also gives you confidence that your SPIA slave configuration is correct.

    Once you get the above experiment work, try interfacing CC1310 with C2000.SPIA slave configuration provided in the example code and let us know where it is getting stuck? Do you get SPIA trigger spiaRxFIFOISR interrupt? Or are you stuck in an infinite loop while(1)? Also, provide us SPI bus oscilloscope snapshots.

    Regards,

    Manoj