Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

26/01/2013 #1


Problema con USART en un PIC18F2550
Buenas a todos,

Estoy trasteando con unas cosillas en casa y tengo unas dudas que no consigo resolver. Si alguno de vosotros pudiera arrogarme algo de luz, me salvaría la vida.

El caso es que intento coger unos datos con mi PIC18F2550 a través de su módulo USART y no hay manera. La información en principio llega bien, lo he probado encendiendo y apagando leds y parpadean, así que el problema no está en los datos que recibo sino en la forma de cogerlos.

Lo que hay en el pin de recepción de la USART (pin 18 del pic) es:

Un "1" lógico constante hasta que llegan los datos. A partir de ahí, es una cadena de varios bytes, durante medio segundo aproximadamente, con diferentes valores. Después vuelve a ponerse a "1" lógico el señal y así hasta la próxima vez que deban llegar los datos. El rate de transmisión son 1200 bps.

La declaración de los fuses que tengo es la siguiente, por si fuera de ayuda para encontrar el problema:

Código:
#fuses MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOVREGEN,NOPBADEN // Fuses a declarar
#pragma config PLLDIV = 5
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2
#pragma config FOSC = HSPLL_HS
Y las líneas para la USART:

Código:
OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, BAUD_RATE_GEN);
getsUSART((char *)Rxdata, numbytes-1);
CloseUSART();
Sé que el parámetro llamado BAUD_RATE_GEN debe calcularse como [Fosc / (64*Baudrate)]-1 pero no sé si es porque lo estoy calculando mal o que estoy haciendo alguna otra cosa que no debe hacerse de esa forma, no consigo que funcione. Lo único que recibo son cadenas de "0"s e imagino que es porque la variable Rxdata la tengo inicializada así.

¿Alguna idea? ¿Debo definir el pin de alguna forma especial? Por el momento solo lo tengo definido como entrada, no he visto nada más al respecto en el datasheet.

Muchas gracias de antemano.


PD: Se me olvidaba decir que el cristal conectado al pic es de 20MHz.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.