Obsah:

Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!): 4 kroky
Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!): 4 kroky

Video: Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!): 4 kroky

Video: Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!): 4 kroky
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, November
Anonim
Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!)
Samostatné hodiny Arduino 3,3 V / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!)
Samostatné hodiny Arduino 3,3 W / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!)
Samostatné hodiny Arduino 3,3 W / externé 8 MHz programované z Arduino Uno prostredníctvom ICSP / ISP (so sériovým monitorovaním!)

Ciele:

  • Postaviť samostatné Arduino, ktoré beží na 3,3 V z externých hodín 8 MHz.
  • Programovať ho prostredníctvom ISP (tiež známy ako ICSP, sériové programovanie v obvode) z Arduino Uno (pracujúceho na 5V)

    Úprava súboru bootloadera a napálenia bootloadera (cez ISP)

  • Aby bolo možné čítať sériové informácie zo samostatného Arduina prostredníctvom kábla FTDI

    Byť schopný čítať sériové informácie zo samostatného Arduina bez kábla FTDI

Preambula:

Pokúšal som sa vytvoriť svoj samostatný projekt, ale nevidel som žiadne komplexné príručky o spustení, programovaní a monitorovaní samostatného Arduina - najmä jedného, ktorý beží na externých hodinách s frekvenciou 8 MHz a 3,3 V a programuje ho Arduino UNO. Zostavil som niekoľko samostatných sprievodcov a pokúsil som sa uviesť, odkiaľ som získal informácie, aby som poskytol kredit tam, kde je splatný kredit. Táto príručka je výsledkom mnohých dní hľadania riešení a nachádzania ich častí v čase, keď som budoval svoj vlastný projekt. Tiež som prepojil niekoľko užitočných produktov, ktoré by sa mi dostali do rúk, nie preto, že by som bol spojený s ktorýmkoľvek z nich spoločností, ale pretože je dôležité zahrnúť konkrétne položky, o ktorých hovorím.

Bežné otázky, než začneme:

Prečo ho potrebujete naprogramovať u ISP a monitorovať cez FTDI? Prečo to nemôžete jednoducho naprogramovať cez FTDI?

Budeme musieť zmeniť nastavenia poistiek vypálením nového bootloadera a nemôžete to urobiť prostredníctvom sériovej komunikácie. Zavádzač musíte napaľovať cez ISP. To je tiež užitočné pre tých, ktorí nemajú vopred načítaný čip ATMEGA328.

Prečo nepoužívam kábel ISP so sériovým monitorovaním, ako je tento?

Možno, ako ja, náhodou nemáte ani jeden, a namiesto toho, aby ste čakali na jeho odoslanie, radi použijete to, čo máte! Náhodou mám kábel FTDI (aj keď nakoniec zistíte, že ho ani nepotrebujete: jednoducho vám uľahčuje život).

Nepotrebujem logický radič úrovní z Uno na samostatné Arduino?

Áno, máte, ale ukážem vám, ako si ho vyrobiť sami. Rovnako ako kábel ISP, náhodou ho nemám.

Chcem to vybiť z externého zdroja. Ako to urobím?

Existuje množstvo sprievodcov, ktorí ukazujú, ako spustiť samostatné Arduino z batérie. Napíšem, ako som to urobil, a dám sem odkaz [vložím neskôr].

SPRIEVODCA

Krok 1: Budovanie samostatného Arduina

Budovanie samostatného Arduina
Budovanie samostatného Arduina
Budovanie samostatného Arduina
Budovanie samostatného Arduina

1) Vytvorte samostatné Arduino z tohto odkazu. Jediná časť príručky, ktorú potrebujete, je „Základy ATMEGA8/168/328“.

  • samostatné Arduino môžete napájať z 3,3 V z Arduino Uno. (Prvú časť tutoriálu s názvom „Pridanie obvodu pre napájací zdroj“môžete preskočiť.
  • Hodiny 16 MHz nahraďte hodinami 8 Mhz.
  • Pridajte 0,1 uF čiapky medzi: VCC a Gnd (obe strany) VRef a Gnd.

    • Nemám tieto na obrázku, ale mám ich vo svojich projektoch!
    • Viem, že na fotografii je to 16 MHz oscilátor. Fotografiu som urobil skôr, ako som zistil, čo všetko som v sprievodcovi urobil!

Zdroj obrázku pinoutu ATMEGA328p tu.

Bežné tipy na riešenie problémov

  • Uistite sa, že ste resetovali vysoko nastavený odpor 10k z VCC na pin 1 ATMEGA. Ak je kolík uzemnený alebo plávajúci, nebude fungovať.
  • Znova skontrolujte, či ste správne vložili káble a oscilátor.
  • Pre 8 MHz oscilátor používajte kondenzátory 22pF. Inak to nepôjde.
  • Zaistite, aby bolo zariadenie napájané.

Krok 2: Zapojenie ISP

ISP Wiring
ISP Wiring
ISP Wiring
ISP Wiring

2) Vytvorte časť ISP

Tu sa budete riadiť týmto sprievodcom malým, ale veľmi dôležitým krokom.

Dôvodom, prečo sa nemôžete jednoducho riadiť sprievodcom, je to, že vám chýba zásadná časť: zariadenie s napätím 3,3 V nemôžete naprogramovať priamo z 5 V pripojení. (Aspoň som nemohol: nebude to fungovať, kým to neurobím). Musíte vložiť logický radič úrovne, ktorý posúva signály 5V z UNO do 3.3Vstandalone Arduino.

Ak nemáte dosku s logickým radením, môžete si ju vyrobiť pomocou odporov. Logický radič úrovní skutočne je (pokiaľ radíte dole) je delič napätia. Budete potrebovať 6 rovnakých rezistorov, nič príliš vysoké ani nízke. Použil som 220 ohmové odpory, ale som si istý, že aj 10k odpory budú fungovať.

Pri SCK (digitálny kolík 13) a MOSI (digitálny kolík 11) použite rozdeľovač napätia na zníženie napätia o jednu tretinu. V podstate budete mať jeden Uno SCK a MOSI, potom odpor (220 ohmov), potom SCK a MOSI pripojené k samostatnému Arduinu a 2 odpory (celkom 440 ohmov) k zemi.

Prečítajte si teda príručku prepojenú na začiatku tejto časti, ale zahrňte rozdeľovače napätia medzi SCK a MOSI. Pamätajte si, že SCK, MISO, MOSI a RESET sú kolíky 13, 12, 11 a 10 na Uno, ale sú kolíky 19, 18, 17 a 1 na samostatnom Arduine!

Bežné tipy na riešenie problémov

  • Skontrolovať zapojenie

    • Ak pri pokuse o zápis programu získavate podpis všetkých 0, potom je vaše zapojenie takmer určite vypnuté alebo samostatné Arduino nedostáva napájanie.
    • Tiež sa uistite, že máte resetovací vodič od 10 na Uno do 1 na samostatnom Arduino
  • Skontrolujte rozdeľovače napätia

    Uistite sa, že máte rezistory na napätie pre SCK aj MOSI s pomerom 1: 2 (vysoká strana: nízka strana). Napr. odpor 220 na strane +5 V a potom 2 rezistory 220 ohmov (celkom 440 ohmov) smerom k zemi so signálom smerom k samostatnému Arduinu v strede

Krok 3: Upravte súbor bootloadera, napaľte bootloader a nahrajte svoju skicu

Upravte súbor bootloadera, napaľte bootloader a nahrajte svoju skicu
Upravte súbor bootloadera, napaľte bootloader a nahrajte svoju skicu
Upravte súbor bootloadera, napaľte bootloader a nahrajte svoju skicu
Upravte súbor bootloadera, napaľte bootloader a nahrajte svoju skicu

3) Upravte súbor bootloadera (boards.txt) a napaľujte bootloader na samostatné Arduino. Nahrajte svoj náčrt

Úprava súboru bootloadera

Aby ste mohli spustiť samostatné Arduino, budete musieť upraviť nastavenia poistky vypnutia bootloadera. V opačnom prípade na ňom budete môcť napáliť bootloader, ale nebudete môcť spustiť žiadne náčrty.

Detekciu Brownout môžete úplne odstrániť, ale neodporúčal by som to. Namiesto toho ho znížime z 2,7 V (to, čo bolo predvolene na mojom čipe) a nahradíme ho 1,8 V. Nakoniec si však môžete pomocou kalkulačky poistiek zvoliť, aké nastavenia prehľadávania chcete.

Môj súbor tabúľ bol v nasledujúcom umiestnení:

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

V priečinku s hardvérom však môžete mať viac ako jeden súbor boards.txt než /arudino /. Budete upravovať súbor boards.txt v umiestnení / arduino /, pretože budete upravovať sekciu ATMEGA328p (3,3 V, 8 MHz).

Ak preinštalujete alebo aktualizujete Arduino IDE (podľa tohto príspevku), môžete stratiť upravený súbor boards.txt. To znamená, že ak aktualizujete Arduino IDE, budete musieť tieto nastavenia znova zmeniť, ak chcete vytvoriť ďalšie z rovnakého samostatného Arduina.

V súbore boards.txt posuňte zobrazenie nadol alebo hľadajte výraz „Pro Mini“. Časť má názov „pro.name = Arduino Pro alebo Pro Mini“. Posuňte zobrazenie nadol na podsekciu „pro.menu.cpu.8MHzatmega328 = ATmega328P (3,3 V, 8 MHz)“.

Vyhľadajte riadok s textom „pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _“

Zmeňte nastavenia na xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Uložiť a ukončiť.

Napaľovanie bootloadera

Keď to urobíte, môžete postupovať podľa krokov 1 až 5 v časti „Pokyny“v sprievodcovi ISP.

Niektoré veci na objasnenie:

  • Pri odosielaní náčrtu „Arduino ako ISP“musíte zaistiť, aby ste vybrali správny port COM a procesor.

    V tomto prípade to znamená, že ste vybrali COM port vášho Arduina v Tools-> Port: COM X (Arduino Uno) a doska je Arduio Uno

  • Vyberte správneho programátora: v časti Nástroje-> Programátor-> Arduino ako ISP.

    NIE ArduinoISP alebo ArduinoISP.org

  • Pred vypálením bootloderu zmeňte dosku „Pro alebo Pro Mini“a procesor na „ATMEGA328p (3,3 V, 8 MHz)“.

    Sekciu procesora neuvidíte, kým nevyberiete správny typ dosky

Predtým, ako sa na ne pokúsite napísať náčrty, napaľujte bootloader na samostatné Arduino.

Odovzdávanie náčrtu

Toto je veľmi dôležité. Teraz môžete programovať Arduino: Uno a Standalone. Ak nenahráte na správne zariadenie, musíte zopakovať vyššie uvedenú časť a prepísať Arduino ako program ISP na serveri Uno.

Pri odosielaní náčrtu kliknite na Nástroje -> Nahrať pomocou programátora ALEBO kliknite na Ctrl+Shift+U. Môžete tiež podržať Shift a kliknúť na ikonu šípky, ale nekliknúť na ikonu šípky bez podržania Shift.

Bežné tipy na riešenie problémov

  • Na riešenie problémov zapnite podrobný výstup.
  • „Všetky signatúry zariadenia sú 0!“[K tomuto veľmi pravdepodobne dôjde.]

    • pozri časť ISP Wiring. Buď ste nesprávne zapojili samostatné Arduino, alebo nie je zapnuté.
    • Uistite sa, že ste vybrali správny port COM a dosku / procesor. Keď napaľujete bootloader, MUSÍTE sa presvedčiť, že na ňom napaľujete bootloader Pro Mini 3,3 V 8 MHz, inak sa poistky nenastavia správne.
  • "Upravil som súbor boards.txt, ale úpravy sa mi nezobrazujú"

    Uistite sa, že ste upravili správny súbor boards.txt. Skúste úpravy Arduino IDE, ak úpravy nefungujú, alebo dočasne odstráňte ďalšie priečinky vo vašom priečinku / hardware /

  • „Nemôžem nájsť profesionálnu sekciu boards.txt!“

    Nehľadáte do správneho súboru boards.txt. Skontrolujte priečinok Arduino // hardware/arduino/

Krok 4: Sériová komunikácia

4) Monitorujte samostatné zariadenie prostredníctvom sériovej komunikácie

Skutočne to môžete urobiť dvoma spôsobmi, takže ak nemáte ani káblovú / oddeľovaciu dosku FTDI, nie je to koniec sveta. A pamätajte, že skica, ktorú ste nahrali do samostatného Arduina, musí obsahovať vyhlásenia Serial.print, ktoré si musíte prečítať: ak ste to nezapísali do programu, nič neuvidíte!

Ak nemáte kábel FTDI

Potom, čo ste spustili bootloader a napísali požadovaný program, môžete (veľmi opatrne a pamätajúc si, v ktorej orientácii sa vracia) odstrániť čip ATMEGA328 DIP z Arduino Uno. Odporúčam na to použiť plochú hlavu.

Samostatné Arduino RX môžete pripojiť k Uno RX a TX k TX. Áno, normálne je to naopak, ale Uno môžete považovať za „preposielanie“informácií na sériový monitor IDE. Preto v tomto prípade nepripájate RX k TX a TX ro RX. Keď spustíte program, uistite sa, že máte vybratý port COM Arduino Uno a otvorte sériový monitor. Budete môcť vidieť sériový výstup štandardného Arduina.

(Toto riešenie je pripísané Robin2 tu.)

Ak máte kábel / dosku FTDI

(Používam dosku Sparkfun FTDI, ktorú som pomocou spájkovacej podložky na zadnej strane konvertoval na 3,3 V)

Jednoducho pripojte GND breakout dosky k samostatnému uzemneniu Arduina a pripojte RX breakoutboardu k TX Arduina a TX k RX. (Ak robíte LEN sériové monitorovanie a nepíšete nič späť, stačí pripojiť RX breadoutboardu k Arduino TX).

Majte na pamäti, že v tomto mieste máte možnosť napájať samostatné Arduino pomocou kábla Uno ALEBO FTDI. Nepripájajte oba zdroje napájania súčasne! Upozorňujeme, že budete musieť zmeniť port COM, pretože bude iný ako port Arduino Uno COM.

Bežné tipy na riešenie problémov

  • „Nič nevidím!“

    • Skontrolujte, či máte povolený správny port COM.
    • Skontrolujte, či máte najnovšie ovládače FTDI.
    • ZABEZPEČTE, ŽE JE PRIPOJENÝ POZEMOK.
  • „Všetko, čo vidím, je odpadkový výstup na sériovom monitore!“

    • Získate niečo, čo je dobrým znamením.
    • Skontrolujte však napätie dosky FTDI.
    • Samostatné Arduino má na svojom TX výstup 3,3 V a doska FTDI ho nemusí zdvihnúť, ak očakáva 5 V.
    • Skontrolujte prenosovú rýchlosť.
    • Uistite sa, že máte pripojenú zem a iba jeden zdroj napájania! (Tj. Nenapájajte samostatné Arduino z dosky Uno AND z vašej dosky FTDI.

Odporúča: