AVR. Сургалтын курс. Архитектур. AVR програмчлал. Эхлэгчдэд зориулсан AVR микроконтроллеруудыг програмчлах avr гэр бүлийн микроконтроллеруудын параметрүүд

Нэг чиптэй микроконтроллерууд нь хэмжих хэрэгсэл, камер, видео камер, принтер, сканнер, хувилагчаас эхлээд цахим зугаа цэнгэлийн бүтээгдэхүүн, бүх төрлийн гэр ахуйн цахилгаан хэрэгсэл хүртэл өргөн хэрэглэгддэг.

1970-аад онд анхны микропроцессорууд гарч ирснээс хойш шинэ техник хангамжийн шийдлүүдийг нэвтрүүлж, шинэ асуудлуудыг шийдвэрлэхэд зориулагдсан шинэ зааварчилгааг нэмж оруулснаар тэдгээрийн нарийн төвөгтэй байдал байнга нэмэгдсээр байна. Ийнхүү архитектур аажмаар хөгжиж, дараа нь CISC (Complete Instruction Set Computers - цогц заавар бүхий компьютерууд) гэсэн нэрийг авсан. Үүний дараа өөр нэг чиглэл гарч ирж, идэвхтэй хөгжлийг олсон: RISC архитектур (Багасгасан зааварчилгааны багц компьютерууд - багассан зааварчилгаа бүхий компьютерууд). Энэ номонд зориулагдсан Atmel-ийн AVR микроконтроллерууд болон Microchip-ийн PIC-ийг багтаасан энэхүү архитектур юм.

RISC процессоруудын гол давуу тал нь энгийн, хязгаарлагдмал зааварчилгааг гүйцэтгэдэг, үр дүнд нь маш хурдан байдаг. Энэ нь тэдний програмчлалын өртөг, нарийн төвөгтэй байдлыг бууруулдаг.

RISC архитектурын сул тал нь CISC төхөөрөмжүүдийн техник хангамжид хэрэгждэг ассемблер хэл дээр нэмэлт заавар бий болгох хэрэгцээ байв. Жишээлбэл, CISC төхөөрөмжүүдийн хувьд ердийн хуваах зааврыг дуудахын оронд RISC процессортой ажилладаг дизайнер хэд хэдэн дараалсан хасах зааврыг ашиглах ёстой. Гэсэн хэдий ч энэ сул тал нь RISC төхөөрөмжүүдийн үнэ, хурдаар нөхөгдөхөөс илүү юм. Нэмж дурдахад, хэрэв та C хэл дээр програм үүсгэвэл ийм асуудал нь хөгжүүлэгчийн хувьд ямар ч ач холбогдолгүй болно, учир нь тэдгээрийг хөрвүүлэгч шийддэг бөгөөд энэ нь бүх дутуу угсралтын кодыг автоматаар үүсгэдэг.

Микропроцессорын эхэн үед хөгжил програм хангамжзөвхөн нэг эсвэл өөр ассемблер хэл дээр явагдсан тусгай төхөөрөмж. Үндсэндээ ийм хэлүүд нь харгалзах машины кодуудын бэлгэдлийн мнемоник байсан бөгөөд мнемоникийг машины код руу орчуулах ажлыг орчуулагч гүйцэтгэсэн. Гэсэн хэдий ч ассемблер хэлний гол сул тал нь тус бүр нь тодорхой төрлийн төхөөрөмж, түүний үйлдлийн логиктой холбоотой байдаг. Нэмж дурдахад ассемблерийг сурахад хэцүү байдаг бөгөөд энэ нь сурахад маш их хүчин чармайлт шаарддаг бөгөөд хэрэв та дараа нь бусад үйлдвэрлэгчдийн микроконтроллер ашиглахад шилжих шаардлагатай бол энэ нь дэмий үрэгдэх болно.

Си хэл нь өндөр түвшний хэл учир ийм дутагдалтай бөгөөд Си хөрвүүлэгчтэй ямар ч микропроцессорыг програмчлахад ашиглаж болно.Си хэлэнд компьютерын гүйцэтгэдэг доод түвшний бүх үйлдлүүдийг хэлбэрээр үзүүлэв. хийсвэр бүтээцүүд нь хөгжүүлэгчдэд машины кодын талаар санаа зовохгүйгээр зөвхөн нэг логикийг програмчлахад анхаарлаа төвлөрүүлэх боломжийг олгодог. Та C-г сурсны дараа нэг микроконтроллерийн гэр бүлээс нөгөөд амархан шилжиж, хөгжүүлэхэд хамаагүй бага цаг зарцуулж чадна.


AVR ба PIC микроконтроллерийн архитектур

Ерөнхийдөө бүх микроконтроллерууд ижил схемийн дагуу бүтээгдсэн байдаг. Хөтөлбөрийн тоолуур ба код тайлах хэлхээнээс бүрдэх хяналтын систем нь програмын санах ойноос унших, тайлах зааврыг гүйцэтгэдэг бөгөөд үйлдлийн хэсэг нь арифметик болон логик үйлдлүүд; I/O интерфейс нь захын төхөөрөмжтэй өгөгдөл солилцох боломжийг олгодог; эцэст нь та програм, өгөгдлийг хадгалах хадгалах төхөөрөмжтэй байх ёстой (Зураг 1.1).

Цагаан будаа. 1.1. Микроконтроллерийн ерөнхий бүтэц

Бид микроконтроллеруудыг ямар нэгэн тодорхой төрлийн AVR микроконтроллерт хамааралгүйгээр ерөнхийд нь авч үзэх тул доор бид зөвхөн ихэнх микроконтроллеруудад нийтлэг байдаг санах ойн архитектурын онцлог, оролт/гаралтын асуудлууд, тасалдлыг зохицуулах, дахин тохируулах гэх мэтийг авч үзэх болно.

AVR микроконтроллерийн санах ой

AVR микроконтроллеруудад санах ойг Харвардын архитектурын дагуу хэрэгжүүлдэг бөгөөд энэ нь заавар болон өгөгдлийн санах ойг тусгаарлах гэсэн үг юм. Энэ нь тушаалууд нь өгөгдөлд хандах хандалтаас үл хамааран ханддаг гэсэн үг юм. Энэ байгууллагын давуу тал нь санах ойд нэвтрэх хурдыг нэмэгдүүлэх явдал юм.

Өгөгдлийн санах ой

Өгөгдлийн санах ой нь програмын ашигладаг өгөгдлийг бичих/уншихад зориулагдсан. Энэ нь тогтворгүй, өөрөөр хэлбэл микроконтроллерийн хүчийг унтраавал түүнд хадгалагдсан бүх өгөгдөл устах болно. AVR микроконтроллеруудад өгөгдлийн санах ой нь PIC микроконтроллеруудтай харьцуулахад илүү боловсронгуй бүтэцтэй байдаг. 2.1.


Цагаан будаа. 2.1. AVR болон PIC микроконтроллер дахь өгөгдлийн санах ойн бүтэц

SRAM (Static Random Access Memory) хэсгийг Зураг дээр үзүүлэв. 2.1 нь тасархай, учир нь үүнийг бүх AVR микроконтроллерууд ашигладаггүй (энэ нь дотоод болон гадаад SRAM-д хамаарна). Түүний эхлэх хаяг нь 0x060 бөгөөд дээд хаяг нь төхөөрөмж болгонд өөр өөр байдаг.

Зарим AVR микроконтроллеруудад гадаад санах ойн блокуудыг холбосноор SRAM санах ойн зайг 64 КБ хүртэл нэмэгдүүлэх боломжтой боловч энэ тохиолдолд өгөгдөл, хаягийг дамжуулахад ашигладаг A ба C портуудыг золиослох шаардлагатай.

Ерөнхий зориулалтын бүртгэлүүд

Бүртгэлийн бүс Ерөнхий зорилго(ажлын бүртгэлүүд) нь процессорын программуудыг гүйцэтгэхэд ашигладаг хувьсагч болон заагчийг түр хадгалах зориулалттай. AVR микроконтроллеруудад энэ нь 32 найман битийн регистрээс бүрдэнэ (хаягын хүрээ 0x000 - 0x01F). PIC микроконтроллеруудад ерөнхий зориулалтын регистрүүд нь мөн найман биттэй байдаг боловч тэдгээрийн тоо, хаягийн хүрээ нь төхөөрөмжийн тодорхой төрлөөс хамаарна.

Си хэл дээр бичигдсэн программуудад ассемблер хэлний кодыг ашиглаагүй тохиолдолд ерөнхий зориулалтын регистрүүдэд шууд хандах шаардлагагүй байдаг.

PIC микроконтроллерийн тусгай функцийн бүртгэлүүд

Төрөл бүрийн үйлдлийг хянахын тулд PIC микроконтроллеруудад тусгай функцын регистрүүдийг ашигладаг. Ерөнхий зориулалтын регистрүүдийн нэгэн адил тэдгээрийн дугаар, хаяг нь төхөөрөмж бүрт өөр өөр байдаг. Си хэл дээр бичигдсэн программуудад ассемблер хэлний фрагментуудыг ашиглахаас бусад тохиолдолд тусгай функцийн регистрүүдэд шууд хандах шаардлагагүй.

AVR микроконтроллеруудын оролт/гаралтын хэсэг

AVR микроконтроллеруудын оролт/гаралтын хэсэг нь захын төхөөрөмжүүдийн өгөгдлийг хянах, хадгалахад ашигладаг 64 бүртгэлийг агуулдаг. Эдгээр регистр бүрд I/O хаягаар (0x000-аас эхэлдэг) эсвэл SRAM хаягаар (энэ тохиолдолд 0x020-г I/O хаяг руу нэмэх хэрэгтэй) хандаж болно. Си программууд нь ердийн I/O регистрийн нэрийг ашигладаг бөгөөд хаягууд нь зөвхөн ассемблер хэлний программуудад чухал ач холбогдолтой байдаг.

Нэр, I/O болон SRAM хаягууд, мөн Товч тодорхойлолт AVR микроконтроллеруудын оролт/гаралтын талбайн бүртгэлийг хүснэгтэд үзүүлэв. 2.1. онд гэдгийг тэмдэглэх нь зүйтэй янз бүрийн загваруудмикроконтроллерууд, жагсаасан регистрүүдийн заримыг ашигладаггүй, мөн хаягуудыг хүснэгтэд оруулаагүй болно. 2.1-ийг Atmel ирээдүйд ашиглахаар нөөцөлсөн.

Хүснэгт 2.1. Оролт/гаралтын хэсгээс регистрүүдийн тодорхойлолт

Нэрийг бүртгэх I/O хаяг SRAM хаяг Тодорхойлолт
ACSR 0x08 0x28 Аналог харьцуулагчийн хяналт ба статусын бүртгэл
UBRR 0x09 0x29 UART дамжуулах хурдны бүртгэл
UCR 0х0А 0х2А UART дамжуулагчийн хяналтын бүртгэл
USR 0х0 В 0x2V UART дамжуулагчийн төлөвийн бүртгэл
UDR 0х0С 0х2С UART Transceiver Data Register
SPCR 0x0D 0x2D SPI интерфейсийн хяналтын бүртгэл
SPSR 0x0E 0x2E SPI интерфэйсийн статусын бүртгэл
SPDR 0x0F 0x2F SPI мэдээллийн оролт гаралтын бүртгэл
PIND 0х10 0x30 D портын зүү
DDRD 0x11 0x31 D портын мэдээллийн чиглэлийн бүртгэл
PORTD 0х12 0х32 D портын мэдээллийн бүртгэл
PINC 0х13 0х33 C портын зүү
DDRC 0x14 0x34 C портын мэдээллийн чиглэлийн бүртгэл
PORTC 0х15 0x35 C портын мэдээллийн бүртгэл
PINB 0x16 0x36 B портын зүү
DDRB 0x17 0x37 Б портын мэдээллийн чиглэлийн бүртгэл
PORTB 0х18 0х38 В портын мэдээллийн бүртгэл
ПИНА 0x19 0x39 А портын зүү
DDRA 0х1А 0х3А Порт А өгөгдлийн чиглэлийн бүртгэл
PORTA 0x1V 0x3V Порт А мэдээллийн бүртгэл
EECR 0х1С 0х3С EEPROM санах ойн хяналтын бүртгэл
EEDR 0x1D 0x3D EEPROM мэдээллийн бүртгэл
EEARL 0x1E 0x3E EEPROM санах ойн хаягийн бүртгэл (бага байт)
EEARH 0x1F 0x3F EEPROM санах ойн хаягийн бүртгэл (өндөр байт)
WDTCR 0x21 0x41 Харуулын цаг хэмжигч хяналтын бүртгэл
ICR1L 0x24 0x44
ICR1H 0x25 0x45 Цаг хэмжигч/Тоолуур барих бүртгэл T/C1 (бага байт)
OCR1BL 0x28 0x48 T/C1 таймерын харьцуулсан бүртгэл В (бага байт)
OCR1BH 0x29 0x49 T/C1 таймерын харьцуулах бүртгэл В (өндөр байт)
OCR1AL 0х2А 0х4А T/C1 таймерын харьцуулах бүртгэл А (бага байт)
OCR1AH 0x2V 0x4V T/C1 таймерын харьцуулах бүртгэл А (өндөр байт)
TCNT1L 0х2С 0х4С Таймер/тоологч T/C1 (бага байт) тоолох бүртгэл
TCNT1H 0x2D 0x4D Таймер/тоолуур T/C1 (өндөр байт) тоолох бүртгэл
TCCR1B 0x2E 0x4E Таймер/тоолуур T/C1-ийн хяналтын регистрийн В
TCCR1A 0x2F 0x4F Таймер/тоолуур T/C1-ийн хяналтын регистр А
TCNT0 0х32 0x52 Таймер/тоолуурын тоолох регистр T/C0
TCCR0 0х33 0x53 Таймер/тоолуур хяналтын регистр T/C0
MCUCR 0x35 0x55 Микроконтроллерийн хяналтын бүртгэл
TIFR 0х38 0x58 Таймер/Тоолуур тасалдлын туг бүртгэх
TIMSK 0x39 0x59 Таймер тасалдлыг далдлах бүртгэл
GIFR 0х3А 0х5А Ерөнхий тасалдлын туг бүртгэл
GIMSK 0x3V 0x5V Ерөнхий тасалдлыг далдлах бүртгэл
SPL 0x3D 0x5D Стек заагч (бага байт)
SPH 0x3E 0x5E Стек заагч (өндөр байт)
SREG 0x3F 0x5F Статусын бүртгэл

AVR микроконтроллеруудын SREG статусын бүртгэл

Статусын бүртгэл нь AVR микроконтроллеруудын нөхцөл байдлын тугуудыг агуулдаг ба оролт гаралтын хэсэгт $3F (SRAM хаяг нь $5F) хаягаар байрладаг. Дахин тохируулах дохио өгсний дараа үүнийг тэг болгож эхлүүлнэ.

Микроконтроллерууд (цаашид MK гэх) бидний амьдралд бат бөх нэвтэрсэн бөгөөд Интернетээс та MK дээр ажилладаг олон сонирхолтой хэлхээг олж авах боломжтой. MK дээр угсарч болохгүй зүйл: төрөл бүрийн индикатор, вольтметр, гэр ахуйн хэрэгсэл (хамгаалалтын төхөөрөмж, залгах төхөөрөмж, термометр ...), металл илрүүлэгч, төрөл бүрийн тоглоом, робот гэх мэт. Жагсаалт маш удаан үргэлжилж магадгүй юм. Би 5-6 жилийн өмнө микроконтроллер дээрх анхны хэлхээг радио сэтгүүлээс хараад тэр даруй хуудсыг эргүүлж, "Би үүнийг угсарч чадахгүй хэвээр байна" гэж бодсон. Үнэхээр тэр үед MK-ууд нь миний хувьд маш төвөгтэй, ойлгомжгүй төхөөрөмж байсан бөгөөд тэд хэрхэн ажилладаг, хэрхэн яаж гэрэлтүүлэх, буруу програм хангамжийн үед тэдэнтэй юу хийх талаар ямар ч ойлголтгүй байсан. Гэхдээ нэг жилийн өмнө би анхны хэлхээгээ MK дээр анх удаа угсарсан, энэ бол хэлхээ байсан дижитал вольтметр 7 сегментийн үзүүлэлт ба ATmega8 микроконтроллер дээр. Би санамсаргүй тохиолдлоор микроконтроллер худалдаж авсан, намайг радио эд ангиудын хэлтэст зогсож байхад миний урд байсан залуу MK худалдаж авч байсан, би ч бас үүнийг худалдаж аваад ямар нэгэн зүйл угсрахаар шийдсэн. Миний нийтлэлүүдэд би танд хэлэх болно AVR микроконтроллерууд, Би танд тэдэнтэй хэрхэн ажиллахыг зааж өгөх болно, бид програм хангамжийн програмуудыг үзэх болно, бид энгийн бөгөөд найдвартай програмист хийх болно, бид програм хангамжийн процессыг харах болно, хамгийн чухал нь програм хангамжийн процессыг харах болно. зөвхөн эхлэгчдэд зориулсан.

AVR гэр бүлийн зарим микроконтроллеруудын үндсэн параметрүүд:

Микроконтроллер

Түргэн санах ой

RAM санах ой

EEPROM санах ой

I/O портууд

U хүч

AVR mega MK-ийн нэмэлт параметрүүд:

Ашиглалтын температур: -55…+125*С
Хадгалах температур: -65…+150*С
GND-тэй харьцуулахад RESET зүү дээрх хүчдэл: хамгийн ихдээ 13V
Хамгийн их тэжээлийн хүчдэл: 6.0V
Оролт гаралтын шугамын хамгийн их гүйдэл: 40мА
Хамгийн их цахилгаан тэжээлийн гүйдэл VCC ба GND: 200mA

ATmega 8X загварын залгуурууд

ATmega48x, 88x, 168x загваруудад зориулсан залгуурууд

ATmega8515x загваруудад зориулсан зүү зохион байгуулалт

ATmega8535x загварт зориулсан зүү зохион байгуулалт

ATmega16, 32x загварт зориулсан зүү зохион байгуулалт

ATtiny2313 загварт зориулсан зүү байрлуулах

Өгүүллийн төгсгөлд зарим микроконтроллеруудын мэдээллийн хуудас бүхий архивыг хавсаргав.

MK AVR суурилуулах FUSE битүүд

Програмчлагдсан гал хамгаалагч нь 0, програмчлагдаагүй нь 1 гэдгийг санаарай. Гал хамгаалагчийг тохируулахдаа болгоомжтой байх хэрэгтэй, буруу програмчлагдсан гал хамгаалагч нь микроконтроллерыг хааж болно. Хэрэв та ямар гал хамгаалагчийг програмчлахаа мэдэхгүй байгаа бол анх удаа гал хамгаалагчгүйгээр MK-г асаах нь дээр.

Радио сонирхогчдын дунд хамгийн алдартай микроконтроллерууд бол ATmega8, дараа нь ATmega48, 16, 32, ATtiny2313 болон бусад. Микроконтроллеруудыг TQFP болон DIP багц хэлбэрээр зардаг; эхлэгчдэд DIP-д худалдаж авахыг зөвлөж байна. Хэрэв та TQFP худалдаж авбал тэдгээрийг анивчуулах нь илүү асуудалтай байх болно, учир нь та самбар худалдаж авах эсвэл гагнах хэрэгтэй болно. хөл нь бие биентэйгээ маш ойрхон байрладаг. Би танд микроконтроллеруудыг DIP багцад тусгай залгуур дээр суулгахыг зөвлөж байна, энэ нь тохиромжтой бөгөөд практик бөгөөд хэрэв та MK-г дахин асаах эсвэл өөр загварт ашиглахыг хүсвэл MK-ийг задлах шаардлагагүй болно.

Бараг бүх орчин үеийн MK-ууд нь ISP програмчлалыг хэлхээнд оруулах чадвартай байдаг, i.e. Хэрэв таны микроконтроллер самбарт гагнагдсан бол програм хангамжийг өөрчлөхийн тулд бид үүнийг самбараас салгах шаардлагагүй болно.

Програмчлалд 6 тээглүүр ашигладаг:
RESET- MK-ээр нэвтэрнэ үү
VCC- Дээрээс нь цахилгаан хангамж, 3-5V нь MK-ээс хамаарна
GND- Нийтлэг утас, хасах хүч.
MOSI- MK оролт (MK дахь мэдээллийн дохио)
MISO- MK гаралт (MK-ийн мэдээллийн дохио)
SCK- MK оролт (MK дахь цагийн дохио)

Заримдаа тэд XTAL 1 ба XTAL2 зүүг ашигладаг; хэрэв MK нь гадны осциллятороор тэжээгддэг бол кварцыг эдгээр тээглүүрүүдэд холбодог; ATmega 64 ба 128-д MOSI болон MISO зүүг ISP програмчлалд ашигладаггүй; оронд нь MOSI тээглүүрүүдийг ашигладаг. PE0 зүү, MISO нь PE1 зүүтэй холбогдсон байна. Микроконтроллерийг программист холбохдоо холболтын утаснууд аль болох богино байх ёстой бөгөөд программистаас LPT порт руу залгах кабель нь хэтэрхий урт байх ёсгүй.

Микроконтроллерийн тэмдэглэгээ нь тоо бүхий хачирхалтай үсэг агуулсан байж болно, жишээлбэл Atmega 8L 16PU, 8 16AU, 8A PU гэх мэт. L үсэг нь MK нь L үсэггүй, ихэвчлэн 2.7V-ээс бага хүчдэлд ажилладаг гэсэн үг юм. Зураас эсвэл 16PU эсвэл 8AU зайны дараах тоо нь MK-д байгаа генераторын дотоод давтамжийг заана. Хэрэв гал хамгаалагчийг гадны кварцаас ажиллуулахаар тохируулсан бол кварцыг мэдээллийн хуудсанд заасны дагуу хамгийн дээд хэмжээнээс хэтрүүлэхгүй давтамжтайгаар тохируулах шаардлагатай бөгөөд энэ нь ATmega48/88/168-ийн хувьд 20 МГц, бусад атмегагийн хувьд 16 МГц байна.

AVR микроконтроллерууд. Програмчлалын үндэс

AVR микроконтроллеруудын бүтэц, үндсэн шинж чанарууд

Энэ нийтлэлд бид ерөнхийд нь тайлбарлахыг хичээх болно. үндсэн шинж чанарууд, "дотор нь юу вэ", AVR микроконтроллеруудтай ажиллахад юу хэрэгтэй вэ гэх мэт.

Tiny, Mega гэж юу вэ?

Компани Атмелнь AVR цөм дээр суурилсан, хэд хэдэн дэд бүлгүүдэд хуваагдсан найман битийн микроконтроллеруудын өргөн хүрээг үйлдвэрлэдэг. техникийн үзүүлэлт, хэрэглээний талбар, үнэ:

  • ATtiny- гэр бүл AVR микроконтроллеруудХарьцангуй өндөр гүйцэтгэл (1.0 MIPS хүртэл, 20.0 МГц хүртэл давтамжтай ажиллах чадвартай), эрчим хүчний хэмнэлттэй (ATtiny бол 0.7 В тэжээлийн хүчдэлээс ажиллах чадвартай цорын ганц гэр бүл юм!) болон нягтрал (SOT23-д микроконтроллерууд байдаг) шаарддаг програмуудад оновчтой. -6 багц - зөвхөн 6 зүү, зүү бүр нь хэд хэдэн функцтэй, жишээлбэл: I/O порт, ADC оролт, PWM гаралт гэх мэт). Эндээс тэдний хэрэглээний хамрах хүрээ гарч ирдэг: үнэ, эрчим хүчний хэрэглээ, хэмжээ гэх мэт чухал төхөөрөмжүүд.
  • ATmega– AVR гэр бүлийн микроконтроллерууд нь маш олон төрлийн салбарт ашиглахад зориулагдсан том багцзахын төхөөрөмжүүд, их хэмжээний програмын санах ой, оролт/гаралтын порт гэх мэт.. Нэг үгээр хэлбэл өргөтгөх боломж бий.
  • ATxmega– AVR микроконтроллеруудын шинэ гэр бүл том багц ATmega-аас илүү захын төхөөрөмжүүд (санах ойд шууд нэвтрэх төхөөрөмж, DAC, CRC модуль, бүрэн USB интерфейс, илүү хурдан ADC гэх мэт), 32.0 МГц хүртэл ажиллах давтамжтай.

Үүнийг тэмдэглэх нь зүйтэй гол онцлогдээрх бүх төхөөрөмжүүд: бүгд нэг бүтэцтэй бөгөөд энэ нь нэг микроконтроллероос нөгөө рүү код шилжүүлэхэд хялбар болгодог.
Микроконтроллерууд нь DIP болон SMD багц хэлбэрээр байдаг (тус бүр өөрийн давуу болон сул талуудтай).

Хамгийн алдартай савлагааны хайрцагнууд нь:

  • DIP (Dual Inline Package) - хоёр эгнээ контакттай орон сууц
  • QFP (Quad Flat Package) - дөрвөн эгнээ контакттай хавтгай багц
  • SOIC (Small-Outline Integrated Circuit) – жижиг хэмжээтэй (жижиг талбай) нэгдсэн хэлхээ

Радио сонирхогчдын практикийн хувьд микроконтроллерууд нь мэдээжийн хэрэг хамгийн их сонирхол татдаг DIP багц, тэдэнтэй ажиллахад хамгийн хялбар тул тэдгээр нь тээглүүрүүдийн хооронд нэлээд том зайтай бөгөөд үүнээс гадна та тэдгээрт зориулж залгуур ашиглаж болно (энэ нь микро схемийг гагнахгүйгээр суулгах тусгай холбогч юм).
Ерөнхийдөө залгуур нь маш тохиромжтой шинэ бүтээл юм - тээглүүр нь үргэлж бүрэн бүтэн бөгөөд та микро схемийг дахин дахин арилгаж, оруулах боломжтой бөгөөд ирээдүйн төхөөрөмжүүдийн прототипийг хийхэд илүү хялбар байдаг.

AVR микроконтроллеруудын тэжээлийн хангамж ба цагны тохируулга

AVR микроконтроллерууд CMOS технологийг ашиглан бүтээгдсэн бөгөөд энэ нь маш бага эрчим хүч зарцуулдаг. Практикт цахилгаан зарцуулалт нь ажлын давтамжтай шугаман ба шууд пропорциональ байна (давтамж их байх тусам эрчим хүчний хэрэглээ өндөр болно).



AVR микроконтроллеруудын тэжээлийн хүчдэл нь дараах хооронд хэлбэлздэг 2.7-5.5 В(Хэдийгээр бол 6.0V нь хамгийн их, гэхдээ миний AVR ямар нэгэн байдлаар 7V дээр ажилладаг байсан ч юу ч биш, өнөөг хүртэл амьд хэвээр байна). Энэ нь AVR нь шууд хянах, өгөгдөл солилцох гэх мэт боломжтой гэсэн үг юм. -тай янз бүрийн төхөөрөмж(3.3V-д тэсвэртэй ба 5V-д тэсвэртэй) ямар ч логик түвшний хувиргагч ашиглах шаардлагагүй. Аналог дохиог илүү нарийвчлалтай боловсруулахын тулд AVR нь ADC, DAC, Аналог компаратор зэрэг төхөөрөмжүүдийг багтаасан микроконтроллерийн аналог хэсгийг тэжээх тусдаа тээглүүрээр хангадаг. Нэмж дурдахад, AVR микроконтроллерууд нь эрчим хүчийг хамгийн сайн хэмнэхийн тулд хэд хэдэн "Унтах горим"-той байдаг.

Мөн микроконтроллерийн зүү бүр (ашиглалтын давтамж ба тэжээлийн хүчдэлээс хамаарч) тэжээгддэг гадаад төхөөрөмжүүдхүртэл одоогийн 40.0 мА(хамгийн их!), Гэхдээ бүх зүйлийг микроконтроллероос "татаж авах/татаж авах" боломжтой 200.0 мА хүртэл(хамгийн их!).

Цагийн дохионы давтамжийн хүрээ нь "гэр бүлийн ахмад настан"-аас хамаарч өөр өөр байдаг (ATtiny бол AVR микроконтроллеруудын хамгийн залуу гэр бүл, ATxMega бол хамгийн эртний гэр бүл юм). Зарим төлөөлөгчдийн, ялангуяа ATtiny гэр бүлийн хувьд үйлдлийн давтамж нь 20.0 МГц, ATmega-ийн хувьд энэ нь хүрч чаддаг. 16.0 МГц-ээс ихгүй, харин ATxMega нь 32.0 МГц-ээс хэтрэхгүй.Мөн AVR микроконтроллер бүр 8.0 МГц хүртэлх дотоод RC осциллятортой бөгөөд энэ нь танд ямар ч хамаагүй хийх боломжийг олгодог. гадаад эх сурвалжцаг хугацааны дохио.

Atmel нь стандартын тал хувьтай (эрчим хүчний хэмнэлтийг нэмэгдүүлэхийн тулд) хамгийн их давтамжтай микроконтроллер үйлдвэрлэдэг тул микроконтроллеруудыг худалдан авахдаа тэдгээрийн кодчилолд анхаарлаа хандуулах хэрэгтэй. Дэлгэрэнгүй мэдээлэлЯмар микроконтроллер ямар давтамж, тэжээлийн хүчдэлд ажилладаг, энэ микроконтроллерт ямар төрлийн кодчилол, сав баглаа боодол байдаг гэх мэт. Мэдээллийн хуудас бүрийн "Захиалгын мэдээлэл" хэсгээс олж болно.

Доорх нь микроконтроллерийн мэдээллийн хуудасны жишээ хүснэгт юм ATtiny13. "Захиалгын код" баганад та кодчилолуудын ялгааг харж болох бөгөөд тэдгээр нь юутай холбоотой болохыг таахад хэцүү биш юм.



AVR микроконтроллер дотор юу байдаг вэ?

Өмнөх үгэнд дурдсанчлан, AVR микроконтроллеруудХарвардын архитектуртай ( гол шинж чанарЭнэхүү архитектур нь зааврын гүйцэтгэлийн хурдыг нэмэгдүүлэхийн тулд програмын санах ой, RAM, түүнчлэн тэдгээрийн хандалтын автобусыг тусгаарладаг: нэг тушаалыг гүйцэтгэж байх үед дараагийнх нь програмын санах ойноос сэргээгддэг) RISC процессортой, хурдтай. 1.0 MIPS. Загвар, зохион байгуулалтаас үл хамааран бүх микроконтроллерууд ижил төв процессортой (процессор/цөм) байдаг. Нэг цөм нь ямар ч хэл дээр бичигдсэн програмыг илүү түгээмэл болгодог бөгөөд хэрэв хүсвэл кодыг хамгийн бага өөрчлөхгүйгээр илүү үнэтэй хянагчийг өөр хямд төслөөр сольж болно.

RISC(Багасгасан зааварчилгааны компьютер) – энгийн угсралтын заавар бүхий процессор (нэмэх, хасах, зүүн/баруун тийш шилжүүлэх, “логик БА” гэх мэт), бүх заавар нь тогтмол урттай, процессор нь олон тооны ерөнхий мэдээллийг агуулдаг. зориулалтын бүртгэл гэх мэт. Жишээлбэл, ямар нэгэн дундаж математик тэгшитгэлийг тооцоолохын тулд процессор нь "бүх тохиолдолд" заавартай CISC процессороос ялгаатай нь хэд хэдэн энгийн угсралтын зааврыг гүйцэтгэх шаардлагатай болно. Гэхдээ AVR нь тийм ч RISC биш юм. -процессор, учир нь бүх угсралтын заавар нь тогтмол форматтай байдаггүй.Ихэнх нь 16 битийн форматтай, бусад нь 32 биттэй. Энэ нь програмын санах ойд заавар бүр 16 эсвэл 32 битийг эзэлдэг гэсэн үг юм. Дашрамд хэлэхэд, тогтмол бус Угсрах зааврын урт нь түүнийг процессор болгодог зүйл юм: Advanced Virtual RISC processor (AVR).

MIPS(Секундэд сая зааварчилгаа) - AVR микроконтроллерууд нь 1.0 МГц давтамжтай (ойролцоогоор) сая зааварчилгааг гүйцэтгэх чадвартай, эсвэл энгийнээр хэлэхэд ихэнх угсралтын зааварчилгааг нэг цагийн циклээр гүйцэтгэдэг.



AVR микроконтроллерийн тархи нь түүний төв процессор (CPU/core) юм.

Процессорын зарим бүрэлдэхүүн хэсэг:

Арифметик логик нэгж

Програмын тоолуур

Стек заагч

  • Статусын бүртгэл
  • Флаш програмын санах ой
  • Өгөгдлийн санах ой

Ерөнхий зориулалтын бүртгэлүүд

Захын регистрүүд (Оролт гаралтын бүртгэлүүд)

RAM санах ой

Цагны систем. Энэ системзүрх судасны системтэй харьцуулж болно

Тасалдлын нэгж

Захын төхөөрөмжүүд, би тэдгээрийн заримыг жагсаах болно:

I/O портууд

EEPROM санах ой

USB (зөвхөн xMega), USART, I2C, SPI, JTAG интерфэйсүүд

Watchdog, Timer/Counter (PWM осциллятортой, авах/харьцуулах гэх мэт)

ADC, DAC (зөвхөн xMega), Аналог харьцуулагч

Гадаад тасалдлын модулиуд

Төрөл бүрийн гэр бүлүүд (Tiny, Mega болон xMega) болон эдгээр гэр бүлийн өөр өөр микроконтроллерууд дахь захын төхөөрөмжүүдийн багц нь өөр өөр байдаг. Төрөл бүрийн захын төхөөрөмжөөр дүүргэгдсэн микроконтроллерууд байдаг ч зардлын хувьд чухал ач холбогдолтой хөгжүүлэлтийн хувьд жижиг (шаардлагатай) дагалдах төхөөрөмжүүдийн багц бүхий микроконтроллерууд байдаг.

AVR микроконтроллеруудын нэг давуу тал бол захын төхөөрөмжийг янз бүрийн хамтарсан ажиллагааны горимд ашиглах чадвар бөгөөд энэ нь хөгжүүлэгчийн даалгаврыг ихэвчлэн хялбаршуулдаг. AVR нь тэжээлийн хүчдэлийн түвшинг дахин тохируулах, хянах (Системийн хяналт ба дахин тохируулах) системтэй бөгөөд энэ нь микроконтроллерыг хэвийн эхлүүлэх, шаардлагатай бол найдвартай унтрах боломжийг олгодог.

Захын удирдлага/төлөвийн бүртгэлүүд нь мэдээллийн санах ойн хэсэгт, ерөнхий зориулалтын регистрүүдийн хооронд байрладаг RAM, энэ нь захын төхөөрөмжтэй ажиллахад өндөр гүйцэтгэлийг баталгаажуулдаг. Хөгжүүлэгч нь мэдээж эдгээр бүртгэлд (I/O Registers) бүрэн хандах эрхтэй.

Микроконтроллер ажиллахад юу хэрэгтэй вэ?

  • програм бичих (хөтөлбөр). Микроконтроллер ажиллах программ/алгоритм бичихийн тулд танд код/текст засварлагч, хөрвүүлэгч, холбогч болон бусад хэрэгслүүдийг багтаасан AVR микроконтроллеруудыг хөгжүүлэх нэгдсэн орчин хэрэгтэй болно.
  • хэлхээний дизайн. Микроконтроллер ажиллахад энэ програм дангаараа хангалтгүй бөгөөд үүнд хамгийн бага биеийн иж бүрдэл (гадны багц) шаардлагатай. электрон тоног төхөөрөмж), микроконтроллерийг тэжээлийн хүчдэл болон цагийн дохиогоор хангахын тулд дор хаяж микроконтроллерийн цөм ажиллах болно.
Дараах зурагт ердийн үйл ажиллагаанд шаардлагатай "сонгодог" микроконтроллерийн иж бүрдлийг харуулав.


Зураг дээр ATmega16 микроконтроллерийн хамгийн бага хэлхээний шаардлагыг харуулав. Энэхүү шилжих схемийн тусламжтайгаар AVR микроконтроллерийн цөм ажиллаж эхэлдэг тул та бүх оролт/гаралтын порт гэх мэтийг ашиглаж болно. захын төхөөрөмж. Товчхондоо микроконтроллер бүрэн байлдааны бэлэн байдалд байна. Жишээлбэл, ADC эсвэл Аналог харьцуулагчийг ашиглаж эхлэхийн тулд эхлээд хяналтын/хяналтын регистрүүдийг ашиглан өөрт хэрэгтэй үйлдлийн горим гэх мэтийг тохируулахын тулд захын төхөөрөмжийг программчлан тохируулж, дараа нь судалж буй дохиог төхөөрөмжийн оролтод хэрэглэнэ. холбогдох захын төхөөрөмж.

- Кварц ба конденсатор C1, C2 (тус бүр 22 pF) нь микроконтроллер болон түүний бүх захын төхөөрөмжийг өндөр чанарын цагийн дохиогоор хангадаг (хамгийн их давтамж - 16.0 МГц).

Эсэргүүцэл R1(10K) нь микроконтроллерийн тогтвортой ажиллагааг хангахад шаардлагатай RESET оролтод өндөр түвшинг өгдөг. Хэрэв микроконтроллер ажиллаж байх үед энэ зүү дээрх хүчдэл тодорхой түвшнээс доош унавал микроконтроллер дахин тохируулагдаж, төлөвлөсөн алгоритмын ажиллагаа тасалдаж болзошгүй.

- ISP холбогчхэлхээний програмчлалд ашигладаг, өөрөөр хэлбэл микроконтроллерийн санах ойд бичсэн програмаа шууд самбар дээр бичих шаардлагатай (микроконтроллерыг төхөөрөмжөөс салгахгүйгээр).

- тохируулагч L1ба C3, C4 конденсаторууд нь аналог захын төхөөрөмжүүдийн тэжээлийн хүчдэл, түүнчлэн I/O портуудын зарим регистрүүдийг хангадаг. Хэрэв микроконтроллер нь аналог хэсэггүй бол аналог тэжээлийн зүү байхгүй тул эдгээр бүрэлдэхүүн хэсгүүд шаардлагагүй болно.Микроконтроллерийн хялбаршуулсан утас нь дараах байдалтай байна: нэгдүгээрт, микроконтроллер нь гадаад цагны хэмжилтээс хасагдсан тул тохирох гал хамгаалагчийн битүүдийг (микроконтроллерийн үйл ажиллагааны нэг төрлийн хязгаарлах параметр) тохируулснаар цаг нь дотоод RC осциллятороос гарна гэдгийг харуулах ёстой. ).
Дотоод осцилляторын хамгийн их давтамж нь 8.0 МГц бөгөөд энэ нь микроконтроллер хамгийн их давтамжтай (гүйцэтгэл) ажиллах боломжгүй болно гэсэн үг юм.
Хоёрдугаарт, микроконтроллерийн аналог хэсэг (түүнчлэн оролт/гаралтын портуудын зарим регистрүүд) нь тэжээлийн эх үүсвэргүй байдаг нь тэдгээрийг ашиглахад саад болдог.
Гуравдугаарт, хэлхээн доторх програмчлалын холбогч байхгүй тул микроконтроллерийн санах ойд програмыг бичихийн тулд та төхөөрөмжөөс устгаж, хаа нэгтээ бичиж, дараа нь байрандаа буцаах хэрэгтэй болно. Таны ойлгож байгаагаар энэ нь тийм ч тохиромжтой биш (зайлуулах / оруулах, гагнуур / тайлах) бөгөөд микроконтроллер өөрөө (хөл нь хугарах, гагнуураас хэт халах гэх мэт) болон ойролцоох төхөөрөмжүүд - холбогч, зам зэргийг гэмтээж болно. онгоцонд гэх мэт.

МикроконтроллерЭнэ бол жижиг компьютер гэж хэлж болно. өөрийн гэсэн байдаг CPU (регистр, хяналтын нэгж, арифметик логик нэгж), санах ой, түүнчлэн төрөл бүрийн захын хэсэг, гэх мэт I/O портууд, таймер, тасалдал хянагч, янз бүрийн импульс үүсгэгч, тэр ч байтугай аналог хувиргагч. Та бүгдийг жагсааж болохгүй. Микроконтроллеруудын бүх хэрэглээг жагсаах боломжгүй юм.

Гэхдээ хэрэв бид бүх зүйлийг маш хялбаршуулсан бол микроконтроллерийн гол үүрэг бол "хөлөө үсрэх" юм. Тэдгээр. Энэ нь хэд хэдэн тээглүүртэй (загвараас хамааран 6-аас хэдэн арван хүртэл) бөгөөд эдгээр зүү дээр програм хангамжаас хамааран 1 (өндөр хүчдэлийн түвшин, жишээ нь +5 вольт) эсвэл 0 (бага хүчдэлийн түвшин, ойролцоогоор 0.1 вольт) тохируулж болно. алгоритм нь түүний санах ойд холбогдсон. Микроконтроллер нь түүний хөл дээрх дохионы төлөвийг тодорхойлох боломжтой (үүнд тэдгээрийг оролт болгон тохируулах ёстой) - тэнд байгаа хүчдэл өндөр эсвэл бага (тэг эсвэл нэг) эсэх. Орчин үеийн микроконтроллерууд бараг бүх нийтээрээ аналог-тоон хөрвүүлэгчтэй байдаг - энэ нь вольтметртэй төстэй зүйл бөгөөд энэ нь оролтод 0 эсвэл 1-ийг хянах төдийгүй 0-ээс лавлагаа хүртэлх хүчдэлийг бүрэн хэмжих боломжийг олгодог. (ихэвчлэн лавлагаа нь тэжээлийн хүчдэлтэй тэнцүү) ба үүнийг 0-ээс 1024 хүртэлх тоогоор илэрхийлнэ (эсвэл ADC битийн хэмжээнээс хамааран 255)

Үүнээс та хийж болно ухаалаг байшин, мөн гэрийн роботын тархи, ухаалаг аквариумын удирдлагын систем, эсвэл зүгээр л ажиллаж байгаа текст бүхий гоёмсог LED дэлгэц. MK электрон эд ангиудын дунд энэ нь хамгийн уян хатан төхөөрөмжүүдийн нэг юм. Жишээлбэл, дараагийн төхөөрөмжийг бүтээхдээ би хэлхээний дизайны янз бүрийн гажуудалд төвөг учруулахгүй, харин бүх оролт, гаралтыг микроконтроллерт холбож, бүх ажлын логикийг програм хангамжаар хийхийг илүүд үздэг. Энэ нь цаг хугацаа, мөнгөө хоёуланг нь эрс хэмнэдэг бөгөөд энэ нь мөнгөний квадрат гэсэн үг юм.

Маш олон микроконтроллерууд байдаг. Радио эд анги үйлдвэрлэдэг бараг бүх өөрийгөө хүндэтгэдэг компани өөрийн хянагчийг үйлдвэрлэдэг. Гэсэн хэдий ч энэ олон янз байдал нь дэг журамтай байдаг. МК-ууд гэр бүлд хуваагддаг; Би бүгдийг нь жагсаахгүй, гэхдээ би зөвхөн хамгийн энгийн найман битийн гэр бүлүүдийг тайлбарлах болно.

MSC-51
Хамгийн өргөн хүрээтэй, хөгжсөн нь MSC-51, хамгийн эртний нь, ирсэн Intel 8051одоо маш олон компани үйлдвэрлэж байна. Заримдаа товчхон дууддаг C51. Энэ бол 8 битийн архитектур бөгөөд бусад найман битийн архитектуруудаас ялгаатай CISCархитектур. Тэдгээр. Нэг тушаал нь заримдаа нэлээд төвөгтэй үйлдлийг гүйцэтгэх боломжтой боловч тушаалууд нь олон тооны цагийн циклээр (тушаалын төрлөөс хамааран ихэвчлэн 12 эсвэл 24 цагийн цикл) гүйцэтгэгддэг, өөр өөр урттай байдаг бөгөөд бүх тохиолдолд олон байдаг. . Архитектурын хянагч нарын дунд MSC-51үлэг гүрвэлүүд шиг уулзана AT89C51, хамгийн бага дагалдах төхөөрөмж, жижиг санах ой, чухал биш гүйцэтгэл, бүтээгдэхүүн шиг мангасуудтай Цахиурын лабораториОнгоцонд янз бүрийн хэмжээтэй дагалдах төхөөрөмж, асар их хэмжээний RAM болон байнгын санах ой, хүчирхэг интерфэйс бүхий маш махлаг махтай. UARTөмнө нь USBТэгээд БОЛНО, бас харгис хэрцгий хурдан цөм, секундэд 100 сая хүртэлх үйлдлийг хүргэж байна. Миний хувьд би C51 архитектурыг гайхалтай сайхан ассемблерийнх нь хувьд биширдэг бөгөөд энэ нь бичихэд үнэхээр хэцүү юм. Энэ архитектурт зориулж гигабайт код аль хэдийн бичигдсэн, төсөөлж болох, төсөөлшгүй бүх алгоритмууд бий болсон.

Atmel AVR
Миний хоёр дахь дуртай гэр бүл AVRкомпаниас Атмел. Бүх Атмелүйлдвэрлэдэг ба MSC-51хянагч, гэхдээ тэд анхаарлаа хандуулсаар байна AVR. Эдгээр хянагчууд аль хэдийн 8 биттэй байна RISCархитектур болон нэг командыг нэг цагийн мөчлөгөөр гүйцэтгэх боловч сонгодог хувилбараас ялгаатай RISCЦөмүүд нь маш өргөн хүрээний командын системтэй боловч C51 шиг тийм ч тохиромжтой биш тул би тэдэнд дургүй. Гэхдээ AVRТэд үргэлж дайны зориулалттай мэт тоноглогдсон бөгөөд янз бүрийн дагалдах хэрэгсэл, ялангуяа дэд бүлгүүдийн хянагчаар дүүрэн байдаг ATMega. Тэдгээрийг анивчих нь маш хялбар бөгөөд энэ нь тусгай програмист эсвэл бусад нарийн төвөгтэй тоног төхөөрөмж шаарддаггүй. Танд таван утас, компьютер байхад л хангалттай LPTпорт. Сурах хялбар байдал нь энэхүү хянагчийг дэлхийн өнцөг булан бүрт байгаа олон, олон радио сонирхогчдын зүрх сэтгэлд баттай орох боломжийг олгосон.

Микрочип PIC.
Өөр 8 бит RISCМикроконтроллер нь хэдхэн арван тушаалаас бүрдэх маш гажуудсан тушаалын системээр ялгагдана. Команд бүрийг дөрвөн цагийн мөчлөгөөр гүйцэтгэдэг. хэд хэдэн давуу талтай, ялангуяа бага эрчим хүчний хэрэглээ, мөн хурдан эхлэх. Дундаж PICхянагч нь AVR-тай адил олон дагалдах төхөөрөмжгүй, харин өөрчлөлтүүд нь өөрөө байдаг PICМаш олон хянагч байгаа тул та үргэлж даалгаврын хувьд яг тохирсон дагалдах хэрэгсэл бүхий болорыг сонгох боломжтой, илүү ч, дутуу ч үгүй. Асаалттай PIC'сүх нь уламжлалт байдлаар машинд зориулсан самбарын компьютер, түүнчлэн олон тооны гэр ахуйн дохиолол үйлдвэрлэдэг.

Та аль гэр бүлийг сонгох ёстой вэ? Өө, хэцүү асуулт байна. Олон тооны форум, бага хурал дээр аль гэр бүл илүү дээр вэ гэсэн сэдвээр ширүүн тулаан байсаар байна, шүтэн бишрэгчид AVRдагалдагчидтайгаа хэрэлдэх MSC-51, замдаа бөөрийг өшиглөхөө мартаж болохгүй PIC‘хонь, үүнд тэд адилхан хариу өгдөг.

Энд байгаа байдал яг л Starcraft шиг :) Хэн нь илүү дажгүй вэ? Хүмүүс? Зэрэг? Протосс? Энэ нь програм, даалгаврын цар хүрээ болон бусад олон параметрүүдийн тухай юм. Гэр бүл бүр өөрийн гэсэн давуу болон сул талуудтай. Гэхдээ би хувьдаа AVR-ийг сонгох байсан бөгөөд дараах шалтгааны улмаас:

  • 1. Орос улсад ашиглах боломжтой. Эдгээр хянагчууд нь ард түмэнд нэр хүндтэй, хайртай байдаг тул манай худалдаачид тэднийг авч явахад бэлэн байна гэсэн үг юм. Гэсэн хэдий ч PIC шиг. MSC-51-ийн хувьд байдал улам дорддог. Хуучирсан AT89C51 авах нь асуудал биш, гэхдээ хэнд хэрэгтэй вэ? Гэхдээ орчин үеийн силабууд аль хэдийн онцгой болсон.
  • 2. Бага үнэ. Ерөнхийдөө PIC нь дэлхийд хямд үнээр алдартай боловч хамгийн хачирхалтай нь та үүнийг вагоноор нь худалдаж авбал л үнэ төлбөргүй байдаг. Үнэн хэрэгтээ бодит тоолуур дээр AVR нь арай илүү ажиллагаатай PIC-ээс 30-40 хувиар хямд байх болно. MSC-51-ийн хувьд нөхцөл байдал эхний цэг дээр тодорхой байна. Онцгой байдал нь ховор төдийгүй үнэтэй байдаг.
  • 3. Нэг дор олон тооны захын төхөөрөмж. Цуваа төхөөрөмжийн хувьд энэ нь сул тал юм. Зөвхөн одоогийн ажилд шаардлагатай зүйлийг л авч, бусад нь саад болж, эрчим хүчээ үрэхгүй байх нь дээр. Энэ бол PIC нь тархалтаараа алдартай загварын хүрээ, Танд хэрэггүй зүйл биш харин хэрэгтэй зүйлээ агуулсан хянагчийг хаанаас олох боломжтой. Гэхдээ бид өөрсдөө судалж, үүнийг хийх гэж байна! Тиймээс бид бүгдийг нэг дор, нөөцөлсөн нь дээр. Мөн энд AVR нь PIC-ээс дээш толгой ба мөр болж, улам олон чихмэл хянагчуудыг дахин дахин гаргаж өгдөг. Би өөртөө AtMega16A худалдаж авсан, тэгээд л та бүхэл бүтэн гэр бүлээ судалж болно.
  • 4. Нэг цөм. Баримт нь орчин үеийн бүх AVR-ууд ижил цөмтэй байдаг нэгдсэн системтушаалууд Захын түвшинд зөвхөн зарим ялгаа байдаг (мөн тэдгээр нь бага байдаг). Тэдгээр. Жижигхэн ATTiny13-ын кодыг ATMega64-д хялбархан хуулж, буулгах боломжтой бөгөөд бараг ямар ч өөрчлөлтгүйгээр ажилладаг. Мөн эсрэгээр нь бараг ямар ч хязгаарлалтгүй. Үнэн, хуучин AVR загварууд (бүх төрлийн AT90S1200) дээрээс доошоо нийцэх чадвар нь хязгаарлагдмал байдаг - тэдгээр нь арай бага тушаалын системтэй байдаг. Гэхдээ энэ нь тэсрэлттэй байна. Микрочип нь бүхэл бүтэн гэр бүлтэй. Өөр өөр тушаалын системтэй PIC12/16/18. 12-р гэр бүл нь ихэвчлэн өчүүхэн жижиг зүйл (AVR дахь Tiny гэх мэт) бөгөөд 18 нь аль хэдийн илүү ноцтой хянагч (Mega AVR-тай адил) бөгөөд хэрэв 12-оос авсан кодыг 18 хүртэл чирж чадвал 1-р зураг.
  • 5. AVR хянагчдад зориулсан өргөн хүрээний командын систем. AVR-д 130 орчим тушаал байдаг бол Microchip PIC-д ердөө 35 тушаал байдаг. PIC нь ялагч юм шиг санагдаж байна - цөөн командтай, сурахад хялбар. Тийм ээ, микрочипийн уриа яг ийм сонсогдож байна, "Зөвхөн 35 баг!" Зөвхөн энэ бол үнэхээр тэнэг юм. Эцсийн эцэст процессорын тушаал гэж юу вэ? Энэ бол хэрэгсэл! Ердийн, нягтлан бодох бүртгэлийн, инженерийн гэсэн хоёр тооны машиныг төсөөлөөд үз дээ. Нягтлан бодох бүртгэлийг сурахад инженерчлэлээс хамаагүй хялбар байдаг. Гэхдээ үүн дээрх синусыг тооцоолж үзээрэй? Эсвэл логарифм уу? Үгүй ээ, та чадна, би маргахгүй, гэхдээ хэдэн товчлуур дарж, завсрын тооцоолол хийх вэ? Ижил зүйл! Таны гарт олон янзын үйлдэл байгаа үед ажиллахад илүү тохиромжтой. Тиймээс командын систем том байх тусмаа сайн.
  • 6. Үнэгүй платформ хоорондын C хөрвүүлэгч байгаа эсэх. Мэдээжийн хэрэг та үргэлж ан цавыг олж чадна. Хаана, гэхдээ манай улсад энэ асуудал хэзээ ч байгаагүй. Гэхдээ чамд үнэгүй зүйл байгаа бол яагаад хулгайлах ёстой гэж? ;)
  • 7. За, сүүлийн аргумент нь ихэвчлэн хамгийн хүчтэй байдаг. Зааж, зөвлөгөө өгөх хүн байгаа нь. Зөвлөгөө өгч, зөв ​​зам руу чиглүүлсэн. Би өөртөө болон энэ сайт дээр AVR-ийг сонгосон ( ядажодоохондоо) энэ гэр бүлийг сайтар ойлгох болно, энэ нь танд маш их сонголт байхгүй гэсэн үг юм :))))))

Өө, гэхдээ эдгээр AVR-ийн бүхэл бүтэн багц байдаг. Би алийг нь авах ёстой вэ???
Сонирхлыг асуух. Ерөнхийдөө даалгаврын хувьд MK сонгох нь дээр. Гэхдээ үүнийг судлахын тулд чихмэл юм авах нь дээр.

Эхлээд ямар төрлийн амьтан таны өмнө байгааг үнийн жагсаалтаас шууд ойлгохын тулд тэмдэглэгээг харцгаая. Та бүхэндээ жишээ татъя

ATmega16A - 16PI

  • AT- Атмелд хийсэн
  • Мега- гэр бүлийн төрөл. Мөн Tiny болон Xmega (шинэ нь аймшигтай зүйл, бүрэн нисдэг тэрэг) байдаг. Ерөнхийдөө Tiny нь бага хэмжээний татсан махтай бага төсөвтэй, ерөнхийдөө дутагдалтай, харин Мега эсрэгээрээ бүх зүйл нэг дор байсан гэж үздэг. Бодит байдал дээр татсан махны хувьд Тини ба Мега гэр бүлийн хоорондох ялгаа маш бага байгаа ч Tini нь санах ой багатай бөгөөд 6-аас 20 хүртэлх тооны зүүтэй байдаг.
  • 16 - килобайт дахь флаш санах ойн хэмжээ. Үнэндээ энэ бүхэн тийм ч энгийн зүйл биш юм. Санах ойн дугаар нь хоёрын хүч юм. Тиймээс Mega162 нь 162KB флэштэй хянагч биш, харин 16KB санах ойтой Mega16-ийн нэг төрлийн өөрчлөлт2 юм. Эсвэл Mega88 нь 88кб биш, харин 8кб флэш, хоёр дахь 8 нь энэ нь Mega8-ийн цаашдын хөгжил гэдгийг илтгэж байна. Үүний нэгэн адил Mega48 эсвэл Mega168. Тинигийн гэр бүлд ч мөн адил. Жишээлбэл, Tini2313 - 2 килобайт флэш. 313 гэж юу вэ? Юу гэсэнийг нь хэн мэдэхэв дээ :) Эсвэл Tiny12 - 1kb Flash. Ерөнхийдөө чип арилсан.
  • А- эрчим хүчний хэрэглээний угтвар (ихэвчлэн). Энэ үсэг байхгүй байж болох ч шинэ цувралд бараг хаа сайгүй байдаг. Жишээлбэл, V ба L цуврал нь бага хүчдэлтэй бөгөөд 2.7 вольтоос ажиллах боломжтой. Үнэн, та бага хүчдэлийн хувьд бага давтамж төлөх ёстой. Гэхдээ энд бас overclock хийх боломжтой, бидэнд ямар ч хүн харь байдаггүй :) A болон P PicoPower технологи бүхий шинэ AVR цувралтай болсон i.e. хэт хэмнэлттэй. Индекс бус загвартай чөмөг, дотоод бүтцэд ямар ч ялгаа байхгүй, цорын ганц ялгаа нь бүх унтах горимын ажиллагаа, эрчим хүчний хэрэглээ юм. Тэдгээр. Mega16A-г А-гүйгээр амархан Mega16 болгож өөрчлөх боломжтой. Өөр юу ч өөрчлөх шаардлагагүй.
  • 16 -Хязгаарлалт цагийн давтамжмегагерц дээр. Бодит байдал дээр та үүнийг 20 хүртэл overclock хийх боломжтой;)
  • П- бүрхүүлийн төрөл. Чухал онцлог. Баримт нь тохиолдол бүрийг hemorrhoidsгүйгээр гэртээ гагнах боломжгүй юм. Одоогоор би P-DIP орон сууцанд анхаарлаа хандуулахыг зөвлөж байна. Энэ бол том мангас боловч гагнахад хялбар бөгөөд хамгийн чухал нь тусгай залгуурт амархан наалдаж, дахин гаргаж авдаг. SOIC (индекс S) эсвэл TQFP (index A) орон сууцыг одоохондоо хойш тавих нь дээр. Гагнуурын сайн туршлагагүй, өндөр чанартай сийлбэр хийх чадваргүй цахилгаан гүйдлийн хавтанТэдэнтэй хөндлөнгөөс оролцохгүй байх нь дээр.
  • I- Хар тугалга хийх төрөл. Би - хар тугалга гагнуур. U - хар тугалгагүй. Таны хувьд огт ялгаа байхгүй. Хамгийн хямдыг нь ав.

Би дараах загваруудыг санал болгож байна.

  • ATMega16A-16PU - хямд (ойролцоогоор 100-150 рубль), олон зүү, олон тооны дагалдах хэрэгсэл. Янз бүрийн орон сууцанд ашиглах боломжтой. Энэ бол энгийн, миний сургалтын курс болон бусад бүх жишээнүүд үүнд тохирсон.
  • ATTiny2313-20SU нь бүх төрлийн цаг/сэрүүлэг болон бусад жижиг гэрийн автоматжуулалт хийхэд тохиромжтой сонголт юм. Хямд (40 рубль), авсаархан. Сул тал нь ADC байхгүй байна.
  • Эдгээр хянагчуудын аль нэг нь ATmega48/88/168. Компакт (tqfp тохиолдолд энэ нь AVR-ийн хамгийн нимгэн, хамгийн жижиг нь юм), хямд (100-150 рубль), ирмэг хүртэл чихмэл.
  • Туршлагатай хүмүүст зориулсан ATmega128. Том, хүчирхэг, асар их санах ой. Үнэтэй (ойролцоогоор 400 рубль)

Танд LED анивчих даалгавар өгсөн гэж бодъё.
Энэ асуудлыг хэрхэн шийдвэрлэх талаар ярилцъя:

Сонголт 1 нь хамгийн энгийн, унтраалга/товчлуурыг аваад хажууд нь боол байрлуулж, унтраалга ашиглан LED-ийг асаах/унтраах болно. Ихэвчлэн Орост ихэнх асуудлыг ийм байдлаар шийддэг. Тэгээд юу анивчих вэ?)))
Сонголт 2 - multivibrator угсарна. Аль хэдийн илүү сонирхолтой. Анивчихын тулд нэг LED хангалттай сайн шийдвэр. Түүнээс гадна энэ нь энгийн, хямд, найдвартай.
Сонголт 3 - микроконтроллер дээр угсарна. Мультивибратор угсрахаас илүү үнэтэй, гэхдээ миний бодлоор илүү хялбар. Би программ бичиж, ажиллуулаад үр дүнгээ авсан. Тохиргоо байхгүй. Мэдээжийн хэрэг энэ бол хамгийн тохиромжтой тохиолдол юм.

Одоо даалгавраа хүндрүүлье. Жишээлбэл, 5 LED, анивчдаг 5 сонголт (анивчих хурд, дараалал өөрчлөгддөг). Эхний сонголт нэн даруй алга болж, 2-р аргыг хийж болно, гэхдээ төхөөрөмжийн хэмжээ огцом нэмэгдэх болно. Сонголт 3 нь ойролцоогоор ижил хэмжээтэй хэвээр байх болно, ердөө хоёр мөр код нэмнэ үү. Тиймээс микроконтроллергүйгээр хийх боломжгүй, хэт их байх тохиолдол өөр өөр байдаг. Тиймээс хөдөлмөрийн зардал, цаг хугацаа, санхүүгийн зардлыг үргэлж тооцоол.

Тиймээс микроконтроллер нь систем, процесс гэх мэтийг уян хатан удирдах боломжийг олгодог, жижиг хэмжээстэй, функциональ байдлын хувьд энэ нь мини компьютер юм. Микроконтроллеруудыг өөр өөр компаниуд үйлдвэрлэдэг. Atmel-аас гаргасан AVR микроконтроллеруудын нэг. Яагаад тэд? Тэдгээрийг дэлгүүрээс олоход хялбар, жишээг олоход хялбар байдаг бэлэн код, суурилуулсан функц нь нарийн төвөгтэй асуудлыг ч шийдвэрлэх боломжийг олгодог.

Микроконтроллер нь биднээс юу хүсч байгааг ойлгохын тулд програм хангамжийг түүнд ачаалах хэрэгтэй - энэ нь хийх ёстой үйлдлийн дараалал юм. Програм хангамж нь нэг ба тэгийн дараалал юм. Үүнийг илүү тохиромжтой болгохын тулд програмчлалын хэлийг зохион бүтээсэн. Жишээлбэл, бид "on" гэж бичдэг бөгөөд хөрвүүлэгч өөрөө үүнийг микроконтроллерт ойлгомжтой байх нэг ба тэгийн дараалал болгон хувиргадаг. Хэрэв та тэмдэглэлийн дэвтэр ашиглан нээвэл HEX програм хангамжийг зурагт харуулав.

Микроконтроллерууд нь ихэвчлэн Си эсвэл ассемблер хэл дээр програмчлагдсан байдаг. Ерөнхийдөө юун дээр бичих нь ямар ч ялгаагүй. Олон тооны бэлэн жишээнүүдийн улмаас би сонголтоо С-ийн талд хийсэн. Үүнээс гадна C хэл дээр бичих боломжийг олгодог хэд хэдэн програм байдаг. Жишээлбэл, үнэ төлбөргүй, өмчлөгч AVR Studio, CodeVision, WinAVR гэх мэт. Би CodeVision дээр бичдэг ч AVR Studio-г дибаггер болгон маш идэвхтэй ашигладаг.

Наад зах нь энэ нь танд тодорхой болсон гэж найдаж байна. Миний бодлоор хамгийн хэцүү зүйл бол эхний алхамыг хийх явдал юм. Хийж, айдас, залхуугаа ялж чадсан хүн гарцаагүй үр дүнд хүрнэ. Микроконтроллер сурахад амжилт хүсье.