1
\$\begingroup\$

How SDIO slave device can inform master that it's busy? As far as i remember in some MMC standard there was a information that it can assert SDIO_DATA0 low. Is this assertion possible in every time in communication or only in specific moments?

I'm asking this because i have captured transmission in which I see a big data transfer and at the end of this transfer is a 19.37us of low state on SDIO_DATA and next the transmission continues. Is it normal or it could be a cause of problem?

P.S. I have probes only on DAT2, DAT0, CLK, CMD. DAT3 is not connected. P.S.2. Device connected as a slave is a wifi chip, not SD card.

enter image description here

\$\endgroup\$
1
\$\begingroup\$

SD Specifications Part 1: Physical Layer Simplified Specification is relatively clear on this subject.

The block write operation uses a simple busy signaling of the write operation duration on the DAT0 data line (see Figure 3-6) regardless of the number of data lines used for transferring the data.

...

The CRC status response and Busy indication will be sent by the card to the host on DAT0 only (DAT1-DAT3 during that period are don't care).

...

The card may provide buffering for block write. This means that the next block can be sent to the card while the previous is being programmed. If all write buffers are full, and as long as the card is in Programming State (see SD Memory Card state diagram Figure 4-13 ), the DAT0 line will be kept low (BUSY).

...

When reselecting the card, it will reactivate busy indication by pulling DAT to low if programming is still in progress and the write buffer is unavailable.

Thus in general you are correct; DAT0 (or MISO for SPI) will be pulled low in specific circumstances - for example while card is writing data to the card (only after you wrote data block with its CRC into the card), while it reads data (after you issued proper read command and card responded with successful command reception). And you can deselect the card while it is busy - to perform operations on other cards in the stack, and then reselect it to see if it is still busy or you may continue working on it.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.