Saturday, January 22, 2011

SDI-12 to arduino


Control panel for DO datalogger
Originally uploaded by whirlymark

Interfacing SDI-12 to arduino means converting SDI-12 to arduino or serial 232 input. Using a converter like the WaterLog H-4191 would work and LABView have some ideas on SD-12 usage. If the arduino used a MAX 232 chip or Sparkfun version to convert to 232 or the MaxSerial arduino from Freeduino

Better to use the %V and convert to TTL but SDI-12 is one wire for TX and RX. Ideas at AVR forum, with their final thoughts being

So I guess your best option is 3 LL parts, 2 inverters and one buffer with an output enable.

Ok here is my final solution for you, this combo should work.

Dual inverter for TX/RX: SN74LVC2GU04 running at 3.3V (5V tolerant inputs) which can be converted to DIP using SOT23 to DIP Adapter sku: BOB-00717 from Sparkfun


Tristate Buffer for Tx: SN74AHCT1G126 running at 5V (Vih min is 2V, so 3V3 logic should drive it fine) which can be converted to DIP using SOT23 to DIP Adapter sku: BOB-00717 from Sparkfun

That dual is nice, also. Running at 3.3V, the Tx inverter outputs 0/3.3V which is acceptable by the tristate buffer so its function is inversion, only. On the Rx side, the input is 5V tolerant, so it behaves well receiving on the SDI-12 bus. It is also $0.40 in quantity of 1 and $0.11 @ 3K from DigiKey. So, it won't break the bank.

Alternative solution: Now my solution was to use the ADG3304 bi-directional voltage level shifting IC to also provide 5V logic level enables for the tri-state buffer, as well as logic shifting for the RX/TX


No comments:

Post a Comment