When sharing SPI bus, MISO data not read correctly (all 0x00s except first byte)

jc2020
Posts: 12
Joined: Thu Dec 03, 2020 8:59 am

When sharing SPI bus, MISO data not read correctly (all 0x00s except first byte)

Postby jc2020 » Sun Jan 03, 2021 5:19 pm

I have an ESP32 master, which is connected to an ESP32 slave, and a LCD (ILI9488 4" Display) slave.

The ESP32 master and ESP32 slave communicates correctly.

And so does the ESP32 master with the LCD when they are not on the same bus.

So they both work fine if they are on separate SPI busses (one uses HSPI, other VSPI).

When they share the same bus (both now on VSPI), the LCD seems to work OK, but the comms between the ESP32 slave and ESP32 master become faulty.

The data that the master reads from the slave is all 0x00 except the first byte.

I checked on a logic analyser, and the MOSI bus looks like it is sending the correct data all the way.

I tried loboris LCD library and LVGL, both with same issue.

What could be the problem? Is there anything obvious sticking out?

If there is any information required from me, please let me know! :)

EDIT: I will be trying this on two ESP32 slaves in the next coming days.

jc2020
Posts: 12
Joined: Thu Dec 03, 2020 8:59 am

Re: When sharing SPI bus, MISO data not read correctly (all 0x00s except first byte)

Postby jc2020 » Sun Jan 03, 2021 5:38 pm

I think I just found the solution.

The LCD drivers were initializing as half duplex, whereas the ESP32 slave was full duplex.

I init the LCD driver as full duplex and the issue went away.

Out of interest, why did it portray this particular behaviour?

Who is online

Users browsing this forum: Baidu [Spider], Google [Bot] and 154 guests