Autor Tema: Registro de desplazamiento con 595, problema de multiplexado  (Leído 12326 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Registro de desplazamiento con 595, problema de multiplexado
« en: 01 de Marzo de 2018, 07:28:07 »
 
Buenas.

Estoy teniendo un problema con un registro de desplazamiento con 74HC595, un circuito muy simple, multiplexado con dos transistores, que enciende una serie de Leds y displays BCD.

En el prototipo ha funcionado perfectamente, pero al llevarlo a producción me da un problema raro. La única diferencia entre prototipo y placas finales, es el cambio de los displays por unos mayores y los leds que ahora son pasantes de 5mm. El prototipo era una sola placa con toda la circuitería y los displays y leds en miniatura, al llevarlo a producción la placa se ha partido en 5 placas unidas con cables planos. No se si los cables podrían afectar, miden 32cm cada uno y son de los planos en cinta.

El problema es el que se ve en esta foto, hay segmentos del BCD y tambien pasa lo mismo con los led, que están reflejando los mismos segmentos y leds del otro bloque del multiplexado, además lo hacen de manera más tenue, eso descarta software y además ya lo he comprobado. Los dos cátodos del multiplexado se activan por separado alternadamente, como tiene que ser, si fuera problema de software y los dos cátodos se activaran a la vez, entiendo que los leds y los displays lucirían con la máxima intensidad mezclando los datos de ambos, pero no es el caso, ese reflejo fantasma es más tenue que el de los datos buenos.

En la foto se ve como el último dígito que es un 1, también tiene ligeramente encendidos los segmentos correspondientes al 2, que es el display a su izquierda.

Es como si el transistor que controla el cátodo común no actuase exactamente como un interruptor, abriendo y cerrando, sino que cuando está desactivado parece que deje pasar algo de corriente que permite que los leds del bloque desactivado, puedan lucir ligeramente, lo que hace que muestre el estado de los leds y diplays del otro bloque del multiplexado mezclados con los buenos.

Lo raro es que esto no pasaba en el prototipo, y el circuito es idéntico, solo se usan leds y displays distintos. Todo está controlado por un STM32, por si acaso me he metido en Cube y he cambiado las señales de datos, reloj y Latch a Muy Rápidas, también estoy revisando la configuración del Timer que gestiona la interrupción, pero no le veo relación con el problema, me parece más de algo de harware.











« Última modificación: 01 de Marzo de 2018, 07:36:59 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #1 en: 01 de Marzo de 2018, 08:47:06 »
Citar
Lo raro es que esto no pasaba en el prototipo, y el circuito es idéntico, solo se usan leds y displays distintos.

Entonces me imagino que el problema viene por el consumo del display.

Respecto al conmutar el comun:
200 ohms es un muy pequeña resistencia de base,, le estas pidiendo al PIC que en un pin saque 21.5mA cuando necesitas maximo unos 3mA de base.

Seria bueno un captura de las señales de base, de colector de las mismas.
Sin contar que el 74hc595 con una salida de 120mA aproximadamente en cada uno de sus pines es un poquito mucho, especialmente cuando tenes un numero que requiere muchos mas segmentos.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #2 en: 01 de Marzo de 2018, 09:21:04 »
Citar
Lo raro es que esto no pasaba en el prototipo, y el circuito es idéntico, solo se usan leds y displays distintos.

Entonces me imagino que el problema viene por el consumo del display.

No lo se, también están los cables planos que unen las 5 placas.

Citar
Respecto al conmutar el comun:
200 ohms es un muy pequeña resistencia de base,, le estas pidiendo al PIC que en un pin saque 21.5mA cuando necesitas maximo unos 3mA de base.

Con una resistencia mayor, como le puse al principio, me limitaba a poder suministrar unos 600mA máximo a todos los leds y displays, por eso reduje esa resistencia a 470 y luego a 200 ohm, pero eso no creo que afecte cuando el transistor no debe de suministrar corriente al cátodo común.

Citar
Seria bueno un captura de las señales de base, de colector de las mismas.
Sin contar que el 74hc595 con una salida de 120mA aproximadamente en cada uno de sus pines es un poquito mucho, especialmente cuando tenes un numero que requiere muchos mas segmentos.

Meteré el osciloscopio, a ver que hay.
No entiendo que pasa, no descarto que sea de software, pero lo dudo. Tal vez estoy barriendo los registros de desplazamiento demasiado rápido, o la señales que activan cada transistor son demasiado lentas, o esos puertos están configurados demasiado lentos y los transistores no cortan exactamente cuando deben (ya he cambiado el tipo de puerto en Cube, a Muy rápido).

Los leds y los displays no se pueden encender si el cátodo no está a masa o próximo a masa, eso está claro. Como lucen muy poco, no están a masa pero tampoco están aislados, es como si el transistor dejase pasar algo de corriente, a pesar de que el microcontrolador no da señal en la base de transistor.

Por otra parte que funcione en el prototipo, con el mismo circuito y el mismo software, me confunde. Solo se me ocurre que el largo de los cables planos afecte al circuito, o el circuito del prototipo tiene el mismo defecto pero los leds y los displays que son distintos no llegan a lucir porque la corriente no es suficiente.


« Última modificación: 01 de Marzo de 2018, 09:26:27 por planeta9999 »

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1099
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #3 en: 01 de Marzo de 2018, 09:34:26 »
Quizas ayude algo poner unas resistencias de 4K7 o similar entre la base y masa de cada transistor.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #4 en: 01 de Marzo de 2018, 10:41:07 »
Si un error en mis calculos, el 74595 se le pide una salida de 840mA como maximo. Lo cual pienso que es absurdo.
Luego para 1A tenes que el hfe es de 80 aprox, asi que con 11mA deberia ser suficiente

Lo que me parece raro es que unicamente en un display lo hace... al menos en la imagen asi lo parece, este es el primero de la cadena.

EDIT: Un error mio de calculo:

5V - 2V - 0.3 = 70mA por segmento
« Última modificación: 01 de Marzo de 2018, 22:48:02 por KILLERJC »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #5 en: 01 de Marzo de 2018, 15:05:45 »
Cita de: KILLERJC

Lo que me parece raro es que unicamente en un display lo hace... al menos en la imagen asi lo parece, este es el primero de la cadena.


Lo hace en todos, tambien en los led. En la foto, los BCD, a efectos de multiplexado van por parejas.

El primer display de arriba por la izquierda está apagado, luego no puede reflejar nada en el siguiente que enciende un uno, y que por lo tanto sale bien. El tercer display enciende un dos, y este si que interfiere en el cuarto, que ademas de encender un uno,  enciende levemente los segmentos del anterior.

Los displays de abajo, primero y segundo por la izquierda apagados, luego el primero que esta apagado no tiene nada que reflejar en el cuarto. Display tercero y cuarto de abajo  el tercero esta pagado, luego no hay nada que interfiera en el cuarto que saca un cero limpio.

Lo que si me doy cuenta es de que en el multiplexado, el primero interfiere en el segundo, pero no al revés. En la foto, los segmentos del display que marca un dos se reflejan en el siguiente display que marca un uno, pero no al revés, eso me hace sospechar en algo de software, pero no lo veo.




« Última modificación: 01 de Marzo de 2018, 15:37:45 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #6 en: 01 de Marzo de 2018, 15:14:08 »
Si un error en mis calculos, el 74595 se le pide una salida de 840mA como maximo.

Ten en cuenta que esta multiplexado, en dos grupos.

Tal como lo tengo, display y leds lucen bien, aunque la configuración del timer la he hecho probando hasta que no parpadeaban y lurcian con buena intensidad.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #7 en: 01 de Marzo de 2018, 17:59:04 »
 

He hecho algunas mediciones con el osciloscopio, la activación de los dos puertos para el multiplexado parece correcta, en ningún momento se activan los dos cátodos a la vez en los displays.

Lo que no se interpretar es el galimatias que sale al medir en el colector de los dos transistores que multiplexan. Aún así en la placa de prototipos va bien, solo da problemas en la de producción que monta otros leds y displays.



Esquema de los transistores para el multiplexado:





Señal en la base del transistor, antes de la resistencia:





Señal en la base del transistor, después de la resistencia, solo varía la amplitud de la señal:





Las dos señales de los puertos, para el multiplexado, en ningún momento se activan al mismo tiempo ambos:





Salida en el colector del transistor, esto no lo se interpretar. Ese pico seguido de una rampa descendente que parece que hay entre pulsos, no se de donde sale, puede que sea lo que afecta el control de los cátodos de los displays:








Aqui capturando al mismo tiempo los dos colectores. Esto es más raro, porque entre ellos hay diferencias. Por si era cosa de osciloscopio he invertido las puntas pero se queda igual. La señal amarilla muestra pulsos y entre medias un pico con una rampa descendente, la señal azul ya ni idea de lo que es. No se si es que todo esto varía segun el consumo en cada transistor, y tal vez tengo que reducirlo aumentando la resistencia de base o modificando la frecuencia y periodo del timer.







Captura simultanea de Base y Colector en el transistor 1:






Captura simultanea de Base y Colector en el transistor 2:

« Última modificación: 01 de Marzo de 2018, 18:46:58 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #8 en: 01 de Marzo de 2018, 20:49:16 »
Observando la señal de la base del transistor de los catodos ( los 2 catodos ) y luego la señal de colector y tambien base. Se puede observar que esos picos de voltaje y su correspondiente rampa ocurren cuando se activan los demas catodos.

Mi pregunta es si tendra algo que ver con la excesiva corriente que le estas imponiendo a los 74hc595, o que esa corriente sea demasiada para el IC ( que para mi lo es ) o algun efecto de la placa. Si es para probar metele un par de buenos condensadores sobre el VCC de los 74595 para probar.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #9 en: 01 de Marzo de 2018, 21:35:00 »
Observando la señal de la base del transistor de los catodos ( los 2 catodos ) y luego la señal de colector y tambien base. Se puede observar que esos picos de voltaje y su correspondiente rampa ocurren cuando se activan los demas catodos.

Mi pregunta es si tendra algo que ver con la excesiva corriente que le estas imponiendo a los 74hc595, o que esa corriente sea demasiada para el IC ( que para mi lo es ) o algun efecto de la placa. Si es para probar metele un par de buenos condensadores sobre el VCC de los 74595 para probar.

Puede ser que tenga algo que ver el consumo, porque en las placas finales los displays son mucho mayores y supongo que también su consumo. Y los led en vez de ser SMD 3528 son pasantes de 5mm.

En los 5v para los 595, tengo puestos 4400 uF en condensadores de filtro, con opción a añadir otro más de 2200uF, y con el mismo encapsulado los hay de 3300uF. Voy a rebajar la frecuencia y periodo del timer para bajar el consumo, ahora lucen bastante los displays, tal vez demasiado.  En cuanto a los leds pasantes van muy justos, el cliente se queja de que lucen poco, pero en estos como son los de la ruleta solo se enciende un par de ellos a la vez, el resto está apagado, opción que ponga leds que den más mcd o bajar las resistencias limitadoras.

El consumo gordo se lo llevan los displays. También he rebajado por software el tiempo de encendido, metiendo 2 periodos de tiempo con ambos cátodos apagados, entre cada encendido.

El problema es que el cliente, se ha cargado el programador que tenía para los ST, y en estos no tengo aún el bootloader para dar actualizaciones a distancia. Ha pedido otro programador y hasta que no lo reciba no puede probar nada.

A ver si tengo suerte, y es cosa del consumo, porque no se me ocurre nada más. A mi todo lo que sale por el colector de los transistores me suena a chino, esperaba señales cuadradas, a semejanza de lo que se ve en las bases.

Tal vez debía de haber puesto varios transistores por cátodo, no se si eso resultaría mejor.
« Última modificación: 01 de Marzo de 2018, 22:58:34 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #10 en: 01 de Marzo de 2018, 21:49:38 »
 
Otra cosa que se me está ocurriendo para paliar el consumo, es crear un multiplexado a 4 artificial, por software.

Cargo la mitad del registro de desplazamiento, enciendo esos leds/displays, a la siguiente interrupción cargo la segunda mitad del registro de desplazamiento, y sigo con lo mismo para el segundo cátodo.

Cátodo 1, primera mitad del registro de desplazamiento
Cátodo 1, segunda mitad del registro de desplazamiento
Cátodo 2, primera mitad del registro de desplazamiento
Cátodo 2, segunda mitad del registro de desplazamiento

Salvo que el problema no sea de consumo total, sino del consumo individual en cada salida de 595. Bueno, mientras hayan ideas, hay esperanza, lo malo es si nada funciona y ya no sabes que hacer. A ver si con estos cambios que voy a hacer, cambian las señales en los colectores, que reflejen algo más normal.
« Última modificación: 01 de Marzo de 2018, 21:52:09 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #11 en: 01 de Marzo de 2018, 22:40:34 »
Mi principal voto de duda esta sobre el shift-register, que como dije le estas pidiendo corriente por demás cuando no son capaces de dar esa cantidad segun el datasheet,  35mA maximo por salida  y un maximo de 70mA por IC completo. Y vos tenes 70mA por si solo en un segmento, es cierto que el led lo aguante, pero el IC no se si le da esa capacidad para hacerlo.

https://assets.nexperia.com/documents/data-sheet/74HC_HCT595.pdf

Una prueba seria aumentar el valor de las resistencias, y si van a brillar menos, pero al menos vas a ver como queda la salida del colector cuando esto ocurre.

----------------------------------------

Ahora veo que los transistores manejan varios displays, lo cual el consumo es aun mayor, y el hfe de los transistores mucho menos. Por lo que necesitas mucha mas corriente de base para que conduzca la corriente que queres, tal ves hubiera sido mejor ir por un MOSFET para ese caso. Aunque ahora la idea es solucionar esto y no crear todo de vuelta.
« Última modificación: 01 de Marzo de 2018, 22:48:59 por KILLERJC »

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #12 en: 01 de Marzo de 2018, 22:51:52 »
Hola planeta9999, veo varios problemas que deberías de resolver.

1) Las resistencias de base de los NZT es demasiado chica, deberías de subir su valor para reducir la corriente de base, o terminarás quemándolos.

