Autor Tema: falla en multiplexado  (Leído 6043 veces)

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

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
falla en multiplexado
« en: 25 de Octubre de 2015, 11:18:50 »
hola quería comentar una falla que tengo en la visualización de una variable en dos displays ánodo común led.
el inconveniente es que me hace un parpadeo donde me enciende todos los bit utilizados para el bus de datos.
para mi es un problema cuando niple genera el archivo .asm ya que realizando el programa sin la utilización del modulo de visualización automática que genera niple no lo realiza.
dejo un video donde tengo el multiplexado hecho de forma muy basica con un retardo de 1s asi se nota bien el problema
spfreload=10

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:falla en multiplexado
« Respuesta #1 en: 25 de Octubre de 2015, 11:23:54 »
Parece mas un error de programa. No manejo nipple pero otra persona lo va a ver y decirte que es.
la persona que lo veo va a preguntarte un par de cosas, como:

Tenes un integrado entre medio de los segmentos de Led y el PIC ? ( un registro de desplazamiento, un 4511, etc )
Y seguro que te van a pedir el programa.

lo digo para que sea mas rapido tener una respuesta.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:falla en multiplexado
« Respuesta #2 en: 25 de Octubre de 2015, 12:18:09 »
Yo opino como killerjc, parece un fallo de software, no de hardware.

Y al igual que killerjc ni idea de nipple  :D

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #3 en: 26 de Octubre de 2015, 19:52:18 »
aca pongo el plano de como lo tengo cableado al circuito en el protoboard aclaro que tengo 0 v al pin 8 del uln2003 y 5v a pin 9 que no esta discriminado en el esquema lo demas tal cual esta en el plano. para mi tambien es un fallo del código assembler que genera niple también ajunto el archivo .hex y .asm como así también el archivo .npl si alguno quiere ver el programa hecho en niple.
desde ya muchas gracias por sus respuesta

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #4 en: 26 de Octubre de 2015, 19:54:22 »
el esquema pesa demasiado y no me lo deja subir pero estoy usando un 4511 y un uln 2003 para el bus de datos y b327 con opto 817 para la conmutacion de los displays. la r para los opto 470ohms y para los bc 10k

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #5 en: 26 de Octubre de 2015, 20:00:25 »
aca dejo un linck de otro video que subi donde explico mas detalladamente el funcionamiento

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:falla en multiplexado
« Respuesta #6 en: 26 de Octubre de 2015, 20:57:06 »
Subi una imagen del esquema, ahi el foro tiene una ayuda, saca un scrrenshot de tu PC y cuando vas a responder abajo de las caritas dice Tinypic, ahi podes subir tu imagen.
Por suerte el ASM es corto, yo podria ver el ASM y decirte si veo algo malo. Parece que usas el PORTB para el 4511, lo que si luego lo que saque lo vas a tener que interpretar en nipple, ya que como dije antes yo no lo uso. Ni podria ayudarte con eso.
« Última modificación: 26 de Octubre de 2015, 21:00:17 por KILLERJC »

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #7 en: 26 de Octubre de 2015, 21:37:39 »
les comento que hice un programa super básico por software y o sorpresa el ya no esta mas el brillo tenue en todos los segmentos solo queda la sombra del numero que esta mostrando en el otro displays. la secuencia la realice yo realizando el multiplexado de forma manual osea enciendo displays 1 uno mando datos tiempo apago displays 1 tiempo prendo displays 2 mando datos tiempo apago displays 2 tiempo y reinicia.
esto confirma que la electrónica esta bien cableada y el problema es de software. cuando lo hace niple a través del modulo esta compilando algo mal seguramente. el problema de la sombra para mi tambien es de software es solo mi humilde opinion aver que dicen lo que saben

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #8 en: 26 de Octubre de 2015, 22:25:43 »

gracias por la ayuda con la imagen. no te hagas drama modifica ese archivo .asm y me lo envias lo compilo y lo pruebo y te voy diciendo que hace

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:falla en multiplexado
« Respuesta #9 en: 26 de Octubre de 2015, 22:49:47 »
Citar
les comento que hice un programa super básico por software y o sorpresa el ya no esta mas el brillo tenue en todos los segmentos solo queda la sombra del numero que esta mostrando en el otro displays. la secuencia la realice yo realizando el multiplexado de forma manual osea enciendo displays 1 uno mando datos tiempo apago displays 1 tiempo prendo displays 2 mando datos tiempo apago displays 2 tiempo y reinicia.
esto confirma que la electrónica esta bien cableada y el problema es de software.

Exactamente, pero necesitaba el diagrama para guiarme. No se si explicartelo en ASM o no. Tu problema se encuentra aca:

Código: ASM
  1. incf _np_disp_nro,1              ;visualizar datos en displays cátodo común
  2.    movf _np_disp_nro,w
  3.    xorlw .9
  4.    btfsc status,z
  5.    clrf _np_disp_nro
  6.    movf _np_disp_nro,w
  7.    xorlw .1
  8.    btfsc status,z
  9.    goto inte_t08_d1
  10.    movf _np_disp_nro,w
  11.  
  12.    ; Quite la comprobacion de 2 al 7
  13.  
  14.    xorlw .8
  15.    btfsc status,z
  16.    goto inte_t08_d8
  17. inte_t08_ini
  18.    call dy2_disp_7_seg_01           ;llamada a rutina dy2_disp_7_seg_01
  19. inte_t08_d1
  20.    bcf portb,3                      ;apagar el display 8
  21.    call dy2_disp_7_seg_01           ;llamada a rutina dy2_disp_7_seg_01
  22.    movf plocal_uni,w                ;mostrar el valor del registro plocal_uni
  23.    movwf _np_disp_valor
  24.    call dy3_disp_7_seg_01           ;llamada a rutina dy3_disp_7_seg_01
  25.    bsf porta,1                      ;encender el display 1
  26.    goto inte_t08_salir
  27.  
  28.    ;QUITE LOS DISPLAYS DEL 2 AL 7 para que sea mas simple de ver
  29.  
  30. inte_t08_d8
  31.    bcf portb,2                      ;apagar el display 7
  32.    call dy2_disp_7_seg_01           ;llamada a rutina dy2_disp_7_seg_01
  33.    movf horas_dec,w                 ;mostrar el valor del registro horas_dec
  34.    movwf _np_disp_valor
  35.    call dy3_disp_7_seg_01           ;llamada a rutina dy3_disp_7_seg_01
  36.    bsf portb,3                      ;encender el display 8
  37.    goto inte_t08_salir
  38. inte_t08_salir
  39. inte_t09
  40.    goto inte_t0_salir

El tema es asi, cuando esta realizado el programa en nipple, vos tenes una variable llamada "_np_disp_nro" que deberia ir de 1 a 9, ocurre que comienza por 0, cuando es 0 pone a 0 las salidas del 4511 PERO no desactiva ningun led. a diferencia de cuando es 1,2,3,4,etc hasta 8. Entonces, cuando llega al display 8 muestra el dato, entra a la interrupcion(TMR0) y como es 9 lo pone a 0 en ves de 1, por lo cual al ponerlo a 0 pone a 0 el PORTB7:4 el cual hace que se muestre un 0 por el 4511, sale de la interrupcion,hasta entrar de nuevo se mantiene un 0 encendido, y al entrar de nuevo recien ahi apaga el display. y muestra el valor correspondiente al display numero 1.

Ese es tu problema. No se si es cosa de nipple o una mala implementacion tuya dentro de la interrupcion. Pero conociendo cual es el problema creo que podrias solucionarlo facilmente, en el ASM tomaria solo 1 instruccion hacerlo pero en nipple no se.. Lamentablemente no te puedo ser de mas ayuda.

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #10 en: 27 de Octubre de 2015, 15:46:32 »
ok que interesante me podrias indicar cual es la instrucción que debo agregar o agregarla en el archivo .asm y enviarmelo lo compilo y lo pruebo y te digo que hace. eso me seria de muchisima ayuda desde ya muchas gracias por tu interés

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re:falla en multiplexado
« Respuesta #11 en: 27 de Octubre de 2015, 16:42:54 »
cfabsanc deberías simular ese código y colocar breakpoints en sitios estratégicos y mirar el estado de los leds en cada barrido.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #12 en: 27 de Octubre de 2015, 16:56:24 »
si te referis a punto y coma para evitar que lea la instrucción ya lo estoy haciendo pero es muy difícil a ciegas ya que no entiendo nada del código. se que goto es ir a y call es llamada y algunas cosas obvias pero nada mas si alguno me lo podria editar y pasarmelo seria de gran ayuda asi comparo el original y me doy cuenta. igualmente gracias por tu interés.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:falla en multiplexado
« Respuesta #13 en: 27 de Octubre de 2015, 17:58:18 »
ok que interesante me podrias indicar cual es la instrucción que debo agregar o agregarla en el archivo .asm y enviarmelo lo compilo y lo pruebo y te digo que hace. eso me seria de muchisima ayuda desde ya muchas gracias por tu interés

Ya se te ha respondido en el foro de Niple.

Se te ha indicado que tienes varias cosas a mejorar:
1º Puedes eliminar el opto
2º Recalcular la resistencia de base para los transistores en función de la corriente de los leds
Y mas importante, en el esquema tienes el montaje para ánodo común y dentro del programa de Niple tienes declarada la rutina de multiplexado como cátodo común.

Asi vas a tener bastantes problemas.
Todos los días se aprende algo nuevo.

Desconectado cfabsanc

  • PIC10
  • *
  • Mensajes: 22
Re:falla en multiplexado
« Respuesta #14 en: 27 de Octubre de 2015, 18:31:38 »
fer taca ya respondi en el foro de niple. el uln es inversor por eso esta configurado el modulo como cátodo común si lo configuro como ánodo común directamente veo cualquier cosa en los dysplay me rompi la cabeza hasta que me di cuenta de la falla. aca el problema para mi humilde entender es otro abrazo y gracias por tu disposicion


 

anything