Vamos começar a examinar esta placa usando um recurso que eu já conheço - a programação padrão SPI. Embora o conector seja diferente do habitual, basta fazer um cabo adequado para usar os nossos velhos conhecidos USBtinyISP e avrdude.
Não existe muito segredo para montar o cabo, já que a pinagem está indicada na própria placa. Por sorte, encontrei um conector apropriado no meio de peças de uma impressora sucateada.
Feito o cabo, vamos ligar ao USBtinyISP e executar o nosso teste básico de funcionamento com o avrdude:
Reparar que o avrdude apresenta uma mensagem a mais, informando o conteúdo dos últimos quatro bytes da EEProm, que podem ser usados como um contador de apagamentos da Flash. Já veremos de onde veio este valor absurdo.
Ok, a comunicação funciona. O que podemos fazer de útil? Vamos dar uma olhada nos fuses:
As opções -q colocam o avrdude no modo "quiet", suprimindo mensagens de acompanhamento. Os valores obtidos podem ser decodificados aqui ou aqui. As programações de HFUSE e LFUSE não trazem grande surpresa. Já o LOCK... O ATmega da placa vem protegido contra a leitura da Flash e EEProm. Isto explica o valor absurdo apresentado no contador de apagamentos e o resultado estranho que se obtém ao ler a Flash através do avrdude.
A única forma de se liberar a leitura é fazendo o apagamento total da Flash. Consequentemente, se perde o bootloader. Já fiz isto com uma das minhas placas e gerei um novo bootloader a partir do projeto original.Futuramente eu descreverei isto e colocarei o bootloader nos arquivos do blog.
Nenhum comentário:
Postar um comentário