SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
In the HDQ mode, there is no need for the host to create an initialization pulse to the slave. However, the host can reset the slave by using an initialization pulse (also known as a break pulse). Setting the HDQ_CTRL_STATUS[2] INITIALIZATION bit and then setting the HDQ_CTRL_STATUS[4] GO bit creates this pulse by pulling the line down for a defined duration. When the slave receives the pulse, it is ready for communication but does not respond with a presence pulse.
In a typical write operation, two bytes are sent to the slave. The first byte corresponds to the command/address byte, and the second byte corresponds to the data to be written.
In a typical read operation, the host sends a command/address byte and the slave returns a byte of data.
The master is implemented to send and receive bytes. Sending the command/address and data is controlled by the firmware. The master provides only a single data TX register.
The HDQ protocol is a return-to-1 protocol. Consequently, after a byte is sent to the slave (either command/address + data for a write, or just command/address for a read), the host pulls the line up. The line is set to the high-impedance state in the device and an external pullup brings it to a logical high level.
In the case of a read operation, the slave also drives the line to a logic-low state before sending the requested data.
If the host initiates a read and does not receive data within a specified interval of time (that is, the slave does not drive the line low within this interval), the HDQ_INT_STATUS[0] TIMEOUT bit is set, thereby indicating a read failure. The TIMEOUT bit remains set until the host reads the interrupt status register (HDQ_INT_STATUS).
An interrupt condition indicates either a TX-complete, an RX-complete, or a time-out on a transaction. The corresponding bit is set in the interrupt status register (HDQ_INT_STATUS). This register is cleared as soon as it is read.
Only one interrupt signal is sent, and only an overall mask can enable or disable the interrupts. These interrupts cannot be individually masked.