Indholdsfortegnelse:

Atmega328p Companion: 6 trin (med billeder)
Atmega328p Companion: 6 trin (med billeder)

Video: Atmega328p Companion: 6 trin (med billeder)

Video: Atmega328p Companion: 6 trin (med billeder)
Video: Mount the Case for Diagnosis Dentoform Project 2024, Juli
Anonim
Atmega328p Companion
Atmega328p Companion

ATMEGA328P Companion: Bootloader og programmeringsmodul

Hvis du er som mig, er du afhængig af projekter og Arduino. Men hvis du har lavet en række projekter med en Arduino som hjerne, er du sandsynligvis begyndt at blive syg af at se på Arduino -tavlen som helhed, rodet dit projekt og generelt set bare se dårligt ud. Som sådan besluttede jeg, at jeg ville flytte fra Arduino -kortene til kun at bruge IC.

Indtast atmega328p.

Atmega328p er nok den mest produktive Arduino -kompatible IC på markedet. Det er på ingen måde den billigste eller mest kraftfulde, men når man tager hensyn til begge disse, er det efter min mening den bedste ydelse pr. Dollar. Så er du klar til at begynde at få dine projekter til at se meget mere professionelle ud og mindre ligne et konglomerat af hyldemoduler? Hvis det er tilfældet, kan du læse denne instruks igennem, og du får de nødvendige oplysninger til at bygge dit eget modul, der giver dig mulighed for at blinke en bootloader til dit mål atmega328p, uploade blinkskitsen for at sikre, at tingene fungerer, og endelig uploade dine egne skitser til dine individuelle projekter.

Trin 1: BOM og værktøjer

Første ting først, denne instruktive vil ikke være et trin for trin, hvordan man opbygger manuel, men i stedet antager jeg, at du ved, hvordan du læser en skematisk og kan oversætte det til et tavle. Med det i tankerne er her de nødvendige materialer og værktøjer:

Materialer:

  • 1x 40x60mm protoboard eller printkort
  • 1x 6 -pins hanhoved (jeg brugte mænd med ret vinkel)
  • 2x 14pin kvindelig header
  • 1x 6pin kvindelig header
  • 1x 2pin kvindelig header
  • 2x 22pF kondensator (22)
  • 1x 0.1uF kondensator (104)
  • 1x 10kohm modstand
  • 2x 330ohm modstand
  • 1x LED (enhver farve til strømindikator - 3 mm til PCB -design)
  • 1x LED (enhver farve til digital pin 13 til blinkskitse - 3 mm til PCB -design)
  • 1x 16MHz krystal
  • 1x skydekontakt
  • 1x kortvarig trykknap

Værktøjer:

  • Arduino Uno
  • Loddekolbe
  • 6x M-M jumpere
  • FTDI programmerer
  • USB -kabel, der matcher din FTDI -programmør
  • Arduino IDE

Trin 2: Skematisk/layout

Skematisk/layout
Skematisk/layout
Skematisk/layout
Skematisk/layout

Vedhæftet dette trin er de ørnefiler, jeg brugte. Du er fri til at ændre dem og ændre dem, som du vil. Jeg har dog designet tavlen, så alle sporene er på bundlaget, så det er let at fremstille på en PCB -mølle (hvis du har adgang til en) med et ensidet bord. Det er også i bunden, så det er let at lodde komponenterne sammen.

Hvis du vil have PCB, skal du dog bare køre CAM'en for at få de nødvendige gerber -filer til din yndlingsproducent. Jeg kan godt lide OSH Park, fordi du bare giver dem tavlefilen, og de kører de nødvendige CAM'er for at få de filer, de har brug for.

Trin 3: Lodning

Lodning
Lodning
Lodning
Lodning

Så der er tre måder at lave dette bord på:

  • Befolkning af et printkort
  • Befolkning af et fræset bræt
  • Befolkning af et protoboard

Befolkningen af printkortet er ret ligetil og bør ikke give dig problemer, da alt er mærket.

Population af et fræset bræt burde heller ikke være for svært, da det er modelleret nøjagtig på samme måde som printkortet, bortset fra at du ikke har markeringerne, så følg med tavlefilen i Eagle for at sikre, at du lægger tingene på det rigtige sted (især LED'ernes polaritet).

Endelig er det mest tankevækkende at udfylde en protoboard, men det er ikke frygteligt svært. Jeg har et par billeder på dette trin, der viser min protoboard -version, og hvordan jeg passer til alt. Bemærk, at LM7805, de to 4.7uF kondensatorer og skrueterminalerne ikke er på dit bord. Jeg legede med tanken om, at dette skulle have mulighed for at blive eksternt drevet, men da jeg først begyndte at tænke over det, besluttede jeg, at det i sidste ende var spild af bestyrelsesplads.

Trin 4: Bootloading

Bootloading
Bootloading

Opsætning af bootloading Arduino:

Så her har du brug for din anden Arduino. Gå først her og download filerne fra denne fyr. På dette tidspunkt er filerne et par år gamle, men de fungerer stadig godt. Når du har hentet dem, skal du åbne optiLoader.ino, og din Arduino IDE skal bede dig om at lægge den i en mappe. Gør det, og sæt derefter filen optiLoader.h i mappen med.ino. Nu er du klar til at uploade skitsen til din bootloading Arduino. Jeg brugte en Arduino Uno, så jeg ved, at det fungerer med det, men jeg er sikker på, at det også vil fungere med andre tavler.

Når du har uploadet optiLoader.ino til din Arduino, er det hele klar til at bootload mange forskellige Arduino -chips. Jeg har kun gjort det med atmega328p, men koden er konfigureret til at registrere mål -MCU'en og blinke den korrekte bootloader, hvilket er ret godt. Så nu, når du slutter denne Arduino til Atmega Companion -kortet med en chip installeret og tænder den, vil den automatisk opdage, at målet er en atmega328p og automatisk blinke den relevante bootloader. Ingen reset -spring, ingen underlige ting; bare plug and play.

Tilslutning af bootloaderen til ledsagerkortet:

[Bootloader Arduino] [Atmega328p Companion Board]

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

Stifterne refererer til benene på selve IC'en. Hvis dette er forvirrende, skal du se på tavlebilledet fra det skematiske/layouttrin, da stifterne på ledsagerbrættet er mærket.

Blinker bootloaderen:

Nu hvor du har Bootloader Arduino -opsætningen med optiLoader.ino -skitsen, og den nu også er tilsluttet dit Companion Board, skal du sørge for, at ledsagerkortets switch er sat til "bootload" i stedet for "upload", og tilslut derefter din Arduino til en computer. Du bør se lysene på både din Arduino og Companion Board blinke et antal gange. Efter et par sekunder skulle begge blive mørke og ikke blinke mere. Dette betyder sandsynligvis, at det med succes har flashet din atmega328p IC med bootloaderen. For at sikre, at alt gik godt, skal du tilslutte det til din computer og åbne Arduino IDE og derefter den serielle skærm. Skift baudhastighed til 19200. Hvis den ikke genstartes automatisk, skal du trykke på nulstillingsknappen på din Arduino. Du bør se en masse tekst, der beskriver, hvad scriptet gør. I slutningen bør den ikke have nogen fejlmeddelelser og skulle informere dig om, at processen er udført.

Hvis du får en fejl, skal du kontrollere din switch og sikre dig, at du er på "bootload". Hvis du stadig får fejl på dette tidspunkt, skal du kontrollere alle dine ledninger og sikre, at det er korrekt.

Trin 5: Upload

Uploader
Uploader

Dette er det lette trin.

Afbryd alle ledninger fra det foregående trin, og vend kontakten fra "bootload" til "upload". Tilslut dit FTDI -modul. Jeg kan godt lide Adafruit CP2104 og SparkFun CH340G hovedsageligt fordi de er relativt billige, og pinout matcher FTDI -benene, der kommer ud af ledsagerbrættet.

Når du har tilsluttet din FTDI til dit ledsagerkort, skal du fortsætte og tilslutte den til din computer. Derfra skal du uploade blinkeksemplet for at sikre, at bootloaderen blev blinket korrekt. Vælg Arduino/Genuino Uno fra tavlemenuen. Når blinkskitsen er uploadet, skal du se blinklysdioden blinke som forventet. Hvis det virker, er du klar til at uploade dine egne brugerdefinerede skitser til IC, ligesom du ville gøre med enhver anden Arduino.

Trin 6: Fremtidigt arbejde

I fremtiden planlægger jeg at gøre dette til et Arduino Uno -skjold. Det skulle ikke tage lang tid at gøre det, og hvis folk vil, kan jeg også uploade Eagle -filerne til det her. Dette ville forenkle opstartstrinnet, da du ikke skulle bekymre dig om at koble det forkert. Jeg er også åben for andre forbedringsforslag, men jeg formoder ikke, at jeg vil gøre meget mere med dette, da det bare var et nødvendigt skridt i forberedelsen af mine fremtidige projekter.

Hvis du vil se flere af mine fremtidige projekter, så lad mig det vide, så prøver jeg at holde fællesskabet opdateret.

Anbefalede: