Inhoudsopgave:

AVR-programmeur met hoogspanning - Ajarnpa
AVR-programmeur met hoogspanning - Ajarnpa

Video: AVR-programmeur met hoogspanning - Ajarnpa

Video: AVR-programmeur met hoogspanning - Ajarnpa
Video: USB Atmel AVR Microcontroller Programmer 2024, November
Anonim
AVR-programmeur met hoogspanning
AVR-programmeur met hoogspanning
AVR-programmeur met hoogspanning
AVR-programmeur met hoogspanning

Dit is mijn eerste Instructable. Het bord dat ik heb ontworpen is een AVR-programmeur. Het bord combineert de functies van 4 afzonderlijke prototypeborden die ik de afgelopen jaren heb gebouwd:

- Een hoogspannings AVR-programmeur, voornamelijk gebruikt op ATtiny-apparaten om zekeringen in te stellen wanneer de resetlijn wordt gebruikt voor I/O.

- Arduino als ISP, 5V en 3v3 (telt als twee van de functies)

- NOR Flash EEPROM-programmeur (kopieert snel van een SD-kaart naar NOR Flash)

Het bord gebruikt gewone AMS1117 LDO-spanningsregelaars om 5V en 3v3 te krijgen. De hoogspanningsfunctie vereist 12V. Hiervoor heb ik een MT3608 DC-DC step-up converter gebruikt. De mcu werkt op 16MHz, 5V. Niveauverschuiving voor alles waarvoor 3v3 nodig is, wordt bereikt met behulp van een LVC125A. De LVC125A is wat je op veel van de SD-kaartmodules aantreft. De mcu is een ATmega328pb. De ATMega328pb is bijna hetzelfde als de meer gebruikelijke ATMega328p, behalve dat hij nog 4 I/O-pinnen heeft in hetzelfde pakket.

Dit bord is versie 1.5. Nieuwe functies in deze nieuwste versie: - een seriële USB-interface. - resetbare polyzekeringen. - LED-functie-indicatoren onder de functieselectieknoppen. - een schakelaar om de seriële reset te regelen door DTR los te koppelen van de USB-seriële chip. - een MOSFET om de voeding van de DC-DC 12V volledig te onderbreken wanneer deze niet in gebruik is.

Het bord heeft de mogelijkheid om een AT24Cxxx I2C seriële EEPROM toe te voegen en er is een 5-pins I2C JST-XH-05-connector (GND/5V/SCL/SDA/INT1) voor het aansluiten van I2C-apparaten.

Een van de meer gecompliceerde aspecten van dit project was het laden van alle functies/schetsen op het bord. De eenvoudigste methode zou zijn geweest om gewoon een schets te downloaden wanneer ik functies moest wijzigen. Een andere methode zou zijn geweest om alle schetsen te combineren. Ik besloot tegen beide methoden. De combineermethode zou het moeilijk hebben gemaakt om eventuele wijzigingen in de originele bronschetsen te integreren. De combineermethode heeft ook het probleem dat de beschikbare hoeveelheid SRAM niet voldoende was zonder het herschrijven en graven in de gebruikte bibliotheken en schetsen, opnieuw een onderhoudsprobleem.

De methode die ik koos was het schrijven van een applicatie met de naam AVRMultiSketch die werkt met de Arduino IDE om de schetsen in flash te laden door hun geheugenlocaties te verschuiven. De schetsbronnen worden op geen enkele manier gewijzigd. Ze lopen over het bord alsof ze de enige schets zijn. Hoe dit werkt wordt in detail beschreven op de open source GitHub readme voor AVRMultiSketch. Zie https://github.com/JonMackey/AVRMultiSketch voor meer details. Deze repository bevat ook de schetsen die ik heb gebruikt/geschreven/aangepast, die afzonderlijk kunnen worden gebruikt.

Om tussen schetsen te wisselen, heeft het bord vier knoppen: Reset en knoppen met het label 0, 1, 2. Bij het opstarten of resetten, als u niets doet, wordt de laatst geselecteerde functie uitgevoerd. Als je een van de genummerde knoppen ingedrukt houdt, selecteer je een schets/functie. De schets wordt de geselecteerde schets. Witte LED's onder elk van de functieknoppen lichten op om de huidige selectie weer te geven.

