Je veux utiliser les six broches d'E / S d'un ATtiny85, cela signifie également utiliser la broche de réinitialisation comme une broche d'E / S, mais j'ai découvert que si je désactive la broche RESET, je ne peux plus programmer l'ATtiny à l'aide d'un Programmeur FAI.
Cependant, j'ai découvert qu'il existe des chargeurs de démarrage pour ATtiny qui, à ma connaissance, me permettent de programmer l'ATtiny via USB, sans avoir besoin de la broche RESET.
Ma question est : comment graver un tel chargeur de démarrage (comme un micronoyau par exemple) sur l'ATtiny85? Et comment dois-je connecter ATtiny à USB après cela (comme ça? )? Comment puis-je le programmer après cela? Gardez à l'esprit qu'en termes de gravure de chargeurs de démarrage et de modification de fusibles, je suis un débutant complet.
En outre, j'utilise l'esquisse ArduinoISP comme programmeur ISP car je n'ai pas de vrai programmeur ISP, mais pour autant que je sache, ce ne sera pas un problème.
EDIT: J'ai cette chose que j'ai achetée pour quelques dollars sur eBay, que je ne sais pas comment et si je dois utiliser:
la source
Réponses:
Je viens de terminer mon Arduino-Plugin avec une intégration complète de TinySafeBoot (TSB) pour ATtiny84A, ATtiny85 et ATmega328P.
Le projet peut être trouvé ici:
https://mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html
Vous pouvez l'utiliser tel quel, puis utiliser la broche de réinitialisation comme entrée analogique. Ne surveillez que la tension pour ne jamais descendre en dessous
0.6 * VCC
.Comme alternative, vous pouvez modifier les fusibles
boards.txt
pour avoir cette broche disponible:Allez dans les Préférences Arduino et cliquez sur le lien vers
preferences.txt
(Mine:)/Users/stefan/Library/Arduino15/preferences.txt
. Dans ce dossier, accédez à/packages/atflash/hardware/avr/0.1.0
. Ouvrez leboards.txt
et allez à la sectionATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)
Changez la ligne
ATTSB85.bootloader.high_fuses=0xdf
en
ATTSB85.bootloader.high_fuses=0x5f
Redémarrez Arduino et gravez le chargeur de démarrage via le menu Arduino.
Si vous souhaitez même obtenir un autre code PIN de ATtiny85: vous pouvez changer le chargeur de démarrage pour utiliser un seul code PIN pour RX et TX (voir le site Web du BST). Mais pourquoi tout l'effort? Prenez simplement l'ATtiny84A. Il a 14 broches au lieu de 8 et coûte presque le même prix.
Stefan
la source
la source
Certes, si vous utilisez la broche de réinitialisation comme IO, vous avez besoin d'
un programmeur spécial qui, je crois, fournit une haute tension (12v si je me souviens bien) ou quelque chose comme çaappliquer une source 12v à cette broche pour la forcer en mode de programmation puis programmer en utilisant un programmeur normal (ou un autre Arduino). Cependant, ce que vous recherchez est quelque chose comme ce qui se fait dans l'Arduino. L'arduino est programmé avec un chargeur de démarrage spécial via ISP, donc lorsque vous alimentez le microcontrôleur, ce chargeur de démarrage s'exécutera en premier et pendant quelques millisecondes vérifiera les broches UART pour les activités et s'il voit quelque chose de valide, il passe en mode de programmation où il attend le nouveau code pour passer par UART (pas ISP) et l'écrire dans l'emplacement du programme, sinon le chargeur de démarrage remettra simplement l'exécution du code au programme existant le cas échéant.Voici une explication simple de son fonctionnement: disons que la taille de la mémoire flash de votre microcontrôleur est de 1 Ko, et que le chargeur de démarrage est de 100 B, de sorte que votre programme peut être stocké à l'emplacement 101B +, et que sa taille maximale est (1KB-100B). Ainsi, lorsque le chargeur de démarrage démarre et qu'il n'y a aucune activité sur les broches UART, il saute à l'emplacement de votre programme (à 101B) tandis que si une activité de programmation est détectée, il commence à lire le nouveau code et écrase le flash à partir de 101B (il a donc gagné '' t sur écrire lui-même).
Et vous aurez besoin de l'USBASP pour programmer le chargeur de démarrage pour la première fois. Et vous ne programmez pas l'ATtiny85 via USB car cette puce ne prend pas en charge l'USB, cependant, vous utilisez une puce / module USB vers série qui émule le protocole série sur l'USB. Certains microcontrôleurs atmel ont un support série intégré et d'autres peuvent être effectués par émulation logicielle.
la source
c'est infiniment mieux que votre arduinoisp.
google avrdude / avrdudess.
la source