Inhoudsopgave:

Atmega328p Companion - Ajarnpa
Atmega328p Companion - Ajarnpa

Video: Atmega328p Companion - Ajarnpa

Video: Atmega328p Companion - Ajarnpa
Video: how to burn bootloader on atmega328 using arduino uno | Tutorial | Circuit diagram + pcb 2024, Juli-
Anonim
Atmega328p Metgezel
Atmega328p Metgezel

ATMEGA328P Companion: de bootloader en programmeermodule

Als je op mij lijkt, ben je verslaafd aan projecten en Arduino. Als je echter een aantal projecten hebt gedaan met een Arduino als brein, ben je waarschijnlijk het zat om naar het Arduino-bord als geheel te kijken, je project rommelig te maken en er over het algemeen gewoon slecht uit te zien. Als zodanig besloot ik dat ik van de Arduino-borden wilde overstappen naar alleen het IC.

Voer de atmega328p in.

De atmega328p is waarschijnlijk de meest productieve Arduino-compatibele IC op de markt. Het is zeker niet de goedkoopste of krachtigste, maar als je met beide rekening houdt, is het naar mijn mening de beste prestatie per dollar. Dus bent u klaar om uw projecten er veel professioneler uit te laten zien en minder als een conglomeraat van kant-en-klare modules? Als dat zo is, lees dan deze instructable door en je krijgt de nodige informatie om je eigen module te bouwen waarmee je een bootloader naar je doel atmega328p kunt flashen, de knipperschets uploaden om ervoor te zorgen dat de dingen werken en ten slotte je eigen schetsen uploaden voor uw individuele projecten.

Stap 1: Stuklijst en hulpmiddelen

Allereerst, dit instructable zal niet een stapsgewijze handleiding zijn, maar in plaats daarvan ga ik ervan uit dat je weet hoe je een schema moet lezen en dat naar een bord kunt vertalen. Met dat in gedachten, hier zijn de benodigde materialen en gereedschappen:

Materialen:

  • 1x 40x60mm protoboard of PCB
  • 1x 6-pins mannelijke header (ik gebruikte haakse mannetjes)
  • 2x 14-pins vrouwelijke kop
  • 1x 6-pins vrouwelijke kop
  • 1x 2-pins vrouwelijke kop
  • 2x 22pF condensator (22)
  • 1x 0.1uF condensator (104)
  • 1x 10kohm weerstand
  • 2x 330ohm weerstand
  • 1x LED (elke kleur voor stroomindicator - 3 mm voor PCB-ontwerp)
  • 1x LED (elke kleur voor digitale pin 13 voor knipperschets - 3 mm voor PCB-ontwerp)
  • 1x 16MHz kristal
  • 1x schuifschakelaar
  • 1x kortstondige drukknop

Gereedschap:

  • Arduino Uno
  • Soldeerbout
  • 6x M-M truien
  • FTDI-programmeur
  • USB-kabel die past bij uw FTDI-programmeur
  • Arduino IDE

Stap 2: Schema/lay-out

Schema/lay-out
Schema/lay-out
Schema/lay-out
Schema/lay-out

Bij deze stap zijn de adelaarsbestanden die ik heb gebruikt. Je bent vrij om ze aan te passen en te veranderen zoals je wilt. Ik heb het bord echter zo ontworpen dat alle sporen zich op de onderste laag bevinden, zodat het gemakkelijk te fabriceren is op een PCB-frees (als je er toegang toe hebt) met een eenzijdig bord. Het zit ook aan de onderkant, zodat het gemakkelijk is om de componenten aan elkaar te solderen.

Als u echter de PCB wilt, voert u gewoon de CAM uit om de benodigde gerber-bestanden voor uw favoriete fabrikant te krijgen. Ik hou van OSH Park omdat je ze gewoon het bordbestand geeft en ze de nodige CAM's uitvoeren om de bestanden te krijgen die ze nodig hebben.

Stap 3: Solderen

Solderen
Solderen
Solderen
Solderen

Er zijn dus drie manieren om dit bord te maken:

  • Een PCB vullen
  • Een gefreesd bord vullen
  • Een protoboard vullen

Het vullen van de PCB is vrij eenvoudig en zou geen problemen moeten opleveren omdat alles is gelabeld.

Het vullen van een gefreesd bord zou ook niet al te moeilijk moeten zijn, omdat het op precies dezelfde manier is gemodelleerd als de PCB, behalve dat je de markeringen niet hebt, dus volg het bordbestand in Eagle om ervoor te zorgen dat je dingen plaatst op de juiste plaats (met name de polariteit van de leds).

Ten slotte is het vullen van een protoboard het meest denkintensief, maar het is niet erg moeilijk. Ik heb een paar foto's bij deze stap die mijn protoboard-versie laten zien en hoe ik alles pas. Houd er rekening mee dat de LM7805, de twee 4.7uF-condensatoren en de schroefklemmen niet op uw bord zullen zitten. Ik speelde met het idee om dit de mogelijkheid te geven om extern te worden aangedreven, maar toen ik erover begon na te denken, besloot ik dat het uiteindelijk een verspilling van bordruimte was.

Stap 4: Opstarten

Opstarten
Opstarten

De Bootloading Arduino instellen:

Dus hier heb je je andere Arduino nodig. Ga eerst hierheen en download de bestanden van deze man. Op dit moment zijn de bestanden een paar jaar oud, maar ze werken nog steeds geweldig. Zodra je ze hebt gedownload, open je optiLoader.ino en je Arduino IDE zou je moeten vragen om het in een map te plaatsen. Doe dit en plaats vervolgens het optiLoader.h-bestand in de map met de.ino. Nu ben je klaar om die schets te uploaden naar je bootloading Arduino. Ik heb een Arduino Uno gebruikt, dus ik weet dat het daarmee werkt, maar ik weet zeker dat het ook met andere boards zal werken.

Zodra je de optiLoader.ino naar je Arduino hebt geüpload, is het allemaal ingesteld om veel verschillende Arduino-chips te bootloaden. Ik heb het alleen gedaan met de atmega328p, maar de code is ingesteld om de doel-MCU te detecteren en de juiste bootloader te flashen, wat best aardig is. Dus wanneer je deze Arduino nu aansluit op het Atmega Companion-bord met een geïnstalleerde chip en hem aanzet, zal hij automatisch detecteren dat het doel een atmega328p is en automatisch de juiste bootloader flashen. Geen reset-springen, geen rare dingen; gewoon plug-and-play.

De Bootloader aansluiten op het Companion Board:

[Bootloader Arduino] [Atmega328p Companion Board]

  • D10 Reset / pin 1
  • D11 MOSI / pen 17
  • D12 MISO / pen 18
  • D13 SCK / pen 19
  • 5V Vcc / pin 20 of 21
  • GND Gnd / pin 22

De pinnen verwijzen naar de pootjes van het IC zelf. Als dit verwarrend is, kijk dan naar de bordafbeelding van de schematische/lay-outstap terwijl de pinnen op het begeleidende bord zijn gelabeld.

De bootloader flashen:

Nu je de Bootloader Arduino-configuratie hebt met de optiLoader.ino-schets en deze nu ook is aangesloten op je Companion Board, moet je ervoor zorgen dat de schakelaar van het begeleidende bord is ingesteld op "bootload" in plaats van "upload", en sluit je vervolgens je Arduino naar een computer. Je zou de lampjes op zowel je Arduino als je Companion Board een aantal keer moeten zien knipperen. Na een paar seconden moeten beide donker worden en niet meer knipperen. Dit betekent waarschijnlijk dat het met succes je atmega328p IC heeft geflitst met de bootloader. Om er zeker van te zijn dat alles goed is verlopen, sluit u hem aan op uw computer en opent u de Arduino IDE en vervolgens de seriële monitor. Verander de baudrate naar 19200. Als het dan niet automatisch opnieuw opstart, druk dan op de reset-knop op je Arduino. Je zou een heleboel tekst moeten zien die beschrijft wat het script doet. Aan het einde zou het geen foutmeldingen moeten hebben en zou het u moeten informeren dat het proces is voltooid.

Als je een foutmelding krijgt, controleer dan je switch en zorg ervoor dat je op "bootload" staat. Als u op dit moment nog steeds fouten krijgt, controleer dan al uw bedrading en zorg ervoor dat deze correct is.

Stap 5: Uploaden

Uploaden
Uploaden

Dit is de gemakkelijke stap.

Ontkoppel alle draden van de vorige stap en draai de schakelaar van "bootload" naar "upload". Sluit uw FTDI-module aan. Ik hou van de Adafruit CP2104 en de SparkFun CH340G, vooral omdat ze relatief goedkoop zijn en de pinout overeenkomt met de FTDI-pinnen die van het begeleidende bord komen.

Zodra je je FTDI hebt aangesloten op je begeleidende bord, ga je gang en sluit je hem aan op je computer. Van daaruit upload je een blink-voorbeeldschets om er zeker van te zijn dat de bootloader correct is geflitst. Selecteer Arduino/Genuino Uno in het bordmenu. Nadat de knipperschets is geüpload, zou u de knipper-LED moeten zien knipperen, zoals verwacht. Als dat werkt, ben je klaar om je eigen aangepaste schetsen naar de IC te uploaden, net zoals je zou doen met elke andere Arduino.

Stap 6: Toekomstig werk

In de toekomst ben ik van plan hier een Arduino Uno-schild van te maken. Het zou niet lang moeten duren om dit te doen, en als mensen dat willen, kan ik hier ook de Eagle-bestanden voor uploaden. Dit zou de opstartstap vereenvoudigen, omdat u zich geen zorgen hoeft te maken over onjuiste bedrading. Ik sta ook open voor andere suggesties voor verbetering, maar ik vermoed niet dat ik hier veel meer mee zal doen, omdat het slechts een noodzakelijke stap was bij het voorbereiden van mijn toekomstige projecten.

Als je meer van mijn toekomstige projecten wilt zien, laat het me dan weten, dan zal ik proberen de community op de hoogte te houden.

Aanbevolen: