Autor Tema: señales para manejar un ht1632 con un pic 16f876a  (Leído 5783 veces)

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

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
señales para manejar un ht1632 con un pic 16f876a
« en: 19 de Enero de 2015, 16:54:17 »
hola amigos soy medio nuevo en todo esto de la programacion de pic aunque ya hice varios proyectos y me han salido re bien pero me falta mucho por aprender sobre estos maravillosos dispositivos  ,en esta ocasion deseo manejar una matris que posee un procesador ht1632 ,por lo que vi en la hoja de datos nesecito 3 señales :cs,wr,y data a su vez si no me equivoco wr es una señal de clock de escritura  si alguien por favor me da una mano  quiero generar esa señal de reloj pero me cuesta ya que el tiempo entre fklanco es de 2 microsegundos y lo quiero hacer con niple , ya he probado con el timer 0 pero no me da ,desde ya muchas gracias.
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #1 en: 24 de Enero de 2015, 06:01:59 »
te aconsejo hacer los programas para escribir un comando / escribir un dato y luego vas agregando mas, al menos 1 dato por vez.

En la hoja de datos tenes como son los ciclos, tambien tenes la velocidad maxima que se puede escribir en alguna parte del datasheet, que sea mas lento va a hacer que se actualize mas lento la matriz,

luego podes optimizarlo lo mas que puedas.

a 20mhz = 0.2us por instruccion

tenes 20 instrucciones entre cada flanco
« Última modificación: 24 de Enero de 2015, 06:11:38 por KILLERJC »

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #2 en: 24 de Enero de 2015, 14:44:44 »
hola gracias por tu tiempo,  vos sabes bien como funciona el ht 1632 ? yo he leido la hoja de datos pero hay cosas que no entiendo quisiera que me expliquen si la parte donde dice timing  diagrama solamente para encender un led en una x posicion de memoria yo en realidad tengo que realizar  una rutina para la parte writen comando  solamente? y nesecito tres señales la de clock la de cs y la de data corrijanmen por favor si alguien llo entiende bien porque tengo muchas dudas yo en realidad compre una matriz de sure electronics la cual trae 8 de esas matrices y cuatro ht 1632 , se que es un integrado relativamente nuevo y en la hoja de datos si vien hay ejemplos con explicaciones hay cosas que no logro entender muy bien ,si me dan una mano agradecido,desde ya muchas gracias perdon si no me se explicar bien .
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #3 en: 25 de Enero de 2015, 03:27:10 »
Yo no se bien como funciona el integrado pero es solo cuestion de mirar el datasheet y leerlo

Necesitas 4 señales RD , WR , CS y DATA ( para escritura solo 3, CS WR y DATA )
Los mismos pines RD y WR actuan como clock, si observas en cada flanco positivo es el valor tomado por el integrado ( por eso la flechita ).

De querer prender un led en especifico usaria el diagrama: "WRITE Mode - Command Code=101"

Por ejemplo salida 3 ( Out3 ) y Com2, la direccion de la RAM es 06H configurado como ( 32 Outbits & 8 Common for 64x4 Display RAM )
Entonces mandarias ese comando 1 0 1 + direccion (0000111) + Dato ( 0100 )

De querer modificar como se organiza la RAM y como estan configuradas las salidas y los comunes usas el diagrama de " Command Mode - Command Code=100"
Command Name: Commons Option
Command Code: 1000010abXXX

Con:
ab=00: N-MOS open drain output and 8 common option
ab=01: N-MOS open drain output and 16 common option
lo mismo para 10 y 11 nomas que son P-MOS

hay una pequeña tablita que tiene 3 comandos nomas. Una para apagar todas las salidas y otro no se si es para encender todo o simplemente activar las que tengan un 1 en la RAM (Imagino que este ultimo es el caso ).

Con respecto a los tiempos WR/RD el ciclo del clock es minimo 1us para escritura y 2us para lectura ( Sacado de donde esta A.C. Characteristics). Asi que tenes que tener en cuenta eso cuando haces el programa para no encender y apagar la salida WR o RD muy rapido.

