fabim escreveu:hehe 5% pra um byte..
E lá pra frente, ? como fica ?
Imagina assim, receber 35 bytes.. ou enviar 35bytes... Os primeiros vão certinho, ai depois ? O corte de teste de 1 ou zero, ja não vai mais cair no centro do bit.. e sim, no proximo ou sucessivo... O erro é cumulativo !!!
na verdade a UART resincroniza a cada start bit recebido, portanto o erro maximo acumulado corresponde ao start bit, ao byte transmitido, a paridade se houver e ao(s) stop bit(s). para uma 8N1 tipica, vc tem 10 bits e portanto o erro acumulado sera 10x a variacao do baudrate. no caso de 5%, vc totaliza 50% de desvio no stop bit. como as melhores UARTs usam um clock 16x maior que o baudrate para sincronizar a janela de amostragem, o deslizamento maximo da janela de amostrarem relativa ao inicio do start bit ateh chegar no stop bit nao pode exceder o 15/16, o que corresponde a uns 90% de desvio acumulado, ou seja, 9% de desvio no baudrate.
diferente das UARTs, as SCCs capazes de trabalhar de forma sincrona requerem um clock sincronizado, de modo que qq deslizamento no transmissor eh repassado diretamente ao receptor e nunca acumule erros. no caso da ethernet, por ex, um DPLL no receptor eh sincronizado por um preambulo no inicio do frame e entao o resto do frame segue aquele sincronismo.