Ručno treptanje AVR-a. Osnove programiranja AVR mikrokontrolera

Axis i došlo je vrijeme za prvi firmware. Tsya firmware ê test. Vaughn ne opljačkati zhodnyh smeđe djece, krim drhtanje nizhki iza pjevanja algoritma. S ovim firmwareom moguće je promijeniti praktičnost cijelog mikrokontrolera i luku uvođenja i implementacije zocrema.
Za promjenu mikrokontrolera potrebno je skinuti firmware i diviti se onome što se vidi na nogama. Možete se "čuditi" ili s multimetrom, ili jednostavno sa sondom - svjetlosnom diodom u seriji s otpornikom od 300 Ohm - 1 kOhm. Bez otpornika ne možete promijeniti bradavicu - možete spaliti I/O port. Razine signala na donjim dijelovima se mijenjaju od "1" preko "Z"-stalka do "0" i natrag. "Z" stan se uvodi u slijedu kako bi se kontrolirao redoslijed porta u načinu unosa.

Testirajte firmware za ATMega48/88/168 mikrokontroler.
Algoritam očitavanja robotskog firmware-a ATMega48/88/168 na slici (mikrokontroler umetanja na prethodnom opisu).

Mikrokontroler radi kao unutarnji generator, tako da nema potrebe za vanjskim kvarcom. Nizhki 9 i 10 (veza na vanjski kvarc) nisu iza, jer se tamo pojavljuje vanjski kvarc. Također, nemojte postavljati nisko 1 (skid) i 21 (referenca napona za ADC). Postoje dva načina za preokrenuti praksu (božanski mališani) - začuditi se promjeni razine signala u zemlji (GND) ili nižem životu (VCC).
- Testirajte firmware za ATMega48/88/168

Kako bljesnuti mikrokontroler >


Testirajte firmware za ATtiny2313 mikrokontroler.
Algoritam za očitavanje robotskog firmware-a ATTiny2313 na slici (mikrokontroler umetanja na prethodnom opisu).

Mikrokontroler radi kao interni generator, tako da nema potrebe za njim izvana. Nizhki 4 i 5 (veza vanjskog kvarca) nisu postavljeni na vapadoku, jer se tamo pojavljuje vanjski kvarc. Također nije dodijeljen niski 1 (skid). Postoje dva načina za preispitivanje praktičnosti - diviti se promjeni razine signala zemlje (GND) i niskog vijeka trajanja (VCC).
- Testirajte firmware za ATTiny2313

Kako bljesnuti mikrokontroler >


Testirajte firmware za ATTiny13 mikrokontroler.
Algoritam za indikacije robotskog firmware-a ATTiny13 na slici (mikrokontroler umetanja na prethodnom opisu).

Mikrokontroler radi kao interni generator (to je veliki luksuz za ovaj mikrokontroler, to ne vidim). Očito, nije nizak broj 1 (skid). Praksu provjeravamo na isti način, kao u prethodnim mikrokontrolerima.
- Eustova firmware za ATTiny13

Kako bljesnuti mikrokontroler >


Perevirka pratsezdatnosti "Z" - postat ću port_v vvednya-vyvedennya.


“Z”-stoji ovaj stan, ako je donji konfiguriran za ulaz i nema mu ravnog (nisu spojeni ni na što). Kako biste kontrolirali prisutnost takvog čelika, možete ga ubrzati pomoću otpornika dilnik. Ako je izjednačenje "1" životni napon će biti +5v, ako je jednak "0" - uzemljenje je 0v, a ako je uključeno "Z", ulazna i izlazna luka će prestati raditi u radu dilnik i dodat će napon živih i uzeti ćemo +2,5v.

DATOTEKE:
- Widgeti testnog firmwarea

(Posjećeno 18 359 puta, 4 posjete danas)

  • Memorija za programe (FLASH) - 1Kb
  • RAM - 64 bajta
  • Broj ulazaka/izlazaka - 6
  • Vikhodiv ShÍM - 2
  • Analogni ulazi (ADC 10bit) - 4
  • Tajmer 8 bit - 1
  • Napon pod naponom 1,8 - 5,5V
  • Radna frekvencija - do 20MHz
  • Spavanje u aktivnom načinu rada 1.8V/1MHz - 190uA
  • Način mirovanja 1.8V/1MHz - 24uA

Programiranje ATtiny13

Za programiranje, postavit ću Arduino IDE. Kao što vidite, srž razvoja može biti podržana dodatnim kontrolerima. Na primjer, u tsíy statti Shvatio sam kako programirati "narodni WiFi" ESP8266 u Arduino IDE. Na web stranici arduino.cc nalazi se poveznica koja je pokazala programiranje ATTiny13 u Arduino jezgri. Imam instaliranu verziju 1.6.5. Snimit ću arhive ATTiny jezgre za Arduino. Raspakirajte u c:\Program Files (x86)\Arduino\hardware\ i Arduino IDE prikazuje dodatna plaćanja

Sada zavantazhennya programe. Ukupni memorijski kapacitet mikroprocesora je 1Kb i tu nema mjesta ni za jednog avanturista. Stoga skicu izvodi programer na ISP-u. USBAsp, kao što sam programirao Atmega328, nisam htio. Potreban vam je poseban firmware za programator, ne želim se zamarati s njim. Možete programirati mikrokontroler uz pomoć Arduina. Za koga biram sljedeću shemu:

U Arduino IDE-u odabirem "File->Imports->ArduinoISP" i počet ću skicu programatora u Arduinu. Zatim biram "Alati->Programer->Arduino kao ISP". Sada možete zavantazhuvat skice u mraku. Zatim postavite jezgru ATTiny13 za Arduino da zamijeni Arduino skup funkcija.

Na mom robotu imam ravnu jalinku sa svjetlosnim vodičima

Postojala je halogena svjetiljka za 12 V i motor u blizini Yalintsa, koji je okretao krug-filter u boji, što je promijenilo boju svjetlovoda. 3 godine su ugasle žarulja i motor.

Os i i vyríshiv vídnoviti tsyu yalinka shmatochkoy RGB-stríchki kerovanoí̈ ATtiny13. Znímannya keruvannya linija je ispala ovako:

tri tranzistora i otpornika, linearni regulator napona i bojler.

Skica je programabilni trokanalni PWM od promjene svjetline na različitim kanalima, zbog čega linija svjetluca različitim bojama.

Ako je tako, dovoljno je platiti naknadu za tu liniju u zgradi jalinke

Bijela ljepljiva traka za poboljšanje izgleda svjetla u sredini tijela.

Grudi 2015

1. Prednosti predložene metode

Priključni krugovi na mikrokontrolerima (MK) zvuče kao dvije važne stvari: maksimalna jednostavnost i visoka funkcionalnost. Do tada se funkcionalnost može mijenjati i proširivati ​​bez ikakvih promjena u shemi - samo zamijenite program (flashing). Ove značajke objašnjavaju se činjenicom da su tvorci današnjih MK-a pokušali na jedan kristal smjestiti sve što bi prodavaču elektroničkog uređaja moglo zatrebati - uzmite pod, pod je moguć. Kao rezultat toga, došlo je do pomaka u naglasku sklopova i sklopa na softver. Od sada je manje vjerojatno da će studenti MK-a "navantirati" krug detaljima, a manje je dijelova između komponenti. Tse, očito, opljačkati shemu više privablyu za í̈na ponavljanje kao dosvídchenimi, pa í elektronnik-pochatkívtsyami. Ale, jak zavzhdi, sve moraš platiti. I ovdje to nije prošlo bez njegovog preklapanja. Ako kupite novi MK, stavite ga u ispravno odabranu shemu i ispravne detalje plaćanja troškova života, tada nećete vidjeti ništa - nije praktično. Mikrokontroleru je potreban program.

Sve je bilo jednostavno za vas - na Internetu možete stvoriti anonimne sklopove s besplatnim firmwareom. Ali ovdje postoji jedan problem: firmware treba "uploadati" u mikrokontroler. Za one koji se s tim ranije nisu bavili, takav zadatak često postaje problem i glavni čimbenik, koji je često poremećen utjecajem MC-a i traženjem shema na "rozsipuhu" i zhorstkíy logici. Aje, nije sve tako dobro i glatko, kao što se vidi na prvi pogled.

Nakon analize publikacija na Internetu, možete se sjetiti da se ovaj problem uglavnom rješava jednim od dva puta: kupnjom gotovog programatora ili izradom samostalnog programatora. Uz sve sheme samouvjerenih programera koje se objavljuju, često su nerealno presavijene - bogato presavijene, niže efektivno potrebne. Zvichayno, kao što se događa svaki dan za bljeskanje MK-a, češće nego ne, majka je "kul" programer. Međutim, ako je potreba za takvim postupkom rijetka, sat za satom, onda možete bez programatora. Ne, očito, nema priča o onima koji uče raditi snagom misli. Možda je na rubu, scho rozumíyuchi, jer je potrebno komunicirati s programatorom s mikrokontrolerom prilikom snimanja i čitanja informacija u načinu programiranja joge, možemo upravljati zgodnim metodama širokog prepoznavanja. Qi Koshti može zamijeniti i softverski i hardverski dio programatora. Hardverski dio je odgovoran za osiguravanje fizičke veze s mikro krugom MK, mogućnost primjene logičke jednakosti na ulaz i čitanje podataka s izlaza. Softverski dio može dati robotu algoritam koji zahtijeva potrebne procese. Značajno je i to da se kvaliteta snimanja informacija u MC ne može pohraniti, ovisno o tome koliko "kul" imate programator. Ne postoji nešto "ljepše snimljeno" od "ovdje". Postoje samo dvije opcije: "upisan" i "nije upisan". Tse tim da bez posredničkog procesa snimanja u sredini kristala keruê MK samog. Bolje je voditi brigu o svom yoma yakísne kharchuvannya (tijekom dana pomicanja i pulsiranja) i pravilno organizirati sučelje. Ako nema oprosta za rezultate kontrolnog očitanja, onda je sve u redu, možete pobijediti kontrolora za prepoznavanje.

Kako bismo zapisali program u MK, a da ne dopuštamo programatoru, moramo promijeniti USB-RS232TTL port i, kao i. USB-RS232TTL pretvarač omogućuje kreiranje COM porta za dodatni USB port, koji se spaja na "referentni" manje, da na ulazima i izlazima postoje logički TTL jednaki, tako da je napon u intervalu između 0 i 5 volti (izvješće se može pročitati "). Takav konverter mora biti nekakva majka u "vladi", da ne budeš imao puno, ma kako bilo. Ako postoje logičke linije, onda je u našem TTL modu potrebno staviti prioritet ispred velikog COM porta, tako da možete ulaziti i izlaziti iz takvog porta bez posredničke veze s bilo kojim mikrokontrolerom koji može živjeti s naponom od 5 V , uključujući ATtiny i ATmega. Ali nemojte pokušavati nadjačati standardni COM-port - naponi se tamo nadjačavaju u intervalu od -12 do +12 V (ili -15 ... +15 V). Neprihvatljivo je imati izravan kontakt s mikrokontrolerom!

Ideja o izradi skripte za program "Perpetuum M", koja implementira funkcije programera, winkla je nakon poznavanja brojnih publikacija na internetu kako izgovoriti ta druga rješenja za MK firmware. Ozbiljni nedolíki chi nadsvjetski nabori pojavili su se na koži. Programske sheme su često prolazile, kako bi se osvetile vlastitom mikrokontroleru, a pritom su se ozbiljno davale za kshtalt: "... a da programiramo mikrokontroler za tog programera, trebamo ... tako je - još jedan programer!". Dali su nagovještaj da odu kod prijatelja, da onda traže plaćenu uslugu. Razina sigurnosti softvera, koja je proširena u mjeru za ove namjene, također nije bila impresionirana - napomenuto je da nije bilo problema s funkcionalnošću, a također i s "pokvarenošću" sučelja coristuvacha. Najčešće je potrebno pokazati, razumjeti kako osvojiti program - potrebno je učiti za kreiranje najjednostavnijih aktivnosti. Još jedan program može dugo i marljivo raditi, ali o onima da se ništa ne bilježi u MK, zna se tek nakon završetka svih firmware-a i uvredljivog kontrolnog očitanja. Postoji takav problem: koristuvach pokušava odabrati s popisa kristala koji su podržani, njihov MK, ali joga nije na popisu. U ovom trenutku program ne smeta - popis dnevnih MK-a u pravilu nije prenesen. Osim toga, ručni odabir kontrolera s popisa izgleda čudesno, kao da laže, da programer u mnogim slučajevima može sam odrediti vrstu MK-a. Sve je to rečeno ne kako bi se blatom zalili poznati proizvodi, već kako bi se objasnio razlog pojavljivanja skripte prije programa "Perpetuum M", koji je opisan u ovom članku. Problem je stvarno stvaran, a pred početnikom je dosta muke za nas, tako da ne moramo uvijek pokušavati popraviti “zid”, kako bismo mogli unaprijediti svoj prvi posao u svijetu mikrokontrolera . Proponirana skripta bila je osigurana s nekim nedostacima, prikazanim u drugim programima. Implementiran je maksimalni "razmak" u algoritam robota, granično jednostavno sučelje coristuvacha, koje ne ometa uvijanje i ne uskraćuje priliku da se izgubite i "ne gurajte tamo". Za dostupnost potrebnog MK u sredini parcele, možete samostalno dodati jogo opis, uzimajući potrebne podatke iz dokumentacije, preuzete sa stranice MK trgovca. Í, što je najvažnije - skripta za opravdanje i modifikaciju. Koža bazhayuchy može, vodkrivshi u uređivaču teksta, izokrenuti i ispraviti jogu na ovlasti suda, mijenjajući svoj ukus svojim bitnim funkcijama i dodajući svojim nedostatcima.

Prva verzija scenarija nastala je u Cherry 2015. U ovoj verziji implementirana je samo podrška za Atmelove MK serije ATtiny i ATmega s funkcijama upisivanja/čitanja flash memorije, s postavljanjem konfiguracijskih bitova, s automatskom dodjelom tipa kontrolera. Zapisivanje i čitanje EEPROM-a nije implementirano. Bilo je planova za dodavanje funkcionalnosti skripti za čitanje EEPROM-a, implementaciju podrške za PIC kontroler itd. Zbog toga skripta nije objavljena, ali nakon braka, planirano kašnjenje je odgođeno, a bolji nije postao neprijatelj dobro, objavljeno je. implementirane funkcije izgledaju nedostatne, nemojte se sramiti. U svakom slučaju, možete pokušati samostalno dodati potrebnu funkciju. možete bolje razumjeti MK robota u načinu programiranja, tako da se budućnost ne vidi u djevojačkom kampu ispred auta, koja razmišlja, zamišljeno gleda u njegovu unutrašnjost i ne razumije, zašto "ne í̈de".

2. MK sučelje kao programiranje

Ísnuê dekílka različiti putevi prebacite kontroler u način programiranja i vježbajte s njim u drugom načinu rada. Najjednostavnija implementacija za kontrolere ATtiny i ATmega ê, možda, SPI serije. Njega i požuri.

Ale, dok gledam signale, potrebno SPI kalupljenje, trebamo dodati brojne štitnike. Mikrokontroler se može konfigurirati. Trošak prekidača kshtalt, čije prebacivanje omogućuje promjenu djelovanja snage mikrosklopa prema potrebama projekta. Fizički, sredina energetski neovisne memorije, tiha je, na primjer, program se snima. Razlika je u tome što ih je premalo (do tri bajta za ATmegu), a smrad ne ulazi u adresni prostor, bilo da se radi o memoriji. Snimanje i čitanje konfiguracijskih podataka dovršava se istim naredbama za način programiranja MK-a. Istodobno, važno je napomenuti koje vrste konfigurabilnih podataka se mogu dodati mogućnosti korištenja SPI-a. Za vrijednosti pjesme može se činiti da se SPI ne može pobijediti. Ako vam je potreban takav mikrokontroler, onda metoda koja je predložena u ovom članku neće pomoći. U tom slučaju možete promijeniti konfiguracijske bitove programatora, što će poboljšati način programiranja, ili promijeniti mikrokontroler. Ali taj problem je manje tih, tko god živi u MK, ali je miran, s kim se ne možeš daleko "iskopati". S desne strane, novi MK-ovi se isporučuju s podesivim bitovima prilagođenim tako da ne nadjačavaju SPI prekidač. To potvrđuju i rezultati testiranja skript-programatora za program "Perpetuum M", po prvi put su uspješno bljesnuli nekoliko različitih MK-a (ATmega8, ATmega128, ATtiny13, ATtiny44). Brkovi su bili novi. Pochatkovljeva postavka konfiguracijskih bitova potvrdila je dokumentaciju koja nije poštivala SPI verziju.

Zvajayuchi na ono što je gore rečeno, slijedi poštovanje takvog života. SPIEN bit omogućuje očiti izgled, ili zaboraê SPI vikoristannya; Bit RSTDISBL se može promijeniti da promijeni jednu od promjena mikrosklopa (iza raspona zvukova) na ulazu u "skid" signal, ili da se ne promijeni (vrijednost zapisana u ovom bitu mora biti ostavljena). U našem načinu rada je neophodan "skid" unos (iz tog razloga nije moguće prebaciti MK u programski način putem SPI). Definirajte drugu CKSEL grupu za postavljanje signala sata. Smrad ne mijenja SPI frekvenciju, ali je također potrebno da ga majka koristi, pa s višom frekvencijom taktnih impulsa, odnosno pri njihovoj frekvenciji nižoj od dopuštene SPI brzine za datu brzinu, također ne izgleda dobro. Zvuk na novom MK-u, koristite interni RC generator, pobijedite CKSEL grupe za postavljanje pjesme. Potpuno smo suvereni - čuvamo sigurnost bez aditiva s naše strane. Zalemite kvarcni rezonator, a originalni generator nije potrebno spajati. Ako je tako, predviđeno je da se osveti za daljnje bičevanje, da dovede bitku u ritam oko koračanja, očito do točke udaranja. U tom slučaju možda ćete se morati spojiti na MK kvarcnog rezonatora ili generatora zvuka sata. Ale mi se u okviru članka ne vidi, kao da se boji. Primijenite vezu MC za programiranje, koja bi trebala biti u ovom stat, rozrahovani na najjednostavniji korak.

Mal. 1. Razmjena podataka putem SPI u načinu programiranja

Idemo sada do malog 1, preuzetog iz dokumentacije MK ATmega128A. Na novu indikaciju, proces odašiljanja jednog bajta MK-a i primanja jednog bajta MK-a u jednom satu. Uvrijediti proces, kao bachimo, vicoristo jedne te iste taktne impulse, poput programatora u mikrokontroler sa SCK ulaza, jedan je od dizajna mikročipa, koji imaju takvu ulogu u načinu programiranja SPI. Još dvije signalne linije osiguravaju prijem i prijenos podataka, jedan bit po taktu. Preko MOSI ulaza podaci idu u mikrokontroler, a s MISO izlaza preuzimaju se podaci koji se čitaju. Vratite poštovanje na dvije točkaste linije povučene od SCK do MISO i MOSI. Pokazat će da li mikrokontroler "krivi" bitove podataka na MOSI ulazu, te da li ubacuje svoj podatkovni bit na MISO ulaz. Sve je lako završiti. Da bismo MK ušli u programski način rada, potreban nam je i RESET signal. Ne zaboravite na vruću žicu GND i VCC pod naponom. Lako je shvatiti da trebate spojiti ukupno 6 žica na mikrokontroler za SPI firmware. U nastavku pogledajmo izvješće, ali za sada recimo da se razmjena podataka s MC-a u načinu SPI programiranja šalje u paketima od 4 bajta. Prvi bajt skin paketa važnije je unijeti pod kodiranjem naredbe. Drugi bajt je isti kao i prvi, može se nastaviti naredbom ili djelomičnom adresom, ili može biti važniji. Treći bajt je važniji od adrese prijenosa, ali za bogate naredbe može imati važniju vrijednost. Zvuk četvrtog bajta prenosi podatke ili može biti značajniji. Narudžba od prijenosa četvrtog bajta za neke naredbe, podaci se primaju, kao iz MK. Pojedinosti o naredbi skin možete pronaći u dokumentaciji kontrolera pod tablicom pod naslovom "SPI Serial Programming Instruction Set". Iako je znatno manje, cjelokupna razmjena s kontrolorom impulsa iz niza 32-bitnih paketa, tri više od jednog bajta jezgrenih informacija se prenosi na skin tag. Tse nije ni optimalan, ali je loše napravljen u žurbi.

3. Povezivanje MK-a za programiranje

Kako biste osigurali da se svi potrebni signali isporučuju na ulaze mikrokontrolera za organiziranje SPI sučelja i čitanje podataka s MISO izlaza, nemojte vezati programator. Lako se instalira uz pomoć sjajnog USB-RS232TTL pretvarača.

Na internetu često možete pronaći informacije o tim pretvaračima koji su netočni, da se s njima ne može ništa ozbiljno učiniti. Ali ima više modela pretvarača, takva misao je oprost. Dakle, na prodaju postoje pretvarači koji su dostupni, nisu svi spojeni na isti standardni COM-port (na primjer, samo TXD i RXD), što je moguće s bilo kojim nerazdvojnim dizajnom (mikrokrug je popunjen s plastikom - nemoguće je proći kroz konektore). Ali ipak, nemojte varto. U nekim slučajevima moguće je ubaciti i izvući priključak spajanjem žica izravno na mikrosklop. Kundak takvog "pročišćenog" pretvarača prikazan je u maloj 2 (čip PL-2303 - izvješće o prepoznavanju íí̈ vysnovkív u članku ""). To je jedan od pronađenih modela, ali može imati svoje prednosti kada pobijedi u samostalnim dizajnom. Široko široki i potpuno funkcionalni adapterski kabeli sa standardnom devetopinskom utičnicom na kraju, poput COM porta. U sjajnom COM-portu, smrad više nije jednak TTL-u i nedosljednosti stare softverske sigurnosti i starih starih stvari. Također se može vidjeti da se kabeli na CH34x čipu na raznim ekstremnim testovima pokazuju bogato superiornim i stabilnima u odnosu na PL-2303 adaptere. Vtím, uz veliku pobjedu, razlika se ne obilježava.

Prilikom odabira USB-RS232TTL pretvarača, također treba obratiti pažnju na kompatibilnost upravljačkog programa s verzijom operacijskog sustava koja je pobjednička.

Pogledajmo princip instaliranja mikrokontrolera i USB-RS232TTL pretvarača na primjeni nekoliko različitih MK modela: ATtiny13, ATtiny44, ATmega8 i ATmega128. Mala slika 3 prikazuje shematski dijagram takvog napada. Možda ćete biti iznenađeni da RS232 signali (RTS, TXD, DTR i CTS) nisu prepoznati. Ne brinite oko toga: program "Perpetuum M" je dizajniran za rad s njima bez posrednika - postavite vrijednosti ​​​​na izlazima i očitajte ulaz. U svakom slučaju, široko prošireni USB-RS232TTL pretvarači na mikro krugovima CH34x i PL-2303 pružaju takvu mogućnost - prevrnuta je. S najpopularnijim pretvaračima nema problema, ali tipke za pristup portu su pokvarene standardnim Windows funkcijama.

Otpornici prikazani na glavnom krugu u principu se ne mogu ugraditi, već se ugrađuju. Yake njihovo priznanje? Vikoristovoi TTL "IVSKI VIDIS NA KONEKTORU I P'yatyatnutny Kharchuvannya Mikrontroller, Mi Tim sam Neckholnosti Uzgogenni RIVNIV - sve isto kao što je upereno. , gdje ne bi mogao pasti ni na koji način, i zatvoriti one koji u svakom slučaju ne mogu biti zatvoriti.mikrokontroler za prebacivanje na zadani način rada, a možete saznati da je spojen na izlaz pretvarača (RTS, TXD ili DTR) i također postaje izlaz, što je jasno zapisano u MK programu koji imat će lošiji izlaz, kao dva izravno kada se morate "boriti" - pokušajte uspostaviti različite logičke jednakosti. Takva "borba" se može "programirati", ali nam ništa ne treba.

Ocjene tri otpornika odabrane su samo na razini od 4,3 kOhm. Potrebno je spojiti izlaz pretvarača - ulaz mikrokontrolera. Točnost otpornika ne igra ulogu: možete promijeniti njihov opir na 1 KΩ ili ga povećati na 10 KΩ (alternativno, u drugom slučaju, postoji veći rizik od pomaka kada ima više žica na putu do MK) . Pa, prije spajanja ulaza pretvarača (CTS) - izlaza mikrokontrolera (MISO), tada postoji otpornik za podršku od 100 Ohma. To se objašnjava značajkama ulaza vikornog pretvarača. Na sat vremena isprobajte vikoristany pretvarač na mikrokrugu PL-2303, uđite u njega, sudeći po brkovima, povucite ga do plusa života s osjetno niskom potporom (gotovo nekoliko stotina ohma). Da "ubijem lift", imao sam priliku staviti otpornik s tako malim osloncem. Vtím, joga se ne može staviti ispred. Na pretvaraču unesite ulaz. Ne možete postati izlaz, a onda sukob izlaza neće biti za bilo kakav razvoj.

Kao mikročip, mogu postojati AVCC sklopovi za analogno-digitalnu pretvorbu (na primjer, ATmega8 ili ATmega128), sljedeći korak u implementaciji mainstream VCC. Aktivni mikro krugovi mogu imati više od jednog VCC vijeka trajanja ili više od jedne GND. Na primjer, ATmega128 ima 3 GND petlje i 2 VCC petlje. U post-yny dizajnu, jednoslojne visnovke vjerojatnije će biti između sebe. U našem slučaju, za sat vremena programiranja možete koristiti jednu VCC i GND žicu.

A os izgleda kao ATtiny13 veza. Sličica prikazuje prepoznavanje vysnovkív, koji vykoristovuyutsya za sat vremena programiranja putem SPI. Redoslijed na fotografiji - kao Timchasova veza izgleda stvarno.


Može se reći da nije ozbiljno – stoji na objavama. Ale, ti i ja smo razumni ljudi. Naša meta je usmjerena na to kako programirati mikrokontroler, koristeći barem sat vremena tih drugih resursa, a ne na razmetanje pred kimoima. Yakíst ne pati s kim. Metoda "na objavama" je prilično učinkovita i ispravna. Firmware kontrolera je jednokratni postupak, tako da ga nema smisla prekrivati ​​"strasses". Ako prenosite da biste promijenili firmware, bez uklanjanja kontrolera iz kruga (u gotovoj verziji), bit ćete zaštićeni u instalaciji sat vremena pripreme. Zvuk za koji se instaliraju utičnice (RESET, SCK, MOSI, MISO, GND), a MK se može bljeskati nakon instalacije na ploči. Ale tse već kreativna vyshukuvannya. Pa, pogledajmo najjednostavniji obrat.

Sada prijeđimo na ATtiny44 MK. Ovdje je sve otprilike isto. Pomalo i fotografija za dobivanje novaka, nije važno povezati se. Slično ATtiny44, možete povezati MK ATtiny24 i ATtiny84 - prepoznavanje vysnovkív u tsíêí̈ tríytsí zbígaêtsya.


Drugi primjer vremenske veze kontrolera za programiranje joge je ATmega8. Ovdje ima više visnovkív, ali princip istog je grančica žica, a os je već spremna za kontroler da "ispuni" podatke. Zayviy crna žica na fotografiji, koja ide na pregled 13, ne sudjelujem u programiranju. Vín dodjele za znyattya zvučni signal nakon izlaza MC-a iz načina programiranja. To je zbog činjenice da je scenarij za "Perpetuum M" preuzet s MK-a za glazbeni ekranski program.


Često se jedan kontroler izdaje u različitim slučajevima. Istodobno, prepoznavanje visnovkív korpusa kože podijeljeno je na svoj način. Kao da kućište vašeg kontrolera nije slično onom sa slike za mališana, prepoznavanje okova možete pojasniti iz tehničke dokumentacije, što možete dobiti na web stranici MK prodavača.

Da bismo upotpunili sliku, gledamo vezu MK mikrosklopa iz velikog broja "niskih". Dodjela crne strelice na fotografiji, koja je viđena 15., ista je kao u slučaju ATmega8.


Ymovírno, već si se predomislio, lako je sve završiti. Tko god može rahuvati visnovki na mikro krugovima (poput tragova na kolcu na strelici godine), taj će to shvatiti. I ne zaboravite na točnost. Mikrokrugovi vole uredno i ne opraštaju sebi neoprostivu postavku.

Prvo idite na softverski dio, promijenite postavke tako da je upravljački program za USB-RS232TTL konverter ispravno instaliran (obrnite Windows Device Manager). Zapamtite ili zapišite broj virtualnog COM porta, a to je sat povezivanja pretvarača. Ovaj broj morat ćete unijeti prije teksta skripte, pročitajte o tome u nastavku.

4. Skripta - programer za "Perpetuum M"

Riješili smo se hardverskog dijela “programatora”. Tse već pívpravi. Sada više nema rozíbratisya iz programskog dijela. To je uloga viconuvatime programa "Perpetuum M" pod kontrolama skripte, u kojem su sve potrebne funkcije implementirane u interakciji s mikrokontrolerom.

Raspakirajte arhivu sa skriptom u istu mapu u kojoj se nalazi program perpetuum.exe. U tom slučaju, kada pokrenete datoteku perpetuum.exe, na ekranu će se prikazati izbornik s popisom instaliranih skripti, u čijoj sredini će se nalaziti red "MK AVR Programmer" (možete biti jedan i isto). Trebamo isti red.

Skripta se nalazi u mapi PMS u datoteci "Programer MK AVR.pms". Ovu datoteku možete pregledavati, uređivati ​​i uređivati ​​za potrebe sjajnog uređivača teksta u prozoru Windows Notepad. Prije izmjene skripte, morat ćete unijeti izmjene u tekst u vezi s prilagođenim portom. Kako biste s dispečerom dodataka za Windows razjasnili naziv porta za pobjedu i, ako je potrebno, izvršite odgovarajuću ispravku u retku "Im'yaPort="COM4";" - zamjenska znamenka 4 može biti druga znamenka. Također, ako imate drugačiji model USB-RS232TTL pretvarača, možda ćete morati promijeniti postavke inverzije signala (redci skripte koji počinju od riječi "High"). Invertirane signale moguće je konvertirati USB-RS232TTL konverterom uz pomoć jedne od aplikacija, koja se nalazi u uputama za program Perpetuum M (odvojene funkcije za rad s portom).

Privici mape MK_AVR sadrže datoteke s opisima kontrolera podrške. Ako se među njima ne pojavi potreban kontroler, možete ga dodati samostalno, analogno. Uzmite jednu po jednu datoteku i uz pomoć uređivača teksta unesite potrebne podatke uzimajući ih iz dokumentacije za mikrokontroler. Golovne - budite poštovani, unesite podatke bez pardona, inače MK neće biti programiran ili će biti programiran pogrešno. Trenutna verzija podržava 6 mikrokontrolera: ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATmega8 i ATmega128. Skripta implementira automatsko prepoznavanje povezanog kontrolera - nije ga potrebno postavljati ručno. Zbog prisutnosti identificiranog MC identifikatora, među najnovijim opisima, čini se da se kontroler nije mogao prepoznati.

U arhivu sa skriptom uključene su i dodatne informacije. Mapa "inc-files of AVR kontrolera" ima veliku kolekciju datoteka opisa kontrolera. Qi datoteke odabiru se prilikom pisanja osobnih programa za MK. Također očistite mape "MusicBox_..." da biste očistili datoteke s programom u Assembleru i spremne za učitavanje u MK s firmwareom za ATtiny13, ATtiny44, ATmega8 i ATmega128. Ako ste već spojili jedan od MK-a za programiranje, kao što je predloženo u ovom članku, tada ga možete odmah bljesnuti - vidjet ćete glazbeni zaslon. O u nastavku.

Kada odaberete izbornik skripti u redu "Programer MK AVR", skripta se počinje izvoditi. Kada otvorite port, pošaljite naredbu MC-u za prebacivanje u programski način, primite potvrdu MC-a o uspješnom prijelazu, dostavite MC identifikator i potražite opis ovog MC-a od prvog identifikatora srednjih datoteka s opisi. Ako ne znate točan opis, vidite točan opis. Čim se pronađe opis, dalje se prikazuje izbornik programatora. Možete snimiti screenshot malenog 8. Nije ga lako srediti – izbornik je još jednostavniji.

Prva verzija skripte nema funkcionalnost naprednog programera. Na primjer, ne postoji mogućnost čitanja i pisanja u EEPROM. A ako vidite skriptu u uređivaču teksta, onda možete reći da već postoji malo proširenje, unatoč činjenici da je uglavnom implementirano u novom. Nije dovoljno govoriti o onima koji dodaju dodatne dnevne funkcije, to nije tako jednostavno i komplicirano - jezik je više gnuchki, omogućuje vam implementaciju puno funkcionalnosti u malom programu. Ale za više vipadkív vystachit navít funktsíy.

Radnje funkcionalne razmjene opisane su u tekstu skripte:
//implementacija zapisa s nulte adrese (Zapis adrese proširenog segmenta se zanemaruje, LOAD OFFSET - tezh)
//red i kontinuitet slijeda zapisa u HEX datoteci se ne provjerava
//kontrolni zbroj nije revidiran
Trošak je rad s HEX datotekom, za koju se uzima kod firmvera za MK. Ako datoteka nije stvorena, ponovna provjera kontrolnog zbroja nije slučaj. Yakshcho kreacije - radi scenarija tse viyaviti ne ulazi u to. Ne morate vršiti nikakve druge zamjene, još uvijek je potrebno da odu.

5. Glazbeni ekran - jednostavan viríb za pochatkívtsív

Ako imate jedan od mikrokontrolera: ATtiny13, ATtiny44, ATmega8 ili ATmega128, lako ga možete pretvoriti u glazbeni zaslon ili glazbeni letak. Kome je dovoljno napisati firmware u MK - jedan od chotiroh, yakí smještaj u mape "MusicBox_..." u jednoj arhivi sa skriptom. Firmware kodovi su preuzeti iz datoteka s ".hex" ekstenzijama. Pobjeda ATmega128 za takav virobu, očito, "mastan", poput ATmega8. Ale tse može biti otrcan za testiranje eksperimenata, inače se čini - za primarne svrhe. Dodani su i programski tekstovi u asembleru. Programi su stvoreni ne od nule - za osnovu je uzet program glazbenih ekrana iz knjige A.V. Belova "AVR mikrokontroleri u radioamaterskoj praksi". Vikend program prepoznao je niz bitnih promjena:
1. prilagođeno za zaštitu kože MK: ATtiny13, ATtiny44, ATmega8 i ATmega128
2. tipke su onemogućene - ništa ne treba spojiti na kontroler, živ je i zvuči (melodije se reproduciraju jedna po jedna u beskonačnom ciklusu)
3. Promijenjena je trivalnost kožne note, beznačajnost pauze između nota poremećena je glazbenim ritmom.
4. Osam melodija uključeno, nije uključeno u verziju knjige
5. od subjektivnog: "poboljšavanje" radnji za optimizaciju i lako usvajanje algoritma

U nekim se melodijama naslućuje laž i izaziva gruba pomilovanja, posebno u "Smijehu" - u sredini. Kodne melodije preuzete iz knjige (točnije - preuzete sa stranice autora knjige odjednom iz iste asm-datoteke) i nisu prepoznale promjenu. Poziv na sve, u kodiranju melodija ima pardona. Ali nije problem – tko god se “prijatelji” s glazbom, svima je lako skužiti i popraviti.

U ATtiny13, korištenjem 16-bitnog ličnika za kreiranje nota, bilo je moguće transkribirati 8-bitne, što je dovelo do smanjenja točnosti zvuka nota. Alya se ne sjeća mnogo po uhu.

Chodo konfiguracijski bitovi. Njihov nalashtuvannya može vydpovidati Ja ću postati novi mikrokontroler. Kako je vaš mikrokontroler ovdje već bio pobjednik, potrebno je pregledati standard konfigurabilnih bitova i, ako je potrebno, ažurirati ih prije postavljanja novog mikrokontrolera. Konfiguracijske bitove novog mikrokontrolera možete prepoznati iz dokumentacije cijelog MK-a (odjeljak "Bitovi osigurača"). Vignatok postati ATmega128. Trenutni MK može biti M103C bit, koji uključuje način zbrajanja sa starijim ATmega103. Aktivacija bita M103C uvelike smanjuje kapacitet ATmega128, a u novom MK-u ovaj bit je aktivan. Morate ispustiti M103C iz neaktivnog omamljivanja. Za manipulaciju konfiguracijskim bitovima odaberite odgovarajući odjeljak izbornika skript-programatora.

Shema glazbenog ekrana nema previše smisla: ima samo mikrokontroler, jelo i piće. Jelo se servira baš tako, kako su me ubili tijekom programiranja MK-a. Uređaj za proizvodnju zvuka spojen je između glavne žice (konektor GND kontrolera) i jednog od MK konektora, čiji se broj može vidjeti u datoteci s kodom programskog sklopa (*.asm). Na klipu teksta skin programa za MK u komentarima je red: "Na XX se formira zvučni signal". Kada je programator skripte dovršen, mikrokontroler izlazi iz moda programiranja i prebacuje se na izvorni način rada. Odmah počinje stvaranje melodija. Povezivanjem monitora zvuka i zvuka možete ga promijeniti. Moguće je samo u tom slučaju oduzeti tonskom inženjeru konekciju za sat vremena programiranja kristala, budući da se zvuk preuzima s izlaza koji nije postavljen u SPI, inače se dodatni ulaz na izlaz može reprogramirati.

  • Programiranje mikrokontrolera
    • tutorial

    Respect Image - xkcd

    Pokažite si što ste potrošili na pustom otoku. I trebate programirati mikrokontroler za život. Sad, spavaš li? Pa, recimo, popraviti radio far za hitne slučajeve, bez ikakve šanse da naglo padne na red.

    Da još ne zaboravimo asemblerski tečaj, program smo napisali štapom na pisku. Usred korisnih govora, činilo se kao diva vidjeti distribuciju dokumentacije za kontroler (pa, nisu je ni uhvatili na rašpicu!), A program je daleko preveden u strojni kod. Izgubljena budala - flash í̈í̈ u kontroler. Ale, u radijusu od 500 kilometara nema odgovarajućeg programera, koliko god pričali o računalima. Imate samo malo života (baterija krumpira i kokosa) i par shmatkiv strelica.

    Kako bljeskati MK praktički golim rukama?

    Yak píddolídniy vstupatime MK ATtiny13 tvrtke Atmel. Opisana je tehnika koja praktički radi kao kontroler AVR obitelji, čak i ako kodovi naredbi mogu kontrolirati nekolicina.

    sučelje

    Najšire i najprikladnije sučelje za AVR firmware ê SPI(Serijsko periferno sučelje). Za povezivanje putem SPI-a potrebne su vam sve vrste čotirija, uzemljenja:
    • SCK- satni signal koji sinkronizira sve operacije razmjene podataka;
    • MOSI(Master Out Slave In) - podatkovna linija od žičane zgrade do slave;
    • MISO(Master In Slave Out) - linija podataka, navpak, od vodećeg dodatka do vodećeg;
    • RESET- da biste omogućili SPI treptanje, morate primijeniti logičku "0" na cijeli visnovok.
    Ovim redom trebamo formulirati tri signala i (neobov'yazkovo) pročitati jedan. Os izgleda ovako, najjednostavnija shema za koju:


    Mal. 1. Najjednostavnija shema SPI veze.

    Radi vaše udobnosti, možete dodati indikaciju ulaznih signala. Shema je presavijena, ali ne preko vrha:


    Mal. 2. Shema indikacije signala.

    Zakhist u blatu

    Šteta, samo uvrnuti gumbi za formiranje SPI signala, dobar rezultat se ne može postići. Razlog tome je u nedopustivoj prisutnosti, kako se to zove bryazkit kontakti. Kada su mehanički kontakti zatvoreni, oni se lijepe, jedan u jedan, i jedan impuls izlazi iz papaline. Da biste zadavili čađ, morate odabrati jednostavnu shemu s nekoliko logičnih elemenata:


    Mal. 3. RS-okidač za gušenje blata.

    Ovo je RS-okidač, koji se u trenutku uključivanja donjeg kontakta prekidača prebacuje na tabor "1" i zanemaruje odluku impulsa u blatu. Okidač se vraća na "0" kada se gornji kontakt zatvori, a to je kada se gumb otpusti.

    – Bach, švorc sam! - kaže čitatelj, - "Sjedim na pustom otoku. Gdje mogu ovdje dobiti okidače? Dobro, možete se zaprljati i bez elektroničkih sklopova. Bolje je zamijeniti "suhi" kontakt mokrim. Kao vimikachem poslužit će dvije elektrode koje se spuštaju u domovini dirigenta.

    Signali MOSI i RESET ne utječu na gušenje bryazkota, na pogled SCK: ovdje vrijednost može biti jednaka samo signalu u trenutku vibracije, a ne sprijeda.

    Kako koristiti SPI



    Mal. 4. Vremensko-satni dijagram SPI robota.

    SPI ¾ sinkrono sučelje: sve operacije su sinkronizirane rubovima signala sata (SCK), koji vibrira glavni uređaj. Maksimalna brzina prijenosa ograničena je vrijednošću od 1/4 taktne frekvencije regulatora. Pri minimalnoj brzini nema promjena: bez signala sata, razmjena podataka će se "zamrznuti", a sučelje se može ostaviti u statičkom stanju dugo vremena.

    SPI prijenos se izvodi u full duplex modu, jedan bit po taktu po strani kože. Na rastućem rubu SCK signala, vodeći signal očitava mrtvi ritam iz MOSI linije, a na padajućem rubu pokazuje napadački otkucaj na MISO liniji. Vau poštovanje prema slici 4.

    Protokol firmvera

    Sve informacije programera iz MK-a sastoje se od ispravaka 32-bitnih naredbi i primanja odgovora kontrolera. Najnoviji prijevod naredbi nalazi se u podatkovnoj tablici, ali ovdje je gotovo, koje su operacije potrebne za firmware MK-a:
    1. Prebacivanje regulatora u način programiranja;
    2. (neobavezno) Dodat ću ID čitač;
    3. Brisanje;
    4. pisati u flash;
    5. (neobavezno) Ponovno provjeravanje snimljenog;
    Rozhnemo kožni krokodilar izvješće.

    Svijest o načinu programiranja

    Način programiranja se uključuje primjenom "0" na RESET nogu. Ale ê deyaki tanak. Atmel preporuča nisku stopu za RESET i SCK brkove, a zatim ih unesite u kontroler hrane. Kao takva, ne postoji takva mogućnost, ako je život uključen, potrebno je primijeniti "0" na SCK, a zatim pozitivan impuls za RESET:


    Mal. 5. Prijenos MK-a u način rada za programiranje.


    Mal. 6. Naredba "Omogući program".

    Biti, poznat kao x, može buti be-yakimi. U satu prijenosa trećeg bajta, kontroler je kriv za slanje drugog bajta ( 01010011 ). Kako se pokazalo, to znači da je sve u redu, naredba je prihvaćena, kontrolor provjerava daljnje upute. Čim se probudite, morate ponovno napraviti MK i isprobati ga na klipu.

    Provjera identifikatora


    Mal. 7. Naredba "Pročitaj bajt potpisa".

    Prije svega, napišite zagonetku MK, morate se preispitati, pa je možda potreban isti model. Model kože kontrolera može imati valjani trobajtni identifikator (Potpis). Možete čitati jogu s naredbama uma
    00110000 000xxxxx xxxxxxbb xxxxxxxx
    Zamjenik bb(treći bajt naredbe) 00 za prvi bajt identifikatora, 01 - za drugoga 10 - Za treće. Posljednji bajt identifikatora bit će prijenos kontrolera za sljedeći sat kada se pošalje 4. bajt naredbe.

    Za ATtiny13, vrijednost identifikatora je novija 00011110 10010000 00000111 (0x1E 90 07).

    Pročišćavanje regulatora

    Mal. 8. Naredba "Chip Erase".

    Uskoro, memorija MK će biti očišćena, kao po zahtjevu Chip Erase
    10101100 100xxxxx xxxxxxxx xxxxxxx
    Ova naredba će izbrisati Flash i EEPROM (svi srednji će biti FF), kao i ukloniti lock-battles, tako da je smrad instaliran.

    Zapisivanje u flash memoriju

    Programska memorija (Flash) u ATtiny13 je 512 dvobajtnih riječi (1K bajtova). Adrese riječi mogu biti 9 bitova. Flash-memorija je podijeljena na strane, strana kože može imati 16 redaka (ukupno 32 strane). Snimanje u flashu se odvija u dvije faze.

    Podatke je potrebno staviti u međuspremničku stranu stranice, za što je odabrana naredba Učitaj stranicu programske memorije.
    01000000 000xxxxx xxxxbbbb iiiiiiii- za hvatanje mladog bajta riječi, to 01001000 000xxxxx xxxxbbbb iiiiiiii- Za zavantazhennya senior.
    4 mlada dječaka 3. ekipe bbbb- adrese riječi sa strane, iiiiiiiii- Hvatanje bajtova. Prvi put je kriv najmlađi bajt riječi, a zatim stariji bajt iste riječi.

    Mal. 9. Naredba "Učitaj stranicu memorije programa".

    Budući da je bočni međuspremnik zarobljen, trebate upisati naredbu Write Program Memory Page 01001100 0000000a bbbbxxxx xxxxxxxx za snimanje strane bez prekida u memoriji kontrolera.
    Niži bit drugog bajta i visoki bit 4 trećeg a:bbbb- peti broj strane za zapisnik.

    Mal. 10. Naredba "Write Program Memory Page".

    Čini se da je sve zbunjujuće, ali nema ništa sklopivo. Adrese bilo kojeg bajta programske memorije pohranjene su u 10 bitova: ppppp:bbbb:w, de
    ppppp- broj strane (pobjeda na naredbu "Napiši stranicu programske memorije");
    bbbb- adresa riječi sa strane (u naredbi Load Program Memory Page);
    w- bit koji označava visoki ili donji bajt riječi (šifriranje prvog bajta naredbe Load Program Memory Page).

    čitanje bljeskalice


    Mal. 11. Naredba "Čitaj programsku memoriju".

    Nakon što je firmware upisan u MK, nije bio loše transkribiran, krhotine bilo kakve ponovne provjere integriteta podataka nisu pobijedile. Jedini način prepisivanja je čitanje cijele flash memorije i usporedba s originalom.

    Lakše je čitati memoriju programa, zapisati u nju. Zaboravite na storínkovu organízatsíyu, čitajući vikonuetsya bajt po bajt. Naredba Read Program Memory izgleda ovako:
    00100000 0000000a bbbbbbbb xxxxxxxx- za čitanje najmlađeg bajta riječi, to 00101000 0000000a bbbbbbbb xxxxxxxx- za starijeg.
    Niži bit drugog bajta i cijeli treći bajt a:bbbbbbbb- adresa riječi u memoriji. Čitanja bajtova se rotiraju tijekom prijenosa 4. bajta naredbe.

    Završetak programiranja

    Možda, najjednostavnija operacija. Za dovršetak programiranja i prijenos MK-a u radni način, dovoljno je primijeniti logičku vrijednost "1" za RESET. Kontroler će se pokrenuti i pokrenuti nakon novog programa.

    Praksa

    Došao je čas za stjecanje dobrog znanja u praksi. Žrtva eksperimenta - ATtiny13 - ugradite na ploču za izradu prototipa, povjerite odabir oblika signala, sve je spremno:


    Mal. 12. Eksperimentalna shema.

    Shitimeme program poput "lakše nigdje":
    ldi R24, 0x02 izlaz DDRB, R24 izlaz PORTB, R24 L1: rjmp L1
    Sve što trebate učiniti je vidjeti jedan po nozi PB1 i ući u ciklus bez kraja. U strojnim kodovima potrebno je manje od nekoliko riječi:
    E082BB87BB88CFFF
    Za bljeskanje ih na kontroleru potrebno je upisati sljedeće naredbe:
    1010 1100 0101 0011 0000 0000 0000 0000 // Program Omogući 1010 1100 1000 0000 0000 0000 0000 0000 // CHIP ERAZE 0100 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 l. /) // Učitaj Adr.0010 Niži bajt 88 0100 1000 0000 0000 0000 0010 1011 1011 // Učitaj Adr.0010 Visoki bajt BB 0100 0000 0000 0000 1000 0000 0000 0000 0010 // Učitaj Adr.0010 Visoki bajt BB 0100 0000 0000 0000 10 Dodavanje 0 Do 10 10 10 10 10 10 10 10 1 load addr.0011 visoki bajt CF 0100 1100 0000 0000 0000 0000 0000 0000 // upiši stranicu
    Start ključ, idemo!