Other Parts Discussed in Thread: ADS1299,
Dear team,
What is the difference between SPI_HW_CTRL_CS and SPI_SW_CTRL_CS? Is there any document?
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.
Dear team,
What is the difference between SPI_HW_CTRL_CS and SPI_SW_CTRL_CS? Is there any document?
The Slave Select line can be controlled by the hardware (HW) or by the driver (SW).
It is only applicable in 4 pin mode.
Please refer to the TRM for more details (https://www.ti.com/lit/pdf/swru465).
The Slave Select line can be controlled by the hardware (HW) or by the driver (SW).
It is only applicable in 4 pin mode.
Please refer to the TRM for more details (https://www.ti.com/lit/pdf/swru465).
Hi Susan,
This old thread of mine with a TI FAE goes some more of the differences:
The main practical difference that a customer will notice is that SPI_HW_CTRL_CS deasserts CS between each word during a transfer, while SPI_SW_CTRL_CS keeps it deasserted through the entire transfer. The customer should look at the documentation of their SPI slave device timing diagram and see what it expects - sometimes connected SPI slave devices only support one of those CS methods.
Regards,
Michael
Thanks for your reply.
The customer used SPI of LAUNCHXL-CC3235SF to send 0XF0 to ADS1299 directly. Why does a waveform with a relatively large bandwidth appear every eight waveforms? And there is no data sent with so many clocks in between. The customer keeps sending 0xf0 cyclically, but no data is sent after so many cycles. What is the reason?
HI Susan,
Are you referring to the gap in SPICLK, what you've highlighted in red on the oscilloscope? That gap is normal and cannot be changed with the CC32xx SPI HW. It shouldn't have a significant performance impact on the system.
As for "no data is sent after so many cycles" could you clarify this, are you referring to that SPICLK gap or something else?
Regards,
Michael
SPI always sends 0xf0 data. It is reasonable to send one data in eight clock cycles, but what the customer sees on the oscilloscope is that after seeing 0xf0, the second data will be sent after many clock cycles(not 8 clock cycles). Why? ?
Hi Susan,
What is the code that the customer is using? Are they trying to perform 0xf0 sends with a SPI transfercount of 1, or are they using something different?
If the customer is simply performing SPI_Transfer() with a transfer size of 1, there is a lot of overhead in the function call that will slow down the actual observed transmission of data. Could they reduce the time resolution, so that I can see about how long that delay is on their SPI transmission?
Thanks,
Michael
Are they trying to perform 0xf0 sends with a SPI transfercount of 1, or are they using something different?
Hi Susan,
Thanks for the detail. It looks like they send one byte at a time, and have quite a bit of overhead in their function with the UART printing and other functions. They might want to look into how they can make their code for efficient. For example, if they don't perform the Display_printf(), is the delay reduced?
Regards,
Michael
Yes, so what is the value of the SPI_MSG_LENGTH?
It seems that it serves as the transaction's (TX) buffer size that is set to all zeroes except for the first byte which is set to the user data (0xf0).
This can explain the oscilloscope data.