Tartalomjegyzék:

Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!): 4 lépés
Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!): 4 lépés

Videó: Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!): 4 lépés

Videó: Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!): 4 lépés
Videó: How to get 5V from 18650 Lithium Battery Powering Arduino ESP32 ESP8266 or charge your phone 2024, November
Anonim
Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!)
Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!)
Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!)
Önálló Arduino 3.3V W / külső 8 MHz -es óra programozása az Arduino Uno -tól az ICSP / ISP -n keresztül (soros megfigyeléssel!)

Célok:

  • Egy önálló Arduino építése, amely 3,3 V -on működik 8 MHz -es külső óráról.
  • Programozása ISP-n (más néven ICSP, áramkörön belüli soros programozás) keresztül egy Arduino Uno-ról (5 V-on fut)

    A rendszerbetöltő fájl szerkesztése és a rendszerbetöltő írása (internetszolgáltatón keresztül)

  • Annak érdekében, hogy soros információkat lehessen olvasni az önálló Arduino -ból FTDI kábelen keresztül

    Annak érdekében, hogy soros információkat olvashasson az önálló Arduino -ból FTDI kábel nélkül

Preambulum:

Próbáltam felépíteni önálló projektemet, de nem láttam átfogó útmutatót az önálló Arduino futtatásához, programozásához és felügyeletéhez - különösen az, amelyik 8 MHz -es külső órát és 3,3 V -ot üzemeltet, és amelyet egy Arduino UNO programozott. Összegyűjtöttem számos külön útmutatót, és megpróbáltam hivatkozni arra, hogy honnan kaptam az információt, hogy hitelt adjak, ahol esedékes. Ez az útmutató annak a sok napnak az eredménye, hogy megoldásokat kerestem, és annak egy részét kerestem, miközben saját projektet építettem. Ezenkívül több hasznos terméket is linkeltem, amelyek nem a kezemben lesznek, mert kapcsolatban állok a vállalatok, hanem azért, mert releváns az általam említett konkrét tételek felvétele.

Gyakori kérdések, mielőtt elkezdenénk:

Miért kell az ISP -vel programozni és FTDI -n keresztül monitorozni? Miért nem lehet egyszerűen programozni FTDI -n keresztül?

Meg kell változtatnunk a biztosíték beállításait egy új rendszerbetöltő beégetésével, és ezt nem teheti meg soros kommunikáción keresztül. A rendszerindítót internetszolgáltatón keresztül kell égetnie. Ez azoknak is hasznos, akiknek nincs előre betöltött ATMEGA328 chipje.

Miért nem használok csak egy ISP kábelt soros megfigyeléssel, mint ez?

Lehet, hogy hozzám hasonlóan véletlenül nincs ilyen, és ahelyett, hogy kivárná az egyik szállítását, szívesen használja azt, amivel rendelkezik! Történetesen van egy FTDI -kábelem (bár rájössz, hogy végül nincs is rá szükséged: csak megkönnyíti az életed).

Nincs szükségem logikai szintváltóra az Uno -ról az önálló Arduino -ra?

Igen, igen, de megmutatom, hogyan készítsd el magad. Az ISP kábelhez hasonlóan nekem is nincs.

Ki akarom kapcsolni a külső áramforrásból. Hogyan tegyem ezt?

Rengeteg útmutató található, amelyek bemutatják, hogyan futtatható önálló Arduino akkumulátorról. Leírom, hogyan csináltam, és ide linklem [később beillesztem].

AZ ÚTMUTATÓ

1. lépés: Az önálló Arduino felépítése

Az önálló Arduino építése
Az önálló Arduino építése
Az önálló Arduino építése
Az önálló Arduino építése

1) Készítse el az önálló Arduino -t ebből a linkből. Az útmutató egyetlen része, amire szüksége van, az "ATMEGA8/168/328 alapok".

  • az önálló Arduino -t az Arduino Uno 3,3 V -os tápellátásáról tudja táplálni. (Kihagyhatja az oktatóanyag első részét "Áramkör hozzáadása a tápegységhez".
  • Cserélje ki a 16 MHz -es órát 8 Mhz -es órával.
  • Adjon hozzá 0,1 uF sapkát: VCC és Gnd (mindkét oldalon) VRef és Gnd.

    • Ezek nincsenek a képen, de vannak a projektjeimben!
    • Tudom, hogy ez egy 16 MHz -es oszcillátor a fotón. Azért készítettem a fotót, mielőtt rájöttem, mit tettem az útmutatóban!

ATMEGA328p pinout képforrás itt.

Gyakori hibaelhárítási tippek

  • Győződjön meg arról, hogy a 10k -os ellenálláson keresztül visszaállította a magas értéket a VCC -ről az ATMEGA 1. tűjére. Ha a csap földelt vagy lebeg, akkor nem működik.
  • Ellenőrizze kétszer, hogy a vezetékeket és az oszcillátort megfelelően helyezte -e be.
  • Győződjön meg arról, hogy 22pF kondenzátorokat használ a 8 MHz -es oszcillátorhoz. Másképp nem fog működni.
  • Győződjön meg arról, hogy a készülék áram alatt van.

2. lépés: Az internetszolgáltató bekötése

Az internetszolgáltató kábelezése
Az internetszolgáltató kábelezése
Az internetszolgáltató kábelezése
Az internetszolgáltató kábelezése

2) Hozza létre az internetszolgáltató részét

Ezt az útmutatót itt egy kis, de nagyon fontos lépéssel fogja követni.

Azért nem tudja csak követni az útmutatót, mert hiányzik egy fontos része: nem programozhat 3,3 V -os eszközt közvetlenül az 5 V -os kapcsolatokból. (Legalábbis nem tudtam: addig nem működött, amíg ezt nem tettem meg). Be kell helyeznie egy logikai szintváltót, amely az 5 V -os jeleket az UNO -ról a 3,3 V -os önálló Arduino -ra helyezi át.

Ha nincs logikai szintű váltólapja, akkor ellenállások segítségével készíthet egyet. A logikai szintváltó valójában (mindaddig, amíg lefelé vált) feszültségosztó. 6 azonos ellenállásra lesz szüksége, semmi sem túl magas vagy túl alacsony. 220 ohmos ellenállásokat használtam, de biztos vagyok benne, hogy még a 10 ezer ellenállás is működne.

SCK (13. digitális tű) és MOSI (11. digitális tű) esetén feszültségosztóval csökkentse a feszültséget egyharmaddal. Lényegében lesz egy Uno SCK és MOSI, majd ellenállás (220 ohm), majd SCK és MOSI az önálló Arduino -hoz és 2 ellenállás (összesen 440 ohm) a földhöz.

Tehát olvassa el a szakasz elején linkelt útmutatót, de az SCK és a MOSI között helyezzen el feszültségosztókat. Ne feledje, hogy az SCK, a MISO, a MOSI és a RESET a 13., 12., 11. és 10. csap az Uno -n, de 19., 18, 17 és 1 az önálló Arduino -n!

Gyakori hibaelhárítási tippek

  • ELLENŐRIZZE A VEZETÉKET

    • Ha a program írásakor az összes 0 -s eszköz aláírását kapja, akkor a vezetékek szinte biztosan ki vannak kapcsolva, vagy az önálló Arduino nem kap áramot.
    • Ezenkívül győződjön meg arról, hogy az Uno 10 -ről az önálló Arduino -n 1 -re van a visszaállítási vezeték
  • ELLENŐRIZZE A FESZÜLTSÉG ELOSZTÓKAT

    Győződjön meg arról, hogy az SCK és a MOSI ellenállásaihoz 1: 2 (magas oldal: alacsony) arányú feszültségosztók vannak. Például. egy 220 ellenállást a +5 V oldalon, majd 2 220 ohmos ellenállást (összesen 440 ohm) a föld felé, a jel közepén az önálló Arduino felé

3. lépés: Szerkessze a rendszerbetöltő fájlt, írja be a rendszerbetöltőt, és töltse fel a vázlatát

Szerkessze a rendszerbetöltő fájlt, írja be a rendszerbetöltőt, és töltse fel a vázlatát
Szerkessze a rendszerbetöltő fájlt, írja be a rendszerbetöltőt, és töltse fel a vázlatát
Szerkessze a rendszerbetöltő fájlt, írja be a rendszerbetöltőt, és töltse fel a vázlatát
Szerkessze a rendszerbetöltő fájlt, írja be a rendszerbetöltőt, és töltse fel a vázlatát

3) Szerkessze a rendszerbetöltő (boards.txt) fájlt, és írja be a rendszerbetöltőt az önálló Arduino -ba. Töltse fel a vázlatát

A rendszerbetöltő fájl szerkesztése

Az önálló Arduino futtatásához módosítani kell a rendszerbetöltő barna biztosítékának beállításait. Ellenkező esetben képes lesz rendszerindítót írni rá, de nem tud vázlatokat futtatni.

A barna kiiktatást teljesen eltávolíthatja, de nem ajánlom. Ehelyett csökkentjük 2,7 V -ról (ami alapértelmezés szerint a chipemre került), és 1,8 V -ra cseréljük. Végső soron azonban itt kiválaszthatja a biztosítékkalkulátor segítségével, hogy milyen barnítási beállításokat szeretne.

A tábláim fájlja a következő helyen volt:

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

Előfordulhat azonban, hogy a /arudino /fájlon kívül egynél több boards.txt fájl van a hardvermappájában. A boards.txt fájlt a / arduino / location fájlban fogja szerkeszteni, mert módosítani fogja az ATMEGA328p (3.3V, 8 MHz) részt.

Elveszítheti a szerkesztett boards.txt fájlt, ha újratelepíti vagy frissíti az Arduino IDE -t (a bejegyzés szerint). Ez azt jelenti, hogy ha frissíti az Arduino IDE -t, akkor újra meg kell változtatnia ezeket a beállításokat, ha ugyanazt az önálló Arduino -t szeretné létrehozni.

A boards.txt fájlban görgessen lefelé, vagy keressen rá a „Pro Mini” kifejezésre. A szakasz címe "pro.name = Arduino Pro vagy Pro Mini". Görgessen le a "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)" alszakaszhoz.

Keresse meg a "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _" sort.

Módosítsa a beállításokat xFE -re. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Mentés és kilépés.

A Bootloader égetése

Ha ezt megtette, kövesse az internetszolgáltató útmutató „Utasítások” szakaszát az 1–5. Lépések között.

Néhány tisztázandó dolog:

  • Az "Arduino mint ISP" vázlat feltöltésekor meg kell győződnie arról, hogy a megfelelő COM port és processzor van kiválasztva.

    Ebben az esetben ez azt jelenti, hogy kiválasztotta az Arduino COM portját az Eszközök-> Port: COM X (Arduino Uno) menüpontban, és az alaplap Arduio Uno

  • Válassza ki a megfelelő programozót: az Eszközök-> Programozó-> Arduino alatt ISP-ként.

    NEM ArduinoISP vagy ArduinoISP.org

  • A rendszerindító írása előtt cserélje le a "Pro vagy Pro Mini" lapot és a processzort "ATMEGA328p (3.3V, 8 MHz)" értékre.

    Addig nem fogja látni a processzor részt, amíg nem választja ki a megfelelő táblafajtát

Írja be a rendszerbetöltőt az önálló Arduino -ra, mielőtt vázlatokat írna rá.

A vázlat feltöltése

Ez nagyon fontos. Mostantól az Arduino programozására is képes: az Uno és az önálló. Ha nem a megfelelő eszközre tölt fel, akkor ismételje meg a fenti részt, és írja át az Arduino -t ISP programként az Uno -n.

A vázlat feltöltésekor feltétlenül kattintson az Eszközök -> Feltöltés programozó segítségével lehetőségre, vagy kattintson a Ctrl+Shift+U billentyűkombinációra. A Shift billentyűt is lenyomva tartva kattintson a nyíl ikonra, de ne kattintson a nyíl ikonra a Shift lenyomása nélkül.

Gyakori hibaelhárítási tippek

  • Kapcsolja be a részletes kimenetet a hibaelhárításhoz.
  • "Az eszköz aláírása mind 0!" [Ez nagy valószínűséggel előfordul.]

    • lásd az ISP bekötése című részt. Vagy helytelenül csatlakoztatta az önálló Arduino -t, vagy nincs bekapcsolva.
    • Győződjön meg arról, hogy a megfelelő COM portot és kártyát / processzort választotta. Amikor a rendszerbetöltőt égeti, FIGYELNI kell, hogy a Pro Mini 3.3V 8 MHz -es rendszerbetöltőt égeti, különben a biztosítékok nem megfelelően vannak beállítva.
  • "Szerkesztettem a boards.txt fájlt, de nem látom a módosításokat"

    Győződjön meg arról, hogy a helyes boards.txt fájlt szerkesztette. Próbálja meg frissíteni az Arduino IDE -t, ha a szerkesztések nem működnek, vagy távolítsa el ideiglenesen a / hardver / mappa többi mappáját

  • "Nem találom a boards.txt pro mini szakaszát!"

    Nem a megfelelő boards.txt fájlt keresi. Ellenőrizze az Arduino // hardware/arduino/mappát

4. lépés: Soros kommunikáció

4) Soros kommunikációval figyelje az önálló eszközt

Ezt valóban 2 módszerrel teheti meg, így ha még FTDI kábel / megszakító kártyája sincs, az nem a világ vége. És ne feledje, az önálló Arduino -ba feltöltött vázlatnak tartalmaznia kell a Serial.print utasításokat, hogy el tudja olvasni: ha nem írta be a programba, nem fog látni semmit!

Ha nincs FTDI kábele

Miután elégettük a rendszerbetöltőt, és megírtuk a kívánt programot, (nagyon óvatosan és emlékezve arra, hogy melyik tájolásba megy vissza) eltávolíthatjuk az ATMEGA328 DIP chipet az Arduino Uno -ból. Ehhez javaslom a laposfej használatát.

Csatlakoztathatja az önállóArduino RX -t az Uno RX -hez, és a TX -t a TX -hez. Igen, ez általában az ellenkezője, de elképzelheti, hogy az Uno "továbbítja" az információkat az IDE soros monitorához. Ezért ebben az esetben nem csatlakoztatja az RX -et a TX -hez és a TX ro RX -hez. A program futtatásakor győződjön meg arról, hogy az Arduino Uno COM -portja van kiválasztva, és nyissa meg a soros montort. Láthatja az önálló Arduino soros kimenetét.

(Ezt a megoldást itt Robin2 jóváírja.)

Ha rendelkezik FTDI kábellel / kártyával

(Én a Sparkfun FTDI kártyáját használom, amelyet 3.3V -ra alakítottam át a hátoldalon található forrasztópad segítségével)

Egyszerűen csatlakoztassa a megszakítópanel GND -jét az önálló Arduino földhöz, és csatlakoztassa a kitörőpanel RX -jét az Arduino TX -hez, és a TX -t az RX -hez. (Ha CSAK soros megfigyelésről van szó, és nem ír vissza semmit, akkor egyszerűen csatlakoztathatja a kenyértábla RX -jét az Arduino TX -hez.)

Ne feledje, hogy ezen a ponton lehetősége van az önálló Arduino áramellátására az Uno VAGY az FTDI kábelen keresztül. Ne csatlakoztassa mindkét áramforrást egyszerre! Ne feledje, hogy meg kell változtatnia a COM portot, mivel ez más lesz, mint az Arduino Uno COM port.

Gyakori hibaelhárítási tippek

  • - Nem látok semmit!

    • Ellenőrizze, hogy engedélyezve van -e a megfelelő COM -port.
    • Ellenőrizze, hogy rendelkezik -e a legfrissebb FTDI illesztőprogramokkal.
    • BIZTOSÍTSA A FÖLDET.
  • "Csak azt látom, hogy szemetes kimenet van a soros monitorban!"

    • Kapsz valamit, ami jó jel.
    • Ellenőrizze azonban az FTDI kártya feszültségét.
    • Az önálló Arduino 3.3 V -ot ad ki a TX -en, és előfordulhat, hogy az FTDI kártya nem veszi fel, ha 5 V -ot vár.
    • Ellenőrizze az átviteli sebességet.
    • Győződjön meg arról, hogy földelés van csatlakoztatva, és csak egy áramforrás van csatlakoztatva! (Vagyis ne táplálja az önálló Arduino -t az Uno és az FTDI tábláról.

Ajánlott: