Sisällysluettelo:

Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!): 4 vaihetta
Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!): 4 vaihetta

Video: Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!): 4 vaihetta

Video: Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!): 4 vaihetta
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Heinäkuu
Anonim
Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!)
Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!)
Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!)
Erillinen Arduino 3,3 V: n W / ulkoinen 8 MHz: n kello ohjelmoidaan Arduino Unosta ICSP / ISP: n kautta (sarjavalvonnalla!)

Tavoitteet:

  • Rakentaa itsenäinen Arduino, joka toimii 3,3 V: lla 8 MHz: n ulkoisella kellolla.
  • Ohjelmoida se Internet-palveluntarjoajan (tunnetaan myös nimellä ICSP, piirin sisäinen sarjaohjelmointi) kautta Arduino Unolta (5 V: n jännitteellä)

    Käynnistyslataustiedoston muokkaaminen ja käynnistyslataimen polttaminen (Internet -palveluntarjoajan kautta)

  • Voit lukea sarjatietoja itsenäisestä Arduinosta FTDI -kaapelin kautta

    Voit lukea sarjatietoja itsenäisestä Arduinosta ilman FTDI -kaapelia

Johdanto:

Yritin rakentaa itsenäistä projektiani, mutta en nähnyt kattavia oppaita itsenäisen Arduinon käynnistämisestä, ohjelmoinnista ja seurannasta - erityisesti sellaisesta, joka juoksi 8 MHz: n ulkoisen kellon ja 3,3 V: n ja jonka ohjelmoi Arduino UNO. Olen koonnut yhteen useita erillisiä oppaita ja olen yrittänyt viitata siihen, mistä olen saanut tiedot, jotta voin antaa luottoa, jos luotto on maksettava. Tämä opas on tulosta monista päivistä, kun etsimme ratkaisuja ja löysimme osia siitä kerrallaan, kun rakensin omaa projektiani. Lisäksi olen linkittänyt useita hyödyllisiä tuotteita, jotka olisivat hyödyllisiä, koska en ole sidoksissa mihinkään yrityksille, mutta koska on aiheellista sisällyttää ne kohdat, joihin viittaan.

Yleisiä kysymyksiä ennen kuin aloitamme:

Miksi sinun on ohjelmoitava se Internet -palveluntarjoajan kanssa ja valvottava FTDI: n kautta? Miksi et voi ohjelmoida sitä vain FTDI: n kautta?

Meidän on muutettava sulakeasetuksia polttamalla uusi käynnistyslatain, etkä voi tehdä sitä sarjaliikenteen kautta. Käynnistyslatain on poltettava Internet -palveluntarjoajan kautta. Tästä on hyötyä myös niille, joilla ei ole esiladattua ATMEGA328-sirua.

Miksi en käytä vain ISP -kaapelia sarjavalvonnalla, kuten tämä?

Ehkä, kuten minulla, sinulla vain ei ole sellaista ja haluat odottaa sen lähettämistä, että haluat käyttää sitä, mitä sinulla on! Minulla sattuu olemaan FTDI -kaapeli (vaikka huomaat lopulta, ettet edes tarvitse sitä: se vain helpottaa elämääsi).

Eikö minun tarvitse logiikan tason vaihtoa Unosta itsenäiseen Arduinoon?

Kyllä, mutta näytän sinulle, kuinka tehdä se itse. ISP -kaapelin tapaan minulla ei ole sitä.

Haluan sammuttaa sen ulkoiselta virtalähteeltä. Miten teen sen?

On olemassa paljon oppaita, jotka osoittavat, kuinka käyttää erillistä Arduinoa akkuvirrasta. Kirjoitan miten tein sen ja linkitän sen tähän [lisää myöhemmin].

OPAS

Vaihe 1: Rakenna itsenäinen Arduino

Itsenäisen Arduinon rakentaminen
Itsenäisen Arduinon rakentaminen
Itsenäisen Arduinon rakentaminen
Itsenäisen Arduinon rakentaminen

1) Rakenna itsenäinen Arduino tästä linkistä. Ainoa tarvitsemasi oppaan osa on "ATMEGA8/168/328 -perusteet".

  • voit kytkeä erillisen Arduinon virran Arduino Unon 3.3 V: n ulostulosta. (Voit ohittaa opetusohjelman ensimmäisen osan "Virtapiirin virtapiirin lisääminen".
  • Korvaa 16 MHz: n kello 8 Mhz: n kellolla.
  • Lisää 0,1 uF -korkkia: VCC ja Gnd (molemmin puolin) VRef ja Gnd.

    • Minulla ei ole näitä kuvia, mutta minulla on niitä projekteissani!
    • Tiedän, että se on 16 MHz: n oskillaattori kuvassa. Otin valokuvan ennen kuin tajusin kaiken mitä tein oppaassa!

ATMEGA328p pinout -kuvalähde täältä.

Yleisiä vianetsintävinkkejä

  • Varmista, että olet palauttanut asetetun arvon 10 k: n vastuksen kautta VCC: stä ATMEGA: n nastaan 1. Jos nasta on maadoitettu tai kelluva, se ei toimi.
  • Tarkista, että olet liittänyt johdot ja oskillaattorin oikein.
  • Varmista, että käytät 22pF -kondensaattoreita 8 MHz: n oskillaattorille. Se ei toimi muuten.
  • Varmista, että laitteeseen on kytketty virta.

Vaihe 2: Internet -palveluntarjoajan johdotus

ISP -johdotus
ISP -johdotus
ISP -johdotus
ISP -johdotus

2) Luo Internet -palveluntarjoajan osa

Seuraat tätä opasta täällä pienellä mutta erittäin tärkeällä askeleella.

Syy, miksi et voi vain seurata opasta, on se, että puuttuu tärkeä osa: et voi ohjelmoida 3,3 V: n laitetta suoraan 5 V: n liitännöistä. (En ainakaan voinut: se ei toimisi ennen kuin tein tämän). Sinun on asennettava logiikan tasonvaihtaja, joka siirtää 5 V: n signaalit UNO: sta 3,3 V: n itsenäiseen Arduinoon.

Jos sinulla ei ole logiikkatasoista vaihtokorttia, voit tehdä sellaisen käyttämällä vastuksia. Kaikki loogisen tason vaihtimet todella ovat (niin kauan kuin vaihdat alas) on jännitteenjakaja. Tarvitset kuusi samaa vastusta, ei mitään liian korkeaa tai liian matalaa. Käytin 220 ohmin vastuksia, mutta olen varma, että jopa 10k vastukset toimisivat.

Jos käytössä on SCK (digitaalinen nasta 13) ja MOSI (digitaalinen nasta 11), katkaise jännitejakajalla jännite kolmanneksella. Pohjimmiltaan sinulla on yksi Uno SCK ja MOSI, sitten vastus (220 ohmia), sitten SCK ja MOSI yhdistetty itsenäiseen Arduinoon ja 2 vastusta (yhteensä 440 ohmia) maahan.

Joten lue tämän osan alussa linkitetty opas, mutta sisällytä jännitteenjakajat SCK: n ja MOSI: n välille. Muista, että SCK, MISO, MOSI ja RESET ovat Unon nastat 13, 12, 11 ja 10, mutta ne ovat 19, 18, 17 ja 1 erillisessä Arduinossa!

Yleisiä vianetsintävinkkejä

  • TARKISTA KYTKENTÄ

    • Jos saat laitteen allekirjoituksen kaikista 0: sta yrittäessäsi kirjoittaa ohjelmaa, johdot ovat lähes varmasti pois päältä tai erillinen Arduino ei saa virtaa.
    • Varmista myös, että olet saanut nollausjohdon Unon 10: stä 1: een erillisessä Arduinossa
  • TARKISTA JÄNNITTEENJAKAJAT

    Varmista, että sinulla on jännitteenjakajat, joiden suhde on 1: 2 (korkea puoli: matala puoli) vastuksille sekä SCK: lle että MOSI: lle. Esim. 220 vastus +5 V: n puolella ja sitten 2 220 ohmin vastusta (yhteensä 440 ohmia) kohti maata signaali kohti erillistä Arduinoa keskellä

Vaihe 3: Muokkaa Bootloader -tiedostoa, polta Bootloader ja lähetä luonnos

Muokkaa käynnistyslataustiedostoa, polta käynnistyslatainta ja lähetä luonnos
Muokkaa käynnistyslataustiedostoa, polta käynnistyslatainta ja lähetä luonnos
Muokkaa käynnistyslataustiedostoa, polta käynnistyslatainta ja lähetä luonnos
Muokkaa käynnistyslataustiedostoa, polta käynnistyslatainta ja lähetä luonnos

3) Muokkaa käynnistyslataustiedostoa (boards.txt) ja polta käynnistyslatain itsenäiseen Arduinoon. Lataa luonnoksesi

Käynnistyslataustiedoston muokkaaminen

Jotta erillinen Arduino toimisi, sinun on muokattava käynnistyslataimen ruskean sulakkeen asetuksia. Muussa tapauksessa voit polttaa käynnistyslataimen, mutta et voi suorittaa luonnoksia.

Voit poistaa brownout -tunnistuksen kokonaan, mutta en suosittele sitä. Sen sijaan alennamme sen 2,7 V: sta (mitä sirullani tuli oletuksena) ja korvataan se 1,8 V: lla. Loppujen lopuksi voit kuitenkin valita haluamasi rusketusasetukset käyttämällä sulakelaskinta täällä.

Levytiedostoni sijaitsi seuraavassa paikassa:

C: / Ohjelmatiedostot (x86) Arduino / laitteisto / arduino / avr

Laitekansiossasi voi kuitenkin olla useampi kuin yksi boards.txt -tiedosto kuin /arudino /. Aiot muokata boards.txt -tiedostoa / arduino / location, koska aiot muokata ATMEGA328p (3.3V, 8 MHz) -osaa.

Voit menettää muokatun boards.txt -tiedoston, jos asennat tai päivität Arduino IDE: n uudelleen (tämän viestin mukaan). Tämä tarkoittaa, että jos päivität Arduino IDE: n, sinun on muutettava näitä asetuksia uudelleen, jos haluat luoda toisen saman itsenäisen Arduinon.

Vieritä boards.txt -tiedostossa alaspäin tai etsi "Pro Mini". Osion otsikko on "pro.name = Arduino Pro tai Pro Mini". Vieritä alas kohtaan "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)".

Etsi rivi, joka sanoo "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

Muuta asetukset xFE: ksi. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Tallenna ja poistu.

Käynnistyslataimen polttaminen

Kun olet tehnyt tämän, voit seurata Internet -palveluntarjoajan oppaan Ohje -osiota vaiheista 1–5.

Muutama asia selvennykseksi:

  • Kun lataat "Arduino ISP" -luonnosta, sinun on varmistettava, että olet valinnut oikean COM -portin ja prosessorin.

    Tässä tapauksessa se tarkoittaa, että olet valinnut Arduinosi COM-portin kohdassa Työkalut-> Portti: COM X (Arduino Uno) ja piirilevy on Arduio Uno

  • Valitse oikea ohjelmoija: kohdasta Työkalut-> Ohjelmoija-> Arduino Internet-palveluntarjoajaksi.

    EI ArduinoISP tai ArduinoISP.org

  • Ennen kuin käynnistät käynnistyslevyn, vaihda kortti "Pro tai Pro Mini" ja suoritin asentoon "ATMEGA328p (3,3 V, 8 MHz)".

    Näet prosessoriosan ennen kuin valitset oikean levytyypin

Polta käynnistyslatain itsenäiselle Arduinolle ENNEN kuin yrität kirjoittaa sille luonnoksia.

Luonnoksen lataaminen

Tämä on hyvin tärkeää. Voit nyt ohjelmoida joko Arduinon: Unon ja itsenäisen. Jos et lataa oikealle laitteelle, sinun on toistettava yllä oleva kappale ja kirjoitettava Arduino uudelleen Internet -palveluntarjoajaksi Unoon.

Kun lataat luonnoksen, varmista, että napsautat Työkalut -> Lataa ohjelmoijalla TAI napsauta Ctrl+Vaihto+U. Voit myös pitää vaihtonäppäintä painettuna ja napsauttaa nuolikuvaketta, mutta älä napsauta nuolikuvaketta ilman vaihtonäppäintä.

Yleisiä vianetsintävinkkejä

  • Kytke monisyöttö päälle vianmääritystä varten.
  • "Laitteen allekirjoittaja on kaikki 0!" [Tämä tapahtuu hyvin todennäköisesti.]

    • katso Internet -palveluntarjoajan johdotus -osio. Joko olet kytkenyt erillisen Arduinon väärin tai sitä ei ole kytketty päälle.
    • Varmista, että olet valinnut oikean COM -portin ja kortin / suorittimen. Kun poltat käynnistyslatainta, sinun on varmistettava, että poltat Pro Pro 3.3V 8 MHz -latauslataimen, tai sulakkeet eivät ole oikein.
  • "Olen muokannut boards.txt -tiedostoa, mutta en näe muokkauksia"

    Varmista, että olet muokannut oikeaa boards.txt -tiedostoa. Yritä päivittää Arduino IDE, jos muokkaukset eivät toimi, tai poista muut kansiot / laitteisto / kansiosta väliaikaisesti

  • "En löydä board.txt -tiedoston mini -osiota!"

    Et etsi oikeaa boards.txt -tiedostoa. Tarkista Arduino // hardware/arduino/kansio

Vaihe 4: Sarjaliikenne

4) Valvo erillistä laitetta sarjaliikenteen kautta

Voit todella tehdä tämän kahdella tavalla, joten jos sinulla ei ole edes FTDI -kaapelia / katkaisukorttia, se ei ole maailman loppu. Ja muista, että luonnoksessa, jonka lähetit erilliseen Arduinoon, on oltava Serial.print -lausekkeet, jotta voit lukea: jos et kirjoittanut sitä ohjelmaan, et näe mitään!

Jos sinulla ei ole FTDI -kaapelia

Kun olet polttanut käynnistyslataimen ja kirjoittanut haluamasi ohjelman, voit (hyvin huolellisesti ja muistaa, mihin suuntaan se palaa) poistaa ATMEGA328 DIP -sirun Arduino Unosta. Suosittelen käyttämään tähän tasapäätä.

Voit liittää erillisen Arduinon RX: n Unon RX: ään ja TX: n TX: hen. Kyllä, se on yleensä päinvastoin, mutta voit ajatella, että Uno "välittää" tiedot IDE: n sarjamonitorille. Siksi et liitä RX: tä TX: ään ja TX ro RX: ään tässä tapauksessa. Kun käytät ohjelmaa, varmista, että olet valinnut Arduino Unon COM -portin ja avaa sarjamonitori. Näet itsenäisen Arduinon sarjalähdön.

(Tämä ratkaisu hyvitetään Robin2: lle täällä.)

Jos sinulla on FTDI -kaapeli / -levy

(Käytän Sparkfunin FTDI -korttia, jonka olen muuntanut 3,3 V: ksi takana olevan juotoslevyn avulla)

Yksinkertaisesti kytke murtokortin GND erilliseen Arduinon maahan ja kytke breakoutboardin RX Arduinon TX: hen ja TX RX: hen. (Jos käytät vain sarjavalvontaa etkä kirjoita mitään takaisin, voit liittää leipälevyn RX: n Arduino TX: hen).

Muista tässä vaiheessa, että sinulla on mahdollisuus kytkeä virta erilliseen Arduinoon Unon tai FTDI -kaapelin kautta. Älä kytke molempia virtalähteitä samanaikaisesti! Huomaa, että sinun on vaihdettava COM -portti, koska se tulee olemaan erilainen kuin Arduino Uno COM -portti.

Yleisiä vianetsintävinkkejä

  • "En näe mitään!"

    • Tarkista, onko oikea COM -portti käytössä.
    • Tarkista, onko sinulla uusimmat FTDI -ohjaimet.
    • VARMISTA, ETTÄ MAA ON KYTKETTY.
  • "Näen vain roskatulostusta sarjamonitorissa!"

    • Saat jotain, mikä on hyvä merkki.
    • Tarkista kuitenkin FTDI -kortin jännite.
    • Itsenäinen Arduino lähettää 3.3 V sen TX: lle ja FTDI -kortti ei ehkä ota sitä vastaan, jos se odottaa 5v.
    • Tarkista siirtonopeus.
    • Varmista, että maadoitus on kytketty ja vain yksi virtalähde on kytketty! (Eli älä kytke virtaa erilliseen Arduinoon Uno AND FTDI -kortiltasi.

Suositeltava: