manual técnico - serial link - conheça o arduino...

19
Serial Link Comunicações & Serviços Manual Técnico Arduino Programador Supervisório Gravador de Bootloader Seriallink.com.br 2014 – Todos os direitos reservados – Página 1 de 19

Upload: phamque

Post on 14-Mar-2018

255 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Manual Técnico

Arduino Programador SupervisórioGravador de Bootloader

Seriallink.com.br 2014 – Todos os direitos reservados – Página 1 de 19

Page 2: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

SumárioManual Técnico......................................................................................................................................................1

Introdução.........................................................................................................................................................3Características..................................................................................................................................................3Downloads.........................................................................................................................................................3Windows 8.........................................................................................................................................................3Programação.....................................................................................................................................................4

AVRDUDE....................................................................................................................................................4Exemplos...........................................................................................................................................................6

Exemplo 1 – Gravando Bootloader do Arduino UNO no ATMega328p......................................................7Conectores Adicionais de Configuração.........................................................................................................16

JP1 – Ativação da Saída 5V......................................................................................................................16JP3 – Saída Serial TTL..............................................................................................................................16JP2 – Auto Programação (self-prog).........................................................................................................17JP4 – Slow Clock.......................................................................................................................................17

Esquema Elétrico............................................................................................................................................18Design da Placa..............................................................................................................................................19

Seriallink.com.br 2014 – Todos os direitos reservados – Página 2 de 19

Page 3: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Introdução

O Arduino Programador Supervisório é mais uma criação da Serial Link, uma ferramenta de bancada para gravar firmwares diretamente no chip! Utilizando esta placa, podemos fazer várias gravações interessantes, como:

• Booloader do Arduino• Firmwares do AVRCDC ou USBASP• Programas profissionais, sem bootloader

O Arduino Programador Supervisório portanto é um gravador de bootloader compatível com Arduino e pode ser utilizado para gravar os mais variados tipos de microcontroladores da linha megaAVR da Atmel.

De forma resumida, temos um programador in-circuit USB para microcontroladores AVR da Atmel.

Características

• Funciona sob múltiplas plataformas!◦ Windows 7 e 8!◦ MAC OSX◦ Linux

• Sem controladores ou componentes adicionais, basta ligar os fios!• Velocidade da comunicação SPI 5KBytes/seg.• Jumper para configurar opções adicionais

◦ Slow clock (SCK)◦ Self Programming (auto-gravação)◦ Interface serial para depuração◦ Ativação da saída principal de 5V

Downloads

A interface USB do Arduino Programador Supervisório necessita instalação de Driver para Windows, conforme link: http://www.fischl.de/usbasp/usbasp-windriver.2011-05-28.zip

Linux e MAC OSX não necessitam instalação de driver. Libusb embutida nos Kernel's mais atuais.

Windows 8

Material para referência da instalação do Driver: http://letsmakerobots.com/node/36841

Seriallink.com.br 2014 – Todos os direitos reservados – Página 3 de 19

Page 4: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Programação

AVRDUDE

A grande vantagem desse módulo gravador de bootloader é ser compatível com a plataforma Arduino. Quando baixamos e instalamos a IDE de programação do Arduino, estamos também baixando o AVRDUDE, que é o programa responsável por literalmente carregar nossos Sketches no Arduino, via comunicação Serial.

Entretanto, no Arduino Programador Supervisório, vamos utilizar diretamente o AVRDUDE para gravar via comunicação SPI, conseguindo acessar as funcionalidades mais primárias do microcontrolador! Somente através da comunicação SPI conseguiremos efetuar tarefas como: gravar na área reservada ao bootloader damemória flash, modificar fuse bits, gravar chips sem cristal, gravar linha ATTiny, etc.

Neste manual vamos considerar a utilização do AVRDude que acompanha o Arduino IDE, considerando o diretório de instalação do Arduino sendo:

C:\Program Files\Arduino

teremos o diretório de instalação do AVRDude sendo:

C:\Program Files\Arduino\hardware\tools\avr\bin

Para efetuar o download da instalação da IDE do Arduino, verifique o link:

http://arduino.cc/en/Main/Software#toc2

Para instruções sobre a instalação da IDE do Arduino verifique o link:

http://renatoaloi.blogspot.com.br/2011/10/instalando-arduino-guia-completo.html

Vamos precisar também para este exemplo, localizar o arquivo de configuração do AVRDude, considerando os caminhos de instalação citados acima, teremos o arquivo no seguinte local:

C:\Program Files\Arduino\hardware\tools\avr\etc

O arquivo chama avrdude.conf e precisaremos dele para carregar na hora da execução.

Seriallink.com.br 2014 – Todos os direitos reservados – Página 4 de 19

Page 5: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Vamos ver as opções que precisaremos usar. O AVRDude recebe parametros por linha de comando. Vejamosos comandos mais comuns, utilizados:

Uso: avrdude [opções]Opções:-p <partno> Obrigatório, especifica o chip AVR.

-b <baudrate> Configura a velocidade da Serial RS-232

-B <bitclock> Especifica o bitclock (us) da JTAG/STK500v2

-C <config-file> Especifica o local do arquivo de configuração.

-c <programmer> Especifica o tipo de programador

-D Desabilita a opção de apagar a memória flash.

-i <delay> Atraso do ISP Clock (us)

-P <port> Configura porta da conexão

-F Ignora a verificação da assinatura.

-e Apaga o chip.

-U <memtype>:r|w|v:<filename>[:format] Operação de memória. Vários -U são permitidos, cada requisição é executada na ordem especificada.

-n Não escreve nada no chip.

-V Não verifica a gravação.

-u Desabilita o modo-seguro, padrão quando executado em lote.

-s Modo silencioso, não pergunta se os fuse bits devem retornar aoestado inicial.

-t Entra no modo terminal

-v Modo verboso. -v -v para mais informações.

-q Modo quieto. -q -q para menos informações.

-? Mostra esse texto de ajuda.

Seriallink.com.br 2014 – Todos os direitos reservados – Página 5 de 19

Page 6: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Exemplos

Vamos direto fazer alguns exemplos para extrair todo o potencial desse módulo. Para executarmos os exemplos, precisamos efetuar algumas tarefas antes. Estas tarefas são as mesmas para todos os exemplos, então vamos listá-las aqui:

• Abrir um terminal de comando (no Windows chama Command Line)• Chegar até a pasta onde está o AVRDude, conforme pasta de instalação, citada mais acima, neste

manual.• Digitar os comandos do AVRDude. Aqui temos duas opções:

◦ Digitar os comandos diretamente na janela do terminal; ou◦ Criar arquivos de lote para executar vários comandos de uma vez (no Windows são os

arquivos .BAT)

Neste manual vamos focar as instruções para os usuários do Windows, pois usuários do MAC e Linux normalmente tem mais facilidades com esse tipo de operação de linha de comando.

Primeiro abra o menu do Windows e digite cmd no campo de pesquisa e tecle Enter.

Na janela de comando que abrir, digite o comando cd para mudar o diretório atual para o de execução do AVRDude. No caso do diretório de instalação citado neste documento, teremos que digitar o seguinte comando:

cd C:\Arquivos de Programas\arduino\hardware\tools\avr\bin

Seriallink.com.br 2014 – Todos os direitos reservados – Página 6 de 19

3

2

1

Page 7: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Exemplo 1 – Gravando Bootloader do Arduino UNO no ATMega328p

Para este primeiro exemplo vamos gravar o Bootloader do Arduino UNO no ATMega328p, utilizando um chip avulso, uma protoboard e um cristal de 16Mhz.

Vamos fazer as ligações conforme a tabela abaixo. Em caso de dúvidas, consulte o diagrama de conexões mais abaixo.

Tabela de conexões (Não esqueça o Cristal nos pinos 9 e 10!)

Arduino Gravador Supervisório ATMega328p

GND Pinos 8 e 22

+5V Pinos 7 e 20

MOSI Pino 17

RST Pino 1

SCK Pino 19

MISO Pino 18

Diagrama de Conexões

Seriallink.com.br 2014 – Todos os direitos reservados – Página 7 de 19

Cristal 16Mhz

Arduino Programador Supervisório

Chip ATMega328p

