Hi,
Sorry if the Title is confusing. I am working on a 28379D Launchpad with SPIB configured as a Slave. I have an external device that sends 5 bytes to the Slave. I am using Driverlib to configure the Slave peripheral. My configuration sequence is as follows:
- Disable SPIB
- Register SPIB_RX with function pointer
- Configure GPIOs
- Configure SPI, phase, slave, 500kHz, 8bit word
- Enable FIFO on SPIB
- Clear IRQ Status for RXFF
- Set FIFO Level to TX1, RX5
- Enable IRQ RXFF
- Enable SPIB module
- Enable SPIB RX IRQ
The data I am sending is: 0x20 0x48 0xAA 0x00 0x00 pretty basic. I can see the RX interrupt being thrown and data being available.
I've confirmed signals on the SPI lines with my scope. Pretty straight forward too.
The issue I am having with the Slave is that it sends data out on the MISO line even though I physically do not have any code that writes any data to the TX buffer.
What is even stranger, data comes out on the MISO pin and corrupts the data on the MOSI. Almost every second transmission, the 3rd byte is processed as 0xB5 and not as 0xAA. Please see images below.
This first image shows data 0x20 0x48 0xAA 0x00 0x00 being transmitted to the Slave. iYou will notice that the Slave is responding with data on the MISO even though I've not told it to send anything. In this example the Delfino correctly receives the 3rd byte as 0xAA.
In this example below, the Master is sending identical data again, however this time the slave very briefly pulls the MISO line high. In this example the Slave thinks the 3rd byte is 0x5B.
Any advice would be much appreciated.







