DLPU114A August 2024 – November 2024 DLPC8445
The response packet is the format in which the controller replies to the host. The response packet format is followed for both write responses and read responses. For write commands, the response packet is sent only if the "reply requested" bit is set in the command header. The controller matches the response header to the same format as the incoming command packet header. There is however an exception, if the response packet is for a command that expects variable number of data bytes, the response packet will always include the length field (irrespective of whether the command packet had length mentioned or not). Kindly refer to Support for Variable Data Size section for information related to variable sized commands.
Similar to the definition of command packet, fields in bold represents fields that are always present..
Field | Size (bytes) | Description |
---|---|---|
Header | 1 | See Table 5-4 table below |
Length | 2 or 0 (Optional as per Data Length Preset field in the header) | Length of the command data in bytes following this byte. The checksum is not included in length. For example, when the length is set as 10 means there are 10 bytes of data after this length field. LSB of length shall be sent first followed by MSB. |
Data | 0-511 (total of max 512 bytes in the whole message including header and checksum) | Response data bytes depend on the command code. If error bit in the header is set, there will only be a single data byte. This byte will indicate the error code that caused the command to nack. The error code definitions are listed in the Table 5-5 table below. |
Checksum | 1 or 0 (optional as per Checksum Present field of header byte) | Checksum of all bytes in the message including header bytes (Fletcher's checksum) |
Bits | Field Name | Values |
---|---|---|
0:2 | Destination | Numerical destination code of the applicable command. |
3 | Reserved | N/A |
4 | Datalength Present | 1 = Length field present in the extended header 0 = No length field |
5 | Checksum Present | 1 = Checksum present after data bytes 0 = Checksum not present |
6 | Error | 1 = Error. First data byte will have the error code that gives more information about the failure 0 = No error |
7 | Busy | 1 = System busy/response not ready 0 = Response ready Applicable only for I2C based communication |
Error Code | Meaning |
---|---|
1 | Invalid destination |
2 | Invalid/Unknown command |
3 | Invalid length |
4 | Allocated buffer is not enough to store a command |
5 | Length information missing for a variable sized command |
6 | Checksum mismatch |
7 | Timeout error |
8 | Read not supported |
9 | Write not supported |
10 | Execution failed |
11 | Invalid response length |
12 | Buffer Full |
An example of a response packet for Read LED Enable (see Section 9.6.2) can be seen below: