Inhoudsopgave:
- Stap 1: Instructies voor het monteren van het bord:
- Stap 2: Verzamel onderdelen
- Stap 3: Monteer het bord
- Stap 4: Breng soldeerpasta aan
- Stap 5: Plaats de SMD-onderdelen
- Stap 6: Tijd voor het heteluchtpistool
- Stap 7: Versterk indien nodig
- Stap 8: De SMD Flux reinigen/verwijderen
- Stap 9: Plaats en soldeer alle onderdelen van de troggaten
- Stap 10: Flush Cut Through Hole Pins
- Stap 11: Verwarm de doorlopende pinnen opnieuw na het knippen
- Stap 12: Verwijder de Through Hole Flux
- Stap 13: Zet stroom op het bord
- Stap 14: Laad de Bootloader
- Stap 15: Laad de Multi Sketch
- Stap 16: Klaar
- Stap 17: Vorige versie 1.3
Video: AVR-programmeur met hoogspanning - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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 (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
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
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
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. 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
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
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
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
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
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
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
Gebruik dezelfde reinigingsmethode als voorheen om de achterkant van het bord schoon te maken.
Stap 13: Zet stroom 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
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
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
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
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:
Aan de slag met Bascom AVR: 5 stappen
Aan de slag met Bascom AVR: Dit is het begin van een serie om u te leren uw AVR-microcontroller te programmeren met Bascom AVR. Waarom ik dit doe. De meeste programmavoorbeelden in deze serie kunt u met Arduino maken. Sommige gemakkelijker en sommige moeilijker, maar uiteindelijk zullen beide
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
AVR-microcontroller. Schakel LED's met behulp van een drukknopschakelaar. Debouncen met drukknop: 4 stappen
AVR-microcontroller. Schakel LED's met behulp van een drukknopschakelaar. Drukknop debouncing.: In deze sectie zullen we leren hoe we programma C-code voor ATMega328PU kunnen maken om de status van de drie LED's te wisselen volgens de invoer van een knopschakelaar. We hebben ook een oplossing onderzocht voor het probleem van 'Switch Bounce'. Zoals gewoonlijk zullen we
AVR-microcontroller. LED's Flasher met behulp van timer. Timers worden onderbroken. Timer CTC-modus: 6 stappen
AVR-microcontroller. LED's Flasher met behulp van timer. Timers worden onderbroken. Timer CTC Mode: Hallo allemaal! Timers is een belangrijk begrip op het gebied van elektronica. Elk elektronisch onderdeel werkt op tijdbasis. Deze tijdbasis helpt om al het werk gesynchroniseerd te houden. Alle microcontrollers werken op een vooraf gedefinieerde klokfrequentie, de
Een AVR-bord programmeren met een Arduino-bord: 6 stappen
Hoe een AVR-bord te programmeren met een Arduino-bord: Heb je een AVR-microcontrollerbord liggen? Is het lastig om het te programmeren? Nou, je bent op de juiste plek. Hier laat ik je zien hoe je een Atmega8a-microcontrollerbord programmeert met een Arduino Uno-bord als programmeur. Dus zonder verder