Comunicação Serial Atmega16

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

Comunicação Serial Atmega16

Mensagempor firewalk » 16 Mai 2009 15:13

prezados amigos, estou arrecem começando a apreender a usar microcontrolador AVR, estou utilizando o AVRstudio, bom estou precisando utilizar a comunicação serial (USART), para interconectar o Atmega 16 com um display LCD serial 20x4, vendido pela Tato Equipamentos, mas não sei como fazer se alguem puder me ajudar com um fragmento do código fonte ficarei grato.
firewalk
 
Mensagens: 1
Registrado em: 03 Mar 2009 22:55

Mensagempor rubenprom » 16 Mai 2009 20:36

Ola Firewalk

Aqui posso te mandar um exemplo de comunicação serial mas para mandar um dado via serial para o "COMPUTADOR".

pode ser que surja alguma ideia



#include <avr\io.h>

void iniciaSERIAL(void);

int main()
{
iniciaSERIAL();
printf("Ola Mundo");
}

void iniciaSERIAL(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
}


Só nao testei, apenas compilou, tenho quase certeza que funciona, pois nao tenho aqui atmega16 para etstar, ja que travei os que tinha

abraço

Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor RobL » 17 Mai 2009 18:35

Terá que configurar a UART para comunicação half duplex síncrona, diferente do PC que é assíncrona.
Veja como configurar no datasheet. É o mesmo que enviar dados para uma EEPROM serial, ou outro chip via USART.
Depois é só enviar o protocolo "frame" de acordo com seu LCD.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor RobL » 19 Mai 2009 09:08

Acredito que seja mais fácil usar o SPI para se comunicar com seu LCD serial.
Mas se preferir pela USART :

http://www.atmel.com/dyn/resources/prod ... AVR307.zip
http://www.atmel.com/dyn/resources/prod ... oc4300.pdf

No arquivo pdf tem as explicações e no AVR307 zip código exemplo.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Djalma Toledo Rodrigues » 19 Mai 2009 11:23

Bom, se desejar se aprofundar veja o Data Sheet da Usart 8251 da Intel mas, antes veja o Código Baudot de telegrafia.
Ambos podem ser localizados via Google.
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor vohr56 » 21 Mai 2009 18:34

Aproveitando o assunto do tópico, Alguém sabe se há como emular portas seriais nos AVR's? Eu estou acostumado a utilizar o mega8. Ele possui 1 usart, mas gostaria de mais uma. No pic sei que isso é possível e fácil de se fazer. O compilador CCS faz isso com um pé nas costas. Mas pro AVR ainda não vi nada parecido.


Abraços
vohr56
Bit
 
Mensagens: 22
Registrado em: 30 Nov 2006 10:36

Mensagempor brasilma » 21 Mai 2009 19:50

Vohr,

Com certeza isto é possivel seja com o AVR ou qualquer processador.

No 51 fazia em assembler com apenas poucas linhas.

Não tenho nada feito para o AVR senão postava no ato, porem tenho certeza de que se fizer algumas buscas acha (pesquise AVR Bit Bang).

Basicamente para transmitir pega o byte desejado e vai shiftando um bit por vez, com uma cadencia controlada por um delay (baud rate / 8), se o bit for 1 seta a saída se for zero reseta.

Após 8 bit tem de deixar a saída em 1 me parece para o stop bit.

Para receber pode utilisar uma entrada de interrupção e montar a rotininha inversa.

Abraços,
Marcos.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor RobL » 22 Mai 2009 11:27

Conforme o Brasilma colocou pode ser feito por software para qualquer chip.
Mas note que há um outro módulo, além da USART (hardware) disponível nos AVRs, o SPI.
Quando programamos, via PC, com ISP, os dados entram pelo SPI. Você pode usar o mesmo processo para se comunicar com o PC via SPI e usando também a UART. Isto pode ser feito mesmo no ATmega8.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56


Voltar para AVR

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x