TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Elpato47 en 01 de Agosto de 2016, 18:50:44
-
Hola a todos!
Soy nuevo en el foro y también en el tema de programación en C. Espero estar respetando las reglas del foro o sino me servirá de lección.
Hace unos cuantos días estoy luchando con un módulo BT, el HC-06. El problema está en que al hacer una prueba de recepción en la PC o en un smart, veo cualquier caracter que no corresponde con el que le estoy enviando desde el PIC. Conecté el TX del PIC con el RX del HC-06 y viceversa. Los niveles de tensión son de 3,3V para TX y RX, la comunicación entre PIC y modulo es 9.600 baudios, 8 bit, sin paridad y 1 bit de stop.. Logro conectarme con el módulo pero como les dije, pareciera que la recepcion no es la correcta... Probé con todas las velocidad por si vino configurado con otra velocidad pero nada..... Se me acabaron las ideas. Probé con printf y con puts, poniendo /n/r ...etc etc... en el ejemplo de abajo mando dos caracteres y por las dudas despues un puts(13).. lo que recibo en la compu o celu es el número 98 (en hexa o su equivalente ascii) ...
Adjunto el código del PIC, compilado en CCS:
#include <18f2550.h>
#fuses HS, NOWDT
#use delay(crystal=12MHz)
#use rs232(baud=9600,bits=8,parity=N,xmit=PIN_C6,rcv=PIN_C7)
void main()
{
WHILE (true)
{
putc('a');
putc(13);
putc('s');
putc(13);
delay_ms(200);
}
}
Muchas gracias!!
-
Hay algún capacitor en tus lineas Rx y Tx? Tu alimentación está libre de ruido? Tu cristal arranca?
si recuerdo bien, ese micro tiene muchos mas fuses, tal vez te falta alguna configuración
-
Gracias! No tengo capacitores en Tx o Rx, que valor me recomendas? Si, el cristal anda.
Por otro lado mencionas el tema de los fuses, pensas que me podria estar olvidando de alguno relacionado a la transmision?
Ayer probé con un hc-05 y tuve exactamente el mismo problema... Asi que descargo que sea problema de módulo quemado... El problema soy yo jeje
-
Pues así está bien, no pongas ningún capacitor en Rx ni Tx, algunas personas los ponen para disminuir ruido pero esto es contraproducente para la comunicación. Si te recomiendo que pongas en cada pin de alimentación del micro uno de 0.1uF y en la alimentación general de todo el circuito uno electrolítico de 47uF al menos.
Respecto a los fuses... bueno hay muchos pero los que me parecen importantes son:
PBADEN=OFF ---> El puerto B funciona como entrada/salida digital luego de un reset o encendido
LVP=OFF ---> Modo de programación de bajo voltaje deshabilitado
Al final del archivo 18f2550.h están todos los fuses.
Saludos!
Luis