Buscando el IC de contador de eventos multicanal para verificar la operación del interruptor

1

Como parte de un proyecto, me gustaría probar el funcionamiento correcto de un conjunto de circuitos integrados de conmutador SPST (quizás 8 o 16 o algo así). Cada dispositivo contiene seis conmutadores independientes y se controlan a través de un bus SPI. Planeo operar los interruptores a alrededor de 10 o 20 kHz. Estoy pensando en usar un microcontrolador de bajo costo (mabye un Arduino MEGA) para ejercitar los interruptores y contar el número de veces que están cambiando.

Creo que podría usar el temporizador / contadores de 16 bits de Arduino, sincronizados externamente por los conmutadores bajo prueba, para contar cuántos ciclos de conmutador se están produciendo realmente. Sin embargo, la mayoría de las MCU tienen un número limitado de periféricos de temporizador / contador. El ATmega2560 en el Arduino MEGA tiene cuatro temporizadores de 16 bits, por ejemplo (suponiendo que pueda usarlos todos).

Como estoy monitoreando más de cuatro conmutadores (podríamos estar viendo algo así como 50 conmutadores individuales que deben monitorearse en 16 dispositivos, por ejemplo), necesito otra solución. Esto puede ser una pregunta de compras, y es posible que necesite el nombre de lo que estoy buscando, pero hay IC de contadores de eventos de canales múltiples que pueden funcionar de forma independiente, con registros internos o memoria para almacenar los conteos en cada canal y tal vez provocar una interrupción cuando se alcanza algún recuento o se desbordan? Gracias!

    
pregunta David

2 respuestas

2

Su mejor apuesta es utilizar una placa de desarrollo FPGA barata. Aquí hay una lista de ellos en Digikey, ordenados por precio . Hay varios en el rango de $ 30.

Obtenga uno con suficientes E / S para manejar la cantidad de señales que necesita contar. Por ejemplo, la placa Lattice MACHXO2 tiene más de 100 E / S que van a puntas de pines de 0.1 ". Es programable por USB y el software de desarrollo se puede descargar gratis.

En lo que respecta a la programación del FPGA, en lugar de intentar que un gran número de entradas de reloj externas manejen directamente varios contadores, sería mejor usar un reloj fijo, muestrear las entradas externas e incrementar el contador cuando se levanta se detecta el borde. Se detecta un flanco ascendente cuando a una muestra 0 le sigue una muestra 1. La frecuencia del reloj debe ser al menos ~ 4X que la frecuencia de entrada y las entradas muestreadas deben pasar por un par de niveles de registros para evitar cualquier Problemas de metastabilidad .

También puede utilizar la lógica FPGA para implementar una interfaz SPI o I2C para leer los contadores y el estado, restablecer los contadores, etc.

    
respondido por el crj11
0

Si lo que realmente intentas hacer es verificar la corrección a medida que aumentas la velocidad, por ejemplo, puedes adoptar el enfoque de análisis de firmas.

En cada conjunto de datos nuevos, enganche en los registros de desplazamiento (74hc165)

Cambie todo a través de un generador CRC (74F401).

Repita hasta que se haya completado toda la prueba.

Lee la firma CRC en arduinos SPI.

(74F401 está obsoleto pero en ebay) La parte de Silego a continuación podría implementar un generador de I2C crc

Silego / Dialog SLG46824 es un dispositivo de lógica sencilla y económica que puede implementar varios contadores (lo interpreto como 7x8 bit + 1x16bit, o 4.5x 16 bit) que puede leer desde el puerto I2C.

Es muy fácil acceder a ellos con programación de tipo esquemático y tienen una alimentación de 2-5V.

Ahora tienen una versión de adaptador DIP que es mucho más fácil que jugar con el miserable qfn.

respondido por el Henry Crun

Lea otras preguntas en las etiquetas