AVR-ChipBasic on kaasaegne retro arvuti. Andmete ülekandmine arvutist monitori kaudu mikrokontrollerile

Tänapäeval võib mikrokontrollereid leida peaaegu igal juhul. kodumasinad ja elektroonika. Näiteks kui mikrolaineahjus on LED- või LCD-ekraan ja klaviatuur, siis on see tingimata varustatud spetsiaalse juhtimiskiibiga.

Erinevad rakendused

Kõik kaasaegsed autod sisaldavad vähemaltüks mikrokontroller ja seda saab varustada mitmega mootori, mitteblokeeruva pidurisüsteemi, püsikiiruse hoidja jne jaoks. Igal puldiga seadmel on peaaegu kindlasti mikrokontrolleri juhtimine. Sellesse kategooriasse kuuluvad televiisorid, mängijad ja kvaliteetsed stereosüsteemid. Digitaalne kompaktne ja DSLR kaamerad, mobiiltelefonid, videokaamerad, automaatvastajad, laserprinterid, lauatelefonid tuvastamise võimalusega helistaja ja mälu 20 numbrile, multifunktsionaalsed külmikud, nõudepesumasinad ja pesumasinad Põhimõtteliselt on igal kodumasinal või seadmel, mis kasutajaga suhtleb, sisseehitatud mikrokontroller.

Mis see on?

Mikrokontroller on arvuti. Kõik arvutid, olgu need personaalarvutid või suured suurarvutid, on olemas üldised omadused. Neil on üks, mis käivitab programme, laadides käske mõnest andmesalvest. Näiteks arvutis on see kõvaketas. Arvuti on varustatud ka muutmäluga (RAM). Et suhelda välismaailma tuleks ette näha erilised vahendid. Arvuti puhul on sisendseadmeteks klaviatuur ja hiir ning väljundiks kasutatakse monitori ja printerit. Kõvaketasühendab need mõlemad funktsionaalsust, kuna see töötab nii sisend- kui väljundandmetega.

CPU

Mikrokontrolleris kasutatava protsessori tüüp sõltub sellest konkreetne rakendus. Valikud ulatuvad lihtsast 4-, 8- või 16-bitisest keerukama 32- või 64-bitiseni. Mälu osas saab kasutada RAM-i, välkmälu, EPROM-i või EEPROM-i. Üldiselt on mikrokontrollerid mõeldud kasutamiseks ilma täiendavate arvutuskomponentideta, kuna neil on piisavalt kiibimälu ja neil on ka üldised sisend- ja väljundviigud, mis võimaldavad andurite ja muude komponentidega otse liidestada.

Protsessori arhitektuur võib olla kas Harvardi või von Neumanni pakkumine erinevaid meetodeid teabevahetus protsessori ja mälu vahel. Esimesel juhul eraldatakse andme- ja käsusiinid, mis võimaldab nende samaaegset edastamist. Selleks kasutatakse tavalist.

Programmeerimine

Mikrokontrolleri protsessorid võivad põhineda kas CISC-l või vähendatud käsustikul (RISC). CISC sisaldab tavaliselt umbes 80 juhist (RISC - umbes 30) ja suurem arv adresseerimisrežiimid - 12-24 võrreldes RISC-i 3-5-ga. Kuigi laiendatud käsukomplekti on lihtsam rakendada ja see kasutab mälu tõhusamalt, on selle jõudlus madalam, kuna nende täitmiseks on vaja rohkem kella tsükleid. RISC-protsessorid on rohkem tarkvarakesksed ja töötavad paremini.

Algselt oli mikrokontrollerite keeleks assembler. Tänapäeval on C populaarne valik.

Kui teil on sobiv kaabel, tarkvara ja PC, mikrokontrolleri programmeerimine oma kätega pole keeruline. Peate kontrolleri kaabli abil arvutiga ühendama, käivitama rakenduse ja laadima käskude komplekti.

Karakteristikute määratlemine

Kuidas eristada arvutit mikrokontrollerist? Kui esimene on seade üldine eesmärk, mis võib joosta tuhandeid erinevaid programme, siis on teine ​​spetsialiseerunud, keskendudes ühele rakendusele. On mitmeid muid omadusi, mis aitavad mikrokontrollereid eristada. Algajatele kasutajatele pole see probleem - piisab, kui teha kindlaks, et kiibil on enamik allpool loetletud omadusi, et saaksite selle ohutult sellesse kategooriasse liigitada.

  • Mikrokontrollerid on mõne muu seadme (sageli kodumasinate) elemendid selle funktsioonide või toimimise juhtimiseks. Neid nimetatakse ka sisseehitatud kontrolleriteks.
  • Seade on mõeldud ühe ülesande täitmiseks ja ühe kindla programmi käivitamiseks, mis on salvestatud ROM-i, mida tavaliselt ei muudeta.

  • Mikrokontrollerid on väikese võimsusega kiibid. Nende võimsus akutoitel on umbes 50 mW. Lauaarvuti peaaegu alati seinakontakti ühendatud ja tarbib 50 vatti või rohkem.
  • Mikrokontrollerit eristab spetsiaalne sisendplokk ja sageli (kuid mitte alati) väike LED- või LCD-ekraan väljundiks. Saab vastu sisendit juhitavalt seadmelt, saates signaale selle erinevatele komponentidele. Näiteks teleri mikrokontroller võtab vastu kaugjuhtimispuldi signaale ja kuvab väljundi teleriekraanil. See juhib kanalivalijat, kõlareid ja mõningaid pildiseadeid, näiteks kontrasti ja heledust. Auto mootori kontroller võtab vastu sisendsignaalid hapniku- ja detonatsioonianduritest, reguleerib kütusesegu teket ja sünkroniseerib süüteküünalde tööd. Mikrolaineahjus aktsepteerib see klaviatuuri sisendit, kuvab väljundi LCD-ekraanil ja juhib mikrolaine ostsillaatori sisse- ja väljalülitusreleed.
  • Mikrokontrollerid on sageli väikesed ja odavad seadmed. Komponendid valitakse nii, et minimeerida suurus ja vähendada tootmiskulusid nii palju kui võimalik.
  • Sageli, kuid mitte alati, töötab mikrokontroller ebasoodsad tingimused. Näiteks auto mootori juhtseade peab töötama äärmuslikel temperatuuridel, kus tavaline arvuti ei saa üldse töötada. Põhjas peab auto mikrokontroller töötama temperatuuril -34 °C ja lõunas - 49 °C juures. Mootoriruumis võib temperatuur ulatuda 65-80 °C-ni. Teisest küljest on sisse ehitatud mikrokontroller Blu-ray mängija, ei tohiks üldse eriti vastupidav olla.

CPU nõuded

Mikrokontrollerites kasutatavad protsessorid võivad olla väga erinevad. Näiteks sisse mobiiltelefonid Kasutati 1970. aastatel välja töötatud 8-bitist mikroprotsessorit Z-80, mida kasutati algselt koduarvutites. Garmini GPS-navigaator oli varustatud väikese võimsusega Inteli versioon 80386, mis oli algselt installitud ka lauaarvutitesse.

Enamik kodumasinaid, näiteks mikrolaineahjud, ei vaja protsessoreid, kuid nende hind on oluline tegur. Sellistel juhtudel kasutavad tootjad kohandatud mikrokontrollereid, mis on loodud odavate, väikeste ja väikese võimsusega protsessoritest. Motorola 6811 ja Intel 8051 on häid näiteid sellised kiibid. Toodetakse ka Microchipi populaarsete sarja. Tänapäeva standardite järgi on need protsessorid uskumatult minimalistlikud, kuid äärmiselt odavad ja suudavad sageli disaineri vajadused täielikult rahuldada.

Ökonoomne

Tüüpiline mikrokontroller on kiip, millel on 1000 baiti ROM-i, 20 baiti RAM-i ja 8 I/O kontakti. Kui toodetakse suurtes kogustes, on nende maksumus madal. Muidugi jookse Microsoft Word sellisel kiibil võimatu – selleks oleks vaja vähemalt 30 MB RAM-i ja protsessorit, mis teeb miljoneid toiminguid sekundis. Aga kontrolliks mikrolaineahi see pole vajalik. Mikrokontroller täidab ühe konkreetne ülesanne, A madalad kulud ja energiatarbimine on selle peamised eelised.

Kuidas see toimib?

Vaatamata suurele valikule mikrokontrollereid ja palju muud rohkem neile mõeldud programme, olles õppinud ühte neist käsitsema, saad tutvuda kõigiga. Tüüpiline tööstsenaarium näeb välja selline:

  • Kui toide on välja lülitatud, ei näita seade ennast kuidagi.
  • Mikrokontrolleri ühendamine toiteallikaga käivitab juhtimisloogikaploki, mis blokeerib kõik muud ahelad peale kvartskristalli.
  • Kui pinge saavutab maksimumi, stabiliseerub generaatori sagedus. Registrid on täidetud bittidega, mis kajastavad kõigi mikrokontrolleri ahelate olekut. Kõik kontaktid on konfigureeritud sisenditena. Elektroonika hakkab töötama rütmilise taktimpulsside jada järgi.
  • Käsuloendur nullitakse. Sellel aadressil olev käsk saadetakse käsudekoodrile, mis selle ära tunneb, misjärel see kohe täidetakse.
  • Programmi loendurit suurendatakse 1 võrra ja kogu protsessi korratakse kiirusega üks miljon toimingut sekundis.
Mikrokontroller- arvuti ühel kiibil. Mõeldud erinevate juhtimiseks elektroonikaseadmed ja nendevaheline suhtlus vastavalt mikrokontrollerisse manustatud programmile. Erinevalt mikroprotsessoritest, mida kasutatakse personaalarvutid,mikrokontrollerid sisaldavad sisseehitatud lisaseadmeid. Need seadmed täidavad oma ülesandeid mikrokontrolleri mikroprotsessori südamiku juhtimisel.

Levinumate sisseehitatud seadmete hulka kuuluvad mäluseadmed ja sisend/väljund (I/O) pordid, sideliidesed, taimerid, süsteemi kell. Mäluseadmed hõlmavad RAM(RAM), kirjutuskaitstud mälu (ROM), programmeeritav ROM (EPROM), elektriliselt programmeeritav ROM (EEPROM). Taimerid sisaldavad nii reaalajas kellasid kui ka katkestuse taimereid. I/O rajatised hõlmavad jadapordid side, paralleelpordid(I/O read), analoog-digitaalmuundurid(A/D), digitaal-analoog (D/A) muundurid, vedelkristallkuvari (LCD) draiverid või vaakumfluorestsentskuvari (VFD) draiverid. Sisseehitatud seadmete töökindlus on suurenenud, kuna need ei vaja väliseid elektriahelaid.

Erinevalt mikrokontrollerist nimetatakse kontrollerit tavaliselt mikrokontrolleri baasil ehitatud tahvliks, kuid üsna sageli kasutatakse terminit “mikrokontroller” kasutades selle seadme lühendit, jättes lihtsuse huvides kõrvale eesliide “mikro”. Samuti võite mikrokontrollereid mainides kohata sõnu "kiip" või "mikrikoiip", "kristall" (enamik mikrokontrollereid on valmistatud ühel ränikiibil), lühendeid MK või ingliskeelsest mikrokontrollerist - MC.

Mikrokontrollereid võib leida tohutul hulgal kaasaegsetest tööstus- ja kodumasinad: masinad, autod, telefonid, televiisorid, külmikud, pesumasinad... ja isegi kohvimasinad. Mikrokontrollerite tootjate hulgas on Intel, Motorola, Hitachi, Microchip, Atmel, Philips, Texase instrumendid, Infineon Technologies (endine Siemens Semiconductor Group) ja paljud teised.
Kaasaegne kiibi tootmine nõuab ülipuhtaid ruume.

Mikrokontrollerite peamine klassifitseerimistunnus on aritmeetilise loogikaüksuse (ALU) poolt töödeldavate andmete bitisügavus. Selle funktsiooni alusel jagunevad need 4-, 8-, 16-, 32- ja 64-bitiseks. Tänapäeval kuulub maailma mikrokontrollerite turu suurim osa kaheksabitistele seadmetele (väärtuses umbes 50%). Neile järgnevad 16-bitised ja DSP mikrokontrollerid (DSP – Digital Signal Processor – digitaalne signaaliprotsessor), mis on keskendunud kasutamisele signaalitöötlussüsteemides (iga grupp hõivab ligikaudu 20% turust). Igas rühmas on mikrokontrollerid jagatud CISC- ja RISC-seadmeteks. Kõige arvukam rühm on CISC-mikrokontrollerid, kuid sees viimastel aastatel Uute kiipide seas on selge trend RISC-arhitektuuri osakaalu kasvu suunas.

Kella kiirus või täpsemalt siini kiirus määrab, mitu arvutust saab ajaühikus teha. Põhimõtteliselt suureneb mikrokontrolleri jõudlus ja energiatarve suurenedes kella sagedus. Mikrokontrolleri jõudlust mõõdetakse MIPS-is (miljon instruktsiooni sekundis).

Selles artiklis kirjeldan lihtsa pardaarvuti loomist auto või mootorratta jaoks. Seade ei sisalda eksootilisi funktsioone, küll aga on sellel kell, termomeeter ja voltmeeter. Aluseks on AVR mikrokontroller Kaheksa kilobaidise välkmäluga ATmega8 on meile täpselt piisav. Kell on rakendatud spetsiaalsel kiibil (RTC) DS1307, mis võimaldab kellal väga täpselt töötada kaua aega, isegi kui seade on välja lülitatud. Kuid loomulikult nõuab DS1307 kiip lisatoit 3 volti, näiteks CR2032 aku. Termomeetri andur oli DS1820, mis töötas 1-juhtmelise liidese kaudu. Kõik andmed kuvatakse kontrolleri LCD-näidikul. Seega on seadme kokkupanekuks vaja järgmisi raadiokomponente:

1. Atmega8 mikrokontroller - 1 tk.
2. DS1307 kiip - 1 tk.
3. Andur DS1820 - 1 tk.
4. DIP-8 pistikupesa - 1 tk.
5. DIP-28 pistikupesa - 1 tk.
6. LM7805 kiip - 1 tk.
7. LM7809 kiip - 1 tk.
8. Taktinööbid - 4 tk.
9. Asendi fikseerimisega nupud - 2 tk.
10. Kvarts 14,3 MHz - 1 tk.
11. Kvartskell 32768 Hz - 1 tk.
12. Keraamiline kondensaator 22 pf - 2 tk.
13. Keraamiline kondensaator 100 nf - 4 tk.
14. Transistor KT315 - 2 tk.
15. Elektrolüütkondensaator 100 uF - 1 tk.
16. Elektrolüütkondensaator 47 uF - 2 tk.
17. Diood 1N4001 - 1 tk.
18. Trimmeri takisti 20 kOhm - 2 tk.
19. Takisti 1 kOhm - 2 tk.
20. Takisti 10 kOhm - 2 tk.
21. Takisti 4,7 kOhm - 3 tk.
22. Takisti 100 kOhm - 1 tk.
23. Takisti 20 oomi - 1 tk.
24. Takisti 68 Ohm - 1 tk.
25. Kõlar 0,2 W - 1 tk.
26. LCD indikaator WH1602 (HD44780 kontrolleril või ühilduv) - 1 tk.
27. Textoliit - 1 tk.
28. Plastikust korpus - 1 tk.
29. Patareipesa 2xAA - 1 tk.
30. Aku 1,5v AA - 2 tk.

Seadme skemaatiline diagramm:

Trimmeri takisti R4 määrab LCD-näidiku kontrasti ja R12 reguleerib voltmeetrit täpne väärtus. Quartz Z2 sagedusel 14,3 MHz, seda võib leida vanematel emaplaadid. Nupp S1 - "Tühista", S2 - "Alla", S3 - "Ok", S4 - "Üles". Takisti R3 tõmbab mikrokontrolleri lähtestamise positiivsele toiteallikale, et vältida juhuslikku lähtestamist. Takistid R1, R2 ja R7 tõmbavad ka mikrokontrolleri pordid toiteallika positiivsesse külge. Selleks on vaja keraamilisi kondensaatoreid C1 ja C2 stabiilne töö kvarts Z2. Panin seadme kokku kahe abil trükkplaadid, üks sisaldab kiipe LM7805 ja LM7809, teine ​​sisaldab kõike muud. Tahvlid joonistasin programmis ja tegin kasutades . Siin on roosisulamiga kaetud valmis plaat:

Tahvel, millele on joodetud osad:

Tagaküljel:

Kogusin kõik sisikonnad kehasse ja lõpptulemus oli kena ja kompaktne.

Valminud pardaarvuti foto (eestvaade):

Valminud pardaarvuti foto (tahavaade):

Mugavuse huvides asetasin esiküljele ainult LCD indikaatori ja juhtnupud S1, S2, S3 ja S4. Ühendus, seadme sisse- ja väljalülitusnupud, trimmi takisti Asetasin R12 korpuse taha. Mikrokontrolleri püsivara kirjutasin keskkonda (allikas on lisatud), mikrokontroller flashiti USBtiny programmeerijaga SinaProg programmi abil. Pärast mikrokontrolleri püsivara vilkumist peate seadistama järgmised kaitsmebitid:

Õigesti kokkupandud ja püsivara seade käivitub kohe ega vaja konfigureerimist, välja arvatud ehk voltmeetri peenhäälestus ja kella seadistamine. Alates lisafunktsioone Seal on LCD heleduse reguleerimine ja tunnine piiks (kell piiksub iga tunni alguses). Kui lülitate seadme sisse, ilmub LCD-ekraanile pritsmeekraan ja indikaatori taustvalgus süttib järk-järgult, seejärel ilmub avakuva, kus kuvatakse kellaaeg, kuupäev, temperatuur ja pinge. Kui vajutate sel ajal nuppu S3, sisenete kellaaja seadistusmenüüsse, S2 - teabe vahekaardile, kus on kirjas teave seadme versiooni ja selle autori kohta, S4 - LCD-ekraani heleduse ja tundide reguleerimise menüüsse. piiksu. Nupp S1 naaseb põhikuvale. Videost näete selgelt, kuidas seadet juhtida:

Artikli failid sisaldavad programmi lähtekoodi, püsivara ja programmi projekti.

Radioelementide loetelu

Määramine Tüüp Denominatsioon Kogus MärkusPoodMinu märkmik
IC1 Reaalajas kell (RTC)

DS1307

1 Märkmikusse
IC2 MK AVR 8-bitine

ATmega8

1 Märkmikusse
VR1 Lineaarne regulaator

LM7805CT

1 Märkmikusse
VR2 Lineaarne regulaator

LM78L09

1 Märkmikusse
VT1, VT2 Bipolaarne transistor

KT315B

2 Märkmikusse
VD1 Alaldi diood

1N4001

1 Märkmikusse
Z1 Kvarts32768 Hz1 Märkmikusse
Z2 Kvarts14,3 MHz1 Märkmikusse
C1, C2 Kondensaator22 pF2 Keraamilised Märkmikusse
C3-C5, C8 Kondensaator100 nF4 Keraamilised Märkmikusse
C6, C7 47uF 16V2 Märkmikusse
C9 Elektrolüütkondensaator100uF 35V1 Märkmikusse
R1, R2, R7 Takisti

4,7 kOhm

3 Märkmikusse
R3, R10 Takisti

10 kOhm

2 Märkmikusse
R4, R12 Trimmeri takisti20 kOhm2 Märkmikusse
R5 Takisti

20 oomi

1 Märkmikusse
R6, R9 Takisti

1 kOhm

2 Märkmikusse
R8 Takisti

Aeg möödub ja haruldasi arvuteid jääb järjest vähemaks. Mõni läheb katki, mõni võetakse varuosadeks lahti ja mõni visatakse lihtsalt minema. Kahjuks ei saa seda protsessi peatada – miski ei kesta igavesti.
Aga kui võtta ja välja mõelda arvuti, mis igas mõttes sarnaneks retroarvutitega, aga on tehtud tänapäevasel elementaarsel alusel? Ja selline arvuti on olemas - see on AVR ChipBasic.
1. Eessõna
AVR ChipBasic – seeria amatöörraadioarvutid, mille on välja töötanud Saksa insener Joerg Wolfram. Kõik need on arvutid, mis on kokku pandud vaid ühele kiibile – Atmel AVR mikrokontrollerile. Nendes arvutites täidab mikrokontroller videokontrolleri, klaviatuurikontrolleri, heli generaator, BASIC-tõlk ja muud seadmed, mis tavalised arvutid koosneb paljudest mikroskeemidest. AVR-ChipBasic seeria koosneb neljast mudelist.
1. Juunior. Põhineb AtMega8 mikrokontrolleril, sisaldab 1 KB RAM-i, 8 KB ROM-i. Sellel on sisseehitatud TinyBasic keeletõlk, genereerib mustvalge pilt eraldusvõimega 180*230, ühendub komposiit sisend TV (tulbi).

2. Esimene keskmine. Põhineb AtMega16 mikrokontrolleril, sisaldab 2 KB RAM-i, 16 KB ROM-i. Sellel on laiendatud BASIC-tõlk. Väljundid värviline pilt(8 värvi) eraldusvõimega 180*230. Sellel on ilma väiketähtedeta märgigeneraator.

3. Teine keskmine. Sama mis esimene keskmine, ainult AtMega32 mikrokontrolleril ja täismärgigeneraatoriga.
4. Vanem. Kõige võimsam mudel.
Põhineb AtMega644 mikrokontrolleril, sisaldab 8 KB RAM-i, 64 KB ROM-i. Sellel on võimas sisseehitatud BASIC-tõlk. Loob värvilise pildi (16 värvi) eraldusvõimega 180*230 Ainus mudel, mis toetab trigonomeetrilised funktsioonid Ja graafika režiim. Kõiki neid arvuteid levitatakse tasuta GNU litsentsid GPL, ametlik veebisait sisaldab vooluringi skeeme, püsivara ja lähtekoode.

Nüüd vaatame lähemalt AVR ChipBasic arvuti juuniormudelit.
2.Üldine kirjeldus
Arvuti AVRChipBasic juuniormudel, nagu varem mainitud, koosneb ainult ühest kiibist - AtMega8 mikrokontrollerist ja seetõttu määravad selle arvuti võimalused mikrokontrolleri võimekuse järgi. Arvutil on 1 KB muutmälu, 8 KB FLASH-mälu, mis salvestab BASIC-tõlgi ja 512 baiti EEPROM-i, mis salvestab käivitatava programmi. Arvuti ainsaks videorežiimiks on tekst 30*23 tähemärki, kus iga tähemärk on 6*10 pikslit suur ja seetõttu üldine resolutsioon ekraan 180*230 pikslit. Pilt kuvatakse tavapäraselt majapidamisteleviisor, mis ühendub komposiitsisendi kaudu arvutiga.
Samuti võimaldab AVR?ChipBasic arvuti ühendada välise kettamooduli 24c16 kiibil, mis mahutab neli programmi. Arvuti suudab esitada heli ka piiksu kaudu, ühendada arvutiga jadapordi kaudu programmide vahetamiseks ja juhtimiseks välisseadmed 4 I/O liini kaudu.
Selle arvuti omadused on väga sarnased 70ndate ja 80ndate arvutitega. Siin on tabel võrdlevad omadused AVR-ChipBasic arvuti ja muud retroarvutid.

Nagu tabelist näha, sarnaneb see mikroarvuti kõige rohkem ZX80 arvutiga, nagu ka AVR ChipBasic, sellel on 1 KB RAM, 8 KB ROM, mustvalge ekraan ja mis kõige tähtsam, ka video genereeritakse keskprotsessor, mitte eraldi videogeneraatori vooluring. Veelgi enam, arvutused tehakse video genereerimiseta vabal ajal, mitte vastupidi, nagu ZX80 puhul.
Arvuti suudab ka heli taasesitada. Helitüüpe on kahte tüüpi: esimene on sarnane heliga "bim" ja teine ​​​​heliga "pshsh" ning esimesel helil võib olla erinev kõrgus.
3. Disaini omadused
Arvutiahel on lihtne kui haamer: see koosneb mikrokontrollerist ja väikesest takistite ja kondensaatorite jadast.
Arvuti arvutiga ühendamiseks kasutatakse kahe transistoriga mikroskeemi MAX232 analoogi.
Arvutiahel

Ainus, mis skeemi juurde saab lisada, on see, et 330 oomi takisti, mis on videoväljundi ees, tuleks asendada 800 oomi vastu, siis saab pilt selgemaks.

Eraldi tahaksin öelda mikrokontrolleri püsivara kohta. Arhiiv sisaldab mitut püsivara, peame valima cb8_050_mega8_kbd?en_pal.hex, mis asub kaustas mega8
Arvuti on kokku pandud trükitud või leivalaud. See nõuab 5-voldist toiteallikat, selleks võite võtta toiteallika arvutist tegur ATX, kuid telefoni laadimine ja stabilisaator 7805 sobivad selleks otstarbeks paremini.
4. Töö omadused
Pärast arvuti kokkupanemist ja sisselülitamist ilmub mõneks sekundiks ekraanile arvuti logo. Kui see on ekraanil, peate vajutama mõnda nuppu, seejärel käivitub programmiredaktor, vastasel juhul käivitub programm automaatselt EEPROM-ist.


Pärast redaktori avamist saate kohe hakata programme kirjutama. Kogu programm on igal ajahetkel ekraanil, ekraani ei kerida. Samuti puudub rea murdmise funktsioon, see tähendab, kui vajutate Sisestage võtmed read liigutatakse ühe võrra allapoole ja kursor liigub lihtsalt järgmise rea algusesse.
Redigeerimisel on mitu kiirklahvi:
F1– Laadige programm EEPROM-ist
F2– Muutke programmi nime
F3– Avage kettamooduliga töötamiseks dialoog
F4– Käivitage programm – Peatage programmi täitmine
CLRL+P– Saadab ekraanipildi jadapordi kaudu
Nüüd vaatame ühte huvitav omadus selle arvuti kohta: otsige ise, ekraaniala võtab 690 baiti mälu (30 * 23) ja programm 500 baiti (20 rida 25 tähemärgiga). See kokku on 1190 baiti, aga kuidas see nii saab, kuna mikrokontrolleril on ainult 1024 baiti mälu. Lisaks on süsteemimuutujate jaoks vaja veel paar baiti. Ja kõik tehti nii nutikalt: redigeerimise ajal on programm videomälus ega hõivata lisaruumi. Pärast nupu F4 vajutamist kopeeritakse programm videomälust EEPROM-i ja videomälu tühjendatakse. Lisaks ei tõlgendata programmi enam RAM-ist, vaid EEPROM-ist.
Kui programm on lõpetatud, kopeeritakse see tagasi videomällu ja saate redigeerimist jätkata.
Selline olukord võimaldab teil mälu säästa, kuid toob kaasa muid ebamugavusi.
Fakt on see, et EEPROM toetab ainult 100 000 ümberkirjutamistsüklit. See tähendab, et kui teed iga päev 100 käivitamist, siis kolme aasta pärast põleb kiip läbi. Õnneks on arvutil väike kaitse: enne programmi PROM-i ümberkirjutamist võrreldakse seda juba olemasolevaga ja kui need on võrdsed, siis programmi ümber ei kirjutata.
Kui programm on töötamise lõpetanud, kuvatakse see paremas alanurgas kiri PRESS ESC!. Kui programm käivitati klahviga F4, avaneb redaktor ja kui programm käivitati automaatkäivitusega, siis taaskäivitub.
5. BASIC
AVR?ChipBasic arvutil on sisseehitatud BASIC keeletõlk. Mälu säästmiseks kasutatakse selle Tiny Basic dialekti, mis ei erine kuigi palju tavalisest BASICust. Nüüd vaatame selle keele põhijooni.
Esimene asi, mis kohe silma hakkab, on lühendatud käsud. GOTO asemel kasutatakse GO, GOSUB asemel SUB, NXT asemel NXT. Mõned käsud on täielikult asendatud sümbolitega. Näiteks käsk?@2,2;%17 tähendab sümboli numbri 17 (ringi) kuvamist koordinaatides 2, 2. See muudab selle BASICu programmid veidi loetamatuks, kuid kui seda uurida, on kõik selge.
Tiny Basic toetab 26 muutujat baidi tüüp, millest igaüks on tähistatud ühe tähega (A-Z). Massiive ja stringe ei toetata.
Märkimist väärib ka number huvitavaid võimalusi sellest keelest. Näiteks mitu võimalust klaviatuurile juurdepääsuks. Kasutades ühte meetoditest, saate teha mida millal? Kui vajutate nuppu "parem", kuvatakse väärtus 1 ja "vasakule" vajutades kuvatakse 255 (-1). Teiste meetoditega saate vajutada Ctrl, Shift ja muid nuppe ning need võtavad väärtused 1 ja 255. Seda tehakse mängude kirjutamise hõlbustamiseks, kuna need kasutavad sageli nooli ja muid nuppe, mida tuleb juhtida. erinevate objektide liikumine.
Veel üks huvitav meeskond– LIM. See seab muutuja väärtusele piirid.
Näiteks käsk LIM D, 10, 20. Peale selle täitmist jääb muutuja D väärtus vahemikku 10...20. Kui enne käsu täitmist oli muutuja väärtus väiksem kui kümme, siis muutub see 10-ks ja kui see on suurem kui 20, siis 20.
Lisaks toetab see BASIC pseudograafikat eraldusvõimega 60*46. Saate joonistada punkte, jooni ja ruute.
Kirjutame natuke lihtne programm selles keeles. Olgu see lihtne "arva ära number" mäng. Siin on selle täielik kood:
1 a=rv(100)+1:?”Vvedi chis”
2 sisend b
3 kui b>a:go 6
4 kui b 5 "Molodec!":no 255:go 0
6 “Vvedi menshe”:no 5:go 2

7 “Vvedi bolshe”:no 8:go 2

Vaatame seda programmi üksikasjalikumalt.
Selle programmi esimesel real arvatakse ära juhuslik arv 1 kuni 100 ja kuvatakse pealdis.
Teises sisestatakse number klaviatuurilt.
Kolmandas ja neljandas kontrollitakse sisestatud numbrit peidetud numbriga ning programm saadetakse sinna, kuhu vaja.

6.Järeldus
See on selline arvuti, AVRChipBasic.
Vaatamata oma lihtsusele on sellel üsna palju võimalusi.
Muidugi on mõningaid puudujääke/puudujääke, kuid tuleb meeles pidada, et pisikesse 8 kilobaidisse mälu, kuhu isegi BASIC vaevalt ära mahuks, õnnestus meil toppida BASIC, videogeneraator ja klaviatuurikontroller ning nii töötas koos ja üsna kiiresti.
Seetõttu võib ARV-ChipBasic arvutit vabalt nimetada kunstiteoseks. Temaga koos töötamine on rõõm. :?)
Lingid:
Ametlik arvuti leht:
http://jcwolfram.de/projekte/avr/chipbasic8/main.php
Viiendal kuni seitsmendal real kuvatakse soovitud teade, kõlab heli ja programm saadetakse kas sisendisse või väljub.

Aleksander Zavgorodniy (Kakos_Nonos)
http://kabardcomp.narod.ru/

Parallaxi mikrokontroller nimega Propeller hõivab võrreldes žanri "klassikatega", nagu PIC või AVR, mõnevõrra kummalise niši. Kahe esimese kohta võime öelda, et need on üldotstarbelised arhitektuurid. Propelleri loojad lähenesid probleemile "küljelt".

Propelleri peamised eripärad:

  • 8 paralleelselt töötavat sõltumatut südamikku. Jagatud ressursside (nt mälu või I/O-pordid) jaoks vajalikku ajajagamist ei kontrolli programmeerija ja see ühendatakse kiibiga. See annab koodi täitmise aja prognoositavuse. Igal tuumal (hammasrattal) on 4 KB oma isoleeritud RAM-i. Samuti on igas tuumas sisseehitatud riistvaramoodul (tähelepanu!) TV või VGA videosignaali genereerimiseks.
  • Katkestuste kontseptsioon puudub. Selle asemel tehakse ettepanek käivitada konkureerivad ülesanded erinevatel tuumadel (hammasratastel).
  • Programmeerida saab kas assemblerkeeles või spetsiaalses kõrgetasemelises keeles nimega Spin, mis lihtsustab oluliselt mitmetuumalist ja paralleelset programmeerimist. Spin-tõlk on ühendatud kristalliga.
  • Peaaegu puudub kristalli programmeerimise või püsivara kontseptsioon. 32KB aadressiruumi (ROM) ülemine pool on ühendatud Spin-tõlgi ja erinevate süsteemitabelitega. Sellisel juhul tuleb iga kord selle sisselülitamisel laadida programm väljast (näiteks arenduskeskkonnast) alumisse 32KB alasse (RAM). Kuid tavaliselt on reaalses kasutuses ühendatud väline I2C EEPROM-i mälukiip, mille sisu kopeeritakse kristalli sisselülitamisel automaatselt RAM-i.
  • Protsessor on deklareeritud 32-bitisena, kuna see töötab sellise suurusega andmetega, kuid aadressiruum on 16-bitine (64KB).
Keel Spin on loodud mugavaks mitmeprotsessoriliseks programmeerimiseks ja näeb välja nagu protseduurilise ja objektorienteeritud keele rist.

Siin on näide spin-koodist, mis käivitab funktsiooni mitmel tuumal keerutamiseks. Kood on tõesti lihtne ja arusaadav.

CON _clkmode = xtal1 + pll16x "Kiiruse määramine _xinfreq = 5_000_000 "80Mhz OBJ led: "E555_LEDEngine.spin" "Kaasake LED-i meetodid objekt VAR bait Loendur "Loenduri muutja, pikk colinguruum P6/ 50), @stack) "start Twinkle cog 1 cognew(Twinkle(19,clkfreq/150), @stack) "start Twinkle cog 2 cognew(Twinkle(22,clkfreq/100), @stack) "start Twinkle cog 3 PUB Twinkle(PIN,RATE) "Meetodi deklaratsiooni kordamine "Algatage peaahela kordus Loendur vahemikus 0 kuni 100 "Korda tsüklit Loendur led.LEDBrightness(Loendur, PIN) "Reguleerige LED-i heledust oota cnt(RATE + cnt) "Oodake hetk korda Loendur alates 0
Funktsioon Cognew käivitab ülesande kolmel tuumal, parameetrites igaüks oma sageduse ja virnaga.

Lihtsustatult on propeller konstrueeritud järgmiselt:

Nimi "Propeller" tuleneb selle mudelist, mille kohaselt antakse prioriteet jagatud ressurssidele juurdepääsuks. Rummu moodul, mis kontrollib ajajaotust, teeb seda ringikujuliselt nagu pöörlev propeller.

Ma ei taha selles artiklis Propelleri endasse süvitsi minna, sest see on suur teema. Huvilistele on lõpus lingid raamatutele, kust saab selle mikrokontrolleri kohta põhjalikku infot.

Aga ma tahan rääkida ühest huvitavast projektist nimega "Tasku miniarvuti". See on Propeller (P8X32A) põhinev miniarvuti, mille aluseks on "P8X32A QuickStart" hindamisplaat.

See kraam näeb välja selline (foto ametlikult veebisaidilt):

Tegelikult müüb autor hindamisplaadi pluss laiendusplaadi, millel on VGA, microSD, PS/2, heli ja Wii mänguport. Soovi korral saate installida 32KB SRAM RAM-i kiibi.

Projekti nipp seisneb selles, et autor on välja töötanud BASIC-tõlgi, mis muudab selle kõigest mikroarvutiks a la 80ndatel. BASIC on kirjutatud Spin"e keeles (lähtekood on avatud). Dialekt on väga piiratud, näiteks puuduvad massiivid, stringid ega pärismuutujad, muutujate nimed on ainult ühetähelised jne. Kuid sellest hoolimata on juurdepääs kõigile Välisseadmed on antud, sealhulgas SD-kaart, ja see võimaldab teil käivitada ka puhtalt binaarfaile, mida saab kirjutada kas Spin- või C-vormingus (Parallaxil on Propelleri GCC versioon) või assembleris.

Peaaegu kõik on suletud.

Võileib kokku pandud.

Siin on väike demo graafiliste võimaluste hindamiseks.

Üldmuljed

Propeller

Seda on võimatu nimetada üldotstarbeliseks protsessoriks. Minu subjektiivse arvamuse kohaselt peate propelleri tõhusaks kasutamiseks oma rakendusest väga hästi aru saama. Näiteks ei ole Propelleril PWM, DAC/ADC, sisseehitatud välkmälu, trigerid ega katkestuste kontseptsioon ning loojad teevad ettepaneku kas rakendada vajalik tarkvara, kasutades mitme tuuma võimsust või kasutada spetsiaalseid väliskiipe. . Lõpus olevad raamatud kirjeldavad palju näiteid täiendavate mikroskeemidega töötamise kohta.

Teine asi on huvitav. Propelleri loojad ei kartnud traditsioonilisest lähenemisest eemalduda ja püüdsid kristalli põimida spetsiifilisi rakendusvõimalusi, peaaegu valmis ülesandeid. Võib-olla on see mõne projekti jaoks kasulik. Nagu ma aru saan, on Propeller väga mugav näiteks erinevate mänguautomaatide ja konsoolide loomiseks, kuna sellel on sisseehitatud võime genereerida kvaliteetseid televisiooni- ja VGA-signaale.

Järeldus: huvitav arhitektuur, tasub kindlasti vaadata.

PMC konstruktor

Jällegi kahetine tunne. Tundub, et see töötab, kuid BASICul napib selgelt ressursse, eriti mälu. Näiteks PIC32-l põhinev Maximite on pea ja õlad selle kohal. Saate sellel käivitada kas RetroBSD või Radio-86RK. Ja sisseehitatud MMBasic on võrreldamatult võimsam.

Kuigi 39 USD eest on see suurepärane mänguasi neile, kes soovivad Propellerit puudutada juba kokkupandud seadmega.

Vahepalaks

Raamatud Propelleri kohta, mida olen lugenud seoses arhitektuuriga ja mille tähelepanuta jätsin (seoses projektidega). Soovitan kõike.

Väike ja väga selge raamat algajatele. Huvitavad projektid on kirjeldatud (koos piltidega). Üks kaasautoritest on PMC disainer.

Propelleriga alustamine

Arhitektuuriliselt ja Propelleri olemuse mõistmiselt äärmiselt pädev raamat. See hõlmab ainult Spin programmeerimist, kuid sisaldab täielikku selgitust mikrokontrolleri lähenemisviiside ja funktsioonide kohta. Pärast esimese peatüki lugemist on teil peaaegu täielik arusaam arhitektuurist. Allpool kirjeldatakse mitmeid projekte (võite selle vahele jätta).