Para un proyecto en el que estoy trabajando, necesito leer los valores de una matriz de fototransistores (8x16) en la Raspberry Pi.
No estoy exactamente seguro de cómo hacer esto, ya que sé que necesito incluir un ADC en algún lugar allí. Si uso registros de desplazamiento para leer los valores de los fototransistores, ¿cómo puedo incorporar el ADC allí?
El problema es la interfaz ADC. Estoy mirando el MCP3008, que aparentemente usa una interfaz de estilo SPI. Si fuera solo una interfaz de estilo analog in
-> simple digital out
, no sería un problema.
Para leer 8 filas de 16 entradas analógicas, debe considerar usar 8 chips multiplexores analógicos CD74HC4067E. Para reunir sus 8 voltajes de salida, puedo pensar en algunas opciones:
Use (parte de) un noveno chip 4067 en modo mux. Conecte las 8 salidas analógicas a las primeras 8 entradas analógicas del noveno 4067. Esta es probablemente la solución más limpia y menos complicada.
Use (parte de) un noveno 4067 como un decodificador binario de 8 bits para controlar los pines de habilitación de salida en los otros chips, y simplemente conecte sus salidas. Esto probablemente sería más fácil de enrutar y puede tener una distorsión más baja ya que la señal solo pasa por un chip mux en lugar de dos.
De cualquier manera, tendrá una dirección de 7 bits que debe generar. Si no tiene suficientes pines de salida libres, podría:
Utilice un registro de desplazamiento de salida paralelo en serie de 8 bits para controlar los pines de habilitación de salida en los 8 4067, tal vez otro para controlar los pines de dirección en los 4067 si está realmente desesperado por pines.
La mayoría de los ADC de "8 canales" son en realidad un ADC de un solo canal con un mux analógico de 8 puertos incorporado. Por lo general, tienen especificaciones más bajas, pero si funciona, uno de estos, más los 8 4067, probablemente sea su opción de menor cantidad de piezas.
Según los niveles de señal y la rapidez con la que necesite operar, es posible que deba agregar un amplificador operacional o un búfer entre los multiplexores y su ADC.
Tenga en cuenta que aún no he probado ninguno de estos, pero las partes están en el correo (estoy trabajando en algo similar).
Actualización: si desea una mayor robustez del ruido, puede ejecutar la parte de detección de su circuito a un voltaje más alto y usar chips mux DG506B en su lugar.
El problema parece derivar en la necesidad de adquirir los datos digitales generados por el ADC, a través de una interfaz de una sola línea.
Hay varios ADC disponibles que admiten dichas interfaces de línea serie de un solo pin. Por ejemplo:
Básicamente, uno debe buscar ADC con una interfaz de pin de datos único, en lugar del dispositivo SPI especificado en la pregunta.
Anindo Ghosh
digital out
. SPI es salida digital, al igual que I2C, al igual que interfaces de salida paralelas (que requerirán n líneas GPIO para una salida de n bits).K. Barresi
Kaz
Kaz
K. Barresi