• Nenhum resultado encontrado

Gravadora USB para Microcontroladores AVR Atmel

N/A
N/A
Protected

Academic year: 2021

Share "Gravadora USB para Microcontroladores AVR Atmel"

Copied!
11
0
0

Texto

(1)

Gravadora USB para Microcontroladores

AVR Atmel

Luis Felipe da Cruz Figueredo,

Felipe Brandão Cavalcanti

Adaptado do projeto original de Thomas Fischl

Abril xx, 2009

Resumo

Esta nota técnica descreve os procedimento para a construção e utili-zação de uma gravadora USB multi-plataforma para microcontroladores AVR Atmel. Adaptada do projeto USBasp desenvolvido por: Thomas Fischl, a gravadora USB é composta basicamente por um microcontrolador (AT-mega8, nesta nota) e um pequeno conjunto de outros componentes de ordinária comercialização. A gravadora utiliza um software embarcado e um driver USB para comunicação com o PC. O processo de gravação pode ser feito através do WinAVR (versões superiores à 20070122) através do AVRDUDE.

Figura 1: Gravadora montada sobre uma placa universal.

O projeto original do USBasp é distribuído sobre os termos e condições GNU GPL versão

(2)

1

Hardware

A gravadora é um dispositivo responsável pela programação de microcontrola-dores. Usualmente, as gravadoras para microcontroladores da família AVR da Atmel utilizam as portas paralela ou serial do PC. Entretanto, muitos com-putadores e notebooks simplesmente não possuem tais entradas. A gravadora USBasp, então, surge como uma solução viável para a programação destes dis-positivos através da porta USB.

1.1

Lista de Componentes

Para montar a gravadora, são necessários os seguintes componentes (figura 2):

Figura 2: Lista de componentes da gravadora USBasp.

(1) 1 microcontrolador AVR ATmega8 da Atmel; (2) 1 circuito integrado 74LS367;

(3) 1 cristal de quatzo de 12MHz; (4) 2 conectores header 5x2; (5) 1 conector USB do tipo B;

(6) (Opcional) 1 conector RJ-45 fêmea;

(7) (Opcional) 1 cabo com conectores RJ-45 macho;

(8) 1 cabo USB com conectores tipo B e tipo A (computador); (9) 1 cabo flat com 8 ou 10 fios do tamanho desejado;

(3)

(11) 1 barra de pinos simples; (12) 2 jumpers;

(13) 2 soquetes DIP14 torneados para o ATmega8. Em conjunto, os dois soquetes formam um soquete de 28 pinos estreito, difícil de ser encontrado no Brasil;

(14) 1 soquete DIP14 (torneado ou não) para o CI 74LS367; (15) 2 leds (preferencialmente de cores distintas);

(16) 2 diodos zener de 3V6; (17) 1 porta-fusíveis; (18) 1 fusível de 500mA;

(19) 1 capacitor eletrolítico de 4,7 τ C;

(20) 3 capacitor de 100 nF, cerâmico ou poliéster; (21) 2 capacitores de 22 pF, cerâmico ou poliéster; (22) 2 resistor de 10 KΩ;

(23) 2 resistores de 220 Ω; (24) 2 resistores de 68 Ω; (25) 1 resistor de 1,2 KΩ; (26) 1 resistor de 6,8 KΩ;

(27) fios para jumpers, normalmente são fios de instalação telefônica. (28) (Opcional) 1 placa de circuito impresso confeccionada para a

grava-dora;

Estes componentes são facilmente encontrados em lojas de eletrônica especi-alizada em Brasília, com excessão do microcontrolador ATmega8 que pode ser encomendado em lojas virtuais de eletrônica.

1.2

A Gravadora

O núcleo da gravadora descrito nesta nota é o microcontrolador AVR ATmega8 com um cristal de 12MHz. A gravadora após a montagem está pronta para ser conectada ao computador através do cabo USB com conectores do tipo B (conexão com a gravadora) e do tipo A (conexão com o computador). O diagrama esquemático da gravadora é apresentado na figura 3. Os resisto-res R4 e R5 são limitadoresisto-res de correntes e os diodos zener são limitadoresisto-res de tensão utilizados em conjunto com o fusível de 500mA para proteção da

(4)

Figura 3: Diagrama esquemático da gravadora USBasp.

porta USB. Os leds indicam a transferência de dados e o header é utilizado para a conexão da gravadora com o microcontrolador alvo. A conexão en-tre o ATmega8 e o header 5x2 foi alterada do projeto original para que a gravadora possa ser utilizada com o circuito de referência proposto no guia:

Desenvolvimento com microcontroladores Atmel AVR - Borges et al, 2008). O header do projeto original (figura 4(a)) utiliza o padrão STK (presente nas gra-vadoras comerciais da Atmel), enquanto que o header proposto utiliza o mesmo padrão presente no guia citado (figura 4(b)).

Obs.: Na realidade, a conexão entre o ATmega8, o header 5x2 da grava-dora e o microcontrolador AVR alvo pode ser feita de inúmeras maneiras desde que os pinos do microcontrolador da gravadora estejam conectados aos pinos correspondentes do AVR alvo (tabela 1).

Figura 4: Headers padrão (a) e adaptado (b) utilizados para a conexão com o circuito de referência. O circuito de referência proposto utiliza-se do header adapatado (b).

(5)

Tabela 1: Correspondência entre os pinos do ATmega8 da gravadora com os pinos do AVR alvo.

ATmega8 da gravadora AVR alvo

pino 16(PB2) pino 1(RESET )

pino 17(MOSI) pino 17(MOSI)

pino 18(MISO) pino 18(MISO)

pino 19(SCK) pino 19(SCK)

pino 7(Vcc) pino 7(Vcc)

pino 8(GND) pino 8(GND)

A gravadora pode, então, ser montada e soldada sobre uma placa universal de acordo com o esquemático apresentado na figura 3. Ademais, sugere-se uma placa de circuito impresso para a gravadora utilizando o layout proposto na figura 5. O arquivo com o layout de circuito impresso para a gravadora (grava-doraPCB.PcbDoc) se encontra na pasta ..\hardware. O custo unitário para a confecção das placas após a fotoplotagem é de cerca de R$11,50, enquanto que o custo da fotoplotagem é de R$60,00 (orçamento obtido pela empresa STICK CIRCUITOS IMPRESSOS LTDA).

(6)

Figura 6: Foto do circuito de referência.

Figura 7: Diagrama esquemático do circuito de referência.

1.3

Jumpers

A gravadora utiliza 2 jumpers de configuração. O conhecimento destes é de extrema importância para o bom funcionamento da gravadora:

J1 - Alimentação Setando este jumper a alimentação da gravadora e do mi-crocontrolador alvo será feita através da porta USB (5V).

J2 - Configuração do clock SCK Sete este jumper se o clock do microcon-trolador alvo for menor que 1,5MHz. Neste caso, a gravadora passará a atuar em low speed, i.e. o SCK será configurado entre 375KHz e 8KHz (1 4

do clock do microcontrolador alvo). Caso o microcontrolador alvo possuir clock maior que 1,5MHz deixe este jumper desconectado.

1.4

Circuito de Referência

O circuito de referência (figura 6) nada mais é do que um circuito básico de de-senvolvimento para um dado microcontrolador, ou seja, é a configuração mínima requerida para seu bom funcionamento em conjunto com a configuração mínima necessária para a sua programação. Nesta nota, utilizaremos como exemplo o circuito de referência descrito no guia: Desenvolvimento com microcontrolador-es Atmel AVR - Borgmicrocontrolador-es et al, 2008). Nele estão os capacitores de desacopla-mento para alimentação e conversor A/D, assim como um conector header para conexão com a gravadora. Seu diagrama esquemático é apresentado na figura 7.

(7)

2

Firmware

Após a montagem da gravadora, deve-se programar o ATmega8 com o firmware da gravadora. O firmware que deve ser embarcado é composto por um software gratuito que transforma o microcontrolador em um dispositivo USB,AVR-USB, em conjunto com o código que permite utilizar o ATmega8 como um programa-dor serial de microcontrolaprograma-dores AVR Atmel. Para a programação do ATmega8, outra gravadora de AVRs deve ser utilizada visto que a gravadora USB ainda não está pronta.

2.1

Firmware Versão Pré-Compilada

A versão pré-compilada do firmware (arquivo main.hex) encontra-se na pasta ..\Firmware \Firmware_Atmega8_gravadora_BSD_12MHz\. Para utilizar esta versão pré-compilada do firmware verifique se as seguintes condições são respei-tadas:

• O microcontrolador que será utilizado pela gravadora é o ATmega8; • O microcontrolador possui freqüência definida por um cristal de 12MHz; • A gravadora que irá programar o microcontrolador é a gravadora BSD. Caso alguma destas configurações não corresponda ao seu projeto, (i.e. caso não utilize o ATmega8 como microcontrolador da gravadora, ou não utilize um cristal de 12MHz, ou não utilize uma gravadora BSD para embarcar o firmware) vá até a próxima subsecção 2.2. Entretanto, caso seu projeto envolva estas con-figurações pule para a subseccção 2.3.

Obs.: Mais informações sobre como montar e utilizar a gravadora BSD, veja o guiaDesenvolvimento com microcontroladores Atmel AVR - Borges et al, 2008).

2.2

Compilando Novo Firmware

Caso não queira utilizar o ATmega8 na gravadora ou configurá-lo com 12MHz ou não queira utilizar (ou não tenha) a gravadora BSD, é necessário recompilar os arquivos fontes do firmware e gerar um novo hexadecimal. Todas as alterações devem ser feitas no arquivo Makefile na pasta: ..\Firmware\Firmware_Fontes\. As alterações devem ser feitas nos seguintes campos (figura 8):

(1) microcontrolador utilizado;

(2) fusíveis (definidos pelo microcontrolador e pela freqüência utilizada); (3) gravadora, que será utilizada para carregar o firmware;

(8)

t

Figura 8: Alterações no makefile.

Após realizar as alterações no Makefile, recompile os arquivos fontes do firmware para gerar o novo hexadecimal que será carregado no microcontro-lador do USBasp. Caso utilize o software Programmers Notepad do pacote WinAVR, o hexadecimal é gerado da seguinte maneira. No Programmers No-tepad, clique em “Tools->Options”. Na caixa aberta, vá em “Tools” e clique em “add”. Desta forma, uma caixa com as propriedades da nova ferramenta será aberta (figura 9). Nesta caixa, altere os seguintes campos:

• “Name: ” Selecione um nome qualquer;

• “command: ” <endereço do WinAVR>\utils\bin\make.exe; • “Folder: ” ..\Firmware\Firmware_Fontes;

• “Parameters: ” main.hex.

Os outros campos podem ser mantidos sem alteração.

Então, vá ém “Tools” e clique no nome da ferramenta adicionada. Isto deverá gerar o novo hexadecimal na pasta:

..\Firmware\Firmware_Fontes.

2.3

Programando a Gravadora

Para embarcar o firmware no microcontrolador da gravadora pode-se utilizar qualquer programadora capaz de baixar e manipular a ROM de microcontrola-dores AVR. Aconselha-se a utilizar o software gratuitoAVRDUDE. Este utiliza programação ISP para realizar a gravação e manipulação da memória ROM e EEPROM de AVRs. No windows, a programação do firmware no AVRDUDE deve ser feita dentro do console (prompt de comando), no diretório onde se en-contra o AVRDUDE.exe (usualmente, ..\<endereço do WinAVR>\bin\).

(9)

Den-h

Figura 9: Adicionando nova ferramenta no Programmers Notepad.

• Utilizando o firmware pré-compilado: avrdude.exe -p m8 -c bsd -P lpt1 -u -U flash:w:“..\Firmware_Atmega8_gravadora_BSD_12MHz\main.hex”:a -U hfuse:w:0xc9:m -U lfuse:w:0xef:m

• Utilizando novo firmware: avrdude.exe -p[código do microcontrolador

alvo]-c[código da gravadora]-P[porta do pc utilizada]-u -U flash:w:“[novo main].hex”:a -U hfuse:w:(hexadecimal):m -U lfuse:w:(hexadecimal):m A opção -u impede a releitura dos fusíveis que quando é feita impede a alteração de seus valores (o comando sem a opção -u é dita como modo se-guro). O hexadecimal do hfuse (high fuse) e do lfuse (low fuse) são determina-dos, entre outras coisas, pelo microcontrolador utilizado e pelo clock determi-nado. Para defini-lo leia o manual do microcontrolador correspondente ou vá emengbedded.com.

3

Identificando a Gravadora - Windows

A gravadora depois de montada (hardware) e programada (firmware) está pronta para ser conectada ao computador. O dispositivo deverá ser identificado (como USBasp) pelo sistema operacional que iniciará o processo de configuração do driver do dispositivo (figura 10). Deve-se, então, indicar o caminho do driver usbasp.inf (“\win-driver-0.1.12.1_paraUSBasp\”). Pronto. O driver deve ter sido instalado (figura 11) e o dispositivo já está pronto para ser utilizado. Para confirmação vá no gerenciador de dispositivos e verifique se a gravadora já está identificada (figura 12).

(10)

Figura 10: Identificando a gravadora no Windows.

Figura 11: Identificando o driver para a gravadora.

(11)

OBS.: Na página oficial do projeto original, o driver disponibilizado está desatualizado (versão libusb DLL 0.1.10.1) e não deve ser utilizado visto que as novas versões do AVRDUDE não são compatíveis com este driver. As novas ver-sões do libusb podem ser encontradas no site doprojeto libusb. Mais informações emhttp://www.friendlyarm.com/fixed-a-problem-usbasp-in-winavr20080610/.

4

Utilizando a Gravadora - AVRDUDE

Neste ponto, a gravadora já está pronta para ser utilizada. Para programar com o AVRDUDE, deve-se utilizar o aplicativo em linha de comando, visto que, até o momento, o avrdude-gui não possui o USBasp em sua lista de gravadoras. Para utilizar o USBasp na linha de comando, deve-se selecionar a gravadora usbasp com o argumento -c usbasp.

5

Sites Interessantes

(1) [Projeto original]: www.fischl.de/usbasp/

(2) [AVR-USB]: http://www.obdev.at/products/avrusb/ (3) [driver libusb]: http://libusb.sourceforge.net/ (4) [AVRDUDE]: http://www.nongnu.org/avrdude/

(5) [Guia de como instalar a USBasp]: http://www.scienceprog.com/building-and-installing-usbasp-usb-programmer-of-avr-microcontrollers/

(6) [Solucao para o problema do driver para novas versões do AVRDUDE]: http://www.friendlyarm.com/fixed-a-problem-usbasp-in-winavr20080610/

(7) [Programando com o USBasp]: http://www.scienceprog.com/one-click-project-with-usbasp-programmer/

(8) [Calculando fusíveis (AVR):] http://www.engbedded.com/cgi-bin/fc.cgi

Referências

Documentos relacionados

A convivência com animais é importante, no entanto, as famílias devem estar atentas aos cuidados que o animal de estimação necessita para não se tornar um problema, pois, este passa

Os sulcos cerebrais ajudam a delimitar os lobos cerebrais, sulco lateral (Sylvius), Central (Rolando), Sulcos do lobo frontal pela face súpero-lateral: sulco pré-central, paralelo

Pois é: organizar a casa pode organizar também os pensamentos, render novas idéias e fazer a gente sair de eventuais pessimismos, naturais nessa época do ano – ainda mais

Rottweiler ataca e mata menina no Vale do Sinos Pit Bull ataca e mata uma idosa de 82 anos Criança atacada por Pitbull. Pitbull Ataca um senhor

No Ocidente, a China recebe a maior parte das atenções; a Índia tem sido lar- gamente ignorada, sobretudo na Europa.. Aliás, a Índia é a grande omissão das

Sem nunca perder de vista as dificuldades his- tóricas salientadas por Scruton, Zakaria responde à questão através da apologia do liberalismo constitucional (não confundir com

se for passivamente aceito, decifrado, digerido se a leitura não for um busca do sentido perdido então o poema não tem futuro.. Aborto

Salada Niçoise com Tataki de Atum / Niçoise Salad with Tuna Tataki € 19.00 Tataki de Atum, Alface, Batata, Tomate, Cebola Roxa, Ovo, Feijão Verde / Tuna Tataki, Lettuce,