2) Los 74HC595 solo soportan en su salida +/- 35mA, por lo que tu estás sobrepasando ámpliamente su capacidad de corriente.

3) Deberías de haber usado un integrado driver como el ULN2803 (hasta 500mA por salida) para conmutar los led's, ya que el 74HC595 no es el adecuado para esas corrientes.

El largo de los cables no creo que sea el problema, ya que dispongo instalados display con largos de cables mayores que los tuyos y no presentan este problema, ahora, si hablamos de integrados, pues tu circuito si le falta bastante corriente. La frecuencia tampoco, porque veo que refrescas a casi 57Hz (por debajo ya no puedes) y yo refresco arriba de los 100Hz.

Deberías re-diseñar todo el circuito, usar los ULN, un darlington en lugar del NZT (o armar darlington con el NZT y un BC8XX), y luego creo que ya no tendrías problemas. La capacidad parásita de los cables en conjunto con las corrientes que manejas, agregadas a que tu circuito no está diseñado para manejar todo esto, pues es básicamente el problema que tienes.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #13 en: 01 de Marzo de 2018, 23:00:38 »
Que te parece este Chaly para simplificar todo en su aplicacion:

http://www.ti.com/lit/ds/symlink/tpic6b595.pdf

Shift-register + latch + mosfet open-drain, aunque no llega a la corriente del ULN, pero para su aplicacion mas que suficiente.

Lo feo es tener que manejar la parte alta para multiplexar. Es decir un poco mas complejo su manejo.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re:Registro de desplazamiento con 595, problema de multiplexado
« Respuesta #14 en: 01 de Marzo de 2018, 23:50:55 »
Hola KILLERJC, igual de válido, pero te comento, por lo general, en estos casos se multiplexa la parte alta y el bajo se deja para un integrado como este que comentas o un ULN, encontrarlo al revés es menos común y por le general solo se aplica a display manejados directamente por el micro y sin integrados de por medio.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.