Miniatuur USB-programmeur voor AVR-microcontrollers. Miniatuur USB-programmeur voor AVR-microcontrollers Communicatie met ATtiny13A-controller in SOIC8-pakket

Een klein programma gemaakt met als doel het snel flashen van Atmel AVR-microcontrollers.

De Khazama AVR Programmer-applicatie heeft een eenvoudige en handige minimalistische vensterinterface. Deze programmeur is een grafische shell voor het avrdude-programma en is perfect voor beginnende ontwikkelaars. Momenteel ondersteunt Khazama AVR Programmer ongeveer tachtig modellen AVR-microcontrollers die behoren tot de ATmega-, ATxmega-, ATtiny- en AT90-families. De programmeur heeft een minimaal aantal functies, maar onderscheidt zich door zijn snelheid en stabiliteit. Met de software kunt u: opgeslagen hex-bestanden met firmware voor EEPROM en FLASH-geheugen in de buffer laden, hex-bestanden naar EEPROM en FLASH-geheugen van de microcontroller schrijven, de inhoud van EEPROM en FLASH-geheugen van de chip bekijken, het geheugen van de controller wissen, verander de configuratie van FUSE- en LOCK-bits, voer verificatie-EEPROM en FLASH-geheugen uit. Alle bewerkingen kunnen worden uitgevoerd via het menu of via knoppen op de werkbalk, waarvan het uiterlijk wordt gekopieerd van soortgelijke knoppen in de software.

Naast andere functies van het Khazama AVR Programmer-programma is het vermeldenswaard: de aanwezigheid van contextuele hints en sneltoetsen, de mogelijkheid om deze applicatie bovenop alle andere vensters te installeren, de aanwezigheid van een viewer van EEPROM- en FLASH hex-bestanden (zonder bewerken), visualisatie en decodering van de waarden van configuratiebits van de microcontroller. De aanpasbare “AutoProgram”-knop start een reeks bewerkingen die zijn gespecificeerd in het venster “Program Options” (de standaardinstelling is het wissen van de chip en het schrijven naar FLASH-geheugen). Khazama AVR Programmer werkt met , TPI-programmering wordt ondersteund. De programmeerklokfrequentie via de ISP-interface ligt in het bereik van 500 Hz tot 1,5 MHz.

De procedure voor het programmeren van FUSE-bits vereist geen gedoe met hexadecimale waarden en bestaat uit het selecteren van de benodigde parameters uit vervolgkeuzelijsten, waardoor de kans kleiner wordt dat microcontrollers per ongeluk worden vergrendeld. FUSE-bits kunnen ook worden gewijzigd door de vakjes in het onderste veld aan te vinken. Tegelijkertijd kun je geen vakjes aanvinken voor niet-bestaande configuraties, wat ook een pluspunt is qua beveiliging. In het programmeervenster FUSE-bits zijn er functies: zekeringen naar het geheugen van de controller schrijven, de huidige configuratie opslaan in een buffer, een opgeslagen configuratie oproepen vanuit een buffer, de standaard FUSE-bits-configuratie herstellen, dat wil zeggen degene waarmee de microcontroller werd geleverd uit de fabriek. De Khazama AVR Programmer-applicatie werkt met *.hex-geheugendumpbestanden.

De applicatie is geschreven door een Arabische programmeur genaamd Behzad Khazama (Iran, provincie Razavi Khorasan, stad Sebzevar). De nieuwste versie van deze programmeur is medio 2011 uitgebracht.

Het programma wordt alleen in het Engels gepresenteerd en heeft geen Russische vertaling.

Khazama AVR Programmer-software wordt ondersteund door besturingssystemen uit de Microsoft Windows-familie – XP, Vista, 7, 8 (32- en 64-bit).

Programmadistributie: vrij

Voor het programmeren van AVR-microcontrollers is een programmeur vereist. De eenvoudigste manier is om een ​​programmeur voor COM of LPT te maken. Maar ik werk op een laptop en nu zijn er alleen USB-poorten in geïnstalleerd. Het is dus tijd om een ​​programmeur voor AVR via USB aan te schaffen. Nu zou ik deze programmeur hoogstwaarschijnlijk kopen. Op eBay zijn ze goedkoop, waarschijnlijk zelfs goedkoper dan onderdelen kopen, een printplaat maken en alles aan elkaar solderen. Hoewel, als je van de andere kant kijkt, het minstens een maand duurt voordat een bestelling van eBay per post arriveert, en je door zijn eenvoud in een avond een avr usb-programmeur met je eigen handen in elkaar kunt zetten. Bovendien, als een beginnende radioamateur zelf een programmeur samenstelt, zal hij naast de programmeur ervaring opdoen, ervaring van onschatbare waarde, en dit is veel waard.
Dit is mijn tweede USB-programmeerapparaat voor AVR, de eerste die ik maakte was een USB-asp-programmeerapparaat, maar ik vond het niet echt leuk, omdat het soms van mijn computer viel, hoewel zoiets niet op een andere computer werd waargenomen. Ik besloot te proberen een andere programmeur te bouwen, en mijn keuze viel op de AVR910-programmeur. Deze programmeur heeft een iets ander USB-aansluitschema, en zoals later bleek, werkt alles heel goed op mijn computer. Ik vergat de problemen die ik had met mijn vorige programmeur. De in dit artikel beschreven AVR910-programmeur is momenteel mijn belangrijkste AVR-programmeur.
Het circuit en de firmware zijn gebruikt van de projectwebsite (http://protoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm).


De programmeur wordt gevoed via de USB-poort. Om geen coördinatie met de niveaus van de datalijnen van de USB-poort (3,6 V) nodig te hebben, is de voeding van de microcontroller 3,6 V. Om 3,6 V uit 5 V in een USB-poort te verkrijgen, wordt een circuit van twee direct verbonden siliciumdiodes in serie gebruikt. Elke diode daalt 0,7 V en het totaal is 1,4 V. De diodes moeten van silicium zijn; het gebruik van Schottky-diodes is niet toegestaan, aangezien deze minder dan 0,7V vallen. De uitgangen van de programmeerconnector zijn aangesloten via weerstanden van 330 Ohm om de niveaus aan te passen. Het apparaat werkt op een AtMega8-16-microcontroller met een klokfrequentie van 12 MHz. Het diagram toont de pinnummers voor de microcontroller in een DIP-pakket, hoewel ik het bord heb gerouteerd voor een SMD-pakket, dat TQFP wordt genoemd. De programmeur heeft een indicatie van schrijf-, lees- en stroombeschikbaarheid. Ook heeft deze programmeur een uitgang die altijd een blokgolf heeft met een frequentie van 1 MHz. Dit is een heel cool en handig iets voor het herstellen van microcontrollers waarvan de kloksnelheid is geconfigureerd vanaf een externe klokbron vanwege foutief geprogrammeerde Fuse-bits. Ik heb op deze manier al meerdere keren microcontrollers hersteld. U hoeft alleen maar in de datasheet te zoeken naar een specifieke AVR-microprocessor, op welke pin de externe kloksignaalbron is aangesloten, en de blokgolfbron op deze pin te solderen. Sluit de programmeur aan en herprogrammeer de zekering. Het is heel simpel, maar soms helpt het enorm!
De beschikbare opties voor het implementeren van printplaten voor de AVR910-programmeur pasten niet helemaal bij mij, en ik heb mijn versie getraceerd (je kunt de projectbestanden downloaden aan het einde van het artikel).


Het beschermende patroon wordt met behulp van een laserprinter en een strijkijzer op het glasvezelfolielaminaat aangebracht.


Na het etsen was het resultaat deze schoonheid. Ik kon mezelf niet inhouden en krabde de toner op de sporen tussen de poten van de microschakeling. Ik kon niet wachten om te controleren of ze werkten of niet.




Voor gebruiksgemak heb ik het doel van elke pin van de AVR910-programmeur gemarkeerd. Om dit te doen, tekende ik een klein bordje, dat ik op glanzend fotopapier afdrukte en met dubbelzijdig plakband op het programmeerbord plakte.

Ik heb een groepsblanco geplaatst voor een bord dat moet worden afgedrukt op fotopapier van 10x15 in het archief met alle bestanden voor dit bericht. U kunt deze aan het einde van dit artikel downloaden.
De firmware voor de programmeur kan worden gedownload via de link aan het einde van het artikel.
Zekeringbits worden ingesteld volgens onderstaande afbeelding:


Hoe je de AtMega8-microcontroller voor de AVR910-programmeur programmeert, kun je zien in mijn video:

Ik kon geen behuizing vinden voor de AVR910-programmeur; ik wilde dat de programmer klein bleef en in eerste instantie gebruikte ik een kaal bord dat op geen enkele manier geïsoleerd was. Maar toen kocht ik brede transparante krimpkous en plaatste de programmeur erin. Op de foto kun je zien wat het eindresultaat is. Ik vind het best interessant en zelfs schattig.




Met krimpkous lijkt alles eenvoudig, maar ik had moeite met het maken van de gaten voor de pinnen. Als je de gaten met een priem doorboort, breekt tijdens het krimpen de krimpkous vanaf deze gaten. Ik heb zelfs verschillende blanco's verpest, maar aan het einde van de experimenten kwam alles goed. Het resultaat was dat ik de gaten niet doorboorde, maar ze smolt met een hete soldeerbout met een naaldpunt. Langs de randen van het bord heb ik de uiteinden van de krimpkous gesoldeerd. Ze worden heel eenvoudig gesoldeerd - beide uiteinden van de buis worden verwarmd en vervolgens snel, voordat ze tijd hebben om af te koelen, vastgeklemd en vastgeklemd gehouden totdat ze volledig zijn afgekoeld. Het resultaat is een vrij sterke kruising. Ik heb hem vastgeklemd met een medische klem; de krimpkous liet zelfs sporen van inkepingen achter op zijn kaken.
Wanneer u de AVR910-programmeur voor de eerste keer op uw computer aansluit, verschijnt er een nieuw AVR910-apparaat in het systeem. Nu moet u de stuurprogramma's installeren en kunt u werken.
Ik heb met deze programmeur gewerkt op 32-bits Windows XP- en Windows 7-systemen. Alles werkt erg goed en er doen zich geen problemen voor. Er deden zich problemen voor toen ik probeerde stuurprogramma's voor 64-bit Windows 7 te installeren. Feit is dat dit stuurprogramma geen digitale handtekening van Microsoft heeft en dat 64-bit Windows 7, omdat het veiliger is, alle stuurprogramma's zonder digitale handtekening blokkeert. Deze blokkering kan worden uitgeschakeld, maar is niet geheel eenvoudig..... Houd daar dus rekening mee.
Ik upload de firmware naar de microcontroller met behulp van het AvrOsp2-programma. Het is heel eenvoudig, vereist geen installatie, is gratis, ondersteunt de AVR910-programmeur en een groot aantal AVR-microcontrollers, werkt goed en heeft een zeer handig menu voor het werken met FUSE-bits. Over het algemeen een cool programma, ik vind het erg leuk, ik raad het aan! In de onderstaande video liet ik het proces zien van het installeren van stuurprogramma's voor de AVR910, hoe je het AvrOsp2-programma configureert en gebruikt.

In mijn versie van de programmeur heb ik geen elektrolytische condensator met een uitgangsvermogen van 22 uF geïnstalleerd, die aan de kant tegenover de sporen is geïnstalleerd en in de gaten in de buurt van de USB-connector is gesoldeerd. Het kan nodig zijn om een ​​extra elektrolytische condensator met een capaciteit van 10-50 µF parallel aan de gesoldeerde keramische condensator van 0,1 µF te installeren, vlakbij de groene PWR-LED. Op de onderstaande afbeelding zijn de aansluitlocaties met de hand weergegeven.

Om de programmeur te kunnen bedienen, hebt u een microcontroller nodig die tot 16 MHz kan werken. AVR AtMega8 is verkrijgbaar in twee series die werken tot 8 MHz (L-serie), deze zijn voor ons niet geschikt, aangezien het project op 12 MHz kwarts draait. Er is ook een reguliere versie, die operationeel is tot een frequentie van 16 MHz. Dat is wat we nodig hebben. Hieronder staat een stukje van de AVR AtMega8-datasheet, waarin de versies van microcontrollers die niet in deze programmeur zullen werken zijn doorgestreept, en de versies van microcontrollers die in dit project wel zullen werken zijn gemarkeerd met een groen kader.

Khazama AVR Programmer is een grafische shell voor het avrdude consoleprogramma, ontwikkeld door een Arabische programmeur, ondersteund door Windows XP/Vista/7-systemen. Het programma is ontworpen voor het flashen van Atmel-microcontrollers van de AT90/ATtiny/ATmega/ATXmega-familie.

Khazama kan programmacode lezen en schrijven, geheugen wissen en FUSE-bits programmeren, het heeft ook een automatische programmeerfunctie en past de programmeerklokfrequentie aan. Het programma ondersteunt het werken met de programmeur.

Installatie en firmware

Start het programma

Om het programma te configureren, ga naar Commando -> Programmaopties

Hier zijn de programma-instellingen, waarvan de overgrote meerderheid instellingen zijn Automatisch programma(automatische programmering) rood gemarkeerd in de lijst. Met behulp van de automatische programmeerfunctie worden handelingen zoals lezen, wissen, schrijven en controleren automatisch achter elkaar uitgevoerd, wat erg handig is. Druk gewoon op een knop Automatisch programma en alle items die in de programma-instellingen zijn gecontroleerd, worden voltooid.

1. Plaats het programmavenster bovenop andere vensters
2. Laad het laatste gesloten bestand in de programmabuffer
3. Lees het FLASH-geheugen van de microcontroller in de programmabuffer
4. Lees het EEPROM-geheugen van de microcontroller in de programmabuffer
5. Wis het geheugen van de microcontroller
6. Schrijf de firmware naar het FLASH-geheugen van de microcontroller
7. Schrijf de firmware naar het EEPROM-geheugen van de microcontroller
8. Controleer na de opname de FLASH-bytes van het geheugen van de microcontroller
9. Controleer na de opname de EEPROM-bytes van het geheugen van de microcontroller
10. Schrijf Fuse-bits naar de microcontroller
11. Controleer de juiste keuze van het microcontrollermodel
12. Instellen van de programmeerklokfrequentie

Selecteer de microcontroller via de vervolgkeuzelijst

of via het menu Bestand -> AVR -> ...


Het firmwarebestand in het programma laden Bestand -> FLASH-bestand naar buffer laden, specificeer het bestand en klik Open

Laten we eens kijken wat een ISP-interface is en kijken naar een goedkope en handige USB ISP-programmeur. Laten we eens kijken naar de schematische diagrammen van de eenvoudigste programmeurs voor AVR-microcontrollers die COM- en LPT-poorten op een computer gebruiken. Deze informatie is voldoende om de meeste modellen AVR-microcontrollers te flashen, niet alleen in Linux, maar ook in andere besturingssystemen.

ISP-programmeerinterface in het systeem

Om een ​​programma naar de AVR-microcontroller te schrijven, heeft u een programmeur nodig.

Programmeur is een klein elektronisch circuit waarmee u een microcontroller op een van de computerpoorten (COM, LPT, USB) kunt aansluiten om vervolgens de firmware te lezen en te schrijven (programmeren).

Er zijn nogal wat verschillende ontwerpen van programmeurs voor AVR-microcontrollers die verbinding maken met verschillende computerpoorten.

De meest betrouwbare en handige optie is een programmeur die wordt aangesloten op een USB-poort, aangezien COM- en LPT-poorten niet langer zijn geïnstalleerd in nieuwe desktopcomputers en laptops.

Bij voltooide apparaten is de programmeur via een interface met de microcontroller verbonden ISP(In systeemprogrammering) - programmeerinterface in het systeem. De ISP-interface bestaat uit verschillende geleiders waardoor een kloksignaal en gegevens worden ontvangen om de programmeur met de microcontroller te verbinden.

In de regel wordt de ISP-interface op borden geplaatst in de vorm van tien of zes pinnen, waarop de programmeur via een geschikte connector via een kabel is aangesloten.

Rijst. 4. ISP-interface op het bord.

Doel van pinnen in de ISP-interface:

  1. VCC - voeding plus, meestal +5V;
  2. GND - vermogen min, aarde (aarde);
  3. MOSI - gegevensinvoer (Master Out Slave In);
  4. MISO - gegevensuitvoer (Master In Slave Out);
  5. SCK - kloksignaal (seriële klok);
  6. RST - om een ​​resetsignaal te geven.

Voor in-circuit programmering van de microcontroller zijn slechts 4 pinnen voldoende, omdat de microcontroller kan worden gevoed vanuit het circuit zelf waar deze is geïnstalleerd.

Hoe sluit ik de programmeur aan op de AVR-microcontrollerchip als deze niet in het circuit is gesoldeerd? - heel eenvoudig, gebruik indien nodig dezelfde pinnen van de ISP-interface en voed de microcontroller vanaf de stroombron.

USB ISP ASP-programmeur

Om met AVR-chips te werken, kocht ik een goedkope USB ISP-programmeur voor ongeveer $ 10. Zo'n apparaat is nu te koop in veel binnenlandse en buitenlandse online winkels, dus er mogen geen problemen zijn met de aankoop.

Rijst. 5. USB ISP - programmeur met kabel voor in-circuit programmering van AVR-microcontrollers van ATMEL.

Deze programmeur is veilig in gebruik, klein van formaat en wordt ondersteund door de meeste programma's voor knipperende AVR-microcontrollers. USB ISP werkt op Linux-, Mac OS X- en Windows-besturingssystemen. Voor Linux hoeft u geen stuurprogramma's te installeren; nadat u de programmer op de USB-poort heeft aangesloten, wordt het apparaat onmiddellijk gedetecteerd en klaar voor gebruik.

Hieronder geef ik de pin-out van de connectoren van de USB ISP-programmeur - dit zal later van pas komen bij het aansluiten op de microcontroller.

Rijst. 6. Locatie van de pinnen op de USB ISP-connector (pin-out).

Rijst. 7. Locatie van de contacten in de connectoraansluitingen die zijn aangesloten op de USB ISP-programmeur.

Wat moet u doen als u geen USB ISP-programmeur kunt kopen?- microcontrollers kun je programmeren met eenvoudige zelfgemaakte programmeurs die aansluiten op een COM- of LPT-poort, maar het is beter om zelf een USB ISP te maken en daar een keer de microcontrollerchip voor te programmeren met een eenvoudige zelfgemaakte programmeur via een COM- of LPT-poort.

Rijst. 8. Schematisch diagram van een zelfgemaakte USB ASP ISP-programmeur.

Gedetailleerde informatie over de productie van USB ASP, evenals printplaten, stuurprogramma's en firmware voor de microcontroller zijn te vinden op de officiële website: http://www.fischl.de/usbasp/

Bovendien zijn er op internet behoorlijk wat bronnen over deze gratis programmeur te vinden, er zijn veel kant-en-klare printplaatlay-outs, ook in het SprintLayout-programma, dus we zullen hier in dit artikel niet in detail op ingaan.

Programmeur die COM-poort gebruikt

Deze programmeur wordt ook wel de "Gromov-programmeur" genoemd, ter ere van degene die dit schema heeft bedacht, de maker van het Algorithm Builder-programma (een grafische omgeving voor het programmeren van AVR onder Windows met behulp van een algoritmische taal) - G.L. Gromova.

Met deze programmeur kunt u AVR-chips programmeren via de COM-poort van de computer - RS232-interface. Om zo'n programmeur in elkaar te zetten, heb je een minimum aan onderdelen nodig: 3 diodes, 7 weerstanden, een DB-9- of DB-25-connector (afhankelijk van welke bijpassende connector op je computer is geïnstalleerd) en een ISP-connector voor aansluiting op de microcontroller (of slechts een paar geleiders om te chippen). In het circuit kunnen alle laagvermogendiodes worden gebruikt.

Rijst. 9. Schematisch diagram van de AVR-microcontrollerprogrammeur via een COM-poort van een computer.

Voor de volledigheid van de informatie geef ik hieronder de pin-out van de RS-232-poorten voor de DB-9- en DB-25-opties.

Rijst. 10. RS232 - COM-poort, DB-9-pins lay-out.

Rijst. 11. RS232 COM-poort DB-25 - locatie van pinnen op connectoren.

Programmeur die gebruik maakt van de LPT-poort

Zoals we weten is de LPT-poort van een computer ontworpen om een ​​lokale printer (Local Printer Port) aan te sluiten, maar wordt deze toch vaak gebruikt om verschillende apparaten en zelfgemaakte producten aan te sluiten. In dit geval kunnen we het gebruiken om AVR-microcontrollers te programmeren door hiervoor een heel eenvoudig circuit samen te stellen, dat hieronder wordt weergegeven.

Rijst. 12. Schematisch diagram van een programmeur voor AVR-microcontrollers die de LPT-poort van een computer gebruikt.

Zoals je kunt zien is de schakeling nog eenvoudiger dan in de versie met, hier hebben we slechts 4 weerstanden met laag vermogen nodig en een connector (mannelijk, met pinnen) voor aansluiting op de LPT-poort van de computer.

Rijst. 13. Locatie van pinnen voor LPT-poortconnectoren.

Alle onderdelen en aansluitingen kunnen in de LPT-connectorbehuizing worden geplaatst en voor aansluiting op de microcontroller kan een kabel met een connector voor de ISP-interface of eenvoudigweg de benodigde geleiders voor aansluiting op de microchip worden gehaald.

Software en opmerkingen

Nadat u de COM- of LPT-programmeur op de microcontroller hebt aangesloten, moet u er rekening mee houden dat u de microchip zelf van stroom voorziet. Als stroombron voor de microcontroller kun je batterijen of een voeding met stabilisator gebruiken; dit is het veiligst voor zowel de computerpoort als de chip. We hebben al besproken hoe we het kunnen gebruiken.

Onder Linux is er een zeer krachtig programma dat kan werken met USB ASP-, COM- en LPT-programmeurs: dit programma AVRDUDE, het zal in de volgende paragrafen worden besproken.

Om AVR-chips onder Windows te flashen met behulp van gegevens van COM- en LPT-programmeurs, hebt u het UniProf-programma van Nikolaev nodig, een universele programmeur voor AVR (avr.nikolaew.org).

AANDACHT! Wees uiterst voorzichtig en voorzichtig bij het samenstellen en gebruiken van programmeurs die de COM- of LPT-poort van een computer gebruiken, een simpele fout kan gemakkelijk zijn stak deze havens in brand. Voor normaal gebruik van dergelijke programmeurs moet u proberen de kortst mogelijke geleiders te gebruiken vanaf de connector naar het programmeercircuit en de microcontroller. Het is raadzaam dat de microprocessor van de computer een frequentie heeft van niet meer dan 1-2 GHz, en het is raadzaam om Win2000 of WinXP als besturingssysteem te gebruiken voor het programmeren van de chips.

Het is ook belangrijk om te weten dat USB-RS232-adapters (USB-COM-poort) hoogstwaarschijnlijk niet zullen werken met de programmeur van Gromov; alleen die met nieuwere chips zullen werken, dus het is beter om te zoeken naar een machine met een native COM-poort.

Conclusie

De programmeurs die in het artikel worden besproken, zijn slechts enkele van de meest betaalbare en eenvoudige oplossingen uit een grote lijst van AVR-programmeurs: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, FTDI-programmeurs en anderen.

Nu kunt u in ieder geval een programmeur samenstellen die voor u beschikbaar is en ten minste één chip flashen, op basis waarvan u een andere, handiger programmeur of een ander apparaat kunt samenstellen.

In het volgende artikel zullen we uitzoeken hoe we verschillende modellen AVR-microcontrollers op de programmeur kunnen aansluiten, en ontdekken waar we informatie kunnen krijgen over de pin-out van microcontrollers.

Net zoals een theater begint met een hanger, zo begint het programmeren van microcontrollers met het kiezen van een goede programmeur. Sinds ik de microcontrollers van ATMEL onder de knie begin te krijgen, moest ik mezelf grondig vertrouwd maken met wat de fabrikanten te bieden hebben. Ze bieden veel interessante en smakelijke dingen, alleen tegen exorbitante prijzen. Een sjaal met een twintigpotige microcontroller met een paar weerstanden en diodes als harnas kost bijvoorbeeld net zoveel als een 'vliegtuig'. Daarom ontstond de kwestie van zelfassemblage van de programmeur. Na een lange studie van de ontwikkelingen van ervaren radioamateurs werd besloten een beproefde USBASP-programmeur samen te stellen, waarvan het brein de Atmega8-microcontroller is (er zijn ook firmware-opties voor atmega88 en atmega48). Door de minimale bedrading van de microcontroller kun je een vrij miniatuurprogrammeur samenstellen die je altijd mee kunt nemen, zoals een flashdrive.

De auteur van deze programmeur is de Duitser Thomas Fichl, zijn ontwikkelpagina met diagrammen, printplaatbestanden en stuurprogramma's.
Toen besloten was om een ​​miniatuurprogrammeur samen te stellen, heb ik het circuit voor de Atmega8-microcontroller in het TQFP32-pakket opnieuw getekend (de pin-out van de microcontroller verschilt van de pin-out in het DIP-pakket):

Jumper J1 wordt gebruikt als het nodig is om een ​​microcontroller te flashen met een klokfrequentie lager dan 1,5 MHz. Overigens kan deze springer helemaal worden geëlimineerd door de 25e etappe van de MK op de grond te plaatsen. Dan zal de programmeur altijd op een lagere frequentie werken. Persoonlijk merkte ik dat programmeren op lagere snelheid een fractie van een seconde langer duurt, en daarom trek ik nu niet aan de trui, maar naai er constant mee.
Zenerdiodes D1 en D2 worden gebruikt om de niveaus tussen de programmeur en de USB-bus op elkaar af te stemmen; het werkt zonder deze, maar niet op alle computers.
De blauwe LED geeft aan dat de schakeling gereed is om geprogrammeerd te worden; de rode LED brandt tijdens het programmeren. De programmeercontacten bevinden zich op de IDC-06-connector, de pinout voldoet aan de ATMEL-standaard voor een 6-pins ISP-connector:

Deze connector bevat contacten voor het voeden van programmeerbare apparaten; hier wordt deze rechtstreeks van de USB-poort van de computer gehaald, dus u moet voorzichtig zijn en kortsluiting vermijden. Dezelfde connector wordt ook gebruikt voor het programmeren van de besturingsmicrocontroller; hiervoor hoeft u alleen maar de Reset-pinnen op de connector en op de microcontroller aan te sluiten (zie de rode stippellijn in het diagram). In het circuit van de auteur gebeurt dit met een jumper, maar ik heb het bord niet rommelig gemaakt en verwijderd. Voor een enkele firmware is een eenvoudige draadjumper voldoende. Het bord bleek dubbelzijdig te zijn, met een afmeting van 45x18 mm.

De programmeerconnector en een jumper om de snelheid van de programmeur te verminderen bevinden zich aan het uiteinde van het apparaat, dit is erg handig

Firmware van de besturingsmicrocontroller
Dus na het monteren van het apparaat is het belangrijkste dat overblijft het flashen van de besturingsmicrocontroller. Vrienden die nog computers met een LPT-poort hebben, zijn zeer geschikt voor deze doeleinden :) De eenvoudigste vijfdraadsprogrammeur voor AVR
De microcontroller kan vanaf de programmeerconnector worden geflasht door de reset-pinnen van de microcontroller (29-poots) en de connector aan te sluiten. Er bestaat firmware voor de Atmega48-, Atmega8- en Atmega88-modellen. Het is raadzaam om een ​​van de laatste twee stenen te gebruiken, aangezien de ondersteuning voor de Atmega48-versie is stopgezet en de nieuwste firmwareversie uit 2009 stamt. En de versies voor de 8e en 88e steen worden voortdurend bijgewerkt, en de auteur lijkt van plan te zijn een in-circuit debugger aan de functionaliteit toe te voegen. We halen de firmware van de Duitse pagina. Om het besturingsprogramma naar de microcontroller te uploaden, heb ik het PonyProg-programma gebruikt. Bij het programmeren is het noodzakelijk om het kristal zo in te stellen dat het werkt vanaf een externe klokbron op 12 MHz. Screenshot van het programma met zekeringjumperinstellingen in PonyProg:

Na het flashen van de firmware moet de LED aangesloten op poot 23 van de microcontroller oplichten. Dit zal een zeker teken zijn dat de programmeur met succes is geprogrammeerd en klaar is voor gebruik.

Installatie van stuurprogramma
De installatie werd uitgevoerd op een machine met Windows 7 en er deden zich geen problemen voor. Wanneer u voor de eerste keer verbinding maakt met uw computer, verschijnt er een bericht dat aangeeft dat er een nieuw apparaat is gedetecteerd en wordt u gevraagd een stuurprogramma te installeren. Selecteer installatie vanaf de opgegeven locatie:

Er verschijnt onmiddellijk een venster met de waarschuwing dat het stuurprogramma dat wordt geïnstalleerd geen digitale handtekening heeft voor kleine, zachte stuurprogramma's:

We negeren de waarschuwing en gaan door met de installatie. Na een korte pauze verschijnt er een venster met de mededeling dat de installatie van het stuurprogramma met succes is voltooid

Dat is alles, de programmeur is nu klaar voor gebruik.

Khazama AVR-programmeur
Om met de programmeur te werken heb ik gekozen voor de Khazama AVR Programmer flasher. Een prachtig programma met een minimalistische interface.

Het werkt met alle populaire AVR-microcontrollers, stelt u in staat flash en eeprom te flashen, de inhoud van het geheugen te bekijken, de chip te wissen en ook de configuratie van fuse-bits te wijzigen. Over het algemeen een volledig standaardset. De zekeringinstelling wordt uitgevoerd door de klokbron uit de vervolgkeuzelijst te selecteren, waardoor de kans dat het kristal per ongeluk wordt vergrendeld sterk wordt verminderd. Zekeringen kunnen ook worden gewijzigd door selectievakjes in het onderste veld te plaatsen, maar op een niet-bestaande configuratie kunt u geen selectievakjes plaatsen, en dit is ook een groot pluspunt op het gebied van beveiliging.

Zekeringen worden, zoals u wellicht vermoedt, naar het MK-geheugen geschreven door op de knop Alles schrijven te drukken. Met de knop Opslaan wordt de huidige configuratie opgeslagen, en met de knop Laden wordt de opgeslagen configuratie geretourneerd. Het is waar dat ik geen praktisch gebruik voor deze knoppen kon bedenken. De knop Standaard is ontworpen om de standaardzekeringconfiguratie vast te leggen, degene waarmee microcontrollers uit de fabriek komen (meestal 1 MHz van de interne RC).
Over het algemeen heeft het gedurende de hele tijd dat ik deze programmeur gebruik, bewezen de beste te zijn in termen van stabiliteit en werkingssnelheid. Het werkte zonder problemen, zowel op een oude desktop-pc als op een nieuwe laptop.

U kunt het PCB-bestand downloaden in SprintLayout met behulp van