Sadržaj:
- Korak 1: Izgradnja samostalnog Arduina
- Korak 2: ISP ožičenje
- Korak 3: Uredite datoteku Bootloader, narežite Bootloader i prenesite svoju skicu
- Korak 4: Serijska komunikacija
Video: Samostalni Arduino 3.3V W / vanjski sat od 8 MHz koji se programira iz Arduino Uno putem ICSP / ISP -a (sa serijskim nadzorom!): 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Ciljevi:
- Za izgradnju samostalnog Arduina koji radi na 3.3V s vanjskog takta 8 MHz.
-
Za programiranje putem ISP-a (poznatog i kao ICSP, serijsko programiranje u krugu) s Arduino Uno (radi na 5V)
Za uređivanje datoteke pokretačkog programa i snimanje pokretačkog programa (putem ISP -a)
- Da biste mogli čitati serijske podatke s samostalnog Arduina putem FTDI kabela
Da biste mogli čitati serijske podatke sa samostalnog Arduina bez FTDI kabela
Preambula:
Pokušavao sam izgraditi svoj samostalni projekt, ali nisam vidio sveobuhvatne vodiče o pokretanju, programiranju i nadzoru samostalnog Arduina - osobito onog koji radi na vanjskom taktu od 8 MHz i 3,3 V, a programirao ga je Arduino UNO. Sastavio sam niz zasebnih vodiča i pokušao sam referencirati odakle sam dobio podatke kako bih odao priznanje o tome gdje kredit dospijeva. Ovaj vodič je rezultat višednevnog traženja rješenja i pronalaženja njegovih dijelova odjednom dok sam gradio vlastiti projekt. Također, povezao sam nekoliko korisnih proizvoda koji bi mi došli u ruke ne zato što sam povezan s bilo kojim od tvrtkama, ali zato što je važno uključiti posebne stavke na koje se pozivam.
Uobičajena pitanja prije nego počnemo:
Zašto ga trebate programirati s ISP -om i nadzirati putem FTDI -ja? Zašto ga jednostavno ne možete programirati putem FTDI -ja?
Morat ćemo promijeniti postavke osigurača ubacivanjem novog pokretačkog programa, a to ne možete učiniti putem serijske komunikacije. Bootloader morate snimiti putem ISP -a. Ovo je također korisno za one koji nemaju prethodno učitani ATMEGA328 čip.
Zašto jednostavno ne koristim ISP kabel sa serijskim nadzorom, poput ovog?
Možda, poput mene, jednostavno nemate jedan i radije ćete koristiti ono što imate umjesto da čekate da vam ga pošalju! Slučajno imam FTDI kabel (iako ćete u konačnici otkriti da vam čak ni ne treba: samo vam olakšava život).
Ne trebam li mjenjač logičke razine s Unoa na samostalni Arduino?
Da, morate, ali pokazat ću vam kako sami napraviti. Kao i ISP kabel, slučajno ga nemam.
Želim ga napajati vanjskim napajanjem. Kako da to učinim?
Postoji mnogo vodiča koji pokazuju kako pokrenuti samostalni Arduino bez energije baterije. Napisat ću kako sam to napravio i povezati ga ovdje [umetnut ću kasnije].
VODIČ
Korak 1: Izgradnja samostalnog Arduina
1) Napravite samostalni Arduino s ove veze. Jedini dio vodiča koji vam je potreban su "Osnove ATMEGA8/168/328".
- možete napajati samostalni Arduino sa 3,3 V iz Arduino Uno. (Možete preskočiti prvi odjeljak vodiča pod naslovom "Dodavanje kruga za napajanje."
- Zamijenite sat od 16 MHz sa taktom od 8 Mhz.
-
Dodajte 0,1 uF ograničenja između: VCC i Gnd (obje strane) VRef i Gnd.
- Nemam ove slike na slici, ali ih imam u svojim projektima!
- Znam da je to oscilator od 16 MHz na fotografiji. Fotografirao sam prije nego sam shvatio sve što sam učinio u vodiču!
Izvor slike pinout ATMEGA328p ovdje.
Uobičajeni savjeti za rješavanje problema
- Provjerite jeste li resetirali postavljeno visoko preko 10k otpornika iz VCC -a na pin 1 ATMEGA -e. Ako je iglica uzemljena ili pluta, neće raditi.
- Dvaput provjerite jeste li ispravno umetnuli žice i oscilator.
- Za oscilator od 8 MHz koristite kondenzatore od 22 pF. Drugačije neće funkcionirati.
- Uvjerite se da je uređaj napajan.
Korak 2: ISP ožičenje
2) Kreirajte dio ISP -a
Ovaj ćete vodič slijediti malim, ali vrlo važnim korakom.
Razlog zašto ne možete jednostavno slijediti vodič je zato što vam nedostaje ključni dio: ne možete programirati 3.3V uređaj izravno s 5V veza. (Barem nisam mogao: ne bi uspjelo dok ovo ne učinim). Morate umetnuti mjenjač logičke razine koji pomiče 5V signale s UNO -a na samostalni Arduino od 3,3 V.
Ako nemate ploču za prebacivanje logičke razine, možete je napraviti pomoću otpornika. Sve što mjenjač logičke razine zaista jest (sve dok se pomaknete prema dolje) je djelitelj napona. Trebat će vam 6 istih otpornika, ništa previsoko ili prenisko. Koristio sam otpornike od 220 ohma, ali siguran sam da bi čak i 10 k otpornika radilo.
Za SCK (digitalni pin 13) i MOSI (digitalni pin 11) upotrijebite razdjelnik napona za smanjenje napona za jednu trećinu. U biti ćete imati jedan Uno SCK i MOSI, zatim otpornik (220 ohma), zatim SCK i MOSI spojen na samostalni Arduino i 2 otpornika (ukupno 440 ohma) na masu.
Dakle, pročitajte vodič koji je povezan na početku ovog odjeljka, ali uključite razdjelnike napona između SCK i MOSI. Zapamtite, SCK, MISO, MOSI i RESET su pinovi 13, 12, 11 i 10 na Uno -u, ali su pinovi 19, 18, 17 i 1 na samostalnom Arduinu!
Uobičajeni savjeti za rješavanje problema
-
PROVJERITE OŽIČENJE
- Ako prilikom pokušaja pisanja programa dobivate potpis uređaja svih 0, tada je vaše ožičenje gotovo sigurno isključeno ili samostalni Arduino ne dobiva napajanje.
- Također provjerite imate li žicu za resetiranje od 10 na Uno do 1 na samostalnom Arduinu
- PROVJERITE RAZDJELNIKE NAPONA
Provjerite imate li razdjelnike napona u omjeru 1: 2 (visoka strana: niska strana) za otpornike i za SCK i za MOSI. Npr. 220 otpornik na strani +5V, a zatim 2 220 ohmska otpornika (ukupno 440 ohma) prema tlu sa signalom prema samostalnom Arduinu u sredini
Korak 3: Uredite datoteku Bootloader, narežite Bootloader i prenesite svoju skicu
3) Uredite datoteku bootloader (board.txt) i snimite bootloader na samostalni Arduino. Prenesite svoju skicu
Uređivanje datoteke za podizanje sustava
Da biste pokrenuli samostalni Arduino, morat ćete urediti postavke osigurača smeđe boje u bootloaderu. U suprotnom ćete moći snimiti pokretački program na njemu, ali nećete moći pokrenuti skice.
Možete potpuno ukloniti otkrivanje smeđe boje, ali to ne bih preporučio. Umjesto toga, spustit ćemo ga s 2,7 V (ono što je na mom čipu zadano) i zamijeniti ga s 1,8 V. U konačnici, međutim, pomoću kalkulatora osigurača možete odabrati koje postavke smeđe boje želite.
Datoteka moje ploče nalazila se na sljedećem mjestu:
C: / Program Files (x86) Arduino / hardware / arduino / avr
Međutim, možda imate više od jedne datoteke files.txt u mapi hardvera osim /arudino /. Uređivat ćete datoteku board.txt na / arduino / lokaciji jer ćete mijenjati odjeljak ATMEGA328p (3,3 V, 8 MHz).
Uređenu datoteku Board.txt možete izgubiti ako ponovno instalirate ili ažurirate Arduino IDE (prema ovom postu). To znači da ćete, ako ažurirate Arduino IDE, morati ponovno promijeniti ove postavke ako želite stvoriti još jedan isti samostalni Arduino.
U datoteci board.txt pomaknite se prema dolje ili potražite "Pro Mini". Odjeljak je naslovljen "pro.name = Arduino Pro ili Pro Mini". Pomaknite se dolje do pododjeljka "pro.menu.cpu.8MHzatmega328 = ATmega328P (3,3 V, 8 MHz)".
Potražite redak koji kaže "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"
Promijenite postavke na xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).
Spremi i izađi.
Paljenje Bootloader -a
Nakon što to učinite, možete slijediti odjeljak "Upute" u vodiču za ISP -e od koraka 1 do 5.
Neke stvari treba pojasniti:
-
Kada prenosite skicu "Arduino kao ISP", morate biti sigurni da ste odabrali ispravan COM port i procesor.
U ovom slučaju to znači da ste odabrali COM port vašeg Arduina u Alati-> Port: COM X (Arduino Uno), a ploča je Arduio Uno
-
Odaberite ispravnog programera: pod Alati-> Programer-> Arduino kao ISP.
NE ArduinoISP ili ArduinoISP.org
-
Prije snimanja pokretačkog programa, promijenite ploču "Pro ili Pro Mini" i Procesor u "ATMEGA328p (3,3 V, 8 MHz)".
Nećete vidjeti odjeljak procesora sve dok ne odaberete ispravnu vrstu ploče
Spalite bootloader na samostalni Arduino PRIJE nego pokušate napisati skice na njega.
Učitavanje skice
Ovo je veoma važno. Sada možete programirati bilo Arduino: Uno i samostalni. Ako ne učitate na ispravan uređaj, morate ponoviti gornji odjeljak i prepisati Arduino kao ISP program na Uno -u.
Kad prenesete svoju skicu, pazite da kliknete Alati -> Prenesi pomoću programatora ILI kliknite Ctrl+Shift+U. Također možete držati shift i kliknuti ikonu strelice, ali nemojte pritisnuti ikonu strelice bez držanja shift.
Uobičajeni savjeti za rješavanje problema
- Uključite opširni izlaz za rješavanje problema.
-
"Potpis uređaja je 0!" [Ovo će se vrlo vjerojatno dogoditi.]
- pogledajte odjeljak ISP ožičenje. Ili ste pogrešno spojili samostalni Arduino ili se ne uključuje.
- Provjerite jeste li odabrali ispravan COM port i ploču / procesor. Kada snimate pokretački program, MORATE se pobrinuti da na njemu palite pokretački program Pro Mini 3.3V 8 MHz ili se osigurači neće ispravno postaviti.
-
"Uredio sam datoteku board.txt, ali ne vidim uređivanja"
Provjerite jeste li uredili ispravnu datoteku Board.txt. Pokušajte ažurirati Arduino IDE ako uređivanja ne funkcioniraju ili privremeno uklonite druge mape u vašoj / hardverskoj / mapi
-
"Ne mogu pronaći pro mini odjeljak Board.txt!"
Ne tražite pravu datoteku Board.txt. Provjerite Arduino // hardware/arduino/mapu
Korak 4: Serijska komunikacija
4) Nadgledajte samostalni uređaj putem serijske komunikacije
To doista možete učiniti pomoću 2 metode, pa ako nemate niti FTDI kabel / ploču za probijanje, to nije kraj svijeta. I zapamtite, skica koju ste prenijeli u samostalni Arduino mora imati izjave Serial.print koje možete pročitati: ako to niste napisali u programu, nećete vidjeti ništa!
Ako nemate FTDI kabel
Nakon što ste snimili pokretački program i napisali program koji želite, možete (vrlo pažljivo i sjećajući se u kojem smjeru se vraća) ukloniti ATMEGA328 DIP čip iz Arduino Uno. Za to preporučujem korištenje ravne glave.
Možete spojiti samostalni Arduino RX na Uno RX i TX na TX. Da, obično je suprotno, ali možete misliti da Uno "prosljeđuje" podatke na IDE -ov serijski monitor. Zato u ovom slučaju ne povezujete RX na TX i TX ro RX. Prilikom izvođenja programa provjerite jeste li odabrali COM priključak Arduino Uno i otvorite serijski montor. Moći ćete vidjeti samostalni Arduino serijski izlaz.
(Ovo je rješenje ovdje pripisano Robin2.)
Ako imate FTDI kabel / ploču
(Koristim Sparkfun -ovu FTDI ploču koju sam pretvorio u 3.3V pomoću lemne ploče na stražnjoj strani)
Jednostavno spojite GND ploče za razbijanje na samostalno uzemljenje Arduina i spojite RX razbojnika na Arduino TX i TX na RX. (Ako ste samo serijski nadzor i ne pišete ništa natrag, možete samo spojiti RX matične ploče na Arduino TX).
Imajte na umu da u ovom trenutku imate mogućnost napajanja samostalnog Arduina putem Uno ILI FTDI kabela. Ne spajajte oba izvora napajanja istovremeno! Imajte na umu da ćete morati promijeniti COM port jer će se razlikovati od Arduino Uno COM porta.
Uobičajeni savjeti za rješavanje problema
-
"Ne vidim ništa!"
- Provjerite imate li omogućen ispravan COM port.
- Provjerite imate li najnovije upravljačke programe za FTDI.
- PROVJERITE DA JE UZEMLJENJE POVEZANO.
-
"Sve što vidim je izlaz smeća u serijski monitor!"
- Dobivate nešto što je dobar znak.
- Ipak, provjerite napon FTDI ploče.
- Samostalni Arduino daje 3.3V na svom TX -u, a FTDI ploča ga možda neće pokupiti ako očekuje 5V.
- Provjerite brzinu prijenosa.
- Provjerite jeste li spojeni na masu i spojeni samo jedan izvor napajanja! (Tj. Nemojte napajati samostalni Arduino s Uno I vaše FTDI ploče.
Preporučeni:
Upravljanje Led putem aplikacije Blynk pomoću Nodemcua putem interneta: 5 koraka
Upravljanje LED -om putem aplikacije Blynk pomoću Nodemcua putem Interneta: Pozdrav svima Danas ćemo vam pokazati kako možete upravljati LED diodom pomoću pametnog telefona putem interneta
Samostalni ATmega328p (pomoću internog takta od 8 MHz): 4 koraka
Samostalni ATmega328p (pomoću internog takta od 8 MHz): ATmega328p je mikrokontroler s jednim čipom koji je stvorio Atmel u obitelji megaAVR (kasnije je Microchip Technology kupila Atmel 2016.). Ima 8-bitnu RISCprocesorsku jezgru Harvard arhitekture. Ovaj mikrokontroler je mozak Arduina
Napravi sam samostalni Arduino Uno: 5 koraka
DIY samostalni Arduino Uno: U ovom projektu ću vam reći kako možemo napraviti DIY Arduino Uno samo postavljanjem na ploču. To se može učiniti iz različitih razloga, poput pojeftinjenja, male veličine, smanjene potrošnje energije itd. Ovaj projekt će vam omogućiti način da
Kako napraviti vlastiti USB auto punjač za bilo koji IPod ili druge uređaje koji se pune putem USB -a: 10 koraka (sa slikama)
Kako napraviti vlastiti USB auto punjač za bilo koji IPod ili druge uređaje koji se pune putem USB -a: Izradite USB auto punjač za bilo koji iPod ili drugi uređaj koji se puni putem USB -a spajanjem automobilskog adaptera koji izlazi 5v i USB ženski utikač. Najvažniji dio ovog projekta je provjeriti je li izlaz vašeg odabranog adaptera za automobil oklada
Napravite pravi sat koji zvoni za vaše računalo i sat za gašenje požara: 3 koraka (sa slikama)
Napravite pravi sat za svoje računalo i sat za udaranje vatrogasnih aparata: Mesingano zvono, mali relej, još nekoliko stvari i pravo zvono mogu otkucati sate na vašoj radnoj površini. Iako ovaj projekt radi na Windowsima i Mac-u OS X također, odlučio sam instalirati Ubuntu Linux na računalo koje sam našao u smeću i poraditi na tome: nikad nisam