O... podes usar el SPI si solo vas a escribir. Con un CS hecho por software o por hardware, el clock vendria a ser WR y DATA tu salida de datos.
De quere escribir VAARIOS datos te fijas que lo podes hacer si no levantas CS, es decir lo dejas en 0 y seguis enviando datos, solo marcas la posicion inicial de la RAM y empezas a llenar todo.

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #4 en: 26 de Enero de 2015, 11:19:27 »
muchisimas gracias por responderme  ,entonces nesecitaria 3 señales no 4? porque la señal de clock  de lectura no la nesecitaria o si ?y si lo hiciera con niple primero tendria que generar la señal de clock wr que es de 2 microsegundos  con un cristal de 20 mhz  se puede?perdon si jodo mcho con esto  pero quiero entender bien como funciona gracias
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #5 en: 26 de Enero de 2015, 13:03:15 »
Si no vas a leer de la RAM del ht1632 entonces no vas a usar RD, fijate en los diagramas que en ninguna escritura se usa el RD.

O lo podes hacer mediante software( es decir poner a 1 WR esperar 0.5us poner a 0 WR , etc etc etc etc )
o
Usando el SPI ( Donde el clock seria tu WR ), aunque te puede resultar mas intuitivo el primer caso. EDIT: Ahora que lo veo puede que sea complejo realizar este caso por la cantidad de bits a enviar.

A 20Mhz,  el micro ejecuta una instruccion cada 4 / 20Mhz = 0.2uS

sabiendo que tenes que poner el dato en tu pin DATA, esto llevaria una o mas instrucciones en ASM, + modificar el pin WR, haria que como minimo un tiempo de 0.4us pero lo mas seguro es que sean mas instrucciones lo cual estarias al alrededor de 1us.
« Última modificación: 26 de Enero de 2015, 13:05:43 por KILLERJC »

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #6 en: 26 de Enero de 2015, 15:40:55 »
muchas gracias con todo esto que me explicaste algo va a salir ja ,voy a ponerme a practicar y luego te comento como me fue,un abrazo..
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #7 en: 26 de Enero de 2015, 19:56:38 »
Una cosa mas, como casi todos los drivers, usualmente hacen 2 funciones

1- Escribir un dato
2- Escribir un comando

Aunque si te das cuenta por debajo es lo mismo, asi que estos podrian depender una tercera funcion que envie los datos y cambie los pines WR/DATA
Mientra que las funciones esas solo le dan la "direccion", el "dato" y el "comando" a esta tercera.

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #8 en: 26 de Enero de 2015, 23:22:52 »
entonces puedo ir escribiendo todos los datos en el ht 1632 y este me los va mosrando tal como los voy mandando o tengo que mandar con  uno con su respectiva direccion obvio y esperar un tiempo  y despues el que sigue?y otra cosa mas 
yo tenia pensado escribir en el programa principal de niple los datos y con el timer 0 generar la señal  de clock pero no me da el tiempo entonces  yo pensaba eescribir un pulso de señal de reloj y luego ir intercalando los datos un clock y luego un dato va en realidad son dos clock y un dato  vos decxis que se podra yo ya estube probando y simule el programa que yo habia hecho con el isis y  con el osciloscopio las señales me quedaron bastante bien vos que opinas o hay otra forma de hacer el clock?
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado electronicawalter

  • PIC10
  • *
  • Mensajes: 9
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #9 en: 26 de Enero de 2015, 23:31:54 »
yo lo hice con el pic 16f876A
La vida es como andar en bicicleta, si quieres mantener el equilibrio no puedes parar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: señales para manejar un ht1632 con un pic 16f876a
« Respuesta #10 en: 26 de Enero de 2015, 23:36:55 »
No es necesario esperar un tiempo para mandar otro dato, incluso si pensas llenar completamente la RAM  empezarias mandando la direccion 00 y luego mandas unicamentes datos como se ve en "WRITE Mode  Successive Address Writing"

La unica diferencia entre ese y el que escribe un dato a la vez es que cambia el estado de CS, pero si mantenes CS en bajo entonces podes seguir mandando datos. Y no hace falta mandar la direccion de los siguientes ni comando.

Si te anda bien tu programa entonces segui con ese. Aunque estoy mas que seguro que el timer/contador no es para eso. Por que muchas veces no lo podes parar como es el caso del 16F876A, o si Nipple agrega una instruccion de mas mientras envias los datos por ejemplo, haria que el dato fuera erroneo (ya que no cambiaria DATA para cuando el clock cambia, repitiendose el valor viejo de data), aunque podrias ser cualquier cosa lo erroneo, dato, comando, o direccion. Pero si tomaste las precauciones de que eso no ocurra o no hay forma que en tu programa eso ocurra, entonces esta bien.


 

anything