elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: [1]
1  Informática / Electrónica / Problema con USART en un PIC18F2550 en: 31 Enero 2013, 15:02 pm
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: El cristal conectado al pic es de 20MHz y estoy programando con MPLAB en C.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines