manual técnico - serial link - conheça o arduino...
TRANSCRIPT
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
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
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 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
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
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
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
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:
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
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
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
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
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!
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
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
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
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