Cuprins:

Companion Atmega328p: 6 pași (cu imagini)
Companion Atmega328p: 6 pași (cu imagini)

Video: Companion Atmega328p: 6 pași (cu imagini)

Video: Companion Atmega328p: 6 pași (cu imagini)
Video: A possible solution for "error occurred while uploading the sketch" on your Arduino 2024, Noiembrie
Anonim
Companion Atmega328p
Companion Atmega328p

Companion ATMEGA328P: modulul de încărcare și programare

Dacă ești ca mine, ești dependent de proiecte și Arduino. Cu toate acestea, dacă ați făcut o serie de proiecte cu un Arduino ca creier, probabil că ați început să vă săturați să vă uitați la placa Arduino în ansamblu, să vă aglomerați proiectul și, în general, să arătați rău. Ca atare, am decis că vreau să trec de la plăcile Arduino la utilizarea doar a IC-ului.

Introduceți atmega328p.

Atmega328p este probabil cel mai prolific IC compatibil Arduino de pe piață. Nu este în niciun caz cel mai ieftin sau cel mai puternic, cu toate acestea, atunci când ținem cont de ambele, este în opinia mea cea mai bună performanță pe dolar. Deci, sunteți gata să începeți ca proiectele dvs. să pară mult mai profesionale și mai puțin ca un conglomerat de module de tip raft? Dacă da, citiți acest instructable și veți obține informațiile necesare pentru a vă construi propriul modul care vă va permite să blocați un încărcător de încărcare pe atmega328p țintă, să încărcați schița clipitoare pentru a vă asigura că lucrurile funcționează și, în cele din urmă, încărcați propriile schițe pentru proiectele dvs. individuale.

Pasul 1: BOM și Instrumente

În primul rând, acest instructable nu va fi un pas cu pas cum să construiți manual, dar în schimb presupun că știți cum să citiți o schemă și să o puteți traduce pe o placă. În acest sens, iată materialele și instrumentele necesare:

Materiale:

  • 1x 40x60mm protoboard sau PCB
  • 1x antet masculin cu 6 pini (am folosit bărbați cu unghi drept)
  • 2x antet feminin de 14 pini
  • 1x antet feminin cu 6 pini
  • 1x antet feminin cu 2 pini
  • 2x condensator 22pF (22)
  • 1x condensator 0.1uF (104)
  • 1x rezistor de 10 kohm
  • Rezistor 2x 330ohm
  • 1x LED (orice culoare pentru indicatorul de alimentare - 3 mm pentru design PCB)
  • 1x LED (orice culoare pentru pinul digital 13 pentru schiță intermitentă - 3 mm pentru design PCB)
  • 1x cristal de 16 MHz
  • 1x comutator glisant
  • 1x buton momentan

Instrumente:

  • Arduino Uno
  • Ciocan de lipit
  • 6x jumperi M-M
  • Programator FTDI
  • Cablu USB care se potrivește cu programatorul FTDI
  • IDE Arduino

Pasul 2: Schematic / Aspect

Schematic / Aspect
Schematic / Aspect
Schematic / Aspect
Schematic / Aspect

La acest pas sunt atașate fișierele Eagle pe care le-am folosit. Sunteți liber să le modificați și să le schimbați după cum doriți. Totuși, am proiectat placa astfel încât toate urmele să fie pe stratul inferior, astfel încât să fie ușor de fabricat pe o moară PCB (dacă aveți acces la una) cu o placă unilaterală. Este, de asemenea, pe partea de jos, astfel încât să fie ușor să lipiți componentele împreună.

Cu toate acestea, dacă doriți PCB, rulați CAM pentru a obține fișierele gerber necesare pentru producătorul dvs. preferat. Îmi place OSH Park pentru că le dai doar fișierul de bord și rulează CAM-urile necesare pentru a obține fișierele de care au nevoie.

Pasul 3: lipire

Lipire
Lipire
Lipire
Lipire

Deci, există trei moduri de a crea această placă:

  • Popularea unui PCB
  • Populând o scândură frezată
  • Populând un protoboard

Popularea PCB este destul de simplă și nu ar trebui să vă dea probleme, deoarece totul este etichetat.

Popularea unei plăci frezate, de asemenea, nu ar trebui să fie prea dificilă, deoarece este modelată exact la fel ca PCB, cu excepția faptului că nu aveți marcajele, așa că urmați împreună cu fișierul plăcii din Eagle pentru a vă asigura că puneți lucrurile în locul potrivit (în special polaritatea LED-urilor).

În cele din urmă, popularea unui protoboard este cea mai intensă, însă nu este teribil de dificilă. Am câteva imagini la acest pas care prezintă versiunea mea protoboard și modul în care mă potrivesc totul. Rețineți că LM7805, cei doi condensatori 4.7uF și bornele cu șurub nu vor fi pe placa dvs. Mă jucam cu ideea ca acest lucru să aibă capacitatea de a fi alimentat extern, dar, odată ce am început să mă gândesc la asta, am decis că în cele din urmă este o pierdere de spațiu de bord.

Pasul 4: Bootloading

Încărcare
Încărcare

Configurarea Arduino de încărcare:

Așadar, aici veți avea nevoie de celălalt Arduino. Mai întâi du-te aici și descarcă fișierele de la acest tip. În acest moment, fișierele au câțiva ani, dar încă funcționează excelent. După ce le-ați descărcat, deschideți optiLoader.ino și ID-ul dvs. Arduino ar trebui să vă solicite să îl introduceți într-un folder. Faceți acest lucru și apoi puneți fișierul optiLoader.h în folderul cu.ino. Acum sunteți gata să încărcați schița respectivă pe boot-ul dvs. Arduino. Am folosit un Arduino Uno, așa că știu că funcționează cu asta, dar sunt sigur că va funcționa și cu alte plăci.

După ce ați încărcat optiLoader.ino pe Arduino, totul este configurat pentru a încărca mai multe cipuri Arduino diferite. Am făcut-o doar cu atmega328p, cu toate acestea, codul este configurat pentru a detecta MCU-ul țintă și pentru a bloca încărcătorul de încărcare corect, ceea ce este destul de frumos. Deci, acum, ori de câte ori conectați acest Arduino la placa Atmega Companion cu un cip instalat și îl porniți, acesta va detecta automat că ținta este un atmega328p și va încărca automat încărcătorul de încărcare corespunzător. Fără sărituri de resetare, fără lucruri ciudate; doar conectează-te și joacă-te.

Cablarea Bootloader-ului la placa de însoțire:

[Bootloader Arduino] [Placă de însoțire Atmega328p]

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

Pinii se referă la picioarele IC-ului în sine. Dacă acest lucru este confuz, uitați-vă la imaginea plăcii din pasul schematic / aspect, deoarece pinii de pe placa însoțitoare sunt etichetați.

Blinding Bootloader:

Acum că aveți configurarea Bootloader Arduino cu schița optiLoader.ino și este, de asemenea, acum conectată la placa dvs. de însoțire, asigurați-vă că comutatorul plăcii însoțitoare este setat la „încărcare” în loc de „încărcare”, apoi conectați Arduino pe un computer. Ar trebui să vedeți luminile atât pe Arduino cât și pe Companion Board să clipească de mai multe ori. După câteva secunde, ambele ar trebui să se întunece și să nu mai clipească. Acest lucru înseamnă probabil că a afișat cu succes IC-ul atmega328p cu bootloader-ul. Pentru a vă asigura că totul a mers bine, conectați-l la computer și deschideți Arduino IDE și apoi monitorul serial. Schimbați rata de transmisie la 19200. Apoi, dacă nu repornește automat, apăsați butonul de resetare de pe Arduino. Ar trebui să vedeți o grămadă de text care descrie ce face scriptul. La sfârșit, nu ar trebui să aibă mesaje de eroare și ar trebui să vă informeze că procesul este finalizat.

Dacă primiți o eroare, verificați comutatorul și asigurați-vă că sunteți pe „bootload”. Dacă totuși primiți erori în acest moment, verificați toate cablurile și asigurați-vă că este corect.

Pasul 5: Încărcare

Încărcare
Încărcare

Acesta este pasul ușor.

Deconectați toate firele de la pasul anterior și întoarceți comutatorul de la „bootload” la „upload”. Conectați modulul FTDI. Îmi plac Adafruit CP2104 și SparkFun CH340G în principal pentru că sunt relativ ieftine și pinout se potrivește cu pinii FTDI care ies de pe placa de însoțire.

După ce ați conectat FTDI la placa de însoțire, continuați și conectați-l la computer. De acolo, încărcați schița de exemplu clipire pentru a vă asigura că bootloader-ul a fost aprins corect. Selectați Arduino / Genuino Uno din meniul de panouri. Odată ce schița de clipire este încărcată, ar trebui să vedeți LED-ul de clipire clipind, așa cum era de așteptat. Dacă acest lucru funcționează, atunci sunteți gata să utilizați încărcați propriile schițe personalizate pe IC, așa cum ați face cu orice alt Arduino.

Pasul 6: Munca viitoare

În viitor, intenționez să transform acest lucru într-un scut Arduino Uno. Nu ar trebui să treacă mult timp pentru a face acest lucru și, dacă oamenii vor, pot încărca fișierele Eagle pentru asta și aici. Acest lucru ar simplifica pasul de încărcare, deoarece nu ar trebui să vă faceți griji cu privire la conectarea incorectă a acestuia. Sunt deschis și la alte sugestii de îmbunătățire, cu toate acestea, nu bănuiesc că voi face mult mai mult cu acest lucru, deoarece a fost doar un pas necesar în pregătirea proiectelor mele viitoare.

Dacă doriți să vedeți mai multe din proiectele mele viitoare, anunțați-mă și voi încerca să mențin comunitatea la curent.

Recomandat: