AnsweredAssumed Answered

ADV7625 and SPI read-back issue with Blimp code

Question asked by JonF-MDS on Mar 12, 2015
Latest reply on May 13, 2015 by DominicB

On the ADV7625, when incorporating Blimp, I ran into a problem with the SPI bus. I have an ARM9 microcontroller running Linux. I compiled the Blimp OSD source and properly handled I2C and SPI writes and reads. There is no external SPI flash, so the device is an SPI slave.


When Blimp writes to the device (In this case, an IBOX_INSTR to index 0x2B with data: 0x0A 0xC0 0x7A 0xD3 0x80), I see a successful transaction:



MOSI: 0x07 0x2B 0x0A 0xC0 0x7A 0xD3 0x80

MISO: 0x00 0x00 0x00 0x00 0x00 0x00 0x00


But when the Blimp code reads back the data from the ADV7625, I get an incorrect value:



MOSI: 0x06 0x2B 0x00 0x00 0x00 0x00 0x00 0x00

MISO: 0x00 0x00 0x00 0xC0 0x7A 0xD3 0x80 0x80

So the read command gets back corrupt data (First byte 0x0A is lost, and last byte 0x80 is repeated twice):

Original: 0x0A 0xC0 0x7A 0xD3 0x80

Returned: 0xC0 0x7A 0xD3 0x80 0x80

This causes layout issues in Blimp code. I worked around this by using a shadow RAM in my SPI handler routine but wanted to understand if this is a known behaviour or if there is something I should be aware of.

Best Regards,