The HDQ interface is an asynchronous
return-to-one protocol where a processor communicates with the BQ76972 device using a
single-wire connection to the ALERT pin or the HDQ pin, depending on the configuration. The
controller (host device) and the responder (the BQ76972 device) drive the HDQ interface
using an open-drain driver with a pullup resistor from the HDQ interface to a supply voltage
required on the circuit board. The BQ76972 device can be changed from the default
communication mode to HDQ communication mode by setting the
Settings:Configuration:Comm Type configuration register or by sending a
subcommand (at which point the device switches to HDQ mode immediately).
Note: The SWAP_COMM_MODE() subcommand
immediately changes the communications interface to that selected by the Comm
Type configuration, while the SWAP_TO_HDQ() subcommand immediately changes
the interface to HDQ using the ALERT pin.
With HDQ, the least significant bit (LSB) of
a data byte (command) or word (data) is transmitted first.
The 8-bit command code consists of two
fields: the 7-bit HDQ command code (bits 0–6) and the 1-bit R/W field (MSB Bit 7). The R/W
field directs the device to do one of the following:
- Accept the next 8 bits as data from the host to the device or
- Output 8 bits of data from the device to the host in response to the
7-bit command.
The HDQ peripheral on the BQ76972 device can
transmit and receive data as an HDQ responder only.
The return-to-one data bit frame of HDQ
consists of the following sections:
- The first section is used to start the transmission by the host sending
a Break (the host drives the HDQ interface to a logic-low state for a time
t(B)) followed by a Break Recovery (the host releases the HDQ interface for a
time t(BR)).
- The next section is for host command transmission, where the host
transmits 8 bits by driving the HDQ interface for 8 T(CYCH) time slots. For
each time slot, the HDQ line is driven low for a time T(HW0) (host writing a
"0") or T(HW1) (host writing a "1"). The HDQ pin is then released and remains
high to complete each T(CYCH) time slot.
- The next section is for data transmission where the host (if a write
was initiated) or device (if a read was initiated) transmits 8 bits by driving the HDQ
interface for 8 T(CYCH) (if host is driving) or T(CYCD) (if device
is driving) time slots. The HDQ line is driven low for a time T(HW0) (host
writing a "0"), T(HW1) (host writing a "1"), T(DW0) (device writing
a "0"), or T(DW1) (device writing a "1"). The HDQ pin is then released and
remains high to complete the time slot. The HDQ interface does not auto-increment, so a
separate transaction must be sent for each byte to be transferred.