Como mudar de usar um Arduino como programador para um programador externo?


12

Parte dois de uma série de três partes sobre a transição do Arduino para um microcontrolador AVR simples e componentes de suporte mínimos ( parte um , parte três )

Eu já vi muitas pessoas perguntando isso na Internet, então aqui vai:

Eu já sei como programar e usar um barmone ATmega328 com um Arduino como programador . Agora, quero começar a usar um programador externo com o IDE do Arduino.

Como devo proceder nessa transição? O que devo aprender? (Seria bom se um mini-tutorial para algumas partes fosse fornecido como parte da resposta)


2
+1, um excelente candidato para uma pergunta de referência, aguardo ansiosamente algumas respostas bem estruturadas e detalhadas que sejam fáceis de seguir para iniciantes, e não respostas do tipo "gravura-a-quadro".
Anindo Ghosh 11/04

Estou confuso. Você deseja que as etapas sejam movidas de uma metodologia para outra. O que você espera como resposta? Os tutoriais para usar diretamente um programador externo são bons, os tutoriais reais.
asheeshr

@AshRj: A transição e o início novamente são duas coisas diferentes. Se alguém souber como usar um Arduino, precisará saber quais serão as diferenças nos vários códigos (e o básico do uso de um programador).
precisa saber é o seguinte

@Manishearth O que você quer dizer com 'sem um gerenciador de inicialização'?
polar

@ Polar: Basicamente, eu não quero que o carregador de inicialização do Arduino esteja lá para me ajudar (o que acontece se você usar um Arduino como programador), só quero um ATmega vazio no qual todo o código é o meu código.
precisa saber é o seguinte

Respostas:


6

Nota: Este mini-tutorial é baseado nas informações oficiais aqui no site do Arduino. Também envolve o uso do IDE oficial do Arduino.

Nota 2: Os links fornecidos aos produtos podem ser os links da Farnell (pois contêm folhas de dados) ou as páginas reais do produto no site do fabricante.


Etapa 1: obter um programador externo

A primeira coisa a observar é que você precisa de um programador externo para evitar o carregador de inicialização e recuperar os 1K ou 2K de memória que ele ocupa (12,5% da memória total ). Você pode usar um programador AVR-ISP , STK-500 ou porta paralela - o site oficial do Arduino tem instruções para isso aqui . Observe que você não pode se comunicar com a placa através do programador paralelo - o conselho é usar um cabo serial para isso. O principal benefício do uso de um programador paralelo é que eles são muito mais baratos que os outros se você estiver disposto a fazer uma solda - você só precisa de alguns (3) resistores e alguns conectores, enquanto um ISP pode configurá-lo de volta a £ 30 / $ 50 (a taxa de conversão é aproximada).


Etapa 2: Edite o arquivo de preferências do Arduino

Em seguida, você precisará configurar o Arduino IDE para permitir contornar o gerenciador de inicialização. Certifique-se de NÃO ter o IDE do Arduino aberto! O arquivo de preferências preferences.txtpode ser encontrado nos seguintes locais, dependendo do seu sistema operacional:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Janelas)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

Para acessar o arquivo de preferências no Windows, vá para o menu Iniciar e depois para %appdata% (Nota: eu não uso o Windows regularmente, sinta-se à vontade para me corrigir). Em seguida, navegue para Arduino e depois parapreferences.txt

No Mac, use o Terminal e faça:

cd ~/Library/Arduino
open .

Ou, no Finder, use Goto (Cmd-Shift-G) e digite ~/Library/Arduino . Ambos o levam a uma janela do Finder com preferences.txtin.

Nos sistemas Unix, pastas começando com um '.' (como .cache,.git ) estão ocultos por padrão; portanto, no Linux, você precisará usar o Terminal e inserir:

cd ~/.arduino
nautilus .

Nota: Você pode substituir o nautilus por gnome-open se desejar. Sei que ambos funcionam com os sabores comuns do Linux, mas você pode ter problemas com alguns dos sabores mais 'exóticos'.

Depois de encontrar o preferences.txtarquivo, abra-o e altere upload.usingde bootloaderpara o nome de um dos programadores no ./hardware/programmers.txtsubdiretório. Se você deseja remover apenas o carregador de inicialização de uma placa, ./hardware/boards.txté possível alterar o <board>.upload.usingparâmetro e todas as outras placas ainda usarão o carregador de inicialização. Em seguida, basta salvar o arquivo relevante e fechá-lo (meu Arduino travou e eu quase perdi a resposta, possivelmente porque me esqueci de fazer isso).


Etapa 3: fazer upload do esboço

Depois de editar o arquivo relevante, abra o IDE do Arduino novamente e faça o upload do esboço normalmente. Se você acabou de editar ./hardware/boards.txt, somente essa placa específica não terá o carregador de inicialização, mas se você editoupreferences.txt , todas as placas não terão o carregador de inicialização.


Etapa 4: Substitua o carregador de inicialização

Se você deseja ter o gerenciador de inicialização em suas placas novamente (por qualquer motivo), remova primeiro o <board>.upload.usingparâmetro ou upload.usingvolte para bootloader. Em seguida, você precisará gravar novamente o gerenciador de inicialização nas placas afetadas - esta resposta explica razoavelmente bem um método de fazê-lo, e existe um método mais fácil de fazer upload do gerenciador de inicialização Arduino apenas com apenas um ISP (que você deveria ter anteriormente) no site oficial aqui .


Acho que não estava claro, editei a pergunta para tornar isso aparente: eu queria mais ou menos descartar o IDE completamente (o que significa que você precisa aprender outra linguagem de programação. No entanto, como você já postou uma resposta, eu 'll pode apenas pedir que, como uma questão separada.
Manishearth

@ Manishearth Ah, eu vou editá-lo para refletir isso, se você quiser. Então, novamente, nós poderia fazer com mais perguntas ...
Polar

Vou perguntar a outra, isso ficará muito amplo se eu
incluir

@Manishearth Ok :)
Polar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.