Momenteel bevat het bord slechts 3 schetsen, maar het kan er nog een paar bevatten. In dat geval, uitgaande van slechts 3 bits/genummerde knoppen, zou het tot 7 kunnen hosten door meer dan één knop ingedrukt te houden.

Het schema is ingesloten in de volgende stap

Een minimale steunbeugel is beschikbaar op thingiverse. Zie

Het bord voor versie 1.5 wordt gedeeld op PCBWay. Zie

Neem contact met me op als je een geassembleerd en getest bord wilt.

Stap 1: Instructies voor het monteren van het bord:

Instructies voor het monteren van het bord
Instructies voor het monteren van het bord

Instructies voor het monteren van het bord (of bijna elk klein bord) volgen.

Als u al weet hoe u een SMD-bord moet bouwen, gaat u verder met stap 13.

Stap 2: Verzamel onderdelen

Onderdelen verzamelen
Onderdelen verzamelen
Onderdelen verzamelen
Onderdelen verzamelen

Ik begin met het plakken van een stuk papier op de werktafel met labels voor alle zeer kleine onderdelen (weerstanden, condensatoren, LED's). Plaats geen condensatoren en LED's naast elkaar. Als ze zich vermengen, kan het moeilijk zijn om ze uit elkaar te houden.

Vervolgens vul ik het papier met deze delen. Rond de rand voeg ik de andere, gemakkelijk te identificeren delen toe.

(Merk op dat ik hetzelfde stuk papier gebruik voor andere borden die ik heb ontworpen, dus slechts een paar van de locaties op de foto hebben delen naast/op de labels)

Stap 3: Monteer het bord

Monteer het bord
Monteer het bord
Monteer het bord
Monteer het bord

Met behulp van een klein stukje hout als montageblok, wig ik de printplaat tussen twee stukjes schroot-prototypebord. De prototypeborden worden met dubbele plakband aan het montageblok vastgehouden (geen tape op de printplaat zelf). Ik gebruik graag hout voor het montageblok omdat het van nature niet-geleidend/antistatisch is. Het is ook gemakkelijk om het te verplaatsen als dat nodig is bij het plaatsen van onderdelen.

Stap 4: Breng soldeerpasta aan

Soldeerpasta aanbrengen
Soldeerpasta aanbrengen
Soldeerpasta aanbrengen
Soldeerpasta aanbrengen

Breng soldeerpasta aan op de SMD-pads en laat eventuele doorlopende gaten bloot. Omdat ik rechtshandig ben, werk ik over het algemeen van linksboven naar rechtsonder om de kans op het uitsmeren van de soldeerpasta die ik al heb aangebracht te minimaliseren. Als je de pasta toch uitsmeert, gebruik dan een pluisvrij doekje, zoals voor het verwijderen van make-up. Vermijd het gebruik van een Kleenex/tissue. Het regelen van de hoeveelheid pasta die op elke pad wordt aangebracht, is iets dat u met vallen en opstaan onder de knie krijgt. Je wilt gewoon een klein schar op elke pad. De grootte van de schar is relatief aan de grootte en vorm van de pad (ongeveer 50-80% dekking). Gebruik bij twijfel minder. Voor pinnen die dicht bij elkaar staan, zoals het LVC125A TSSOP-pakket dat ik eerder noemde, breng je een heel dunne strook over alle pads aan in plaats van te proberen een aparte schar aan te brengen op elk van deze zeer smalle pads. Wanneer het soldeer gesmolten is, zal het soldeermasker ervoor zorgen dat het soldeer naar de pad migreert, een beetje zoals hoe water niet aan een olieachtig oppervlak blijft kleven. Het soldeer zal parelen of verplaatsen naar een gebied met een blootliggende pad.

Ik gebruik een soldeerpasta met een laag smeltpunt (137C Melting Point) De tweede foto is het v1.3-bord en het type soldeerpasta dat ik gebruik.

Stap 5: Plaats de SMD-onderdelen

Plaats de SMD-onderdelen
Plaats de SMD-onderdelen

Plaats de SMD-onderdelen. Ik doe dit van linksboven naar rechtsonder, al maakt het niet veel uit behalve dat je minder snel een onderdeel mist. De onderdelen worden geplaatst met een elektronische pincet. Ik geef de voorkeur aan het pincet met een gebogen uiteinde. Pak een onderdeel op, draai indien nodig het montageblok en plaats het onderdeel. Geef elk onderdeel een lichte tik om ervoor te zorgen dat het plat op het bord ligt. Bij het plaatsen van een onderdeel gebruik ik twee handen om te helpen bij het nauwkeurig plaatsen. Wanneer u een vierkante mcu plaatst, pakt u deze diagonaal op vanuit tegenovergestelde hoeken.

Inspecteer het bord om ervoor te zorgen dat eventuele gepolariseerde condensatoren zich in de juiste positie bevinden en dat alle chips correct zijn georiënteerd.

Stap 6: Tijd voor het heteluchtpistool

Tijd voor het Heteluchtpistool
Tijd voor het Heteluchtpistool

Ik gebruik een soldeerpasta op lage temperatuur. Voor mijn modelpistool heb ik de temperatuur ingesteld op 275C, de luchtstroom ingesteld op 7. Houd het pistool loodrecht op het bord op ongeveer 4 cm boven het bord. Het soldeer rond de eerste delen duurt even voordat het begint te smelten. Laat je niet verleiden om dingen te versnellen door het pistool dicht bij het bord te plaatsen. Dit resulteert over het algemeen in het rondblazen van de onderdelen. Zodra het soldeer smelt, gaat u verder met het volgende overlappende gedeelte van het bord. Werk je een weg over het hele bord.

Ik gebruik een YAOGONG 858D SMD Heteluchtpistool. (Op Amazon voor minder dan $ 40.) Het pakket bevat 3 sproeiers. Ik gebruik het grootste (8 mm) mondstuk. Dit model/stijl is gemaakt of verkocht door verschillende leveranciers. Ik heb overal beoordelingen gezien. Dit pistool heeft voor mij perfect gewerkt.

Stap 7: Versterk indien nodig

Versterken indien nodig
Versterken indien nodig
Versterken indien nodig
Versterken indien nodig

Als het bord een op het oppervlak gemonteerde SD-kaartconnector of een op het oppervlak gemonteerde audio-aansluiting, enz. heeft, breng dan extra draadsoldeer aan op de pads die worden gebruikt om de behuizing aan het bord te bevestigen. Ik heb ontdekt dat soldeerpasta alleen over het algemeen niet sterk genoeg is om deze onderdelen betrouwbaar te bevestigen.

Stap 8: De SMD Flux reinigen/verwijderen

Reinigen/verwijderen van de SMD Flux
Reinigen/verwijderen van de SMD Flux
Reinigen/verwijderen van de SMD Flux
Reinigen/verwijderen van de SMD Flux

De soldeerpasta die ik gebruik wordt geadverteerd als "niet schoon". Je moet het bord wel schoonmaken, het ziet er veel beter uit en het verwijdert alle kleine soldeerbolletjes op het bord. Gebruik latex-, nitril- of rubberen handschoenen in een goed geventileerde ruimte en giet een kleine hoeveelheid Flux Remover in een kleine keramische of roestvrijstalen schaal. Sluit de fles met vloeimiddelverwijderaar opnieuw. Dep de borstel met een harde borstel in de fluxverwijderaar en schrob een deel van het bord. Herhaal dit totdat je het bordoppervlak volledig hebt geschrobd. Ik gebruik hiervoor een pistoolreinigingsborstel. De borstelharen zijn stijver dan de meeste tandenborstels.

Stap 9: Plaats en soldeer alle onderdelen van de troggaten

Plaats en soldeer alle onderdelen van de troggaten
Plaats en soldeer alle onderdelen van de troggaten
Plaats en soldeer alle onderdelen van de troggaten
Plaats en soldeer alle onderdelen van de troggaten

Nadat de vloeimiddelverwijderaar van het bord is verdampt, plaatst en soldeert u alle onderdelen van de troggaten, van de kortste tot de hoogste, één voor één.

Stap 10: Flush Cut Through Hole Pins

Verzonken doorgesneden pinnen
Verzonken doorgesneden pinnen

Knip de doorlopende pinnen aan de onderkant van het bord af met een vlaksnijtang. Hierdoor wordt het verwijderen van de fluxresten gemakkelijker.

Stap 11: Verwarm de doorlopende pinnen opnieuw na het knippen

Verwarm de doorlopende pinnen opnieuw na het knippen
Verwarm de doorlopende pinnen opnieuw na het knippen

Voor een mooi uiterlijk, verwarm het soldeer op de doorlopende pinnen na het knippen opnieuw. Dit verwijdert de afschuifsporen achtergelaten door de vlaksnijder.

Stap 12: Verwijder de Through Hole Flux

Verwijder de doorlopende flux
Verwijder de doorlopende flux

Gebruik dezelfde reinigingsmethode als voorheen om de achterkant van het bord schoon te maken.

Stap 13: Zet stroom op het bord

Kracht toepassen op het bord
Kracht toepassen op het bord

Zet stroom op het bord (6 tot 12V). Als er niets frituurt, meet dan 5V, 3v3 en 12V. 5V en 3v3 kunnen worden gemeten vanaf het grote lipje op de twee regelaarchips. 12V kan worden gemeten vanaf R3, het einde van de weerstand die zich het dichtst bij het bord bevindt linksonder (de voedingsaansluiting is linksboven).

Stap 14: Laad de Bootloader

Laad de Bootloader
Laad de Bootloader

Selecteer in het menu Arduino IDE Tools het bord en andere opties voor de mcu die wordt getarget.

Op mijn bordontwerpen heb ik bijna altijd een ICSP-connector. Als je geen Arduino als ISP of een andere ICSP-programmeur hebt, kun je er een op een breadboard bouwen om de bootloader naar het programmeerbord te downloaden. Selecteer Arduino als ISP in het menu-item van de programmeur en selecteer vervolgens bootloader branden. Naast het downloaden van de bootloader, worden hiermee ook de zekeringen correct ingesteld. Op de foto is het bord aan de linkerkant het doelwit. Het bord aan de rechterkant is de ISP.

Stap 15: Laad de Multi Sketch

Laad de Multi Sketch
Laad de Multi Sketch
Laad de Multi Sketch
Laad de Multi Sketch
Laad de Multi Sketch
Laad de Multi Sketch

Volg de instructies op mijn GitHub-repository voor AVRMultiSketch om de multi-schets in flash te laden via de seriële poort op het bord. De GitHub AVRMultiSketch-repository bevat alle schetsen die op de foto worden getoond. Zelfs als u niet van plan bent om het bord te bouwen, kunt u de NOR Flash Hex Copier en de AVR High Voltage-schetsen nuttig vinden.

Stap 16: Klaar

Gedaan
Gedaan
Gedaan
Gedaan
Gedaan
Gedaan
Gedaan
Gedaan

Ik heb ook een paar adapterkaarten ontworpen bij het gebruik van niet-gemonteerde chips, zoals bij breadboarding.

- ATtiny85 ICSP-adapter. Wordt gebruikt om een ATtiny85 standalone te programmeren.

- ATtiny84 naar ATtiny85. Deze wordt gebruikt voor zowel hoogspanningsprogrammering als aangesloten op de ATtiny85 ICSP-adapter.

- NOR Flash-adapter.

Om enkele van mijn andere ontwerpen te zien, bezoek

Stap 17: Vorige versie 1.3

Vorige versie 1.3
Vorige versie 1.3
Vorige versie 1.3
Vorige versie 1.3

Bovenstaande zijn foto's van versie 1.3. Versie 1.3 heeft geen USB Serial, resetbare zekeringen en functie-indicatie-LED's. Eén versie 1.3-variant gebruikt een ATmega644pa (of 1284P)

Als je geïnteresseerd bent in het bouwen van versie 1.3, stuur me dan een bericht (in plaats van een opmerking toe te voegen.)

Aanbevolen: