Briquei o Meu BSFrance LoRa32u4 II

Após aprender e documentar sobre como usar um dispositivo USBasp para programar o bootloader e para carregar programas diretamente no chip AVR da Atmel (32u4 no meu caso), tudo funcionando bem até que resolvi seguir adiante no meu projeto LoRa. Para tal estou usando uma placa chamada BSFrance LoRa32u4 II, uma placa que tenho já usado e que é bastante conveniente por já incorporar o periférico de rádio para a conexões LoRa. No meu projeto atual eu preciso me livrar do bootloader pois no chip 34u4 ele toma 4Kb eu preciso deste espaço adicional. Por isso a necessidade de usar um programador externo como o USBasp. 

Meu próximo passo foi o de salvar o bootloader original que veio com ele, pois não sei se ele é padrão. E eu gostaria de ter um backup no caso de eu precisar restaurá-lo. Para tal usei o program AVRDUDESS, que nada mais é do que uma interface gráfica para o AVRDUDE. Li a memória algumas vezes estava fazendo uns testes quando do nada o chip parou de responder e passei a receber erros de comunicação, indicando que o identificador do chip não estava certo. A partir deste momento não mais consegui usar esta placa, seja através do USBasp, seja através do bootloader convencional / USB. Observando que até aquele momento eu não tinha efetuado nenhuma operação de escrita nesta placa usando o AVRDUDESS.

Fiquei intrigado com o que poderia ter causado esse problema, em particular porque esta plaquinha de desenvolvimento LoRa não é tão barata que eu possa ficar queimando. Resolvi investigar.

O que eu suspeito tenha acontecido é que o dispositivo USBasp que usei, o qual adquiri em uma loja de eletrônica em Londrina por algo como 50 reais. Trata-se de um dispositivo genérico e o meu em particular tem um modelo marcado como HW-437. Ele possui um jumper para selecionar a voltagem de 5v ou 3.3v. A placa BSFrance LoRa32u4 II é toda operada em 3.3v. Obviamente eu havia configurado o USBasp para a voltagem de 3.3v, e eu até verifiquei com um multímetro que esta era a voltagem de fato repassada para a minha placa.  Esta é a plaquinha em questão:

O que eu acredito ter acontecido é que esse programador, apesar de permitir controle da voltagem que é repassada para o chip que está sendo programado, continua entregando sinais de lógica nos pinos SPI ao nível de 5v. Isso é um problema com o design dessa placa e eu diria que basicamente a torna inaceitável para programar qualquer coisa que esteja rodando a 3.3V. Até pode funcionar por um tempo, mas eventualmente isso pode causar problemas sim. Lição aprendida! Agora irei sempre checar os níveis de tensão tanto de alimentação quanto de lógica antes de confiar num dispositivo de origem desconhecida.

Mas tudo bem, tenho outra placa BSFrance LoRa32u4 II e tenho também outro USBasp de melhor qualidade e que DE FATO entrega não apenas uma voltagem de alimentação a 3.3V, mas também sinais de dados a 3.3V. Segue uma foto para referencia. Este dispositivo eu ganhei de um santo amigo fazem alguns anos.

Eu coloquei uma etiqueta indicado a voltagem de cada um deles para não me confundir no futuro e fritar minhas plaquinhas acidentalmente.

Você usa algum programador USBasp? E em que você normalmente o usa mais? Participe da discussão neste canal do Reddit:

Post: Briquei o Meu BSFrance LoRa32u4 II
by u/jjo458 in arduando_com_br_389