El problema principal aquí es que usted ha entendido mal cómo funcionan realmente las salidas de TLC5940NT. No funcionan de la misma manera que los controladores de salida push-pull de Arduino, el TLC5940NT usa sumideros de corriente (llamados salidas de drenaje abiertas, que realmente actúan más como entradas. Freaky ¿verdad? Explico más al final) para tirar de ese pin "LOW ". Esta es la razón por la que se les conectan LED, a veces con una resistencia limitadora de corriente (dependiendo de si en realidad son o no sumideros controlados por corriente) de VCC a través del LED y luego en el pin del TLC5940NT y dispositivos similares (usé el TLC59116F antes, que es similar).
En realidad, cometí el mismo error que tú en el pasado, ya que no sabía qué era una entrada abierta de drenaje / fregadero, y asumí exactamente como lo hiciste, que funcionaría de manera similar a como lo hizo mi Arduino. Lo que debe hacer para que esto funcione es invertir la lógica con componentes externos y algunas resistencias de arranque. Cuando las "salidas" del TLC5940NT están "apagadas", el valor en el pin es alto. Esta señal "alta" se puede invertir fácilmente con dos métodos: un circuito inversor lógico de transistor NPN, un CI de lógica de controlador de línea / búfer inversor o incluso amplificadores operacionales si es necesario. A continuación se muestra un resumen rápido de cada uno de estos métodos.
Figura 1: Inversor de lógica de transistores que utiliza un NPB BJT de po- derpo.
Figura2:UsodeunbúferinversorIC,comoun7404Hex(significa8entradas/salidas)Búferinversor.
Es posible que desee una resistencia desplegable o dos en la salida del búfer para evitar los pines flotantes, pero creo que estará bien sin ellos. Siempre siga las instrucciones de la hoja de datos del fabricante.
¿Observa cómo en ambas imágenes muestro los pines de "salida" del TLC5940 como en realidad el lado superior de un MOSFET de canal N? Este pin va al "drenaje" del FET, que cuando está apagado es básicamente un circuito abierto, por lo que lo llaman una salida de "drenaje abierto". A pesar de que actúa como un interruptor de sumidero de corriente del lado bajo ... Terriblemente confuso, y entiendo por qué cometió este error. Es importante que aprenda esto ahora, tan pronto como pueda, y siempre recuerde en el futuro revisar estas hojas de datos y analizar la lógica para asegurarse de que esto no vuelva a suceder.
Lo siguiente que debe hacer es conectar las salidas de estas etapas de inversión a las entradas de su controlador de motor, como si fueran señales de salida de estilo Arduino.
¡Tu sistema debería funcionar como estaba previsto ahora! Los componentes externos son un mal necesario debido a la forma en que funcionan las salidas del TLC5940NT. Sin embargo, estoy de acuerdo (y por qué usé el TLC59116F), tienen increíbles funciones y utilizan su capacidad para PWM en cada canal y permiten que su microcontrolador haga otras cosas que vale la pena el esfuerzo.