Other Parts Discussed in Thread: HALCOGEN
Dear All.
I'll ask a question just in case.
I have two TMS570LS3137ZWT DevKits and am testing SPI communication while using one as SPI3-Master and the other as SPI5-Slave.
Halcogen Setting values are as follows.
1. Driver Enable: Enable SPI3 driver, Enable SPI5 driver
2. PINMUX: MIBSPI3, MIBSPI5 Check
3. SPI3 (Master)
- SPI3 Global: Master Mode, Internal Clock Check
- SPI Data Formats - Data Format 0: Baudrate 2000, Charlen 8
- SPI3 Port: SOMI(input, pullup), SIMO(output, pullup), CLK(output, Pullup), SCS[0](output, pullup)
4. SPI5 (Slave)
- SPI5 Global: All unchecked
- SPI Data Formats - Data Format 0: Baudrate 2000, Charlen 8
- SPI5 Port: SOMI[0](output, pulldown), SIMO[0](input, pulldown), CLK(input, pulldown), SCS[0](input, no-pull)
The test is an infinitely repeated test in which the SPI Master sends 12 bytes of data to the slave, and the slave that receives the data prepares 12 bytes of data and sends it to the master.
SPI Master and Slave each assign an interrupt pin to GPIO and perform the above operation when an interrupt occurs.
The order is as follows.
Master Data Preparation -> Interrupt Pin Low -> Data Transfer from Master to Slave & Interrupt Pin High -> Interrupt Occurs on Slave -> Data Read & Data Preparation for Transmission -> Interrupt Pin Low -> Data Transfer from Slave to Master & Interrupt Pin High
In this way, data is exchanged infinitely, but it works well, but then a problem occurs.
The Master sends 0xb2, 0xaa, 0xbb, 0xcc, 0xdd, 0xff, 0x12, 0x34, 0x56, 0x78, 0x90 data to the slave, and the Slave receives it well, and after a certain period of time, 0xaa, 0xef, 0x33, 0x77, 0xbb, 0xfc, 0x48, 0xd1, 0x59, 0xe2, 0xb2, 0x00 are received like this.
The certain amount of time may be tens of minutes or tens of hours.
When a slave receives incorrect data, it always receives the above value.
Even if I change the pullup/pulldown values of the slave pins in case the CLK closes early, the symptom is the same.
How should we approach this problem?
I've done a lot of testing, but I still don't know the cause.
Can you help me?