Índice:

Como usar os pinos GPIO do Raspberry Pi e Avrdude para o programa Bit-bang DIMP 2 ou DA PIMP 2: 9 etapas
Como usar os pinos GPIO do Raspberry Pi e Avrdude para o programa Bit-bang DIMP 2 ou DA PIMP 2: 9 etapas
Anonim
Como usar os pinos GPIO do Raspberry Pi e Avrdude para o programa Bit-bang DIMP 2 ou DA PIMP 2
Como usar os pinos GPIO do Raspberry Pi e Avrdude para o programa Bit-bang DIMP 2 ou DA PIMP 2

Estas são instruções passo a passo sobre como usar um Raspberry Pi e o comando de código aberto gratuito avrdude para programar um DIMP 2 ou DA PIMP 2. Suponho que você esteja familiarizado com o Raspberry Pi e o LINUX linha de comando. Você não precisa estar familiarizado com a programação do chip AVR, mas ajuda se algo der errado porque você pode ler a saída do avrdude e ter uma ideia do que fazer.

Este procedimento deve levar cerca de 1 hora na primeira vez e 5 a 10 minutos cada vez depois.

Você vai precisar de:

1) Um Raspberry Pi com pinos GPIO e fonte de alimentação. Estou usando um Raspberry Pi Zero W com pinos GPIO soldados. O sistema operacional deve ser Raspberry Pi OS (anteriormente Raspbian). Estou usando o Raspbian Lite (Stretch), que é meio antigo. Esses comandos ainda devem funcionar na versão mais recente do Raspberry Pi OS.

No futuro, irei me referir ao Raspberry Pi como "RPi".

2) Fios de ligação fêmea para fêmea. Obtenha uma de cada uma destas cores: vermelho, preto, azul, amarelo, verde, roxo. Estou usando marrom em vez de roxo.

3) Um DIMP 2 ou DA PIMP 2 com o conector ICSP opcional de 10 pinos soldado. Estou usando um DIMP 2 aqui, mas as instruções são as mesmas para o DA PIMP 2.

4) Acesso à Internet para o RPi para que você possa instalar o comando avrdude de código aberto gratuito.

5) Uma cópia do arquivo flash.hex para seu DIMP 2 ou DA PIMP 2. Você mesmo pode construir o arquivo.hex a partir do código-fonte bruto, mas não mostrarei como fazer isso aqui.

6) Alguma forma de fazer login no RPi - use uma conexão de rede ou acesso direto ao console. Você precisa ser capaz de executar comandos nele.

Etapa 1: Remova o cabo de alimentação AC e remova a bateria de 9V

Primeiro, verifique se o cabo de alimentação CA está conectado ao DIMP 2 ou DA PIMP 2 e conectado à rede elétrica CA. Nesse caso, PERIGO: PERIGO DE CHOQUE LETAL. Use luvas de borracha e desligue o interruptor principal no DIMP 2 ou DA PIMP 2. Em seguida, desconecte o cabo de alimentação CA da rede elétrica CA e desconecte o cabo de alimentação CA do DIMP 2 ou DA PIMP 2. Você pode pegar tire as luvas de borracha assim que o cabo de alimentação CA for removido.

Em seguida, remova a bateria de 9V. A energia será fornecida ao DIMP 2 pelo RPi por meio dos fios vermelho (Vcc) e preto (GND). Desligue o controle deslizante do DIMP 2 ou DA PIMP 2 para garantir.

Etapa 2: conecte os fios de ligação

Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação
Conecte os fios de ligação

Com o RPi desligado, comece a conectar os fios do jumper. Daqui para frente, os pinos GPIO estão no Raspberry Pi e os pinos ICSP estão no DIMP 2 (cabeçalho J3) ou DA PIMP 2 (cabeçalho J1).

Consulte o diagrama que fiz junto e as fotos se você estiver perdido.

A parte RPi do diagrama é de pinout.xyz.

A porção ATMEGA48V-10PU do diagrama é copyright 2016 Atmel Corp.

Estou reivindicando o uso justo desses desenhos devido às adições significativas e transformadoras.

O preto vai do pino 6 do GPIO para o pino 10. do ICSP. Este é o GND (terra)

O amarelo vai do pino 12 do GPIO para o pino 9. do ICSP. Este é o MISO.

O verde vai do pino 16 do GPIO ao pino 1. do ICSP. Este é o MOSI.

O azul vai do pino 18 do GPIO para o pino 7. do ICSP. Este é SCK ou SCLK (SClock)

Roxo (marrom em minhas fotos) vai do pino 32 do GPIO ao pino 5. do ICSP. Isso é RESET.

O vermelho vai do pino 4 do GPIO para o pino 2 do ICSP. Este é o Vcc (alimentação de 5 V)

Etapa 3: Energize o RPi

Agora, vá em frente e ligue o RPi. A parte do voltímetro do DIMP 2 ou DA PIMP 2 deve ligar também, mas você não saberá olhando para o visor. Em caso de dúvida, meça a tensão com a ponta de prova vermelha no pino 20 no ATMEGA48V-10PU e a ponta de prova preta no pino 4, 6 ou 8 no cabeçalho ICSP. Deve estar em torno de 5 VCC.

Etapa 4: Instale o Avrdude

Minhas instruções mostrarão apenas comandos de linha de comando. Se você tiver uma GUI em execução, deverá abrir um Terminal para executar esses comandos de linha de comando.

Faça login como o usuário padrão pi. A senha padrão é framboesa

Instale o comando avrdude digitando o seguinte no prompt de comando do terminal:

sudo apt-get install avrdude

Etapa 5: edite o arquivo de configuração do Avrdude

Edite o arquivo de configuração do avrdude digitando:

sudo nano /etc/avrdude.conf

Adicione essas linhas ao meio do arquivo onde estão as outras definições do programador. O que fiz foi copiar a seção do programador logo acima para id = "linuxgpio", colar logo abaixo (na linha 1274) e editar a nova seção.

programador

id = "pi_1"; desc = "Use a interface sysfs do Linux para linhas GPIO bitbang"; type = "linuxgpio"; reset = 12; sck = 24; mosi = 23; miso = 18;;

Em seguida, salve o arquivo pressionando: Ctrl-O

Em seguida, feche o editor nano pressionando: Ctrl-X

Etapa 6: Faça download ou copie o arquivo Flash.hex para / home / pi

Copie o arquivo flash.hex para o RPi. Presumo que você saiba como fazer isso. SUGESTÃO: Use o comando wget, curl, git ou scp para baixar o arquivo da web para o RPi.

O arquivo.hex do DIMP 2 está aqui, junto com o código-fonte:

github.com/dchang0/dimp2

Uma versão personalizada do arquivo.hex do DA PIMP 2 está aqui. Eu não testei isso!

github.com/jcwren/DaPimp2

Se a versão acima do arquivo.hex do DA PIMP 2 não funcionar, o código-fonte original do DA PIMP 2 de Mikey Sklar está aqui. Você terá que compilá-lo em um arquivo de trabalho.hex. Não falo sobre isso nestas instruções porque será um tutorial longo (mas não difícil). Eu programei com sucesso várias unidades DA PIMP 2 funcionais usando este código-fonte:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

Ou você pode ir para a página principal do DA PIMP 2 aqui e clicar no link para o código-fonte.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Coloque o arquivo.hex neste caminho e nome de arquivo no RPi…

Para o DIMP 2:

/home/pi/dimp2.hex

Para o DA PIMP 2:

/home/pi/da_pimp2.hex

Etapa 7: Verifique se Avrdude pode falar com o ATMEGA48V-10PU

Execute o comando avrdude para certificar-se de que ele pode se comunicar com o chip ATMEGA48V-10PU no DIMP 2 ou DA PIMP 2.

cd / home / pi

sudo avrdude -c pi_1 -p m48 -v

Você obterá cerca de uma página de saída. Olhe para o final. Se você receber uma resposta como esta, você pode prosseguir.

avrdude: dispositivo AVR inicializado e pronto para aceitar instruções

Lendo | ############################################################### | 100% 0,00s

Caso contrário, algo está errado e você deve descobrir. Provavelmente é um cabeamento incorreto, mas outra reclamação comum que tenho visto é que o chip ATMEGA48V-10PU é falso. Parece que muitos deles vendidos na Amazon ou ebay são falsos. Os vendidos pela Mouser ou Digikey e outros distribuidores autorizados são genuínos.

Etapa 8: Flash do arquivo.hex para ATMEGA48V-10PU

Execute este comando para fazer a programação do chip…

Para o DIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: dimp2.hex

Para o DA PIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: da_pimp2.hex

Você obterá cerca de uma página de saída. Procure por estas linhas:

avrdude: escrita em flash (1528 bytes):

Escrevendo | ############################################################### | 100% 0,79s

avrdude: verificando …

avrdude: 1528 bytes de flash verificado avrdude: safemode: Fusíveis OK (E: FF, H: DF, L: 62)

Se você chegou até aqui, deverá ver o display LED mostrando zeros para a tensão. Se você vir os zeros, está pronto! Caso contrário, vá para a próxima etapa.

Se você vir os zeros, desligue normalmente o seu RPi com este comando:

sudo shutdown -h now

Quando a luz de energia no RPi desligar (o DIMP 2 ou DA PIMP 2 ainda estará ligado), você pode desconectar a fonte de alimentação do RPi. Em seguida, desconecte os fios do jumper entre o RPi e o DIMP 2 ou DA PIMP 2.

Etapa 9: Solução de problemas simples se o flash falhar

Se você não vir zeros no display do DIMP 2 ou DA PIMP 2, é hora de solucionar o problema.

Novamente, verifique sua fiação primeiro.

Em seguida, verifique os estados do fusível mostrados por avrdude. É possível que o seu chip tenha vindo com os fusíveis configurados com valores diferentes do padrão de fábrica. O chip pode precisar reiniciar seus fusíveis, o que requer um dispositivo de hardware totalmente diferente. Este é um problema com muitos dos chips ATMEGA48V-10PU falsos vendidos no ebay - eles são chips antigos retirados de hardware descartado e os fusíveis foram colocados e o vendedor não se preocupou em reconfigurar os fusíveis.

Às vezes, o chip nem mesmo é um ATMEGA48V-10PU. Pode ser um chip diferente com o novo rótulo. Normalmente, você pode identificar essas falsificações observando cuidadosamente as marcações nas partes superior e inferior do chip. É mais sensato obter seu ATMEGA48V-10PU por meio de um fornecedor confiável como a Mouser ou a Digikey.

Recomendado: