Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Este é um pequeno guia para atualizar o novo firmware em um clone USBasp como o meu. Este guia foi escrito especificamente para o clone USBasp visto nas fotos, no entanto, ele ainda deve funcionar com outros. A fiação é mostrada na etapa 5, há um TL; DR na etapa 9.
Aproveitar!
Etapa 1: o problema
Avrdude me disse que o programador que estou usando tem firmware desatualizado. O jumper normal para autoprogramação não existe na minha placa. Aqui está como consertar isso. Esquemas para o USBasp podem ser encontrados em fischl.de.
Etapa 2: Materiais necessários
Você vai precisar …
- Um ferro de solda
- Um Arduino (de preferência Nano)
- Alguns fios de ligação
- Um PC com o IDE Arduino e avrdude instalados
Etapa 3: a solução
Para que possamos atualizar o novo firmware no ATmega8, precisamos obter o controle de seu pino RESET. Normalmente, um jumper no USBasp pode ser fechado para permitir a autoprogramação, mas o fabricante da minha placa não incluiu um.
No ATmega8, o pino RESET é o pino 29, o quarto pino no topo da esquerda. Ele é conectado a um resistor pull-up de 10k a 5V. Temos que conectá-lo ao pino 5 do cabeçalho ICSP.
Poderíamos tentar soldar um fio diretamente no resistor ou no próprio pino, porém é tedioso e pode danificar sua placa. (Eu tentei e arranquei o resistor pull-up, não recomendo) Além disso, há uma maneira muito mais fácil!
Embora o fabricante não tenha incluído um jumper real para permitir a autoprogramação, ele colocou um cabeçalho embaixo do microcontrolador. Podemos simplesmente soldar um fio e …
Etapa 4: Voilà
Conectamos os dois pinos de reinicialização! Os dois orifícios na parte inferior conectam os pinos 29 e 14 do microcontrolador.
Etapa 5: Configurando o Arduino
Para atualizar o novo firmware para o programador, precisamos de outro programador, neste caso um Arduino com o esboço do ArduinoISP nele. Apenas para ter certeza de que sua configuração é a mesma, descomente a linha 81
// #define USE_OLD_STYLE_WIRING
Agora conecte o Arduino com o cabeçalho ICSP em seu programador.
Arduino USBasp
5V Pino 2 (VCC) GND Pino 4/6/8/10 (GND) Pino 10 Pino 5 (reiniciar) Pino 11 Pino 9 (MISO) Pino 12 Pino 1 (MOSI) Pino 13 Pino 7 (SCK)
O USBasp permanece desconectado do PC.
Abra um terminal e digite
avrdude -cavrisp -pm8 -b19200 -P [Seu número de porta vai aqui, deve ser o mesmo que no IDE do Arduino]
Se tudo correr bem, avrdude deverá imprimir algumas informações sobre o ATmega8 (fusíveis, assinatura, etc.)
Etapa 6: atualizando o ATmega8
Para fazer o flash do chip, ainda precisamos do firmware. Acesse fisch.de e baixe a versão mais recente. Extraia o arquivo e navegue até ele usando o shell.
Compilar o código não funcionou para mim, mas felizmente o arquivo contém todos os programas compilados em
bin / firmware
Aqui você deve ver três arquivos.hex. Escolha aquele com o mesmo nome do seu chip. Meu programador usa um ATmega8, então escolhi
usbasp.atmega8.yyyy-mm-dd.hex
Com uma conexão funcional para o ATmega8, piscar deve exigir apenas digitação
avrdude -cavrisp -pm8 -b19200 -P [PORTA] -U flash: w: [arquivo hex]
Se tudo foi feito corretamente, avrdude deve escrever e verificar o firmware selecionado.
Etapa 7: Certificar-se de que o programador funciona
Para usar o USBasp como um programador novamente, temos que remover a conexão entre os pinos 29 e 14. Cortar o jumper na parte inferior deve ser suficiente, mas removê-lo também não fará mal.
Você pode experimentar conectando-o de volta ao PC e digitando
avrdude -cusbasp -pm8
Mesmo que o avrdude não consiga atingir o alvo, ele deve pelo menos reconhecer o novo firmware do nosso programador.
Etapa 8: Solução de problemas
Caso avrdude mostre um erro como este, provavelmente tem algo a ver com o recurso de reinicialização automática do Arduino. Para contornar isso, adicione um capacitor entre RESET e GND do Arduino. Geralmente é recomendado usar um capacitor de 10µF, entretanto, no meu caso, um capacitor de 100µF funcionou bem.
Você deve obter um erro como
avrdude: erro: ativar o programa: o destino não atende. 1
ou uma assinatura inválida for retornada, verifique sua fiação. Tive um problema com meus cabos de alimentação enferrujando e não conduzindo mais eletricidade. Eu recomendo verificar todos os fios do jumper com antecedência.
Certifique-se também de alternar os pinos 11 e 12 no Arduino, se o problema persistir.
Certifique-se também de definir a taxa de transmissão correta para o Arduino como ISP, 19200. Ela pode ser definida com a opção
-b19200
Se você tiver alguma dúvida ou tiver detectado um erro, entre em contato comigo:)
Etapa 9: TL; DR
- Solde um fio entre os dois pinos na parte inferior da placa
- Configure um Arduino como ISP, certificando-se de habilitar o esquema de fiação antigo
- Conecte o Arduino ao programador através do cabeçalho ICSP
- Atualize o novo firmware para o programador
- Remova a conexão na parte inferior
- Não roube nenhum resistor SMD