Problem
I need to design an isolated analog front end to a Raspberry Pi which needs to work with either a 4-20mA or 0-10V transmitter. I've been studying existing analog input modules from major PLC manufacturers for inspiration.
Existing products
- Allen Bradley Micro850 analog I/O module (datasheet) has for each input channel, a separate Vin, Iin and COM pins.
- Wago 750 offers current input modules and voltage input modules. I didn't find any modules with analog channels having both current/voltage inputs for the same channel.
- Industruino Ind.I/O seems to offer both 0-20mA/0-10V in the same pin on every channel, selectable in software as shown in the following image
- UniPi S10x (datasheet), also seems to offer both 0-20mA/0-10V in the same pin.
Solution Attempts
With an ADC span of 2V, I know how to make either
- a current receiver with a 100Ω resistor
- a voltage receiver with a passive attenuator with source impedance >100kΩ
Precision in either is not required since I can do a software calibration with a calibrated current/voltage source.
I tried to understand how Industruino was able to software select between current and voltage input since voltage input requires high impedance while current input requires low impedance.
Their Indio I2C library tells me the following
- MCP3424 is the 4-ch 18-bit ADC
- 2xMCP4726 are the 1-ch 12-bit DAC
- PCA9555 is a 16-bit I2C GPIO extender
- 8 channels of the PCA9555 go to the 24V I/O through high side drivers
- 4 channels of the PCA9555 are toggled HIGH for current input and LOW for voltage input by the analogReadMode() function; one for each analog input channel
- 2 channels of the PCA9555 are toggled HIGH for current output and LOW for voltage output by the analogWriteMode() function; one for each analog output channel
Since it is a open hardware project, I tried to find the schematics on their website. It is neither there nor on any other website I came across. Their GitHub repository doesn't list it either. I tried emailing them with the query but they haven't responded.
I would be very grateful if anyone could shine a light on the solution.