Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
pt:avr:usart [2015/12/02 11:31] articapt:avr:usart [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 3: Line 3:
 Um USART é uma interface serial síncrona universal; um UART, é uma versão simplificada - interface serial assíncrono universal. A diferença é que um USART usa também uma linha de sinal do relógio para sincronizar os dados, mas um UART só usa linhas de dados. O USART do AVR permite o uso de comunicação full duplex, com palavras de dados de 5 a 9 bits (8 bits de palavras = byte), 1 ou 2 bits de paragem, três modos de paridade e uma grande variedade de taxas de transmissão. Os microcontroladores AVR têm normalmente até 2 interfaces USART, embora alguns possam não tê-los. A transmissão de dados é realizada usando uma palavra de cada vez - o AVR converte a palavra que recebe do utilizador para bits ao nível de hardware e transmite-a de forma independente e vice-versa. O utilizador controla o USART lendo e escrevendo a configuração, o status e registos de dados. Um USART é uma interface serial síncrona universal; um UART, é uma versão simplificada - interface serial assíncrono universal. A diferença é que um USART usa também uma linha de sinal do relógio para sincronizar os dados, mas um UART só usa linhas de dados. O USART do AVR permite o uso de comunicação full duplex, com palavras de dados de 5 a 9 bits (8 bits de palavras = byte), 1 ou 2 bits de paragem, três modos de paridade e uma grande variedade de taxas de transmissão. Os microcontroladores AVR têm normalmente até 2 interfaces USART, embora alguns possam não tê-los. A transmissão de dados é realizada usando uma palavra de cada vez - o AVR converte a palavra que recebe do utilizador para bits ao nível de hardware e transmite-a de forma independente e vice-versa. O utilizador controla o USART lendo e escrevendo a configuração, o status e registos de dados.
  
 +Cada opção de configuração tem registos correspondentes, que são muito fáceis de configurar usando a datasheet. A taxa de transmissão, porém, é um pouco mais difícil de definir. O sinal de relógio para transmissão de dados é gerada a partir próprio relógio do controlador, e o utilizador pode especificar um número de 1 a 4096, pelo qual ciclo de relógio do controlador é dividido. O resultado é adicionalmente dividido por 2, 8 ou 16, dependendo do modo. O problema é que nem todas as frequências de relógio podem ser divididas de modo que o resultado seja uma velocidade de transmissão padrão. Em algumas frequências, a taxa de transmissão pode ser diferente do padrão até 10%. A datasheet de um AVR contêm tabelas com freqüências de relógio típicas, taxas de transmissão, o multiplicador necessário para chegar a essa taxa de transmissão e o erro de cálculo possível.
  
-Every configuration option has corresponding registers, which are quite easy to configure using the datasheet. The baud rate, though, is bit more difficult to set. The clock signal for data transmission is generated from the controller's own clockand the user can specify number from 1 to 4096, by which the controller's clock cycle is dividedThe result is additionally divided by 28 or 16, depending on the modeThe problem is, not all clock frequencies can be divided so that the result is a standard baud rateWith some frequenciesthe baud rate can differ from the standard by up to 10%. AVR datasheets contain tables with typical clock frequencies, baud rates, the needed multiplier to reach that baud rate and the possible calculation error.+Uma vez que transmissão de dados ocorre de forma independente do processador e de forma muito mais lentaé necessário confirmar que interface está pronta para a próxima palavra antes de a transmitirIsso pode ser feito tendo em conta o ready bit do buffer de transmissãoque significa que o buffer está pronto para aceitar uma nova palavra ou nãoO controlador começa com o ready bit habilitadoLogo que uma palavra é transmitida e o buffer está vazioo ready bit é estabelecido.
  
-Since data transmission takes place independently of the processor and much slower, it is necessary to confirm that the interface is ready for the next word before transmitting. This can be done by keeping an eye on the transmit buffer's ready bit, which signifies if the buffer is ready to accept a new word or notThe controller starts with the ready bit enabled. As soon as word is transmitted and the buffer is emptythe ready bit is set high.+A chegada de uma palavra é sinalizada também por um bit de status especial. Além disso, há bits de status para sinalizar erros de enquadramentoerros de paridade e para receber overflows do buffer. O overflow do buffer pode ocorrer quando última palavra ainda está para ser lida a partir do buffer, enquanto uma nova chega - é por isso que é sempre importante ler as palavras de entrada para o programa tão rapidamente quanto possível, por exemplo, utilizando uma interrupção. Há três razões possíveis de interrupção: buffer de transmissão pronto, transmissão bem sucedida e recepção bem sucedida.
  
-The arrival of a word is signified also by a special status bitIn addition to thatthere are status bits to signify framing errorsparity errors and receive buffer overflows. Buffer overflow can occur when the last word is yet to be read from the buffer while new one arrives - this is why it is always important to read the incoming words to the program as soon as possiblefor example, by using an interruptThere are three possible interrupt reasons: transmit buffer readytransmit successful and receive successful.+Os buffers de transmissão e recepção são registos fisicamente separados, mas partilham o mesmo endereço de memória e nomeQuando escrevemos para o registo comumos dados são armazenados na memória intermédia de transmissãoe quando lemos partir deleos dados são lidos a partir da memória intermédia de recepçãoAo usar palavras 9 bitso nono bit é transmitido e lido usando um dos registos de configuração.
  
-The transmit and receive buffers are physically separate registers, but share the same memory address and name. When writing to the shared register, the data is stored in the transmit buffer, and when reading from it, the data is read from the receive buffer. When using 9-bit words, the 9th bit is transmitted and read using one of the configuration registers.+<pagebreak>
  
-~~PB~~ +<box 100% round #EEEEEE|Exemplo>
- +
-<box 100% round #EEEEEE|Example>+
  
 Task: Configure an 8 MHz ATmega128's USART0 interface to transmit 8-bit words asynchronously using 9600 bps baud rate, 1 stop bit and no parity bits. Send the symbol "X". Task: Configure an 8 MHz ATmega128's USART0 interface to transmit 8-bit words asynchronously using 9600 bps baud rate, 1 stop bit and no parity bits. Send the symbol "X".
pt/avr/usart.1449055894.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0