Stap 2: RESET om één meer I/O pin uitschakelen
De ATtiny13 heeft slechts 8 pinnen, waarvan 2 zijn nodig om de macht en waarvan 1 is normaal gesproken gereserveerd voor reset. Met drie analoge inputs en drie PWM outputs, dit maakt gebruik van elke mogelijke pin, en vereist de resetpin uit te schakelen.
In zekere zin lijkt wijdt een microcontroller-pin voor reset verspilling. Hoe vaak moet een apparaat daadwerkelijk worden gereset in tegenstelling tot gewoon even snijden de macht? Met 40 of meer pinnen op de meeste microprocessoren, waarom niet eens een dedicated resetpin? Maar met slechts zes, geeft dat meer dan 15% van de mogelijkheden van uw gegevens. Natuurlijk, ik kon gewoon trede tot aan naar de volgende grotere chip - de 14-pins ATtiny24 serie is immers slechts een paar cent meer dan de 8-pins-serie, de 20-pin slechts een paar cent meer dan dat, en het 28-pins ATmegas alleen iets meer. Dan weer, met behulp van alle zes pinnen op een 8-pins chip lijkt meer elegante, en het leek me een leuke bonus uitdaging.
De uitdaging is dat In-systeem programmering (ISP) een reset vereist naar de chip onderbreken en zet het in programmeermodus te activeren. Maar wanneer wij de resetpin Ontredderen (d.w.z. zetten in een gewone I/O pin door clearing bit 0 van de hoge zekering), dan hoe zullen wij opnieuw programmeren de chip als er wijzigingen nodig zijn? Één gemakkelijke optie: niet --het programma gelijk de eerste keer, en moet u opnieuw het programma, krijgen een andere chip - ze zijn goedkoper dan een Snickers bar. Maar de meer interessante manier is het gebruik van hoog-voltage-programming.
Dat klinkt koeler en meer exotisch dan het is. AVR chips draaien op 1.8-5.5 volt, maar als u 12 volt op de resetpin toepast, in plaats van wordt gebakken, de chip zal ingaan in een speciale programmeermodus zelfs als de resetpin is "uitgeschakeld" een regelmatige I/O pin. Een ISP-programmeur, zoals Adafruit van USBtinyISP, is aangesloten op de 5v USB-poort van uw computer en kan niet het genereren van de 12 volt, maar ATmel maakt verschillende programmeurs dat kan.
Of voor een leuke DIY optie, er zijn verschillende manieren om te bouwen van een hoog-voltage-programmeur, of op zijn minst een hoogspannings-fuse resetter die een AVR kunt terugkeren naar de standaardstatus van het hebben van een normale resetpin zodat u vervolgens uw ISP kunt. Mnedix heeft een geweldige instructable voor dit te doen, hoewel ik dit een Arduino gebaseerde door Paul Willoughby gebruikt. Ik had een Sparkfun Arduino-kloon dat ik nooit gebruikt, dus in slechts een paar minuten ik verslaafd aan mijn voeding- en was in staat om te "herstellen" AVR's die had hun zekeringen opgesloten in niet-ISP vriendelijke configuraties.