This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pt:avr:usart [2015/12/02 11:31] – artica | pt: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, | 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, | ||
| + | Cada opção de configuração tem registos correspondentes, | ||
| - | Every configuration option has corresponding registers, which are quite easy to configure using the datasheet. The baud rate, though, is a bit more difficult to set. The clock signal for data transmission is generated from the controller' | + | Uma vez que a transmissão de dados ocorre de forma independente do processador e de forma muito mais lenta, é necessário confirmar que a interface está pronta para a próxima palavra antes de a transmitir. Isso pode ser feito tendo em conta o ready bit do buffer de transmissão, que significa que o buffer está pronto para aceitar uma nova palavra ou não. O controlador começa com o ready bit habilitado. Logo que uma palavra é transmitida e o buffer está vazio, o 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' | + | 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 enquadramento, erros de paridade e para receber overflows do buffer. |
| - | The arrival of a word is signified also by a special status bit. In addition to that, there are status bits to signify framing errors, parity errors and receive buffer overflows. Buffer overflow can occur when the last word is yet to be read from the buffer while a new one arrives - this is why it is always important to read the incoming words to the program as soon as possible, for example, by using an interrupt. There are three possible interrupt reasons: transmit buffer ready, transmit 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 nome. Quando escrevemos para o registo comum, os dados são armazenados na memória intermédia de transmissão, e quando lemos a partir dele, os dados são lidos a partir da memória intermédia de recepção. Ao usar palavras 9 bits, o 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. | + | < |
| - | ~~PB~~ | + | <box 100% round #EEEEEE|Exemplo> |
| - | + | ||
| - | <box 100% round #EEEEEE|Example> | + | |
| Task: Configure an 8 MHz ATmega128' | Task: Configure an 8 MHz ATmega128' | ||