Problema
Necesito diseñar un frontal analógico aislado para una Raspberry Pi que necesita trabajar con un transmisor de 4-20mA o 0-10V. He estado estudiando los módulos de entrada analógica existentes de los principales fabricantes de PLC para la inspiración.
Productos existentes
- Módulo de E/S analógicas Micro850 de Allen Bradley ( ficha técnica ) tiene para cada canal de entrada, unos pines separados Vin, Iin y COM.
- Ofertas Wago 750 entrada de corriente módulos y entrada de tensión módulos. No he encontrado ningún módulo con canales analógicos que tenga entradas de corriente/tensión para el mismo canal.
- Industruino E/S ind. parece ofrecer ambos 0-20mA/0-10V en el mismo pin en cada canal, seleccionable en software como se muestra en la siguiente imagen
- UniPi S10x ( ficha técnica ), también parece ofrecer ambos 0-20mA/0-10V en el mismo pin.
Intentos de solución
Con un ADC span de 2V, sé cómo hacer que cualquiera de los dos
- un receptor de corriente con una resistencia de 100
- un receptor de tensión con un atenuador pasivo con impedancia de fuente >100k
La precisión en cualquiera de los dos no es necesaria ya que puedo hacer una calibración por software con una fuente de corriente/tensión calibrada.
Traté de entender cómo Industruino fue capaz de seleccionar por software entre la entrada de corriente y voltaje ya que la entrada de voltaje requiere alta impedancia mientras que la entrada de corriente requiere baja impedancia.
Su Indio I2C biblioteca me dice lo siguiente
- MCP3424 es el ADC de 4 canales y 18 bits
- 2xMCP4726 son los DAC de 1 canal y 12 bits
- PCA9555 es un extensor GPIO I2C de 16 bits
- 8 canales del PCA9555 van a la E/S de 24V a través de controladores de lado alto
- La función analogReadMode() conmuta 4 canales del PCA9555 en ALTO para la entrada de corriente y en BAJO para la entrada de tensión; uno por cada canal de entrada analógica.
- 2 canales del PCA9555 se conmutan en ALTO para la salida de corriente y en BAJO para la salida de tensión mediante la función analogWriteMode(); uno para cada canal de salida analógica.
Como se trata de un proyecto de hardware abierto, he intentado encontrar los esquemas en su sitio web. No está ni allí ni en ningún otro sitio web que he encontrado. En su repositorio de GitHub tampoco aparece. He intentado enviarles un correo electrónico con la consulta, pero no han respondido.
Estaría muy agradecido si alguien pudiera arrojar luz sobre la solución.