Utilizarea încărcătorului Bascom-AVR
La microcontroler AVR are o astfel de caracteristică utilă ca abilitatea de a lucra cu Bootloader'om, datorită căreia puteți microcontroler flash, printr-o interfață UART standard fără programare (dar, pentru a se lumineze intermitent programarea bootloader este încă necesară). Bootloader încărcate într-o zonă specială de memorie flash și este activată numai atunci când microcontroler începe să lucreze (la pornire sau după o resetare). Dacă până la bootloader este activ, în tamponul UART devine octet de inițializare, încărcătorul de boot este activată și începe să înregistreze datele rezultate în memoria microcontrolerului, și finalizarea înregistrării va începe programul doar înregistrat.
Există un număr mare de descărcări gata, același popular acum Arduino are și un built-in Bootloader, datorită căruia schițele sunt încărcate rapid în memoria MK.
Bascom-AVR, de asemenea, nu ramane in urma concurentilor :) si pentru aceasta exista deja pregatiti Bootloaders pentru majoritatea microcontrolerelor seriei Mega.
Acum, uita-te la bootloader pentru Bascom-AVR și încercați să-l utilizați pentru a bloca microcontroler. Și ca o legătură de potrivire, un convertor USB-UART este utilizat pe cipul FT232RL.
Mai întâi, selectăm un microcontroler în care vrem să folosim încărcătorul de boot. Am ATMega64a umplut. Există o mulțime de memorie în el și așa am decis să încărcați un bootloader acolo, nu-l va pierde :)
Circuitul de testare este mai mic, pe lângă microcontroler și convertor, există un LED în circuit, cuarț de 16 MHz și un buton de resetare
Circuitul asamblat arată astfel (voi scrie mai târziu despre această eșarfă)
Deci, având firmware-ul de boot cu setările necesare, rămâne doar să-l încărcați în microcontroler. Acest lucru se face într-un mod standard - cu ajutorul unui programator :)
În al doilea rând, trebuie să configurați corect Fyuz - pentru a seta dimensiunea bootloader „Boot Flash secțiunea Dimensiune“ (pentru dimensiunea ATMega64 este de 1024 de cuvinte) și programul Fyuz „Boot Reset Vector“. Numai atunci am încărcat bootloader BUDER începe mai întâi cu lansarea microcontrolerului.
Dimensiunea încărcătorului de boot este înregistrată în fișierul bootloader, deci alegeți în funcție de tipul de microcontroler utilizat.
Ecranul cu siguranțe personalizate pentru ATMega64 a rezultat mai jos (în programul Khazama AVR Programmer). Aici, în plus, sincronizarea este selectată dintr-un rezonator cuarț extern.
După toate acestea, bootloader-ul nostru este gata să meargă!
Acum trebuie să configurați software-ul pe partea laterală a computerului. Deschideți Bascom-AVR și accesați setările din fila Programator. Din lista derulantă, selectați tipul de programator de care avem nevoie - MCS Bootloader.
În aceeași filă, selectați numărul de port COM (am numărul 15) și viteza de conectare. Aici am lăsat totul implicit - 38400 baud.
Acum trebuie să deschideți fila Loader MCS și să setați dimensiunea sectorului de boot corespunzător valorii setate în firmware-ul bootloaderului (în cazul meu 1024 de cuvinte)
Setările rămase nu prezintă interes, cu excepția articolului "Resetare prin DTR". Această bifă vă permite să trageți automat piciorul Reset pe microcontroler dacă îl conectați la pinul DTR de pe convertor. La mine nu este pusă în aplicare, prin urmare, la inserarea de fiecare dată când voi apăsa un buton Resetați manual :) Dar pentru fericirea deplină este posibil să se aplice această caracteristică.
După salvarea setărilor, puteți începe descărcarea programului prin bootloader. De exemplu, încărcăm în controler un simplu program intermitent pentru LED-ul de pe piciorul PortD.7
$ regfile = "m64def.dat"
$ cristal = 16000000
Config Portd. 7 = ieșire
Led Alias Portd. 7
compilați (F7) și apăsați F4 iar fereastra încărcătorului va apărea imediat
Așa cum am scris deja, se așteaptă atunci când încărcătorul pornește în microcontroler, așa că pentru a începe încărcarea fișierului, este necesar să resetați microcontrolerul apăsând butonul Resetare. După ce faceți clic, noul program va fi descărcat. Și apoi, trebuie să recunosc, am fost plăcut surprins de viteza cu care se încarcă programul - "zboară" chiar mai repede decât pe yusbaspe și orice STK200.