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.
Î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).
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.
GC Uploader.zip - încărcător automat de fișiere HEX pentru Arduino
Programul este interesant deoarece fișierul selectat HEX va fi încărcat automat în Arduino după fiecare schimbare. Acest lucru este convenabil, deoarece în dezvoltarea proiectului fiecare compilare (actualizare hex) va iniția firmware-ul lui Arduina - nu trebuie să faceți nimic singur! În plus, programul are, de asemenea, un mod manual de firmware.
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.
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 61 de ori, de 5 ori astăzi)
Navigare după înregistrări
Am 4 placi cu mega168 de la un producător și unul cu mega 328 de la celălalt. În plus, chips-urile sunt, de asemenea, diferiți producători. 328-I cu sigla lui Atmel, un 168-am, de asemenea, cu inscripția Atmel, dar nu ca Atmel. Sunt toți respinși?
LED-ul clipește - firmware-ul din fabrică funcționează. Dacă ar exista defecte, atunci firmware-ul din fabrică nu ar funcționa. Este puțin probabil ca acestea să fie parțial defecte sau să fie utilizate exclusiv în Arduino.
Când i-am cumpărat, m-am gândit, de asemenea, că totul era deschis și că ar fi ușor să se răzbune. De ce secretul programului, care este în biblioteca cu Arduino în domeniul public? Și în descriere sa spus că este potrivit și pentru Arduino.
Este ciudat că nici Xloader, nici Uploaderul nu funcționează. Poate că undeva în computer aveți nevoie să verificați ceva? Păsări undeva să pună?
Dacă microcontrolerele nu sunt capabile să clipească printr-un programator obișnuit (de la același constructor), atunci problema este fie cu MK în sine, fie cu instalarea de fuziuni / biti de blocare în el.
încărcătorul poate fi în continuare spart (programul principal poate funcționa)
sau viteza portului pentru încărcător are nevoie de alta (încercați să schimbați linia standard)
ca o opțiune puteți încerca să instalați ID-ul Arduin și să încercați să-l bliți din el
Se pare că în timpul firmware-ului ceva a mers prost și a mers prost.