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.
Hello experts,
Timing measurements during hardware commissioning revealed, that the measured CS inactive time for short CS inactive pulses is one VCLK cycle shorter than expected from the TRM.
The VCLK frequency is set to 75 MHz. --> VCLK period is 1 / (75 MHz) = 13.3333 ns.
SPI configuration parameters:
For several WDELAY settings, it was checked with the oscilloscope, that the observed deviation is not a tolerance issue caused by slow CS edges. CS inactive pulse duration “+Width”:
Further investigations have shown that the CS High pulse duration depends on the CSHOLD bit. It was observed, that the CS inactive pulse duration is one VCLK cycle shorter than expected from the TRM, when CSHOLD = 1 for the subsequent SPI transmission. CSHOLD = 1 does not introduce an additional VCLK cycle between CS activation and first CLK edge, but it shortens the CS inactive pulse by 1 VCLK cycle, so that the additional VCLK cycle between CS activation and first CLK edge (refer to datasheet § 7.12.4 MibSPI/SPI Master Mode I/O Timing Specifications) is only one effect to be observed. The more critical (and so far undocumented!?!) effect is the shortening of the CS inactive pulse duration by one VCLK cycle.
The following timing diagram was recorded with a sample rate of 1.6 GS/s. The CSHOLD bit was varied for the SPI transactions. This leads to different duration of the CS High pulse.
The CS pulse width at cursor A is too short, whereas the CS pulse width at cursor D is correct. The CS pulse width at curser C is correct, whereas the CS pulse width at cursor E is too short.
--> A too short CS pulse width is generated when CSHOLD = 0 is followed by CSHOLD = 1. A correct CS pulse width is generated when CSHOLD = 0 is followed by CSHOLD = 0.
From a functional point of view, it makes no sense that the CS inactive state is terminated one VCLK cycle earlier than configured, when the SW requests CS to remain active after the SPI transmission.
Questions:
Thank you.
Is the described topic known at TI? If yes, can you please provide a reference (erratum number, application note etc.)?
I saw same behavior in another thread, but it is not hercules device. But there is no erratum found for this issue.
--> A too short CS pulse width is generated when CSHOLD = 0 is followed by CSHOLD = 1. A correct CS pulse width is generated when CSHOLD = 0 is followed by CSHOLD = 0.
I would like to know one more corner case behavior, what if CSHOLD = 1 followed by CSHOLD = 1?
Mean while i will try to reproduce the same issue at my end as well.
--
Thanks,
Jagadish.
When CSHOLD = 1 is followed by CSHOLD = 1, there should be no CS pulse after the first transfer, because CSHOLD = 1.
Thank you for your advice regarding the 66AK2G12 thread.
When looking at the oscilloscope screenshots provided with the excel file WDELAY_Registers.xlsx, it is interesting that CSHOLD is also 1 after the chip-select pulse, because chip-select remains active while a lot of data are transfered. Maybe the chip-select pulse duration would be correct for the 66AK2G12 if CSHOLD was changed to 0.
Hello,
how is your investigation going? Were you able to reproduce the issue on your side?
In the meantime, I did some timing measurement on the MibSPI3 of TI's 337 ZWT Launchpad using the RM57L843ZWT. The attached screenshots show the results for VCLK1=75MHz and WDELAY=1. The expected CS inactive pulse is 40ns, but when CSHOLD=1 for the subsequent transfer, the pulse length is reduced to 27ns. --> Same problem!
Regards,
Matthias
Hi Matthias,
how is your investigation going? Were you able to reproduce the issue on your side?
Yes i am able to reproduce the issue at my end. I am discussing the same with my internal team for to take necessary action. I will update you soon regarding corrective action.
Thanks for testing on RM57L843ZWT.
If possible, can you please attach your codes of both TMS570 and RM57 for the reference?
--
Thanks,
Jagadish.
Hello Jagadish,
for the TMS570 I cannot provide the code, but I have exported the RM57 demo project from Code Composer Studio. Hope this helps.
Regards,
Matthias
Hi Matthias,
Thanks for sharing the code of RM57, right now i am not in office, so i can't test it and i will go to office on next week. I hope it won't be a problem at your end.
--
Thanks,
Jagadish.
Hello Jagadish,
what is the current status of your investigations?
Regards,
Matthias
Hi Matthias,
I communicated this issue to my internal design team and they confirmed the issue. Thanks for reporting this issue and internal team will correct the datasheet in next revision.
--
Thanks & Regards,
Jagadish.
Hello Jagadish,
Please keep in mind that numerous devices seem to be affected, as this problem has been observed on TMS570LC4357, 66AK2G12 and RM57L843ZWT.
When updating the datasheet of the TMS570LC4357, please specify tWDELAY in Tables 7-37 and 7-38, similar to tC2TDELAY. (I would be grateful if you could provide me with this information in advance).
Thanks and Regards,
Matthias