Oscilador Interno X USART

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Oscilador Interno X USART

Mensagempor fabio_ » 17 Fev 2011 18:49

Companheiros,

A tolerância de +- 1% dos osciladores internos dos PICs é suficiente para trabalhar com o modulo USART ou EUSART nos PICs mais novos sem problemas, mantendo o Baud Rate estável?

Já tem um tempo, mas acho que li num dos livros do Fábio Pereira que mesmo com osciladores internos disponíveis, é aconselhável utilizar cristais externos quando usar o módulo USART para garantir o Baud Rate estável. Isso está correto? Alguém tem alguma experiência sobre este ponto?

até
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08

Mensagempor jorgeluiz » 18 Fev 2011 00:24

eu nao confio muito nos osciladores internos dos pics. Toda vez que fui conferir, estava bem longe do que diz o datasheet. Excessao pra esses que tem um registrador de ajuste fino. Dai' da' pra calibrar, mas e' sempre melhor usar cristal.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor Guri » 18 Fev 2011 08:58

Eu concordo, cristal é a melhor opção.

Ainda mais se o seu projeto pedir confiabilidade, eu sempre digo que economizar demais no hardware poderá gerar dores de cabeça num futuro próximo....
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Mensagempor MOR_AL » 18 Fev 2011 19:24

Acho que o problema da comunicação USART é que o sincronismo só ocorre na transição do primeiro bit transmitido do byte. Para os próximos bits o sincronismo se baseia na taxa dos dados (baud rate), que já deve ser previamente programada no receptor. Se houver um pequeno período de erro, por exemplo Te, esse período, no oitavo bit de dado será propagado para 8 vezes Te. Isso pode fazer com que o momento de identificação do bit fique fora do momento certo. Por exemplo. Para se transmitir um byte e receber sem erro, o desvio, ou o período de transmissão de um bit, menos o período de recepção de um bit (em módulo), deve ser menor que 1/16 do período do bit de transmissão. Pois se o instante de leitura do bit ocorre no meio do período do bit, então o erro propagado para o oitavo bit só terá meio período para ser lido corretamente.
Então o erro total deve ser menor que 1/16, ou 6,25%. Se considerarmos que mesmo com um cristal, por seu valor de frequência não ser múltiplo da taxa de dados, já estaremos introduzindo um erro. Imagine que, sem o cristal, usando o oscilador interno, dependendo se a frequência for maior ou menor que a considerada, esse erro pode ser maior ainda. Também poderá ser menor, mas o problema é que não haverá nenhuma garantia.

Por outro lado, se o próprio bit contivesse o sincronismo (transmissão no padrão bi-phase mark, bi-phase space ou Manchester, por exemplo), então o erro poderia ser bem maior. Algo no máximo com 25% ainda permitiria identificar o bit no receptor. O outro lado da moeda é que esse formato de transmissão requer o dobro da taxa, pois, dependendo do valor do bit, pode haver um período de meio bit entre duas transições. No formato da USART, o período mínimo entre duas transições pode ser de até um bit.
Finalmente e resumindo: Se for usar o cristal, pode transmitir pela USART com o sincronismo apenas no primeiro bit do byte. Se não for usar o cristal, deve transmitir com sincronismo a nível de bit.
(Já tive que usar esse artifício para transmitir dados. A base de tempo era gerada via oscilador resistor/capacitor).
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor luisf.rossi » 19 Fev 2011 16:10

Realmente não é nada de outro mundo. Eu ja fiz projetos que precisavam de um custo MUITO baixo e utilizei um MSP430 apenas com os 1Mhz internos dele (que podem ser calibrados para outras frequencias). Funcionou muito bem. Apenas um comentario. Se você estiver tabalhando com baud rates muito altas (perto de 1Mbps), a sua onda quadrada não sera mais TÃO quadrada assim, o que começa a trazer mais erros ainda. Isso pode ser contornado um um layout da placa bem feito.
luisf.rossi
Byte
 
Mensagens: 109
Registrado em: 28 Nov 2010 12:48
Localização: São Paulo, SP

Mensagempor fabio_ » 24 Fev 2011 11:37

Estou trabalhando com 4800bps e 9600bps.

luisf.rossi,
Voce poderia nos fornecer as dicas de layout?
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 1 visitante

x