The DAC3482 includes a flexible set of alarm monitoring that can be used to alert of a possible malfunction scenario. All the alarm events can be accessed either through the config5 register or through the ALARM pin. Once an alarm is set, the corresponding alarm bit in register config5 must be reset through the serial interface to allow further testing. The set of alarms includes the following conditions
Zero check alarm
- Alarm_from_zerochk. Occurs when the FIFO write pointer has an all zeros pattern. Since the write pointer is a shift register, all zeros will cause the input pointer to be stuck until the next sync event. When this happens a sync to the FIFO block is required.
FIFO alarms
- alarm_from_fifo. Occurs when there is a collision in the FIFO pointers or a collision event is close.
- alarm_fifo_2away. Pointers are within two addresses of each other.
- alarm_fifo_1away. Pointers are within one address of each other.
- alarm_fifo_collision. Pointers are equal to each other.
Clock alarms
- clock_gone. Occurs when either the DACCLK or DATACLOCK have been stopped.
- alarm_dacclk_gone. Occurs when the DACCLK has been stopped.
- alarm_dataclk_gone. Occurs when the DATACLK has been stopped.
Pattern checker alarm
- alarm_from_iotest. Occurs when the input data pattern does not match the pattern key.
PLL alarm
- alarm_from_pll. Occurs when the PLL is out of lock.
Parity alarms
- alarm_rparity. Occurs when there is a parity error in the data captured by the rising edge of DATACLKP/N. The PARITYP/N input is the parity bit (word-by-word parity test).
- alarm_fparity. Occurs when there is a parity error in the data captured by the falling edge of DATACLKP/N. The PARITYP/N input is the parity bit (word-by-word parity test).
- alarm_frame_parity_err. Occurs when there is a frame parity error when using the FRAME as the parity bit (block parity test).
To prevent unexpected DAC outputs from propagating into the transmit channel chain, the clock and alarm_ fifo_collision alarms can be set in config2 to shut-off the DAC output automatically regardless of the state of TXENABLE or sif_txenable.
Alarm monitoring is implemented as follows:
- Power up the device using the recommended power-up sequence.
- Clear all the alarms in config5 by setting them to 0b.
- Unmask those alarms that will generate a hardware interrupt through the ALARM pin in config7.
- Enable automatic DAC shut-off in register config2 if required.
- In the case of an alarm event, the ALARM pin triggers. If automatic DAC shut-off has been enabled, the DAC outputs is disabled.
- Read registers config5 to determine which alarm triggered the ALARM pin.
- Correct the error condition and re-synchronize the FIFO.
- Clear the alarms in config5.
- Re-read config5 to make sure the alarm event has been corrected.
- Keep clearing and reading config5 until no error is reported.
For details of alarm monitoring function and behavior, refer to application report SLAA585.