Índice:
- Etapa 1: O que você precisa?
- Etapa 2: fazendo o programador Mega-isp em uma placa de ensaio
- Etapa 3: enviando o esboço
- Etapa 4: Usando com Avrdude
- Etapa 5: Gravar firmware USBtinyISP em um Attiny2313
- Etapa 6: Gravando o carregador de inicialização do Arduino
- Etapa 7: Solução de problemas
Vídeo: Como programar um AVR (arduino) com outro Arduino: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:41
Este instructables é útil se:
* você tem seu arduino com atmega168 e comprou um atmega328 em sua loja de eletrônicos local. Ele não tem um bootloader arduino * que você deseja fazer um projeto que não use o arduino - apenas um chip AVR normal (como o USBTinyISP) - você tem um attiny2313 / attiny48 limpo etc no qual deseja gravar o firmware. Normalmente você teria que ter um ISP (In System Programmer) como USBTinyISP para programar seu novo chip. Tendo o arduino você pode ensiná-lo a ser um programador graças ao excelente trabalho realizado por Randall Bohn. Ele criou o Mega-ISP - um esboço de arduino que funciona como um programador.
Etapa 1: O que você precisa?
* um Arduino funcional (ou um clone - estou usando o BBB - BareBonesBoard e um RBBB - RealBareBonesBoard da ModernDevices) * um chip que você deseja programar (testado com atmega8, atmega168, atmega368, attiny2313, attiny13) * um breadboard ou uma placa com conector ISP * 3 leds + 3 resistores * fios da placa de ensaio
Etapa 2: fazendo o programador Mega-isp em uma placa de ensaio
Existem duas maneiras de conectar seu Arduino para programar um chip.
Você pode conectar seu chip avr a uma placa de ensaio e conectar 5v e GND aos respectivos pinos (verifique a ficha técnica!) + Um resistor pullup para redefinir e conectar os pinos do seu arduino ao chip. Estas são as linhas no Arduino e suas funções 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Ou você pode fazer um conector ISP de 2x3 pinos que você pode conectar em uma placa que forneça um (outra placa arduino). A pinagem do cabeçalho do ISP está na terceira imagem. Existem 3 leds para indicar o status do programador. pino 9 - led azul - é a batida do coração do programador. pino 8 - led vermelho - indica um erro pino 7 - led verde - indica que a programação está ocorrendo (eu estava com preguiça então não combinei as cores em minha configuração) Aqui estão os desenhos feitos no Fritzing Você também pode fazer um Escudo MEGA-ISP. Yaroslav Osadchyy desenhou o escudo em águia. Você pode obter os arquivos da águia em seu site:
Etapa 3: enviando o esboço
Baixe o esboço do código do google mega-isp (avrisp.03.zip no momento da escrita). Descompacte-o, execute arduino ide e abra avrisp.pde. Faça o upload para sua placa Arduino. O led de pulsação deve começar a bater.
Etapa 4: Usando com Avrdude
Para usar com o avrdude (e todas as GUIs que o usam), você deve selecionar o programador 'avrisp'. a taxa de bits mais segura é 19200.
Para testar seu novo atmega168 na linha de comando, tente: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 é a porta que o arduino está conectado à minha máquina linux (a sua pode ser com5). Isso pode ser verificado no IDE do arduino em Ferramentas -> Porta Serial. Você deve obter: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: dispositivo AVR inicializado e pronto para aceitar instruções Leitura | ############################################################### | 100% 0.13s avrdude: Assinatura do dispositivo = 0x1e9406 avrdude: safemode: Fusíveis OK avrdude concluído. Obrigada. Isso significa que está tudo bem. Se você receber erros - verifique a última etapa.
Etapa 5: Gravar firmware USBtinyISP em um Attiny2313
O USBTinyISP é um ótimo programador da LadyAda que é realmente barato - 22 $. Eu tinha um attiny2313 sobressalente e algumas peças, então decidi fazer um para mim. Se você não tem experiência em fazer placas de circuito impresso, aconselho que compre o kit, porque ele é de qualidade superior à que você mesmo pode fazer:). Compre pelo menos o PCB se quiser construir um. Você pode obtê-lo na Adafruit. Conecte o ATtiny2313Na última foto você pode ver o attiny2313 com os pinos usados pelo ISP em vermelho. A imagem é do tutorial do avr LadyAda. Gravando o firmware: Descompacte o firmware USBTinyISP. Vá para o diretório spi e execute $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 para verificar se está tudo ok com o chip. Agora defina os fusíveis: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Agora você deve conectar o oscilador externo de 12 MHz ao chip. E grave o firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Seu attiny2313 possui o firmware USBTinyISP.
Etapa 6: Gravando o carregador de inicialização do Arduino
ConectandoEu trapacei um pouco porque usei um RBBB para simplificar as conexões. O esquema está na imagem # 2. Se você usar 2 arduinos, use a figura 3 e conecte o pino do ISP ao ICSP 2x3header no segundo arduino (escravo). Conecte apenas a alimentação USB na primeira placa. A maneira da GUI Isto é um pouco complicado porque você não pode simplesmente usar Ferramentas-> Gravar Bootloader -> w / AVR ISP porque a velocidade padrão é muito grande para o mega-ISP. Encontre avrdude.conf que vem com o IDE do arduino (em arduino / hardware / tools / avrdude.conf) e altere a taxa limite para o programador avrisp de 115200 para 19200 (em torno da linha 312) Encontre e mude em avrdude.conf programmer id = "avrisp"; desc = "Atmel AVR ISP"; taxa de transmissão = 115200; # o padrão é 115200 type = stk500;; para: id do programador = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # o padrão é 115200 type = stk500;; Agora você pode usar Ferramentas -> Gravar bootloader -> w / AVR ISP (depois de selecionar a placa apropriada no menu Ferramentas) Commanline Você também pode usar a linha de comando: Editar arduino / hardware / bootloaders / atmega / Makefile e alterar ISPTOOL / PORT / SPEED para: # insira os parâmetros para a ferramenta avrdude isp ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 não você pode escrever $ make diecimila_isp para queimar fusíveis e o bootloader. Test Agora conecte seu novo arduino ao USB e queime o blinky!
Etapa 7: Solução de problemas
Erros Avrdude: avrdude: ser_open (): não é possível abrir o dispositivo "/ dev / ttyUSB0": Não existe esse arquivo ou diretório. Você especificou a porta (-P) errada ou seu arduino não está conectado. verifique a conexão avrdude: Assinatura do dispositivo = 0x000000 avrdude: Caramba! Assinatura de dispositivo inválida. Verifique as conexões e tente novamente, ou use -F para ignorar esta verificação. Este é um tipo de erro geral. Seu chip não é reconhecido. Verifique a conexão na placa (GND / 5V conectado aos pinos?) Você obterá este erro quando seu chip estiver configurado para usar um oscilador externo e não estiver funcionando (não existe ou não está oscilando corretamente - tampas 22pf ausente ?)
Recomendado:
Arduino como ISP -- Queime arquivo hexadecimal em AVR -- Fusível no AVR -- Arduino como programador: 10 etapas
Arduino como ISP || Queime arquivo hexadecimal em AVR || Fusível no AVR || Arduino como programador: ……………………… ASSINAR O meu canal do YouTube para mais vídeos …….. Este artigo tem tudo a ver com arduino como ISP. Se você deseja fazer upload de um arquivo hexadecimal ou se deseja definir seu fusível em AVR, então não precisa comprar um programador, você pode fazer
Execute o APK Blynk ou outro aplicativo Android como HMI no Raspberry Pi: 7 etapas
Execute o APK Blynk ou outro aplicativo Android como HMI no Raspberry Pi: Olá, fabricantes! Este é meu primeiro instrutível … Está ao alcance de um novato em framboesa. Passei muito tempo encontrando as combinações certas para uma boa confiabilidade e velocidade de comissionamento. Tendo encontrado poucas informações para implementar isso
Como programar uma placa AVR usando uma placa Arduino: 6 etapas
Como programar uma placa AVR usando uma placa Arduino: Você tem uma placa de microcontrolador AVR disponível? É complicado programá-lo? Bem, você está no lugar certo. Aqui, vou mostrar como programar uma placa microcontroladora Atmega8a usando uma placa Arduino Uno como programador. Então, sem mais
Como emular um controle remoto de TV ou outro com o Arduino Irlib: 3 etapas (com imagens)
Como emular um controle remoto de TV ou outro com Arduino Irlib: IntroduçãoOlá a todos e bem-vindos ao meu primeiro Instructable. Hoje vamos aprender, como o título diz, a emular um controle remoto de TV ou algo semelhante que funcione com sinais infravermelhos usando Arduino (qualquer modelo) .O problema era: como posso transmitir códigos para um
Como converter vídeos do Google ou do Youtube para quase qualquer outro formato de mídia gratuitamente: 7 etapas
Como converter vídeos do Google ou do Youtube para quase qualquer outro formato de mídia gratuitamente: Neste instrutível, mostrarei como baixar conteúdo de vídeo de vários sites (youtube, Google Video, etc) e convertê-lo usando dois métodos para muitos outros formatos e codecs. Outro uso é baixar videoclipes e convertê-los em mp3