SDIO problems
Posted: Thu Jun 25, 2020 8:42 pm
I've been trying to get the SDIO host/slave examples working on two ESP32 dev boards. I'm using the secondary SDIO pins (the ones that are also JTAG pins), not the pins that are used for the SPI flash. I went through all the rigamarole of adding pullups to the lines, dealing with GPIO12 and all that. The boards are actually connected together at the headers (except for EN and some other pins). The boards can talk fine for the most part. It's just that when the example code gets to the "fifo" job, it times out trying to send a packet in esp_slave_send_packet because when it calls esp_slave_get_tx_buffer_num it keeps getting a zero back from the slave and retries a bunch of times until it finally times out. I'm seeing this same issue when using a NXP IMXRT1064 to talk to an ESP32 slave. I've tried this using both 1 and 4 bit transfers. I don't know what's going on. From what I can see, the NXP IMXRT1064 sent data is valid on the rising edge of the sd clock, and the esp32 slave response data is valid on the falling edge. I'm not sure if this has anything to do with it or not. I'm also seeing weird stuff on the lines. Here are some analyzer screenshots of the send and receive of this particular packet.
Any ideas? Why is the tx buffer register always zero?
Thanks,
-m
Any ideas? Why is the tx buffer register always zero?
Thanks,
-m