TN254

Rabbit RIO Clocked Serial Bug

A bug has been identified in the original lot of Rabbit RIO chips that makes it difficult for the SPI and three-wire serial interfaces to recover from noise on the clock line. This bug does not affect the Rabbit RIO Chip when it is operating in either the Parallel or the RabbitNet modes.

The layout of components on the printed-circuit board (PCB) can minimize the potential for noise on any serial clock or data lines. The following PCB design considerations are recommended.

Description

In both the SPI and three-wire clock serial interfaces on the Rabbit RIO, the current state of the serial state machine does not reset when /CS is disabled. This is not an issue unless the clock and data get out of sequence, i.e., noise on the clock line introduces extra clock edges. This noise will corrupt the current data byte by clocking in more than the actual eight bits of data — any additional bits beyond eight actual bits will be added to the buffer for the next data byte. Because the serial state machine does not reset when /CS goes high, this clock/data mismatch will continue for every later byte. It is quite difficult to detect when this occurs, since all the data being sent to the Rabbit RIO chip are being corrupted.

The Rabbit RIO chip resets its serial state machine correctly in the RabbitNet mode when /CS is disabled.

This bug will be fixed in a chip respin later in 2007 by resetting the serial state machine when /CS is disabled, limiting any corruption attributable to noise to the byte being transferred when the clock line noise occurs.

Workarounds

If you are using the original Rabbit RIO chip in a very noisy environment and noise still occurs on the clock line when the recommended PCB routing efforts have been taken for the clock line, monitor one of the outputs from the Rabbit RIO while it is being toggled. If the pin does not toggle as it expected, assert /RESET and reprogram the Rabbit RIO chip.


022-0124 Rev. A
Rabbit Semiconductor
www.rabbit.com