Агуулгын хүснэгт:

Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP (Цуваа хяналттай!) -Аар програмчилж байна: 4 алхам
Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP (Цуваа хяналттай!) -Аар програмчилж байна: 4 алхам

Видео: Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP (Цуваа хяналттай!) -Аар програмчилж байна: 4 алхам

Видео: Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP (Цуваа хяналттай!) -Аар програмчилж байна: 4 алхам
Видео: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, Арваннэгдүгээр
Anonim
Arduino Uno -аас ICSP / ISP -ээр дамжуулан бие даасан Arduino 3.3V W / Гадаад 8 МГц цагийг програмчилж байна (Цуваа хяналттай!)
Arduino Uno -аас ICSP / ISP -ээр дамжуулан бие даасан Arduino 3.3V W / Гадаад 8 МГц цагийг програмчилж байна (Цуваа хяналттай!)
Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP -ээр програмчилсан (Цуваа хяналттай!)
Бие даасан Arduino 3.3V W / Гадаад 8 МГц -ийн цагийг Arduino Uno -оос ICSP / ISP -ээр програмчилсан (Цуваа хяналттай!)

Зорилго:

  • 8 МГц -ийн гадаад цагнаас 3.3 В хүчдэлээр ажилладаг бие даасан Arduino бүтээхийн тулд.
  • Үүнийг ISP-ээр (ICSP гэж нэрлэдэг, хэлхээний цуваа програмчлал) Arduino Uno (5V дээр ажилладаг) програмчлах.

    Ачаалагч файлыг засварлаж ачаалагчийг шарахын тулд (ISP -ээр)

  • FTDI кабелиар бие даасан Arduino -аас цуваа мэдээллийг унших боломжтой байх

    FTDI кабельгүйгээр бие даасан Arduino -аас цуваа мэдээллийг унших боломжтой байх

Оршил:

Би бие даасан төслөө бүтээх гэж оролдож байсан боловч бие даасан Arduino -ийг ажиллуулах, програмчлах, хянах талаар дэлгэрэнгүй гарын авлага олж чадаагүй байна. Би хэд хэдэн тусдаа гарын авлага цуглуулж, зээл авах ёстой газарт зээл олгохын тулд хаанаас мэдээлэл авсан талаар лавлахыг хичээсэн. Энэхүү гарын авлага нь олон өдрийн турш би өөрийн төслийг барьж байхдаа шийдлүүдийг хайж, нэг хэсгийг нь хайж олсны үр дүн юм. компаниуд, гэхдээ миний дурдсан тодорхой зүйлийг оруулах нь чухал юм.

Эхлэхээсээ өмнө нийтлэг асуултууд:

Та яагаад үүнийг ISP -тэй програмчилж, FTDI -ээр хянах хэрэгтэй байна вэ? Та яагаад үүнийг FTDI -ээр дамжуулан програмчилж болохгүй гэж?

Бид шинэ ачаалагчийг асаах замаар гал хамгаалагчийн тохиргоог өөрчлөх шаардлагатай болно, гэхдээ та үүнийг цуваа холболтоор хийх боломжгүй. Та ачаалагчийг ISP -ээр дамжуулан шарах ёстой. Энэ нь ATMEGA328 чипийг урьдчилан ачаалаагүй хүмүүст бас хэрэгтэй байдаг.

Яагаад би ийм сериал хяналт бүхий ISP кабелийг ашиглаж болохгүй гэж?

Магадгүй, над шиг, танд нэг ч байхгүй байж магадгүй, харин нэгийг нь хүлээлгэж өгөхийг хүлээхийн оронд өөрт байгаа зүйлээ ашиглах дуртай байж магадгүй юм! Надад FTDI кабель байдаг (хэдийгээр та эцэст нь танд хэрэггүй ч юм шиг санагдах болно: энэ нь таны амьдралыг хөнгөвчлөх болно).

Надад Uno -ээс бие даасан Arduino руу логик түвшний шилжүүлэгч хэрэгтэй биш гэж үү?

Тийм ээ, та тэгдэг, гэхдээ би өөрөө хэрхэн яаж хийхийг танд үзүүлэх болно. ISP кабелийн нэгэн адил надад ийм утас байхгүй байна.

Би үүнийг гадны хүчээр унтраахыг хүсч байна. Үүнийг яаж хийх вэ?

Батерейны хүчээр бие даасан Arduino -ийг хэрхэн яаж ажиллуулахыг харуулсан олон гарын авлага байдаг. Би үүнийг яаж хийснийг бичээд энд холбох болно [дараа оруулах болно].

ХӨТӨЧ

Алхам 1: Бие даасан Arduino бүтээх

Бие даасан Arduino бүтээх
Бие даасан Arduino бүтээх
Бие даасан Arduino бүтээх
Бие даасан Arduino бүтээх

1) Энэ холбоосоор бие даасан Arduino бүтээнэ үү. Танд хэрэгтэй гарын авлагын цорын ганц хэсэг бол "ATMEGA8/168/328 үндсүүд" юм.

  • Та бие даасан Arduino -г Arduino Uno -оос 3.3V -ээс тэжээх боломжтой. (Та "Цахилгаан хангамжийн тойрог нэмэх" нэртэй хичээлийн эхний хэсгийг алгасаж болно.
  • 16 МГц давтамжтай 8 МГц давтамжтай цагийг орлуулна уу.
  • 0.1 uF хязгаарыг VCC ба Gnd (хоёр тал) VRef ба Gnd хооронд нэмнэ.

    • Надад эдгээрийг зураг дээр оруулаагүй байгаа ч миний төсөлд оруулсан байгаа!
    • Энэ бол зурган дээрх 16 МГц -ийн осциллятор гэдгийг би мэднэ. Би гарын авлагад хийсэн бүх зүйлээ олж мэдэхээсээ өмнө зургийг авсан!

ATMEGA328p pinout зургийн эх сурвалж энд байна.

Алдааг олж засварлах нийтлэг зөвлөмжүүд

  • VCC -ээс 10 к эсэргүүцэл ашиглан ATMEGA -ийн 1 -р зүү хүртэл өндөр тохиргоог хийсэн эсэхээ шалгаарай. Хэрэв зүү нь газардсан эсвэл хөвж байвал энэ нь ажиллахгүй болно.
  • Утас болон осцилляторыг зөв оруулсан эсэхээ дахин шалгаарай.
  • 8 МГц -ийн осцилляторт 22pF конденсатор ашиглаж байгаа эсэхээ шалгаарай. Энэ нь өөрөөр ажиллахгүй болно.
  • Төхөөрөмжийг асааж байгаа эсэхийг шалгаарай.

Алхам 2: ISP -ийн утас

ISP утас
ISP утас
ISP утас
ISP утас

2) ISP хэсгийг үүсгэнэ үү

Та энэ гарын авлагыг дагаж жижиг боловч маш чухал алхам хийх болно.

Та гарын авлагыг дагаж чадахгүй байгаа шалтгаан нь танд чухал хэсгийг алдсантай холбоотой юм: та 3.3V төхөөрөмжийг 5V холболтоор шууд програмчилж чадахгүй. (Наад зах нь би чадахгүй байсан: үүнийг хийх хүртэл ажиллахгүй байсан). НҮБ -аас 5V дохиог 3.3Vstandalone Arduino руу шилжүүлэх логик түвшний шилжүүлэгчийг оруулах шаардлагатай.

Хэрэв танд логик түвшний шилжүүлэгч самбар байхгүй бол та үүнийг резистор ашиглан хийж болно. Логик түвшний шилжүүлэгч бол үнэхээр хүчдэл хуваагч юм. Танд хэт өндөр эсвэл хэт доогуур биш 6 ижил резистор хэрэгтэй болно. Би 220 ом эсэргүүцэл ашигладаг байсан ч 10к эсэргүүцэл ч ажиллах болно гэдэгт итгэлтэй байна.

SCK (дижитал зүү 13) ба MOSI (дижитал зүү 11) хувьд хүчдэл хуваагчийг ашиглан хүчдэлийг гуравны нэгээр бууруулна. Үндсэндээ та нэг Uno SCK ба MOSI, дараа нь резистор (220 ом), дараа нь SCK ба MOSI -ийг бие даасан Arduino -тэй холбож, 2 эсэргүүцэл (нийт 440 ом) газардуулах болно.

Тиймээс, энэ хэсгийн эхэнд байгаа гарын авлагыг уншаарай, гэхдээ SCK ба MOSI хооронд хүчдэл хуваагчийг оруулна уу. SCK, MISO, MOSI, RESET нь Uno дээрх 13, 12, 11, 10 -р зүү боловч 19 -р зүү гэдгийг санаарай., 18, 17, 1 бие даасан Arduino дээр!

Алдааг олж засварлах нийтлэг зөвлөмжүүд

  • ЦАХИЛГААНЫ ШАГНАГЧИЙГ ШАЛГАХ

    • Хэрэв та програм бичих гэж оролдохдоо 0 -ийн бүх гарын үсгийг авсан бол таны утас бараг л унтарсан, эсвэл бие даасан Arduino хүч аваагүй байна.
    • Түүнчлэн, дахин тохируулах утсыг Uno дээрх 10 -аас бие даасан Arduino дээрх 1 болгож аваарай
  • Хүчдэл хуваагчдыг шалгана уу

    SCK ба MOSI хоёулангийнх нь резисторын хувьд 1: 2 (өндөр тал: бага тал) харьцаатай хүчдэл хуваагчтай байгаа эсэхийг шалгаарай. Жишээлбэл +5в талд 220 эсэргүүцэл, дараа нь 2 220 ом эсэргүүцэл (нийт 440 ом) газар руу чиглэсэн бие даасан Arduino руу дохио өгнө

Алхам 3: Bootloader файлыг засварлах, Bootloader -ийг шарах, ноорогоо байршуулах

Bootloader файлыг засварлах, Bootloader -ийг шарах, ноорогоо байршуулах
Bootloader файлыг засварлах, Bootloader -ийг шарах, ноорогоо байршуулах
Bootloader файлыг засварлах, Bootloader -ийг шарах, ноорогоо байршуулах
Bootloader файлыг засварлах, Bootloader -ийг шарах, ноорогоо байршуулах

3) Ачаалагч (board.txt) файлыг засварлаж, ачаалагчийг бие даасан Arduino дээр шарна уу. Ноорогоо байршуулна уу

Ачаалагч файлыг засварлаж байна

Бие даасан Arduino -г ажиллуулахын тулд та ачаалагчийн ачаалах гал хамгаалагчийн тохиргоог засах хэрэгтэй болно. Үгүй бол та ачаалагчийг шарах боломжтой боловч ямар ч ноорог ажиллуулах боломжгүй болно.

Та хүрэн борлуулалтын илрүүлэлтийг бүрэн устгах боломжтой, гэхдээ би үүнийг зөвлөхгүй. Үүний оронд бид үүнийг 2.7V -ээс (миний чип дээр анхдагчаар ирсэн зүйл) бууруулж 1.8V -ээр солих болно. Эцэст нь хэлэхэд та гал хамгаалагчийн тооцоолуурыг ашиглан хүссэн тохиргоогоо сонгох боломжтой.

Миний самбарын файл дараах байршилд байсан:

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

Гэсэн хэдий ч, таны техник хангамжийн фолдерт /arudino /-с өөр нэг board.txt файл байж болно. Та ATMEGA328p (3.3V, 8 MHz) хэсгийг өөрчлөх гэж байгаа тул / arduino / байршилд board.txt файлыг засварлах гэж байна.

Хэрэв та Arduino IDE -ийг дахин суулгаж эсвэл шинэчилбэл та засварласан board.txt файлыг алдаж магадгүй (энэ нийтлэлийн дагуу). Энэ нь хэрэв та Arduino IDE -ийг шинэчлэх юм бол өөр ижил бие даасан Arduino үүсгэхийг хүсвэл эдгээр тохиргоог дахин өөрчлөх шаардлагатай болно гэсэн үг юм.

Board.txt файл дотроос доош гүйлгэж эсвэл "Pro Mini" гэж хайна уу. Энэ хэсгийг "pro.name = Arduino Pro эсвэл Pro Mini" гэж нэрлэсэн болно. "Pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)" дэд хэсэгт доош гүйлгэнэ үү.

"Pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _" гэсэн мөрийг хайна уу.

Тохиргоог xFE болгон өөрчилнө үү. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Хадгалж, гарна уу.

Ачаалагчийг шатааж байна

Үүнийг хийсний дараа та 1 -ээс 5 -р алхам хүртэлх ISP -ийн гарын авлага дээрх "Зааварчилгаа" хэсгийг дагаж болно.

Тодруулах зарим зүйл:

  • Та "Arduino -ийг ISP -ээр" ноорог байршуулахдаа зөв COM порт болон процессор сонгосон эсэхийг шалгах хэрэгтэй.

    Энэ тохиолдолд та Arduino-ийн COM портыг Tools-> Port: COM X (Arduino Uno) хэсэгт сонгосон бөгөөд самбар нь Arduio Uno гэсэн үг юм

  • Зөв програмистыг сонгоно уу: Tools-> Programmer-> Arduino-ийг ISP болгон сонгоно уу.

    ArduinoISP эсвэл ArduinoISP.org биш

  • Ачаалагчийг шатаахаасаа өмнө "Pro or Pro Mini" болон процессорыг "ATMEGA328p (3.3V, 8 MHz)" болгож солино уу.

    Зөв самбарын төрлийг сонгох хүртэл процессорын хэсгийг харахгүй болно

Ачаалагчийг ноорог бичихээс өмнө бие даасан Arduino дээр шарна уу.

Ноорог байршуулж байна

Энэ нь маш чухал юм. Та одоо Arduino: Uno болон Standalone програмыг програмчлах боломжтой боллоо. Хэрэв та зөв төхөөрөмж рүү байршуулахгүй бол дээрх хэсгийг давтаж, Arduino -г Uno дээр ISP програм болгон дахин бичих ёстой.

Та ноорогоо байршуулахдаа Tools -> Upload програмист ашиглан ЭСВЭЛ Ctrl+Shift+U дарна уу. Та мөн shift -ийг дарж, сумны дүрс дээр дарж болно, гэхдээ shift -ийг даралгүйгээр сумны дүрс дээр дарж болохгүй.

Алдааг олж засварлах нийтлэг зөвлөмжүүд

  • Алдааг олж засварлахын тулд дэлгэрэнгүй гаралтыг асаана уу.
  • "Төхөөрөмжийн гарын үсэг зурагч нь бүгд 0 байна!" [Энэ нь тохиолдох магадлал өндөр байна.]

    • ISP утас холбох хэсгийг үзнэ үү. Та бие даасан Arduino -ийг буруу холбосон эсвэл асаахгүй байна.
    • Та зөв COM порт, самбар / процессорыг сонгосон эсэхээ шалгаарай. Ачаалагчийг шатаахдаа та Pro Mini 3.3V 8 MHz ачаалагчийг асааж байгаа эсэх эсвэл гал хамгаалагч зөв тохируулаагүй байх ёстой.
  • "Би board.txt файлыг зассан боловч засварыг хараагүй байна."

    Зөв board.txt файлыг засварласан эсэхээ шалгаарай. Хэрэв засварууд ажиллахгүй бол Arduino IDE -ийг шинэчилж үзээрэй, эсвэл өөрийн / техник хангамж / хавтас доторх бусад фолдерыг түр устгаарай

  • "Би board.txt -ийн мэргэжлийн мини хэсгийг олж чадахгүй байна!"

    Та зөв board.txt файлыг хайдаггүй. Arduino // hardware/arduino/фолдерыг шалгана уу

Алхам 4: Цуваа холбоо

4) Бие даасан төхөөрөмжийг цуваа холболтоор хянах

Та үүнийг 2 аргаар хийж чадна, тиймээс хэрэв танд FTDI кабель / таслах самбар байхгүй бол энэ нь дэлхийн төгсгөл биш юм. Таны бие даасан Arduino -д байршуулсан ноорог нь Serial.print -ийн тайлбартай байх ёстой гэдгийг санаарай: хэрэв та үүнийг програм дээр бичээгүй бол юу ч харахгүй болно!

Хэрэв танд FTDI кабель байхгүй бол

Ачаалагчийг шатааж, хүссэн програмаа бичсний дараа та ATMEGA328 DIP чипийг Arduino Uno -аас (маш анхааралтай, аль чиглэлд буцааж оруулахыг санаж) устгаж болно. Үүнийг хийхийн тулд хавтгай толгой ашиглахыг зөвлөж байна.

Та бие даасан Arduino -ийн RX -ийг Uno -ийн RX, TX -ийг TX руу холбож болно. Тийм ээ, энэ нь ихэвчлэн эсрэгээрээ байдаг, гэхдээ та Uno -г IDE -ийн цуваа монитор руу "дамжуулж" байна гэж ойлгож болно. Ийм учраас та энэ тохиолдолд RX -ийг TX болон TX ro RX -тэй холбодоггүй. Та програмаа ажиллуулж байхдаа Arduino Uno -ийн COM портыг сонгож, цуваа монторыг нээж байгаа эсэхийг шалгаарай. Та standaone Arduino -ийн цуврал гаралтыг харах боломжтой болно.

(Энэ шийдлийг Robin2 -д оруулсан болно.)

Хэрэв танд FTDI кабель / самбар байгаа бол

(Би Sparkfun -ийн FTDI самбарыг 3.3V болгон хөрвүүлсэн арын гагнуурын дэвсгэр ашиглан ашиглаж байна)

Зүгээр л таслах самбарын GND -ийг Arduino -ийн бие даасан газартай холбож, RX -ийг Arduino -ийн TX ба TX -тэй холбоно уу. (Хэрэв та ЗӨВХӨН сериал хяналт тавьж, юу ч бичээгүй бол та зүгээр л breadoutboard -ийн RX -ийг Arduino TX -т холбож болно).

Энэ үед танд бие даасан Arduino -г Uno OR FTDI кабелиар тэжээх сонголт байгаа гэдгийг санаарай. Хоёр тэжээлийн эх үүсвэрийг нэгэн зэрэг бүү холбоорой! Та COM портыг Arduino Uno COM портоос өөр байх тул өөрчлөх хэрэгтэй болно гэдгийг анхаарна уу.

Алдааг олж засварлах нийтлэг зөвлөмжүүд

  • "Би юу ч харахгүй байна!"

    • Зөв COM порт идэвхжсэн эсэхийг шалгана уу.
    • Танд хамгийн сүүлийн үеийн FTDI драйвер байгаа эсэхийг шалгаарай.
    • ГАЗРЫГ ХОЛБООТОЙ БАЙНА.
  • "Миний харж байгаа зүйл бол цуваа дэлгэц дээрх хог хаягдал юм!"

    • Та сайн шинж тэмдэг болох зүйлийг авч байна.
    • Гэсэн хэдий ч FTDI хавтангийн хүчдэлийг шалгана уу.
    • Бие даасан Arduino нь TX дээр 3.3V хүчдэл гаргадаг бөгөөд хэрэв 5V хүлээж байгаа бол FTDI самбар үүнийг авахгүй байж магадгүй юм.
    • Бодын хурдыг шалгана уу.
    • Та газардуулгатай, зөвхөн нэг тэжээлийн эх үүсвэр холбогдсон эсэхээ шалгаарай. (Жишээлбэл, бие даасан Arduino -г Uno болон FTDI самбараас бүү асаагаарай.

Зөвлөмж болгож буй: