I2C adapter board
As per the test report (link) sent to ELMA, until the ELMA crates are adapted with the new pull-up resistors and potential capacitors, an I2C adapter RTM board will be added. This simple RTM board contains only the pull-up resistors which in parallel with the pull-up resistors on the SysMon bring down the overall pull-up resistance, thus bringing down the rise time on the SCL and SDA signals. The board will also have the pads for two decoupling capacitors between the SCL and SDA lines and GND. It is believed these capacitors can help improve the communication by filtering some ripples seen on the signal lines.
This page presents the I2C adapter board, the various tests performed in our lab to confirm which combination of values is better and at the end a conclusion on which combination of pull-up resistance with or without decoupling capacitors is better on the I2C adapter RTM.
Test setup
To test the communication with and without the I2C adapter, CONV-TTL-BLO with the regtest firmware were used in 2- and 17-slot ELMA crates. Both of these crates showed errors on the past, this is why we attempted the communication on both of them. The test script writes the value 0x55443322 to address 0x000* of the RAM and reads it back. There can be two kinds of errors in communication, and these relate in the following way with the test log files below:
- communication error (read or write exception -- w/rex): errors thrown by the ELMA crate, most commonly I2C timer expired errors and NACKs received by the SysMon
- data errors (mis): mismatch between the written value and the immediately read value
In the case of the 2-slot crate, one CONV-TTL-BLO was placed in slot one and tests were run for 13 hours, first without the I2C adapter plugged in, then with the I2C adapter with no decoupling capacitor, then with 22pF capacitors on the line.
In the case of the 17-slot crate, 17 CONV-TTL-BLO were placed in the slots of the crate and the communication test was run for 12 hours, first without the I2C adapter plugged in, then with the I2C adapter with no decoupling capacitor, then with 22pF capacitors on the line.
In both cases, the pull-up resistors on the I2C adapter were 1.8k, which in parallel to the 2.2k resistors on the SysMon board result in a 0.99k resistor.
I2C adapter board
pic of the board
No I2C adapter board
The table below shows the test results for the two crates with no I2C adapter plugged in. The corresponding log file attached to this page are also outlined in the table.
* Number of slots * | * Communication cycles * | * Communication errors * | * Data errors * | * Log file * |
---|---|---|---|---|
2 | 23864744 | 0 | 0 | no-i2c-adapter-2slot.txt |
17 | 19748152 | 571 | 286 | no-i2c-adapter-17slot.txt |
While the communication errors can be mitigated by retrying the transfer, the data errors are more worrisome in the 17-slot case. As can be seen in the log file, the data errors do not occur at regular intervals, nor do they occur on the same slot.
I2C adapter board without decoupling capacitors
I2C adapter board with decoupling capacitors
Conclusion
Theodor-Adrian Stana, Jan. 2014