8/2/4K baytli tizimda dasturlashtiriladigan fleshli Atmel 8-bitli AVR mikrokontrolleri
Xususiyatlari
- Yuqori unumdorlik, kam quvvatli AVR® 8-bitli mikrokontroller
- Murakkab RISC Arxitektura
- 120 ta kuchli ko'rsatmalar - eng ko'p bitta tsiklning bajarilishi
- 32 x 8 umumiy maqsadlar uchun ishlaydigan registrlar
- To'liq statik operatsiya
- O'zgarmas dastur va ma'lumotlar xotiralari
- 2/4 / 8K baytli tizimdagi dasturlashtiriladigan dastur xotirasi fleshkasi
- Chidamlilik: 10,000 XNUMX ta yozish/oʻchirish tsikllari
- 128/256/512 bayt tizimda dasturlashtiriladigan EEPROM
- Chidamlilik: 100,000 XNUMX ta yozish/oʻchirish tsikllari
- 128/256/512 bayt Ichki SRAM
- O'z-o'zini dasturlash uchun Flash Program va EEPROM Data Security dasturlarini blokirovkalash
Periferik xususiyatlari
- Prescaler va ikkita PWM kanallari bilan 8-bitli taymer / taymer
- Alohida Prescaler bilan ishlaydigan 8-bitli yuqori tezlikli taymer / taymer
- Alohida chiqishi taqqoslash registrlari bilan yuqori chastotali PWM chiqishi
- Dasturlash mumkin bo'lgan o'lik vaqt generatori
- USI - Boshlanish holatini aniqlovchi universal seriyali interfeys
- 10-bitli ADC
4 ta bitta tugagan kanal
Dasturlashtiriladigan daromadga ega bo'lgan 2 ta farqli ADC kanali juftligi (1x, 20x)
Haroratni o'lchash
Alohida chipli osilator bilan dasturlashtiriladigan qo'riqchi taymeri
Chipdagi analog taqqoslash moslamasi
Maxsus mikrokontroller xususiyatlari
debugWIRE chipdagi disk raskadrovka tizimi
SPI porti orqali tizimda dasturlash mumkin
Tashqi va ichki uzilish manbalari
Kam quvvatli bo'sh vaqt, shovqinni kamaytirish va o'chirish rejimlari
Kengaytirilgan quvvatni qayta tiklash davri
Dasturlash mumkin bo'lgan o'chirishni aniqlash sxemasi
Ichki kalibrlangan osilator
I / O va paketlar
Oltita dasturlashtiriladigan I / O chiziqlari
8-pinli PDIP, 8-pinli SOIC, 20-pad QFN / MLF va 8-pinli TSSOP (faqat ATtiny45 / V)
Operatsion jildtage
- ATtiny1.8V / 5.5V / 25V uchun 45 - 85V
- ATtiny2.7 / 5.5/25 uchun 45 - 85V
Tezlik darajasi
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 MGts @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
Sanoat harorati oralig'i
Kam quvvat iste'moli
Faol rejim:
1 MGts, 1.8V: 300 µA
O'chirish rejimi:
Pin konfiguratsiyasi
Pinout ATtiny25 / 45/85
Pin tavsiflari
VCC: Ta'minot jildtage.
GND: Yer.
B porti (PB5: PB0): B porti ichki tortish rezistorlari bo'lgan 6 bitli ikki yo'nalishli I/U portidir (har bir bit uchun tanlangan). Port B chiqish buferlari yuqori cho'kish va manba qobiliyatiga ega bo'lgan simmetrik haydovchi xususiyatlarga ega. Kirish sifatida, tashqaridan past tortilgan B porti pinlari, agar tortish rezistorlari faollashtirilgan bo'lsa, oqim manbai bo'ladi. Soat ishlamayotgan bo'lsa ham, qayta o'rnatish holati faollashganda B portining pinlari uch marta ko'rsatiladi.
Port B, shuningdek, ATtiny25 / 45/85 ning har xil maxsus funktsiyalarini ro'yxatdagi kabi bajaradi
ATtiny25-da dasturlashtiriladigan PB3 va PB4 portlari (pinlar 2 va 3) ATtiny15 bilan orqaga qarab muvofiqligini qo'llab-quvvatlash uchun ATtiny15 moslik rejimida almashtiriladi.
RESET: kirishni qayta o‘rnatish. Ushbu pinda minimal puls uzunligidan uzoqroq past daraja, agar soat ishlamayotgan bo'lsa va qayta o'rnatish pinini o'chirmagan bo'lsa ham, qayta o'rnatishni keltirib chiqaradi. Minimal puls uzunligi ko'rsatilgan 21-4-jadval 165-sahifada. Qisqa pulslarda qayta tiklashni kafolatlash mumkin emas.
Qayta tiklash pimi (kuchsiz) I / U pimi sifatida ham ishlatilishi mumkin.
tugadiview
ATtiny25 / 45/85 - bu AVR rivojlangan RISC arxitekturasiga asoslangan kam quvvatli CMOS 8-bitli mikrokontroller. Bir soatlik tsiklda kuchli ko'rsatmalarni bajarish bilan ATtiny25 / 45/85 har bir MGts ga 1 MIPS ga yaqin natijalarga erishadi, bu tizim dizayneriga qayta ishlash tezligiga nisbatan quvvat sarfini optimallashtirishga imkon beradi.
Blok diagrammasi
AVR yadrosi boy ko'rsatmalar to'plamini 32 ta umumiy ishlaydigan ish registrlari bilan birlashtiradi. Barcha 32 registrlar to'g'ridan-to'g'ri Arifmetik mantiqiy birlikka (ALU) ulangan bo'lib, ikkita mustaqil registrga bitta soat tsiklida bajarilgan bitta ko'rsatma orqali kirishga imkon beradi. Olingan arxitektura odatdagi CISC mikrokontrolerlariga qaraganda o'n baravar tezroq ishlashga erishishda kod samaradorligini oshiradi.
ATtiny25 / 45/85 quyidagi funktsiyalarni taqdim etadi: 2/4 / 8K baytli tizimlashtiriladigan flesh, 128/256/512 baytli EEPROM, 128/256/256 baytli SRAM, 6 ta umumiy foydalanish uchun I / U qatorlari, 32 ta umumiy maqsadli ishlaydigan registrlar, taqqoslash rejimlari bilan bitta 8 bitli Taymer / hisoblagich, bitta 8 bitli yuqori tezlikda ishlaydigan taymer / hisoblagich, universal ketma-ket interfeys, ichki va tashqi uzilishlar, 4 kanalli, 10 bitli ADC, ichki o'rnatilgan dasturlashtiriladigan qo'riqchi taymeri Osilator va uchta dasturiy ta'minot tanlanadigan quvvatni tejash rejimi. Ruxsat etilgan rejim SRAM, Timer / Counter, ADC, Analog Comparator va Interrupt tizimlarining ishlashini davom ettirishga ruxsat berganda, protsessorni to'xtatadi. Quvvatni o'chirish rejimi reestr tarkibini tejashga imkon beradi, barcha chip funktsiyalarini keyingi Interrupt yoki Hardware Reset ga qadar o'chirib qo'yadi. ADC shovqinni kamaytirish rejimi, ADC konversiyasi paytida shovqinni minimallashtirish uchun CPU va ADCdan tashqari barcha I / U modullarini to'xtatadi.
Qurilma Atmelning yuqori zichlikdagi doimiy xotira texnologiyasidan foydalangan holda ishlab chiqarilgan. On-chip ISP Flash-da SPI seriyali interfeysi orqali an'anaviy xotirani dasturlashtiruvchi yoki AVR yadrosida ishlaydigan On-chip yuklash kodi orqali Tizimdagi dastur xotirasi qayta dasturlashtirilishi mumkin.
ATtiny25 / 45/85 AVR dastur va tizimni ishlab chiqish uchun to'liq vositalar to'plami bilan ta'minlanadi, ular qatoriga: C kompilyatorlari, so'l assambleyerlari, dastur tuzatuvchisi / simulyatorlari va baholash to'plamlari kiradi.
Resurslar haqida
Rivojlanish vositalarining to'liq to'plami, dastur yozuvlari va ma'lumotlar jadvallarini yuklab olish mumkin http://www.atmel.com/avr.
Kod Examples
Ushbu hujjat oddiy kodni o'z ichiga oladiampQurilmaning turli qismlarini qanday ishlatishni qisqacha ko'rsatadigan les. Bu kodlar, masalanampO'ylaymanki, bu qismning o'ziga xos sarlavhasi file kompilyatsiya qilishdan oldin kiritilgan. Shuni yodda tutingki, barcha kompilyator sotuvchilari sarlavhada bit ta'riflarini o'z ichiga olmaydi files va uzilishlar C da kompilyatorga bog'liq. Qo'shimcha ma'lumot uchun C kompilyatorining hujjatlari bilan tasdiqlang.
Kengaytirilgan I / O xaritasida joylashgan I / U registrlari uchun "IN", "OUT", "SBIS", "SBIC", "CBI" va "SBI" ko'rsatmalari kengaytirilgan I ga kirish imkoniyatini beradigan ko'rsatmalar bilan almashtirilishi kerak. / O. Odatda, bu "SBRS", "SBRC", "SBR" va "CBR" bilan birlashtirilgan "LDS" va "STS" degan ma'noni anglatadi. E'tibor bering, barcha AVR qurilmalari kengaytirilgan I / U xaritasini o'z ichiga olmaydi.
Kapasitiv sensorli sensor
Atmel QTouch Library Atmel AVR mikrokontrolörlarida sensorli interfeyslar uchun foydalanish uchun oddiy yechimni taqdim etadi. QTouch kutubxonasi QTouch® va QMatrix® sotib olish usullarini qo'llab-quvvatlashni o'z ichiga oladi.
Sensorli zondlash har qanday dasturga QTouch kutubxonasini bog'lash va kutubxonaning amaliy dastur interfeysi (API) yordamida sensorli kanallar va sensorlarni aniqlash orqali osonlikcha qo'shiladi. So'ngra dastur kanal ma'lumotlarini olish va sensorli sensor holatini aniqlash uchun API-ni chaqiradi.
QTouch kutubxonasi bepul va uni Atmel -dan yuklab olish mumkin websayt. Qo'shimcha ma'lumot va amalga oshirish tafsilotlari uchun QTouch kutubxonasi foydalanuvchi qo'llanmasiga qarang - Atmel -da ham mavjud websayt.
Ma'lumotlarni saqlash
Ishonchlilik Malakaviy natijalar shuni ko'rsatadiki, ma'lumotni saqlashning prognoz qilinadigan ishlamay qolish darajasi 1 ° C da 20 yil davomida yoki 85 ° C da 100 yil davomida 25 PPMdan ancha past.
AVR protsessor yadrosi
Kirish
Ushbu bo'limda umuman AVR yadro arxitekturasi muhokama qilinadi. CPU yadrosining asosiy vazifasi dasturning to'g'ri bajarilishini ta'minlashdir. Shuning uchun protsessor xotiralarga kirish, hisob-kitoblarni amalga oshirish, tashqi qurilmalarni boshqarish va uzilishlarni boshqarish imkoniyatiga ega bo'lishi kerak.
Arxitektura tugadiview
Ishlash va parallellikni maksimal darajaga ko'tarish uchun AVR Garvard arxitekturasidan foydalanadi - dastur va ma'lumotlar uchun alohida xotiralar va avtobuslar mavjud. Dastur xotirasidagi ko'rsatmalar bir darajali truboprovod bilan bajariladi. Bitta ko'rsatma bajarilayotganda, keyingi ko'rsatma Dastur xotirasidan olinadi. Ushbu kontseptsiya ko'rsatmalarning har bir soat tsiklida bajarilishini ta'minlaydi. Dastur xotirasi - bu tizimda qayta dasturlashtiriladigan flesh xotira.
Ro'yxatdan o'tish tezligi File 32 x 8-bitli umumiy maqsadli ishchi registrlarni o'z ichiga oladi, bu bitta soat tsikliga kirish vaqtiga ega. Bu bir davrli arifmetik mantiq birligi (ALU) ishlashiga imkon beradi. Oddiy ALU operatsiyasida registrdan ikkita operand chiqariladi File, operatsiya bajariladi va natija yana Registrda saqlanadi File- bitta soat siklida.
32 ta registrdan oltitasi uchta ma'lumotlar bazasini adreslash uchun 16 bitli bilvosita manzil registrining ko'rsatgichi sifatida ishlatilishi mumkin - bu manzilni samarali hisoblash imkonini beradi. Ushbu manzil ko'rsatgichlaridan biri Flash dasturi xotirasida jadvallarni qidirish uchun manzil ko'rsatgichi sifatida ham ishlatilishi mumkin. Ushbu qo'shilgan funktsiya registrlari 16-bitli X-, Y- va Z-registrlar bo'lib, keyinchalik ushbu bo'limda tasvirlangan.
ALU registrlar orasidagi yoki doimiy va registr o'rtasidagi arifmetik va mantiqiy operatsiyalarni qo'llab-quvvatlaydi. Yagona registr operatsiyalari ALUda ham bajarilishi mumkin. Arifmetik operatsiyadan so'ng, operatsiya natijalari to'g'risidagi ma'lumotlarni aks ettirish uchun Status reestri yangilanadi.
Dastur oqimi shartli va shartsiz o'tish va qo'ng'iroq qilish bo'yicha ko'rsatmalar bilan ta'minlanadi, ular butun manzil maydoniga bevosita murojaat qilish imkoniyatiga ega. Ko'pgina AVR ko'rsatmalarida bitta 16 bitli so'z formati mavjud, ammo 32 bitli ko'rsatmalar ham mavjud.
Uzilishlar va subroutine qo'ng'iroqlari paytida, Stack-da qaytariladigan manzil Program Counter (PC) saqlanadi. Stek umumiy SRAM ma'lumotlariga samarali ravishda joylashtirilgan va natijada Stack hajmi faqat umumiy SRAM hajmi va SRAMdan foydalanish bilan cheklangan. Barcha foydalanuvchi dasturlari SPni "Reset" dasturida ishga tushirishi kerak (sub-routines yoki interruptlar bajarilishidan oldin). Stack Pointer (SP) kirish / chiqish sohasida o'qish / yozish uchun qulaydir. SRAM ma'lumotlariga osongina AVR arxitekturasida qo'llab-quvvatlanadigan besh xil manzillash rejimlari orqali kirish mumkin.
AVR arxitekturasidagi xotira bo'shliqlari barchasi chiziqli va muntazam xotira xaritalaridir.
Moslashuvchan uzilish moduli, vaziyatni ro'yxatga olish tizimida qo'shimcha Global Interrupt Enable biti bilan I / O maydonida boshqarish registrlariga ega. Barcha uzilishlar Interrupt Vector jadvalida alohida Interrupt vektoriga ega. Interruptlar "Interrupt Vector" pozitsiyasiga muvofiq ustuvor ahamiyatga ega. Interrupt Vector manzili qancha past bo'lsa, ustuvorlik shuncha yuqori bo'ladi.
I/U xotira maydonida boshqaruv registrlari, SPI va boshqa kirish -chiqish funktsiyalari sifatida CPU periferik funktsiyalari uchun 64 manzil mavjud. Kiritish-chiqish xotirasiga to'g'ridan-to'g'ri yoki Ro'yxatdan o'tgandan keyin Ma'lumotlar maydoni joylashuvi sifatida kirish mumkin File, 0x20 - 0x5F.
ALU - arifmetik mantiqiy birlik
Yuqori mahsuldor AVR ALU barcha 32 umumiy ishlaydigan registrlar bilan bevosita aloqada ishlaydi. Bitta soat tsikli ichida umumiy maqsadli registrlar orasidagi yoki registr bilan darhol ishlaydigan arifmetik amallar bajariladi. ALU operatsiyalari uchta asosiy toifaga bo'lingan - arifmetik, mantiqiy va bit-funktsiyalar. Arxitekturaning ba'zi bir dasturlari, shuningdek imzolangan / imzosiz ko'paytirishni va kasr formatini qo'llab-quvvatlaydigan kuchli multiplikatorni taqdim etadi. Batafsil tavsif uchun "Ko'rsatmalar to'plami" bo'limiga qarang.
Holat registri
Vaziyatlar registri eng so'nggi bajarilgan arifmetik ko'rsatmalar natijasi to'g'risidagi ma'lumotlarni o'z ichiga oladi. Ushbu ma'lumot shartli operatsiyalarni bajarish uchun dastur oqimini o'zgartirish uchun ishlatilishi mumkin. Shuni esda tutingki, Status registri barcha ALU operatsiyalaridan so'ng ko'rsatmalar to'plamida ko'rsatilgandek yangilanadi. Bu ko'p hollarda taqqoslash bo'yicha maxsus ko'rsatmalardan foydalanish zaruratini olib tashlaydi, natijada tezroq va ixcham kod paydo bo'ladi.
Vaziyatlar registri uzilish tartibiga kirishda avtomatik ravishda saqlanmaydi va uzilishdan qaytayotganda tiklanadi. Buni dasturiy ta'minot hal qilishi kerak.
SREG - AVR holati registri
AVR Status Registr - SREG - quyidagicha ta'riflanadi.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Global Interrupt yoqish
Interruptlarni yoqish uchun Global Interrupt Enable bitini o'rnatish kerak. Shaxsiy uzilishni yoqish nazorati keyinchalik alohida boshqaruv registrlarida amalga oshiriladi. Agar Global Interrupt Enable Registry o'chirilsa, interruptni yoqishning individual parametrlaridan mustaqil ravishda hech bir uzilish yoqilmaydi. I-bit uzilish sodir bo'lgandan keyin apparat tomonidan o'chiriladi va keyingi uzilishlarni yoqish uchun RETI buyrug'i bilan o'rnatiladi. I-bitni dastur tomonidan SEI va CLI yo'riqnomalari bilan o'rnatilishi va tozalashi mumkin, bu ko'rsatmalar to'plamida ko'rsatilgandek.
Bit 6 - T: Bit nusxasini saqlash
Bit nusxa ko'chirish bo'yicha ko'rsatmalar BLD (Bit LoaD) va BST (Bit Store) T-bitni operatsion bit uchun manba yoki manzil sifatida ishlatadi. Ro'yxatdan o'tish kitobidan bir oz File BST buyrug'i bilan T -ga nusxa ko'chirish mumkin, va T -dagi bitni Ro'yxatdan o'tish kitobidagi bitga ko'chirish mumkin. File BLD buyrug'i bilan.
Bit 5 - H: Yarim tashish bayrog'i
Half Carry Flag H ba'zi arifmetik operatsiyalarda Half Carry-ni bildiradi. Half Carry BCD arifmetikasida foydalidir. Batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Bit 4 – S: Sign Bit, S = N ⊕ V
S-bit har doim eksklyuziv yoki Salbiy bayroq N va Ikkala komplementning to'lib toshgan bayrog'i V o'rtasida bo'ladi, batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Bit 3 - V: Ikkala komplementning to'lib toshgan bayrog'i
Ikkala komplementning to'lib toshgan bayrog'i V ikkitaning qo'shimcha arifmetikasini qo'llab-quvvatlaydi. Batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Bit 2 - N: Salbiy bayroq
Salbiy bayroq N arifmetik yoki mantiqiy operatsiyadagi salbiy natijani bildiradi. Batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Bit 1 - Z: nol bayroq
Zero Flag Z arifmetik yoki mantiqiy ishda nolinchi natijani bildiradi. Batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Bit 0 - C: Bayroqni ko'taring
Carry Flag C arifmetik yoki mantiqiy operatsiyani anglatadi. Batafsil ma'lumot uchun "Ko'rsatmalar to'plamining tavsifi" ga qarang.
Umumiy maqsadli reestr File
Ro'yxatdan o'tish File AVR Enhanced RISC buyruqlar to'plami uchun optimallashtirilgan. Kerakli ishlash va moslashuvchanlikka erishish uchun Registr tomonidan quyidagi kirish/chiqish sxemalari qo'llab-quvvatlanadi File:
Bitta 8-bitli operand va bitta 8-bitli natija kiritish
Ikki 8-bitli chiqish operandlari va bitta 8-bitli natija kiritish
Ikki 8-bitli chiqish operandlari va bitta 16-bitli natija kiritish
Bitta 16-bitli operand va bitta 16-bitli natija kiritish
4-2-rasm protsessorda 32 ta umumiy maqsadli ishlaydigan registrlarning tuzilishini ko'rsatadi.
Ko'rsatilgandek 4-2-rasm, shuningdek, har bir registrga Ma'lumotlar xotirasi manzili beriladi, ularni to'g'ridan -to'g'ri foydalanuvchining Ma'lumotlar maydonining birinchi 32 ta joyiga xaritalash. SRAM joylashuvi sifatida jismoniy qo'llanilmagan bo'lsa-da, bu xotira tashkiloti registrlarga kirishda katta moslashuvchanlikni ta'minlaydi, chunki X-, Y- va Z-ko'rsatgich registrlari har qanday registrni indekslash uchun o'rnatilishi mumkin. file.Reestrda ishlaydigan ko'rsatmalarning aksariyati File barcha registrlarga to'g'ridan-to'g'ri kirish huquqiga ega va ularning aksariyati bir martalik tsikl ko'rsatmalari.
X-registr, Y-registr va Z-registr
R26..R31 registrlari umumiy foydalanish uchun ba'zi qo'shimcha funktsiyalarga ega. Ushbu registrlar ma'lumotlar maydonini bilvosita adreslash uchun 16-bitli manzil ko'rsatgichlari. Uchta bilvosita manzil registrlari X, Y va Z tavsiflanganidek aniqlanadi 4-3-rasm.
Turli xil adreslash rejimlarida ushbu manzil registrlari o'zgaruvchan siljish, avtomatik o'sish va avtomatik pasayish kabi funktsiyalarga ega (batafsil ma'lumot uchun ko'rsatmalar to'plamiga murojaat qiling).
Stack ko'rsatkichi
Stack asosan vaqtinchalik ma'lumotlarni saqlash, mahalliy o'zgaruvchilarni saqlash va uzilishlar va subroutine qo'ng'iroqlaridan so'ng qaytish manzillarini saqlash uchun ishlatiladi. Stack Pointer Registr har doim Stackning yuqori qismiga ishora qiladi. Shuni esda tutingki, Stack yuqori xotira joylaridan past xotira joylariga o'sish bilan amalga oshiriladi. Bu shuni anglatadiki, Stack PUSH buyrug'i Stack Pointer-ni kamaytiradi.
Stack Pointer Subroutine va Interrupt Stacks joylashgan ma'lumotlar SRAM Stack maydoniga ishora qiladi. SRAM ma'lumotlaridagi bu Stack maydoni dastur tomonidan har qanday subroutine qo'ng'iroqlari bajarilishidan yoki interpupmentlar yoqilishidan oldin aniqlanishi kerak. Stack Pointer 0x60 dan yuqori darajaga o'rnatilishi kerak. Ma'lumotlarni PUSH buyrug'i bilan Stakka surish paytida Stack Pointer bittaga kamayadi va qaytish manzili Stack-ga subroutine chaqiruvi yoki uzilish bilan bosilganda u ikkitaga kamayadi. Ma'lumotlar Stopdan POP buyrug'i bilan chiqarilganda Stack Pointer bittaga ko'paytiriladi va ma'lumotlar RET subroutine-dan qaytish yoki RETI interruptidan qaytish bilan Stack-dan chiqarilganda ikkiga ko'paytiriladi.
AVR Stack Pointer Kiritish-chiqarish maydonida ikkita 8-bitli registr sifatida amalga oshiriladi. Haqiqatan ham ishlatiladigan bitlar soni dasturga bog'liq. AVR arxitekturasining ba'zi ilovalaridagi ma'lumotlar maydoni shunchalik kichikki, faqat SPL kerak bo'ladi. Bunday holda, SPH reestri mavjud bo'lmaydi.
SPH va SPL - Stack Pointer registri
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
0x3E | SP15 | SP14 | SP13 | SP12 | SP11 | SP10 | SP9 | SP8 | SPH |
0x3D | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | SPL |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Boshlang'ich qiymat | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Ko'rsatmani bajarish muddati
Ushbu bo'lim ko'rsatmalarni bajarish uchun umumiy kirish vaqti tushunchalarini tavsiflaydi. AVR CPU protsessor soati clkCPU tomonidan boshqariladi, to'g'ridan-to'g'ri chip uchun tanlangan soat manbasidan ishlab chiqariladi. Ichki soat bo'linmasi ishlatilmaydi.
4-4-rasm Garvard arxitekturasi va tezkor kirish reestri tomonidan yoqilgan parallel buyruqlar va ko'rsatmalarni bajarilishini ko'rsatadi File tushuncha. Bu har MGts uchun 1 MIPS gacha bo'lgan har bir xarajat uchun funktsiyalar, har bir soat uchun funktsiyalar va quvvat bloklari uchun mos keladigan yagona natijalarga ega bo'lgan asosiy quvur liniyasi kontseptsiyasi.
4-5-rasm. Yagona siklli ALU ishlashi
Qayta tiklash va ishlov berishni to'xtatish
AVR bir necha xil uzilish manbalarini taqdim etadi. Ushbu uzilishlar va "Reset Vector" ning alohida-alohida dastur xotirasida har birida alohida Program Vector mavjud. Barcha uzilishlarga individual faollashtirish bitlari beriladi, ular uzilishni ta'minlash uchun Status Ro'yxatdan o'tishidagi Global Interrupt Enable bit bilan birga mantiqiy yozilishi kerak.
Dastur xotirasidagi eng past manzillar sukut bo'yicha Reset va Interrupt Vektorlari sifatida belgilanadi. Vektorlarning to'liq ro'yxati ko'rsatilgan 48-betdagi "uzilishlar". Ro'yxat, shuningdek, turli xil uzilishlarning ustuvorlik darajasini belgilaydi. Manzil qancha past bo'lsa, shuncha ustuvor darajadir. RESET eng yuqori ustuvorlikka ega, keyin esa INT0 - tashqi uzilish talabi 0.
Qachonki uzilish bo'lsa, Global Interrupt Enable I-bit o'chiriladi va barcha uzilishlar o'chiriladi. Ichki uzilishlarni ta'minlash uchun foydalanuvchi dasturiy ta'minot mantiqni I-bitga yozishi mumkin. Keyin barcha yoqilgan uzilishlar joriy uzilish tartibini to'xtatishi mumkin. I-bit avtomatik ravishda "Interrupt from Return" buyrug'i - RETI bajarilganda o'rnatiladi.
Uzilishlarning asosan ikki turi mavjud. Birinchi tur Interrupt bayrog'ini o'rnatadigan voqea tomonidan qo'zg'atiladi. Ushbu uzilishlar uchun dastur hisoblagichi uzilishlar bilan ishlash tartibini bajarish uchun haqiqiy Interrupt Vector-ga vektorlanadi va qo'shimcha mos keladigan Interrupt Flag-ni tozalaydi. Tugatish bayroqlarini tozalash uchun bayroq biti holatiga (lariga) mantiqiy yozish orqali ham tozalash mumkin. Agar tegishli uzilishni yoqish biti o'chirilayotganda uzilish holati yuzaga kelsa, uzilish yoqilguncha yoki bayroq dasturiy ta'minot yordamida o'chirilguncha Interrupt Flag o'rnatiladi va eslab qolinadi. Xuddi shunday, agar Global Interrupt Enable biti o'chirilayotganda bir yoki bir nechta uzilish shartlari ro'y bersa, tegishli Interrupt Flag (lar) o'rnatiladi va Global Interrupt Enable bit o'rnatilguncha eslab qolinadi va keyin ustuvorlik tartibida bajariladi.
Ikkinchi turdagi uzilishlar uzilish sharti mavjud bo'lgunga qadar tetiklashadi. Ushbu uzilishlar, albatta, uzilish bayroqlariga ega emas. Agar uzilish yoqilguncha uzilish holati yo'qolsa, uzilish ishga tushirilmaydi.
AVR uzilishdan chiqqanda har doim asosiy dasturga qaytadi va kutilayotgan uzilishlar xizmatidan oldin yana bitta ko'rsatmani bajaradi.
Shuni esda tutingki, vaziyatni ro'yxatga olish avtomatik ravishda interrupt rejimiga kiritilganda saqlanmaydi va tartibdan qaytayotganda tiklanmaydi. Buni dasturiy ta'minot bilan hal qilish kerak.
To'xtatishni o'chirish uchun CLI buyrug'idan foydalanilganda, uzilishlar darhol o'chiriladi. CLI buyrug'i bilan bir vaqtda bo'lsa ham, CLI buyrug'idan keyin hech qanday uzilish bajarilmaydi. Quyidagi masalanample bu vaqtni EEPROM yozish ketma -ketligida uzilishlarni oldini olish uchun qanday ishlatilishini ko'rsatadi.
O'rnatish kodi, masalanample |
r16 da, SREG ; SREG qiymatini saqlang
cli; vaqtli ketma-ketlikda uzilishlarni o'chiring sbi EECR, EEMPE; EEPROM yozishni boshlang sbi EECR, EEPE SREG tashqari, r16 ; SREG qiymatini tiklash (I-bit) |
C kodiample |
char cSREG;
cSREG = SREG; /* SREG qiymatini saqlash */ /* vaqtli ketma-ketlikda uzilishlarni o'chiring */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* SREG qiymatini tiklash (I-bit) */ |
Uzilishlarni yoqish uchun SEI buyrug'idan foydalanganda, SEIdan keyingi ko'rsatma, bu oldingi ko'rsatilgandek, har qanday kutish uzilishidan oldin bajariladi.ample.
O'rnatish kodi, masalanample |
sei; Global uzilishni yoqishni o'rnating
uxlash; uyquga kiring, uzilishni kuting ; eslatma: har qanday kutishdan oldin uxlab qoladi ; xalaqit (lar) |
C kodiample |
_SEI(); /* Global uzilishni yoqish */
_SLEEP(); /* uyquga kiring, uzilishni kuting */ / * eslatma: kutilayotgan uzilish (lar) dan oldin uyqu holatiga kiradi * / |
Javob berish vaqtini to'xtatish
Barcha yoqilgan AVR uzilishlari uchun uzilishning bajarilishi javobi kamida to'rt soatlik tsiklga teng. To'rt soatlik tsikldan so'ng, uzilishlar bilan ishlashning haqiqiy tartibi uchun Program vektor manzili bajariladi. Ushbu to'rt soatlik tsikl davomida Dastur hisoblagichi Stekka suriladi. Vektor odatda uzilish tartibiga o'tishdir va bu sakrash uchta soat tsiklini oladi. Agar ko'p tsiklli buyruqni bajarish paytida uzilish yuzaga kelsa, bu ko'rsatma uzilish xizmatidan oldin bajariladi. Agar MCU uyqu holatida bo'lsa, uzilish sodir bo'lsa, uzilishni bajarishga javob berish vaqti to'rt soat tsikliga ko'payadi. Ushbu o'sish tanlangan uyqu rejimidan boshlash vaqtiga qo'shimcha ravishda keladi.
To'satdan ishlov berish tartibidan qaytish to'rt soat tsiklini oladi. Ushbu to'rt soatlik tsikl davomida Dastur hisoblagichi (ikki bayt) Stekdan orqaga qaytariladi, Stack Pointer ikkiga ko'paytiriladi va SREG-da I-bit o'rnatiladi.
AVR xotiralari
Ushbu bo'limda ATtiny25 / 45/85 turli xil xotiralar tasvirlangan. AVR arxitekturasi ikkita asosiy xotira maydoniga ega: Ma'lumotlar xotirasi va Dastur xotirasi maydoni. Bundan tashqari, ATtiny25 / 45/85-da ma'lumotlarni saqlash uchun EEPROM Memory mavjud. Uchala xotira maydoni ham chiziqli va muntazamdir.
Tizimda qayta dasturlashtiriladigan Flash dasturi xotirasi
ATtiny25 / 45/85 dasturni saqlash uchun 2/4 / 8K baytli tizim ichidagi qayta dasturlashtiriladigan flesh xotirani o'z ichiga oladi. Barcha AVR ko'rsatmalarining kengligi 16 yoki 32 bit bo'lganligi sababli, Flash 1024/2048/4096 x 16 sifatida tashkil etilgan.
Flash xotirasi kamida 10,000 25 ta yozish / o'chirish tsikliga ega. ATtiny45 / 85/10 dastur hisoblagichi (PC) kengligi 11/12/1024 bit, shuning uchun dastur xotirasi 2048/4096/XNUMX manziliga murojaat qilinadi. “Xotira dasturi- ming ”147-betida SPI pinlari yordamida Flash ma'lumotlarini ketma-ket yuklab olish bo'yicha batafsil tavsifni o'z ichiga oladi.
Doimiy jadvallarni Dastur xotirasining butun manzil maydonida ajratish mumkin (LPM - Load Program xotirasi ko'rsatmalarining tavsifiga qarang).
5-1-rasm. Dastur xotira xaritasi
SRAM ma'lumotlar xotirasi
5-2-rasm ATtiny25 / 45/85 SRAM xotirasi qanday tashkil etilganligini ko'rsatadi.
Ma'lumotlar xotirasining pastki 224/352/607 joylari ham Registrga ham murojaat qiladi File, kirish -chiqish xotirasi va ichki ma'lumotlar SRAM. Dastlabki 32 ta manzil reestrga murojaat qiladi File, keyingi 64 ta joylashish/chiqish standart xotirasi va oxirgi 128/256/512 joylar ichki ma'lumotlar SRAMga murojaat qiladi.
Ma'lumotlar xotirasi qopqog'ining beshta xilma-xil rejimi: To'g'ridan-to'g'ri, joy almashish bilan bilvosita, bilvosita, oldindan kamayish bilan to'g'ridan-to'g'ri va keyingi o'sish bilan bilvosita. Ro'yxatdan o'tish kitobida File, R26 dan R31 registrlarida bilvosita manzil ko'rsatgich registrlari mavjud.
To'g'ridan-to'g'ri manzil ma'lumotlar maydoniga to'g'ri keladi.
Ko'chirish bilan bilvosita rejim Y- yoki Z- registri tomonidan berilgan asosiy manzildan 63 ta manzilga etib boradi.
Avtomatik oldindan pasayish va o'sishdan keyin registrning bilvosita adreslash rejimlaridan foydalanganda, X, Y va Z manzil registrlari kamaytiriladi yoki ko'paytiriladi.
ATtiny32/64/128 formatidagi 256 ta umumiy maqsadli ishchi registrlar, 512 ta kirish -chiqish registrlari va 25/45/85 baytli ichki ma'lumotlar SRAM -ga ushbu manzil rejimlari orqali kirish mumkin. Ro'yxatdan o'tish File da tasvirlangan "Gen- Maqsadli reestr File"10 -betda.
5-2-rasm. Ma'lumotlar xotirasi xaritasi
Ma'lumotlar xotirasiga kirish Vaqtlar
Ushbu bo'lim ichki xotiraga kirish uchun umumiy kirish vaqti tushunchalarini tavsiflaydi. Ichki ma'lumotlarning SRAMga kirishi bo'limda tavsiflanganidek ikkita clkCPU siklida amalga oshiriladi 5-3-rasm.
5-3-rasm. Chipdagi ma'lumotlar SRAMga kirish tsikllari EEPROM ma'lumotlar xotirasi
ATtiny25 / 45/85 tarkibida 128/256/512 baytli ma'lumotlar EEPROM xotirasi mavjud. U bitta bayt o'qilishi va yozilishi mumkin bo'lgan alohida ma'lumotlar maydoni sifatida tashkil etilgan. EEPROM kamida 100,000 yozish / o'chirish tsikliga ega. EEPROM va protsessor o'rtasida kirish EEPROM manzil registrlari, EEPROM ma'lumotlar registri va EEPROM boshqaruv registri ko'rsatilgan holda quyidagicha tavsiflanadi. Tafsilotlar uchun qarang "Ketma-ket yuklab olish" 151-bet.
EEPROM o'qish / yozish uchun kirish
EEPROM kirish registrlariga kirish / chiqish maydonida kirish mumkin.
EEPROM uchun yozishga kirish vaqtlari berilgan 5-betdagi 1-21-jadval. Biroq, o'z-o'zidan vaqtni belgilash funktsiyasi foydalanuvchi dasturiy ta'minotiga keyingi bayt qachon yozilishi mumkinligini aniqlash imkonini beradi. Agar foydalanuvchi kodida EEPROMni yozuvchi ko'rsatmalar mavjud bo'lsa, ba'zi ehtiyot choralarini ko'rish kerak. Og'ir filtrlangan quvvat manbalarida VCC sekin ko'tarilishi yoki tushishi mumkin
Quvvatni yoqish/tushirish. Bu qurilmaning bir muddat vol voltida ishlashiga olib keladitage ishlatiladigan soat chastotasi uchun minimal sifatida belgilanganidan pastroq. Qarang 19-betdagi "EEPROM korruptsiyasini oldini olish" ushbu holatlarda qanday muammolarga duch kelmaslik haqida batafsil ma'lumot olish uchun.
EEPROMni bilmagan holda yozishining oldini olish uchun ma'lum bir yozish tartibiga rioya qilish kerak. Qarang “Atom Bayt dasturlash ”17-betida va 17-betdagi "Split bayt dasturlash" bu haqda batafsil ma'lumot olish uchun.
EEPROM o'qilganda, protsessor navbatdagi ko'rsatma bajarilishidan oldin to'rt soatlik tsiklga to'xtatiladi. EEPROM yozilganda, protsessor keyingi ko'rsatma bajarilishidan oldin ikki soatlik tsiklga to'xtatiladi.
Atom baytlarini dasturlash
Atom baytini dasturlashdan foydalanish eng oddiy rejimdir. EEPROM-ga bayt yozishda foydalanuvchi manzilni EEAR reestriga, ma'lumotlarni esa EEDR registriga yozishi kerak. Agar EEPMn bitlari nolga teng bo'lsa, EEPE yozish (EEMPE yozilgandan keyin to'rt tsikl ichida) o'chirish / yozish ishini boshlaydi. O'chirish va yozish tsikli ham bitta amalda bajariladi va dasturlashning umumiy vaqti berilgan 5-betdagi 1-21-jadval. EEPE biti o'chirish va yozish operatsiyalari tugamaguncha o'rnatiladi. Qurilma dasturlash bilan band bo'lganida, boshqa EEPROM operatsiyalarini bajarish mumkin emas.
Split bayt dasturlash
O'chirish va yozish davrini ikki xil operatsiyaga bo'lish mumkin. Agar tizim cheklangan vaqt uchun qisqa kirish vaqtini talab qilsa, bu foydali bo'lishi mumkin (odatda quvvat manbai voltage tushadi). Advan qilish uchun- tagUshbu usulda, yozish operatsiyasidan oldin yoziladigan joylar o'chirilgan bo'lishi kerak. O'chirish va yozish operatsiyalari bo'linib ketganligi sababli, tizim vaqt talab qiladigan operatsiyalarni bajarishga ruxsat berganida (odatda Quvvat yoqilgandan keyin) o'chirish operatsiyalarini bajarish mumkin.
Oʻchirish
Baytni o'chirish uchun manzilni EEAR-ga yozish kerak. Agar EEPMn bitlari 0b01 bo'lsa, EEPE-ni yozish (EEMPE yozilgandan keyin to'rt tsikl ichida) faqat o'chirish ishini boshlaydi (dasturlash vaqti berilgan 5-1-jadval 21-bet). EEPE biti o'chirish jarayoni tugamaguncha o'rnatilgan bo'lib qoladi. Qurilma dasturlash bilan band bo'lganida, boshqa EEPROM operatsiyalarini bajarish mumkin emas.
Yozing
Joyni yozish uchun foydalanuvchi manzilni EEAR-ga, ma'lumotlarni esa EEDR-ga yozishi kerak. Agar EEPMn bitlari 0b10 bo'lsa, EEPE-ni yozish (EEMPE yozilgandan keyin to'rt tsikl ichida) faqat yozish operatsiyasini boshlaydi (dasturlash vaqti berilgan 5-betdagi 1-21-jadval). EEPE bit yozish jarayoni tugamaguncha o'rnatilgan bo'lib qoladi. Yozishdan oldin yoziladigan joy o'chirilmagan bo'lsa, saqlangan ma'lumotlar yo'qolgan deb hisoblanishi kerak. Qurilma dasturlash bilan band bo'lganida, boshqa EEPROM operatsiyalarini bajarish mumkin emas.
Kalibrlangan osilator EEPROM kirish vaqtini belgilash uchun ishlatiladi. Osilator chastotasi tavsiflangan talablarga muvofiqligiga ishonch hosil qiling "OSCCAL - Osilatorni kalibrlash registri" 31-bet.
Quyidagi kod, masalanamples EEPROMni o'chirish, yozish yoki atom yozish uchun bitta yig'ilish va bitta C funktsiyasini ko'rsatadi. Sobiqampleslar uzilishlar nazorat qilinishini taxmin qiladilar (masalan, butun dunyo bo'ylab uzilishlarni o'chirib qo'yish orqali), bu funktsiyalar bajarilganda hech qanday uzilishlar bo'lmaydi.
O'rnatish kodi, masalanample |
EEPROM_yozish:
; Oldingi yozishni tugashini kuting sbic EECR, EEPE rjmp EEPROM_write ; Dasturlash rejimini o'rnating ldi r16, (0<<EEPM1)|(0<<EEPM0) EECR tashqari, r16 ; Manzil registrida manzilni o'rnating (r18: r17) EEARH chiqdi, r18 chiqish EEARL, r17 ; Ma'lumotlarni ro'yxatga olish uchun ma'lumotlarni yozing (r19) EEDR tashqari, r19 ; EEMPE-ga mantiqiy yozing sbi EECR, EEMPE ; EEPE-ni o'rnatish orqali eeprom yozishni boshlang sbi EECR, EEPE ret |
C kodiample |
void EEPROM_write(imzosiz ucAddress, imzosiz ucData char)
{ /* Oldingi yozish tugashini kuting */ while(EECR & (1< ; /* Dasturlash rejimini sozlash */ EECR = (0 < / * Manzil va ma'lumotlar registrlarini sozlash * / EEAR = ucAddress; EEDR = ucData; /* EEMPE ga mantiqiy birini yozing */ EECR | = (1 < / * EEPE * ni o'rnatish orqali eeprom yozishni boshlang. EECR | = (1 < } |
Keyingi kod, masalanamples EEPROMni o'qish uchun montaj va C funktsiyalarini ko'rsatadi. SobiqampO'ylaymanki, uzilishlar bu funktsiyalarni bajarishda hech qanday uzilishlar bo'lmasligi uchun boshqariladi.
O'rnatish kodi, masalanample |
EEPROM_ o'qish:
; Oldingi yozishni tugashini kuting sbic EECR, EEPE rjmp EEPROM_read ; Manzil registrida manzilni o'rnating (r18: r17) EEARH chiqdi, r18 chiqish EEARL, r17 ; EERE yozish orqali o'qishni boshlang sbi EECR, EERE ; Ma'lumotlar registridan ma'lumotlarni o'qing r16, EEDR da ret |
C kodiample |
unsigned char EEPROM_read (imzosiz belgi ucAddress)
{ / * Oldingi yozishni tugashini kuting * / esa (EECR & (1 < ; / * Manzil registrini o'rnating * / EEAR = ucAddress; /* EERE yozish orqali eepromni o'qishni boshlang */ EECR | = (1 < / * Ma'lumotlar registridan ma'lumotlarni qaytarish * / qaytish EEDR; } |
EEPROM korruptsiyasini oldini olish
VCC past bo'lgan davrda EEPROM ma'lumotlari buzilishi mumkin, chunki ta'minot hajmitage protsessor va EEPROMning to'g'ri ishlashi uchun juda past. Bu muammolar EEPROM -dan foydalanadigan taxta darajasidagi tizimlar bilan bir xil va bir xil dizayn echimlari qo'llanilishi kerak.
EEPROM ma'lumotlarining buzilishiga ikkita holat sabab bo'lishi mumkintage juda past. Birinchidan, EEPROMga muntazam yozish ketma -ketligi minimal hajmni talab qiladitage to'g'ri ishlashi. Ikkinchidan, protsessor o'zi ko'rsatmalarni noto'g'ri bajarishi mumkintage juda past.
EEPROM ma'lumotlarini buzilishining oldini olish uchun ushbu dizayn tavsiyalariga amal qiling:
Quvvat manbai etarli bo'lmaganda AVR RESET -ni faol (past) holatda saqlangtage. Buni ichki jigarrang detektorni (BOD) yoqish orqali amalga oshirish mumkin. Agar ichki BODni aniqlash darajasi mos kelmasa
zarur aniqlash darajasi, tashqi past VCC qayta o'rnatish himoya qilish davri foydalanish mumkin. Agar yozish jarayoni davom etayotganda qayta o'rnatish sodir bo'lsa, quvvat manbai voltage etarli.
Kirish-chiqarish xotirasi
ATtiny25 / 45/85 ning I / U bo'shliq ta'rifi ko'rsatilgan 200-betdagi "Ro'yxatdan o'tish haqida qisqacha ma'lumot".
Barcha ATtiny25 / 45/85 I / Os va atrof-muhit qurilmalari I / U bo'shliqqa joylashtirilgan. Barcha I / O joylariga LD / LDS / LDD va ST / STS / STD yo'riqnomalari orqali kirish mumkin, bu ma'lumotlar 32 umumiy ishlaydigan registrlar va I / U bo'shliqlari o'rtasida uzatiladi. 0x00 - 0x1F manzil oralig'idagi I / U registrlariga SBI va CBI ko'rsatmalaridan foydalanib to'g'ridan-to'g'ri bit kirish mumkin. Ushbu registrlarda bitta bitlarning qiymati SBIS va SBIC ko'rsatmalaridan foydalanib tekshirilishi mumkin. Qo'shimcha ma'lumot olish uchun ko'rsatmalar to'plami bo'limiga murojaat qiling. Kiritish-chiqarishning o'ziga xos IN va OUT buyruqlaridan foydalanganda 0x00 - 0x3F kirish-chiqish manzillaridan foydalanish kerak. LD va ST ko'rsatmalaridan foydalangan holda kirish-chiqarish registrlarini ma'lumotlar maydoni sifatida murojaat qilishda ushbu manzillarga 0x20 qo'shilishi kerak.
Kelajakdagi qurilmalar bilan mos kelish uchun, agar ularga kirish imkoni bo'lsa, ajratilgan bitlar nolga yozilishi kerak. Zaxiralangan kiritish-chiqarish xotirasi manzillari hech qachon yozilmasligi kerak.
Status bayroqlarining ba'zilari ularga mantiqiy belgini yozish orqali o'chiriladi. E'tibor bering, CBI va SBI ko'rsatmalari faqat belgilangan bitda ishlaydi va shuning uchun bunday holat bayroqlarini o'z ichiga olgan registrlarda ishlatilishi mumkin. CBI va SBI ko'rsatmalari faqat 0x00 dan 0x1F registrlari bilan ishlaydi.
Kirish-chiqarish va atrof-muhitni boshqarish registrlari keyingi bo'limlarda tushuntirilgan.
Ro'yxatdan o'tish tavsifi
EEARH - EEPROM manzillarni ro'yxatdan o'tkazish
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EEAR8 | ERAK |
O'qish/Yozish | R | R | R | R | R | R | R | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bitlar 7: 1 - Res: Zaxiralangan bitlar
Ushbu bitlar kelajakda foydalanish uchun ajratilgan va har doim nol sifatida o'qiladi.
Bitlar 0 - EEAR8: EEPROM manzili
Bu ATtiny85-ning eng muhim EEPROM manzil bitidir. EEPROM kamroq bo'lgan qurilmalarda, ya'ni ATtiny25 / ATtiny45, bu bit saqlanib qoladi va har doim nolga teng bo'ladi. EEPROM Address Register-ning (EEAR) boshlang'ich qiymati aniqlanmagan va shuning uchun EEPROM-ga kirishdan oldin tegishli qiymat yozilishi kerak.
EEARL - EEPROM manzillarni ro'yxatdan o'tkazish
Bit
0x1E | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | ERAK |
Orqa / Yozing | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | X | X | X | X | X | X | X | X |
Bit 7 - EEAR7: EEPROM manzili
Bu ATtiny45-ning eng muhim EEPROM manzil bitidir. EEPROM kamroq bo'lgan, ya'ni ATtiny25 bo'lgan qurilmalarda bu bit saqlanib qoladi va har doim nolga teng bo'ladi. EEPROM manzil registrining (EEAR) boshlang'ich qiymati aniqlanmagan va shuning uchun EEPROMga kirishdan oldin tegishli qiymat yozilishi kerak.
Bits 6: 0 - EEAR [6: 0]: EEPROM Manzil
Bular EEPROM manzil registrining (past) bitlari. EEPROM ma'lumotlar baytlari 0… (128/256 / 512-1) oralig'ida chiziqli ravishda yo'naltirilgan. EEARning boshlang'ich qiymati aniqlanmagan va shuning uchun EEPROMga kirishdan oldin tegishli qiymat yozilishi kerak.
EEDR - EEPROM ma'lumotlar registri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EEPROM yozish jarayoni uchun EEDR reestri EEPROM-ga EEAR registri tomonidan berilgan manzilga yozilishi kerak bo'lgan ma'lumotlarni o'z ichiga oladi. EEPROM o'qish jarayoni uchun EEDR-dan o'qilgan ma'lumotlar mavjud
EEPROM tomonidan berilgan manzil bo'yicha EEAR.
5.5.4 EECR - EEPROM boshqaruv registri |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1c – | – | EEPM1 | EEPM0 | EERIE | EEMPE | EEPE | EERE | EECR | |
R R R / W ni o'qing / yozing | R/W | R/W | R/W | R/W | R/W | ||||
Dastlabki qiymati 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: zaxira qilingan bit
Ushbu bit kelajakda foydalanish uchun ajratilgan va har doim ATtiny0 / 25/45 da 85 sifatida o'qiladi. Kelajakdagi AVR qurilmalari bilan mos kelish uchun har doim bu bitni nolga yozing. O'qiganingizdan so'ng, bu narsani niqoblang.
Bit 6 - Res: zaxira qilingan bit
Ushbu bit ATtiny25 / 45/85-da saqlangan va har doim nol sifatida o'qiladi.
Bitlar 5: 4 - EEPM [1: 0]: EEPROM dasturlash rejimi bitlari
EEPROM Programming mode bit-ni belgilash, EEPE-ni yozishda qaysi dasturiy harakatni boshlashini belgilaydi. Bitta atom operatsiyasida ma'lumotlarni dasturlash (eski qiymatni o'chirish va yangi qiymatni dasturlash) yoki O'chirish va Yozish operatsiyalarini ikki xil amalda bo'lish mumkin. Turli xil rejimlarni dasturlash vaqtlari ko'rsatilgan 5-1-jadval. EEPE o'rnatilganda, EEPMn-ga har qanday yozish e'tiborga olinmaydi. Qayta tiklash paytida, EEPROM dasturlash bilan band bo'lmasa, EEPMn bitlari 0b00 ga o'rnatiladi.
5-1-jadval. EEPROM rejimi bitlari
EEPM1 | EEPM0 | Dasturlash vaqti | Operatsiya |
0 | 0 | 3.4 ms | O'chirish va bitta amalda yozish (Atom operatsiyasi) |
0 | 1 | 1.8 ms | Faqat o'chirish |
1 | 0 | 1.8 ms | Faqat yozing |
1 | 1 | – | Kelajakda foydalanish uchun saqlangan |
Bit 3 - EERIE: EEPROM Ready Interruptni yoqish
EREIE-ni bittasiga yozish, agar SREG-da I-bit o'rnatilgan bo'lsa, EEPROM Ready Interrupt-ni yoqadi. EERIE-ni nolga yozish to'xtatishni bekor qiladi. EEPROM Ready Interrupt doimiy xotirani dasturlash uchun tayyor bo'lganda doimiy uzilish hosil qiladi.
Bit 2 - EEMPE: EEPROM magistrlik dasturini yoqish
EEMPE biti EEPE-ni bittasiga yozish ta'sir qiladimi yoki yo'qligini aniqlaydi.
EEMPE o'rnatilganda, EEPE-ni to'rt soatlik tsikl ichida sozlash tanlangan manzil bo'yicha EEPROMni dasturlashtiradi. Agar EEMPE nolga teng bo'lsa, EEPE-ni sozlash hech qanday ta'sir qilmaydi. EEMPE dasturiy ta'minot bilan bittasiga yozilganda, apparat to'rt soatlik tsikldan so'ng bitni nolga tozalaydi.
Bit 1 - EEPE: EEPROM dasturini yoqish
EEPROM Program Enable Signal EEPE - bu EEPROM-ga dasturiy ta'minotni yoqish signalidir. EEPE yozilganda, EEPROM EEPMn bit sozlamalariga muvofiq dasturlashtiriladi. Mantiqiy EEPE-ga yozilishidan oldin EEMPE biti bittasiga yozilishi kerak, aks holda EEPROM yozuvi bo'lmaydi. Yozishga kirish vaqti tugagach, EEPE biti apparat tomonidan o'chiriladi. EEPE o'rnatilganda, protsessor keyingi buyruq bajarilishidan oldin ikki tsiklga to'xtatiladi.
Bit 0 - EERE: EEPROM Read Enable
EEPROM Read Enable Signal - EERE - bu EEPROM uchun o'qish strobi. EEAR registrida to'g'ri manzil o'rnatilganda, EEPROM o'qilishini boshlash uchun EERE bit bittasiga yozilishi kerak. EEPROM o'qish uchun ruxsat bitta ko'rsatmani oladi va so'ralgan ma'lumotlar darhol mavjud. EEPROM o'qilganda, protsessor keyingi ko'rsatma bajarilishidan oldin to'rt tsiklga to'xtatiladi. O'qish jarayonini boshlashdan oldin foydalanuvchi EEPE bitini so'rashi kerak. Agar yozish jarayoni davom etayotgan bo'lsa, na EEPROMni o'qish mumkin, na EEAR Registrini o'zgartirish.
Tizim soati va soat parametrlari
Soat tizimlari va ularni taqsimlash
CPU soati
CPU soati AVR yadrosining ishlashi bilan bog'liq bo'lgan tizim qismlariga yo'naltiriladi. Masalanampbunday modullarning umumiy maqsadi reestri File, Status Reyestri va Stack Pointerni ushlab turgan Ma'lumotlar xotirasi. CPU soatini to'xtatish yadroni umumiy operatsiyalar va hisoblarni bajarishiga to'sqinlik qiladi.
I / O Clock - clkI / O
I / U soati Timer / Counter kabi I / U modullarining aksariyati tomonidan qo'llaniladi. Kiritish-chiqarish soati External Interrupt moduli tomonidan ham qo'llaniladi, ammo ba'zi tashqi uzilishlar asenkron mantiq bilan aniqlanganiga e'tibor bering, bu esa kirish / chiqish soati to'xtatilgan taqdirda ham bunday uzilishlarni aniqlashga imkon beradi.
Flash Clock - clkFLASH
Flash soat Flash interfeysining ishlashini boshqaradi. Flash soat odatda CPU soati bilan bir vaqtda ishlaydi.
ADC Clock - clkADC
ADC maxsus soat domeni bilan ta'minlangan. Bu raqamli elektronlar tomonidan hosil bo'ladigan shovqinni kamaytirish uchun CPU va I / U soatlarini to'xtatishga imkon beradi. Bu aniqroq ADC konvertatsiya natijalarini beradi.
Tez periferik soat ishlab chiqarish uchun ichki PLL - clkPCK
ATtiny25 / 45/85-dagi ichki PLL soat chastotasini hosil qiladi, bu manba kirishidan 8 marta ko'paytiriladi. Odatiy bo'lib, PLL ichki, 8.0 MGts RC osilatorning chiqishini manba sifatida ishlatadi. Shu bilan bir qatorda, agar PLLCSR ning LSM biti o'rnatilgan bo'lsa, PLL RC osilatorining chiqishini ikkiga bo'lingan holda ishlatadi. Shunday qilib, PLL-ning chiqishi, tezkor periferik soat 64 MGts. Tez periferik soat yoki undan oldindan belgilangan soat Timer / Counter1 uchun soat manbai yoki tizim soati sifatida tanlanishi mumkin. Qarang 6-2-rasm. PLLCSR LSM o'rnatilganda tez periferik soat chastotasi ikkiga bo'linadi, natijada 32 MGts takt chastotasi paydo bo'ladi. E'tibor bering, agar PLLCLK tizim soati sifatida ishlatilsa, LSM o'rnatilmaydi.
6-2-rasm. PCK soat tizimi.
PLL RC osilatorida qulflangan va RC osilatorini OSCCAL registri orqali sozlash tezkor periferik soatni bir vaqtning o'zida sozlaydi. Biroq, RC osilatori 8 MGts dan yuqori chastotaga olib chiqilgan bo'lsa ham, tezkor periferik soat chastotasi 85 MGts ga to'yingan (eng yomon holat) va maksimal chastotada tebranib turaveradi. Shuni ta'kidlash kerakki, PLL bu holda endi RC osilatorli soat bilan qulflanmaydi. Shuning uchun PLL-ni to'g'ri ish oralig'ida ushlab turish uchun OSCCAL sozlamalarini 8 MGts dan yuqori chastotada qabul qilmaslik tavsiya etiladi.
Ichki PLL quyidagicha yoqiladi:
PLLCSR registridagi PLLE biti o'rnatilgan.
CKSEL sug'urtasi '0001' ga dasturlashtirilgan.
CKSEL sug'urtasi '0011' ga dasturlashtirilgan.
PLLCSR bit PLOCK PLL qulflanganda o'rnatiladi. Ichki RC osilator va PLL quvvatni o'chirish va kutish rejimida o'chiriladi.
ATtiny15 moslik rejimidagi ichki PLL
ATtiny25 / 45/85 ATtiny15 foydalanuvchilari uchun migratsiya qurilmasi bo'lganligi sababli, orqa tomonning mosligi uchun ATtiny15 moslik rejimi mavjud. ATtiny15 muvofiqligi rejimi CKSEL sigortalarini '0011' ga dasturlash orqali tanlanadi.
ATtiny15 moslik rejimida ichki RC osilatorning chastotasi 6.4 MGts gacha kalibrlanadi va PLL ning ko'payish koeffitsienti 4x ga o'rnatiladi. Qarang 6-3-rasm. Ushbu sozlamalar bilan soat tizimi ATtiny15-ga mos keladi va natijada tezkor periferik soat 25.6 MGts chastotaga ega (ATtiny15-da bo'lgani kabi).
6-3-rasm. ATtiny15 muvofiqlik rejimida PCK soat tizimi.
Soat manbalari
Qurilmada quyidagi soat manbasi parametrlari mavjud, ular quyida ko'rsatilganidek, Flash Fuse bitlari tomonidan tanlanadi. Tanlangan manbadan soat AVR soat generatoriga kiritiladi va tegishli modullarga yo'naltiriladi.
6-1-jadval. Qurilma soati parametrlari-ni tanlang
Qurilmani soatni sozlash opsiyasi | CKSEL[3:0](1) |
Tashqi soat (qarang 26-bet) | 0000 |
Yuqori chastotali PLL soati (qarang 26-bet) | 0001 |
Kalibrlangan ichki osilator (qarang 27-bet) | 0010(2) |
Kalibrlangan ichki osilator (qarang 27-bet) | 0011(3) |
128 kHz ichki osilator (qarang 28-bet) | 0100 |
Past chastotali kristalli osilator (qarang 29-bet) | 0110 |
Kristalli osilator / seramika rezonatori (qarang 29-bet) | 1000 – 1111 |
Zaxiralangan | 0101, 0111 |
Barcha sigortalar uchun "1" dasturlashtirilmagan, "0" esa dasturlashtirilgan degan ma'noni anglatadi.
Qurilma ushbu parametr tanlangan holda yuboriladi.
Bu ATtiny15 moslik rejimini tanlaydi, bu erda tizim soati to'rtga bo'linadi va natijada 1.6 MGts chastotasi bo'ladi. Qo'shimcha inormatsiya uchun qarang 27-betdagi "Kalibrlangan ichki osilator".
Har bir taktni tanlash uchun turli xil variantlar quyidagi bo'limlarda keltirilgan. CPU yoqilgandan so'ng, tanlangan soat manbai ishga tushirishni vaqtini belgilash uchun ishlatiladi va buyruq bajarilishi boshlanishidan oldin Osilatorning barqaror ishlashini ta'minlaydi. CPU qayta o'rnatilgandan so'ng, normal ishlashni boshlashdan oldin quvvatni barqaror darajaga etkazish uchun qo'shimcha kechikish mavjud. Watchdog osilatori ishga tushirish vaqtining ushbu real vaqt qismini belgilash uchun ishlatiladi. Har bir taym-aut uchun ishlatiladigan WDT osilator davrlarining soni ko'rsatilgan 6-2-jadval.
6-2-jadval. Watchdog osilator tsikllari soni
Vaqt tugashi | Tsikllar soni |
4 ms | 512 |
64 ms | 8K (8,192) |
Tashqi soat
Qurilmani tashqi soat manbasidan boshqarish uchun CLKI ko'rsatilgandek boshqarilishi kerak 6-4-rasm. Qurilmani tashqi soat bilan boshqarish uchun CKSEL sigortalari "00" ga dasturlashtirilgan bo'lishi kerak.
6-4-rasm. Tashqi soat drayveri konfiguratsiyasi
Ushbu soat manbai tanlanganida, ishga tushirish vaqtlari ko'rsatilganidek SUT sigortaları tomonidan belgilanadi 6-3-jadval.
6-3-jadval. Tashqi soatni tanlash uchun ishga tushirish vaqtlari
SUT[1:0] | O'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish | Tavsiya etilgan foydalanish |
00 | 6 CK | 14CK | BOD yoqilgan |
01 | 6 CK | 14CK + 4 milodiy | Tez ko'tarilgan quvvat |
10 | 6 CK | 14CK + 64 milodiy | Sekin ko'tarilayotgan kuch |
11 | Zaxiralangan |
Tashqi soatni qo'llashda MCU ning barqaror ishlashini ta'minlash uchun qo'llaniladigan soat chastotasidagi to'satdan o'zgarishlarning oldini olish talab qilinadi. Bir soat tsiklidan ikkinchisiga chastotasining 2% dan ortiq o'zgarishi oldindan aytib bo'lmaydigan xatti-harakatga olib kelishi mumkin. Soat chastotasidagi bunday o'zgarishlar paytida MCU Reset-da saqlanishini ta'minlash talab qilinadi.
Shuni esda tutingki, System Clock Presale yordamida barqaror ishlashni ta'minlagan holda ichki soat chastotasining ish vaqtidagi o'zgarishlarni amalga oshirish mumkin. Qarang 31-betdagi "System Clock Prescaler" tafsilotlar uchun.
Yuqori chastotali PLL soati
Periferik Timer / Counter64 va tizim soati manbai uchun RC osilatoriga qulflangan nominal ravishda 1 MGts soat tezligini ta'minlaydigan ichki PLL mavjud. Tizim soati manbai sifatida tanlanganida, CKSEL sigortalarini '0001' ga dasturlash orqali, u quyidagicha ko'rsatilgan to'rtga bo'linadi. 6-4-jadval.
6-4-jadval. Yuqori chastotali PLL soatining ish rejimlari
CKSEL[3:0] | Nominal chastota |
0001 | 16 MGts |
Ushbu soat manbai tanlanganida, ishga tushirish vaqtlari ko'rsatilganidek SUT sigortaları tomonidan belgilanadi 6-5-jadval.
6-5-jadval. Yuqori chastotali PLL soati uchun ishga tushirish vaqtlari
SUT[1:0] | Quvvatni o'chirishdan boshlash vaqti | Quvvatni yoqishdan keyin qo'shimcha kechikish (VCC = 5.0 V) | Tavsiya etilgan foydalanish |
00 | 14CK + 1K (1024) CK + 4 milodiy | 4 ms | BOD yoqilgan |
6-5-jadval. Yuqori chastotali PLL soati uchun ishga tushirish vaqtlari
SUT[1:0] | Quvvatni o'chirishdan boshlash vaqti | Quvvatni yoqishdan keyin qo'shimcha kechikish (VCC = 5.0 V) | Tavsiya etilgan foydalanish |
01 | 14CK + 16K (16384) CK + 4 milodiy | 4 ms | Tez ko'tarilgan quvvat |
10 | 14CK + 1K (1024) CK + 64 milodiy | 4 ms | Sekin ko'tarilayotgan kuch |
11 | 14CK + 16K (16384) CK + 64 milodiy | 4 ms | Sekin ko'tarilayotgan kuch |
Kalibrlangan ichki osilator
Odatiy bo'lib, Ichki RC osilatori taxminan 8.0 MGts soatni ta'minlaydi. Garchi jildtage va haroratga bog'liq, bu soat foydalanuvchi tomonidan juda aniq sozlanishi mumkin. Qarang "Kalibrlangan ichki RC osilatori hisobi - irqiylik "deb nomlangan 164-betda va 192-betdagi "Ichki osilator tezligi" batafsil ma'lumot uchun. Qurilma CKDIV8 sug'urtasi dasturlashtirilgan holda etkazib beriladi. Qarang 31-betdagi "System Clock Prescaler" batafsil ma'lumot uchun.
Ushbu soat CKSEL sigortalarını ko'rsatilgandek dasturlash orqali tizim soati sifatida tanlanishi mumkin 6-6-jadval sahifada
27. Agar tanlansa, u tashqi tarkibiy qismlarsiz ishlaydi. Qayta tiklash paytida apparat oldindan dasturlashtirilgan kalibrlash qiymatini OSCCAL registriga yuklaydi va shu bilan avtomatik ravishda RC osilatorini sozlaydi. Ushbu kalibrlashning aniqligi Factory kalibrlash sifatida ko'rsatilgan 21-betdagi 2-164-jadval.
SW dan OSCCAL registrini o'zgartirib, qarang "OSCCAL - Osilatorni kalibrlash registri" 31-bet, zavod kalibrlashidan ko'ra yuqori kalibrlash aniqligini olish mumkin. Ushbu kalibrlashning aniqligi foydalanuvchi kalibrlashi sifatida ko'rsatilgan 21-betdagi 2-164-jadval.
Ushbu osilator chip soati sifatida ishlatilganda, Watchdog osilatori hali ham Watchdog Timer va Reset Time-out uchun ishlatiladi. Oldindan dasturlashtirilgan kalibrlash qiymati haqida qo'shimcha ma'lumot olish uchun bo'limga qarang “Kali- bration Bytes ”150-betida.
Ichki osilatorni CKSEL sigortalarini "6.4" ga yozib, 0011 MGts soatni ta'minlash uchun sozlash mumkin. 6-6-jadval quyida. Ushbu parametr ATtiny15 moslik rejimi deb nomlanadi va ATtiny6.4 da bo'lgani kabi 15 MGts chastotali soat manbasini ta'minlash uchun mo'ljallangan. ATtiny15 moslik rejimida PLL Timer / Counter6.4 uchun 25.6 MGts periferik soat signalini yaratish uchun 1 MGts chastotada ishlaydigan ichki osilatordan foydalanadi (qarang “8-bitli taymer / hisoblagich1 ATtiny15 rejimi ”sahifasining 95-betida). E'tibor bering, ushbu ish rejimida 6.4 MGts soatlik signal har doim to'rtga bo'linib, 1.6 MGts chastotali soatni ta'minlaydi.
6-6-jadval. Ichki kalibrlangan RC osilatorining ishlash rejimlari
CKSEL[3:0] | Nominal chastota |
0010(1) | 8.0 MGts |
0011(2) | 6.4 MGts |
Qurilma ushbu parametr tanlangan holda yuboriladi.
Ushbu parametr ATtiny15 moslik rejimini tanlaydi, bu erda tizim soati to'rtga bo'linadi va natijada 1.6 MGts chastotasi paydo bo'ladi.
Soat manbai sifatida kalibrlangan 8 MGts ichki osilator tanlanganida, ishga tushirish vaqti SUT sigortalari tomonidan ko'rsatilganidek belgilanadi. 6-7-jadval quyida.
6-7-jadval. Ichki kalibrlangan RC osilator soati uchun ishga tushirish vaqtlari
SUT[1:0] | O'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish (VCC = 5.0V) | Tavsiya etilgan foydalanish |
00 | 6 CK | 14CK(1) | BOD yoqilgan |
01 | 6 CK | 14CK + 4 milodiy | Tez ko'tarilgan quvvat |
10(2) | 6 CK | 14CK + 64 milodiy | Sekin ko'tarilayotgan kuch |
11 | Zaxiralangan |
1. Agar RSTDISBL sug'urtasi dasturlashtirilgan bo'lsa, dasturlash rejimiga o'tishni ta'minlash uchun ushbu ishga tushirish vaqti 14CK + 4 ms ga oshiriladi.
2. Qurilma ushbu parametr tanlangan holda yuboriladi.
ATtiny15 moslik rejimida ishga tushirish vaqtlari ko'rsatilganidek SUT sigortaları tomonidan belgilanadi 6-8-jadval quyida.
6-8-jadval. Ichki kalibrlangan RC osilator soatini ishga tushirish vaqtlari (ATtiny15 rejimida)
SUT[1:0] | O'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish (VCC = 5.0V) | Tavsiya etilgan foydalanish |
00 | 6 CK | 14CK + 64 milodiy | |
01 | 6 CK | 14CK + 64 milodiy | |
10 | 6 CK | 14CK + 4 milodiy | |
11 | 1 CK | 14CK(1) |
Eslatma: Agar RSTDISBL sug'urtasi dasturlashtirilgan bo'lsa, dasturlash rejimiga kirishni ta'minlash uchun bu ishga tushirish vaqti 14CK + 4 ms ga oshiriladi.
Xulosa qilib, ATtiny15 moslik rejimi haqida ko'proq ma'lumotni bo'limlarda topish mumkin "Port B (PB5: PB0)" yoqilgan 2-bet, "ATtiny15 moslik rejimidagi ichki PLL" 24-bet, "ATtiny8 rejimida 1-bitli taymer / taymer15" yoqilgan 95-bet, 140-betdagi "DebugWIRE-ning cheklovlari", 150-betdagi "kalibrlash baytlari" va jadvalda "Soatni oldindan hisoblagich 33-betdagi ”-ni tanlang.
128 kHz ichki osilator
128 kHz ichki osilator 128 kHz soatni ta'minlovchi past quvvatli osilatordir. Chastota nominal 3V va 25 ° C da. Ushbu soatni CKSEL Sigortalarini “0100” ga dasturlash orqali tizim soati sifatida tanlash mumkin.
Ushbu soat manbai tanlanganida, ishga tushirish vaqtlari ko'rsatilganidek SUT sigortaları tomonidan belgilanadi 6-9-jadval.
6-9-jadval. 128 kHz ichki osilatorni ishga tushirish vaqti
SUT[1:0] | O'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish | Tavsiya etilgan foydalanish |
00 | 6 CK | 14CK(1) | BOD yoqilgan |
01 | 6 CK | 14CK + 4 milodiy | Tez ko'tarilgan quvvat |
10 | 6 CK | 14CK + 64 milodiy | Sekin ko'tarilayotgan kuch |
11 | Zaxiralangan |
Eslatma: Agar RSTDISBL sug'urtasi dasturlashtirilgan bo'lsa, dasturlash rejimiga kirishni ta'minlash uchun bu ishga tushirish vaqti 14CK + 4 ms ga oshiriladi.
Past chastotali kristalli osilator
Qurilmaning soat manbai sifatida 32.768 kHz chastotali soat kristalidan foydalanish uchun CKSEL sigortalarını '0110' ga o'rnatish orqali past chastotali kristalli osilatorni tanlash kerak. Kristall ko'rsatilganidek ulangan bo'lishi kerak 6-5-rasm. 32.768 kHz chastotali kalsal uchun mos sig'imni topish uchun ishlab chiqaruvchining ma'lumot jadvaliga murojaat qiling.
Ushbu osilator tanlanganida, ishga tushirish vaqtlari ko'rsatilganidek SUT sigortaları tomonidan belgilanadi 6-10-jadval.
6-10-jadval. Past chastotali kristall osilator soatini tanlash uchun ishga tushirish vaqtlari
SUT[1:0] | Quvvatni o'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish (VCC = 5.0V) | Tavsiya etilgan foydalanish |
00 | 1K (1024) CK(1) | 4 ms | Tez ko'tarilgan quvvat yoki BOD yoqilgan |
01 | 1K (1024) CK(1) | 64 ms | Sekin ko'tarilayotgan kuch |
10 | 32K (32768) CK | 64 ms | Ishga tushirishda barqaror chastota |
11 | Zaxiralangan |
Eslatma: Ushbu parametrlardan faqat ishga tushirish vaqtida chastota barqarorligi muhim bo'lmasa ishlatilishi kerak.
Past chastotali kristalli osilator ichki yuk sig'imini ta'minlaydi, qarang 6-11-jadval har bir TOSC pinida.
6-11-jadval. Past chastotali kristall osilatorning sig'imi
Qurilma | 32 kHz Osc. Turi | Qopqoq (Xtal1 / Tosc1) | Qopqoq (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Tizim Osc. | 16 pF | 6 pF |
Kristalli osilator / seramika rezonatori
XTAL1 va XTAL2 mos ravishda teskari yo'nalishdagi kirish va chiqishdir amprasmda ko'rsatilgandek, chipli osilator sifatida foydalanish uchun sozlanishi mumkin 6-5-rasm. Yoki kvarts kristalidan yoki seramika rezonatoridan foydalanish mumkin.
C1 va C2 har doim ham kristallar, ham rezonatorlar uchun teng bo'lishi kerak. Kondensatorlarning optimal qiymati ishlatiladigan kristall yoki rezonatorga, adashgan sig'im miqdoriga va atrof-muhitning elektromagnit shovqiniga bog'liq. Kristallar bilan ishlash uchun kondansatkichlarni tanlash bo'yicha ba'zi dastlabki ko'rsatmalar keltirilgan 6-12-jadval quyida. Keramika rezonatorlari uchun ishlab chiqaruvchi tomonidan berilgan kondansatör qiymatlaridan foydalanish kerak.
6-12-jadval. Kristalli osilatorning ishlash rejimlari
CKSEL[3:1] | Chastota diapazoni (MGts) | Kristallar bilan ishlash uchun C1 va C2 kondensatorlari uchun tavsiya etilgan diapazon (pF) |
100(1) | 0.4 – 0.9 | – |
101 | 0.9 – 3.0 | 12 – 22 |
110 | 3.0 – 8.0 | 12 – 22 |
111 | 8.0 - | 12 – 22 |
Eslatmalar: Ushbu parametr kristallar bilan ishlatilmasligi kerak, faqat seramika rezonatorlari bilan.
Osilator uch xil rejimda ishlashi mumkin, ularning har biri ma'lum bir chastota diapazoni uchun optimallashtirilgan. Ishlash tartibi CKSEL [3: 1] sigortalari tomonidan ko'rsatilganidek tanlanadi 6-12-jadval.
CKSEL0 sug'urtasi SUT bilan birga [1: 0] Sigortalar ishga tushirish vaqtini ko'rsatilgandek tanlaydi 6-13-jadval.
6-13-jadval. Kristal osilator soatini tanlash uchun ishga tushirish vaqtlari
CKSEL0 | SUT[1:0] | O'chirishdan boshlash vaqti | Qayta tiklashdan qo'shimcha kechikish | Tavsiya etilgan foydalanish |
0 | 00 | 258 CK(1) | 14CK + 4 milodiy | Seramika rezonatori, tez ko'tariladigan quvvat |
0 | 01 | 258 CK(1) | 14CK + 64 milodiy | Keramika rezonatori, asta-sekin ko'tarilayotgan quvvat |
0 | 10 | 1K (1024) CK(2) | 14CK | BOD yoqilgan keramik rezonator |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 milodiy | Seramika rezonatori, tez ko'tariladigan quvvat |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 milodiy | Keramika rezonatori, asta-sekin ko'tarilayotgan quvvat |
1 | 01 | 16K (16384) CK | 14CK | BOD yoqilgan kristalli osilator |
1 | 10 | 16K (16384) CK | 14CK + 4 milodiy | Kristalli osilator, tez ko'tariladigan quvvat |
1 | 11 | 16K (16384) CK | 14CK + 64 milodiy | Kristalli osilator, asta-sekin ko'tarilayotgan quvvat |
Eslatmalar
Ushbu parametrlar faqat qurilmaning maksimal chastotasiga yaqin ishlamagan paytda va faqat ishga tushirish vaqtida chastota barqarorligi dastur uchun muhim bo'lmagan hollarda ishlatilishi kerak. Ushbu variantlar kristallar uchun mos emas.
Ushbu parametrlar keramik rezonatorlar bilan ishlashga mo'ljallangan va ishga tushirishda chastotaning barqarorligini ta'minlaydi. Ular, shuningdek, qurilmaning maksimal chastotasiga yaqin ishlamay qolganda va agar ishga tushirish vaqtida chastotaning barqarorligi dastur uchun muhim bo'lmasa, kristallar bilan ishlatilishi mumkin.
Standart soat manbai
Qurilma CKSEL = “0010”, SUT = “10” va CKDIV8 bilan dasturlashtirilgan. Odatiy soat manbai sozlamasi- bu 8 MGts chastotasida ishlaydigan eng uzoq ishga tushirish vaqti va 8 soatlik dastlabki tizim soatining oldindan belgilanishi bilan ichki RC osilatori, bu esa 1.0 MGts tizim soatiga olib keladi. Ushbu standart sozlama barcha foydalanuvchilarga tizim ichidagi yoki yuqori voltli soatlardan kerakli soat manbai sozlamalarini o'rnatish imkoniyatini beraditage dasturchi.
Tizim soati uchun oldindan hisoblagich
ATtiny25 / 45/85 tizim soati ni belgilash orqali bo'linishi mumkin 32-betdagi "CLKPR - soatni oldindan o'lchov registri". Ushbu xususiyatdan ishlov berish quvvatiga bo'lgan talab past bo'lganda quvvat sarfini kamaytirish uchun foydalanish mumkin. Bu barcha soat manbalari opsiyalari bilan ishlatilishi mumkin va u protsessor va barcha sinxron tashqi qurilmalarning soat chastotasiga ta'sir qiladi. clkI/O, clkADC, clkCPU va clkFLASH ko'rsatilgandek omilga bo'linadi. 6-betdagi 15-33-jadval.
O'tish vaqti
Prescaler sozlamalari o'rtasida almashinish paytida System Clock Prescaler soat tizimida hech qanday nosozliklar yuz bermasligini va hech qanday oraliq chastotaning na oldingi parametrga mos keladigan soat chastotasidan, na yangi parametrga mos keladigan soat chastotasidan yuqori bo'lmasligini ta'minlaydi.
Prescaler-ni ishlatadigan dalgalanma hisoblagichi bo'linmagan soat chastotasida ishlaydi, bu protsessorning soat chastotasidan tezroq bo'lishi mumkin. Demak, preskalerning holatini aniqlash mumkin emas - hatto u o'qilishi mumkin bo'lsa ham va bir soat bo'linishidan boshqasiga o'tish uchun aniq vaqtni aniq taxmin qilish mumkin emas.
CLKPS qiymatlari yozilgan vaqtdan boshlab, yangi soat tezligi yoqilguncha T1 + T2 va T1 + 2 * T2 oralig'ida bo'ladi. Ushbu intervalda 2 ta faol soat chekkalari ishlab chiqariladi. Bu erda T1 oldingi soat davri, T2 esa yangi prescaler parametriga mos keladigan davr.
Soat chiqishi buferi
Qurilma CLKO pinidagi tizim soatini chiqarishi mumkin (XTAL2 pin sifatida ishlatilmaganda). Chiqishni yoqish uchun CKOUT sug'urtasi dasturlashtirilishi kerak. Ushbu rejim chip soati tizimdagi boshqa sxemalarni boshqarish uchun ishlatilganda mos keladi. Qayta tiklash paytida soat chiqmasligini va sug'urta dasturlashtirilganda I / U pinining normal ishlashi bekor qilinishini unutmang. Ichki RC osilator, WDT osilator, PLL va tashqi soat (CLKI) CLKO da soat chiqarilganda tanlanishi mumkin. CLKO-da soat chiqishi uchun kristalli osilatorlardan foydalanish mumkin emas (XTAL1, XTAL2). Agar System Clock Prescaler ishlatilsa, u ajratilgan tizim soati.
Ro'yxatdan o'tish tavsifi
OSCCAL - Osilatorni kalibrlash reestri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | KAL7 | KAL6 | KAL5 | KAL4 | KAL3 | KAL2 | KAL1 | KAL0 | OSCCAL |
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Bitlar 7: 0 - CAL [7: 0]: Osilatorni kalibrlash qiymati
Osilatorni kalibrlash registri osilator chastotasidan jarayon farqlarini olib tashlash uchun kalibrlangan ichki RC osilatorini kesish uchun ishlatiladi. Oldindan dasturlashtirilgan kalibrlash qiymati avtomatik ravishda ushbu registrga chipni qayta tiklash paytida yoziladi va fabrikada sozlangan chastotani beradi. 21-betdagi 2-164-jadval. Ilova dasturi osilator chastotasini o'zgartirish uchun ushbu registrni yozishi mumkin. Osilatorni belgilangan chastotalarda sozlash mumkin 21-betdagi 2-164-jadval. Ushbu diapazondan tashqarida kalibrlash kafolatlanmagan.
Shuni esda tutingki, ushbu osilator EEPROM va Flash-ga yozish uchun vaqt ajratish uchun ishlatiladi va bu yozish vaqtlari shunga mos ravishda ta'sir qiladi. Agar EEPROM yoki Flash yozilgan bo'lsa, 8.8 MGts dan yuqori darajaga sozlamang. Aks holda, EEPROM yoki Flash yozish ishlamay qolishi mumkin.
CAL7 biti osilatorning ishlash doirasini aniqlaydi. Ushbu bitni 0 ga o'rnatish eng past chastota diapazonini beradi, ushbu bitni 1 ga o'rnatish eng yuqori chastota diapazonini beradi. Ikkala chastota diapazoni bir-biriga to'g'ri keladi, boshqacha qilib aytganda OSCCAL = 0x7F sozlamalari OSCCAL = 0x80 ga nisbatan yuqori chastotani beradi.
CAL [6: 0] bitlari tanlangan diapazonda chastotani sozlash uchun ishlatiladi. 0x00 sozlamalari ushbu diapazondagi eng past chastotani va 0x7F sozlamalari diapazondagi eng yuqori chastotani beradi.
MCU ning barqaror ishlashini ta'minlash uchun kalibrlash qiymati ozgina o'zgarishi kerak. Bir tsikldan ikkinchisiga 2% dan ortiq chastotadagi o'zgarish oldindan aniqlanmagan xatti-harakatga olib kelishi mumkin. OSCCALdagi o'zgarishlar har bir kalibrlash uchun 0x20 dan oshmasligi kerak. Soat chastotasidagi bunday o'zgarishlar paytida MCU Reset-da saqlanishini ta'minlash talab qilinadi
6-14-jadval. Ichki RC osilator chastota diapazoni
OSCCAL qiymati | Nominal chastotaga nisbatan eng past chastotalar | Nominal chastotaga nisbatan eng yuqori chastota |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - soatni oldindan o'lchov registri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
O'qish/Yozish | R/W | R | R | R | R/W | R/W | R/W | R/W |
Dastlabki qiymat 0 0 0 0 Bit tavsifiga qarang
Bit 7 - CLKPCE: Clock Prescalerni almashtirishni yoqish
CLKPS bitlarini o'zgartirishni ta'minlash uchun CLKPCE bitini mantiqqa mos ravishda yozish kerak. CLKPCE biti faqat CLKPR-dagi boshqa bitlar bir vaqtning o'zida nolga yozilganda yangilanadi. CLKPCE yozilgandan keyin yoki CLKPS bitlari yozilgandan so'ng to'rt tsikl bilan apparat tomonidan tozalanadi. CLKPCE bitini ushbu vaqt oralig'ida qayta yozish na vaqt tugashini uzaytiradi va na CLKPCE bitini o'chiradi.
Bitlar 6: 4 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler tanlang Bits 3 - 0
Ushbu bitlar tanlangan soat manbai va ichki tizim soati o'rtasidagi bo'linish omilini aniqlaydi. Ushbu bitlarni dastur talablariga mos ravishda soat chastotasini o'zgartirish uchun ish vaqti yozilishi mumkin. Ajratuvchi asosiy soat kiritishni MCU ga ajratganda, bo'linish koeffitsientidan foydalanilganda barcha sinxron atrof-muhit birliklarining tezligi kamayadi. Bo'linish omillari berilgan 6-15-jadval.
Soat chastotasini bilmagan holda o'zgartirishlarini oldini olish uchun CLKPS bitlarini o'zgartirish uchun maxsus yozish tartibiga rioya qilish kerak:
Clock Prescaler Change Enable (CLKPCE) bitini bitta va CLKPR-dagi boshqa bitlarni nolga yozing.
To'rt tsikl ichida CLKPCE-ga nol yozishda CLKPS-ga kerakli qiymatni yozing.
Yozish protsedurasi to'xtatilmasligiga ishonch hosil qilish uchun preskaler sozlamasini o'zgartirganda uzilishlar o'chirilishi kerak.
CKDIV8 Fuse CLKPS bitlarining boshlang'ich qiymatini aniqlaydi. Agar CKDIV8 dasturlashtirilmagan bo'lsa, CLKPS bitlari "0000" ga qayta o'rnatiladi. Agar CKDIV8 dasturlashtirilgan bo'lsa, CLKPS bitlari "0011" ga qayta o'rnatiladi va ishga tushirilganda sakkiz bo'linish faktorini beradi. Agar tanlangan soat manbai joriy ish sharoitida qurilmaning maksimal chastotasidan yuqori chastotaga ega bo'lsa, bu xususiyatdan foydalanish kerak. Esda tutingki, CKDIV8 Sug'urta sozlamasidan qat'i nazar, CLKPS bitlariga istalgan qiymat yozilishi mumkin. Amaliy dasturiy ta'minot etarli bo'linish faktorini ta'minlashi kerak
tanlangan soat manbai hozirgi ish sharoitida qurilmaning maksimal chastotasidan yuqori chastotaga ega bo'lsa tanlanadi. Qurilma CKDIV8 sug'urtasi dasturlashtirilgan holda etkazib beriladi.
6-15-jadval. Soatni oldindan o'lchagichni tanlang
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Soat bo'limi omili |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 2 |
0 | 0 | 1 | 0 | 4 |
0 | 0 | 1 | 1 | 8 |
0 | 1 | 0 | 0 | 16 |
0 | 1 | 0 | 1 | 32 |
0 | 1 | 1 | 0 | 64 |
0 | 1 | 1 | 1 | 128 |
1 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 1 | Zaxiralangan |
1 | 0 | 1 | 0 | Zaxiralangan |
1 | 0 | 1 | 1 | Zaxiralangan |
1 | 1 | 0 | 0 | Zaxiralangan |
1 | 1 | 0 | 1 | Zaxiralangan |
1 | 1 | 1 | 0 | Zaxiralangan |
1 | 1 | 1 | 1 | Zaxiralangan |
Eslatma: Preskaler ATtiny15 moslik rejimida o'chirilgan va CLKPRga yozish ham, CKDIV8 sug'urtasini dasturlash ham tizim soatiga hech qanday ta'sir qilmaydi (bu har doim 1.6 MGts bo'ladi).
Quvvatni boshqarish va uyqu rejimlari
Yuqori samaradorlik va sanoatning etakchi kod samaradorligi AVR mikrokontrolderlarini kam quvvatli dasturlar uchun ideal tanlov qiladi. Bunga qo'shimcha ravishda, uyqu rejimlari dasturni MCU-da ishlatilmaydigan modullarni o'chirishga imkon beradi va shu bilan quvvatni tejaydi. AVR foydalanuvchiga quvvat sarfini dastur talablariga moslashtirishga imkon beradigan turli xil uyqu rejimlarini taqdim etadi.
Kutish rejimlari
6-betdagi 1-23-rasm ATtiny25 / 45/85 da turli xil soat tizimlari va ularning taqsimlanishini taqdim etadi. Shakl tegishli uyqu rejimini tanlashda yordam beradi. 7-1-jadval turli xil uyqu rejimlarini va ularning uyg'onish manbalarini ko'rsatadi.
7-1-jadval. Turli xil uyqu rejimlarida faol soat domenlari va uyg'onish manbalari
Faol soat domenlari | Osilatorlar | Uyg'onish manbalari | ||||||||||
Kutish rejimi | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Asosiy soat manbai yoqilgan | INT0 va pinni almashtirish | SPM / EEPROM
Tayyor |
USI boshlash sharti |
ADC | Boshqa I/U | Qo'riqchi it Interrupt |
Bo'sh | X | X | X | X | X | X | X | X | X | X | ||
ADC shovqinni kamaytirish | X | X | X(1) | X | X | X | X | |||||
Quvvatni o'chirish | X(1) | X | X |
Eslatma: INT0 uchun faqat darajadagi uzilish.
Uchta uyqu rejimidan birini kiritish uchun MCUCR-dagi SE biti mantiqqa mos ravishda yozilishi va SLEEP buyrug'i bajarilishi kerak. MCUCR Registratsiyasidagi SM [1: 0] bitlari SLEEP buyrug'i bilan qaysi uyqu rejimini (bo'sh vaqt, ADC shovqinni kamaytirish yoki o'chirish) yoqilishini tanlaydi. Qarang 7-2-jadval xulosa uchun.
Agar MCU uyqu holatida bo'lsa, yoqilgan uzilish sodir bo'lsa, MCU uyg'onadi. Keyin MCU ishga tushish vaqtidan tashqari to'rt tsiklga to'xtatiladi, uzilish tartibini bajaradi va SLEEPdan keyingi ko'rsatmalarni bajarishni davom ettiradi. Ro'yxatdan o'tish kitobining tarkibi File va qurilma uyqudan uyg'onganda SRAM o'zgarmaydi. Agar uyqu rejimida qayta o'rnatish sodir bo'lsa, MCU uyg'onadi va Reset vektoridan ishlaydi.
Eslatma: agar uyg'onish uchun darajadagi tetiklangan uzilish ishlatilsa, o'zgartirilgan daraja MCUni uyg'otish uchun (va MCU uzilishlar xizmati tartibiga kirishi uchun) bir muddat ushlab turilishi kerak. Qarang 49-betdagi "Tashqi uzilishlar" tafsilotlar uchun.
Kutish rejimi
SM[1:0] bitlari 00 ga yozilsa, SLEEP buyrug'i MCUni Kutish rejimiga o'tkazadi, protsessorni to'xtatadi, lekin Analog Comparator, ADC, USI, Timer/Counter, Watchdog va uzilishlar tizimiga ishlashni davom ettirishga imkon beradi. ovqatlanish. Ushbu uyqu rejimi asosan clkCPU va clkFLASH ni to'xtatib, boshqa soatlarning ishlashiga imkon beradi.
Kutish rejimida MCU tashqi qo'zg'atilgan uzilishlardan va Timer Overflow singari ichki uzilishlardan uyg'onishga imkon beradi. Agar analog taqqoslovchining uzilishidan uyg'onish talab qilinmasa, analog taqqoslagichni ACD bitini o'rnatib o'chirib qo'yish mumkin 120-betdagi "ACSR - analog taqqoslagichni boshqarish va holatni ro'yxatga olish". Bu kutish rejimida quvvat sarfini kamaytiradi. Agar ADC yoqilgan bo'lsa, ushbu rejim kiritilganda konvertatsiya avtomatik ravishda boshlanadi.
ADC shovqinni pasaytirish rejimi
SM[1:0] bitlari 01 ga yozilsa, SLEEP buyrug'i MCUni ADC shovqinni kamaytirish rejimiga o'tkazadi, protsessorni to'xtatadi, lekin ADC, tashqi uzilishlar va Watchdog (agar yoqilgan bo'lsa) ishlashni davom ettirishga imkon beradi. Ushbu uyqu rejimi clkI/O, clkCPU va clkFLASH-ni to'xtatib, boshqa soatlarning ishlashiga imkon beradi.
Bu ADC uchun shovqin muhitini yaxshilaydi va yuqori aniqlikdagi o'lchovlarni amalga oshirishga imkon beradi. Agar ADC yoqilgan bo'lsa, ushbu rejim kiritilganda konvertatsiya avtomatik ravishda boshlanadi. ADC konversiyasining to'liq uzilishidan tashqari, faqat tashqi holatga qaytarish, kuzatuvchini tiklash, jigarrang holatga qaytarish, SPM / EEPROM tayyor uzilish, INT0 da tashqi darajadagi uzilish yoki pinni almashtirish uzilishi MCUni ADC shovqinni kamaytirishdan uyg'otishi mumkin. rejimi.
O'chirish rejimi
SM [1: 0] bitlari 10 ga yozilganda, SLEEP buyrug'i MCUni o'chirish rejimiga o'tkazadi. Ushbu rejimda Osilator to'xtatiladi, tashqi uzilishlar paytida USI holatni aniqlashni boshlaydi va Watchdog ishlashni davom ettiradi (agar yoqilgan bo'lsa). Faqat tashqi Reset, Watchdog Reset, Brown-Out Reset, USI start holatining uzilishi, INT0 da tashqi darajadagi uzilish yoki pinni almashtirish uzilishi MCUni uyg'otishi mumkin. Ushbu uyqu rejimi barcha ishlab chiqarilgan soatlarni to'xtatib, faqat asenkron modullarning ishlashiga imkon beradi.
BOD dasturini o'chirib qo'yish
Brown-Detector (BOD) BODLEVEL sigortalari tomonidan yoqilganda (qarang 20-betdagi 4-148-jadval), BOD etkazib berish hajmini faol nazorat qilmoqdatage uyqu davrida. Ba'zi qurilmalarda Power-Down uyqu rejimida dasturiy ta'minotni o'chirish orqali quvvatni tejash mumkin. Uyqu rejimining energiya iste'moli BOD butun dunyo bo'ylab sigortalar bilan o'chirilgan vaqt bilan bir xil bo'ladi.
Agar BOD dasturiy ta'minot tomonidan o'chirilgan bo'lsa, BOD funktsiyasi uyqu rejimiga kirgandan so'ng darhol o'chiriladi. Uyqudan uyg'ongandan so'ng, BOD avtomatik ravishda qayta yoqiladi. Bu uyqu davrida VCC darajasi pasaygan taqdirda xavfsiz ishlashni ta'minlaydi.
BOD o'chirilgan bo'lsa, uxlash rejimidan uyg'onish vaqti RESET-dan uyg'onish bilan bir xil bo'ladi. Foydalanuvchi uyg'onish vaqtini qo'lda sozlashi kerak, bunda bandga mos yozuvlar boshlash vaqti bor va MCU kodni bajarishni davom ettirishdan oldin BOD to'g'ri ishlaydi. Jadvaldagi SUT [1: 0] va CKSEL [3: 0] sug'urta qismlarini ko'ring 149-betdagi "sug'urta kam bayt"
BODni o'chirib qo'yish MCU boshqaruv registrining BODS (BOD Sleep) biti tomonidan boshqariladi, qarang “MCUCR - MCU nazorati Ro'yxatdan o'ting »37-betida. Ushbu bitni bittasiga yozish Power-Down-da BOD-ni o'chiradi, nol yozish esa BOD-ni faol holatda ushlab turadi. Standart sozlama nolga teng, ya'ni BOD faol.
BODS bitiga yozish vaqtni ketma-ketligi va yoqish biti bilan boshqariladi, qarang “MCUCR - MCU Control Regis- ter ”37-betida.
Cheklovlar
BOD-ni o'chirib qo'yish funktsiyasi quyidagi qurilmalarda amalga oshirildi, faqat:
ATtiny25, E versiyasi va undan yangisi
ATtiny45, D versiyasi va undan yangisi
ATtiny85, C versiyasi va undan yangisi
Qayta ko'rib chiqishlar qurilma paketida belgilanadi va ularni quyidagicha joylashtirish mumkin:
8P3 va 8S2 paketlarining pastki tomoni
Paketning yuqori tomoni 20M1
Quvvatni kamaytirish reestri
Quvvatni kamaytirish registri (PRR), qarang "PRR - Quvvatni kamaytirish registri" 38-bet, soatni alohida tashqi qurilmalarga to'xtatish orqali quvvat sarfini kamaytirish usulini taqdim etadi. Periferiyaning hozirgi holati muzlatilgan va I / O registrlari o'qilishi yoki yozilishi mumkin emas. Periferiya tomonidan soatni to'xtatishda foydalanadigan resurslar ishg'ol qilinadigan bo'lib qoladi, shuning uchun periferik ko'p hollarda soatni to'xtatmasdan oldin o'chirib qo'yilishi kerak. PRR-da bitni tozalash orqali amalga oshiriladigan modulni uyg'otish modulni o'chirilishgacha bo'lgan holatga keltiradi.
Modulni o'chirish umumiy quvvat sarfini sezilarli darajada kamaytirish uchun Kutish rejimida va Faol rejimda ishlatilishi mumkin. Boshqa barcha uyqu rejimlarida soat allaqachon to'xtatilgan. Qarang "Kiritish-chiqarish modullarini etkazib berish oqimi" 177-bet masalanamples.
Quvvat sarfini minimallashtirish
AVR boshqariladigan tizimda quvvat sarfini minimallashtirishga harakat qilishda bir nechta muammolarni ko'rib chiqish kerak. Umuman olganda, uxlash rejimlaridan iloji boricha ko'proq foydalanish kerak va uxlash rejimini qurilmaning funktsiyalari imkon qadar kamroq ishlashi uchun tanlash kerak. Kerak bo'lmagan barcha funktsiyalar o'chirib qo'yilishi kerak. Xususan, eng kam quvvat sarfiga erishishda quyidagi modullar alohida e'tiborga muhtoj bo'lishi mumkin.
Analog-raqamli konvertor
Agar yoqilgan bo'lsa, ADC barcha uyqu rejimlarida yoqiladi. Quvvatni tejash uchun har qanday uyqu rejimiga o'tishdan oldin ADC o'chirib qo'yilishi kerak. ADC o'chirilganda va qayta yoqilganda, keyingi konversiya kengaytirilgan konversiya bo'ladi. Qarang 122-betdagi "Raqamli konvertorga analog" ADC ishlashi haqida batafsil ma'lumot olish uchun.
Analog taqqoslovchi
Kutish rejimiga o'tishda analog taqqoslagich ishlatilmasa o'chirib qo'yilishi kerak. ADC shovqinni kamaytirish rejimiga kirganda, analog taqqoslagichni o'chirib qo'yish kerak. Boshqa uyqu rejimlarida analog taqqoslagich avtomatik ravishda o'chiriladi. Ammo, agar analog taqqoslagich Ichki jilddan foydalanish uchun sozlangan bo'lsatage Kirish sifatida mos yozuvlar, analog taqqoslagich barcha uyqu rejimlarida o'chirilishi kerak. Aks holda, Ichki jildtage Uyqu rejimidan qat'i nazar, ma'lumotnoma yoqiladi. Ga murojaat qiling 119-betdagi "Analog taqqoslovchi" Analog taqqoslagichni sozlash haqida batafsil ma'lumot.
Jigarrang detektor
Agar dasturda "Brown-out Detector" kerak bo'lmasa, ushbu modulni o'chirib qo'yish kerak. Agar "Brown-out Detector" BODLEVEL sigortalari tomonidan yoqilgan bo'lsa, u barcha uyqu rejimlarida yoqiladi va shuning uchun har doim quvvat sarf qiladi. Chuqurroq uyqu rejimlarida bu umumiy iste'mol qilinadigan iste'molga sezilarli hissa qo'shadi. Qarang "Brown-out Detec- tion »41-betida va 35-betdagi "BOD dasturiy ta'minotini o'chirish" Brown-out Detector-ni qanday sozlash haqida batafsil ma'lumot.
Ichki jildtage Malumot
Ichki jildtage Brown-Out Detection, Analog Comparator yoki ADC kerak bo'lganda ma'lumotnoma yoqiladi. Agar ushbu modullar yuqoridagi bo'limlarda tasvirlanganidek o'chirilgan bo'lsa, ichki voltagelektron ma'lumotnoma o'chiriladi va u quvvat sarflamaydi. Qayta yoqilganda, foydalanuvchi chiqishdan oldin havolani ishga tushirishga ruxsat berishi kerak. Agar ma'lumotnoma uyqu rejimida saqlansa, chiqish darhol ishlatilishi mumkin. Ga murojaat qiling "Ichki jildtage Malumot ”42 -betda ishga tushirish vaqti haqida batafsil ma'lumot olish uchun.
Qo'riqchi taymer
Agar dasturda Watchdog Timer kerak bo'lmasa, ushbu modul o'chirilgan bo'lishi kerak. Agar Watchdog Timer yoqilgan bo'lsa, u barcha uyqu rejimlarida yoqiladi va shuning uchun har doim quvvat sarf qiladi. Chuqurroq uyqu rejimlarida bu umumiy iste'mol qilinadigan iste'molga sezilarli hissa qo'shadi. Qarang 42-betdagi "Qo'riqchi taymeri" Watchdog Timer-ni sozlash haqida batafsil ma'lumot.
Port pinlari
Kutish rejimiga kirganingizda, barcha port pinlari minimal quvvat ishlatish uchun sozlanishi kerak. Eng muhimi, hech qanday pin rezistiv yuklarni boshqarmasligini ta'minlashdir. Kirish/chiqarish soati (clkI/O) va ADC soati (clkADC) to'xtatilgan uyqu rejimlarida qurilmaning kirish buferlari o'chiriladi. Bu hech qanday quvvat sarflanmasligini ta'minlaydi
kerak bo'lmagan hollarda kirish mantig'i bilan. Ba'zi hollarda, kirish mantig'i uyg'onish sharoitlarini aniqlash uchun kerak va
keyin u yoqiladi. Bo'limga murojaat qiling "Raqamli kiritishni yoqish va uxlash rejimlari" 57-bet Qaysi pinlar yoqilganligi haqida ma'lumot olish uchun. Agar kirish buferi yoqilgan bo'lsa va kirish signali suzuvchi holatda qolsa yoki analog signal darajasi VCC/2 ga yaqin bo'lsa, kirish buferi ortiqcha quvvat sarflaydi.
Analog kirish pinlari uchun raqamli kirish buferi har doim o'chirilgan bo'lishi kerak. Kirish pinidagi VCC/2 ga yaqin analog signal darajasi faol rejimda ham sezilarli oqimga olib kelishi mumkin. Raqamli kirish buferlarini Raqamli kirishni o'chirish registriga (DIDR0) yozish orqali o'chirib qo'yish mumkin. ga murojaat qiling "DIDR0 - Raqamli kirishni o'chirib qo'yish Ro'yxatdan o'tish 0", 121-bet tafsilotlar uchun.
Ro'yxatdan o'tish tavsifi
MCUCR - MCU nazorat registri
MCU boshqaruv reestri quvvatni boshqarish uchun nazorat bitlarini o'z ichiga oladi.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
O'qish/Yozish | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD uyqusi
BOD-ni o'chirib qo'yish funktsiyasi faqat ba'zi qurilmalarda mavjud. Qarang 36-betdagi "cheklovlar".
Uyqu paytida BODni o'chirib qo'yish uchun (qarang 7-betdagi 1-34-jadvalBODS biti mantiqqa to'g'ri yozilishi kerak. Bu vaqt ketma-ketligi va MCUCR-da BODSE yoqish biti bilan boshqariladi. Birinchidan, BODS ham, BODSE ham bittaga o'rnatilishi kerak. Ikkinchidan, to'rt soat davomida BODS bitta, BODSE esa nolga o'rnatilishi kerak. BODS biti o'rnatilganidan keyin uch soatlik tsiklda faol bo'ladi. BODS faol uyqu holatida BODni o'chirish uchun uxlash bo'yicha ko'rsatma bajarilishi kerak. BODS biti uch soat aylanishidan so'ng avtomatik ravishda o'chiriladi.
Sleeping BOD qo'llanilmagan qurilmalarda bu bit ishlatilmaydi va har doim nolni o'qiydi.
5-bit - SE: uyquni yoqish
SLEEP buyrug'i bajarilganda MCU uyqu rejimiga kirishi uchun SE biti mantiqiy bitga yozilishi kerak. MCU uyqu rejimiga kirishiga yo'l qo'ymaslik uchun, agar dasturchining maqsadi bo'lmasa, SLEEP buyrug'i bajarilishidan oldin Sleep Enable (SE) bitini bittaga yozish va uyg'ongandan so'ng darhol tozalash tavsiya etiladi.
Bitlar 4: 3 - SM [1: 0]: Kutish rejimi 1 va 0 bitlarni tanlang
Ushbu bitlar ko'rsatilgandek uchta mavjud uyqu rejimini tanlang 7-2-jadval.
7-2-jadval. Kutish rejimini tanlang
SM1 | SM0 | Kutish rejimi |
0 | 0 | Bo'sh |
0 | 1 | ADC shovqinni kamaytirish |
1 | 0 | Quvvatni o'chirish |
1 | 1 | Zaxiralangan |
Bit 2 - BODSE: BOD uyqusini yoqish
BOD-ni o'chirib qo'yish funktsiyasi faqat ba'zi qurilmalarda mavjud. Qarang 36-betdagi "cheklovlar".
BODSE biti BODS bit tavsifida aytib o'tilganidek, BODS boshqaruv bitini o'rnatishga imkon beradi. BOD-ni o'chirib qo'yish vaqti belgilangan ketma-ketlik bilan boshqariladi.
Ushbu bit BOD dasturini o'chirib qo'ygan qurilmalarda ishlatilmaydi va ushbu qurilmalarda nolga teng o'qiladi.
PRR - Quvvatni pasaytirish reestri
Quvvatni kamaytirish reestri periferik soat signallarini o'chirishga imkon berish orqali quvvat sarfini kamaytirish usulini taqdim etadi.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
O'qish/Yozish | R | R | R | R | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlar 7: 4 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bit 3 - PRTIM1: quvvatni kamaytirish taymeri / hisoblagich1
Ushbu bitga mantiqni yozish Timer / Counter1 modulini o'chiradi. Taymer / hisoblagich1 yoqilganda, ishlash o'chirilgunga qadar davom etadi.
Bit 2 - PRTIM0: quvvatni kamaytirish taymeri / hisoblagich0
Ushbu bitga mantiqni yozish Timer / Counter0 modulini o'chiradi. Taymer / hisoblagich0 yoqilganda, ishlash o'chirilgunga qadar davom etadi.
Bit 1 - PRUSI: Quvvatni kamaytirish USI
Ushbu bitga mantiqni yozish modulga soatni to'xtatish orqali USIni o'chiradi. USIni yana uyg'otganda, to'g'ri ishlashini ta'minlash uchun USI qayta ishga tushirilishi kerak.
Bit 0 - PRADC: quvvatni kamaytirish ADC
Ushbu bitga mantiqni yozish ADCni o'chiradi. O'chirishdan oldin ADC o'chirib qo'yilishi kerak. E'tibor bering, ADC soati analog taqqoslovchining ba'zi qismlari tomonidan ham qo'llaniladi, ya'ni bu bit yuqori bo'lganida analog taqqoslovchidan foydalanish mumkin emas.
Tizimni boshqarish va tiklash
AVR-ni qayta tiklash
Qayta tiklash paytida barcha I / U registrlari dastlabki qiymatlariga o'rnatiladi va dastur Reset Vector-dan bajarilishini boshlaydi. Reset vektorida joylashtirilgan ko'rsatma RJMP - Relative Jump - qayta tiklash tartibiga ko'rsatma bo'lishi kerak. Agar dastur hech qachon uzilish manbasini yoqmasa, "Interrupt vektorlari" ishlatilmaydi va ushbu joylarda odatdagi dastur kodlari joylashtirilishi mumkin. O'chirish sxemasi 8-1-rasm asl holatini tiklash mantig'ini ko'rsatadi. Qayta tiklash sxemasining elektr parametrlari keltirilgan "Tizim va tiklash xususiyatlari" 165 bet.
Shakl 8-1 Mantiqni tiklash
Qayta tiklash manbai faol bo'lganda AVR ning I / U portlari darhol dastlabki holatiga qaytariladi. Buning uchun biron bir soat manbai ishlashini talab qilmaydi.
Qayta tiklash manbalari faol bo'lmaganidan so'ng, ichki sozlamalarni uzaytiradigan kechikish hisoblagichi chaqiriladi. Bu normal ishlash boshlanishidan oldin quvvatni barqaror darajaga etkazishga imkon beradi. Kechiktirish hisoblagichining vaqt tugashi muddati foydalanuvchi tomonidan SUT va CKSEL sigortalari orqali belgilanadi. Kechikish davri uchun turli xil tanlovlar taqdim etilgan “Soat Manbalar ”mavzusining 25-betida.
Resurslarni tiklash
ATtiny25 / 45/85-da qayta tiklashning to'rtta manbasi mavjud:
Quvvatni qayta o'rnatish. Ta'minot hajmi ko'tarilganda MCU qayta o'rnatiladitage quvvatni qayta o'rnatish chegarasidan (VPOT) past.
Tashqi tiklash. RESET pinida minimal daraja puls uzunligidan uzoqroq bo'lganida MCU tiklanadi.
Qo'riqchi itni tiklash. Watchdog Timer muddati tugagach va Watchdog yoqilganda MCU tiklanadi.
Jigarrang rangni tiklash. Ta'minot hajmi ko'tarilganda MCU qayta o'rnatiladitage VCC Brown-out Reset chegarasidan (VBOT) past va Brown-out Detektori yoqilgan.
Quvvatni qayta tiklash
Quvvatni qayta tiklash (POR) zarbasi chipni aniqlash sxemasi orqali hosil bo'ladi. Aniqlanish darajasi "Sys- tem va Reset Reset Features ”(165-bet) sahifasida. VCC aniqlash darajasidan past bo'lganda POR faollashadi. POR sxemasi ishga tushirishni tiklashni ishga tushirish uchun, shuningdek, ta'minot hajmidagi nosozlikni aniqlash uchun ishlatilishi mumkin.tage.
Quvvatni qayta o'rnatish (POR) sxemasi qurilmaning qayta yoqilishini ta'minlaydi. Quvvatni qayta o'rnatish chegarasiga erishishtage kechikish hisoblagichini chaqiradi, bu VCC ko'tarilganidan keyin qurilmaning RESET rejimida qancha vaqt saqlanishini aniqlaydi. VCC aniqlash darajasidan pastga tushganda, RESET signali hech qanday kechikishlarsiz yana faollashadi.
8-2-rasm. MCU ishga tushirilishi, RESET VCC bilan bog'langan
ICHKI SOZLASH
8-3-rasm. MCU ishga tushirilishi, tashqi tomondan kengaytirilgan RESET
Tashqi tiklash
Tashqi reset yoqilgan bo'lsa, RESET pinidagi past darajadagi hosil bo'ladi. Impulslarni minimal impuls kengligidan uzunroq holatga keltiring (qarang "Tizim va tiklash xususiyatlari" 165 bet), hatto soat ishlamayotgan bo'lsa ham, asl holatini tiklaydi. Qisqa pulslarning qayta tiklanishiga kafolat yo'q. Qo'llaniladigan signal Reset Threshold Vol ga yetgandatage - VRST - uning ijobiy tomonida, kechikish hisoblagichi Vaqt tugashi tugagandan so'ng MCUni ishga tushiradi.
8-4-rasm. Ish paytida tashqi qayta o'rnatish
Jigarrang rangdagi aniqlash
ATtiny25/45/85 ish paytida VCC darajasini sobit tetik darajasi bilan solishtirish orqali kuzatish uchun On-chip Brown-out Detection (BOD) sxemasiga ega. BOD uchun tetik darajasini BODLEVEL Sigortalar tanlash mumkin. Trigger darajasida qo'ng'irrang chiqishini aniqlashni ta'minlash uchun histerezis mavjud. Aniqlash darajasidagi histerezis VBOT+ = VBOT + VHYST/2 va VBOT- = VBOT – VHYST/2 sifatida talqin qilinishi kerak.
BOD yoqilganda va VCC trigger darajasidan pastroq qiymatga kamayadi (VBOT-da 8-5-rasm), Jigarrangni tiklash darhol faollashadi. VCC trigger darajasidan oshib ketganda (VBOT+ in 8-5-rasm), kechikish hisoblagichi tTOUT vaqti tugaganidan keyin MCUni ishga tushiradi.
BOD sxemasi faqat vol bo'lsa, VCCning pasayishini aniqlayditage ko'rsatilgan tBOD dan ko'proq vaqt davomida tetik darajasidan past bo'ladi "Tizim va tiklash xususiyatlari" 165 bet.
Qo'riqchi itni tiklash
Watchdog vaqti tugagach, u bir CK sikli davomiyligining qisqa reset pulsini hosil qiladi. Ushbu impulsning pasayib ketgan chetida kechikish taymeri tTOUT vaqtini hisoblashni boshlaydi. ga murojaat qiling 42-betdagi "Qo'riqchi taymeri" Watchdog Timer-ning ishlashi haqida batafsil ma'lumot.
jildtage Malumot signallarni yoqish va ishga tushirish vaqti
Jildtagelektron ma'lumotnomaning ishga tushish vaqti bor, bu uni ishlatish uslubiga ta'sir qilishi mumkin. Ishga tushirish vaqti ko'rsatilgan "Tizim va tiklash xususiyatlari" 165 bet. Quvvatni tejash uchun ma'lumot har doim ham yoqilmaydi. Referans quyidagi holatlarda yoqiladi:
BOD yoqilganda (BODLEVEL [2: 0] sug'urta bitlarini dasturlash orqali).
Bandgap moslamasi Analog taqqoslagichga ulanganda (ACSRda ACBG bitini o'rnatish orqali).
ADC yoqilganda.
Shunday qilib, BOD yoqilmagan bo'lsa, ACBG bitini o'rnatgandan yoki ADC-ni yoqgandan so'ng, foydalanuvchi har doim Analog taqqoslash vositasi yoki ADC-dan chiqishdan oldin havolani ishga tushirishga ruxsat berishi kerak. Quvvatni o'chirish rejimida quvvat sarfini kamaytirish uchun foydalanuvchi o'chirish rejimiga o'tishdan oldin mos yozuvlar o'chirilganligini ta'minlash uchun yuqoridagi uchta shartdan qochishi mumkin.
Qo'riqchi taymer
Watchdog Timer 128 kHz tezlikda ishlaydigan chipli osilatordan ishlaydi. Watchdog Timer prescaler-ni boshqarish orqali Watchdog Reset intervalini quyidagi kabi sozlash mumkin. 8-betdagi 3-46-jadval. WDR - Watchdog Reset - yo'riqnoma Watchdog Timer-ni tiklaydi. Watchdog Timer o'chirilganda va chipni qayta tiklashda ham tiklanadi. Qayta tiklash davrini aniqlash uchun o'n xil soat tsikli davrlarini tanlash mumkin. Qayta tiklash muddati boshqa Watchdog Reset holda tugasa, ATtiny25 / 45/85 Reset Vector-dan qayta tiklanadi va bajariladi. Watchdog Reset-dagi vaqt tafsilotlari uchun qarang 8-betdagi 3-46-jadval.
Watchdog Timer-ni qayta tiklash o'rniga uzilish hosil qilish uchun sozlash mumkin. Bu Powerd-dan uyg'onish uchun Watchdog-dan foydalanganda juda foydali bo'lishi mumkin.
Watchdog-ni bilmasdan o'chirib qo'yish yoki vaqtni bilmay o'zgartirish vaqtining oldini olish uchun WDTON sug'urtasi tomonidan ikkita xavfsizlik darajasi tanlangan. 8-1-jadval ga murojaat qiling "Konventsiyani o'zgartirish uchun belgilangan ketma-ketliklar 43-betdagi qo'riqchi taymerining figurasi tafsilotlar uchun.
8-1-jadval. WDT konfiguratsiyasi WDTON sug'urta sozlamalari funktsiyasi sifatida
WDTON | Xavfsizlik darajasi | WDT boshlang'ich holati | WDT-ni qanday o'chirish mumkin | Vaqtni qanday o'zgartirish kerak |
Dasturlashtirilmagan | 1 | O'chirilgan | Vaqt ketma-ketligi | Hech qanday cheklovlar yo'q |
Dasturlashtirilgan | 2 | Yoqilgan | Har doim yoqilgan | Vaqt ketma-ketligi |
8-7-rasm. Qo'riqchi taymer
Qo'riqchi taymerining konfiguratsiyasini o'zgartirish uchun belgilangan ketma-ketliklar
Konfiguratsiyani o'zgartirish ketma-ketligi ikkita xavfsizlik darajasi o'rtasida bir oz farq qiladi. Har bir daraja uchun alohida protseduralar tavsiflanadi.
Xavfsizlik darajasi 1: Ushbu rejimda Watchdog taymeri dastlab o'chiriladi, lekin hech qanday cheklovsiz WDE bitini bittasiga yozish orqali yoqish mumkin. Yoqilgan Watchdog taymerini o'chirib qo'yishda vaqtli ketma-ketlik kerak. Yoqilgan Watchdog taymerini o'chirish uchun quyidagi tartibni bajarish kerak:
Xuddi shu amalda WDCE va WDE-ga mantiqiy yozing. Mantiqni WDE bitiga avvalgi qiymatidan kam bo'lgan holda yozish kerak.
Keyingi to'rt tsikl ichida, xuddi shu amalda, WDE va WDP bitlarini xohlagancha yozing, lekin WDCE biti o'chirildi.
Xavfsizlik darajasi 2: Ushbu rejimda Watchdog Taymeri har doim yoqilgan va WDE biti har doim bitta sifatida o'qiladi. Watchdog Taym-aut davrini o'zgartirishda vaqtli ketma-ketlik kerak. Watchdog Taym-autini o'zgartirish uchun quyidagi tartibni bajarish kerak:
Xuddi shu amalda mantiqiy WDCE va WDE-ga yozing. WDE har doim o'rnatilgan bo'lsa ham, vaqtni ketma-ketligini boshlash uchun WDE biriga yozilishi kerak.
Keyingi to'rt tsikl ichida, xuddi shu amalda, WDP bitlarini xohlagancha yozing, lekin WDCE biti o'chirildi. WDE bitiga yozilgan qiymat ahamiyatsiz.
Kod Example
Quyidagi kod, masalanample WDTni o'chirish uchun bitta yig'ilish va bitta C funktsiyasini ko'rsatadi. Sobiqample bu funktsiyalarni bajarishda hech qanday uzilishlar bo'lmasligi uchun uzilishlar nazorat qilinishini taxmin qiladi (masalan, butun dunyo bo'ylab uzilishlarni o'chirib qo'yish orqali).
O'rnatish kodi, masalanample(1) |
WDT_off:
wdr ; MCUSR-da WDRF-ni tozalash ldi r16, (0< MCUSR tashqari, r16 ; WDCE va WDE-ga mantiqiy yozing ; Tasodifiy Kuzatuvni asl holatini tiklashni oldini olish uchun eskirgan sozlagichni saqlang r16 da, WDTCR ori r16, (1< chiqish WDTCR, r16 ; WDT-ni o'chirib qo'ying ldi r16, (0< chiqish WDTCR, r16 ret |
C kodiample(1) |
bekor WDT_off (bekor)
{ _WDR (); /* MCUSR da WDRFni tozalash */ MCUSR = 0x00 /* WDCE va WDE ga mantiqiy birini yozing */ WDTCR |= (1< / * WDT * / WDTCR = 0x00-ni o'chirib qo'ying; } |
Izoh: 1. Qarang "Masalan, kodamples ”6 -betda.
Ro'yxatdan o'tish tavsifi
MCUSR - MCU holati registri
MCU holati registri qaysi qayta tiklash manbasi MCUni tiklashga olib kelganligi to'g'risida ma'lumot beradi.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
O'qish/Yozish | R | R | R | R | R/W | R/W | R/W | R/W |
Dastlabki qiymat 0 0 0 0 Bit tavsifiga qarang
Bitlar 7: 4 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bit 3 - WDRF: Watchdog Reset Flag
Agar Watchdog-ning asl holatini tiklash sodir bo'lsa, bu bit o'rnatiladi. Bit quvvatni qayta tiklash orqali yoki bayroqqa mantiqiy nol yozish orqali tiklanadi.
Bit 2 - BORF: qayta tiklangan bayroq
Ushbu bit, agar Brown-Reset holatida bo'lsa, o'rnatiladi. Bit quvvatni qayta tiklash orqali yoki bayroqqa mantiqiy nol yozish orqali tiklanadi.
Bit 1 - EXTRF: Tashqi tiklash bayrog'i
Agar tashqi o'rnatish bo'lsa, bu bit o'rnatiladi. Bit quvvatni qayta tiklash orqali yoki bayroqqa mantiqiy nol yozish orqali tiklanadi.
Bit 0 - PORF: Quvvatni qayta tiklash bayrog'i
Ushbu bit Quvvatni qayta tiklash sodir bo'lganda o'rnatiladi. Bit faqat bayroqqa mantiqiy nol yozish orqali tiklanadi.
Qayta tiklash holatini aniqlash uchun Reset Flags-dan foydalanish uchun foydalanuvchi dasturda MCUSR-ni iloji boricha o'qib, keyin tiklashi kerak. Agar boshqa qayta tiklashdan oldin registr o'chirilgan bo'lsa, asl holatini tiklash manbalarini Reset Flags-ni o'rganish orqali topish mumkin.
WDTCR - qo'riqchi taymerini boshqarish registri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
O'qish/Yozish | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: qo'riqchi vaqtining uzilishi bayrog'i
Ushbu bit Watchdog Timer-da vaqt tugashi bilan sodir bo'lganda va Watchdog Timer-da uzilish uchun tuzilganida o'rnatiladi. WDIF mos keladigan uzilishlarni boshqarish vektorini bajarishda apparat tomonidan o'chiriladi. Shu bilan bir qatorda, WDIF bayroqqa mantiqiy yozuv yozish orqali o'chiriladi. SREG va WDIE-da I-bit o'rnatilganda, Watchdog Time-out Interrupt bajariladi.
Bit 6 - WDIE: qo'riqchi vaqtining uzilishini yoqish
Ushbu bit bittaga yozilganda, WDE o'chiriladi va Status registridagi I-bit o'rnatiladi, Watchdog Time-out Interrupt yoqiladi. Ushbu rejimda, agar Watchdog Timer-da vaqt tugashi sodir bo'lsa, qayta tiklash o'rniga tegishli uzilish amalga oshiriladi.
Agar WDE o'rnatilgan bo'lsa, vaqt tugashi bilan WDIE avtomatik ravishda apparat tomonidan o'chiriladi. Bu uzilishdan foydalanishda Watchdog Reset xavfsizligini saqlash uchun foydalidir. WDIE biti o'chirilgandan so'ng, keyingi taym-reset o'rnatiladi. Watchdog-ni tiklashni oldini olish uchun har bir uzilishdan keyin WDIE o'rnatilishi kerak.
8-2-jadval. Watchdog taymer konfiguratsiyasi
WDE | WDIE | Qo'riqchi taymeri holati | Taym-autda aksiya |
0 | 0 | To'xtatildi | Yo'q |
0 | 1 | Yugurish | Interrupt |
1 | 0 | Yugurish | Qayta tiklash |
1 | 1 | Yugurish | Interrupt |
Bit 4 - WDCE: Watchdog o'zgarishini yoqish
Ushbu bit WDE biti mantiqiy nolga yozilganda o'rnatilishi kerak. Aks holda, Watchdog o'chirilmaydi. Bittasiga yozilgandan so'ng, apparat to'rt soatlik tsikldan keyin bu bitni o'chiradi. Watchdog-ni o'chirib qo'yish protsedurasi uchun WDE bitining tavsifiga murojaat qiling. Ushbu bit, shuningdek, prescaler bitlarini o'zgartirganda o'rnatilishi kerak. Qarang “Vaqtli ketma-ketliklar qo'riqchi taymerining konfiguratsiyasini o'zgartirish uchun "43-betida.
Bit 3 - WDE: Watchdog-ni yoqish
WDE mantiqqa yozilganda, Watchdog Timer yoqiladi, agar WDE nolga yozilsa, Watchdog Timer funksiyasi o'chiriladi. WDE-ni faqat WDCE bitida mantiqiy darajaga ega bo'lgan holda tozalash mumkin. Yoqilgan Watchdog Timer-ni o'chirish uchun quyidagi protsedura bajarilishi kerak:
Xuddi shu amalda WDCE va WDE-ga mantiqiy yozing. Mantiqni WDE-ga yozish kerak, garchi u o'chirib qo'yish jarayoni boshlanishidan oldin o'rnatilgan bo'lsa.
Keyingi to'rtta soat ichida WDE-ga 0 mantiqini yozing. Bu Watchdog-ni o'chiradi.
2-darajali xavfsizlik darajasida, hatto yuqorida tavsiflangan algoritm bilan ham Watchdog Timer-ni o'chirib qo'yish mumkin emas. Qarang "Qo'riqchi taymeri konfiguratsiyasini o'zgartirish uchun belgilangan ketma-ketliklar" 43-bet.
Xavfsizlik 1 darajasida WDE MCUSR da WDRF tomonidan bekor qilinadi. Qarang 44-betdagi "MCUSR - MCU holati registri" WDRF tavsifi uchun. Bu degani, WDF har doim WDRF o'rnatilganda o'rnatiladi. WDE-ni tozalash uchun WDRF-ni yuqorida tavsiflangan protsedura bilan Watchdog-ni o'chirib qo'yishdan oldin tozalash kerak. Ushbu funktsiya nosozlikni keltirib chiqaradigan holatlarda bir nechta qayta tiklashni va ishlamay qolgandan keyin xavfsiz ishga tushirishni ta'minlaydi.
Eslatma: Agar qo'riqchi taymer ilovada ishlatilmasa, qurilmani ishga tushirishda qo'riqchi itni o'chirish protsedurasidan o'tish muhim. Agar Watchdog tasodifan yoqilgan bo'lsa, masalanampQochish ko'rsatgichi yoki jigarrang holatga kelganda, qurilma asl holatiga qaytariladi, bu esa o'z navbatida qo'riqchi itini yangi holatga keltiradi. Bunday vaziyatni oldini olish uchun dasturiy ta'minot har doim ishga tushirish tartibida WDRF bayrog'i va WDE boshqaruv bitini tozalashi kerak.
Bits 5, 2: 0 - WDP [3: 0]: qo'riqchi taymeri Prescaler 3, 2, 1 va 0
WDP [3: 0] bitlari Watchdog Timer yoqilganda Watchdog Timer-ning oldindan o'lchamlarini aniqlaydi. Har xil oldindan hisoblash qiymatlari va ularga mos keladigan Kutish vaqti davrlari ko'rsatilgan 8-3-jadval.
8-3-jadval. Watchdog Taymerni oldindan o'lchovni tanlash
WDP3 | WDP2 | WDP1 | WDP0 | WDT osilator tsikllari soni | VCCda odatiy vaqt tugashi = 5.0V |
0 | 0 | 0 | 0 | 2K (2048) tsikllari | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) tsikllari | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) tsikllari | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) tsikllari | 0.125 s |
0 | 1 | 0 | 0 | 32K (32764) tsikllari | 0.25 s |
0 | 1 | 0 | 1 | 64K (65536) tsikllari | 0.5 s |
0 | 1 | 1 | 0 | 128K (131072) tsikllari | 1.0 s |
0 | 1 | 1 | 1 | 256K (262144) tsikllari | 2.0 s |
1 | 0 | 0 | 0 | 512K (524288) tsikllari | 4.0 s |
1 | 0 | 0 | 1 | 1024K (1048576) tsikllari | 8.0 s |
8-3-jadval. Watchdog taymerini oldindan o'lchashni tanlash (davomi)
WDP3 | WDP2 | WDP1 | WDP0 | WDT osilator tsikllari soni | VCCda odatiy vaqt tugashi = 5.0V |
1 | 0 | 1 | 0 | Zaxiralangan(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Eslatma: 1. Agar tanlansa, 0b1010 ostidagi joriy sozlamalardan biri ishlatiladi.
Uzilishlar
Ushbu bo'limda ATtiny25 / 45/85 da bajarilganidek, uzilishlar bilan ishlashning o'ziga xos xususiyatlari tasvirlangan. AVR-ning uzilishlarini boshqarish bo'yicha umumiy tushuntirishga qarang 12-betdagi "Qayta tiklash va ishlashni to'xtatish".
ATtiny25 / 45/85 da uzilish vektorlari
ATtiny25 / 45/85 ning uzilish vektorlari tasvirlangan 9-1-jadvalquyida.
9-1-jadval. Vektorlarni tiklash va uzilish
Vektor raqami | Dastur manzili | Manba | Interrupt ta'rifi |
1 | 0x0000 | RESET | Tashqi pin, quvvatni qayta tiklash, jigarrang rejimda tiklash, qo'riqchini tiklash |
2 | 0x0001 | INT0 | Tashqi uzilish talabi 0 |
3 | 0x0002 | PCINT0 | PIN-kodni almashtirishni to'xtatish talabi 0 |
4 | 0x0003 | TIMER1_COMPA | Taymer / hisoblagich1 Matchni taqqoslang A |
5 | 0x0004 | TIMER1_OVF | Taymer / hisoblagich1 to'lib toshishi |
6 | 0x0005 | TIMER0_OVF | Taymer / hisoblagich0 to'lib toshishi |
7 | 0x0006 | EE_RDY | EEPROM tayyor |
8 | 0x0007 | ANA_COMP | Analog taqqoslovchi |
9 | 0x0008 | ADC | ADC konversiyasi tugallandi |
10 | 0x0009 | TIMER1_COMPB | Taymer / hisoblagich1 O'yinni solishtiring B |
11 | 0x000A | TIMER0_COMPA | Taymer / hisoblagich0 Matchni taqqoslang A |
12 | 0x000B | TIMER0_COMPB | Taymer / hisoblagich0 O'yinni solishtiring B |
13 | 0x000c | WDT | Qo'riqchi vaqtining tugashi |
14 | 0x000D | USI_START | USI START |
15 | 0x000E | USI_OVF | USI to'kilishi |
Agar dastur hech qachon uzilish manbasini yoqmasa, "Interrupt vektorlari" ishlatilmaydi va ushbu joylarda odatdagi dastur kodlari joylashtirilishi mumkin.
ATtiny25/45/85 dagi uzilish vektorli manzillar uchun odatiy va umumiy sozlash ex dasturida ko'rsatilganamppastda.
O'rnatish kodi, masalanample | ||
.org 0x0000 | ; Keyingi manzilini o'rnating | bayonot |
rjmp SIFATLASH | ; Manzil 0x0000 | |
rjmp INT0_ISR | ; Manzil 0x0001 | |
rjmp PCINT0_ISR | ; Manzil 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Manzil 0x0003 | |
rjmp TIM1_OVF_ISR | ; Manzil 0x0004 | |
rjmp TIM0_OVF_ISR | ; Manzil 0x0005 | |
rjmp EE_RDY_ISR | ; Manzil 0x0006 | |
rjmp ANA_COMP_ISR | ; Manzil 0x0007 | |
rjmp ADC_ISR | ; Manzil 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Manzil 0x0009 | |
rjmp TIM0_COMPA_ISR | ; 0x000A manzili | |
rjmp TIM0_COMPB_ISR | ; Manzil 0x000B | |
rjmp WDT_ISR | ; Manzil 0x000C | |
rjmp USI_START_ISR | ; 0x000D manzili | |
rjmp USI_OVF_ISR | ; 0x000E manzili | |
QAYTA O'RNATISH: | ; Dasturning boshlanishi | |
; 0x000F manzili | ||
… |
Eslatma: qarang "Masalan, kodamples ”6 -betda.
Tashqi uzilishlar
Tashqi uzilishlar INT0 pimi yoki har qanday PCINT [5: 0] pinlari tomonidan ishga tushiriladi. E'tibor bering, agar yoqilgan bo'lsa, INT0 yoki PCINT [5: 0] pinlari chiqish sifatida tuzilgan bo'lsa ham, uzilishlar paydo bo'ladi. Ushbu funktsiya dasturiy ta'minotning uzilishini yaratish usulini taqdim etadi. PIN-kodni almashtirish uzilib qolsa, PCI [5: 0] yoqilgan bo'lsa, PCI ishga tushiriladi. PCMSK Ro'yxatdan o'tishni boshqarish pimi pinning o'zgarishiga to'sqinlik qiladi. PCINT-da pinni almashtirishdagi uzilishlar [5: 0] asenkron ravishda aniqlanadi. Bu shuni anglatadiki, ushbu uzilishlar qismni uyqudan tashqari uyqu rejimlaridan uyg'otishda ham foydalanish mumkin.
INT0 uzilishlari tushgan yoki ko'tarilgan chekka yoki past darajadan kelib chiqishi mumkin. Bu MCUR nazorat registri - MCUCR spetsifikatsiyasida ko'rsatilganidek o'rnatiladi. INT0 uzilishi yoqilganda va daraja ishga tushirilishi sifatida sozlanganda, pin past ushlab turilgandek, uzilish boshlanadi. E'tibor bering, INT0da tushgan yoki ko'tarilgan chekka uzilishlarni tanib olishda tasvirlangan I / O soatining mavjudligini talab qiladi "Soat tizimlari va ularni taqsimlash" 23-bet.
Past darajadagi uzilish
INT0 da past darajadagi uzilish asenkron ravishda aniqlanadi. Bu shuni anglatadiki, ushbu uzilishdan bo'sh vaqt rejimidan tashqari, uyqudan tashqari holatlarda ham uyg'onish mumkin. Kirish-chiqish soati bo'sh rejimdan tashqari barcha uyqu rejimlarida to'xtatiladi.
E'tibor bering, agar quvvat o'chirilganidan uyg'onish uchun darajadagi tetiklangan uzilish ishlatilsa, MCU darajadagi uzilishni ishga tushirish uchun uyg'onishni yakunlashi uchun kerakli darajani etarlicha uzoq ushlab turish kerak. Agar daraja ishga tushirish vaqti tugagunga qadar yo'qolsa, MCU hali ham uyg'onadi, lekin hech qanday uzilish yaratilmaydi. Ishga tushirish vaqti SUT va CKSEL sigortalari tomonidan tavsiflanganidek belgilanadi 23-betdagi "Tizim soati va soat parametrlari".
Agar uzilish pimidagi past daraja qurilma uyg'onishdan oldin olib tashlansa, u holda dastur bajarilishi uzilishlar xizmatining tartibiga yo'naltirilmaydi, lekin SLEEP buyrug'idan so'ng ko'rsatmalardan davom etadi.
PIN-kodni almashtirishni to'xtatish vaqti
OldingiampPIN -kodni o'zgartirishni to'xtatish vaqti ko'rsatilgan 9-1-rasm.
Ro'yxatdan o'tish tavsifi
MCUCR - MCU nazorat registri
Tashqi uzilishni boshqarish reestri A uzilishni his qilishni boshqarish uchun boshqaruv bitlarini o'z ichiga oladi.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
O'qish/Yozish | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlar 1: 0 - ISC0 [1: 0]: Interrupt Sense Control 0 Bit 1 va Bit 0
Agar SREG I-bayrog'i va mos keladigan uzilish maskasi o'rnatilgan bo'lsa, tashqi Inter0 0 tashqi pin INT0 bilan faollashadi. Interruptni faollashtiradigan tashqi INTXNUMX pinidagi daraja va qirralar aniqlangan 9-2-jadval. INT0 pinidagi qiymat sampqirralarni aniqlashdan oldin olib keldi. Agar chekish yoki almashtirish tugmachasi tanlansa, bir soatdan ko'proq davom etadigan impulslar uzilishga olib keladi. Qisqa pulslar uzilishga olib kelmaydi. Agar past darajali uzilish tanlansa, past darajani joriy bajariladigan ko'rsatma bajarilmaguncha ushlab turish kerak.
9-2-jadval. Interrupt 0 Sense Control
ISC01 | ISC00 | Tavsif |
0 | 0 | INT0 ning past darajasi uzilish so'rovini keltirib chiqaradi. |
0 | 1 | INT0dagi har qanday mantiqiy o'zgarish uzilish so'rovini keltirib chiqaradi. |
1 | 0 | INT0 ning tushgan tomoni uzilish so'rovini keltirib chiqaradi. |
1 | 1 | INT0 ning yuqori tomoni uzilish so'rovini keltirib chiqaradi. |
GIMSK - Umumiy uzilish maskalari reestri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
O'qish/Yozish | R | R/W | R/W | R | R | R | R | R | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 7, 4: 0 - Res: zahiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bit 6 - INT0: tashqi uzilish so'rovi 0 yoqish
INT0 bit (bittasi) o'rnatilganda va Status registridagi (SREG) I-bit (bittasi) o'rnatilganda tashqi pinning uzilishi yoqiladi. MCU Control Ro'yxatdan o'tish kitobidagi (MCUCR) Interrupt Sense Control0 bitlari 1/0 (ISC01 va ISC00) tashqi uzilish INT0 pinining ko'tarilishida va / yoki tushish chekkasida faollashtiriladimi yoki yo'qmi seziladi. PIN-koddagi faollik, INT0 chiqish sifatida tuzilgan bo'lsa ham, uzilish so'roviga sabab bo'ladi. Tashqi Interrupt Request 0-ning tegishli uzilishi INT0 Interrupt Vector-dan bajariladi.
Bit 5 - PCIE: PIN-kodni almashtirishni to'xtatib qo'yish
PCIE biti o'rnatilganda (bittasi) va Status registrida (SREG) I-biti o'rnatilganda (bittasi) pinni almashtirish uzilishi yoqiladi. Har qanday yoqilgan PCINT pinidagi har qanday o'zgarish uzilishga olib keladi. Pin Change Interrupt Request-ning tegishli uzilishi PCI Interrupt Vector-dan bajariladi. PCINT [5: 0] pinlari PCMSK5 registri tomonidan individual ravishda yoqiladi.
GIFR - Umumiy uzilish bayroqlari reestri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
O'qish/Yozish | R | R/W | R/W | R | R | R | R | R | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 7, 4: 0 - Res: zahiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bit 6 - INTF0: Tashqi uzilish bayrog'i 0
INT0 pinidagi chekka yoki mantiqiy o'zgarish uzilish so'rovini qo'zg'atganda, INTF0 (bitta) bo'ladi. Agar SREG-da I-bit va GIMSK-da INT0-bit o'rnatilgan bo'lsa (bitta), MCU mos keladigan Interrupt Vector-ga o'tadi. Tugatish tartibi bajarilganda bayroq o'chiriladi. Shu bilan bir qatorda, bayroqni unga mantiqiy yozish orqali tozalash mumkin. Ushbu bayroq har doim INT0 darajadagi uzilish sifatida tuzilganida o'chiriladi.
Bit 5 - PCIF: PIN-kodni o'zgartirish uzilishining bayrog'i
Har qanday PCINT [5: 0] pinidagi mantiqiy o'zgarish uzilish so'rovini qo'zg'atganda, PCIF o'rnatilgan bo'ladi (bitta). Agar SREG-da I-bit va GIMSK-da PCIE biti o'rnatilgan bo'lsa (bitta), MCU mos keladigan Interrupt Vector-ga o'tadi. Tugatish tartibi bajarilganda bayroq o'chiriladi. Shu bilan bir qatorda, bayroqni unga mantiqiy yozish orqali tozalash mumkin.
PCMSK - Pinni almashtirish niqobini ro'yxatdan o'tkazish
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
O'qish/Yozish | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlar 7: 6 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bitlar 5: 0 - PCINT [5: 0]: Pinni almashtirish 5: 0 niqobini yoqish
Har bir PCINT [5: 0] bit mos keladigan I / U pinida pinni almashtirish uzilishi yoqilganligini tanlaydi. Agar PCINT [5: 0] o'rnatilgan bo'lsa va GIMSKdagi PCIE biti o'rnatilgan bo'lsa, mos keladigan kirish / chiqish pimida pinni almashtirish uzilishi yoqiladi. Agar PCINT [5: 0] o'chirilsa, tegishli I / U pinidagi pinni almashtirish uzilishi o'chiriladi.
I/U portlari
Kirish
Barcha AVR portlari umumiy raqamli kirish-chiqish portlari sifatida ishlatilganda haqiqiy o'qish-o'zgartirish-yozish funksiyasiga ega. Bu shuni anglatadiki, SBI va CBI ko'rsatmalari yordamida boshqa pinning yo'nalishini bilmasdan o'zgartirmasdan bitta port pinining yo'nalishini o'zgartirish mumkin. Xuddi shu narsa haydovchi qiymatini o'zgartirganda (agar chiqish sifatida konfiguratsiya qilingan bo'lsa) yoki tortish qarshiligini yoqish/o'chirishda (agar kirish sifatida sozlangan bo'lsa) amal qiladi. Har bir chiqish buferi nosimmetrik haydovchi xususiyatlariga ega, ular yuqori cho'kish va manba imkoniyatlariga ega. PIN -haydovchi LED displeylarini to'g'ridan -to'g'ri haydash uchun etarlicha kuchli. Barcha port pimlarida alohida-alohida tanlanishi mumkin bo'lgan tortish rezistorlari mavjudtage o'zgarmas qarshilik. Barcha I/U pinlarida ko'rsatilganidek, VCC va Ground uchun himoya diyotlari mavjud 10-1-rasm. ga murojaat qiling 161-betdagi "Elektr xususiyatlari" parametrlarning to'liq ro'yxati uchun.
10-1-rasm. I/U pinining ekvivalent sxemasi
Ushbu bo'limdagi barcha registrlar va bitlarga havolalar umumiy shaklda yozilgan. Kichik harf "x" port uchun raqamlash harfini, kichik harf "n" esa bit raqamini bildiradi. Ammo dasturda registr yoki bitli ta'riflardan foydalanganda aniq shakl ishlatilishi kerak. Masalanample, PORTB3 bit uchun. 3 port B, bu erda odatda PORTxn sifatida hujjatlashtirilgan. Jismoniy kirish -chiqish registrlari va bit joylari ro'yxatda keltirilgan "Ro'yxatdan o'tish tavsifi" yoqilgan 64-bet.
Har bir port uchun uchta kirish-chiqarish xotirasi manzillari ajratilgan, har biri ma'lumotlar registri uchun - PORTx, ma'lumotlar yo'nalishini ro'yxatdan o'tkazish uchun - DDRx va port kiritish pinlari uchun - PINx. Portni kiritish pimlarining I / U joylashuvi faqat o'qiladi, Ma'lumotlar registri va Ma'lumotlar yo'nalishi registri esa o'qiladi / yoziladi. Biroq, mantiqni PINx regulyatorida bitga bittadan yozish, ma'lumotlar registridagi tegishli bitni almashtirishga olib keladi. Bunga qo'shimcha ravishda, MCUCR-dagi Pull-up Disable - PUD biti o'rnatilganida barcha portlardagi barcha pinlar uchun tortish funktsiyasini o'chiradi.
I / U portidan General Digital I / O sifatida foydalanish tasvirlangan "Portlar General Digital I / O sifatida" 53-bet. Aksariyat port pinlari qurilmadagi periferik funktsiyalar uchun muqobil funktsiyalar bilan multiplekslangan. Har bir muqobil funktsiya port pimi bilan qanday bog'liqligi tasvirlangan 57-betdagi "Muqobil port funktsiyalari". Muqobil funktsiyalarni to'liq tavsifi uchun alohida modul bo'limlariga murojaat qiling.
Shuni esda tutingki, ba'zi port pinlarining muqobil funktsiyasini yoqish portdagi boshqa pinlardan umumiy raqamli I / O sifatida foydalanishga ta'sir qilmaydi.
Portlar General Digital I / O sifatida
Portlar ixtiyoriy ichki tortishishlarga ega bo'lgan ikki tomonlama I / U portlari. 10-2-rasm bu erda umumiy ravishda Pxn deb nomlangan bitta I / O-port pinining funktsional tavsifini ko'rsatadi.
10-2-rasm. Umumiy raqamli kiritish/chiqarish(1)
PIN-kodni sozlash
Har bir port pimi uchta registr bitidan iborat: DDxn, PORTxn va PINxn. Ko'rsatilgandek "Ro'yxatdan o'tish tavsifi" yoqilgan 64-bet, DDxn bitlariga DDRx I / O manzilida, PORTxn bitlariga PORTx I / O manzilida va PINxn bitlariga PINx I / O adresida kirish mumkin.
DDRx registridagi DDxn bit ushbu pinning yo'nalishini tanlaydi. Agar DDxn mantiqiy yozilgan bo'lsa, Pxn chiqish pimi sifatida tuzilgan. Agar DDxn mantiqiy nolga yozilgan bo'lsa, Pxn kirish pimi sifatida tuzilgan.
Agar PIN kod kirish pimi sifatida tuzilgan bo'lsa, PORTxn mantiqiy yozilgan bo'lsa, tortishish qarshiligi faollashadi. Qarama qarshilikni o'chirish uchun PORTxn-ga mantiqiy nol yozilishi yoki pinni chiqish pimi sifatida sozlash kerak. Qayta tiklash holati yoqilganda, hatto soat ishlamayotgan bo'lsa ham, port pinlari uch marta ko'rsatilgan.
Agar PIN-kod chiqish pimi sifatida tuzilgan bo'lsa, PORTxn mantiqiy yozilgan bo'lsa, port pimi baland (bitta) harakatga keltiriladi. Agar PIN chiqish pimi sifatida tuzilgan bo'lsa, PORTxn mantiqiy nol deb yozilgan bo'lsa, port pimi past (nol) harakatga keltiriladi.
PIN-kodni almashtirish
PINxn-ga mantiqni yozish DDRxn qiymatiga bog'liq bo'lmagan PORTxn qiymatini o'zgartiradi. SBI ko'rsatmasi portdagi bitta bitni almashtirish uchun ishlatilishini unutmang.
Kirish va chiqish o'rtasida almashtirish
Tri-holat ({DDxn, PORTxn} = 0b00) va yuqori chiqish ({DDxn, PORTxn} = 0b11) o'rtasida almashinishda oraliq holat yoki tortishish yoqilgan {DDxn, PORTxn} = 0b01) yoki chiqish past ({DDxn, PORTxn} = 0b10) yuzaga kelishi kerak. Odatda, tortishish yoqilgan holat to'liq qabul qilinadi, chunki yuqori impedantli muhit kuchli yuqori haydovchi va tortishish o'rtasidagi farqni sezmaydi. Agar bunday bo'lmasa, MCUCR registridagi PUD biti barcha portlardagi barcha pull-uplarni o'chirib qo'yish uchun o'rnatilishi mumkin.
Tortishish va chiqish pastligi bilan kirish o'rtasida almashinish bir xil muammolarni keltirib chiqaradi. Foydalanuvchi oraliq qadam sifatida tri-state ({DDxn, PORTxn} = 0b00) yoki chiqish yuqori holatidan ({DDxn, PORTxn} = 0b10) foydalanishi kerak.
10-1-jadval pin qiymati uchun boshqaruv signallarini umumlashtiradi.
10-1-jadval. Port pin konfiguratsiyasi
DDxn | PORTxn | PUD
(MCUCRda) |
I/U | Yuqoriga tortish | Izoh |
0 | 0 | X | Kirish | Yo'q | Uch holat (Hi-Z) |
0 | 1 | 0 | Kirish | Ha | Pxn, agar ext bo'lsa oqim manbai bo'ladi. past tortdi. |
0 | 1 | 1 | Kirish | Yo'q | Uch holat (Hi-Z) |
1 | 0 | X | Chiqish | Yo'q | Chiqish past (lavabo) |
1 | 1 | X | Chiqish | Yo'q | Chiqish baland (Manba) |
Pin qiymatini o'qish
Ma'lumotlar yo'nalishi biti DDxn-dan mustaqil ravishda port pinini PINxn registri biti orqali o'qish mumkin. Ko'rsatilgandek 10-2-rasm, PINxn Registr biti va oldingi mandal sinxronizatorni tashkil qiladi. Agar fizik pin ichki soatning chetiga yaqin qiymatni o'zgartirsa, lekin u ham kechikishni keltirib chiqaradigan bo'lsa, bu metastabillikni oldini olish uchun kerak. 10-3-rasm tashqi qo'llaniladigan pin qiymatini o'qiyotganda sinxronizatsiya vaqt diagrammasini ko'rsatadi. Maksimal va minimal tarqalish kechikishlari mos ravishda tpd, max va tpd,min bilan belgilanadi.
Tizim soatining birinchi tushgan chekkasidan ko'p o'tmay boshlangan soatni ko'rib chiqing. Mandal soat kam bo'lganda yopiladi va soat baland bo'lganda shaffof bo'ladi, bu "SYNC LATCH" signalining soyali qismida ko'rsatilgan. Tizim soati pasayganda signal qiymati yopiladi. U PINxn registriga soatning ijobiy tomonida o'rnatiladi. Tpd, max va tpd, min ikkita o'qida ko'rsatilgandek, pimdagi bitta signal o'tishi tasdiqlash vaqtiga qarab ½ va 1½ tizim soatlari oralig'ida kechiktiriladi.
Dasturiy ta'minot tomonidan tayinlangan pin qiymatini o'qiyotganda, nop buyrug'i ko'rsatilgandek kiritilishi kerak 10-4-rasm. Chiqish ko'rsatmasi soatning ijobiy chetiga "SYNC LATCH" signalini o'rnatadi. Bunday holda, sinxronizator orqali kechikish tpd bitta tizim soat davri hisoblanadi.
Quyidagi kod, masalanample port B pinlarini 0 va 1 baland, 2 va 3 past darajalarni qanday o'rnatishni ko'rsatadi va 4 dan 5 gacha bo'lgan port pinlarini 4 piniga tayinlangan pull-up bilan kirish sifatida aniqlaydi. Olingan pin qiymatlari qayta o'qiladi, lekin Avval muhokama qilinganidek, ba'zi pinlarga yaqinda tayinlangan qiymatni qayta o'qish uchun nop ko'rsatmasi kiritilgan.
O'rnatish kodi, masalanample(1) |
…
; Pull-uplarni aniqlang va chiqishlarni yuqori o'rnating ; Port pinlari uchun yo'nalishlarni aniqlang ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) PORTB, r16 orqali chiqish DDRB, r17 ; Sinxronizatsiya uchun nop kiriting yo'q ; Port pinlarini o'qing r16, PINB da … |
Eslatma: Yig'ish dasturi uchun yo'nalish bitlari to'g'ri o'rnatilgunga qadar 0, 1 va 4 pinlarida tortishish vaqtini minimallashtirish uchun ikkita vaqtinchalik registrlar ishlatiladi, 2 va 3 bitlarni past deb belgilaydi va bitlarni 0 va qayta belgilaydi. 1 kuchli yuqori haydovchilar sifatida.
C kodiample |
unsigned char i;
… /* Pull-uplarni aniqlang va chiqishlarni yuqori o'rnating */ /* Port pinlari uchun yo'nalishlarni aniqlang */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Sinxronizatsiya uchun nop kiriting*/ _NOP (); /* Port pinlarini o'qish */ i = PINB; … |
Raqamli kiritishni yoqish va uxlash rejimlari
Ko'rsatilgandek 10-2-rasm, raqamli kirish signali cl bo'lishi mumkinampShmitt-triggerning kirishida erga ulangan. Rasmda SLEEP deb belgilangan signal, agar ba'zi kirish signallari suzuvchi bo'lsa yoki analog signal darajasi VCC/2 ga yaqin bo'lsa, yuqori quvvat sarfini oldini olish uchun quvvatni o'chirish rejimida MCU Kutish boshqaruvchisi tomonidan o'rnatiladi.
SLEEP tashqi uzilish pimi sifatida yoqilgan port pinlari uchun bekor qilindi. Agar tashqi uzilish so'rovi yoqilmagan bo'lsa, SLEEP ushbu pinlar uchun ham faoldir. Shuningdek, SLEEP-da tasvirlangan boshqa har xil alternativ funktsiyalar bekor qilinadi 57-betdagi "Muqobil port funktsiyalari".
Agar tashqi uzilish yoqilmagan bo'lsa, "Ko'tarilgan chekkadagi uzilish, tushayotgan chekkadagi uzilish yoki Pindagi har qanday mantiqiy o'zgarish" sifatida sozlangan asinxron tashqi uzilish pinida mantiqiy yuqori daraja ("bir") mavjud bo'lsa, tegishli tashqi uzilish bayrog'i paydo bo'ladi. cl sifatida yuqorida aytib o'tilgan Kutish rejimidan qayta boshlanganda o'rnatiladiampbu uyqu rejimiga o'tish kerakli mantiq o'zgarishini keltirib chiqaradi.
Ulanmagan pinlar
Agar ba'zi pinlar ishlatilmagan bo'lsa, ushbu pinlarning belgilangan darajaga ega bo'lishini ta'minlash tavsiya etiladi. Raqamli kirishlarning aksariyati yuqorida aytib o'tilganidek chuqur uyqu rejimlarida o'chirib qo'yilgan bo'lsa ham, raqamli kirishlar yoqilgan boshqa barcha holatlarda (Reset, Active mode va Bo'sh rejim) oqim sarfini kamaytirish uchun suzuvchi yozuvlardan qochish kerak.
Foydalanilmayotgan pinning belgilangan darajasini ta'minlashning eng oddiy usuli bu ichki tortishni yoqishdir. Bunday holda, tiklash vaqtida tortishish o'chiriladi. Qayta tiklash vaqtida kam quvvat iste'moli muhim bo'lsa, tashqi pull-up yoki pulldown foydalanish tavsiya etiladi. Foydalanilmayotgan pinlarni to'g'ridan-to'g'ri VCC yoki GND ga ulash tavsiya etilmaydi, chunki pin tasodifan chiqish sifatida sozlangan bo'lsa, bu ortiqcha oqimlarga olib kelishi mumkin.
Muqobil port funktsiyalari
Ko'pgina port pinlari umumiy raqamli I / O bo'lishdan tashqari, muqobil funktsiyalarga ega. 10-5-rasm port pinini qanday qilib soddalashtirilgan signallarni boshqarish signalini ko'rsatadi 10-2-rasm muqobil funktsiyalar bilan bekor qilinishi mumkin. Yo'qolgan signallar barcha port pinlarida mavjud bo'lmasligi mumkin, ammo bu raqam AVR mikrokontrollerlar oilasidagi barcha port pinlariga tegishli umumiy tavsif bo'lib xizmat qiladi.
10-2-jadval. Muqobil funksiyalar uchun bekor qilish signallarining umumiy tavsifi
Signal nomi | To'liq ism | Tavsif |
PUOE | Tortish-bekor qilishni yoqish | Agar ushbu signal o'rnatilgan bo'lsa, tortish imkoniyati PUOV signali tomonidan boshqariladi. Agar bu signal o'chirilsa, tortishish qachon yoqiladi
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Qiymatni bekor qilish | Agar PUOE o'rnatilgan bo'lsa, DDxn, PORTxn va PUD Ro'yxatdan o'tish bitlarining parametrlaridan qat'i nazar, PUOV o'rnatilganda / o'chirilganda tortishish yoqiladi / o'chiriladi. |
DDOE | Ma'lumotlar yo'nalishini bekor qilishni yoqish | Agar ushbu signal o'rnatilgan bo'lsa, Chiqish drayverini yoqish DDOV signali tomonidan boshqariladi. Agar ushbu signal o'chirilsa, Chiqish drayveri DDxn Registratsiya biti yordamida yoqiladi. |
DDOV | Ma'lumotlar yo'nalishini bekor qilish qiymati | DDOE o'rnatilgan bo'lsa, DDxn registri bitining sozlanishidan qat'i nazar, DDOV o'rnatilganda / o'chirilganda Chiqish drayveri yoqiladi / o'chiriladi. |
PVOE | Port qiymatini bekor qilishni yoqish | Agar ushbu signal o'rnatilgan bo'lsa va Chiqish drayveri yoqilgan bo'lsa, port qiymati PVOV signali tomonidan boshqariladi. Agar PVOE o'chirilsa va Chiqish drayveri yoqilgan bo'lsa, port qiymati PORTxn Ro'yxatdan o'tish biti tomonidan boshqariladi. |
PVOV | Port qiymatini bekor qilish qiymati | Agar PVOE o'rnatilgan bo'lsa, PORTxn Registr bitining sozlanishidan qat'i nazar, port qiymati PVOV ga o'rnatiladi. |
PTOE | Portni almashtirishni bekor qilishni yoqish | Agar PTOE o'rnatilgan bo'lsa, PORTxn Ro'yxatdan o'tish biti teskari bo'ladi. |
DIEOE | Raqamli kiritish yoqishni bekor qilishni yoqish | Agar bu bit o'rnatilgan bo'lsa, Raqamli Kiritishni Enable DIEOV signali tomonidan boshqariladi. Agar ushbu signal o'chirilsa, Raqamli Kiritishni yoqish MCU holati bilan belgilanadi (Oddiy rejim, uyqu rejimi). |
DIEOV | Raqamli kiritish qiymatni bekor qilishni yoqadi | Agar DIEOE o'rnatilgan bo'lsa, MCU holatidan qat'i nazar (normal rejim, uyqu holati) DIEOV o'rnatilganda / o'chirilganda Raqamli kirish yoqiladi / o'chiriladi. |
DI | Raqamli kirish | Bu muqobil funktsiyalar uchun raqamli kirish. Rasmda signal schmitt-trigger chiqishiga, lekin sinxronizatordan oldin ulangan. Raqamli kirish soat manbai sifatida ishlatilmasa, muqobil funktsiyaga ega modul o'zining sinxronizatoridan foydalanadi. |
AIO | Analog kirish / chiqish | Bu Analog Kirish / Chiqish alternativ funktsiyalarga / dan. Signal to'g'ridan-to'g'ri padga ulangan va uni ikki tomonlama ishlatish mumkin. |
Quyidagi bo'limlarda har bir port uchun muqobil funktsiyalar qisqacha tavsiflanadi va ustun signallarni muqobil funktsiyaga bog'laydi. Qo'shimcha ma'lumot uchun qo'shimcha funktsiyalar tavsifiga murojaat qiling.
B portining muqobil funktsiyalari
Muqobil funktsiyaga ega Port B pinlari ko'rsatilgan 10-3-jadval.
10-3-jadval. Port B pinlarining muqobil funktsiyalari
Port Pin | Muqobil funksiya |
PB5 | ![]() RESET: PIN-kodni tiklash dW: disk raskadrovka WIRE I / O ADC0: ADC kirish kanali 0 PCINT5: PIN-kodni almashtirishdagi uzilish, manba 5 |
PB4 | XTAL2: Kristalli osilator chiqishi CLKO: tizim soati chiqishi ADC2: ADC kirish kanali 2
OC1B: Timer / Counter1 solishtiring M match B Chiqish PCINT4: pinni almashtirish uzilishi 0, manba 4 |
PB3 | XTAL1: kristall osilator kirish CLKI: tashqi soat kirish ADC3: ADC kirish kanali 3
OC1B: Qo'shimcha taymer / hisoblagich1 solishtiring Match B chiqishi PCINT3: pinni almashtirish uzilishi 0, manba 3 |
PB2 | SCK: ketma-ket soat kiritish ADC1: ADC kirish kanali 1
T0: Taymer / Counter0 soat manbai USCK: USI soat (uchta simli rejim) SCL: USI soat (ikkita simli rejim) INT0: tashqi uzilish 0 kirish PCINT2: pinni almashtirish uzilishi 0, manba 2 |
PB1 | MISO: SPI Master Data Input / Slave Data Output AIN1: Analog Compparator, Negative Input OC0B: Timer / Counter0 M B B Output solishtiring 1, manba 1 |
PB0 | MOSI :: SPI Master Ma'lumotlarni Chiqish / Slave Ma'lumotlarni kiritish AIN0: Analog Komparator, Ijobiy Kirish
OC0A: Taymer/Counter0 Match A chiqishini solishtiring OC1A: Qo'shimcha taymer / hisoblagichni taqqoslang A natijasi DI: USI ma'lumot kiritish (uchta simli rejim) SDA: USI ma'lumotlarini kiritish (ikkita simli rejim) |
Port B, Bit 5 - RESET / dW / ADC0 / PCINT5
RESET: Tashqi asl holatini tiklash usuli past va RSTDISBL sug'urtasini dasturlashtirmasdan ("1") yoqilgan. PIN-kod RESET pimi sifatida ishlatilganda tortish faollashadi va chiqish drayveri va raqamli kirish o'chiriladi.
dW: DebugWIRE Enable (DWEN) Sug'urtalash dasturlashtirilganda va Lock bitlari dasturlashtirilmasa, maqsad qurilma ichidagi debugWIRE tizimi faollashadi. RESET port pimi tortib olish imkoniyati berilgan simli VA (ochiq drenajli) ikki tomonlama I / U pin sifatida tuzilgan va maqsad va emulyator o'rtasidagi aloqa shlyuziga aylanadi.
ADC0: Analog-raqamli konvertor, 0-kanal.
PCINT5: Pinni almashtirishdagi uzilish manbai 5.
Port B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pin 2. Ichki kalibrli RC osilator va tashqi soatdan tashqari barcha chip soat manbalari uchun soat pimi sifatida ishlatiladi. Soat pimi sifatida ishlatilganda, pin I / U pin sifatida ishlatilishi mumkin emas. Ichki kalibrlanadigan RC osilatori yoki tashqi soatdan Chip soat manbalari sifatida foydalanilganda, PB4 oddiy kirish / chiqish pimi sifatida xizmat qiladi.
CLKO: Devralgan tizim soati PB4 pinida chiqarilishi mumkin. PORTB4 va DDB4 sozlamalaridan qat'i nazar, CKOUT Fuse dasturlashtirilgan bo'lsa, ajratilgan tizim soati chiqadi. Qayta tiklash paytida u ham chiqadi.
ADC2: Analog-raqamli konvertor, 2-kanal.
OC1B: Output Compare Match output: PB4 pin taymer / Counter1 Compare Match B uchun chiqish sifatida sozlanganda tashqi chiqish sifatida xizmat qilishi mumkin (DDB4 to'plami). OC1B pimi shuningdek PWM rejimi taymeri funktsiyasi uchun chiqish pimi hisoblanadi.
PCINT4: Pinni almashtirishdagi uzilish manbai 4.
Port B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Osilator pinasi 1. Ichki kalibrlangan RC osilatoridan tashqari barcha chipli soat manbalari uchun ishlatiladi. Soat pimi sifatida ishlatilganda, pin I / U pin sifatida ishlatilishi mumkin emas.
CLKI: tashqi soat manbasidan soat kiritish, qarang 26-betdagi "Tashqi soat".
ADC3: Analog-raqamli konvertor, 3-kanal.
OC1B: Inverted Output Compare Match chiqishi: PB3 pimi taymer / Counter1 Compare Match B uchun chiqish sifatida sozlanganda tashqi chiqish sifatida xizmat qilishi mumkin (DDB3 to'plami). OC1B pimi, shuningdek, PWM rejimi taymeri funktsiyasi uchun teskari chiqish pimi hisoblanadi.
PCINT3: Pinni almashtirishdagi uzilish manbai 3.
Port B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Master Clock chiqishi, SPI kanali uchun Slave Clock kirish pimi. SPI qul sifatida yoqilganda, bu pin DDB2 sozlamasidan qat'i nazar, kirish sifatida tuzilgan. SPI usta sifatida yoqilganda, ushbu pinning ma'lumot yo'nalishi DDPB2 tomonidan boshqariladi. PIN SPI tomonidan majburiy ravishda kiritiladigan bo'lsa, tortishish hali ham PORTB2 bit tomonidan boshqarilishi mumkin.
ADC1: Analog-raqamli konvertor, 1-kanal.
T0: Taymer / Counter0 hisoblagich manbai.
USCK: Uch simli rejim Universal seriyali interfeys soati.
SCL: USI uchun ikkita simli rejim ketma-ket soat Ikki simli rejim.
INT0: Tashqi uzilish manbai 0.
PCINT2: Pinni almashtirishdagi uzilish manbai 2.
Port B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Asosiy ma'lumotlarni kiritish, SPI kanali uchun Slave Data chiqish pimi. SPI Master sifatida yoqilganda, bu pin DDB1 sozlamasidan qat'i nazar, kirish sifatida tuzilgan. SPI qul sifatida yoqilganda, ushbu pinning ma'lumotlar yo'nalishi DDB1 tomonidan boshqariladi. Agar pin SPI tomonidan majburiy ravishda kiritilishi kerak bo'lsa, tortishni PORTB1 biti boshqarishi mumkin.
AIN1: analog taqqoslash manfiy kiritish. Raqamli port funktsiyasi Analog taqqoslash moslamasining ishiga xalaqit bermaslik uchun ichki pim o'chirilgan holda port pimini kirish sifatida sozlang.
OC0B: Chiqish mos keladigan natijalarni taqqoslang. PB1 pinasi Taymer / Counter0 Compare Match B uchun tashqi chiqish sifatida xizmat qilishi mumkin. PB1 pinini ushbu funktsiyani bajarish uchun chiqish (DDB1 to'plami (bitta)) sifatida sozlash kerak. OC0B pimi PWM rejimi taymeri funktsiyasi uchun chiqish pimi hamdir.
OC1A: Output Compare Match output: PB1 pin taymer / Counter1 Compare Match B uchun chiqish sifatida sozlanganda tashqi chiqish sifatida xizmat qilishi mumkin (DDB1 to'plami). OC1A pimi shuningdek PWM rejimi taymeri funktsiyasi uchun chiqish pimi hisoblanadi.
DO: Uch simli rejim Universal ketma-ket interfeys ma'lumotlar chiqishi Uch simli rejim Ma'lumotlarning chiqishi PORTB1 qiymatini bekor qiladi va DDB1 bit yo'nalishi (bitta) o'rnatilganida u portga yo'naltiriladi. Agar yo'nalish kiritilsa va PORTB1 o'rnatilgan bo'lsa (PORTB1), tortishni yuqoriga ko'tarishga imkon beradi.
PCINT1: Pinni almashtirishdagi uzilish manbai 1.
Port B, bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Master Data output, SPI kanali uchun Slave Data input. SPI qul sifatida yoqilganda, bu pin DDB0 sozlamasidan qat'i nazar, kirish sifatida tuzilgan. SPI usta sifatida yoqilganda, ushbu pinning ma'lumot yo'nalishi DDB0 tomonidan boshqariladi. Agar pin SPI tomonidan kirish bo'lishi kerak bo'lsa, tortishish hali ham PORTB0 biti tomonidan boshqarilishi mumkin.
AIN0: Analog taqqoslagich ijobiy kiritish. Raqamli port funktsiyasi Analog taqqoslash moslamasining ishiga xalaqit bermaslik uchun ichki pim yopiq holda port pimini kirish sifatida sozlang.
OC0A: Match natijasini solishtiring. PB0 pimi chiqish sifatida sozlanganda Timer / Counter0 Compare Match A uchun tashqi chiqish sifatida xizmat qilishi mumkin (DDB0 to'plami (bitta)). OC0A pimi PWM rejimi taymeri funktsiyasi uchun chiqish pimi hamdir.
OC1A: Inverted Output Compare Match chiqishi: PB0 pin taymer / Counter1 Compare Match B uchun chiqish sifatida sozlanganda tashqi chiqish sifatida xizmat qilishi mumkin (DDB0 to'plami). OC1A pimi, shuningdek, PWM rejimi taymeri funktsiyasi uchun teskari chiqish pimi hisoblanadi.
SDA: ketma-ket interfeys ma'lumotlari.
AREF: ADC uchun tashqi analog ma'lumotnoma. PB0da pin tashqi mos yozuvlar yoki ichki volt sifatida ishlatilganda tortish va chiqarish drayveri o'chiriladitage AREF pinidagi tashqi kondansatör haqida ma'lumot.
DI: USI Uch simli rejimida ma'lumotlarni kiritish. USI Uch simli rejim odatdagi port funktsiyalarini bekor qilmaydi, shuning uchun pin DI funktsiyasi uchun kirish sifatida sozlanishi kerak.
PCINT0: Pinni almashtirishdagi uzilish manbai 0.
10-4-jadval va 10-5-jadval B portining muqobil funktsiyalarini ko'rsatilgan ustun signallarga bog'lab qo'ying 10-5-rasm 58-bet.
10-4-jadval. PB dagi muqobil funksiyalar uchun signallarni bekor qilish[5:3]
Signal nomi | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | debugWire uzatish | 0 | 0 |
PVOE | 0 | OC1B yoqish | ![]() OC1B yoqish |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | PCINT5 usuli | PCINT4 usuli | PCINT3 usuli |
AIO | RESET Kirish, ADC0 Kirish | ADC2 kiritish | ADC3 kiritish |
Eslatma: sug'urta "0" bo'lganda (dasturlashtirilgan).
10-5-jadval. PB dagi muqobil funksiyalar uchun signallarni bekor qilish[2:0]
Signal nomi | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
PUOV | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | OC0B yoqish + OC1A yoqish + USI_THREE_WIRE | ![]() OC0A Enable + OC1A Enable + (USI_TWO_WIRE) DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
PCINT2 usuli |
PCINT1 usuli | DI / SDA / PCINT0 usuli |
AIO | ADC1 kiritish | Analog taqqoslagich salbiy kiritish | Analog taqqoslagich ijobiy kiritish |
Ro'yxatdan o'tish tavsifi
MCUCR - MCU nazorat registri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
O'qish/Yozish | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: tortib olishni o'chirib qo'yish
Ushbu bit bittaga yozilganda, DDxn va PORTxn registrlari tortib olinishni yoqish uchun tuzilgan bo'lsa ham, kirish-chiqish portlaridagi tortishish o'chiriladi ({DDxn, PORTxn} = 0b01). Qarang 54-betdagi "PIN-kodni sozlash" ushbu xususiyat haqida ko'proq ma'lumot olish uchun.
PORTB - Port B ma'lumotlarini ro'yxatga olish
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
O'qish/Yozish | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Port B ma'lumotlarini yo'naltirish registri
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
O'qish/Yozish | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Port B kirish pinlari manzili
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PIN -kod |
O'qish/Yozish | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Boshlang'ich qiymat | 0 | 0 | Yoʻq | Yoʻq | Yoʻq | Yoʻq | Yoʻq | Yoʻq |
PWM bilan 8-bitli taymer / taymer
Xususiyatlari
Ikki mustaqil chiqish taqqoslash birligi
Ikki marta buferlangan chiqishni taqqoslash registrlari
O'yinni taqqoslash bo'yicha taymerni o'chirish (avtomatik qayta yuklash)
Glitch Free, bosqichni to'g'ri puls kengligi modulyatori (PWM)
O'zgaruvchan PWM davri
Chastotani ishlab chiqaruvchi
Uchta mustaqil uzilish manbalari (TOV0, OCF0A va OCF0B)
tugadiview
Timer / Counter0 - bu ikkita mustaqil Chiqish taqqoslash birligi bo'lgan va PWM qo'llab-quvvatlaydigan 8-bitli Taymer / Hisoblagich moduli. Bu dasturni aniq bajarish vaqtini (voqealarni boshqarish) va to'lqinlarni yaratish imkonini beradi.
8-bitli Taymer / Hisoblagichning soddalashtirilgan blok diagrammasi ko'rsatilgan 11-1-rasm. I / U pinlarini haqiqiy joylashuvi uchun qarang "Pinout ATtiny25 / 45/85" 2-betda. Protsessor kirish imkoniyatiga ega kirish-chiqarish registrlari, shu jumladan I / U bitlari va I / U pinlari qalin harflar bilan ko'rsatilgan. Qurilmaga xos I / O Ro'yxatdan o'tish va bit joylari 77-betdagi "Ro'yxatdan o'tish tavsifi".
Taymer/hisoblagich (TCNT0) va Chiqishni solishtirish registrlari (OCR0A va OCR0B) 8 bitli registrlardir. Interrupt so'rovi (rasmda Int.Req. deb qisqartirilgan) signallarining barchasi Timer Interrupt Flag Register (TIFR) da ko'rinadi. Barcha uzilishlar Timer Interrupt Mask Register (TIMSK) bilan alohida maskalanadi. TIFR va TIMSK rasmda ko'rsatilmagan.
Taymer/hisoblagich soatni ichki, oldindan o'lchagich orqali yoki T0 pinidagi tashqi soat manbasi orqali belgilash mumkin. Soatni tanlash mantiqiy bloki taymer/hisoblagich uning qiymatini oshirish (yoki kamaytirish) uchun qaysi soat manbasi va chekkasidan foydalanishini boshqaradi. Taymer/taymer hech qanday soat manbai tanlanmaganda faol emas. Clock Select mantiqining chiqishi taymer soati (clkT0) deb ataladi.
Ikki tamponli Chiqish taqqoslash registrlari (OCR0A va OCR0B) har doim Timer / Counter qiymati bilan taqqoslanadi. Taqqoslash natijalari to'lqin shaklini yaratuvchisi tomonidan PWM yoki o'zgaruvchan chastotali chiqishni taqqoslash pimlarida (OC0A va OC0B) ishlab chiqarish uchun ishlatilishi mumkin. 69-betdagi "Chiqarishni taqqoslash birligi" ga qarang. tafsilotlar uchun. Muvofiqlashtirishni taqqoslash hodisasi Chiqish taqqoslash so'rovini yaratish uchun ishlatilishi mumkin bo'lgan taqqoslash bayrog'ini (OCF0A yoki OCF0B) o'rnatadi.
Ta'riflar
Ushbu bo'limdagi ko'plab ro'yxatga olish va bit ma'lumotnomalari umumiy shaklda yozilgan. Taymer / hisoblagich raqamini "n" kichik harf, bu holda 0. Chiqish taqqoslash birligini "x" kichik harf, bu holda A birligini solishtiring yoki B birligini solishtiring. Ammo registr yoki bitdan foydalanilganda dasturda aniq shakldan foydalanish kerak, ya'ni Timer / Counter0 hisoblagich qiymatiga kirish uchun TCNT0 va boshqalar.
Ning ta'riflari 11-1-jadval shuningdek, hujjat davomida keng qo'llaniladi.
11-1-jadval. Ta'riflar
Doimiy | Tavsif |
BOTTOM | Hisoblagich 0x00 ga aylanganda BOTTOMga etadi |
MAX | Hisoblagich 0xFF (255 kasr) ga aylanganda maksimal darajaga etadi |
TOP | Hisoblagich hisoblash ketma-ketligidagi eng yuqori qiymatga teng bo'lganda TOP ga etadi. TOP qiymati sobit 0xFF (MAX) qiymati yoki OCR0A registrida saqlanadigan qiymat sifatida belgilanishi mumkin. Topshiriq ishlash rejimiga bog'liq |
Taymer / taymer hisoblagichi va soat manbalari
Taymer / hisoblagich soatni ichki yoki tashqi soat manbai bilan boshqarishi mumkin. Soat manbai Taymer / Counter0 boshqaruv registrida (TCCR0B) joylashgan Clock Select (c) bitlari tomonidan boshqariladigan Clock Select mantig'i bilan tanlanadi.
Prescaler yordamida ichki soat manbai
Taymer/Counter0 ni to'g'ridan-to'g'ri tizim soati (CS0[2:0] = 1 ni o'rnatish orqali) hisoblash mumkin. Bu tizim soat chastotasiga (fCLK_I/O) teng bo'lgan maksimal taymer/taymer soat chastotasi bilan eng tez ishlashni ta'minlaydi. Shu bilan bir qatorda, oldindan o'lchov moslamasining to'rtta tegidan biri soat manbai sifatida ishlatilishi mumkin. Oldindan o'rnatilgan soat har ikkala chastotaga ega
Prescaler reset
Prescaler erkin ishlaydi, ya'ni Timer/Counter0 ning Clock Select mantig'idan mustaqil ishlaydi. Taymer/taymer soatini tanlash oldindan hisoblagichga ta'sir qilmagani uchun, oldindan hisoblagichning holati oldindan o'rnatilgan soat ishlatilgan vaziyatga ta'sir qiladi. Bir sobiqampoldindan hisoblaydigan artefakt - bu taymer/hisoblagich oldindan hisoblagich tomonidan yoqilgan va soatlangan (6> CS0 [2: 0]> 1). Taymer yoqilgan paytdan birinchi sanoqgacha bo'lgan tizim soatlari tsikllari soni 1 dan N+1 gacha bo'lgan tizim soatlari tsikli bo'lishi mumkin, bu erda N oldindan hisoblagich bo'luvchisiga teng (8, 64, 256 yoki 1024).
Dastur bajarilishi uchun Taymer / Hisoblagichni sinxronlashtirish uchun Prescaler Reset-dan foydalanish mumkin.
Tashqi soat manbai
T0 piniga qo'llaniladigan tashqi soat manbai taymer/taymer soati (clkT0) sifatida ishlatilishi mumkin. T0 pin - samphar bir tizim soati tsiklini sinxronizatsiya mantig'idan boshqaradi. Sinxronlashtirilgan (larampLED) signal uzatiladi
chekka detektori orqali. 11-2-rasm T0 sinxronizatsiyasi va chekka detektori mantiqining funktsional ekvivalent blok diagrammasini ko'rsatadi. Registrlar ichki tizim soatining musbat chekkasida (clkI/O) soatlanadi. Mandal ichki tizim soatining yuqori davrida shaffof bo'ladi.
Chet detektori aniqlagan har bir musbat (CS0[0:2] = 0) yoki salbiy (CS7[0:2] = 0) uchun bitta clkT6 puls hosil qiladi.
OCR0x registrlari Pulse Width Modulation (PWM) har qanday rejimidan foydalanganda ikki tamponli bo'ladi. Oddiy va Clear Timer on Compare (CTC) rejimlari uchun ikki tomonlama bufer o'chirilgan. Ikki marta tamponlash OCR0x taqqoslash registrlarini yangilashni hisoblash ketma-ketligining yuqori yoki pastki qismiga sinxronizatsiya qiladi. Sinxronizatsiya g'alati va nosimmetrik bo'lmagan PWM impulslarining paydo bo'lishiga to'sqinlik qiladi va shu bilan chiqishni nosozlik qiladi.
OCR0x registriga kirish murakkab ko'rinishi mumkin, ammo bunday emas. Ikki marta buferlash yoqilgan bo'lsa, protsessor OCR0x bufer registriga kirish huquqiga ega bo'ladi va agar buferlash o'chirilgan bo'lsa, protsessor to'g'ridan-to'g'ri OCR0x-ga kirish huquqiga ega bo'ladi.
Majburiy chiqishni taqqoslash
PWM bo'lmagan to'lqin shaklini yaratish rejimlarida taqqoslagichning mos keladigan chiqishi Force Output Compare (FOC0x) bitiga bittasini yozish orqali majburlanishi mumkin. Qiyoslash moslamasini majburlash OCF0x bayrog'ini o'rnatmaydi yoki taymerni qayta yuklaydi / o'chirmaydi, lekin OC0x pimi haqiqiy Compare Match sodir bo'lgandek yangilanadi (COM0x [1: 0] bit sozlamalari OC0x pinining o'rnatilgan yoki yo'qligini aniqlaydi. yoki o'zgartirilgan).
TCNT0 yozish orqali o'yinni taqiqlashni taqqoslang
TCNT0 Ro'yxatdan o'tish protsessoriga yozish bo'yicha barcha operatsiyalar, taymer to'xtagan taqdirda ham, keyingi taymer soat tsiklida yuzaga keladigan har qanday taqqoslash mosligini bloklaydi. Ushbu funktsiya OCR0x-ni TCNT0 bilan bir xil qiymatda Timer / Counter soati yoqilganda uzilishga olib kelmasdan boshlashga imkon beradi.
Chiqish solishtirish birligidan foydalanish
TCNT0-ni har qanday ish rejimida yozish bitta taymer soat tsikli uchun barcha taqqoslash moslamalarini blokirovka qilishi sababli, Chiqish taqqoslash birligidan foydalanishda TCNT0-ni o'zgartirganda, Taymer / Hisoblagich ishlayotgani yoki ishlamaganligidan qat'i nazar, xavf tug'diradi. Agar TCNT0 ga yozilgan qiymat OCR0x qiymatiga teng bo'lsa, taqqoslash moslamasi o'tkazib yuboriladi, natijada to'lqin shakli noto'g'ri hosil bo'ladi. Xuddi shunday, hisoblagich pastga hisoblaganda TCNT0 qiymatini BOTTOM ga teng deb yozmang.
OC0x-ni sozlash port pimi chiqishi uchun Ma'lumotlar yo'nalishi registrini o'rnatishdan oldin bajarilishi kerak. OC0x qiymatini o'rnatishning eng oson usuli - bu Oddiy rejimda Force Output Compare (FOC0x) strob bitlaridan foydalanish. OC0x registrlari o'zlarining qiymatlarini Waveform Generation rejimlari o'rtasida o'zgarganda ham saqlaydi.
COM0x [1: 0] bitlari taqqoslash qiymati bilan birga ikki marta buferlanmasligini biling. COM0x [1: 0] bitlarini o'zgartirish darhol kuchga kiradi.
Match Chiqish Birligini solishtiring
Chiqish rejimini taqqoslash (COM0x [1: 0]) bitlari ikkita funktsiyaga ega. To'lqin shakli yaratuvchisi keyingi taqqoslash o'yinida Chiqish solishtirish (OC0x) holatini aniqlash uchun COM1x [0: 0] bitlaridan foydalanadi. Shuningdek, COM0x [1: 0] bitlari OC0x pin chiqish manbasini boshqaradi. 11-6-rasm COM0x [1: 0] bit sozlamalari ta'sir qilgan mantiqning soddalashtirilgan sxemasini ko'rsatadi. Rasmdagi I / O registrlari, I / U bitlari va I / U pinlari qalin harflar bilan ko'rsatilgan. Faqat COM0x [1: 0] bitlari ta'sir qiladigan umumiy I / U portni boshqarish registrlari (DDR va PORT) ko'rsatiladi. OC0x holatiga murojaat qilganda, OC0x piniga emas, balki ichki OC0x registriga murojaat qilinadi. Agar tizim qayta tiklansa, OC0x registri "0" ga o'rnatiladi.
OC0A / OC0B I / O piniga ulanganda COM0A [1: 0] / COM0B [1: 0] bitlarining funktsiyasi WGM0 [2: 0] bit sozlamasiga bog'liq. 11-2-jadval WGM0 [1: 0] bitlari normal yoki CTC rejimiga (PWM bo'lmagan) o'rnatilganda COM0x [2: 0] bit funksiyasini ko'rsatadi.
11-2-jadval. Chiqish rejimini, PWM bo'lmagan rejimni solishtiring
COM0A1 COM0B1 | COM0A0 COM0B0 | Tavsif |
0 | 0 | Portning normal ishlashi, OC0A / OC0B uzilgan. |
0 | 1 | Compare Match-da OC0A / OC0B-ni yoqing |
1 | 0 | Compare Match-da OC0A / OC0B-ni o'chirib tashlang |
1 | 1 | Compare Match-da OC0A / OC0B-ni o'rnating |
11-3-jadval WGM0 [1: 0] bitlari tez PWM rejimiga o'rnatilganda COM0x [2: 0] bit funksiyasini ko'rsatadi.
11-3-jadval. Chiqish rejimini, Tez PWM rejimini solishtiring(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Tavsif |
0 | 0 | Portning normal ishlashi, OC0A / OC0B uzilgan. |
0 | 1 | Zaxiralangan |
1 | 0 | Compare Match-da OC0A / OC0B-ni o'chirib tashlang, BOTTOM-da OC0A / OC0B-ni o'rnating (teskari bo'lmagan rejim) |
1 | 1 | Compare Match-da OC0A / OC0B-ni o'rnating, BOTTOM-da OC0A / OC0B-ni tozalang (teskari rejim) |
Eslatma: OCR0A yoki OCR0B TOP ga teng bo'lsa va COM0A1/COM0B1 o'rnatilganda alohida holat yuzaga keladi. Bunday holda, taqqoslash e'tiborga olinmaydi, lekin to'plam yoki tozalash BOTTOM da amalga oshiriladi. Qarang 73-betdagi "Tez PWM rejimi" batafsil ma'lumot uchun.
11-4-jadval WGM0 [1: 0] bitlari PWM rejimini bosqichma-bosqich sozlash uchun o'rnatilganda COM0x [2: 0] bit funksiyasini ko'rsatadi.
11-4-jadval. Chiqish rejimini, fazani to'g'ri PWM rejimini solishtiring(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Tavsif |
0 | 0 | Portning normal ishlashi, OC0A / OC0B uzilgan. |
0 | 1 | Zaxiralangan |
1 | 0 | Hisoblash paytida OC0A / OC0B-ni solishtiring. Orqaga hisoblaganda OC0A / OC0B-ni Compare Match-ga o'rnating. |
1 | 1 | Hisoblash paytida OC0A / OC0B-ni Compare Match-ga o'rnating. Pastga hisoblaganda OC0A / OC0B-ni solishtiring. |
Eslatma: 1. OCR0A yoki OCR0B TOP ga teng bo'lsa va COM0A1/COM0B1 o'rnatilganda maxsus holat yuzaga keladi. Bunday holda, solishtirish moslamasi e'tiborga olinmaydi, lekin to'plam yoki tozalash TOP da amalga oshiriladi. Qarang 74-betdagi "Faza to'g'ri PWM rejimi" batafsil ma'lumot uchun.
Bitlar 3: 2 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bitlar 1: 0 - WGM0 [1: 0]: To'lqin shaklini yaratish rejimi
TCCR02B registrida joylashgan WGM0 biti bilan birgalikda bu bitlar hisoblagichni hisoblash ketma-ketligini, maksimal (TOP) hisoblagich qiymati uchun manbani va qanday to'lqin shaklini yaratish turini boshqarishini nazorat qiladi 11-5-jadval. Taymer / hisoblagich tomonidan qo'llab-quvvatlanadigan ish rejimlari quyidagilardir: Oddiy rejim (hisoblagich), Taqqoslash moslamasida Clear Timer (CTC) rejimi va Pulse Width Modulation (PWM) rejimlarining ikki turi (qarang) "Ish rejimlari" 71-sahifada).
11-5-jadval. To'lqin shaklini yaratish rejimi bit tavsifi
Rejim | WGM 02 | WGM 01 | WGM 00 | Taymer / hisoblagich ishlash tartibi | TOP | OCRx-ni yangilash | TOV flagmani o'rnatilgan |
0 | 0 | 0 | 0 | Oddiy | 0xFF | Darhol | MAX(1) |
1 | 0 | 0 | 1 | PWM, to'g'ri bosqich | 0xFF | TOP | BOTTOM(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Darhol | MAX(1) |
3 | 0 | 1 | 1 | Tez PWM | 0xFF | BOTTOM(2) | MAX(1) |
4 | 1 | 0 | 0 | Zaxiralangan | – | – | – |
5 | 1 | 0 | 1 | PWM, to'g'ri bosqich | OCRA | TOP | BOTTOM(2) |
6 | 1 | 1 | 0 | Zaxiralangan | – | – | – |
7 | 1 | 1 | 1 | Tez PWM | OCRA | BOTTOM(2) | TOP |
Bit 7 - FOC0A: Kuchli chiqishni solishtiring A
FOC0A biti faqat WGM bitlari PWM bo'lmagan rejimni belgilaganda faollashadi.
Biroq, kelajakdagi qurilmalar bilan mosligini ta'minlash uchun, PWM rejimida ishlaganda TCCR0B yozilganda ushbu bit nolga o'rnatilishi kerak. FOC0A bitiga mantiqiy yozuvni yozishda darhol Compare Match to'lqin shaklini yaratish bo'limiga majbur qilinadi. OC0A chiqishi COM0A [1: 0] bit sozlamasiga muvofiq o'zgartiriladi. E'tibor bering, FOC0A biti strobe sifatida amalga oshiriladi. Shuning uchun majburiy taqqoslash samarasini aniqlaydigan COM0A [1: 0] bitlarida mavjud bo'lgan qiymat.
FOC0A strobi hech qanday uzilishni keltirib chiqarmaydi va CTC rejimida taymerni TOP sifatida OCR0A yordamida o'chirmaydi. FOC0A bit har doim nol sifatida o'qiladi.
Bit 6 - FOC0B: Kuchli chiqishni solishtiring B
FOC0B biti faqat WGM bitlari PWM bo'lmagan rejimni ko'rsatganda faollashadi.
Biroq, kelajakdagi qurilmalar bilan mosligini ta'minlash uchun, PWM rejimida ishlaganda TCCR0B yozilganda ushbu bit nolga o'rnatilishi kerak. FOC0B bitiga mantiqiy yozuvni yozishda darhol Compare Match to'lqin shaklini yaratish bo'limiga majbur qilinadi. OC0B chiqishi COM0B [1: 0] bit parametrlariga muvofiq o'zgartiriladi. E'tibor bering, FOC0B biti strobe sifatida amalga oshiriladi. Shuning uchun majburiy taqqoslash ta'sirini aniqlaydigan COM0B [1: 0] bitlaridagi qiymat.
FOC0B strobi hech qanday uzilishni keltirib chiqarmaydi va TOC sifatida OCR0B yordamida taymerni CTC rejimida o'chirmaydi.
FOC0B bit har doim nol sifatida o'qiladi.
Bitlar 5: 4 - Res: Zaxiralangan bitlar
Ushbu bitlar ATtiny25 / 45/85-da zaxiralangan bitlar va har doim nol sifatida o'qiladi.
Bit 3 - WGM02: to'lqin shaklini yaratish rejimi
Quyidagi tavsifga qarang "TCCR0A - Taymer / hisoblagichni boshqarish registri A" 77-bet.
Bitlar 2: 0 - CS0 [2: 0]: Soatni tanlash
Uchta Clock Select biti Taymer / Hisoblagich tomonidan ishlatiladigan soat manbasini tanlaydi.
11-6-jadval. Soat Bit tavsifini tanlang
CS02 | CS01 | CS00 | Tavsif |
0 | 0 | 0 | Soat manbai yo'q (Taymer / Hisoblagich to'xtadi) |
0 | 0 | 1 | clkI/O/(oldindan masshtablash yo'q) |
0 | 1 | 0 | clkI/O/8 (oldindan shkaladan) |
0 | 1 | 1 | clkI/O/64 (oldindan shkaladan) |
1 | 0 | 0 | clkI/O/256 (oldindan shkaladan) |
1 | 0 | 1 | clkI/O/1024 (oldindan shkaladan) |
1 | 1 | 0 | T0 pinidagi tashqi soat manbai. Yiqilgan soat. |
1 | 1 | 1 | T0 pinidagi tashqi soat manbai. Ko'tarilgan chekkada soat. |
Agar Timer / Counter0 uchun tashqi pin rejimlari ishlatilsa, T0 pinidagi o'tish pim chiqish sifatida tuzilgan bo'lsa ham hisoblagichni ishlaydi. Ushbu xususiyat hisoblashni dasturiy ta'minot orqali boshqarish imkonini beradi.
Hisoblagich va taqqoslash birliklari
Timer / Counter1 umumiy ishlashi asenkron rejimda tavsiflanadi va sinxronizatsiya rejimida ishlash faqat shu ikki rejim o'rtasida farqlar mavjud bo'lganda zikr qilinadi. 12-2-rasm Timer / Counter 1 sinxronizatsiya registrining blok diagrammasini va registrlar orasidagi sinxronizatsiya kechikishini ko'rsatadi. Barcha soat tafsilotlari rasmda ko'rsatilmaganligini unutmang. Timer / Counter1 registri qiymatlari hisoblagich ishiga ta'sir qilishdan oldin ichki sinxronizatsiya registrlari orqali o'tadi, bu esa kirish sinxronizatsiyasining kechikishiga olib keladi. TCCR1, GTCCR, OCR1A, OCR1B va OCR1C registrlari registrni yozgandan so'ng darhol o'qilishi mumkin. Orqaga o'qilgan qiymatlar kirish va chiqish sinxronizatsiyasi sababli Timer / Counter1 (TCNT1) registri va bayroqlari (OCF1A, OCF1B va TOV1) uchun kechiktiriladi.
Timer / Counter1 yuqori piksellar sonini va past aniqlanish imkoniyatlari bilan yuqori aniqlikdan foydalanadi. Shuningdek, 8 MGts (yoki past tezlik rejimida 64 MGts) gacha bo'lgan soat tezligini ishlatib, ikkita aniq, yuqori tezlikda, 32-bitli puls kengligi modulyatorlarini qo'llab-quvvatlashi mumkin. Ushbu rejimda Timer / Counter1 va chiqishni taqqoslash registrlari bir-birining ustiga chiqmaydigan teskari va teskari chiqishlari bo'lgan ikkita mustaqil PWM sifatida xizmat qiladi. Qarang 86-bet ushbu funktsiya bo'yicha batafsil tavsif uchun. Shunga o'xshab, oldindan hisoblashning yuqori imkoniyatlari ushbu qurilmani past tezlikda ishlaydigan funktsiyalar yoki kamdan-kam hollarda aniq vaqtni belgilash funktsiyalari uchun foydalidir.
12-2-rasm. Taymer/taymer 1 Sinxronizatsiya registri blok diagrammasi.
Taymer / hisoblagich1 va oldindan hisoblagich protsessorni har qanday soat manbasidan ishlashga imkon beradi, shu bilan oldindan sozlagich asenkron rejimda 64 MGts (yoki past tezlik rejimida 32 MGts) tezlikda ishlaydi.
Tizimning soat chastotasi PCK chastotasining uchdan biridan past bo'lishi kerakligini unutmang. Asenkron Timer / Counter1 sinxronizatsiya mexanizmi tizim soati baland bo'lganda PCK ning kamida ikkita qirrasini talab qiladi. Agar tizim soatining chastotasi juda katta bo'lsa, bu ma'lumotlar yoki boshqaruv qiymatlarini yo'qotish xavfi.
Quyidagi 12-3-rasm Timer / Counter1 uchun blok diagrammasini ko'rsatadi.
12-1-jadval. PWM rejimida solishtirish rejimini tanlash
COM1x1 | COM1x0 | Chiqarishni solishtirish pinlariga ta'siri |
0 | 0 | OC1x ulanmagan. OC1x ulanmagan. |
0 | 1 | OC1x taqqoslangan o'yinda tozalandi. TCNT1 = $ 00 vaqtini belgilang. OC1x taqqoslash o'yiniga o'rnatildi. TCNT1 = $ 00 bo'lganda o'chirildi. |
1 | 0 | OC1x taqqoslangan o'yinda tozalandi. TCNT1 = $ 00 bo'lganda o'rnating. OC1x ulanmagan. |
1 | 1 | OC1x solishtiring. TCNT1 = $ 00 bo'lganda o'chirildi. OC1x ulanmagan. |
ADC xususiyatlari
21-8-jadval. ADC xususiyatlari, bitta tugaydigan kanallar. TA = -40 ° C dan + 85 ° C gacha
Belgi | Parametr | Vaziyat | Min | Tip | Maks | Birliklar |
Rezolyutsiya | 10 | Bitlar | ||||
Mutlaqo aniqlik (INL, DNL va kvantizatsiya, daromad va ofset xatolari bilan) | VREF = 4V, VCC = 4V,
ADC soat = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC soat = 1 MGts |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC soat = 200 kHz Shovqinni pasaytirish rejimi |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC soat = 1 MGts Shovqinni pasaytirish rejimi |
2.5 | LSB | ||||
Integral Lineerlik (INL) (ofsetdan keyin aniqlik va kalibrlash) | VREF = 4V, VCC = 4V,
ADC soat = 200 kHz |
1 | LSB | |||
Diferensial bo'lmagan (DNL) | VREF = 4V, VCC = 4V,
ADC soat = 200 kHz |
0.5 | LSB | |||
Xato | VREF = 4V, VCC = 4V,
ADC soat = 200 kHz |
2.5 | LSB | |||
Ofset xatosi | VREF = 4V, VCC = 4V,
ADC soat = 200 kHz |
1.5 | LSB | |||
O'tkazish vaqti | Bepul ishlaydigan konversiya | 14 | 280 | ms | ||
Soat chastotasi | 50 | 1000 | kHz | |||
VIN | Kirish hajmitage | GND | VREF | V | ||
O'tkazish kengligi | 38.4 | kHz | ||||
AREF | Tashqi ma'lumotnoma jilditage | 2.0 | VCC | V | ||
VINT | Ichki jildtage Malumot | 1.0 | 1.1 | 1.2 | V | |
Ichki 2.56V mos yozuvlar (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kŌ | ||||
YOMG'IR | Analog kirish qarshiligi | 100 | MŌ | |||
ADC chiqishi | 0 | 1023 | LSB |
Eslatma: 1. Qiymatlar faqat ko'rsatmalardir.
21-9-jadval. ADC xususiyatlari, differensial kanallar (Unipolyar rejim). TA = -40 ° C dan + 85 ° C gacha
Belgi | Parametr | Vaziyat | Min | Tip | Maks | Birliklar |
Rezolyutsiya | Daromad = 1x | 10 | Bitlar | |||
Daromad = 20x | 10 | Bitlar | ||||
Mutlaqo aniqlik (INL, DNL va
Miqdor, daromad va ofset xatolari) |
Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
10.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
20.0 | LSB | ||||
Integral Lineerlik (INL) (Ofsetdan keyin aniqlik va daromadni kalibrlash) | Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
4.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
10.0 | LSB | ||||
Xato | Daromad = 1x | 10.0 | LSB | |||
Daromad = 20x | 15.0 | LSB | ||||
Ofset xatosi | Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
3.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
4.0 | LSB | ||||
O'tkazish vaqti | Bepul ishlaydigan konversiya | 70 | 280 | ms | ||
Soat chastotasi | 50 | 200 | kHz | |||
VIN | Kirish hajmitage | GND | VCC | V | ||
VDIFF | Kirish differentsial voltage | VREF/daromad | V | |||
O'tkazish kengligi | 4 | kHz | ||||
AREF | Tashqi ma'lumotnoma jilditage | 2.0 | VCC - 1.0 | V | ||
VINT | Ichki jildtage Malumot | 1.0 | 1.1 | 1.2 | V | |
Ichki 2.56V mos yozuvlar (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Yo'naltiruvchi kirish qarshiligi | 32 | kŌ | |||
YOMG'IR | Analog kirish qarshiligi | 100 | MŌ | |||
ADC konversiya chiqishi | 0 | 1023 | LSB |
Eslatma: qiymatlar faqat ko'rsatmalardir.
21-10-jadval. ADC xususiyatlari, differensial kanallar (bipolyar rejim). TA = -40 ° C dan + 85 ° C gacha
Belgi | Parametr | Vaziyat | Min | Tip | Maks | Birliklar |
Rezolyutsiya | Daromad = 1x | 10 | Bitlar | |||
Daromad = 20x | 10 | Bitlar | ||||
Mutlaqo aniqlik (INL, DNL va
Miqdor, daromad va ofset xatolari) |
Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
8.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
8.0 | LSB | ||||
Integral Lineerlik (INL) (Ofsetdan keyin aniqlik va daromadni kalibrlash) | Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
4.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
5.0 | LSB | ||||
Xato | Daromad = 1x | 4.0 | LSB | |||
Daromad = 20x | 5.0 | LSB | ||||
Ofset xatosi | Daromad = 1x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
3.0 | LSB | |||
Daromad = 20x
VREF = 4V, VCC = 5V ADC soat = 50 - 200 kHz |
4.0 | LSB | ||||
O'tkazish vaqti | Bepul ishlaydigan konversiya | 70 | 280 | ms | ||
Soat chastotasi | 50 | 200 | kHz | |||
VIN | Kirish hajmitage | GND | VCC | V | ||
VDIFF | Kirish differentsial voltage | VREF/daromad | V | |||
O'tkazish kengligi | 4 | kHz | ||||
AREF | Tashqi ma'lumotnoma jilditage | 2.0 | VCC - 1.0 | V | ||
VINT | Ichki jildtage Malumot | 1.0 | 1.1 | 1.2 | V | |
Ichki 2.56V mos yozuvlar (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Yo'naltiruvchi kirish qarshiligi | 32 | kŌ | |||
YOMG'IR | Analog kirish qarshiligi | 100 | MŌ | |||
ADC konversiya chiqishi | -512 | 511 | LSB |
Ko'rsatmalar to'plamining qisqacha mazmuni
Mnemonika | Operandlar | Tavsif | Operatsiya | Bayroqlar | # Soatlar |
ARIFMETIKA VA Mantiqiy ko'rsatmalar | |||||
QO‘SHISH | Rd, Rr | Ikki reestrni qo'shing | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Ikkita registrni olib yurish bilan qo'shing | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | So'zga darhol qo'shish | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Ikki registrni olib tashlang | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
YUQARI | Rd, K. | Ro'yxatdan doimiyni olib tashlang | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Ikkita registrni olib yurish bilan olib tashlang | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K. | Reg-dan Carry Constant bilan olib tashlang. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Word-dan darhol oling | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
VA | Rd, Rr | Mantiqiy va registrlar | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K. | Mantiqiy va ro'yxatdan o'tish va doimiy | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Mantiqiy YOKI registrlar | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K. | Mantiqiy YOKI Ro'yxatdan o'tish va doimiy | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Eksklyuziv yoki registrlar | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Bittasini to'ldiruvchi | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Ikkining toʻldiruvchisi | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Ro'yxatga olishda Bit (lar) ni o'rnating | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Ro'yxatdan o'tish joyidagi bit (lar) ni tozalash | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | O'sish | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Kamaytirish | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Nol yoki minus uchun sinov | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Ro'yxatdan o'tishni tozalash | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Ro'yxatdan o'ting | Rd ← 0xFF | Yo'q | 1 |
Filial ko'rsatmalari | |||||
RJMP | k | Nisbiy sakrash | Kompyuter ← Kompyuter + k + 1 | Yo'q | 2 |
IJMP | Bilvosita o'tish (Z) | Kompyuter ← Z | Yo'q | 2 | |
QAYTISH | k | Nisbiy subroutine chaqiruvi | Kompyuter ← Kompyuter + k + 1 | Yo'q | 3 |
MEN QO'NG'IROQ QILAMAN | (Z) raqamiga bilvosita qo'ng'iroq | Kompyuter ← Z | Yo'q | 3 | |
RET | Subroutine qaytish | Kompyuter ← STACK | Yo'q | 4 | |
RETI | Qaytishni to'xtatish | Kompyuter ← STACK | I | 4 | |
CPSE | Rd, Rr | Taqqoslang, Teng bo'lsa o'tkazib yuboring | agar (Rd = Rr) PC ← PC + 2 yoki 3 | Yo'q | 1/2/3 |
CP | Rd, Rr | Taqqoslash | Rd - Rr | Z, N, V, C, H | 1 |
CPC | Rd, Rr | Carry bilan solishtiring | Rd − Rr − C | Z, N, V, C, H | 1 |
CPI | Rd, K | Ro'yxatdan o'tishni darhol bilan taqqoslang | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, b | Ro'yxatdan o'tish biti o'chirilgan bo'lsa o'tkazib yuboring | agar (Rr(b)=0) PC ← PC + 2 yoki 3 | Yo'q | 1/2/3 |
SBRS | Rr, b | Ro'yxatdan o'tishda bit o'rnatilgan bo'lsa, o'tkazib yuboring | agar (Rr(b)=1) PC ← PC + 2 yoki 3 | Yo'q | 1/2/3 |
SBIC | P, b | Agar I / O Ro'yxatdan o'tish o'chirilgan bo'lsa, o'tkazib yuboring | agar (P(b)=0) PC ← PC + 2 yoki 3 | Yo'q | 1/2/3 |
SBIS | P, b | I / U registrida Bit o'rnatilgan bo'lsa, o'tkazib yuboring | agar (P(b)=1) PC ← PC + 2 yoki 3 | Yo'q | 1/2/3 |
BRBS | s, k | Vaziyat bayrog'i o'rnatilgan bo'lsa, filial | agar (SREG(lar) = 1) bo'lsa, u holda PC←PC+k + 1 | Yo'q | 1/2 |
BRBC | s, k | Vaziyat bayrog'i o'chirilgan bo'lsa, filial | agar (SREG(lar) = 0) bo'lsa, u holda PC←PC+k + 1 | Yo'q | 1/2 |
BREQ | k | Teng bo'lsa, filial | agar (Z = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRNE | k | Teng bo'lmasa, filial | agar (Z = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRCS | k | Agar tashish vositasi bo'lsa filial | agar (C = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRCC | k | Agar olib borilsa, filial | agar (C = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRSH | k | Xuddi shu yoki undan yuqori bo'lsa, filial | agar (C = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRLO | k | Agar pastki bo'lsa, filial | agar (C = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRMI | k | Minus bo'lsa filial | agar (N = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRPL | k | Agar ortiqcha bo'lsa, filial | agar (N = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRGE | k | Katta yoki teng bo'lsa, imzolangan filial | agar (N ⊕ V= 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRLT | k | Noldan kam bo'lsa, imzolangan filial | agar (N ⊕ V= 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRHS | k | Yarim ko'taradigan bayroq o'rnatilgan bo'lsa, filial | agar (H = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRHC | k | Yarim ko'tarilgan bayroq o'chirilgan bo'lsa, filial | agar (H = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRTS | k | T bayrog'i o'rnatilgan bo'lsa, filial | agar (T = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRTC | k | T bayrog'i o'chirilgan bo'lsa, filial | agar (T = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRVS | k | Haddan tashqari bayroq o'rnatilgan bo'lsa, filial | agar (V = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRVC | k | Haddan tashqari bayroq o'chirilgan bo'lsa, filial | agar (V = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRIE | k | Agar uzilish yoqilgan bo'lsa, filial | agar ( I = 1) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BRID | k | Agar uzilish o'chirilgan bo'lsa, filial | agar ( I = 0) bo'lsa, u holda PC ← PC + k + 1 | Yo'q | 1/2 |
BIT VA BIT-TEST ko'rsatmalari | |||||
SBI | P, b | I / U registrida Bitni o'rnating | I/U(P,b) ← 1 | Yo'q | 2 |
CBI | P, b | Kiritish-chiqarish registrida bitni o'chirish | I/U(P,b) ← 0 | Yo'q | 2 |
LSL | Rd | Chapga mantiqiy siljish | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Mantiqiy siljish o'ngga | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
ROLI | Rd | Tashish orqali chapga buriling | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Yuk ko'tarish orqali to'g'ri aylantiring | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Arifmetik siljish o‘ngga | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonika | Operandlar | Tavsif | Operatsiya | Bayroqlar | # Soatlar |
SWAP | Rd | Nibblesni almashtirish | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Yo'q | 1 |
BSET | s | Bayroqlar to'plami | SREG(lar) ← 1 | SREG (lar) | 1 |
BCLR | s | Bayroq tozalandi | SREG(lar) ← 0 | SREG (lar) | 1 |
BST | Rr, b | Bit do'koni Ro'yxatdan o'tishdan Tgacha | T ← Rr(b) | T | 1 |
BLD | Rd, b | T-dan Ro'yxatdan o'tishgacha bit yuk | Rd(b) ← T | Yo'q | 1 |
SEC | Carry-ni o'rnating | C ← 1 | C | 1 | |
CLC | Tashishni tozalash | C ← 0 | C | 1 | |
SEN | Salbiy bayroqni o'rnating | N ← 1 | N | 1 | |
CLN | Salbiy bayroqni tozalash | N ← 0 | N | 1 | |
EIZ | Nolinchi bayroqni o'rnating | Z ← 1 | Z | 1 | |
CLZ | Nol bayrog'ini tozalash | Z ← 0 | Z | 1 | |
SEI | Global uzilishni yoqish | Men ← 1 | I | 1 | |
CLI | Global interruptni o'chirib qo'yish | Men ← 0 | I | 1 | |
SES | Imzolangan sinov bayrog'ini o'rnating | S ← 1 | S | 1 | |
CLS | Imzo qo'yilgan sinov bayrog'ini tozalash | S ← 0 | S | 1 | |
SEV | Twos Complement Overflow-ni o'rnating. | V ← 1 | V | 1 | |
CLV | Twos-ning to'ldirilishini tozalash | V ← 0 | V | 1 | |
SET | SREG-da T-ni o'rnating | T ← 1 | T | 1 | |
CLT | SREG-da T tozalang | T ← 0 | T | 1 | |
Seh | SREG-da Halry Carry Flag-ni o'rnating | H ← 1 | H | 1 | |
CLH | SREG-da yarmini ko'tarish bayrog'ini tozalash | H ← 0 | H | 1 | |
Ma'lumotlarni uzatish bo'yicha ko'rsatmalar | |||||
MOV | Rd, Rr | Ro'yxatdan o'tish kitoblari o'rtasida harakat qilish | Rd ← Rr | Yo'q | 1 |
MOVW | Rd, Rr | Ro'yxatdan o'tish so'zini nusxalash | Rd+1:Rd ← Rr+1:Rr | Yo'q | 1 |
LDI | Rd, K. | Darhol yuklang | Rd ← K | Yo'q | 1 |
LD | Rd, X | Bilvosita yuklash | Rd ← (X) | Yo'q | 2 |
LD | Rd, X + | Bilvosita va Post-Inc yuklang. | Rd ← (X), X ← X + 1 | Yo'q | 2 |
LD | Rd, - X | Bilvosita va Dekabrgacha yuklang. | X ← X – 1, Rd ← (X) | Yo'q | 2 |
LD | Rd, Y | Bilvosita yuklash | Rd ← (Y) | Yo'q | 2 |
LD | Rd, Y + | Bilvosita va Post-Inc yuklang. | Rd ← (Y), Y ← Y + 1 | Yo'q | 2 |
LD | Rd, - Y | Bilvosita va Dekabrgacha yuklang. | Y ← Y – 1, Rd ← (Y) | Yo'q | 2 |
LDD | Rd, Y + q | Ko'chirish bilan bilvosita yuk | Rd ← (Y + q) | Yo'q | 2 |
LD | Rd, Z | Bilvosita yuklash | Rd ← (Z) | Yo'q | 2 |
LD | Rd, Z + | Bilvosita va Post-Inc yuklang. | Rd ← (Z), Z ← Z+1 | Yo'q | 2 |
LD | Rd, -Z | Bilvosita va Dekabrgacha yuklang. | Z ← Z – 1, Rd ← (Z) | Yo'q | 2 |
LDD | Rd, Z + q | Ko'chirish bilan bilvosita yuk | Rd ← (Z + q) | Yo'q | 2 |
LDS | Rd, k | SRAM-dan to'g'ridan-to'g'ri yuklang | Rd ← (k) | Yo'q | 2 |
ST | X, Rr | Bilvosita saqlang | (X) ← Rr | Yo'q | 2 |
ST | X +, Rr | Bilvosita va Post-Inc do'konini saqlash. | (X) ← Rr, X ← X + 1 | Yo'q | 2 |
ST | - X, Rr | Bilvosita va Dekabrgacha saqlang. | X ← X – 1, (X) ← Rr | Yo'q | 2 |
ST | Y, Rr | Bilvosita saqlang | (Y) ← Rr | Yo'q | 2 |
ST | Y +, Rr | Bilvosita va Post-Inc do'konini saqlash. | (Y) ← Rr, Y ← Y + 1 | Yo'q | 2 |
ST | - Y, Rr | Bilvosita va Dekabrgacha saqlang. | Y ← Y – 1, (Y) ← Rr | Yo'q | 2 |
STD | Y + q, Rr | Joyni almashtirish bilan bilvosita saqlang | (Y + q) ← Rr | Yo'q | 2 |
ST | Z, Rr | Bilvosita saqlang | (Z) ← Rr | Yo'q | 2 |
ST | Z +, Rr | Bilvosita va Post-Inc do'konini saqlash. | (Z) ← Rr, Z ← Z + 1 | Yo'q | 2 |
ST | -Z, Rr | Bilvosita va Dekabrgacha saqlang. | Z ← Z – 1, (Z) ← Rr | Yo'q | 2 |
STD | Z + q, Rr | Joyni almashtirish bilan bilvosita saqlang | (Z + q) ← Rr | Yo'q | 2 |
STS | k, Rr | SRAM-ga to'g'ridan-to'g'ri saqlang | (k) ← Rr | Yo'q | 2 |
LPM | Dastur xotirasini yuklash | R0 ← (Z) | Yo'q | 3 | |
LPM | Rd, Z | Dastur xotirasini yuklash | Rd ← (Z) | Yo'q | 3 |
LPM | Rd, Z + | Yuklab olish dasturi xotirasi va Post-Inc | Rd ← (Z), Z ← Z+1 | Yo'q | 3 |
SPM | Dastur xotirasini saqlash | (z) ← R1:R0 | Yo'q | ||
IN | Rd, P. | Portda | Rd ← P | Yo'q | 1 |
OUT | P, Rr | Portdan chiqish | P ← Rr | Yo'q | 1 |
DURANG | Rr | Stack-da ro'yxatdan o'tishni bosing | STACK ← Rr | Yo'q | 2 |
POP | Rd | Stack-dan pop ro'yxatdan o'tish | Rd ← STACK | Yo'q | 2 |
MCU nazorati bo'yicha ko'rsatmalar | |||||
YO'Q | Operatsiya yo'q | Yo'q | 1 | ||
UYQU | Uxlash | (Kutish funktsiyasi uchun aniq pastga qarang) | Yo'q | 1 | |
WDR | Qo'riqchi itni tiklash | (WDR / Timer uchun aniq pastga qarang). | Yo'q | 1 | |
BREAK | Tanaffus |
Tezlik (MGts) (1) | Ta'minot jilditage (V) | Harorat diapazoni | Paket (2) | Buyurtma kodi (3) |
10 | 1.8 – 5.5 | Sanoat
(-40 ° C dan +85 ° C gacha) (4) |
8P3 | ATtiny45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | ATtiny45V-10XU ATtiny45V-10XUR | |||
20M1 | ATtiny45V-10MU ATtiny45V-10MUR | |||
20 | 2.7 – 5.5 | Sanoat
(-40 ° C dan +85 ° C gacha) (4) |
8P3 | ATtiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
Izohlar: 1. Tezlik va ta'minot voltage, bo'limga qarang 21.3 "Tezlik" 163-betda.
Barcha paketlar Pb-bepul, halotsiz va to'liq yashil rangga ega va ular Xavfli moddalarni cheklash bo'yicha Evropa yo'riqnomasiga (RoHS) mos keladi.
Kod ko'rsatkichlari
H: NiPdAu qo'rg'oshini tugatish
U: mat kalay
R: lenta va g'altak
Ushbu qurilmalar gofret shaklida ham ta'minlanishi mumkin. Buyurtma haqida batafsil ma'lumot va minimal miqdorlarni olish uchun iltimos, mahalliy Atmel savdo ofisiga murojaat qiling.
Xato
Xato ATtiny25
Ushbu bo'limdagi reviziya xati ATtiny25 moslamasini qayta ko'rib chiqilishini anglatadi.
Rev D - F
Ma'lumki xatolar yo'q.
Rev B - C
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
EEPROMni past soat chastotalarida va/yoki past etkazib berish hajmida o'qishga urinishtage noto'g'ri ma'lumotlarga olib kelishi mumkin.
Muammoni hal qilish / vaqtinchalik echim
EEPROM -dan soat chastotasi 1 MGts dan past bo'lsa va quvvat manbai bilan foydalanmangtage 2V dan past. Agar ish chastotasini 1 MGts dan yuqori ko'tarib bo'lmayditage 2V dan yuqori bo'lishi kerak. Xuddi shunday, agar etkazib berish hajmitage 2V dan yuqori ko'tarilishi mumkin emas, keyin ish chastotasi 1 MGts dan oshishi kerak.
Bu xususiyat haroratga bog'liq ekanligi ma'lum, ammo u tavsiflanmagan. Ko'rsatmalar faqat xona harorati uchun berilgan.
Vahiy A
S emasampLED.
Xato ATtiny45
Ushbu bo'limdagi reviziya xati ATtiny45 moslamasini qayta ko'rib chiqilishini anglatadi.
Rev F - G
Ma'lumki xatolar yo'q
Rev D - E
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
EEPROMni past soat chastotalarida va/yoki past etkazib berish hajmida o'qishga urinishtage noto'g'ri ma'lumotlarga olib kelishi mumkin.
Muammoni hal qilish / vaqtinchalik echim
EEPROM -dan soat chastotasi 1 MGts dan past bo'lsa va quvvat manbai bilan foydalanmangtage 2V dan past. Agar ish chastotasini 1 MGts dan yuqori ko'tarib bo'lmayditage 2V dan yuqori bo'lishi kerak. Xuddi shunday, agar etkazib berish hajmitage 2V dan yuqori ko'tarilishi mumkin emas, keyin ish chastotasi 1 MGts dan oshishi kerak.
Bu xususiyat haroratga bog'liq ekanligi ma'lum, ammo u tavsiflanmagan. Ko'rsatmalar faqat xona harorati uchun berilgan.
Rev B - C
PLL qulflanmayapti
Dastur kodidan o'qilgan EEPROM Lock Bit Mode 3-da ishlamaydi
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
OC1B- XOC1B-da taymer hisoblagichi 1 PWM chiqishi to'g'ri ishlamayapti
PLL qulflanmayapti
6.0 MGts dan past chastotalarda PLL bloklanmaydi
Muammoni hal qilish / vaqtinchalik echim
PLL-dan foydalanganda 6.0 MGts yoki undan yuqori tezlikda ishlang.
Dastur kodidan o'qilgan EEPROM Lock Bit Mode 3-da ishlamaydi
Memory Lock Bits LB2 va LB1 3-rejimga dasturlashtirilganda, EEPROM read dastur kodidan ishlamaydi.
Muammoni hal qilish / atrofida ishlash
Dastur kodini EEPROM-dan o'qish kerak bo'lganda, Bitni himoya qilish rejimini 3 o'rnatmang.
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
EEPROMni past soat chastotalarida va/yoki past etkazib berish hajmida o'qishga urinishtage noto'g'ri ma'lumotlarga olib kelishi mumkin.
Muammoni hal qilish / vaqtinchalik echim
EEPROM -dan soat chastotasi 1 MGts dan past bo'lsa va quvvat manbai bilan foydalanmangtage 2V dan past. Agar ish chastotasini 1 MGts dan yuqori ko'tarib bo'lmayditage 2V dan yuqori bo'lishi kerak. Xuddi shunday, agar etkazib berish hajmitage 2V dan yuqori ko'tarilishi mumkin emas, keyin ish chastotasi 1 MGts dan oshishi kerak.
Bu xususiyat haroratga bog'liq ekanligi ma'lum, ammo u tavsiflanmagan. Ko'rsatmalar faqat xona harorati uchun berilgan.
OC1B - XOC1B-da Taymer hisoblagich 1 PWM ishlab chiqarish to'g'ri ishlamaydi
Taymer Counter1 PWM chiqishi OC1B-XOC1B to'g'ri ishlamayapti. Faqat COM1B1 va COM1B0 boshqaruv bitlari COM1A1 va COM1A0 bilan bir xil rejimda bo'lgan taqdirda, OC1B-XOC1B chiqishi to'g'ri ishlaydi.
Muammoni hal qilish / atrofida ishlash
COM1A [1: 0] va COM1B [1: 0] boshqaruv bitlarida bir xil boshqaruv sozlamalarini ishlatish yagona vaqtinchalik echimdir, ma'lumotlar varag'idagi 14-4 jadvalga qarang. Muammo Tiny45 rev D uchun tuzatildi.
Vahiy A
Quvvatni sarflash juda yuqori
DebugWIRE uzilishlarga bir marta qadam qo'yganda aloqani yo'qotadi
PLL qulflanmayapti
Dastur kodidan o'qilgan EEPROM Lock Bit Mode 3-da ishlamaydi
EEPROM o'qilishi past quvvat hajmida muvaffaqiyatsiz bo'lishi mumkintage / past soat chastotasi
Quvvatni sarflash juda yuqori
Uchta holat juda katta quvvatni pasayishiga olib keladi. Bular:
Tashqi soat sigortalar tomonidan tanlanadi, lekin I / U PORT hali ham chiqish sifatida yoqilgan.
EEPROM o'chirilgandan oldin o'qiladi.
VCC 4.5 volt yoki undan yuqori.
Rad etish: Ushbu hujjatdagi ma'lumotlar Atmel mahsulotlari bilan bog'liq holda berilgan. Ushbu hujjat yoki Atmel mahsulotlarini sotish bilan bog'liq holda hech qanday intellektual mulk huquqiga ochiq yoki nazarda tutilgan litsenziya berilmaydi. ATMELDA OLGAN SAVDO SHARTLARI VA SHARTLARIDA MUSTAQO. WEBSITE, ATMEL HECH QANDAY MA'LUMATNI O'Z BO'LMAYDI VA O'Z MAHSULOTLARIGA BO'LGAN HAR QANDAY OG'ROQ, KO'ZINI YOKI QONUNIY KAFOLATLARNING, JUMLADAN, lekin ular bilan cheklanmagan holda, FAVORAT YOKI SOVDOR YOKI SOVDOR KO'CHILMASINING KAFOLATLARINI RADD ETmaydi. ATMEL HECH HOLDA HAR qanday to‘g‘ridan-to‘g‘ri, bilvosita, oqibatli, jazolovchi, maxsus yoki tasodifiy zararlar uchun (Jumladan, cheklovsiz, yo‘qotish va foyda, korxonaning FOYDALANISH, FOYDALANISH HO‘LLANILIShI UCHUN ZARARLAR) UCHUN JAVOB BO‘LADI. USHBU HUJJAT, AGAR ATMELGA BUNDAY ZARAR BERISH MUMKINLIGI HAQIDA MASLAHAT BERILGAN BO'LSA.
Atmel ushbu hujjat mazmunining to'g'riligi yoki to'liqligi bo'yicha hech qanday bayonot yoki kafolat bermaydi va istalgan vaqtda ogohlantirmasdan texnik xususiyatlar va mahsulot tavsiflariga o'zgartirishlar kiritish huquqini o'zida saqlab qoladi. Atmel bu erda keltirilgan ma'lumotlarni yangilash majburiyatini o'z zimmasiga olmaydi. Agar boshqacha ko'rsatilmagan bo'lsa, Atmel mahsulotlari avtomobil ilovalari uchun mos emas va foydalanilmaydi. Atmel mahsulotlari hayotni qo'llab-quvvatlash yoki qo'llab-quvvatlash uchun mo'ljallangan ilovalarda komponentlar sifatida foydalanish uchun mo'ljallanmagan, ruxsat berilmagan yoki kafolatlanmagan.