Manejo de optoaisladores múltiples, con detección de fallas

0

Estoy construyendo una placa que controla los controladores de motores paso a paso externos que tienen optoaisladores (con resistencias integradas, están diseñadas para funcionar con 5 V y consumir 13 mA en sus entradas). Como las tarjetas externas están conectadas a través de cables que pueden desconectarse o cortocircuitarse accidentalmente, me gustaría verificar que haya un LED conectado en el otro lado. Las señales se generan desde un FPGA, por lo que tengo un poco de flexibilidad en la implementación.

Idea 1: IC del controlador LED de 16 salidas con corriente constante y detección de fallas

Esto integra todo en un solo paquete, pero parece que todos estos CI necesitan que los datos se desplacen en serie (lo que reduce la cantidad de E / S requeridas, pero agrega complejidad en el diseño de FPGA). Parecen detectar fallos solo cuando el canal está activo, lo que probablemente sea lo suficientemente bueno, pero podría mejorarse. No estoy seguro de qué tan bien detectan fallas si hay una resistencia en serie.

Idea 2: Controlador de 16 canales, Medición de corriente de alta impedancia, Comparadores

Un controlador emite una señal de 0 o 7V, una caída de 2V en una resistencia en serie, luego el voltaje se compara con 6V y 4V. Por encima de 6 V, la conexión parece estar abierta, por debajo de 4 V, la conexión parece estar en cortocircuito. La resistencia en serie protege al conductor.

Lógica bastante simple, detecta fallas mientras el LED está encendido. El inconveniente es que requiere 48 pines IO en el FPGA y 32 comparadores (pero deberían existir bancos de comparadores) para una condición de error que esencialmente nunca debería ocurrir.

Idea 3: "Open-Collector"

Un colega sugirió un sistema de colector abierto, donde correría los pines IO esencialmente en modo bidireccional, y manejaría 0V o iría a Z alto, a la cual la corriente fluiría hacia el LED a través de una resistencia pull-up, sin embargo Todavía no he entendido bien cómo podría detectar una conexión rota de esta manera (los cortocircuitos son fáciles: al no presionar hacia abajo, puedo configurar el IO en el modo de entrada y verificar que esté alto). Las conexiones rotas son más probables que los cortocircuitos en el cableado.

¿Existen enfoques más simples sobre cómo podría controlar 16 optoaisladores y detectar fallas de cableado en el camino hacia ellos?

    
pregunta Simon Richter

2 respuestas

1

simular este circuito : esquema creado usando CircuitLab

Esto es lo mejor que pude encontrar. Todos los valores son aproximados. El udn2987 es un chip controlador de 8 salidas con protección contra sobrecorriente. Dos de estos llenarán tus necesidades. En la salida R1 cae el voltaje a 5v antes del opto.

Aquí está la idea. Cuando el opto está conectado y apagado, el voltaje bajará en el punto de detección a bajo. Si el opto está desconectado (abierto), el punto de detección será elevado por R3. Si el opto está apagado y el sentido es alto, esta es una condición de error.

Si hay un corto en cualquier canal, el udn2987 afirmará su pin de falla. Si el pin de falla está activado, entonces hay una falla.

De esta manera puedes conducir y sentir 16 canales con 34 pines.

El único problema es que el udn2987 requiere un mínimo de 7v. Mejores ICs pueden estar disponibles.

    
respondido por el vini_i
0

Para un interruptor lateral bajo con una caída de la serie R, se compromete Si es actual, pero generalmente hay mucho margen dependiendo del Opto utilizado.

Por lo tanto, una serie R podría medir el Vol al cátodo opto con ánodo común a 5V.

Pero solo usted puede decidir cuántos puertos de entrada desea asignar para detectar cada puerto de salida. Depende de cómo controle los steppers usando la máquina de estado de software, la máquina de estado de hardware externo; Medio paso, paso completo, o ustep.

  1. Puede dirigir los controladores con un búfer de SIPO de 16 puertos con controladores de colector abierto y hacer lo mismo para detectar el uso del voltaje analógico al cátodo como un nivel lógico de CMOS a 16 puertos PISO con un adecuado retardo de xx usec para el aumento de apagado solo con 2 puertos para datos + Clk y 1 para control de dirección.

Pero es posible que un par de circuitos integrados de SOIC-24 no encajen en sus bienes raíces.

  • 3.9 ~ 5V flotante según la impedancia al valor del suelo. (1M a 1e9)
  • umbral de entrada HC de 2.5V
  • umbral de entrada de 1.5V HCT
  • Salida estimada de 0.5V ~ 11.5 mA
  • Se supone una salida de 0V ~ 13 mA .

2. También podría diseñar un circuito más complejo con entradas / salidas paralelas.

3. Sugiero que detecte el estado de venta en la placa del controlador MOSFET remoto para determinar si el motor está listo para los pasos en cualquier posición activa del rotor y tiene un solo bit de estado listo para regresar. Esto determinaría si las corrientes de las bobinas de paso indican corrientes de fase válidas. Esto necesita algo de lógica XOR para garantizar que los devanados abiertos alternativos indiquen un estado de rotor activo válido.

4. También debe usar una buena prevención de interferencia en el cableado si utiliza modos de alta impedancia, lo que significa 16 pares de UTP por puerto con + 5V, o bien use controladores lógicos estándar de baja impedancia para manejar 13 mA con Vol < 0.5V y no posibilidad de alimentación externa antes de que el controlador interno Vcc esté activado para evitar el bloqueo.

5. Sugiero grandes choques de ferrita CM alrededor de los cables del motor paso a paso para reducir el ruido irradiado con los transitorios de corriente del motor.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas