Inhoudsopgave:

ATTiny HV-programmeur: 4 stappen
ATTiny HV-programmeur: 4 stappen

Video: ATTiny HV-programmeur: 4 stappen

Video: ATTiny HV-programmeur: 4 stappen
Video: Dual Mode High Voltage UPDI Fuse Restore Programmer 2024, Juli-
Anonim
ATTiny HV Programmeur
ATTiny HV Programmeur
ATTiny HV Programmeur
ATTiny HV Programmeur

Deze instructable is voor een ATTiny-programmeerhulpprogramma dat een ESP8266 en een browsergebaseerde gebruikersinterface gebruikt. Het volgt op een eerdere instructable Fuse-editor voor het lezen en instellen van de zekeringen, maar ondersteunt nu het wissen, lezen en schrijven van de flash- en EEPROM-geheugens.

De zekeringondersteuning maakt het een zeer eenvoudige activiteit om wijzigingen aan te brengen in de instellingen die worden bestuurd door de 2 zekeringbytes.

De geheugenondersteuning maakt het mogelijk om de inhoud van flash en EEPROM te back-uppen en te herstellen. Nieuwe inhoud van hex-bestanden kan ook worden geschreven. Dit maakt het heel eenvoudig om nieuwe micronucleus-bootloaders te herstellen of te schrijven.

Het apparaat heeft de volgende kenmerken.

  • Webserver die het lezen en schrijven van zekeringgegevens ondersteunt en een editorpagina die gemakkelijke toegang geeft tot zekeringopties
  • Wischip (nodig voor het schrijven van nieuw materiaal)
  • Lezen en schrijven van Flash-programmagegevens uit hex-bestanden
  • Lezen en schrijven van EEPROM-gegevens uit hex-bestanden
  • Ondersteuning voor ATTiny 25, 45 en 85 varianten
  • USB-voeding met interne 12V-generator voor hoogspanningsprogrammering
  • Wifi-netwerkconfiguratie met wifiManager Access pointBrowsertoegang tot het ESP8266 SPIFFS-bestandssysteem voor het uploaden en downloaden van bestanden
  • OTA-update van de ESP8266-firmware

Stap 1: Componenten en gereedschappen

Componenten

  • ESP-12F-module
  • 5V tot 12V boostmodule
  • micro-USB-aansluiting met soldeerbare connector
  • 220uF Tantaal condensator
  • xc6203 3.3V LDO-regelaar
  • MOSFET-transistors 3x n-kanaal AO3400 1 x p-kanaal AO3401
  • Weerstanden 2 x 4k7 1x 100k 1x 1K 1x470R 1x 1R27
  • pin header blok
  • Klein stukje breadboard voor ondersteuningscircuits
  • sluit wireEnclosure aan (ik gebruikte een 3D-geprinte doos op

Gereedschap

  • Fijne punt soldeerbout
  • Pincet
  • Draadsnijders

Stap 2: Elektronica

Elektronica
Elektronica

Het schema laat zien dat al het vermogen afkomstig is van een 5V USB-aansluiting. Een regelaar levert 3,3 V aan de ESP-12F-module. Een kleine boost-module produceert de 12V die nodig is voor het programmeren van hoogspanning.

De ESP GPIO geeft de 4 logische signalen die worden gebruikt bij hoogspanningsprogrammering (klok, data in, data uit en commando in).

Eén GPIO wordt gebruikt om een MOSFET-transistor aan en uit te zetten die wordt gevoed door de 12V-rail via een 1K-weerstand. Als de GPIO hoog is, staat de tMOSFET aan en staat de afvoer op 0V. Wanneer de GPIO laag is ingesteld, stijgt de afvoer naar 12V die nodig is om de programmeermodus voor hoogspanning in te stellen. Een tweede GPIO kan worden gebruikt om de 12V high te verlagen tot 4V, zodat deze als een conventioneel resetsignaal kan worden gebruikt. Deze faciliteit wordt momenteel niet gebruikt, maar kan worden gebruikt om SPI-programmering te ondersteunen in plaats van hoogspanningsprogrammering.

Eén GPIO wordt gebruikt om een MOSFET 2-traps driver in en uit te schakelen voor de 5V-voeding naar de ATTiny. Deze opstelling wordt gebruikt om te voldoen aan de specificatie dat wanneer de 5V is ingeschakeld, deze een snelle stijgtijd heeft. Hieraan wordt niet voldaan door de voeding rechtstreeks van een GPIO aan te sturen, met name met de 4u7-ontkoppelcondensator die op de meeste ATTiny-modules aanwezig is. Een weerstand met een lage waarde wordt gebruikt om de stroompiek te dempen die wordt veroorzaakt door het snel inschakelen van de MOSFET-transistoren. Het is misschien niet nodig, maar wordt hier gebruikt om storingen te voorkomen die kunnen worden veroorzaakt door deze inschakelpiek.

Merk op dat het schema een klein beetje verschilt van de vorige versie van de zekeringeditor. De GPIO-pinnen zijn opnieuw toegewezen om SPI-programmering mogelijk te maken, hoewel de software dit momenteel niet gebruikt. De pinnen die signalen van de ATTiny lezen, hebben extra bescherming voor de gebruikte 5V-signalen.

Stap 3: Montage

samenkomst
samenkomst
samenkomst
samenkomst

De afbeelding toont de componenten die in een kleine behuizing zijn gemonteerd. Een klein breadboard zit bovenop de ESP-12F-module en bevat de 3.3V-regelaar en de 2 spanningsaandrijfcircuits.

De 12V-boostmodule bevindt zich aan de linkerkant en krijgt zijn ingangsvermogen van de USB. De behuizing heeft een sleuf voor het 7-pins headerblok om verbindingen met de ATTiny mogelijk te maken. Na het aansluiten en testen worden de USB en het headerblok met harslijm op de behuizing vastgezet.

Er kan een label van de afbeelding worden afgedrukt om aan de doos te plakken om de signalen te helpen aansluiten.

Stap 4: Software en installatie

De software voor de programmeur is in een Arduino-schets ATTinyHVProgrammer.ino beschikbaar op

Het maakt gebruik van een bibliotheek met basiswebfuncties, ondersteuning voor het instellen van wifi, OTA-updates en toegang tot een browsergebaseerd archiveringssysteem. Dit is beschikbaar op

Configuratie van de software staat in een headerbestand BaseConfig.h. De 2 items die hier moeten worden gewijzigd, zijn wachtwoorden voor het wifi-toegangspunt en een wachtwoord voor OTA-updates.

Compileer en upload naar de ESP8266 vanuit een Arduino IDE. De IDE-configuratie zou een SPIFFS-partitie moeten toestaan, bijv. het gebruik van 2M/2M maakt OTA en een groot bestandssysteem mogelijk. Verdere updates kunnen dan worden gedaan met behulp van OTA

Wanneer de module voor het eerst wordt uitgevoerd, weet hij niet hoe hij verbinding moet maken met de lokale wifi, dus zal hij een configuratie-AP-netwerk opzetten. Gebruik een telefoon of tablet om verbinding te maken met dit netwerk en blader vervolgens naar 192.168.4.1. Er verschijnt een wifi-configuratiescherm en u moet het juiste netwerk selecteren en het wachtwoord invoeren. De module zal vanaf nu opnieuw opstarten en verbinding maken met dit wachtwoord. Als u naar een ander netwerk verhuist of het netwerkwachtwoord wijzigt, wordt het toegangspunt opnieuw geactiveerd, dus volg dezelfde procedure. Wanneer u de hoofdsoftware opent nadat u verbinding hebt gemaakt met wifi, uploadt u de bestanden in de gegevensmap door naar de modules ip/upload te bladeren. Hiermee kan een bestand worden geüpload. Nadat alle bestanden zijn geüpload, kan verdere toegang tot het archiefsysteem worden gedaan met behulp van ip/edit. Als de ip/ wordt gebruikt, wordt de index.htm gebruikt en wordt het hoofdprogrammeerscherm weergegeven. Hierdoor kunnen fuse-gegevens worden bekeken, bewerkt en geschreven, de chip worden gewist en flashh- en EEPROM-geheugen worden gelezen en geschreven.

Hiervoor worden een aantal webcalls gebruikt

  • ip/readFuses krijgt actuele zekeringgegevens
  • ip/writeFuses schrijft nieuwe zekeringgegevens
  • ip/erasechip.wist de chip
  • ip/dataOp ondersteunt lees- en schrijfgeheugenfuncties en levert de volgende parameters:

    • dataOp (0=lezen, 1=schrijven)
    • dataFile (naam van hex-bestand)
    • eeprom (0= Flash, 1 = eeprom)
    • versie (0= 25, 1=45, 2=85)

bovendien kan een AP_AUTHID-parameter in de schets worden gedefinieerd voordat deze wordt gecompileerd. Indien gedefinieerd, moet het op de webpagina worden ingevoerd om bewerkingen toe te staan.

ip/edit geeft toegang tot de bestanden; ip/firmware geeft toegang tot OTA-updates.

Het hex-bestandsformaat is intel-stijlrecords die compatibel zijn met die geproduceerd door Arduino IDE. Als er een startadresrecord aanwezig is, wordt een RJMP-instructie op locatie 0 ingevoegd. Hierdoor kunnen micronucleus-bootloaderbestanden in een gewiste chip worden geprogrammeerd en functioneren. Voor het gemak kunnen ook gewone Hex-bestanden, bestaande uit een hexadecimaal adres van 4 tekens gevolgd door 16 hexadecimale databytes, worden gelezen en gebruikt.

Aanbevolen: