AVR. Trening kursi. Arxitektura. AVR dasturlash. Yangi boshlanuvchilar uchun AVR mikrokontrollerlarini dasturlash avr oilasi mikrokontrollerlarining parametrlari

Bir chipli mikrokontrollerlar turli sohalarda keng qo'llaniladi: o'lchash asboblari, kameralar va videokameralar, printerlar, skanerlar va nusxa ko'chirish mashinalaridan tortib, elektron ko'ngilochar mahsulotlar va barcha turdagi maishiy texnikagacha.

1970-yillarda birinchi mikroprotsessorlar paydo bo'lganidan beri ularning murakkabligi yangi apparat echimlari va yangi muammolarni hal qilish uchun mo'ljallangan yangi ko'rsatmalar qo'shilishi bilan doimiy ravishda oshdi. Keyinchalik CISC (Complete Instruction Set Computers - murakkab ko'rsatmalar to'plamiga ega kompyuterlar) nomini olgan arxitektura asta-sekin shunday rivojlandi. Keyinchalik, yana bir yo'nalish paydo bo'ldi va faol rivojlanishni topdi: RISC arxitekturasi (Reduced Instruction Set Computers - qisqartirilgan ko'rsatmalar to'plamiga ega kompyuterlar). Aynan shu arxitektura Atmel'dan AVR mikrokontrollerlari va Microchip'dan PIC-ni o'z ichiga oladi, bu kitob bag'ishlangan.

RISC protsessorlarining asosiy afzalligi shundaki, ular oddiy, cheklangan ko'rsatmalar to'plamini bajaradi va natijada juda tez ishlaydi. Bu ularning dasturlash narxini va murakkabligini kamaytiradi.

RISC arxitekturasining salbiy tomoni CISC qurilmalari uchun apparatda amalga oshiriladigan assembler tilida qo'shimcha ko'rsatmalar yaratish zarurati edi. Masalan, CISC qurilmalari uchun odatiy bo'lgan bo'linish ko'rsatmasini oddiygina chaqirish o'rniga, RISC protsessori bilan shug'ullanadigan dizayner bir nechta ketma-ket ayirish ko'rsatmalaridan foydalanishi kerak. Biroq, bu kamchilik RISC qurilmalarining narxi va tezligi bilan qoplanadi. Bundan tashqari, agar siz C da dasturlar yaratsangiz, bunday muammolar ishlab chiquvchi uchun umuman ahamiyatsiz bo'lib qoladi, chunki ular kompilyator tomonidan hal qilinadi, u avtomatik ravishda barcha etishmayotgan yig'ish kodlarini yaratadi.

Mikroprotsessorlarning paydo bo'lishi boshida dasturiy ta'minot faqat diqqat markazida bo'lgan u yoki bu assembler tilida bo'lib o'tdi maxsus qurilma. Aslini olganda, bunday tillar mos keladigan mashina kodlarining ramziy mnemonikasi edi va mnemonikani mashina kodiga tarjima qilish tarjimon tomonidan amalga oshirildi. Biroq, montaj tillarining asosiy kamchiligi shundaki, ularning har biri ma'lum turdagi qurilma va uning ishlash mantig'iga bog'langan. Bundan tashqari, assemblerni o'rganish qiyin, bu o'rganish uchun juda ko'p kuch talab qiladi, bundan tashqari, agar siz keyinchalik boshqa ishlab chiqaruvchilarning mikrokontrolörlaridan foydalanishga o'tishingiz kerak bo'lsa, bu behuda bo'lib chiqadi.

Si tili yuqori darajali til bo'lganligi sababli bunday kamchiliklardan xoli bo'lib, u uchun C kompilyatori mavjud bo'lgan har qanday mikroprotsessorni dasturlash uchun foydalanish mumkin.S tilida kompyuterlar tomonidan bajariladigan barcha past darajadagi operatsiyalar ko'rinishda taqdim etiladi. mavhum konstruksiyalardan iborat bo'lib, ishlab chiquvchilarga mashina kodi haqida qayg'urmasdan faqat bitta mantiqni dasturlashga e'tibor qaratish imkonini beradi. C ni o'rganganingizdan so'ng, siz mikrokontrollerlarning bir oilasidan boshqasiga osongina o'tishingiz mumkin, bu esa rivojlanishga kamroq vaqt sarflaydi.


AVR va PIC mikrokontroller arxitekturasi

Umuman olganda, barcha mikrokontrollerlar bir xil sxema bo'yicha qurilgan. Dastur hisoblagichi va dekodlash sxemasidan tashkil topgan boshqaruv tizimi dastur xotirasidan ko'rsatmalarni o'qish va dekodlashni amalga oshiradi, operatsion blok esa arifmetik va mantiqiy operatsiyalar; I/U interfeysi periferik qurilmalar bilan ma'lumotlarni almashish imkonini beradi; va nihoyat, dasturlar va ma'lumotlarni saqlash uchun saqlash qurilmasiga ega bo'lishingiz kerak (1.1-rasm).

Guruch. 1.1. Umumlashtirilgan mikrokontroller tuzilishi

Biz mikrokontrolderlarni umuman AVR mikrokontrollerlarining o'ziga xos turiga bog'lanmasdan ko'rib chiqamiz, shuning uchun quyida biz faqat ko'pchilik mikrokontrollerlar uchun umumiy bo'lgan xotira arxitekturasining xususiyatlarini, kiritish/chiqarish, uzilishlarni qayta ishlash, qayta o'rnatish va hokazolarni ko'rib chiqamiz.

AVR mikrokontroller xotirasi

AVR mikrokontrollerlarida xotira Garvard arxitekturasiga muvofiq amalga oshiriladi, bu ko'rsatmalar va ma'lumotlar xotirasini ajratishni nazarda tutadi. Bu buyruqlarga ma'lumotlarga kirishdan mustaqil ravishda kirishni anglatadi. Ushbu tashkilotning afzalligi xotiraga kirish tezligini oshirishdir.

Ma'lumotlar xotirasi

Ma'lumotlar xotirasi dasturlar tomonidan foydalaniladigan ma'lumotlarni yozish/o'qish uchun mo'ljallangan. U o'zgaruvchan, ya'ni mikrokontrollerning quvvati o'chirilgan bo'lsa, unda saqlangan barcha ma'lumotlar yo'qoladi. AVR mikrokontrolörlarida ma'lumotlar xotirasi PIC mikrokontrollerlariga nisbatan ancha rivojlangan tuzilishga ega, rasmda ko'rsatilgan. 2.1.


Guruch. 2.1. AVR va PIC mikrokontrollerlarida ma'lumotlar xotirasi tuzilishi

SRAM (Static Random Access Memory) maydoni rasmda ko'rsatilgan. 2.1 nuqtali, chunki u barcha AVR mikrokontrollerlari tomonidan ishlatilmaydi (bu ichki va tashqi SRAM uchun ham amal qiladi). Uning boshlang'ich manzili 0x060 va yuqori manzili qurilmadan qurilmaga farq qiladi.

Ba'zi AVR mikrokontrolörlarida tashqi xotira bloklarini 64 KBgacha ulash orqali SRAM xotira maydonini oshirishingiz mumkin, ammo bu A va C portlarini qurbon qilishni talab qiladi, bu holda ma'lumotlar va manzillarni uzatish uchun ishlatiladi.

Umumiy maqsadli registrlar

Ro'yxatdan o'tish hududi umumiy maqsad(ishchi registrlar) protsessor tomonidan dasturlarni bajarish uchun foydalaniladigan o'zgaruvchilar va ko'rsatkichlarni vaqtincha saqlash uchun mo'ljallangan. AVR mikrokontrollerlarida u 32 ta sakkiz bitli registrlardan iborat (manzil diapazoni 0x000 - 0x01F). PIC mikrokontrollerlarida umumiy maqsadli registrlar ham sakkiz bitli bo'ladi, lekin ularning soni va manzil diapazoni qurilmaning o'ziga xos turiga bog'liq.

C tilida yozilgan dasturlarda, agar assembler tilining kodidan foydalanilmasa, umumiy maqsadli registrlarga to'g'ridan-to'g'ri kirish odatda shart emas.

PIC mikrokontroller maxsus funksiya registrlari

Turli operatsiyalarni boshqarish uchun PIC mikrokontrollerlarida maxsus funksiya registrlari qo'llaniladi. Umumiy maqsadli registrlarda bo'lgani kabi, ularning soni va manzili qurilmadan qurilmaga farq qiladi. C tilida yozilgan dasturlarda, odatda, assembler tilining fragmentlaridan foydalanilmasa, maxsus funksiya registrlariga bevosita kirish talab etilmaydi.

AVR mikrokontrollerlarining kiritish/chiqarish maydoni

AVR mikrokontrollerlarining kiritish-chiqarish maydoni periferik qurilmalardan ma'lumotlarni boshqarish yoki saqlash uchun ishlatiladigan 64 ta registrni o'z ichiga oladi. Ushbu registrlarning har biriga kirish/chiqarish manzili (0x000 dan boshlanadi) yoki SRAM manzili (bu holda I/U manziliga 0x020 qo'shilishi kerak) orqali kirish mumkin. C dasturlari odatda an'anaviy kiritish-chiqarish registr nomlaridan foydalanadi va manzillar faqat assembler tilidagi dasturlar uchun ma'noga ega.

Ismlar, I/U va SRAM manzillari va qisqa Tasvir AVR mikrokontrollerlarining kirish/chiqish maydonidagi registrlar jadvalda keltirilgan. 2.1. Shuni ta'kidlash kerakki, in turli modellar mikrokontrollerlar, sanab o'tilgan registrlarning ba'zilari ishlatilmaydi va jadvalda ko'rsatilmagan manzillar. 2.1 Atmel tomonidan kelajakda foydalanish uchun zaxiralangan.

2.1-jadval. I/U maydonidan registrlarning tavsifi

Ro'yxatdan o'tish nomi I/U manzili SRAM manzili Tavsif
ACSR 0x08 0x28 Analog komparator nazorati va holat registr
UBRR 0x09 0x29 UART uzatish tezligi registri
UCR 0x0A 0x2A UART Transceiver boshqaruv registri
USR 0x0V 0x2V UART qabul qiluvchining holati registri
UDR 0x0S 0x2S UART qabul qiluvchi ma'lumotlar registri
SPCR 0x0D 0x2D SPI interfeysini boshqarish registri
SPSR 0x0E 0x2E SPI interfeysi holati registri
SPDR 0x0F 0x2F SPI ma'lumotlarini kiritish/chiqarish registri
PIND 0x10 0x30 Port D pinlari
DDRD 0x11 0x31 Port D ma'lumotlar yo'nalishi registri
PORTD 0x12 0x32 Port D ma'lumotlar registri
PINC 0x13 0x33 Port C pinlari
DDRC 0x14 0x34 Port C ma'lumotlar yo'nalishi registri
PORTC 0x15 0x35 Port C ma'lumotlar registri
PINB 0x16 0x36 Port B pinlari
DDRB 0x17 0x37 Port B ma'lumotlar yo'nalishi registrlari
PORTB 0x18 0x38 Port B ma'lumotlar registri
PINA 0x19 0x39 Port A pinlari
DDRA 0x1A 0x3A Port A ma'lumotlar yo'nalishi registri
PORTA 0x1V 0x3V Port A ma'lumotlar registri
EECR 0x1S 0x3S EEPROM Xotirani boshqarish registri
EEDR 0x1D 0x3D EEPROM ma'lumotlar registri
EEARL 0x1E 0x3E EEPROM xotira manzili registri (past bayt)
EEARH 0x1F 0x3F EEPROM xotira manzili registri (yuqori bayt)
WDTCR 0x21 0x41 Watchdog Timer Control Registri
ICR1L 0x24 0x44
ICR1H 0x25 0x45 Taymer/taymerni yozib olish registr T/C1 (past bayt)
OCR1BL 0x28 0x48 T/C1 taymerining taqqoslash registrining B (past bayt)
OCR1BH 0x29 0x49 T/C1 taymerining taqqoslash registrining B (yuqori bayt)
OCR1AL 0x2A 0x4A T/C1 taymerining A taqqoslash registri (past bayt)
OCR1AH 0x2V 0x4V T/C1 taymerining A taqqoslash registri (yuqori bayt)
TCNT1L 0x2S 0x4S Taymer/taymer T/C1 hisoblagichi (past bayt)
TCNT1H 0x2D 0x4D Taymer/taymer T/C1 hisoblagichi (yuqori bayt)
TCCR1B 0x2E 0x4E Taymer/taymer T/C1 ning nazorat registri B
TCCR1A 0x2F 0x4F Taymer/taymer T/C1 ning nazorat registri A
TCNT0 0x32 0x52 Taymer/hisoblagich T/C0 ni hisoblash registri
TCCR0 0x33 0x53 Taymer/taymerni boshqarish registri T/C0
MCUCR 0x35 0x55 Mikrokontroller boshqaruv registr
TIFR 0x38 0x58 Taymer/taymer uzilish bayrog'i registri
TIMSK 0x39 0x59 Taymer uzilishini maskalash registrlari
GIFR 0x3A 0x5A Umumiy uzilish bayroq registri
GIMSK 0x3V 0x5V Umumiy uzilishlarni maskalash registri
SPL 0x3D 0x5D Stak ko'rsatkichi (past bayt)
SPH 0x3E 0x5E Stak ko'rsatkichi (yuqori bayt)
SREG 0x3F 0x5F Status registri

AVR mikrokontrollerlarining SREG holati registri

Holat registrida AVR mikrokontrollerlarining holat bayroqlari mavjud va $3F (SRAM manzili $5F) manzilida kiritish/chiqarish hududida joylashgan. Qayta tiklash signali berilgandan so'ng, u nolga tenglashtiriladi.

Mikrokontrollerlar (keyingi o'rinlarda MK deb yuritiladi) bizning hayotimizga mustahkam kirdi, Internetda siz MKda bajariladigan juda ko'p qiziqarli sxemalarni topishingiz mumkin. MKda yig'ib bo'lmaydigan narsalar: turli ko'rsatkichlar, voltmetrlar, maishiy texnika (himoya asboblari, kommutatsiya asboblari, termometrlar ...), metall detektorlar, turli o'yinchoqlar, robotlar va boshqalar. Ro'yxat juda uzoq vaqt talab qilishi mumkin. Men 5-6 yil oldin mikrokontrollerdagi birinchi sxemani radiojurnalda ko'rdim va deyarli darhol sahifani aylantirdim va o'zimga "men uni hali ham yig'a olmayman" deb o'yladim. Darhaqiqat, o'sha paytda MKlar men uchun juda murakkab va tushunarsiz qurilma edi, men ular qanday ishlashini, ularni qanday o'chirishni va noto'g'ri dasturiy ta'minot bo'lsa, ular bilan nima qilish kerakligini bilmasdim. Ammo taxminan bir yil oldin men birinchi sxemani MKda birinchi marta yig'dim, bu sxema edi raqamli voltmetr 7 ta segment ko'rsatkichlari va ATmega8 mikrokontrolleri bo'yicha. Shunday bo'ldiki, men tasodifan mikrokontroller sotib oldim, men radio komponentlar bo'limida turganimda, oldimdagi yigit MK sotib olayotgan edi, men ham uni sotib olishga va biror narsa yig'ishga qaror qildim. Maqolalarimda men sizga bu haqda aytib beraman AVR mikrokontrollerlari, Men sizga ular bilan ishlashni o'rgataman, proshivka uchun dasturlarni ko'rib chiqamiz, oddiy va ishonchli dasturchi qilamiz, proshivka jarayonini ko'rib chiqamiz va eng muhimi, paydo bo'lishi mumkin bo'lmagan muammolarni ko'rib chiqamiz. faqat yangi boshlanuvchilar uchun.

AVR oilasining ba'zi mikrokontrolörlarining asosiy parametrlari:

Mikrokontroller

Flash xotira

RAM xotirasi

EEPROM xotirasi

I/U portlari

U kuchi

AVR mega MK ning qo'shimcha parametrlari:

Ishlash harorati: -55…+125*S
Saqlash harorati: -65…+150*S
GND ga nisbatan RESET pinidagi kuchlanish: maksimal 13V
Maksimal ta'minot kuchlanishi: 6.0V
Maksimal I/U liniyasi oqimi: 40mA
Maksimal quvvat manbai oqimi VCC va GND: 200mA

ATmega 8X modeli ulanish nuqtalari

ATmega48x, 88x, 168x modellari uchun pinouts

ATmega8515x modellari uchun pin tartibi

ATmega8535x modellari uchun pin tartibi

ATmega16, 32x modellari uchun pin tartibi

ATtiny2313 modellari uchun pin tartibi

Maqolaning oxirida ba'zi mikrokontrollerlar uchun ma'lumotlar jadvallari bilan arxiv ilova qilingan.

MK AVR o'rnatish FUSE bitlari

Esda tutingki, dasturlashtirilgan sug'urta 0, dasturlashtirilmagan sug'urta 1. Sigortalarni o'rnatishda ehtiyot bo'lishingiz kerak, noto'g'ri dasturlashtirilgan sug'urta mikrokontrollerni blokirovka qilishi mumkin. Qaysi sug'urtani dasturlash kerakligiga ishonchingiz komil bo'lmasa, birinchi marta MKni sigortalarsiz yondirish yaxshiroqdir.

Radio havaskorlari orasida eng mashhur mikrokontrollerlar ATmega8, undan keyin ATmega48, 16, 32, ATtiny2313 va boshqalar. Mikrokontrollerlar TQFP va DIP paketlarida sotiladi; yangi boshlanuvchilar uchun men DIP-da sotib olishni maslahat beraman. Agar siz TQFPni sotib olsangiz, ularni miltillash qiyinroq bo'ladi; siz taxtani sotib olishingiz yoki lehimlashingiz kerak bo'ladi, chunki ularning oyoqlari bir-biriga juda yaqin joylashgan. Sizga mikrokontrollerlarni DIP paketlarida maxsus rozetkalarga o'rnatishingizni maslahat beraman, bu qulay va amaliy, agar siz uni qayta yoqishni istasangiz yoki uni boshqa dizayn uchun ishlatmoqchi bo'lsangiz, MKni echishingiz shart emas.

Deyarli barcha zamonaviy MKlar provayderni o'z ichiga dasturlash imkoniyatiga ega, ya'ni. Agar sizning mikrokontrolleringiz plataga lehimlangan bo'lsa, u holda proshivkani o'zgartirish uchun biz uni platadan lehimlashimiz shart emas.

Dasturlash uchun 6 ta pin ishlatiladi:
QAYTA O'RNATISH- MK-ga kiring
VCC- Plus quvvat manbai, 3-5V, MK ga bog'liq
GND- Umumiy sim, minus quvvat.
MOSI- MK kiritish (MKdagi axborot signali)
MISO- MK chiqishi (MK dan ma'lumot signali)
SCK- MK kiritish (MKda soat signali)

Ba'zan ular XTAL 1 va XTAL2 pinlaridan ham foydalanadilar; agar MK tashqi osilator bilan quvvatlansa, kvarts bu pinlarga biriktiriladi; ATmega 64 va 128 da MOSI va MISO pinlari ISP dasturlash uchun ishlatilmaydi; buning o'rniga MOSI pinlari PE0 piniga, MISO esa PE1 piniga ulangan. Mikrokontrollerni dasturchiga ulashda ulanish simlari imkon qadar qisqa bo'lishi kerak va dasturchidan LPT portiga o'tadigan kabel ham juda uzun bo'lmasligi kerak.

Mikrokontrollerning markirovkasi raqamlar bilan g'alati harflarni o'z ichiga olishi mumkin, masalan, Atmega 8L 16PU, 8 16AU, 8A PU va boshqalar. L harfi MKning L harfisiz MK dan pastroq kuchlanishda ishlashini anglatadi, odatda 2,7V. Defis yoki bo'sh joydan keyingi raqamlar 16PU yoki 8AU MKda joylashgan generatorning ichki chastotasini ko'rsatadi. Sigortalar tashqi kvartsdan ishlashga o'rnatilgan bo'lsa, kvarts ma'lumotlar varag'iga ko'ra maksimaldan oshmaydigan chastotaga o'rnatilishi kerak, bu ATmega48/88/168 uchun 20 MGts va boshqa atmegalar uchun 16 MGts.

AVR mikrokontrollerlari. Dasturlash asoslari

AVR mikrokontrollerlarining tuzilishi va asosiy xarakteristikalari

Ushbu maqolada biz umumiy ma'noda tavsiflashga harakat qilamiz, asosiy xususiyatlar, "uning ichida nima", AVR mikrokontrollerlari bilan ishlashni boshlash uchun nima kerak va hokazo.

Tiny, Mega nima?

Kompaniya Atmel AVR yadrosi asosida bir nechta kichik oilalarga bo'lingan, bir-biridan farq qiluvchi sakkiz bitli mikrokontrollerlarning keng qatorini ishlab chiqaradi. texnik xususiyatlar, qo'llash sohalari, narxi:

  • ATtiny- oila AVR mikrokontrollerlari nisbatan yuqori unumdorlikni talab qiladigan (1,0 MIPS gacha va 20,0 MGts gacha chastotalarda ishlashga qodir), energiya samaradorligi (ATtiny 0,7 V kuchlanishdan ishlay oladigan yagona oila!) va ixchamlik (mikrokontrollerlar mavjud) uchun optimallashtirilgan. SOT23-6 paketida - faqat 6 pin va har bir pin bir nechta funktsiyalarga ega, masalan: I/U porti, ADC kirish, PWM chiqishi va boshqalar). Bu erda ularning qo'llanilish doirasi paydo bo'ladi: narx, energiya iste'moli, o'lcham va boshqalar uchun muhim bo'lgan qurilmalar.
  • ATmega– AVR mikrokontrollerlar oilasi juda ko'p turli sohalarda foydalanish uchun mo'ljallangan katta to'plam periferik qurilmalar, katta hajmdagi dastur xotirasi, kirish/chiqish portlari va boshqalar.Bir so'z bilan aytganda, kengaytirish uchun joy bor.
  • ATxmega– yangi AVR mikrokontrollerlar oilasi ko'proq katta to'plam ATmega-ga qaraganda periferik qurilmalar (qo'shilgan to'g'ridan-to'g'ri xotiraga kirish qurilmasi, DAC, CRC moduli, to'liq USB interfeysi, tezroq ADC va boshqalar), ish chastotalari 32,0 MGts gacha.

Shuni ta'kidlash kerak asosiy xususiyat yuqoridagi barcha qurilmalar: ularning barchasi bitta arxitekturaga ega va bu kodni bir mikrokontrollerdan ikkinchisiga o'tkazishni osonlashtiradi.
Mikrokontrollerlar DIP va SMD paketlarida mavjud (har biri o'zining ijobiy va salbiy tomonlariga ega).

Eng mashhur qadoqlash holatlari:

  • DIP (Dual Inline Package) - ikki qatorli kontaktli korpus
  • QFP (Quad Flat Package) - to'rt qatorli kontaktli tekis paket
  • SOIC (Small-Outline Integrated Circuit) - kichik o'lchamli (kichik maydon) integral mikrosxemalar

Havaskor radio amaliyotiga kelsak, mikrokontrollerlar, albatta, eng katta qiziqish uyg'otadi DIP to'plami, chunki ular bilan ishlash eng oson - ular pinlar orasida juda katta masofaga ega va qo'shimcha ravishda siz ular uchun rozetkalardan foydalanishingiz mumkin (bu mikrosxemalarni lehimsiz o'rnatishingiz mumkin bo'lgan maxsus ulagich).
Umuman olganda, rozetka juda qulay ixtirodir - pinlar har doim buzilmagan va siz mikrosxemani qayta-qayta olib tashlashingiz va kiritishingiz mumkin va kelajakdagi qurilmalarning prototiplarini yaratish ancha oson.

AVR mikrokontrollerlarini quvvat bilan ta'minlash va taktlash

AVR mikrokontrollerlari CMOS texnologiyasidan foydalangan holda qurilgan, bu juda kam quvvat sarfini ta'minlaydi. Amalda, quvvat iste'moli chiziqli va ish chastotasiga to'g'ridan-to'g'ri proportsionaldir (chastota qanchalik baland bo'lsa, quvvat sarfi shunchalik yuqori bo'ladi).



AVR mikrokontrollerlari uchun besleme zo'riqishida oralig'i 2,7 dan 5,5 V gacha(6,0V maksimal, garchi mening AVR qandaydir tarzda 7V da ishlagan bo'lsa ham - va hech narsa, u hali ham tirik). Bu shuni anglatadiki, AVR to'g'ridan-to'g'ri boshqarishi, ma'lumotlarni almashishi va hokazo. Bilan turli qurilmalar(3,3V-bardoshli va 5V-bardoshli) hech qanday mantiqiy darajadagi konvertorlardan foydalanishga hojat yo'q. Analog signallarni aniqroq qayta ishlash uchun AVR ADC, DAC va Analog komparator kabi qurilmalarni o'z ichiga olgan mikrokontrollerning analog qismini quvvatlantirish uchun alohida pinlarni taqdim etadi. Bundan tashqari, AVR mikrokontrolörlarida quvvatni eng yaxshi tejashni ta'minlash uchun bir nechta "Kutish rejimi" mavjud.

Bundan tashqari, mikrokontrollerning har bir pinini (ish chastotasi va ta'minot kuchlanishiga qarab) quvvatlantirish mumkin tashqi qurilmalar gacha joriy 40,0 mA(maksimal!), Lekin hamma narsa mikrokontrollerdan "yuklab olish/yuklab olish" mumkin 200,0 mA gacha(maksimal!).

Soat signallarining chastota diapazoni “oila stajiga” qarab farqlanadi (ATtiny - AVR mikrokontrollerlarining eng yosh oilasi, ATxMega esa eng keksa). 16,0 MGts dan oshmaydi , ATxMega esa 32,0 MGts dan oshmaydi.Shuningdek, har bir AVR mikrokontrolleri 8,0 MGts gacha bo'lgan ichki RC osilatoriga ega bo'lib, ularsiz ishlashga imkon beradi. tashqi manba vaqt signali.

Atmel standartning yarmiga teng (energiya tejashni oshirish uchun) maksimal ish chastotalari bilan mikrokontrollerlarni ishlab chiqaradi, shuning uchun ularni sotib olayotganda mikrokontrollerlarning kodlanishiga e'tibor berish kerak. Batafsil ma'lumot qaysi mikrokontroller qanday chastotalar va ta'minot kuchlanishlarida ishlashi, ushbu mikrokontroller uchun qanday kodlash va qadoqlash turlari mavjudligi va hk. har bir ma'lumot varag'ining "Buyurtma haqida ma'lumot" bo'limida topish mumkin.

Quyida mikrokontroller uchun ma'lumotlar jadvalidan misol jadvali keltirilgan ATtiny13. "Buyurtma kodi" ustunida siz kodlashlar orasidagi farqlarni ko'rishingiz mumkin va ular nima bilan bog'liqligini taxmin qilish qiyin emas.



AVR mikrokontrolleri ichida nima bor?

Muqaddimada aytib o'tilganidek, AVR mikrokontrollerlari Garvard arxitekturasiga ega ( asosiy xususiyat Bu arxitektura shundan iboratki, dastur xotirasi va operativ xotira, shuningdek, ularga kirish avtobuslari buyruqlarni bajarish tezligini oshirish uchun ajratiladi: bitta buyruq bajarilayotganda, keyingisi dastur xotirasidan olinadi) RISC protsessori bilan, tezlik bilan. 1,0 MIPS. Barcha mikrokontrollerlar, ularning modeli va tartibidan qat'i nazar, bir xil markaziy protsessorga ega (protsessor/yadro). Bitta yadro har qanday tilda yozilgan dasturni universal qiladi va agar xohlasa, har qanday loyihada, masalan, qimmatroq boshqaruvchini boshqa arzonroq, koddagi minimal o'zgarishlar bilan almashtirish mumkin.

RISC(Kichik ko'rsatmalar to'plami kompyuter) - oddiy yig'ish ko'rsatmalari to'plamiga ega protsessor (qo'shish, ayirish, chapga/o'ngga siljitish, "mantiqiy VA" va boshqalar), barcha ko'rsatmalar qat'iy belgilangan uzunlikka ega, protsessor ko'p sonli umumiy ko'rsatmalarni o'z ichiga oladi. maqsadli registrlar va boshqalar. Masalan, qandaydir o'rtacha matematik tenglamani hisoblash uchun protsessor "barcha holatlar uchun" ko'rsatmalariga ega bo'lgan CISC protsessoridan farqli o'laroq, bir nechta oddiy yig'ish ko'rsatmalarini bajarishi kerak bo'ladi. Lekin AVR unchalik RISC emas. -protsessor, chunki barcha yig'ish ko'rsatmalari qat'iy belgilangan formatga ega emas.Ko'pchilik 16-bitli, qolganlari 32-bitli.Bu har bir ko'rsatma dastur xotirasida 16 yoki 32 bitni egallaganligini bildiradi.Aytgancha, doimiy bo'lmagan Yig'ish ko'rsatmalarining uzunligi uni protsessorga aylantiradi: Kengaytirilgan Virtual RISC protsessor (AVR).

MIPS(Million Instructions Per Second) - AVR mikrokontrollerlari 1,0 MGts chastotada million ko'rsatmalarni (taxminan) bajarishga qodir, yoki oddiy qilib aytganda, yig'ish bo'yicha ko'rsatmalarning ko'pchiligi bitta takt siklida bajariladi.



AVR mikrokontrollerining miyasi uning markaziy protsessor birligi (CPU/yadro) hisoblanadi.

Protsessorning ba'zi komponentlari:

Arifmetik mantiq birligi

Dastur hisoblagich

Stack Pointer

  • Status registri
  • Flash dasturi xotirasi
  • Ma'lumotlar xotirasi

Umumiy maqsadli registrlar

Periferik registrlar (I/U registrlari)

RAM xotirasi

Soat tizimi. Bu tizim yurak-qon tomir tizimi bilan solishtirish mumkin

Interrupt birligi

Periferik qurilmalar, men ulardan ba'zilarini sanab o'taman:

I/U portlari

EEPROM xotirasi

USB (faqat xMega), USART, I2C, SPI, JTAG interfeyslari

Watchdog, taymer/taymer (PWM osilatori bilan, suratga olish/taqqoslash va h.k.)

ADC, DAC (faqat xMega), Analog komparator

Tashqi uzilishlar modullari

Turli oilalardagi (Tiny, Mega va xMega) va bu oilalarning turli mikrokontrolörlaridagi periferik qurilmalar to'plami har xil. Turli xil periferik qurilmalar bilan to'ldirilgan mikrokontrollerlar mavjud, ammo iqtisodiy jihatdan muhim ishlanmalar uchun kichik (zarur) atrof-muhit birliklari to'plamiga ega mikrokontrollerlar mavjud.

AVR mikrokontrolörlarining afzalliklaridan biri bu periferik qurilmalarni turli qo'shma ish rejimlarida ishlatish qobiliyatidir, bu ko'pincha ishlab chiquvchining vazifasini soddalashtiradi. AVR shuningdek, mikrokontrollerning normal ishga tushishini va kerak bo'lganda ishonchli o'chirishni ta'minlaydigan ta'minot kuchlanish darajasini (Tizimni boshqarish va qayta o'rnatish) qayta o'rnatish va monitoring qilish uchun o'rnatilgan tizimga ega.

Periferik boshqaruv/holat registrlari umumiy maqsadli registrlar va o'rtasida Ma'lumotlar xotirasi hududida joylashgan Ram, bu tashqi qurilmalar bilan ishlashda yuqori ishlashni ta'minlaydi. Ishlab chiquvchi, albatta, ushbu registrlarga (I/O Register) to'liq kirish huquqiga ega.

Mikrokontroller ishlashi uchun nima kerak?

  • dastur yozing (dastur). Mikrokontroller ishlaydigan dastur/algoritmni yozish uchun sizga kod/matn muharriri, kompilyator, bog'lovchi va boshqa yordamchi dasturlarni o'z ichiga olgan AVR mikrokontrollerlari uchun integratsiyalashgan ishlab chiqish muhiti kerak bo'ladi.
  • sxema dizayni. Mikrokontrollerning ishlashi uchun dasturning o'zi etarli emas, u shuningdek minimal korpus to'plamini (tashqi qurilmalar to'plamini) talab qiladi. elektron qurilmalar), mikrokontrollerni hech bo'lmaganda mikrokontroller yadrosi ishlashi uchun ta'minot kuchlanishi va soat signali bilan ta'minlash.
Quyidagi rasmda normal ishlash uchun zarur bo'lgan "klassik" mikrokontrollerlar to'plami ko'rsatilgan.


Rasmda ATmega16 mikrokontrolleri uchun minimal sxema talablari ko'rsatilgan. Ushbu almashtirish sxemasi bilan AVR mikrokontroller yadrosi ishlay boshlaydi, siz barcha kirish/chiqish portlaridan va hokazolardan foydalanishingiz mumkin. periferiya qurilmalari. Muxtasar qilib aytganda, mikrokontroller to'liq jangovar tayyorgarlikda. Masalan, ADC yoki Analog Comparatordan foydalanishni boshlash uchun, avvalo, sizga kerak bo'lgan ish rejimini o'rnatish uchun uning nazorat/monitoring registrlari yordamida tashqi qurilmani dasturiy ravishda sozlashingiz kerak va hokazo. mos keladigan periferik qurilma.

- kvarts va kondensatorlar C1, C2 (har biri 22 pF) mikrokontroller va uning barcha periferik qurilmalarini yuqori sifatli taktli signal bilan ta'minlaydi (maksimal chastota - 16,0 MGts).

Rezistor R1(10K), mikrokontrollerning barqaror ishlashi uchun zarur bo'lgan RESET kirishida yuqori darajani ta'minlaydi. Agar mikrokontrollerning ishlashi paytida ushbu pindagi kuchlanish ma'lum darajadan pastga tushsa, mikrokontroller qayta o'rnatiladi va mo'ljallangan algoritmning ishlashi buzilishi mumkin.

- ISP ulagichi sxemada dasturlash uchun ishlatiladi, ya'ni siz yozgan dasturni mikrokontroller xotirasiga to'g'ridan-to'g'ri doskaga yozish kerak (mikrokontrollerni qurilmadan olib tashlamasdan).

- gaz kelebeği L1 va C3, C4 kondansatkichlari analog periferik qurilmalarni, shuningdek, I/U portlarining ba'zi registrlarini besleme kuchlanishini ta'minlaydi. Agar mikrokontrollerning analog qismi bo'lmasa, u holda analog quvvat pinlari yo'q, natijada bu komponentlar kerak emas. Mikrokontrollerning soddalashtirilgan simlari quyidagicha: birinchidan, mikrokontroller tashqi soat rejimidan mahrum bo'lganligi sababli, u tegishli sug'urta bitlarini o'rnatish orqali soatning ichki RC osilatoridan kelishini ko'rsatishi kerak (mikrokontrollerning ish parametrlarini cheklash turi). ).
Ichki osilatorning maksimal chastotasi 8,0 MGts ni tashkil qiladi, ya'ni mikrokontroller maksimal chastotada (ishlashda) ishlay olmaydi.
Ikkinchidan, mikrokontrollerning analog qismida (shuningdek, kirish / chiqish portlarining ba'zi registrlari) quvvat manbai yo'q, bu ulardan foydalanishga to'sqinlik qiladi.
Uchinchidan, sxemada dasturlash uchun ulagich yo'q, shuning uchun mikrodasturni mikrokontroller xotirasiga yozish uchun uni qurilmadan olib tashlashingiz, biror joyga yozishingiz va keyin uni joyiga qaytarishingiz kerak bo'ladi. O'zingiz tushunganingizdek, bu juda qulay emas (olib tashlash/qo'shish, lehim/echish) va mikrokontrollerning o'ziga (oyoqlari sinishi, lehimlashdan haddan tashqari qizib ketishi va hokazo) va yaqin atrofdagi qurilmalar - ulagich, treklar shikastlanishiga olib kelishi mumkin. bortda va boshqalar.

Mikrokontroller Bu, aytish mumkinki, kichik kompyuter. qaysi o'ziga xos Markaziy protsessor (registrlar, boshqaruv bloki va arifmetik mantiq birligi), xotira, shuningdek, har xil periferiya, kabi I/U portlari, taymerlar, uzilish kontrollerlari, turli impuls generatorlari va hatto analog konvertorlar. Hammasini sanab bo'lmaydi. Mikrokontrollerlarning barcha ilovalarini sanab o'tishning iloji yo'q.

Ammo, agar biz hamma narsani sezilarli darajada soddalashtirsak, mikrokontrollerning asosiy vazifasi "oyoqlarini sakrash" dir. Bular. u bir nechta pinga ega (modelga qarab 6 dan bir necha o'nlabgacha) va bu pinlarda dasturiy ta'minotga qarab 1 (yuqori kuchlanish darajasi, masalan, +5 volt) yoki 0 (past kuchlanish darajasi, taxminan 0,1 volt) ni o'rnatishi mumkin. algoritm uning xotirasiga qattiq ulangan. Mikrokontroller shuningdek, uning oyoqlaridagi signal holatini aniqlay oladi (buning uchun ular kirish sifatida sozlanishi kerak) - u erda kuchlanish yuqori yoki past (nol yoki bitta). Zamonaviy mikrokontrollerlar deyarli hamma joyda bortda Analog-raqamli konvertorga ega - bu voltmetrga o'xshash narsa, bu sizga kirishda nafaqat 0 yoki 1 ni kuzatish, balki kuchlanishni 0 dan mos yozuvlargacha to'liq o'lchash imkonini beradi. (odatda mos yozuvlar ta'minot kuchlanishiga teng) va uni 0 dan 1024 gacha (yoki 255, ADC bit hajmiga qarab) raqam sifatida taqdim eting.

Undan siz yasashingiz mumkin aqlli uy, va uy roboti uchun miyalar, aqlli akvariumni boshqarish tizimi yoki shunchaki ishlaydigan matnli chiroyli LED displey. MK elektron komponentlari orasida bu eng ko'p qirrali qurilmalardan biridir. Masalan, keyingi qurilmani ishlab chiqayotganda, men sxemani loyihalashning turli xil buzilishlari bilan bezovta qilishni emas, balki barcha kirish va chiqishlarni mikrokontrollerga ulashni va dasturiy ta'minotdagi barcha operatsion mantiqni bajarishni afzal ko'raman. Bu vaqtni ham, pulni ham sezilarli darajada tejaydi, bu esa pulning kvadratini anglatadi.

Mikrokontrollerlar juda ko'p. Radio komponentlarini ishlab chiqaruvchi deyarli har bir o'zini hurmat qiladigan kompaniya o'z boshqaruvchisini ishlab chiqaradi. Biroq, bu xilma-xillikda tartib bor. MKlar oilalarga bo'lingan, men ularning hammasini sanab o'tmayman, lekin men faqat eng oddiy sakkiz bitli oilalarni tasvirlab beraman.

MSC-51
Eng keng tarqalgan va rivojlangan MSC-51, eng qadimgi, kelgan intel 8051 va hozir ko'plab kompaniyalar tomonidan ishlab chiqariladi. Ba'zan qisqacha chaqiriladi C51. Bu 8 bitli arxitektura bo'lib, boshqa sakkiz bitli arxitekturalardan o'zi bilan farq qiladi CISC arxitektura. Bular. Bitta buyruq ba'zan ancha murakkab amalni bajarishi mumkin, lekin buyruqlar ko'p sonli soat sikllari (odatda buyruq turiga qarab 12 yoki 24 takt sikllari) bo'yicha bajariladi, har xil uzunliklarga ega va barcha holatlar uchun ularning ko'plari mavjud. . Arxitektura boshqaruvchilari orasida MSC-51 dinozavrlar kabi uchrashish AT89C51, minimal atrof-muhit birliklari, kichik xotira va ahamiyatsiz ishlash va mahsulotlar kabi hayvonlarga ega Silikon laboratoriyalari bortda har xil o'lchamdagi tashqi qurilmalar, ulkan RAM va doimiy xotira qutilari, oddiy va kuchli interfeyslarga ega. UART'bir oldin USB Va JON, va shuningdek, shafqatsizlarcha tez yadro, soniyada 100 milliongacha operatsiyani yetkazib berish. Shaxsan menga kelsak, men C51 arxitekturasini uning ajoyib assembleri uchun yaxshi ko'raman, bu shunchaki yozish uchun portlash. Ushbu arxitektura uchun gigabayt kod allaqachon yozilgan, barcha aqlga sig'maydigan va aql bovar qilmaydigan algoritmlar yaratilgan.

Atmel AVR
Mening ikkinchi sevimli oilam AVR kompaniyadan Atmel. Umuman Atmel ishlab chiqaradi va MSC-51 kontrollerlar, lekin baribir ular e'tiborni qaratadi AVR. Ushbu kontrollerlar allaqachon 8-bitga ega RISC arxitektura va bitta buyruqni bitta soat siklida bajarish, lekin klassikdan farqli o'laroq RISC yadrolari C51 kabi qulay bo'lmasa-da, juda keng buyruq tizimiga ega, shuning uchun men ularni yoqtirmayman. Lekin AVR har doim urush uchun jihozlangan va oddiygina turli xil tashqi qurilmalar, ayniqsa subfamiliya boshqaruvchilari bilan to'ldirilgan ATMega. Ularni miltillash ham juda oson, buning uchun maxsus dasturchilar yoki boshqa murakkab uskunalar kerak emas. Sizga kerak bo'lgan yagona narsa - beshta sim va kompyuter LPT port. O'rganishning qulayligi ushbu boshqaruvchiga butun dunyo bo'ylab ko'plab radio havaskorlarining qalbiga qattiq kirishiga imkon berdi.

Mikrochip PIC.
Yana 8 bitli RISC Mikrokontroller juda buzuq buyruqlar tizimi bilan ajralib turadi, u atigi bir necha o'nlab buyruqlardan iborat. Har bir buyruq to'rtta soat siklida bajariladi. bir qator afzalliklari bor, birinchi navbatda, kam quvvat iste'moli, va tez boshlash. O'rtacha PIC kontrollerda AVRdagi kabi ko'plab tashqi qurilmalar mavjud emas, lekin modifikatsiyalarning o'zi PIC Kontrollerlar shunchalik ko'pki, siz har doim vazifaga to'liq mos keladigan tashqi qurilmalarga ega kristallni tanlashingiz mumkin, ko'proq yoki kam emas. Yoniq PIC'axe an'anaviy ravishda avtomobillar uchun bort kompyuterlari, shuningdek, ko'plab maishiy signalizatsiya qurilmalari.

Qaysi oilani tanlash kerak? Oh, bu qiyin savol. Ko'plab forumlar va konferentsiyalarda, muxlislar, qaysi oila yaxshiroq degan mavzuda shiddatli janglar davom etmoqda. AVR izdoshlar bilan janjallashish MSC-51, yo'lda, buyraklarni tepishni unutmang PIC‘qo‘ylar, ular shunday javob berishadi.

Bu erda vaziyat Starcraftdagi kabi :) Kim sovuqroq? Odamlarmi? Zerg? Protoss? Bularning barchasi dastur, vazifalar ko'lami va boshqa ko'plab parametrlar haqida. Har bir oilaning o'ziga xos afzalliklari va kamchiliklari bor. Lekin shaxsan men AVR ni tanlagan bo'lardim va quyidagi sabablarga ko'ra:

  • 1. Rossiyada mavjudligi. Ushbu kontrollerlar xalq tomonidan mashhur va sevilgan, demak, bizning savdogarlarimiz ularni olib yurishga tayyor. Biroq, PIC kabi. MSC-51 bilan vaziyat yomonroq. Eskirgan AT89C51 ni olish muammo emas, lekin ular kimga kerak? Ammo zamonaviy siloblar allaqachon eksklyuzivdir.
  • 2. Past narx. Umuman olganda, PIC dunyoda past bahosi bilan mashhur, ammo istehzo shundaki, bepul narsalar faqat uni vagon yuki bilan sotib olsangiz boshlanadi. Haqiqatan ham, haqiqiy hisoblagichda AVR biroz ko'proq funktsional PICga qaraganda 30-40 foizga arzonroq bo'ladi. MSC-51 bilan vaziyat birinchi nuqtada aniq. Eksklyuzivlik nafaqat kam, balki qimmat.
  • 3. Bir vaqtning o'zida ko'plab tashqi qurilmalar. Seriyali qurilma uchun bu juda kamchilik. Faqat joriy vazifa uchun zarur bo'lgan narsaga ega bo'lish yaxshiroqdir, qolganlari esa yo'lni to'sib qo'ymasin va energiyani behuda sarflamasin. Bu PIC o'zining tarqalishi bilan mashhur model oralig'i, bu erda sizga kerak bo'lmagan narsaga emas, balki sizga kerak bo'lgan narsaga ega bo'lgan kontrollerni topishingiz mumkin. Lekin biz o'rganamiz va buni o'zimiz uchun qilamiz! Shuning uchun biz uchun hamma narsa bir vaqtning o'zida va zaxirada bo'lishi yaxshiroqdir. Va bu erda AVR PIC ustida bosh va elka bo'lib, yana va yana ko'proq to'ldirilgan kontrollerlarni chiqaradi. Men o'zimga bir oz AtMega16A sotib oldim va tamom, siz butun oilani o'rganishingiz mumkin.
  • 4. Bir yadroli. Gap shundaki, barcha zamonaviy AVRlar bir xil yadroga ega yagona tizim buyruqlar Periferik darajada faqat ba'zi farqlar mavjud (va ular kichik). Bular. Kichik ATTiny13 kodini ATMega64-ga osongina nusxalash va joylashtirish mumkin va deyarli o'zgartirishlarsiz ishlaydi. Va aksincha, deyarli hech qanday cheklovlarsiz. To'g'ri, eski AVR modellari (AT90S1200 ning barcha turlari) yuqoridan pastga qarab cheklangan muvofiqlikka ega - ular biroz kichikroq buyruq tizimiga ega. Lekin bu portlash bilan yakunlandi. Microchip butun oilalarga ega. Turli xil buyruq tizimlari bilan PIC12/16/18. 12-oila odatda mayda-chuyda narsadir (masalan, AVR-dagi Tiny) va 18 - allaqachon jiddiyroq kontrollerlar (Mega AVR-ga o'xshash) Va agar 12-dan kodni 18-ga sudrab borish mumkin bo'lsa, unda orqaga rasm.
  • 5. AVR kontrollerlari uchun keng ko'lamli buyruqlar tizimi. AVR 130 ga yaqin buyruqlarga ega, Microchip PIC esa bor-yo'g'i 35 taga ega. PIC g'olibdek tuyuladi - kamroq buyruqlar, o'rganish osonroq. Ha, mikrochip shiori aynan shunday yangraydi, ya'ni "Faqat 35 ta jamoa!" Faqat bu aslida bema'nilik. Axir, protsessor buyrug'i nima? Bu vosita! Ikkita kalkulyatorni tasavvur qiling - oddiy, buxgalteriya va muhandislik. Buxgalteriya hisobini o'rganish muhandislikka qaraganda ancha oson. Ammo sinusni hisoblashga harakat qilyapsizmi? Yoki logarifmmi? Yo'q, qila olasiz, men bahslashmayman, lekin qancha tugmani bosish va oraliq hisob-kitoblar kerak bo'ladi? Birhil narsa! Agar qo'lingizda turli xil harakatlar bo'lsa, ishlash ancha qulayroq. Shuning uchun, buyruq tizimi qanchalik katta bo'lsa, shuncha yaxshi bo'ladi.
  • 6. Bepul kross-platforma C kompilyatorlarining mavjudligi. Albatta, siz har doim yoriqni topishingiz mumkin. Qaerda, lekin bizning mamlakatimizda bu hech qachon muammo bo'lmagan. Lekin sizda bepul narsa bo'lsa, nima uchun biror narsani o'g'irlash kerak? ;)
  • 7. Xo'sh, oxirgi argument odatda eng kuchli hisoblanadi. O'rgatadigan va maslahat beradigan odamning mavjudligi. Maslahat bilan yordam berdi va meni to'g'ri yo'lga yo'naltirdi. Men o'zim uchun va ushbu saytda AVR ni tanladim ( kamida hozircha) bu alohida oila yaxshilab tushuniladi, demak sizda ko'p tanlov yo'q :))))))

Oh, lekin bir xil AVRlarning to'liq to'plami bor. Qaysi birini olishim kerak???
Qiziqish so'rash. Umuman olganda, vazifa uchun MK ni tanlash yaxshidir. Ammo uni o'rganish uchun to'ldirilgan narsalarni olish yaxshiroqdir.

Birinchidan, narxlar ro'yxatidan sizning oldingizda qanday hayvon borligini darhol tushunishingiz uchun belgilarni ko'rib chiqaylik. Mana sizga bir misol

ATmega16A - 16PI

  • DA- Atmelda ishlab chiqarilgan
  • Mega- oila turi. Tiny va Xmega ham bor (yangisi dahshatli narsa, to'liq vertolyot). Umuman olganda, Tiny oz miqdordagi qiyma go'sht bilan kam byudjetli va umuman nuqsonli, Mega esa, aksincha, bir vaqtning o'zida hamma narsa edi, deb o'ylardi. Aslida, Tini va Mega oilalari o'rtasidagi qiyma go'sht bo'yicha farq endi minimal, ammo Tini kamroq xotiraga ega va u 6 dan 20 gacha bo'lgan pinlar bilan birga keladi.
  • 16 — kilobaytdagi flesh-xotira miqdori. Aslida, hammasi unchalik oddiy emas. Xotira raqami ikkining kuchidir. Shunday qilib, Mega162 162KB fleshli kontroller emas, balki 16KB xotiraga ega Mega16 modifikatsiyasi2 turidir. Yoki Mega88 88kb emas, balki 8kb flesh, ikkinchi 8 esa bu Mega8 ning keyingi rivojlanishi ekanligiga ishoradir. Xuddi shunday Mega48 yoki Mega168. Xuddi shu narsa Tini oilasiga ham tegishli. Masalan, Tini2313 - 2 kilobayt flesh. 313 nima? Ular nimani nazarda tutganini kim biladi :) Yoki Tiny12 - 1kb Flash. Umuman olganda, chip tozalandi.
  • A— energiya iste'moli prefiksi (odatda). Bu xat mavjud bo'lmasligi mumkin, ammo yangi seriyada u deyarli hamma joyda mavjud. Misol uchun, V va L seriyali past kuchlanishli va 2,7 voltdan ishlashi mumkin. To'g'ri, past kuchlanish uchun kamroq chastota to'lashingiz kerak. Lekin bu erda ham overclock qilish mumkin, biz uchun insoniy hech narsa begona emas :) A va P PicoPower texnologiyasi bilan yangi AVR seriyasiga ega, ya'ni. ultra-iqtisodiy. Indekssiz modellari bilan to'lg'azish va ichki tuzilishda hech qanday farq yo'q, yagona farq barcha uyqu rejimlarining ishlashi va quvvat sarfida. Bular. Mega16A osongina Mega16 ga A holda o'zgartirilishi mumkin. Va boshqa hech narsani o'zgartirish kerak emas.
  • 16 - Cheklash soat chastotasi megahertzda. Aslida, siz uni 20 ga oshirib yuborishingiz mumkin;)
  • P- qobiq turi. Muhim xususiyat. Haqiqat shundaki, har bir holatni hemoroidsiz uyda lehimlash mumkin emas. Hozircha men P-DIP korpusiga e'tibor berishni maslahat beraman. Bu katta hajmli yirtqich hayvon, lekin uni lehimlash oson va, eng muhimi, u osongina maxsus rozetkaga yopishadi va undan yana chiqariladi. SOIC (indeks S) yoki TQFP (indeks A) korpuslarini hozircha chetga surib qo'ygan ma'qul. Yaxshi lehimlash tajribasi va yuqori sifatli ishlov berish qobiliyatisiz bosilgan elektron plata Ularga aralashmaslik yaxshiroqdir.
  • I- Qo'rg'oshinlarni qalaylash turi. I - qo'rg'oshinli lehim. U - qo'rg'oshinsiz. Siz uchun mutlaqo farq yo'q. Eng arzonini oling.

Men quyidagi modellarni tavsiya qilaman:

  • ATMega16A-16PU - arzon (taxminan 100-150 rubl), ko'plab pinlar, ko'plab tashqi qurilmalar. Turli xil uylarda mavjud. Bu oddiy, mening o'quv kursim va boshqa barcha misollar unga moslashtirilgan.
  • ATTiny2313-20SU har qanday soat/budilnik va boshqa kichik uy avtomatizatsiyasini yasash uchun ideal variantdir. Arzon (40 rubl), ixcham. Salbiy tomoni shundaki, ADC yo'q.
  • ATmega48/88/168 ushbu kontrollerlarning har biri. Yilni (tqfp holatida u AVRlarning eng nozik va eng kichiki), arzon (100-150 rubl), chekkaga to'ldirilgan.
  • Tajribalilar uchun ATmega128. Katta, kuchli, xotira yuklari. Qimmat (taxminan 400 r)

Aytaylik, sizga vazifa berildi - LED miltillashi.
Keling, ushbu muammoni qanday hal qilishni muhokama qilaylik:

Variant 1 eng oddiy, o'tish tugmachasini / tugmachasini oling, uning yoniga qulni qo'ying, u o'tish tugmasi yordamida LEDni yoqadi / o'chiradi. Odatda Rossiyada ko'p muammolar shu tarzda hal qilinadi. Va nima miltillaydi?)))
Variant 2 - multivibratorni yig'ish. Allaqachon qiziqroq. Miltillash uchun bitta LED etarli yaxshi qaror. Bundan tashqari, bu oddiy, arzon va ishonchli.
Variant 3 - mikrokontrollerda yig'ing. Multivibratorni yig'ishdan ko'ra qimmatroq, lekin menimcha osonroq. Men dastur yozdim, uni ishga tushirdim va natijani oldim. Sozlamasiz. Albatta, bu ideal holat.

Endi vazifani murakkablashtiramiz. Masalan, 5 ta LED va ularning miltillashi uchun 5 ta variant (ularning miltillash tezligi va tartibi o'zgaradi). Birinchi variant darhol yo'qoladi, 2-usul bajarilishi mumkin, ammo qurilma hajmi keskin oshadi. Variant 3 taxminan bir xil o'lchamda qoladi, shunchaki bir necha qator kod qo'shing. Shuning uchun, mikrokontrollersiz imkonsiz bo'lgan va ortiqcha bo'lgan turli xil holatlar mavjud. Shuning uchun har doim mehnat xarajatlarini, vaqt va moliyaviy xarajatlarni hisoblang.

Shunday qilib, mikrokontroller tizimlarni, jarayonlarni va hokazolarni moslashuvchan boshqarish imkonini beradi, u kichik o'lchamlarga ega va funksionallik nuqtai nazaridan u mini-kompyuterdir. Mikrokontrollerlar turli kompaniyalar tomonidan ishlab chiqariladi. Atmel'dan AVR mikrokontrollerlarining navlaridan biri. Nega ular? Ularni do'konda topish juda oson, misollarni topish oson tayyor kod, o'rnatilgan funksionallik hatto murakkab muammolarni hal qilish imkonini beradi.

Mikrokontroller undan nimani xohlayotganimizni tushunishi uchun biz unga mikrodasturni yuklashimiz kerak - u bajarishi kerak bo'lgan harakatlar ketma-ketligi. Mikrodastur - bu birliklar va nollarning ketma-ketligi. Buni yanada qulayroq qilish uchun dasturlash tillari ixtiro qilindi. Masalan, biz turn on deb yozamiz va kompilyatorning o'zi uni mikrokontroller uchun tushunarli bo'lgan birliklar va nollar ketma-ketligiga aylantiradi. Rasmda HEX mikrodasturi ko'rsatilgan, agar siz uni bloknot yordamida ochsangiz.

Mikrokontrollerlar odatda C yoki assembly tilida dasturlashtirilgan. Umuman olganda, nima yozishda farq yo'q. Ko'p sonli tayyor misollar tufayli men o'z tanlovimni C foydasiga qildim. Bundan tashqari, C tilida yozish imkonini beruvchi bir nechta dasturlar mavjud. Masalan, bepul, mulkiy AVR Studio, CodeVision, WinAVR va boshqalar. CodeVision-da yozsam ham, men AVR Studio-dan tuzatuvchi sifatida juda faol foydalanaman.

Umid qilamanki, hech bo'lmaganda bularning bir qismi sizga aniq bo'ldi. Menimcha, eng qiyin narsa birinchi qadamni qo'yishdir. Buni qilgan qo'rquv va dangasalikni yengsa, albatta natijaga erishadi. Mikrokontrolderlarni o'rganishda omad tilaymiz.