Page 8: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Conectando na USB e Instalando Drivers

Primeiro efetue o download do driver para o seu sistema operacional. Lembre-se que para MAC e Linux não precisa.

http://www.fischl.de/usbasp/usbasp-windriver.2011-05-28.zip

Descompacte então o arquivo ZIP e utilize o caminho da pasta quando o Windows solicitar a instalação do Driver. Neste exemplo eu descompactei a pasta no área de trabalho, ficando assim:

C:\Users\Renato Aloi\Desktop\usbasp-windriver.2011-05-28

Vamos então passar para o Windows pesquisar os drivers na seguinte pasta, considerando o caminho de descompactação do ZIP, indicado acima, temos:

C:\Users\Renato Aloi\Desktop\usbasp-windriver.2011-05-28\libusb_1.2.4.0

Esta pasta contém o arquivo INF necessário para que o Windows faça o resto do trabalho de instalação.

Caso a instalação inicial não funcione, aparecerá a seguinte tela:

Seriallink.com.br 2014 – Todos os direitos reservados – Página 8 de 19

Page 9: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Instalação Manual do Driver

Neste caso, vamos fazer a instalação manualmente, clicando no menu do Windows e depois com o botão direito do mouse no item Computador e na opção Gerenciar, conforme imagem:

Seriallink.com.br 2014 – Todos os direitos reservados – Página 9 de 19

1. Clique aqui

2. Botão direito do mouse

3. Clique nessa opção

Page 10: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Na tela que aparecer, clique em Gerenciador de Dispositivos, depois localize a entrada do USBAsp, e por fim, clique com o botão direito para aparecer o menu de contexto e clique na opção Atualizar Driver...

Selecione a opção Procurar software de driver no computador, na tela que aparecer, conforme segue:

Seriallink.com.br 2014 – Todos os direitos reservados – Página 10 de 19

1. Clique aqui

2. Localize a entrada do USBasp, dentro de Outros Dispositivos3. Clique com o botão direito do mouse

4. Clique aqui

1. Clique aqui

Page 11: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Na próxima tela, clique no botão Procurar... e encontre a pasta descompactada no Desktop, conforme fizemosna etapa anterior de descompactar o arquivo ZIP. Se você quiser, poderá digitar diretamente o caminho na caixa de texto. No meu caso o caminho ficou assim:

C:\Users\Renato Aloi\Desktop\usbasp-windriver.2011-05-28

Não esqueça de ativar a opção Incluir Subpastas!

Pronto! Só clicar em Avançar!

Seriallink.com.br 2014 – Todos os direitos reservados – Página 11 de 19

1. Clique aqui

2. Clique aqui para selecionar a pasta que descompactamos3. Não esqueça de

clicar nessa opção para ativá-la, conforme mostrado aqui

Page 12: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Então aparecerá a tela da imagem abaixo. Clique na opção que diz: Instalar esse software de driver mesmo assim

Ao final da instalação deverá aparecer essa mensagem:

Seriallink.com.br 2014 – Todos os direitos reservados – Página 12 de 19

1. Clique aqui

Page 13: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Pronto! Seu Arduino Programador Supervisório está instalado e pronto para funcionar! Vejamos na lista de dispositivos do computador, que agora ele aparece com um ícone certo e sob o grupo

libusb-win32 devices

Seriallink.com.br 2014 – Todos os direitos reservados – Página 13 de 19

Tudo OK!

Page 14: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Gravando o Bootloader

Agora podemos executar os comandos do AVRDude na tela de Linha de Comandos do Windows. Já vimos como abrir o console de comandos do Windows. Agora vamos ver os comandos!

1. Primeiro comando é o CD!cd C:\Arquivos de Programas\arduino\hardware\tools\avr\bin

2. Depois podemos executar o primeiro comando que é destravar o fuse bit que configura a área de bootloader, assim poderemos escrever nessa área:avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lock:w:0x3F:m

3. Configuramos então cada fuse bit com os 3 comandos na sequência:avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U hfuse:w:0xDE:mavrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lfuse:w:0xFF:mavrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U efuse:w:0x05:m

4. Com todos os fuse bits configurados e a área de bootloader pronta para receber gravação, vamos enviar o arquivo Intel Hex do bootloader do Arduino UNO para o chip (Atenção! Nessa etapa precisamos do arquivo optiboot_atmega328.hex Já veremos como copiá-lo):avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U flash:w:optiboot_atmega328.hex

5. Finalmente precisamos enviar o comando para travar a área de bootloader novamente, assim:avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lock:w:0x0F:m

Bom, vamos analisar algumas coisas importantes!

• Repare na opção -B 100, esta opção é muito importante e não funciona sem ela!

• Outra coisa a se reparar é a falta do arquivo optiboot_atmega328.hex, ele está localizado no seguinte diretório:C:\Program Files\Arduino\hardware\arduino\bootloaders\optiboot

e deve ser copiado para o diretório que estamos trabalhando:cd C:\Arquivos de Programas\arduino\hardware\tools\avr\bin

• Utilize o comando copy, assim:copy "C:\Program Files\Arduino\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.hex" "C:\Arquivos de Programas\arduino\hardware\tools\avr\bin\optiboot_atmega328.hex"

Seriallink.com.br 2014 – Todos os direitos reservados – Página 14 de 19

Page 15: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

• Para executar o comando acima você precisará estar executando o CMD.exe como administrador! Clique com o botão direito do mouse na hora de abrir o programa para exibir a opção Executar como Administrador

Arquivo de Lote BAT

Copiar e colar o texto abaixo em um arquivo de texto e salvar como BurnArduinoUno.bat

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lock:w:0x3F:m

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U hfuse:w:0xDE:m

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lfuse:w:0xFF:m

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U efuse:w:0x05:m

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U flash:w:optiboot_atmega328.hex

avrdude -C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -c usbasp -B 100 -p m328p -U lock:w:0x0F:m

pause

Seriallink.com.br 2014 – Todos os direitos reservados – Página 15 de 19

1. Clique com o botão direito do mouse!

2. Clique na opção do administrador

Page 16: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Conectores Adicionais de Configuração

O Arduino Programador Supervisório possui quatro (4) jumpers adicionais, incluidos no projeto USBASP original, mas nunca implementados. Agora estão disponíveis! Inclusive uma saída Serial!

JP1 – Ativação da Saída 5V

A saída 5V no padrão Borne pode ser ativada ou não através desse jumper. Por padrão ele já vem com uma capinha, ligando a saída 5V. Basta retirar a capa do jumper para desativar essa saída.

JP3 – Saída Serial TTL

O JP3 é uma adição bem interessante, pois configura uma saída Serial diretamente do chip ATMega8 que roda o firmware USBASP. Através desse jumper podemos utilizar esse módulo com outras funcionalidades, ainda a serem testadas!

Seriallink.com.br 2014 – Todos os direitos reservados – Página 16 de 19

JP1 configura a Saída de Alimentação 5V e GND para alimentação de dispositivos externos, que fica no conector principal de Bornes

RX TX

Page 17: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

JP2 – Auto Programação (self-prog)

Através desse jumper podemos fazer a auto-gravação do chip do módulo. Essa opção serve para atualizar o firmware do chip do módulo.

Para utilizar essa opção para regravar o firmware, verifique o projeto USBAsp de Thomas Fischl no link:

http://www.fischl.de/usbasp/

para obter a versão mais atual do firmware. Atualmente a versão mais nova é essa:

http://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz

JP4 – Slow Clock

Esta é uma outra opção avançada que liga ou desliga a opção de Slow SCK, utilizada apenas em situações bem específicas, a serem discutidas no fórum: http://www.seriallink.com.br/forum

Seriallink.com.br 2014 – Todos os direitos reservados – Página 17 de 19

Page 18: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Esquema Elétrico

Seriallink.com.br 2014 – Todos os direitos reservados – Página 18 de 19

Page 19: Manual Técnico - Serial Link - Conheça o Arduino …seriallink.com.br/GravadorBootloader/ManualProgramador...Serial Link Comunicações & Serviços Manual Técnico Arduino Programador

Serial Link Comunicações & Serviços

Design da Placa

Seriallink.com.br 2014 – Todos os direitos reservados – Página 19 de 19