Manual Técnico

Transcrição

Manual Técnico
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
Serial Link Comunicações & Serviços
Sumário
Manual Técnico......................................................................................................................................................1
Introdução.........................................................................................................................................................3
Características..................................................................................................................................................3
Downloads.........................................................................................................................................................3
Windows 8.........................................................................................................................................................3
Programação.....................................................................................................................................................4
AVRDUDE....................................................................................................................................................4
Exemplos...........................................................................................................................................................6
Exemplo 1 – Gravando Bootloader do Arduino UNO no ATMega328p......................................................7
Conectores Adicionais de Configuração.........................................................................................................16
JP1 – Ativação da Saída 5V......................................................................................................................16
JP3 – Saída Serial TTL..............................................................................................................................16
JP2 – Auto Programação (self-prog).........................................................................................................17
JP4 – Slow Clock.......................................................................................................................................17
Esquema Elétrico............................................................................................................................................18
Design da Placa..............................................................................................................................................19
Seriallink.com.br 2014 – Todos os direitos reservados – Página 2 de 19
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
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 da
memó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
Serial Link Comunicações & Serviços
Vamos ver as opções que precisaremos usar. O AVRDude recebe parametros por linha de comando. Vejamos
os 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 ao
estado 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
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.
3
2
1
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
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
Chip ATMega328p
Arduino Programador
Supervisório
Cristal 16Mhz
Seriallink.com.br 2014 – Todos os direitos reservados – Página 7 de 19
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
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:
2. Botão direito
do mouse
3. Clique
nessa
opção
1. Clique aqui
Seriallink.com.br 2014 – Todos os direitos reservados – Página 9 de 19
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...
2. Localize a entrada do
USBasp, dentro de Outros
Dispositivos
3. Clique com o botão direito
do mouse
1. Clique aqui
4. Clique aqui
Selecione a opção Procurar software de driver no computador, na tela que aparecer, conforme segue:
1. Clique aqui
Seriallink.com.br 2014 – Todos os direitos reservados – Página 10 de 19
Serial Link Comunicações & Serviços
Na próxima tela, clique no botão Procurar... e encontre a pasta descompactada no Desktop, conforme fizemos
na 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!
1. Clique aqui
3. Não esqueça de
clicar nessa opção
para ativá-la,
conforme
mostrado aqui
2. Clique aqui para
selecionar a pasta que
descompactamos
Pronto! Só clicar em Avançar!
Seriallink.com.br 2014 – Todos os direitos reservados – Página 11 de 19
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
1. Clique aqui
Ao final da instalação deverá aparecer essa mensagem:
Seriallink.com.br 2014 – Todos os direitos reservados – Página 12 de 19
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
Tudo OK!
Seriallink.com.br 2014 – Todos os direitos reservados – Página 13 de 19
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: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
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
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
2. Clique na opção
do administrador
1. Clique com o
botão direito do
mouse!
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
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.
JP1 configura a Saída de Alimentação
5V e GND para alimentação de
dispositivos externos, que fica no
conector principal de Bornes
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!
TX
RX
Seriallink.com.br 2014 – Todos os direitos reservados – Página 16 de 19
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
Serial Link Comunicações & Serviços
Esquema Elétrico
Seriallink.com.br 2014 – Todos os direitos reservados – Página 18 de 19
Serial Link Comunicações & Serviços
Design da Placa
Seriallink.com.br 2014 – Todos os direitos reservados – Página 19 de 19

Documentos relacionados

Manual Técnico

Manual Técnico com ATMega16u2, você precisa verificar se a comunicação está funcionando e se a assinatura confere. Isso acontece pois os chips possuem assinaturas diferentes.

Leia mais