Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: leonfhl en 08 de Diciembre de 2008, 20:38:07
Título: Problema con los niveles logicos del HC08
Publicado por: leonfhl en 08 de Diciembre de 2008, 20:38:07
Soy nuevo en en esto y me di a la tarea de construir una targeta de desarrollo para un 68HC908GP32 con su programador y modulos de I/O como dipswitch y leds, instale el CodeWarrior Special Edition 6.2 y le programe al micro un sencillo programa que le lleva un uno o un cero a PTB0 de acuerdo a la entrada PTA0. Como soy nuevo en codewarrior experimente por: Mon08 Interface-> Debugger, escoji comunicacion serial a 9600 baudios y por esta opcion se descargo el programa al micro. EL problema esta en que para el '0' el micro me esta mandando 1.2V y para el '1' me esta mandando 3.7V, ya probe con otros puertos y es lo mismo, el programa corre perfecto con exepcion de estos niveles logicos que me entrega el micro, ya revise los voltajes en VDD, VSS, VDDA, VSSA, y estan en sus niveles normales. No se si es que desde el codewarrior se puede escojer la equivalencia en voltaje de un alto y un bajo y desde donde es. Necesito saber como hacer para que un bajo sea 0V y un alto 5V.
Gracias por su ayuda
Título: Re: Problema con los niveles logicos del HC08
Publicado por: RICHI777 en 09 de Diciembre de 2008, 12:30:18
Hola, desde el Compilador no hay manera de indicarle el valor del nivel, es mas desde ningun compilador sea C o ASM es posible hacer eso, porque si eso se pudiera hacer deberia ser determinante de la arquitectura. El problema es bastante raro, verificaste bien que los puertos esten bien inicializados ( DDR, resistores de Pull-Ups, etc ) ?
Saludos !
Título: Re: Problema con los niveles logicos del HC08
Publicado por: cdrpo en 10 de Diciembre de 2008, 00:38:15
Por favor comparte el circuito programador que realizaste, de esta manera podemos entrar en el mundo de freescale. Seria interezante realizar un proyecto similar al RRBOARD http://www.micropic.es/index.php?option=com_content&task=view&id=74&Itemid=1 Gracias
Título: Re: Problema con los niveles logicos del HC08
Publicado por: scientist en 10 de Diciembre de 2008, 04:43:58
para mi que el problema esta en tu placa, ha de haber alguna pista que este haciendo contacto donde no debe
Título: Re: Problema con los niveles logicos del HC08
Publicado por: leonfhl en 12 de Diciembre de 2008, 02:05:23
Cordial Saludo, gracias a todos por su pronta respuesta, al parecer no hay error en la tarjeta, el problema era la rutina en c que estaba enviando, era algo como esto en resumidas cuentas
Código: C
if PTB_PTB0=0
PTA=0;
else
PTA=1;
PTA=~PTA //linea que me generaba el problema
necesitaba realizar la inversion para una aplicacion especifica, al eliminar la linea me muestra los niveles perfecto (4.98v y 0.01v). Ahora mi pregunta: como se debe realizar una inversion de este tipo en C para estos Micros? por que no creo que halla que incluir if's de mas para hacer esto tan simple
Título: Re: Problema con los niveles logicos del HC08
Publicado por: RICHI777 en 12 de Diciembre de 2008, 11:15:51
Hola, no entiendo bien que queres hacer, ademas de faltarle los parentesis al if, te comento esto, es importante la buena escritura del código ya que un usario novato puede interpretarlo mal. Deberia estar escrito asi:
Código: C
if( PTB_PTB0 ==0)
PTA=0;
else
PTA=1;
PTA=~PTA
Lo que se entiende es que dependendiendo del estado del PB0 togleas el port A, pero no estas especificando que pin del Port A, si queres referirte al PA0, deberias poner PTA_PTA0 y podrias poner tranquilamente PTA_PTA0 = ~PTA_PTA0 es totalmente válido, los valores que mediste y comentaste al principio del hilo podrian llegar a ser si esta condicion esta dentro de un loop y la misma se ejecuta muchisimas veces x segundo, entonces el puerto estaria togleando muchas veces y la medicion dependiendo de con que la hagas podria darte esos valores que comentaste. Revisa el archivo mc68hc908gp32.h dentro de la instalación del CodeWarrior donde estan todas las definiciones de los puertos.
Saludos !
Título: Re: Problema con los niveles logicos del HC08
Publicado por: leonfhl en 13 de Diciembre de 2008, 15:09:21
Me disculpo por mi error en el codigo, lo que hago al hacer PTA=1 es indicar que le lleve un 1 en binario a todo el bus PTA(7:0) o sea 0000001 en el bus, al hacer la inversion PTA=~PTA deberia tener un 1111110 en el bus PTA, lo que me dices de la frecuencia de cambio me parece interesante, y creo que ahi esta el error. Gracias por postear
Título: Re: Problema con los niveles logicos del HC08
Publicado por: RICHI777 en 13 de Diciembre de 2008, 15:55:43
Hola, de nada,ahora se entiende mejor, y es tambien válido lo que queres hacer de modificar todo el puerto, a veces cuando quiero verificar que hace el compilador selecciono la opción "dissambley" para poder ver el código assembler generado y verificar que se haga lo que quiero hacer.