Autor Tema: DEL SIMULADOR A LA PRACTICA  (Leído 3961 veces)

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

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
DEL SIMULADOR A LA PRACTICA
« en: 23 de Noviembre de 2008, 18:26:12 »
Hola, es la primera vez que escribo en el foro ya que podemos decir que soy novato en este tema. Por presentarme puedo decir que mis conocimientos en electronica son minimos en cambio en programacion mis conocimientos son mas avanzados.

Llevo un par de semanas enfrascado en un circuito para mostrar informacion en displays de 7 segmentos, despues de muchas vueltas y lecturas por el foro, basandome en un diseño de un ejemplo de este mismo foro que utiliza los integrados SAA1064, he diseñado un circuito que controla mas de los 16 displays del ejemplo, utilizando para ello el multiplexador 74hc238.
Bien, una vez que funcionaba perfectamente en el simulador porteus me he puesto a llevarlo a la practica. Para ello he utilizado:
16f876
saa1064
74hc238
dos resistencias de 1k para el pullup.
1 display

La idea era que apareciera algo en el display, como es de esperar en estos caso,no funciona.

He simplificado para ir aislando el/los problemas hasta el punto que he programado el 16f876 para que active tres patillas (RA0,RA1,RA2) con la idea que en el polimetro me marcaria 5v en cualquiera de estas tres patillas con el masa.
Pero en el polimetro me marca 0.75v igual que en el resto de patillas.
La alimentacion la he hecho con 4 pilas de 1,2v que hacen 5v.
De manera que me he quedado atrancado y no se por donde seguir.

Agradezco todo tipo de ayuda y espero tener pronto mas conocimiento para poder ayudar a los demas.
La idea final de lo que pretendo hacer es un circuito de 68 displays conectado al puerto rs232 del pc. Ya ire informando como va evolucionando (si evoluciona)

PD:Disculpar por el texto tan extenso.
Saludos, gracias.

jacrmr

  • Visitante
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #1 en: 23 de Noviembre de 2008, 18:48:36 »
Checa los fuses declarados en el .asm así como que tengas en hardware implementado correctamente el oscilador y el reset. Recuerda que la simulación es algo que no existe, es totalmente virtual, afortunadamente no hay nada como el mundo real, y ahí es donde está lo interesante (o los problemas, según el punto de vista de cada quien). Trata de usar uno de los templates de código que vienen con MPLAB para el tipo de micro que estás usando y trata de ceñirte a la estructura, pero así como comentas que sólo quieres obtener por ahora niveles lógicos en las salidas, y no lo estás obteniendo, checa antes que nada tu oscilador, tu reset, y los fuses.

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #2 en: 23 de Noviembre de 2008, 18:55:26 »
Muchas gracias por la contestacion, esto si que es efectividad.
Respecto al oscilador no estoy usando ninguno externo, supuestamente este lleva uno interno, otra cosa es que si hay que activarlo no lo este haciendo.
Respecto a los fuses, es una duda que tengo, lo he visto en muchos ejemplos, incluso copiados de otro modelo de pic dan error al compilar en otro distinto, por ejemplo #fuses INTRC que lo tiene un ejemplo para el 16F648A no compila en el 16F876

Saludos, gracias.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #3 en: 23 de Noviembre de 2008, 19:24:49 »
Si quieres utilizar el oscilador interno, tendrás que decirle al pic que vas a utilizar el oscilador interno configurandolo en la palabra de configuracion.
Si no lo haces asi el pic lo mas seguro es que no te va a funcionar nada bien. Ademas debes de tener en cuenta alguna precauciones basicas como:
-Colocar entre los pines de alimentacion un condensador para eliminar posibles ruidos y que ademas se encuentre lo mas cerca posible de los pines de alimentacion.-
-Configurar los pines como entradas-salidas digitales. Quizas por eso no veas el nivel alto a la salidas
-Creo que te faltaria añadir algun tipo de buffer en las lineas que comandaran las lineas de los display, pues la carga que pueden suministrar cada uno de los pines es limitado.

Si ademas si colocasel codigo que has escrito, podremos ayudarte mejor dandote posibles ideas de como o donde estan los errores o corregirlos.

Además a parte de esto darte la bienvenida a este foro

F.
Todos los días se aprende algo nuevo.

jacrmr

  • Visitante
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #4 en: 23 de Noviembre de 2008, 19:49:24 »
Citar
Si quieres utilizar el oscilador interno, tendrás que decirle al pic que vas a utilizar el oscilador interno configurandolo en la palabra de configuracion.

El PIC16F876 no tiene oscilador interno.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #5 en: 23 de Noviembre de 2008, 20:06:51 »
¡¡Ups!! :shock: :shock: :shock: :shock:

Que fallo! :?
Me precipite al contestar, quizas por que en el enunciado del problema decia que no podia configurar el oscilador interno.

De todas formas, si no va a utilizar un oscilador externo, tendrá que elegir otro pic con oscilador interno y entonces si que tendrá que hacerlo.

F.
Todos los días se aprende algo nuevo.

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #6 en: 23 de Noviembre de 2008, 21:39:25 »
Esta claro que el primer fallo que tengo que solucionar es lo del oscilador, en un principio queria utilizar EL 16F648A pero en la tienda no lo tenia, asi que compre 16F876, ya he pedido el 16F648A para utilizarlo.

Fer_TACA, no entiendo cuando dices:
Citar
-Creo que te faltaria añadir algun tipo de buffer en las lineas que comandaran las lineas de los display, pues la carga que pueden suministrar cada uno de los pines es limitado.

Por otro lado, ¿que condesador se puede poner? ¿siempre hay que poner un condensador en las entradas de alimentacion en cualquier tipo de integrado aunque no sea un microcontrolador?

Saludos, gracias.

jacrmr

  • Visitante
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #7 en: 23 de Noviembre de 2008, 21:53:35 »
Citar
Por otro lado, ¿que condesador se puede poner? ¿siempre hay que poner un condensador en las entradas de alimentacion en cualquier tipo de integrado aunque no sea un microcontrolador?

Con uno de 0.1 uF cerámico es suficiente. Y sí, se debe de poner en cualquier integrado que vayas a utilizar. Algunos textos de los 70s e incluso 80s mencionaban colocar un condensador en cada transceiver, buffer, etc. o cada 2 ó 3 integrados. Esa medida es arcaica ya que con las velocidades de ahora y con los inrush de corriente de algunos dispositivos al switchear sus estados, si no tienes un condensador lo más cerca de los pines del integrado simplemente no funcionará como se espera.

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #8 en: 26 de Noviembre de 2008, 19:10:40 »
Hola, ya he conseguido una cosa tan basica como generar señal por las patillas, puse un oscilador externo y sin problemas, ahora el problema lo tengo con la comunicacion i2c, supongo que esto es mas complicado, pero buscando informacion por ahi ... estoy intentando comunicar un pic16f876 con un integrado saa1064, (basandome en ejemplos de este mismo foro) he programado el pic con el siguiente codigo, pero no tiene pinta de hacer nada, es mas, es como si se quedara pillao ya que no me da salida por las patillas a0, a1 y a3 cuando tiene puesto a piñon que tengan salida, este es el codigo:
Código: CSS
  1. //#include <16f648A.h>                                  //pic a utilizar
  2. #include <16f876.h>                                     //pic a utilizar
  3. #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP             //ordenes para el programador
  4. //#fuses INTRC                                                  //oscilador interno
  5. //#use delay (clock=4000000)                            //Fosc=4Mhz
  6. #define SAA1064_DINAMICO                                //trabajar en modo dinamico el saa1064
  7. #define SAA1064_SCL PIN_C3                              //definicion de pines...
  8. #define SAA1064_SDA PIN_C4                              //...de manejo del saa1064
  9. #define ADR1_SDA PIN_A0
  10. #define ADR2_SDA PIN_A1
  11. #define ADR3_SDA PIN_A2
  12.  
  13. #use i2c(master,sda=SAA1064_SDA, scl=SAA1064_SCL)       //i2c
  14.  
  15. int config, direccion,numero;
  16.  
  17. void main(void)
  18. {
  19. //      setup_oscillator(OSC_4MHZ);                     //configuracion del oscilador interno a 4MHz
  20.  
  21.    output_high (ADR1_SDA);    //salida de comprobacion
  22.    output_high (ADR2_SDA);    //salida de comprobacion
  23.    output_high (ADR3_SDA);    //salida de comprobacion
  24.  
  25.    direccion = 0x76;
  26.    config = 0b01110001;
  27.    numero = 0b01111111;
  28.    
  29.    i2c_start();
  30.    output_low (ADR3_SDA);       //salida de comprobacion
  31.    
  32.    i2c_write(direccion);                //direccion esclavo
  33.    output_low (ADR2_SDA);       //salida de comprobacion
  34.    
  35.    i2c_write(0x00);     //instruction byte -> registro de control
  36.    i2c_write(config);   //configuracion
  37.  
  38.    i2c_write(numero);           //escribe digito 1
  39.    i2c_write(numero);           //escribe digito 2
  40.    i2c_write(numero);           //escribe digito 3
  41.    i2c_write(numero);           //escribe digito 4
  42.    i2c_stop();                 
  43.  
  44.    output_high (ADR3_SDA);      //salida de comprobacion
  45. }

La verda que me estoy volviendo loco con esto y no se donde mirar mas ....

Saludos, gracias.

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #9 en: 28 de Noviembre de 2008, 23:32:48 »
Hola, ya he hecho mas progreso, he conseguido comunicar el pic 16f876 con el saa1064 en modo estatico. El problema lo tengo en el modo dinamico ya que las salidas mx1 y mx2 no me dan señal, en cambio si me lo dan el resto de patillas, de manera que si conecto un display contra vcc me muestra en el display la mezcla de los dos datos enviados. Por favor, si alguien sabe que puede estar pasando, el programa utilizado esta en el mensaje anterior.

Saludos.

Desconectado pistolas03

  • PIC10
  • *
  • Mensajes: 9
Re: DEL SIMULADOR A LA PRACTICA
« Respuesta #10 en: 29 de Noviembre de 2008, 13:48:22 »
Hola, ya he conseguido que funcionen los 4 displays con el saa1064, el problema estab en la configuracion del mismo, que estaba mandando 00 al C2 y C1, con el siguiente cambio en el fuente, ha funcionado:
config = 0b01110111

Saludos.


 

anything