104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)

Să ne îndepărtăm de la crearea robotului nostru și să vorbim despre modul în care vom scrie firmware-ul în Arduino.

În primul rând, suntem interesați de trei panouri Arduino:






- Arduino Uno - ca opțiune cea mai comună
- Arduino Nano - o versiune compactă, potrivită pentru utilizare în structuri mici
- Arduino Pro Mini - o versiune compactă ieftină fără un convertor USB-UART încorporat (pentru a fi nevoie de un convertor USB-UART extern), dar convenabil în cazul utilizării unei rețele de dispozitive.

104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)
104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)
104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)

În toate plăcile de mai sus, se utilizează microcontrolerul ATmega328 (în versiunile mai vechi ale ATmega168).

ATmega48_88_168_328.pdf - Data la ATmega48A-48PA-88A-88PA-168A-168PA-328-328P

Unul dintre motivele principale pentru alegerea cardului Arduino pentru proiectul robot a fost capacitatea de a înregistra firmware-ul dispozitivului în MK fără a folosi programatorul și alte dispozitive suplimentare. Tot ce trebuie să bliți microcontrolerul Arduino este cablul USB standard (care este inclus împreună cu Arduino).

104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)

Aceasta înseamnă că, dacă aveți Arduin - aveți orice dispozitiv ZiChip!

Înregistrarea unui program în MC prin USB are loc printr-un încărcător special (Bootloader), care este înregistrată în MC în fabricarea de bord. În general, încărcătorul este proiectat pentru a lucra cu software-ul său special Arduino IDE, dar atunci când aveți nevoie să clipească ceva Arduino străine (HEX-fișier), există un program vă permite să-l pună în aplicare.

104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)

XLoader.zip - Un program pentru scrierea unui fișier Hex în Arduino







Programul are o interfață ascetică și este foarte simplu să lucrați cu:
- conectați Arduino la un port USB (nu este necesară o putere separată)
- alegeți fișierul Hex
- alegeți tipul de Arduino
- selectați portul COM creat când conectați Arduino la USB (viteza portului va fi setată automat la selectarea tipului Arduino)
- faceți clic pe Încărcați

Asta e tot! Nimic complicat. Firmware-ul va fi scris în MC în câteva secunde și va porni automat. Unul minus - programul nu raportează că firmware-ul a fost deja scris, dar acest lucru se poate vedea prin oprirea flicker-ului LED-urilor RXD și TXD pe Arduin.

XLoader utilizează AVR Dude pentru scrierea firmware-ului și utilizează STK500 ca protocol de programare. Dar, se pare, în setările AVR Dude, se face o corecție, deoarece folosirea standardului AVR Dude cu aceleași setări nu dă rezultate.

Atunci când în curs de dezvoltare de software pentru microcontroler a produs o mulțime de firmware și ar trebui să se străduiască întotdeauna pentru a automatiza acest proces după construirea proiectului - acest lucru economisește timp și efort. În acest caz, automatizare este complicat ca programul nu arată linia de comandă pentru AVR Dude (cu excepția cazului selectați empiric), ci o simplificare proces este posibil. Acest lucru se face în felul următor - după primul firmware-ul nu închide fereastra programului (versiuni de software portul COM după intermitent), iar după proiectul urmând ansamblul pur și simplu faceți clic pe butonul «Upload». Desigur, asamblarea trebuie făcută în același fișier hex.

104-Firmware-ul unui fișier hex în arduino cu ajutorul unui bootloader obișnuit (bootloader)

ArduinoUploader.zip - Programul pentru scrierea fișierului Hex în Arduino

Ca și cea anterioară, programul are o interfață simplă.
Procesul firmware-ului este același:
- conectați Arduino la un port USB (nu este necesară o putere separată)
- alegeți fișierul Hex
- alegeți tipul de Arduino
- selectați portul COM
- faceți clic pe Încărcați

Programul deschide ferestre suplimentare în timpul înregistrării și afișează vizual acțiunile sale, ceea ce vă permite să monitorizați procesul de înregistrare.

La încercarea de a bloca Arduino Nano, programul a refuzat să vadă MK. Motivul a fost setarea necorespunzătoare a vitezei portului COM. Viteza implicită este 19200 și aveți nevoie de 57600. Viteza portului din program nu este specificată explicit, este prescrisă în linia "AVR Dude Params" - modificați valoarea de la 19200 la 57600.

Automatizarea încărcătorului ARP.
ARP Uploader ca XLoader funcționează prin AVR Dude, dar spre deosebire de XLoader, acesta arată linia de comandă. Acest lucru face posibilă utilizarea AVR Dude direct în fișierul Make or Bat.

Materiale suplimentare.
Șoferul Arduino.

Cred că merită să ne amintim că pentru conectarea Arduino cu calculatorul din acesta din urmă trebuie să fie șoferi prezenți. Am lăsa aici arhiva cu drivere pentru Arduino (inclusiv driver-e vechi în Old_Arduino_Drivers.zip și drivere pentru FTDI-chip în directorul "Drivere USB FTDI"

Arduino_drivers.zip - Drivere pentru Arduino

A început să apară ieftin chinez Arduiny cu șoferul CH340G
Driver CH340G.zip - Driver pentru convertor USB-UART

Dacă decideți să colecteze taxa plătită Arduino (și nu este nimic complicat, de fapt, este un gol de ATmega168 sau ATmega328), veți avea nevoie de Bootloader bootloader care ar trebui să conțină MC pentru a lucra cu mediul (sau programul pentru a umple hex-fișiere). Desigur, scrie hex-fișiere într-un MK curat nevoie de un programator și-au pus Fyuz.

ATmegaBOOT_168_atmega328.hex - Bootloader pentru ATmega328
Pentru o funcționare corectă, trebuie să setați siguranțele după cum urmează: Scăzut: FF Înalt: DA Ext: 05

ATmegaBOOT_168_diecimila.hex - Bootloader pentru ATmega168
Fyuzy Low: FF Înaltă: DD Ext: 00

Schemele din Ardwin descrise mai sus.
Arduino_Uno_Rev3-schematic.pdf - Arduino Uno Schema
ArduinoNano30Schematic.pdf - Arduino Nano Schema
Arduino-Pro-Mini-schematic.pdf - Arduino Pro Mini Schema

Fyuzy instalat implicit în Arduino (numai cu ATmega328)
Arduino Uno
Siguranță joasă 0xFF
Siguranță ridicată 0xDE
Siguranță extinsă 0x05

Arduino Duemilanove sau Nano w / ATmega328
Siguranță joasă 0xFF
Siguranță ridicată 0xDA
Siguranță extinsă 0x05

Arduino BT cu ATmega328
Siguranță joasă 0xFF
Siguranță ridicată 0xD8
Siguranță extinsă 0x05

LilyPad Arduino cu ATmega328
Siguranță joasă 0xFF
Siguranță ridicată 0xDA
Siguranță extinsă 0x05

Arduino Pro sau Pro Mini (5V, 16 MHz) cu ATmega328
Siguranță joasă 0xFF
Siguranță ridicată 0xDA
Siguranță extinsă 0x05

(Vizitată de 33 ori, de 103 ori astăzi)







Trimiteți-le prietenilor: