Arduino atau AVR Wireless Programming Adapter dengan ESP8266 Loader

Catatan singkat tentang adaptor buatan berbasis ESP8266, yang memungkinkan Anda mengunduh firmware ke mikrokontroler dengan bootloader UART atau Arduino yang diinstal.
Baru-baru ini, ketika merancang perangkat pada mikrokontroler AVR, untuk pemrograman I output hanya satu konektor 6-pin (bukan ISP) untuk adaptor FTDI. Ini memungkinkan Anda untuk mengunduh firmware dan men-debug UART setelah firmware. Itulah tepatnya yang dilakukan Arduino, ide itu dipinjam dari sana. Ini nyaman.
Sementara itu, lebih dari sekali saya harus berurusan dengan situasi di mana Anda perlu mengunduh firmware ke mikrokontroler, tetapi sudah dalam kasus yang tidak cocok di tempat kerja / terletak di mezzanine / di kota lain / berdinding ke dinding. Dalam kasus seperti itu, adaptor FTDI tidak berlaku karena kabel USB pendek dan harus menghindar dengan laptop. Berpikir tentang seorang programmer nirkabel. Di sini ESP8266 adalah yang paling cocok, karena memiliki UART dan dalam versi apa pun memiliki setidaknya satu GPIO, cocok untuk me-reboot controller dan memasuki mode pemrograman.

Materi berikut ditemukan di jaringan pada topik:
  1. Memprogram Arduino melalui WiFi dengan ESP8266 - modul tipe ESP-01 terhubung pada kabel ke Arduino pro mini, kemudian skrip python digunakan untuk mengunduh firmware
  2. Programando dan Arduino remotamente con el módulo ESP8266 - di sini, seperti yang saya pahami, tanpa merinci, salah satu GPIO Arduino terhubung ke RESET. Pertama, mikrokontroler diinstruksikan untuk me-restart sendiri, dan kemudian unduhan firmware dimulai
  3. ESP8266-transparent-bridge - firmware untuk ESP8266 membuat Wi-Fi transparan dari modul - bridge UART dengan dukungan untuk perintah AT untuk mengendalikan GPIO2. Penulis menyarankan untuk menekan tombol reset pada Arduino, dan kemudian menjalankan avrdude dengan opsi -c avrisp dan -P net: xxxx: 23, tetapi ini memungkinkan Anda untuk mengotomatisasi AT. Firmware inilah yang saya ambil sebagai basis


Fitur adaptor adalah sebagai berikut:
  • Konektor enam pin dengan pinout seperti adaptor FTDI
    Teks tersembunyi
    image
  • Bekerja di sirkuit dengan tegangan suplai mikrokontroler 3,3V atau 5V, dapat dipilih oleh jumper
  • Pengoperasian yang stabil dengan kecepatan hingga dan termasuk 57600
  • Reboot mikrokontroler menggunakan perintah AT untuk masuk ke mode pemrograman

Kinerja diuji pada pro mini Arduino Cina dengan bootloader stok dan ATmega8 dengan optiboot yang diinstal dan kecepatan 9600, 19200 dan 57600. Pada kecepatan default (115200), controller menolak untuk berkedip.

Bagi mereka yang tidak ingin menyolder dan membayar biaya
Dalam hal aplikasi dalam rangkaian daya 3.3V, cukup dengan menghubungkan modul esp-01 ke kabel Arduino (VCC -> VCC, GND ---> GND, RX ---> TX, TX ---> RX, GPIO2 ---> DTR). Papan dibuat untuk kemudahan koneksi dan kemampuan untuk bekerja di sirkuit dengan tegangan mikrokontroler 5V.

Diagram sirkuit dan papan sirkuit

Modul tipe esp-02 digunakan, tetapi esp-01 yang umum juga cocok, hanya papan yang perlu diarahkan sedikit. Jumper memilih mode operasi 3.3 / 5V. U1 - stabilizer mengubah 5V menjadi 3.3V jika perlu. R2 dan R3 adalah pembagi, juga untuk mode 5V. Setelah perakitan, Anda perlu menginstal jumper RPOG dan menggunakan FTDI yang sama atau adaptor UART lainnya untuk memuat ESP8266-transparent-bridge .
Templat papan sirkuit satu sisi (vektor SVG):
gambar
Jika Anda perlu negatif, cukup buka dengan editor teks dan ganti # 000000 dengan #FFFFFF dan sebaliknya.
Format KiCad di github

Firmware mikrokontroler
Biasanya, untuk mengunduh firmware, Anda harus memulai ulang mikrokontroler. Adaptor FTDI membuat ini impuls pada kaki DTR (yang pertama di konektor), terhubung melalui kapasitansi ke kaki mikrokontroler RESET. Dalam kasus kami, GPIO2 ditampilkan sebagai pengganti DTR (lihat UPD). Untuk me-restart mikrokontroler, AT perintah "+++ AT GPIO2 1" dan kemudian "+++ AT GPIO2 0" digunakan, yang mengubah level ke GPIO2 ESP8266. Satu tetes sudah cukup untuk me-reboot controller. Segera setelah reboot, bootloader bekerja selama beberapa waktu dan menunggu gambar firmware melalui UART, dapat ditransfer menggunakan utilitas avrdude. Berikut ini adalah skrip yang sedang dikontrol controller:
#!/bin/bash

HEXILE="firmware.hex"
ADDRESS=x.x.x.x
BAUD=57600

echo "+++AT BAUD $BAUD" | nc $(ADDRESS) 23
echo "+++AT GPIO2 1" | nc $(ADDRESS) 23
echo "+++AT GPIO2 0" | nc $(ADDRESS) 23
avrdude -P net:$(ADDRESS):23 -F -U flash:w:$(HEXILE):i

Perintah-perintah ini dapat dimasukkan dalam Makefile.
Firmware nirkabel juga dapat dihidupkan di Windows dengan menginstal utilitas nc dan avrdude.
Sebuah video mempertunjukkan karya contoh mini Arduino Cina pro



UPD :
sav13 disarankan menggunakan esp-link sebagai firmware untuk ESP8266 , ini kompatibel dengan sirkuit adaptor saat ini. Firmware ini memiliki beberapa keunggulan dibandingkan ESP8266-transparan-jembatan, termasuk Antarmuka WEB untuk konfigurasi, tidak perlu menggunakan perintah AT, fungsionalitas tambahan, lebih detail di sini .

Source: https://habr.com/ru/post/id392833/


All Articles