Shēmas un ierīces uz mikrokontrolleriem. Mikrokontrolleris Attiny2313

AVR RISC arhitektūra:

RISC (Reduced Instruction Set Computer). Šai arhitektūrai ir liels instrukciju kopums, no kuriem lielākā daļa tiek izpildīti 1 mašīnas ciklā. No tā izriet, ka salīdzinājumā ar iepriekšējiem mikrokontrolleriem, kuru pamatā ir CISC arhitektūra (piemēram, MCS51), RISC mikrokontrolleri ir 12 reizes ātrāki.

Vai arī, ja par pamatu ņemam noteiktu veiktspējas līmeni, tad, lai izpildītu šo nosacījumu, mikrokontrolleriem, kuru pamatā ir RISC (Attiny2313), ir nepieciešama 12 reizes mazāka ģeneratora takts frekvence, kas ievērojami samazina enerģijas patēriņu. Šajā sakarā ir iespējams izveidot dažādas ierīces Attiny2313, izmantojot akumulatora enerģiju.

Operatīvā atmiņas ierīce (RAM) un datu un programmu nemainīgā atmiņa:

  • 2 KB pašprogrammējama Flash programmu atmiņa, kas var nodrošināt 10 000 ierakstīšanas/dzēšanas atkārtojumu.
  • 128 baiti EEPROM ierakstāmas datu atmiņas, kas var nodrošināt 100 000 ierakstīšanas/dzēšanas atkārtojumu.
  • 128 baitu SRAM atmiņa (tikai lasāma RAM).
  • Funkciju ir iespējams izmantot, lai aizsargātu programmas kodu un EEPROM datus.

Perifērijas īpašības:

  1. Mikrokontrolleris Attiny2313 aprīkots ar astoņu bitu taimera skaitītāju ar atsevišķi uzstādītu priekšskalotāju ar maksimālo koeficientu 256.
  2. Ir arī sešpadsmit bitu taimera skaitītājs ar atsevišķu priekšskalotāju, uztveršanas un salīdzināšanas ķēdi. Taimera skaitītāju var iestatīt vai nu no ārēja signāla avota, vai no iekšēja.
  3. Divi kanāli. Ir ātrās PWM modulācijas darbības režīms un PWM ar fāzes korekciju.
  4. Iekšējais analogais komparators.
  5. Watchdog taimeris (programmējams) ar iekšējo oscilatoru.
  6. Serial Universal Interface (USI).

Attiny2313 īpašie tehniskie rādītāji:


  • Dīkstāvē— Gaidīšanas režīms. Šajā gadījumā pārstāj darboties tikai centrālais procesors. Dīkstāve neietekmē SPI, analogā salīdzinājuma, A/D pārveidotāja, skaitītāja taimera, sargsuņa vai pārtraukumu sistēmas darbību. Faktiski viss, kas notiek, ir tas, ka CPU kodola un zibatmiņas sinhronizācija apstājas. Attiny2313 mikrokontrolleris atgriežas normālā režīmā no dīkstāves režīma ar ārēju vai iekšēju pārtraukumu.
  • Izslēgt— Ekonomiskākais režīms, kurā mikrokontrolleris Attiny2313 faktiski tiek izslēgts no strāvas patēriņa. Šajā stāvoklī pulksteņa ģenerators apstājas un visas perifērijas ierīces tiek izslēgtas. Aktīvs paliek tikai pārtraukumu apstrādes modulis no ārēja avota. Kad tiek atklāts pārtraukums, mikrokontrolleris Attiny2313 izslēdz izslēgšanu un atgriežas normālā darbībā.
  • Stāvēt– mikrokontrolleris pārslēdzas uz šo enerģijas patēriņa gaidīšanas režīmu, izmantojot komandu SLEE. Tas ir līdzīgi izslēgšanai, vienīgā atšķirība ir tāda, ka pulkstenis turpina darboties.

Mikrokontrollera Attiny2313 ieejas-izejas porti:

Mikrokontrolleris ir aprīkots ar 18 I/O tapām, kuras var programmēt, vadoties pēc vajadzībām, kas rodas, projektējot konkrētu ierīci. Šo portu izejas buferi var izturēt salīdzinoši lielu slodzi.

  • Ports A (PA2 - PA0) – 3 biti. Divvirzienu I/O ports ar programmējamiem uzvilkšanas rezistoriem.
  • Ports B (PB7 - PB0) - 8 biti. Divvirzienu I/O ports ar programmējamiem uzvilkšanas rezistoriem.
  • Ports D (PD6 - PD0) - 7 biti. Divvirzienu I/O ports ar programmējamiem uzvilkšanas rezistoriem.

Barošanas sprieguma diapazons:

Mikrokontrolleris veiksmīgi darbojas ar barošanas spriegumu no 1,8 līdz 5,5 voltiem. Pašreizējais patēriņš ir atkarīgs no regulatora darbības režīma:

Aktīvais režīms:

  • 20 µA ar takts frekvenci 32 kHz un barošanas spriegumu 1,8 volti.
  • 300 µA ar takts frekvenci 1 MHz un barošanas spriegumu 1,8 volti.

Enerģijas taupīšanas režīms:

  • 0,5 µA pie 1,8 voltu barošanas sprieguma.

(3,6 Mb, lejupielādēts: 5 934)

Šī raksta ierīce darbojas ar SD kartēm. Tēma ir veca un diezgan sagrauta, bet par SD karšu izmantošanu ir vērts par to vēlreiz uzrakstīt.
Kopumā SD kartēm (SDC, SD Card) ir daudz priekšrocību, un tās ir ļoti vienkāršas un ērtas lietošanai mazos iegultos projektos. To veicina vairāki faktori:
- ļoti vienkāršs interfeiss mijiedarbībai ar karti (īstenots, izmantojot SPI);
- liels darbības ātrums (mikrokontrolleris spēj pārsūtīt datus no SD kartes ar ātrumu tuvu 10 Mbit/s);
- zems enerģijas patēriņš (burtiski pāris miliampēri - ne vairāk);
- mazi izmēri;
- pieejamība un zemas izmaksas.
SD kartēm praktiski nav nekādu trūkumu (izņemot, iespējams, to inicializācijas procedūru :)).

1. Ievads.

Es piezvanīju šajā rakstā aprakstītajai ierīcei SD kartes sarunu ierīce. Mazliet pretenciozi ;), bet nosaukums liek saprast, ka šī ir runājoša ierīce. Tas ir paredzēts jūsu projektu izteikšanai. Īsāk sakot, tas darbojas šādi: numurēti skaņas faili tiek ierakstīti SD kartē, ko ierīce atskaņo pēc jūsu komandas. Pielietojuma joma ir diezgan plaša – brīdinājuma sistēmas, rotaļlietas, roboti, viedā māja u.c. Ierīces izmēri ir diezgan pieticīgi (varētu būt mazāks, bet es apzināti izvēlējos ATtiny2313 mikrokontrolleri, kas ir lētāks un vieglāk dabūt). Galveno uzsvaru centos likt uz vienkāršību un maksimālu funkcionalitāti.
Skatoties uz priekšu, redzēsim, kam galu galā jānotiek:

Vai šāda ierīce ir noderīga? Tad vācam!

2 Atmiņas karte.

Ierīce izmanto SD atmiņas karti. Par šādas izvēles iemesliem jau rakstīju, taču piebildīšu tikai to, ka SD kartes kļūst teju par standarta atmiņas karti mobilajām ierīcēm. Pat ražotāji, kas fanātiski reklamēja/reklamē sava veida atmiņas kartes, pamazām sāk lietot SD kartes. Šādas popularitātes iemesls, iespējams, bija šo karšu zemā cena. Amatieru ierīcēm SD karte faktiski ir vienīgā lietošanai piemērota karte, un iemesls tam ir vienkāršais interfeiss darbam ar to.

SD karte ir nogājusi garu evolūcijas ceļu, un tai ir vairākas iespējas tās ieviešanai (MMC - kā SD kartes opcija, SD ver1, SD ver2, SDHC, SDXC). Saziņas procedūra ar karti ir vienkārša un universāla visu veidu kartēm, taču tās nodošana ekspluatācijā (kartes inicializācija) ir diezgan neskaidrs un mulsinošs process ar rituālu kartes “raustīšanu”, tukšu “manekenu” komandu nosūtīšanu. un citas nesaprotamas lietas (īsi sakot, jādejo ar tamburīniem:)). Pašā SDC protokola specifikācijā ir diezgan detalizēti aprakstīts inicializācijas process, kas ir saprotams, ir ļoti daudz karšu ražotāju, katrs ar savu aparatūru, ar savām īpašībām... Ko es saprotu? - Es mēģināju padarīt inicializācijas procedūru pēc iespējas universālāku, taču esiet gatavs tam, ka dažas kartes nedarbosies. Tāpēc, ja ar ierīci kaut kas neiet labi, izmēģiniet citu atmiņas karti — tas var būt iemesls.

Šī ierīce atbalsta SD kartes ar ietilpību līdz 2 GB. Viss augstāks (SDHC un SDXC) netiek atbalstīts.
Ierīcei nav nozīmes, kāda veida karte ir (SD, MiniSD vai MicroSD), taču tā ir jāpievieno pareizi, atbilstoši kartes kontaktdakšai.

3 Failu sistēma.

Ierīce izmanto kartes ar FAT16 failu sistēmu. Šī sistēma ir ideāli piemērota tādām ierīcēm kā mūsu, jo tā ir vienkārša un viegli ieviešama (FAT12 un FAT32 principā arī nav grūti ieviest, taču tas ir nepraktiski, jo nav nekādu priekšrocību salīdzinājumā ar FAT16).

Kartes formatēšanai nav īpašu prasību - to var formatēt jebkurā pieejamā ierīcē. Šiem nolūkiem ir diezgan piemērots standarta Windows formatējums.

Lai ierīce darbotos pareizi, skaņas failiem, kas atrodas SD kartē, jāatbilst noteiktām prasībām:
a) Faila formātam jābūt nesaspiestam WAV.
Faila parametri ir šādi:
- Bitu pārraides ātrums - iztveršanas frekvence (Frequency) - 32000 Hz;
- Kanālu skaits (Channels) - 1 (mono);
- Parauga lielums - 8 biti.
Vēl viens iespējamais samazinājums ir WAV PCM 8U

b) Fails jānosauc īpašā veidā. Lai ierīce zinātu, kurš fails ir pirmais, otrais, trešais utt. Faila nosaukuma pirmajai rakstzīmei ir jābūt latīņu alfabēta lielajam burtam (pārējais nosaukums, tāpat kā faila paplašinājums, tiek ignorēts).
Piemēram, šādi failu nosaukumi būtu pareizi:
A_Lai_dog.wav - pirmais celiņš
B-Šis ir otrais celiņš.wav - otrais celiņš
Ar brīdinājumu! Kļūda!.wav - trešais celiņš

c) Lai izmantotu ierīces papildu funkcijas, faili var atrasties divās mapēs ar nosaukumu “1” un “2”. Ierīcei ir slēdzis aktīvās mapes izvēlei, tas ir, tā pati komanda, lai sāktu atskaņošanu, var atskaņot ierakstus no mapes “1” vai “2”, atkarībā no pārslēgšanas ieejas līmeņa (sava ​​veida skaņas shēmas izvēle - ļoti noderīga lieta!) Ja viena no mapēm (vai abas) nepastāv, faili tiek atskaņoti no saknes direktorija.

Kopā ar audio celiņiem varat glabāt jebkurus citus failus, ja tie nerada konfliktus ar to nosaukumiem (labāk tos ievietot atsevišķā direktorijā, tad jums nebūs jāpievērš uzmanība tam, kā tie tur tiek nosaukti).

d) Tā kā ATtiny2313 ir mazs SRAM apjoms, nav iespējams izveidot buferi datu iepriekšējai lasīšanai, tāpēc dati no faila tiek tieši izvadīti atskaņošanai. Attiecīgi nav iespējas (nav pietiekami daudz laika), lai meklētu failu fragmentus, izmantojot FAT tabulu. Citiem vārdiem sakot, kartē ierakstītie faili nedrīkst būt sadrumstaloti.

Faktiski tā nav liela problēma, jo jebkura operētājsistēma vienmēr mēģina rakstīt failu kā veselu gabalu, un, kamēr jums ir vieta kartē, nekādas darbības ar failiem (dzēšana, kopēšana, pārdēvēšana) netiks veiktas. ietekmēt viņu integritāti. Ja jums ir ļoti maza karte vai esat aizpildījis lielu karti, lai pārliecinātos par failu integritāti, vienkārši iekopējiet tos datora cietajā diskā, formatējiet karti un atgrieziet failus atpakaļ.

4 Shēma. Iespiedshēmas plate.

Ierīces diagramma ir pēc iespējas vienkāršāka. Patiesībā, izņemot pašu mikrokontrolleri un SD karti, tajā nav nekā. Sev izgatavoju zīmogu SMD komponentiem, jo ​​plānoju šo ierīci izmantot vietā ar ierobežotiem izmēriem. Ja izmēri jums nav būtiski, varat montēt ķēdi uz maizes dēļa DIP versijā. Maizes dēļa gadījumā ierīces montāža prasīs ne vairāk kā 15 minūtes. Pieļaujamais barošanas spriegums SD kartei ir no 2,7 līdz 3,6 voltiem. Arī mikrokontrolleris šajā intervālā darbojas normāli, tāpēc nav nepieciešams izmantot atbilstošus komponentus. Es pārbaudīju visas ierīces darbību ar 5 voltu barošanas avotu - viss darbojās labi, taču es neiesaku to darīt pastāvīgi, jo dažādas kartes var atšķirīgi reaģēt uz pārmērīgu spriegumu. Es izmantoju adapteri kā microSD kartes turētāju, pielodējot to tieši pie tā kontaktiem. Ja nepieciešami mazāki izmēri, labāk ir izmantot īstu microSD kartes turētāju.

Lai mirgotu mikrokontrollera programmaparatūru, tiek izmantots tas pats savienotājs, kas SD kartei, tāpēc būs jādomā, kā tai pieslēgt programmētāju (es speciāli izgatavoju adapteri).

Pēc tam, kad dēlis ir pielodēts, varat mirgot mikrokontrolleri.

Neliela gatavās ierīces galerija:




Neliela nianse attiecībā uz shēmu.
Ievietojot SD karti kartes turētājā (savienojot karti ar barošanas avotu), tiek radīts strāvas pārspriegums un attiecīgi sprieguma kritums ķēdē (šķiet, ka šajā brīdī kartē tiek uzlādētas ievērojamas ietilpības). Izņemšana ir tik nozīmīga, ka mikrokontrolleris tiek atiestatīts. Es to izmantoju, lai sāktu kartes inicializācijas procedūru (instalējot karti, mikrokontrolleris tiek restartēts, un pirmais, ko dara programmaparatūra, ir kartes meklēšana un inicializācija). Ja, uzstādot karti (jaudīgs barošanas avots vai lieli izlīdzinošie kondensatori), neatiestatāt mikrokontrolleri, tad mikrokontrollera manuālai atiestatīšanai ķēdē ir jārūpējas par atiestatīšanas pogu (tas ir, ja plānojat “karst”). mainīt kartes).

5 Ierīces darbība.

Kā jau rakstīju iepriekš, darbs ar ierīci ir ļoti vienkāršs: iekopējiet pareizi nosauktos ierakstus uz SD karti, ievietojiet karti kartes turētājā, ierīce automātiski atradīs karti, ieslēgs zaļo LED - tas ir, ierīce ir gatavs atskaņot dziesmas. Tagad jums vienkārši jāizvēlas un jāsāk atskaņot celiņu sev vispiemērotākajā veidā.

5.1 Ierīces pogas un to darbības.

Mēģināju ierīci padarīt maksimāli funkcionālu, tāpēc darba režīmu slēdžiem tiek izmantotas daudz mikrokontrolleru kājiņas (tas padara ierīci par ezīti :)). Ja jums nav vajadzīgas nekādas funkcijas, vienkārši atstājiet kāju "karājoties" "gaisā".
Pārslēgšanās darbība:
- “Monster” - ļauj palēnināt (2 reizes) ieraksta atskaņošanu, radot zemas balss efektu. Slēdzis darbojas "lidojumā" - ātrums mainās pēc pārslēgšanas;
- "Hēlijs" - paātrina celiņa atskaņošanu (par 1/3) - radot augstas balss efektu. Slēdzis darbojas lidojumā;
- “Atkārtot”, ja šim slēdzim ir īssavienojums ar zemi, izvēlētais celiņš tiks atskaņots bezgalīgi (līdz slēdzis tiek atvērts). Tas var noderēt, piemēram, ja nepieciešams izveidot noteiktu skaņas fonu - lietus skaņu, degošu ugunskuru, straumes murgošanu...;
- Poga “Atlasīt / Atskaņot”, kas sāk celiņu atskaņošanai (apraksts zemāk);
- “Izvēlēties celiņu” - atskaņojamā celiņa numura iestatīšana (apraksts zemāk);
- “Dir1 / Dir2” - atlasiet skaņas shēmu (apraksts zemāk).

5.2 Sāciet atskaņošanu.

Ir trīs veidi, kā sākt atskaņot konkrētu celiņu:
- nosūtot latīņu alfabēta lielo burtu, izmantojot UART, nekavējoties sākas faila atskaņošana, kurā ir šis burts nosaukuma sākumā;
- ja lietojat “Select track”, tiek izvēlēts faila numurs (binārais kods 0001=”A”, 0010=”B” utt. 1 – kāja ir aizvērta pret zemi, 0 – “karājās” “gaisā”), tad poga “Atlasīt / Atskaņot” sāks atbilstošo failu atskaņošanai;
- ja nekas nav atlasīts, izmantojot “Select track” (0000 - kājas “karājas” “gaisā”), tad, nospiežot pogu “Atlasīt / Atskaņot” noteiktu skaitu reižu, mēs palaižam atbilstošo celiņu (1 reize = “A”, 2 reizes = “B” utt.).

5.3. Skaņu shēmas.

Ļoti noderīga funkcija ir funkcija izvēlēties vienu no divām skaņas shēmām. Tas nozīmē, ka slēdzis “Dir1 / Dir2” atlasa mapi kartē, no kuras tiks atskaņots ieraksts.

Aplikāciju ir ļoti daudz: ziņas krievu un angļu valodās (izglītojošas rotaļlietas), bērnu un pieaugušo balsis, plūstoša ūdens un degošas uguns trokšņi, kaķis/suns, labais un ļaunais policists :), nomierinošas/uzmundrinošas skaņas un vēl kaudzis līdzīgas iespējas.

Piemēram, jums ir nepieciešama ierīce, lai tā varētu sazināties vīrieša un sievietes balsī. Tas tiek īstenots šādi:
- izveidot divus ziņojumu komplektus attiecīgi sieviešu un vīriešu versijā;
- failu numerācija abām opcijām ir vienāda. Neaizmirstiet, ka ierīce faila nosaukumā "redz" tikai pirmo burtu, lai jūs varētu padarīt nosaukumus sev saprotamākus, piemēram, "S_Waiting for command_male.wav" un "S_Waiting for command_female.wav" ir diezgan. pareizi;
- iekopējiet vīriešu ziņojumu komplektu mapē "1", bet sieviešu ziņojumus - mapē "2".
Tagad, atkarībā no slēdža “Dir1 / Dir2” stāvokļa, tā pati komanda atskaņos ierakstus no mapes “male” vai “female”.

5.4 Norāde par ierīces darbību.

Tā kā Teeny2313 ir ļoti maz kāju, un gandrīz visas tiek izmantotas slēdžiem, nācās upurēt normālu indikāciju un pretī piestiprināt kaut ko NE normālu. Lai norādītu dažādus darbības režīmus, tiek izmantota tikai viena mikrokontrollera kāja, kurai ir pievienotas divas gaismas diodes - sarkanā un zaļā (vai kāda jums patīk). Dažādie ierīces darbības režīmi ir norādīti ar īpašu krāsu kodu:
- mirgo sarkana gaismas diode - nav SD kartes vai ierīce neatbalsta tās veidu;
- deg sarkanā gaismas diode - SD karte ir atbalstīta un ir veiksmīgi inicializēta, bet karte nav formatēta FAT16;
- deg zaļā gaismas diode - SD karte ir veiksmīgi inicializēta, vajadzīgā failu sistēma ir atrasta un ierīce ir gatava celiņa atskaņošanai - gaida komandu;
- mirgo zaļa gaismas diode - ierīce atskaņo dziesmu;
- iedegas zaļš, īsi iedegas sarkans, atkal iedegas zaļš - trase nav atrasta;
- iedegas zaļš, uz īsu brīdi nodziest un atkal kļūst zaļš - tiek nospiests ieraksta izvēles taustiņš.

5.5. Atkļūdošanas informācija.

Lai būtu vieglāk atrast problemātiskās vietas (ja ierīce nevēlas darboties), es dublēju katru inicializācijas posmu programmā ar ziņojumiem, izmantojot UART. Pēc katra veiksmīgā soļa atbilstošā rakstzīme tiek nosūtīta uz UART:
- "S" - (Start) mikrokontrollera perifērijas ierīces tiek inicializētas normāli;
- "C" - (Card Init) SD karte tiek inicializēta normāli un tiek atbalstīta;
- "F" - (FAT Init) atbalstīta FAT sistēma;
- "1" - (No 1 Dir) nav mapes "1" nolasīšana tiks veikta no saknes direktorijas;
- "2" - (Nr. 2 Dir) nav mapes "2" nolasīšana tiks veikta no saknes direktorijas;
- "R" - (Gatavs) ierīce ir pilnībā gatava - gaida komandu, lai sāktu celiņu;
- Turklāt katru reizi, kad tiek palaists celiņš, celiņa nosaukuma lielais burts tiek pārsūtīts uz UART.

6 celiņi ierīču dublēšanai.

6.1. Ierakstu konvertēšana

Ja augstāk esošajā bibliotēkā neko piemērotu neatradāt, tad nepieciešamos ierakstus varat iegūt internetā (ir daudz speciālu vietņu mūziķiem un video montāžai, kur jau ir savāktas lielas skaņu bibliotēkas), spēļu instalācijās ( bieži spēles skaņas tiek sadalītas ierakstos un ievietotas atsevišķā mapē). Varat arī izgriezt skaņas efektus no filmām un mūzikas kompozīcijām. Atrastie ieraksti ir jāpārvērš formātā, ko atbalsta ierīce. Atgādināšu, ka faila formātam ir jābūt nesaspiestam WAV. 32000 Hz, 1 kanāls, 8 biti (WAV PCM 8U)
Jebkurš mūzikas redaktors ir piemērots konvertēšanai uz šo formātu vai, ja jums vienkārši nepieciešams konvertēt ierakstu, to nerediģējot -

Šodien mēs mēģināsim izmantot vienkāršāku mikrokontrolleri ATtiny2313 un pievienojiet tam rakstzīmju LCD displeju, kurā ir divas rindiņas ar 16 rakstzīmēm.

Mēs savienosim displeju standarta 4 bitu veidā.

Vispirms, protams, sāksim ar mikrokontrolleri, jo mēs jau esam ļoti labi pazīstami ar displeju no iepriekšējām nodarbībām.

Atvērsim kontroliera datu lapu ATtiny2313 un paskatīsimies uz tā šķautni

Mēs redzam, ka šis kontrolieris eksistē divu veidu gadījumos, bet tā kā es to dabūju DIP pakotnē, mēs izskatīsim šo konkrēto korpusa versiju, un principā tie daudz neatšķiras, izņemot izskatu, tad kā numurs kājas ir vienādas - katrai 20.

Tā kā ir 20 kājiņas salīdzinājumā ar ATMega8 kontroliera 28 kājām, pie kurām esam strādājuši visu laiku un turpināsim strādāt, tad attiecīgi arī iespēju būs mazāk.

Principā šeit ir viss, kas bija ATmega8, vienīgais, ka ir mazāk portu nagi. Bet tā kā mūsu priekšā ir mēģināt savienot to caur SPI kopni ar citu kontrolieri, tas mūs īpaši nenomāc.

Ir dažas citas atšķirības, taču tās ir nelielas, un mēs tās iepazīsim pēc vajadzības.

Saliksim šādu shēmu (noklikšķiniet uz attēla, lai palielinātu attēlu)

Displejs ir savienots ar D porta tapām. PD1 un PD2 ir pie vadības ieejām, bet pārējās ir savienotas ar displeja moduļa D4-D7 tapām.

Izveidosim projektu ar nosaukumu TINY2313_LCD, pārnesim tajā visu, izņemot galveno moduli no projekta displeja savienošanai ar Atmega8.

Protams, dažas lietas būs jāpārstrādā. Lai to izdarītu, jums rūpīgi jāizpēta, kura kāja ar ko ir savienota. Displeja E kopne ir savienota ar PD2, bet RS kopne ir savienota ar PD1, tāpēc veiksim izmaiņas failā LCD.h

#definēte1PORTD|=0b0000 01 00 // iestatiet līniju E uz 1

#definēte0PORTD&=0b1111 10 11 // iestatiet līniju E uz 0

#definētrs1PORTD|=0b00000 01 0 // iestatiet RS līniju uz 1 (dati)

#definētrs0PORTD&=0b11111 10 1 // iestatiet RS līniju uz 0 (komanda)

Kā redzam no treknā fonta, tik krasas izmaiņas mums nav bijušas.

Tagad informācijas ievade. Šeit mēs izmantojam kājas PD3-PD6, tas ir, tās ir nobīdītas par 1 punktu salīdzinājumā ar savienojumu ar Atmega8, tāpēc mēs arī kaut ko labosim failā LCD.c funkcijā sūtīt pusbaitu

PORTD&=0b 1 0000 111; // dzēst informāciju par ieejām DB4-DB7, pārējo atstāt mierā

Bet tas vēl nav viss. Iepriekš pārsūtītos datus nobīdījām par 4, bet tagad iepriekš minēto izmaiņu dēļ būs jāpārvieto tikai par 3. Tāpēc tajā pašā funkcijā labosim arī pašu pirmo rindiņu

c<<=3 ;

Tās ir visas izmaiņas. Piekrītu, tie nav tik lieliski! Tas tiek panākts ar to, ka mēs vienmēr cenšamies rakstīt universālu kodu un izmantot makro aizstāšanu. Ja mēs tam nebūtu veltījuši laiku, mums būtu bijis jālabo kods gandrīz visās mūsu bibliotēkas funkcijās.

Galvenajā modulī mēs nepieskaramies porta D inicializēšanai; ļaujiet visam modulim nonākt izvades stāvoklī, kā tas ir 12. nodarbībā.

Mēģināsim samontēt projektu un vispirms redzēt rezultātu Proteus, jo es arī taisīju tam projektu, kas arī būs pievienotajā arhīvā ar projektu Atmel Studio

Mums viss darbojas lieliski! Tādā veidā jūs varat ātri pārtaisīt projektu vienam kontrolierim citam.

Proteus ir ļoti labs, taču vienmēr ir patīkamāk aplūkot reālas detaļas. Visa shēma tika samontēta uz maizes paneļa, jo es šim kontrolierim neizgatavoju un nesamontēju atkļūdošanas dēli. Mēs savienosim programmētāju, izmantojot standarta savienotāju, piemēram, šo

Šeit ir visa diagramma

Šeit viss ir standarta. Uzvilkšanas rezistors uz RESET utt.

Tagad, pirms kontrollera mirgošanas programmā avrdude, mums ir jāizvēlas kontrolleris un jāizlasa tā zibatmiņa

Pēc tam dodieties uz cilni FUSES un pareizi iestatiet drošinātājus. Tā kā mums nav kvarca rezonatora, drošinātājus uzstādām šādā veidā

Kā ieprogrammēt ATtiny2313 mikrokontrollerus? Tātad, mums ir ATtiny2313 mikrokontrolleris, LPT pieslēgvieta (obligāti dzelzs - nedarbojas USB-2-LPT), vairāki vadi (ne garāki par 10 cm) un, protams, lodāmurs. Vēlams, lai būtu DB-25M savienotājs (vīrietis), ar to būs ērtāk pieslēgt mikrokontrolleri, bet var iztikt arī bez tā. Mēs pielodējam vadus pie mikrokontrollera tapām 1, 10, 17, 18, 19, 20. Mēs iegūstam kaut ko līdzīgu fotoattēlā:


Es to izdarīju bez savienotāja (bija pieejamas tikai mātes...), un notika šādi:


Tiesa, mans LPT ports ir novietots uz galda, izmantojot 1,5 metrus garu kabeli. Bet kabelim jābūt ekranētam, pretējā gadījumā būs traucējumi, traucējumi un nekas nedarbosies. Šīs mikrokontrollera programmēšanas ierīces shēma ir šāda:


Godīgi sakot, ieteicams salikt “pareizo” programmētāju. Un tad būs vieglāk un osta būs neskarta. Es izmantoju STK200/300. Tālāk mēs izmantojam programmu PonyProg2000. Pēc programmas palaišanas tas "kaiminās..." kā īsts ponijs. Lai to vairs nedzirdētu, parādītajā logā atzīmējiet izvēles rūtiņu “Atspējot skaņu”. Noklikšķiniet uz "OK". Tiek parādīts logs, kurā teikts, ka programma ir jākalibrē. Ir dažādi datoru veidi, gan lēni, gan ātri. Noklikšķiniet uz "OK". Tiek parādīts cits logs - tas mums norāda, ka mums ir jākonfigurē interfeiss (kurš programmētājs un kur tas ir pievienots.). Tāpēc dodieties uz izvēlni: Iestatīšana -> Kalibrēšana. Parādītajā logā:


Noklikšķiniet uz "JĀ". Paiet dažas sekundes, un programma saka "Calibration OK". Pēc tam dodieties uz izvēlni: Iestatīšana -> Interfeisa iestatīšana. Parādītajā logā konfigurējiet to, kā parādīts attēlā.


Tagad dodieties uz izvēlni: Command -> Program Options. Parādītajā logā konfigurējiet to, kā parādīts attēlā.


Viss ir gatavs programmēšanai!... Tātad, darbību secība:


1. Sarakstā atlasiet "AVR micro".
2. Citā sarakstā atlasiet “ATtiny2313”.
3. Ielādējiet programmaparatūras failu (File -> Open Device File), atlasiet vajadzīgo failu, piemēram, “rm-1_full.hex”.
4. Noklikšķiniet uz pogas “Palaist programmas ciklu”. Kad programmēšana ir pabeigta, programma paziņos "Programma veiksmīga"
5. Un visbeidzot, jums ir jāieprogrammē tā sauktie drošinātāji. Lai to izdarītu, noklikšķiniet uz pogas "Drošības un konfigurācijas biti". Parādītajā logā noklikšķiniet uz “Lasīt”, pēc tam atzīmējiet izvēles rūtiņas un noklikšķiniet uz “Rakstīt”.

UZMANĪBU! Ja nezināt, ko nozīmē konkrētais konfigurācijas bits, nepieskarieties tam. Tagad mums ir gatavs lietošanai kontrolieris ATtiny2313! Forumā varat lejupielādēt programmu PonyProg2000 un oriģinālo rakstu ar papildu attēliem. Materiālu Radio Circuit vietnei nodrošināja Ansel73.

Šī uz mikrokontrolleru balstīta ierīce ļauj zīmēt tekstu un vienkāršus grafikus gaisā. Angļu valodas literatūrā šīs ierīces sauc par POV vai FlyText. Ierīces darbības princips ir balstīts uz mūsu redzes inerci.

Elektriskās shēmas shēma sastāv no mikrokontrollera ATtiny2313, 8 gaismas diodēm, rezistoru pāra un divām AA baterijām. Pat iesācējs radioamatieris var salikt šo ierīci. Ierīce ir maza izmēra.

Atšķirībā no vairuma līdzīgu shēmu, šī shēma var atjaunināt attēlus, izmantojot com portu, neatjauninot AVR ATtiny2313 mikrokontrollera programmaparatūru. Nav nepieciešams katru reizi kompilēt mikrokontrollera programmaparatūru konkrētam tekstam vai attēlam, bet vienkārši pārsūtiet to caur datora pieslēgvietu, izmantojot īpašu programmu.

Attēls vai teksts, kas tiks uzzīmēts gaisā, tiek saglabāts mikrokontrollera EEPROM nemainīgajā atmiņā. Atjaunināšana notiek, mirgojot šo nemainīgo atmiņu. Jums vienkārši jāpalaiž programma attēlu zīmēšanai un pārsūtīšanai uz ierīci un jāpievieno pati ierīce, lai zīmētu gaisā.

Shēmas plate ir ļoti vienkārša un tik maza, ka tā tiek piestiprināta tieši pie AA akumulatora paneļa.


Šādi izskatās programma teksta, grafikas rediģēšanai un pārsūtīšanai uz ierīci.

Darbs ar programmu ir diezgan vienkāršs. Lai rediģētu attēlu, vienkārši noklikšķiniet uz pikseļu matricas un pēc tam pievienojiet ierīci un atsvaidziniet EEPROM atmiņu. Ķēdi var savienot ar datoru, izmantojot USB-UART adapteri vai pamatojoties uz FT232R vai MAX232 interfeisa pārveidotāja mikroshēmām.

Pēc tam atlasiet vajadzīgo com porta numuru un nospiediet pogu "Augšupielādēt".

Zemāk ir norādīta savienojuma kāju atrašanās vieta.

AVR ATtiny2313 mikrokontrollera programma tika uzrakstīta, izmantojot AVR Studio un WinAVR. Datorprogramma ir rakstīta ar Microsoft Visual C# 2010 Express. Iespiedshēmas plate tika uzzīmēta programmā Eagle Cadsoft un lejupielādējiet visu nepieciešamo zemāk esošajā arhīvā.

Nejauši raksti

Uz augšu