Problema com USART 18F4550 no CCS

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Problema com USART 18F4550 no CCS

Mensagempor mrgadotti » 21 Out 2012 15:16

Boa tarde pessoal, estou migrando uma aplicação para o PIC18F4550, onde vou usar a USART em conjunto com USB. Até aqui sem menores problemas, mas ainda não havia utilizado a USART do 18F4550 e tive o problema de ela estar me retornando lixo, como se estivesse com baud incorreto...

Segue um exemplo que fiz no CCS que está apresentando esse mesmo erro.

#include <18F4550.h>
#FUSES NOWDT, WDT128, HSPLL, NOPROTECT, NOBROWNOUT, BORV20, NOPUT, NOCPD, NOSTVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOIESO, NOFCMEN, NOPBADEN, NOWRTC, NOWRTB, NOEBTR, NOEBTRB, NOCPB, MCLR, NOLPT1OSC, NOXINST, PLL5, CPUDIV1, NOUSBDIV, NOVREGEN, NOICPRT

#use delay(clock=20000000)

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

while(1){
printf("teste\n\r");
delay_ms(500);

}

}

Na serial recebo nada além de caracteres inválidos.

Marcelo
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC

Mensagempor mastk » 21 Out 2012 20:42

Seu clock condiz com o que setou no programa?
Seu conversor TTL ou LVTTL para 232, esta ok?
O terminal do outro lado esta certinho?
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor mrgadotti » 21 Out 2012 22:24

Está tudo certo, pois havia no lugar um 16F877A no lugar funcionando perfeitamente com o max232. Poderia até ser o clock para estar com um baud incorreto, mas ainda to apanhando no PLL do 18F...
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC

Re: Problema com USART 18F4550 no CCS

Mensagempor andre_luis » 22 Out 2012 06:52

Experimenta iniciar com o PUTC ( envio de um caractere apenas ) para tentar entender a lógica do erro.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor mrgadotti » 22 Out 2012 12:38

Tanto com putc ou printf tenho mesmo problema, no osciloscópio aparenta tudo certo a comunicação serial, mas é como estivesse saindo com baud incorreto... Obs.: estou usando um cristal de 20MHz.
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC

Mensagempor vtrx » 22 Out 2012 20:47

Se voce vai usar UART com USB,onde arrajou esse clock#use delay(clock=20000000) ?
Ei sei que o 'fuses' a seguir funciona,tenta com eles usando cristal de 4 MHZ uSB Full,só para testar se é problema de configuração;
Código: Selecionar todos
#fuses XTPLL,NOWDT,NOPROTECT,LVP,NODEBUG,USBDIV,PLL1,CPUDIV2,VREGEN
#use delay(clock=48000000)
#DEFINE USB_HID_DEVICE TRUE
#define USB_USE_FULL_SPEED TRUE
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor mrgadotti » 23 Out 2012 21:27

Deu certo, era somente problema de configuração do Clock/PLL :D
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x