Quero usar todos os seis pinos de E / S de um ATtiny85, o que significa também usar o pino de redefinição como um pino de E / S; no entanto, descobri que se eu desativar o pino RESET, não posso mais programar o ATtiny usando um Programador ISP.
No entanto, descobri que existem gerenciadores de inicialização para o ATtiny que, até onde eu entendi, me permitem programar o ATtiny por USB, sem a necessidade do pino RESET.
Minha pergunta é : Como gravar um gerenciador de inicialização (como micronúcleos, por exemplo) no ATtiny85? E como eu preciso conectar o ATtiny ao USB depois disso (assim ? )? Como programo depois disso? Lembre-se de que, em termos de queima de bootloaders e modificação de fusíveis, eu sou um novato completo.
Além disso, estou usando o esboço do ArduinoISP como meu programador de ISP, já que não tenho um programador de ISP real, mas, tanto quanto li, isso não será um problema.
EDIT: Eu tenho essa coisa que comprei por alguns dólares no eBay, que não sei como e se preciso usar:
fonte
Respostas:
Acabei de finalizar o meu Arduino-Plugin com a integração total do TinySafeBoot (TSB) para ATtiny84A, ATtiny85 e ATmega328P.
O projeto pode ser encontrado aqui:
https://mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html
Você pode usá-lo como está agora e, em seguida, usar o Reset Pin como entrada analógica. Observe apenas se a tensão nunca fica abaixo
0.6 * VCC
.Como alternativa, você pode modificar os fusíveis
boards.txt
para ter este pino disponível:Vá para Preferências do Arduino e clique no link para
preferences.txt
(Mina:)/Users/stefan/Library/Arduino15/preferences.txt
. Nesta pasta, navegue para/packages/atflash/hardware/avr/0.1.0
. Abra oboards.txt
e vá para a seçãoATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)
Mude a linha
ATTSB85.bootloader.high_fuses=0xdf
para
ATTSB85.bootloader.high_fuses=0x5f
Reinicie o Arduino e grave o gerenciador de inicialização através do menu Arduino.
Se você ainda deseja obter outro Pin do ATtiny85: pode alterar o gerenciador de inicialização para usar apenas um Pin para RX e TX (consulte o site do TSB). Mas por que todo esse esforço? Basta pegar o ATtiny84A. Tem 14 pinos em vez de 8 e custa quase o mesmo.
Stefan
fonte
fonte
É verdade que, se você usar o pino de redefinição como E / S, precisará de
um programador especial que, acredito, forneça alta tensão (12v, se bem me lembro) ou algo assimPara aplicar uma fonte de 12V a esse pino para forçá-lo ao modo de programação, programe usando um programador normal (ou outro arduino). No entanto, o que você está procurando é algo como o que está sendo feito no Arduino. O arduino é programado com um gerenciador de inicialização especial por meio do ISP; portanto, quando você liga o microcontrolador, o gerenciador de inicialização executa primeiro e, por alguns milissegundos, verifica os pinos do UART em busca de atividades e, se vê algo válido, muda para o modo de programação, aguardando o novo código. para acessar o UART (não o ISP) e gravá-lo no local do programa; caso contrário, o carregador de inicialização simplesmente entregará a execução do código ao programa existente, se houver.Aqui está uma explicação simples de como funciona: Digamos que o tamanho do flash do seu microcontrolador seja 1 KB e o carregador de inicialização seja 100B, para que seu programa possa ser armazenado no local 101B + e seu tamanho máximo seja (1KB-100B). Portanto, quando o carregador de inicialização é iniciado e não há atividade nos pinos do UART, ele pula para o local do seu programa (em 101B), enquanto se for detectada atividade de programação, ele começa a ler o novo código e substitui o flash a partir de 101B (para que ele ganhe ' escrever sobre si mesmo).
E você precisará do USBASP para programar o gerenciador de inicialização pela primeira vez. E você não programa o ATtiny85 através de USB, pois esse chip não suporta USB; no entanto, você usa um USB para chip / módulo serial que emula o protocolo serial através do USB. Alguns microcontroladores atmel possuem suporte serial embutido e outros podem ser feitos através da emulação de software.
fonte
é infinitamente melhor que o seu arduinoisp.
google avrdude / avrdudess.
fonte