ZHCSHP3 February 2018 DAC8771
PRODUCTION DATA.
If the DAC8771 is used in a noisy environment, error checking can be used to check the integrity of SPI data communication between the device and the host processor. This feature can be enabled by setting the CREN bit address 0x03 .
The frame error checking scheme is based on the CRC-8-ATM (HEC) polynomial x8 + x2 + x + 1 (that is, 100000111). When error checking is enabled, the SPI frame width is 32 bits, as shown in Table 3 . The normal 24-bit SPI data are appended with an 8-bit CRC polynomial by the host processor before feeding it to the device. For a register readback, the CRC polynomial is output on the SDO pins by the device as part of the 32 bit frame.
Note that the user has to start with the default 24 bit frame and enable frame error checking through the CREN bit and switch to the 32 bit frame. Alternatively, the user can use a 32 bit frame from the beginning and pad the 8 MSB bits as the device will only use the last 24 bits until the CRCEN bit is set. The frame length has to be carefully managed, especially when using daisy-chaining in combination with CRC checking to ensure correct operation.
BIT 31:BIT 8 | BIT 7:BIT 0 |
---|---|
Normal SPI frame data | 8-bit CRC polynomial |
The DAC8771 decodes the 32-bit input frame data to compute the CRC remainder. If no error exists in the frame, the CRC remainder is zero. When the remainder is non-zero (that is, the input frame has single- or multiple-bit errors), the ALARM pin asserts low and the CRE bit of the status register (address 0x0B) is also set to '1'. Note that the ALARM pin can be asserted low for any of the different conditions as explained in the ALARM Pin section. The CRE bit is set to '0' with a software or hardware reset, or by disabling the frame error checking, or by powering down the device. In the case of a CRC error, the specific SPI frame is blocked from writing to the device.
Frame error checking can be enabled for any number of DAC8771 devices connected in a daisy-chain configuration. However, it is recommended to enable error checking for none or all devices in the chain. When connecting the ALARM pins of all combined devices, forming a wired-AND function, the host processor should read the status register of each device to know all the fault conditions present in the chain. For proper operation, the host processor must provide the correct number of SCLK cycles in each frame, taking care to identify whether or not error checking is enabled in each device in the daisy-chain.