Satura rādītājs:

Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!): 4 soļi
Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!): 4 soļi

Video: Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!): 4 soļi

Video: Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!): 4 soļi
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, Novembris
Anonim
Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!)
Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!)
Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!)
Atsevišķs Arduino 3.3V W / ārējais 8 MHz pulkstenis tiek ieprogrammēts no Arduino Uno, izmantojot ICSP / ISP (ar sērijas uzraudzību!)

Mērķi:

  • Lai izveidotu atsevišķu Arduino, kas darbojas ar 3,3 V spriegumu no 8 MHz ārējā pulksteņa.
  • Lai to ieprogrammētu, izmantojot ISP (pazīstams arī kā ICSP, sērijas programmēšana ķēdē) no Arduino Uno (darbojas pie 5 V)

    Lai rediģētu sāknēšanas ielādētāja failu un ierakstītu sāknēšanas ielādētāju (izmantojot ISP)

  • Lai varētu nolasīt sērijveida informāciju no atsevišķā Arduino, izmantojot FTDI kabeli

    Lai varētu nolasīt sērijveida informāciju no atsevišķā Arduino bez FTDI kabeļa

Preambula:

Es mēģināju izveidot savu patstāvīgo projektu, bet neredzēju nevienu visaptverošu rokasgrāmatu par atsevišķa Arduino darbību, programmēšanu un uzraudzību - it īpaši tādu, kas darbojās ar 8Mhz ārējo pulksteni un 3,3V un ko ieprogrammēja Arduino UNO. Esmu apkopojis vairākus atsevišķus ceļvežus un esmu mēģinājis norādīt, no kurienes es ieguvu informāciju, lai sniegtu kredītu, ja kredīts pienākas. Šī rokasgrāmata ir daudzu dienu rezultāts, meklējot risinājumus un atrodot tās daļas vienlaikus, kamēr es veidoju savu projektu. Turklāt esmu saistījis vairākus noderīgus produktus, kas varētu noderēt nevis tāpēc, ka esmu saistīts ar kādu no uzņēmumiem, bet tāpēc, ka ir svarīgi iekļaut konkrētos posteņus, uz kuriem es atsaucos.

Bieži uzdotie jautājumi, pirms sākam:

Kāpēc jums tas jāprogrammē ar ISP un jāuzrauga, izmantojot FTDI? Kāpēc jūs nevarat to vienkārši ieprogrammēt, izmantojot FTDI?

Mums būs jāmaina drošinātāju iestatījumi, ierakstot jaunu sāknēšanas ielādētāju, un jūs to nevarat izdarīt, izmantojot sērijas sakarus. Jums ir jāsadedzina sāknēšanas ielādētājs, izmantojot ISP. Tas ir noderīgi arī tiem, kuriem nav iepriekš ielādētas ATMEGA328 mikroshēmas.

Kāpēc es neizmantoju ISP kabeli ar sērijveida uzraudzību, piemēram, šo?

Varbūt, tāpat kā man, jums vienkārši nav tāda un, nevis gaidāt, kad tas tiks nosūtīts, jums patīk izmantot to, kas jums ir! Man gadās būt FTDI kabelis (lai gan jūs atradīsit, ka jums tas pat nav vajadzīgs: tas tikai atvieglo jūsu dzīvi).

Vai man nav nepieciešams loģikas līmeņa pārslēdzējs no Uno uz atsevišķo Arduino?

Jā, jūs to darāt, bet es jums parādīšu, kā to izdarīt pats. Tāpat kā ISP kabelis, man tā nav.

Es gribu to izslēgt no ārējas enerģijas. Kā lai es to izdaru?

Ir daudz ceļvežu, kas parāda, kā darbināt atsevišķu Arduino no akumulatora enerģijas. Es uzrakstīšu, kā es to izdarīju, un saite šeit [ievietošu vēlāk].

GIDS

1. darbība: izveidojiet autonomo Arduino

Patstāvīgā Arduino veidošana
Patstāvīgā Arduino veidošana
Patstāvīgā Arduino veidošana
Patstāvīgā Arduino veidošana

1) Izveidojiet savrupo Arduino no šīs saites. Vienīgā nepieciešamā rokasgrāmatas daļa ir "Pamati ATMEGA8/168/328".

  • jūs varat barot atsevišķo Arduino no 3.3 V no Arduino Uno. (Jūs varat izlaist apmācības pirmo sadaļu ar nosaukumu "Strāvas padeves ķēdes pievienošana".
  • Nomainiet 16 MHz pulksteni ar 8 Mhz pulksteni.
  • Pievienojiet 0,1 uF vāciņus starp: VCC un Gnd (abām pusēm) VRef un Gnd.

    • Man tie nav iekļauti attēlā, bet man ir savos projektos!
    • Es zinu, ka tas ir 16 MHz oscilators fotoattēlā. Es fotografēju, pirms sapratu visu, ko darīju ceļvedī!

ATMEGA328p pinout attēla avots šeit.

Bieži sastopami problēmu novēršanas padomi

  • Pārliecinieties, vai esat atiestatījis iestatīto vērtību, izmantojot 10 k rezistoru no VCC uz ATMEGA 1. tapu. Ja tapa ir iezemēta vai peldoša, tā nedarbosies.
  • Vēlreiz pārbaudiet, vai vadi un oscilators ir ievietoti pareizi.
  • Pārliecinieties, ka 8 MHz oscilatoram izmantojat 22pF kondensatorus. Citādi tas nedarbosies.
  • Pārliecinieties, vai ierīce ir barota.

2. solis: ISP elektroinstalācija

ISP elektroinstalācija
ISP elektroinstalācija
ISP elektroinstalācija
ISP elektroinstalācija

2) Izveidojiet ISP daļu

Jūs sekosit šai rokasgrāmatai šeit ar nelielu, bet ļoti svarīgu soli.

Iemesls, kāpēc jūs nevarat vienkārši sekot ceļvedim, ir tas, ka jums trūkst būtiskas daļas: jūs nevarat ieprogrammēt 3,3 V ierīci tieši no 5 V savienojumiem. (Vismaz es nevarēju: tas nedarbosies, kamēr es to nedarīšu). Jums jāievieto loģikas līmeņa pārslēdzējs, kas pārnes 5V signālus no UNO uz 3.3V standalone Arduino.

Ja jums nav loģikas līmeņa pārslēdzēja plates, varat to izgatavot, izmantojot rezistorus. Viss loģikas līmeņa pārslēdzējs patiešām ir (ja vien jūs pārvietojat uz leju) ir sprieguma dalītājs. Jums būs nepieciešami 6 vienādi rezistori, nekas nav pārāk augsts vai pārāk zems. Es izmantoju 220 omu rezistorus, bet esmu pārliecināts, ka pat 10k rezistori derētu.

SCK (digitālā tapa 13) un MOSI (digitālā tapa 11) izmantojiet sprieguma dalītāju, lai samazinātu spriegumu par vienu trešdaļu. Būtībā jums būs viens Uno SCK un MOSI, tad rezistors (220 omi), pēc tam SCK un MOSI, kas savienoti ar atsevišķo Arduino, un 2 rezistori (kopā 440 omi) pie zemes.

Tātad, izlasiet šīs sadaļas sākumā norādīto rokasgrāmatu, bet starp SCK un MOSI iekļaujiet sprieguma dalītājus. Atcerieties, ka SCK, MISO, MOSI un RESET ir Uno 13., 12., 11. un 10. tapas, bet ir tapas 19, 18, 17 un 1 atsevišķajā Arduino!

Bieži sastopami problēmu novēršanas padomi

  • PĀRBAUDI VADU

    • Ja, mēģinot rakstīt programmu, jūs saņemat ierīces parakstu no visiem 0, vadi gandrīz noteikti ir izslēgti vai atsevišķais Arduino nesaņem strāvu.
    • Tāpat pārliecinieties, vai atiestatīšanas vads ir no 10 uz Uno līdz 1 uz atsevišķā Arduino
  • PĀRBAUDI Sprieguma dalītājus

    Pārliecinieties, ka SCK un MOSI rezistoriem ir sprieguma dalītāji ar attiecību 1: 2 (augstā puse: zemā puse). Piem. 220 rezistors +5 V pusē un pēc tam 2 220 omi (kopā 440 omi) pret zemi ar signālu pret atsevišķo Arduino vidū

3. darbība: rediģējiet sāknēšanas ielādētāja failu, ierakstiet sāknēšanas programmu un augšupielādējiet savu skici

Rediģējiet sāknēšanas ielādētāja failu, ierakstiet sāknēšanas programmu un augšupielādējiet savu skici
Rediģējiet sāknēšanas ielādētāja failu, ierakstiet sāknēšanas programmu un augšupielādējiet savu skici
Rediģējiet sāknēšanas ielādētāja failu, ierakstiet sāknēšanas programmu un augšupielādējiet savu skici
Rediģējiet sāknēšanas ielādētāja failu, ierakstiet sāknēšanas programmu un augšupielādējiet savu skici

3] Rediģējiet sāknēšanas ielādētāja (boards.txt) failu un ierakstiet sāknēšanas ielādētāju atsevišķā Arduino. Augšupielādējiet savu skici

Bootloader faila rediģēšana

Lai palaistu atsevišķo Arduino, jums būs jārediģē sāknēšanas ielādētāja drošinātāju iestatījumi. Pretējā gadījumā jūs varēsit ierakstīt sāknēšanas ielādētāju, bet nevarēsit izpildīt nevienu skici.

Jūs varat pilnībā noņemt izslēgšanas noteikšanu, bet es to neiesaku. Tā vietā mēs pazemināsim to no 2,7 V (tas, kas noklusējuma nokļuva manā mikroshēmā) un aizstāsim to ar 1,8 V. Tomēr galu galā, izmantojot drošinātāju kalkulatoru, jūs varat izvēlēties vēlamos izslēgšanas iestatījumus.

Mans dēļu fails atradās šādā vietā:

C: / Program Files (x86) Arduino / hardware / arduino / avr

Tomēr jūsu aparatūras mapē var būt vairāki faili.txt, izņemot /arudino /. Jūs rediģēsit failu boards.txt mapē / arduino / location, jo mainīsit sadaļu ATMEGA328p (3.3V, 8 MHz).

Pārinstalējot vai atjauninot Arduino IDE (saskaņā ar šo ziņu), jūs varat zaudēt rediģēto boards.txt failu. Tas nozīmē, ka, atjauninot Arduino IDE, šie iestatījumi būs jāmaina vēlreiz, ja vēlaties izveidot citu tādu pašu autonomo Arduino.

Failā boards.txt ritiniet uz leju vai meklējiet “Pro Mini”. Sadaļas nosaukums ir "pro.name = Arduino Pro vai Pro Mini". Ritiniet uz leju līdz apakšsadaļai "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)".

Atrodiet rindiņu "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

Mainiet iestatījumus uz xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Saglabāt un iziet.

Bootloader dedzināšana

Kad esat to izdarījis, varat izpildīt ISP rokasgrāmatas sadaļu “Norādījumi” no 1. līdz 5. darbībai.

Dažas lietas, kas jāprecizē:

  • Augšupielādējot skici "Arduino kā ISP", jums jāpārliecinās, vai ir izvēlēts pareizais COM ports un procesors.

    Šajā gadījumā tas nozīmē, ka esat izvēlējies sava Arduino COM portu izvēlnē Tools-> Port: COM X (Arduino Uno) un tāfele ir Arduio Uno

  • Izvēlieties pareizo programmētāju: sadaļā Rīki-> Programmētājs-> Arduino kā ISP.

    NAV ArduinoISP vai ArduinoISP.org

  • Pirms sāknēšanas sāknēšanas, nomainiet dēli "Pro vai Pro Mini" un procesoru uz "ATMEGA328p (3,3 V, 8 MHz)".

    Procesora sadaļu neredzēsit, kamēr nebūsit izvēlējies pareizo plates veidu

Pirms mēģināt uz tā uzrakstīt skices, ierakstiet sāknēšanas ielādētāju uz atsevišķā Arduino.

Skices augšupielāde

Tas ir ļoti svarīgi. Tagad jūs varat programmēt vai nu Arduino: Uno un Standalone. Ja neveicat augšupielādi pareizajā ierīcē, jums ir jāatkārto iepriekš minētā sadaļa un jāpārraksta Arduino kā ISP programma vietnē Uno.

Augšupielādējot skici, noteikti noklikšķiniet uz Rīki -> Augšupielādēt, izmantojot programmētāju VAI noklikšķiniet uz Ctrl+Shift+U. Varat arī turēt nospiestu taustiņu Shift un noklikšķināt uz bultiņas ikonas, bet neklikšķiniet uz bultiņas ikonas, nenospiežot Shift.

Bieži sastopami problēmu novēršanas padomi

  • Ieslēdziet detalizētu izvadi problēmu novēršanai.
  • "Ierīces paraksts ir 0!" [Ļoti iespējams, ka tas notiks.]

    • skatiet sadaļu ISP elektroinstalācija. Vai nu esat nepareizi pievienojis atsevišķo Arduino, vai arī tas netiek ieslēgts.
    • Pārliecinieties, vai esat izvēlējies pareizo COM portu un plati / procesoru. Kad jūs dedzināt sāknēšanas ielādētāju, jums ir jānodrošina, ka tajā tiek ierakstīts sāknēšanas ielādētājs Pro Mini 3.3V 8 MHz, pretējā gadījumā drošinātāji nebūs pareizi iestatīti.
  • "Esmu rediģējis failu boards.txt, bet neredzu labojumus"

    Pārliecinieties, vai esat rediģējis pareizo failu boards.txt. Mēģiniet atjaunināt Arduino IDE, ja labojumi nedarbojas, vai uz laiku noņemiet citas mapes jūsu / aparatūra / mapē

  • "Es nevaru atrast board.txt mini mini sadaļu!"

    Jūs neizskatāties pareizajā failā boards.txt. Pārbaudiet mapi Arduino // hardware/arduino/

4. solis: sērijas komunikācija

4) Uzraugiet atsevišķo ierīci, izmantojot seriālo sakaru

To patiešām var izdarīt, izmantojot divas metodes, tādēļ, ja jums pat nav FTDI kabeļa / pārtraukuma dēļa, tas nav pasaules gals. Un atcerieties, ka skicei, ko augšupielādējāt atsevišķajā Arduino, ir jābūt Serial.print paziņojumiem, lai jūs varētu izlasīt: ja jūs to nerakstījāt programmā, jūs neko neredzēsit!

Ja jums nav FTDI kabeļa

Kad esat sadedzinājis sāknēšanas ielādētāju un uzrakstījis vēlamo programmu, varat (ļoti uzmanīgi un atceroties, kurā virzienā tas atgriežas) noņemt ATMEGA328 DIP mikroshēmu no Arduino Uno. Šim nolūkam es iesaku izmantot plakanu galvu.

Jūs varat savienot atsevišķo Arduino RX ar Uno RX un TX ar TX. Jā, parasti tas ir pretēji, taču jūs varat iedomāties, ka Uno “pārsūta” informāciju uz IDE sērijas monitoru. Tāpēc šajā gadījumā jūs nesavienojat RX ar TX un TX ro RX. Palaižot programmu, pārliecinieties, vai esat izvēlējies Arduino Uno COM portu, un atveriet seriālo montoru. Jūs varēsit redzēt atsevišķā Arduino sērijas izvadi.

(Šis risinājums šeit tiek ieskaitīts Robin2.)

Ja jums ir FTDI kabelis / dēlis

(Es izmantoju Sparkfun FTDI plati, kuru esmu pārveidojis par 3.3V, izmantojot lodēšanas spilventiņu aizmugurē)

Vienkārši pievienojiet sadalīšanas paneļa GND ar atsevišķo Arduino zemi un savienojiet sadalītāja paneļa RX ar Arduino TX un TX ar RX. (Ja veicat tikai sērijveida uzraudzību un neko nerakstāt, varat vienkārši savienot maizes dēļa RX ar Arduino TX).

Paturiet prātā, ka šajā brīdī jums ir iespēja barot atsevišķo Arduino, izmantojot Uno VAI FTDI kabeli. Nepievienojiet abus barošanas avotus vienlaicīgi! Ņemiet vērā, ka jums būs jāmaina COM ports, jo tas būs atšķirīgs no Arduino Uno COM porta.

Bieži sastopami problēmu novēršanas padomi

  • "Es neko neredzu!"

    • Pārbaudiet, vai ir iespējots pareizais COM ports.
    • Pārbaudiet, vai jums ir jaunākie FTDI draiveri.
    • Nodrošiniet, lai pamatne būtu savienota.
  • "Viss, ko es redzu, ir atkritumu izvadīšana sērijveida monitorā!"

    • Jūs saņemat kaut ko, kas ir laba zīme.
    • Tomēr pārbaudiet FTDI plates spriegumu.
    • Patstāvīgais Arduino uz TX izvada 3,3 V, un FTDI dēlis, iespējams, to neuzņem, ja gaida 5 V.
    • Pārbaudiet pārraides ātrumu.
    • Pārliecinieties, vai ir pievienots zemējums un pievienots tikai viens barošanas avots! (Ti, nepieslēdziet atsevišķo Arduino no Uno UN jūsu FTDI plates.

Ieteicams: