Атмел

Atmel 8 битийн AVR микроконтроллер нь 2/4/8К байт систем доторх програмчлагдсан флашчип

 

Онцлогууд

  • Өндөр хүчин чадалтай, бага чадалтай AVR® 8 битийн микроконтроллер
  • Нарийвчилсан RISC архитектур
  • 120 Хүчтэй зааварчилгаа - Хамгийн их цагийн циклийн гүйцэтгэл
  • 32 х 8 ерөнхий зориулалтын ажлын регистр
  • Бүрэн статик ажиллагаа
  • Дэгдэмхий бус хөтөлбөр ба өгөгдлийн дурсамж
  • 2/4 / 8K байт системд програмчлагдах програмын санах ойн флаш
  • Тэвчээр: 10,000 бичих/устгах мөчлөг
  • 128/256/512 байт систем доторх програмчлагдах боломжтой EEPROM
  • Тэвчээр: 100,000 бичих/устгах мөчлөг
  • 128/256/512 байт Дотоод SRAM
  • Өөрийгөө програмчлах Flash програм ба EEPROM өгөгдлийн аюулгүй байдлын програмчлалын түгжээ

Захын онцлог

  • 8 битийн таймер / тоолуур, Prescaler ба хоёр PWM сувагтай
  • Тусдаа Prescaler бүхий 8-бит өндөр хурдтай таймер / тоолуур
  • Тусдаа гаралттай харьцуулах регистр бүхий 2 өндөр давтамжийн PWM гаралт
  • Dead Time Generator програмчлагдах боломжтой
  • USI - Нөхцөл байдлыг илрүүлэгч бүхий Universal цуваа интерфэйс
  • 10 битийн ADC

4 Нэг төгсгөлтэй суваг

Програмчлагдах боломжтой 2 ялгаатай ADC сувгийн хос (1х, 20х)

Температурын хэмжилт

Тусдаа чипт Осциллятор бүхий програмчлагдах манаач цаг

Чип дээрх аналог харьцуулагч

Микроконтроллерийн тусгай шинж чанарууд

debugWIRE чип дээр дибаг хийх систем

SPI портоор дамжуулан системд програмчлагдах боломжтой

Гадаад болон дотоод тасалдлын эх үүсвэрүүд

Бага чадлын сул зогсолт, ADC-ийн дуу чимээг бууруулах, унтраах горим

Сайжруулсан асаах хэлхээ

Программчлагдах хүрэн хүрэн илрүүлэх хэлхээ

Дотоод шалгалт тохируулагч Oscillator

I / O ба багцууд

Зургаан программчлагдах I / O шугам

8 зүүтэй PDIP, 8 зүүтэй SOIC, 20 падтай QFN / MLF, 8 зүүтэй TSSOP (зөвхөн ATtiny45 / V)

Үйл ажиллагааны ботьtage
- ATtiny1.8V / 5.5V / 25V-ийн хувьд 45 - 85V
- ATtiny2.7 / 5.5/25-ийн хувьд 45 - 85V

Хурдны зэрэг
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V

Аж үйлдвэрийн температурын хүрээ

Эрчим хүчний бага зарцуулалт

Идэвхтэй горим:

1 МГц, 1.8В: 300 мкА

Асаах горим:

Зүү тохиргоо

Pinout ATtiny25 / 45/85 Тохиргоо

Pin тайлбар

VCC: Supply voltage.
GND: Газар.
В порт (PB5:PB0): В порт нь дотоод татах резистор бүхий 6 битийн хоёр чиглэлтэй оролт гаралтын порт юм (бит тус бүрээр сонгосон). Порт B гаралтын буфер нь өндөр угаалтуур болон эх үүсвэрийн чадавхитай тэгш хэмтэй хөтөч шинж чанартай байдаг. Оролтын хувьд гаднаас бага татагдсан порт В зүү нь татах резистор идэвхжсэн тохиолдолд гүйдэл үүсгэнэ. Цаг ажиллахгүй байсан ч дахин тохируулах нөхцөл идэвхжсэн үед В портын зүү нь гурвалсан байна.

Б порт нь жагсаалтад орсон ATtiny25 / 45/85-ийн янз бүрийн онцлог шинж чанаруудыг гүйцэтгэдэг
ATtiny25 дээр програмчлагдах I / O портууд PB3 ба PB4 (тээглүүр 2 ба 3) нь ATtiny15-тэй арагшаа нийцтэй байдлыг дэмжих зорилгоор ATtiny15 Compatibility Mode дээр солигддог.

RESET: Оролтыг дахин тохируулах. Энэ зүү дээр доод түвшний импульсийн уртаас урт байх нь цаг ажиллахгүй, дахин тохируулах зүү идэвхгүй болоогүй байсан ч дахин тохируулалтыг үүсгэнэ. Импульсийн хамгийн бага уртыг өгөгдсөн Хүснэгт 21-4 165-р хуудсанд. Богинохон импульс нь дахин тохируулахыг баталгаажуулдаггүй.

Дахин тохируулах зүүг (сул) I / O зүү болгон ашиглаж болно.

Дууслааview

ATtiny25 / 45/85 нь AVR сайжруулсан RISC архитектур дээр суурилсан бага хүчин чадалтай CMOS 8 битийн микроконтроллер юм. Нэг цагийн мөчлөгт хүчирхэг зааврыг ажиллуулснаар ATtiny25 / 45/85 нь нэг MHz тутамд 1 MIPS-д ойртох боломжийг олгодог бөгөөд системийн дизайнер нь боловсруулалтын хурдтай харьцуулахад цахилгаан зарцуулалтыг оновчтой болгох боломжийг олгодог.

Блок диаграм Блок диаграм

AVR цөм нь баялаг зааврыг 32 ерөнхий зориулалтын ажлын регистртэй нэгтгэдэг. Бүх 32 регистрүүд нь Арифметик Логик Нэгж (ALU) -тэй шууд холбогддог бөгөөд нэг цагийн мөчлөгт гүйцэтгэсэн нэг дан зааврын дагуу бие даасан хоёр бүртгэлд нэвтрэх боломжийг олгодог. Үүссэн архитектур нь кодын хувьд илүү үр ашигтай бөгөөд ердийн CISC микроконтроллеруудаас арав дахин хурдан дамжуулалт хийдэг.

ATtiny25 / 45/85 нь дараахь онцлог шинж чанаруудыг агуулдаг: 2/4 / 8K байт системчилсэн флаш, 128/256/512 байт EEPROM, 128/256/256 байт SRAM, 6 ерөнхий зориулалттай I / O шугам, 32 ерөнхий. зориулалтын ажлын регистрүүд, харьцуулах горимтой нэг 8 битийн таймер / тоолуур, нэг 8 битийн өндөр хурдтай таймер / тоолуур, бүх нийтийн цуваа интерфейс, дотоод болон гадаад тасалдал, 4 суваг, 10 битийн ADC, програмчлагдсан дотоод хяналтын цаг хэмжигч Осциллятор ба гурван програм хангамжийг сонгох боломжтой цахилгаан хэмнэх горим. Сул зогсолтын горим нь SRAM, Timer / Counter, ADC, Analog Comparator, Interrupt системийг үргэлжлүүлэн ажиллуулах боломжийг олгох үед CPU-г зогсооно. Унтраах горим нь регистрийн агуулгыг хэмнэж, дараагийн тасалдал эсвэл техник хангамжийг дахин тохируулах хүртэл бүх чип функцийг идэвхгүйжүүлдэг. ADC-ийн дуу чимээг бууруулах горим нь ADC хөрвүүлэлтийн үед дуу чимээг багасгахын тулд CPU болон ADC-ээс бусад бүх I / O модулиудыг зогсооно.

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

ATtiny25 / 45/85 AVR нь програм хангамж, системийг хөгжүүлэх хэрэгслүүдийн бүрэн багцаар дэмжигддэг бөгөөд үүнд: C холбогч, макро ассемблер, програм дибаг хийгч / симулятор ба үнэлгээний иж бүрдэл багтдаг.

Нөөцийн тухай

Хөгжлийн цогц хэрэгсэл, програмын тэмдэглэл, мэдээллийн хуудсыг татаж авах боломжтой http://www.atmel.com/avr.

Код Examples

Энэхүү баримт бичиг нь энгийн кодыг агуулнаampТөхөөрөмжийн янз бүрийн хэсгүүдийг хэрхэн ашиглахыг товч харуулсан les. Эдгээр код нь жишээ ньamples assume гэж хэсэг тодорхой толгой file эмхэтгэлээс өмнө оруулсан болно. Бүх C хөрвүүлэгч үйлдвэрлэгчид толгой хэсэгт битийн тодорхойлолтыг оруулдаггүй гэдгийг анхаарна уу files болон C хэл дээрх тасалдлыг зохицуулах нь хөрвүүлэгчээс хамаарна. Дэлгэрэнгүй мэдээллийг C хөрвүүлэгчийн баримт бичгүүдээр баталгаажуулна уу.

Өргөтгөсөн I / O газрын зураг дээр байрлах I / O регистрийн хувьд “IN”, “OUT”, “SBIS”, “SBIC”, “CBI”, “SBI” зааврыг өргөтгөсөн I-д нэвтрэх боломжийг олгодог заавраар солих шаардлагатай. / O. Ерөнхийдөө энэ нь "LDS" ба "STS" -ийг "SBRS", "SBRC", "SBR", "CBR" -тэй хослуулсан гэсэн үг юм. Бүх AVR төхөөрөмжүүд өргөтгөсөн I / O газрын зургийг агуулдаггүй болохыг анхаарна уу.

Capacitive Touch Sensing

Atmel QTouch Library нь Atmel AVR микроконтроллерууд дээр мэдрэгчтэй интерфейсийг ашиглахад хялбар шийдлээр хангадаг. QTouch номын сан нь QTouch® болон QMatrix® олж авах аргуудыг дэмждэг.

Мэдрэх мэдрэмжийг QTouch номын санг холбож, номын сангийн Хэрэглээний програмын интерфейс (API) ашиглан мэдрэгчтэй суваг, мэдрэгчийг тодорхойлох замаар ямар ч програмд ​​хялбархан нэмж өгдөг. Дараа нь програм сувгийн мэдээллийг авах, мэдрэгч мэдрэгчийн төлөвийг тодорхойлохын тулд API руу залгана.

QTouch номын сан нь үнэ төлбөргүй бөгөөд Atmel-аас татаж авах боломжтой webсайт. Нэмэлт мэдээлэл болон хэрэгжилтийн талаарх дэлгэрэнгүй мэдээллийг QTouch номын сангийн хэрэглэгчийн гарын авлагаас үзнэ үү – мөн Atmel-аас авах боломжтой webсайт.

Өгөгдөл хадгалах

Найдвартай байдлын мэргэшлийн үр дүнгээс үзэхэд төлөвлөсөн өгөгдөл хадгалах алдааны түвшин 1 жилийн хугацаанд 20 жилийн хугацаанд 85 PPM-ээс хамаагүй бага буюу 100 25С-т XNUMX жилийн турш байна.

AVR CPU-ийн цөм

Танилцуулга

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

Архитектур дууссанview Архитектур

Гүйцэтгэл ба параллелизмыг хамгийн дээд хэмжээнд байлгахын тулд AVR нь Харвардын архитектурыг ашигладаг. Програмын санах ой дахь зааврыг нэг түвшний хоолой дамжуулах хоолойгоор гүйцэтгэдэг. Нэг зааврыг гүйцэтгэж байх үед дараагийн зааврыг Програмын санах ойгоос урьдчилан татаж авдаг. Энэхүү үзэл баримтлал нь зааврыг цагийн мөчлөг бүрт гүйцэтгэх боломжийг олгодог. Програмын санах ой нь Систем доторх дахин програмчлагдах боломжтой флаш санах ой юм.

Хурдан нэвтрэх бүртгэл File Нэг цагийн мөчлөгт хандах хугацаа бүхий 32 х 8 битийн ерөнхий зориулалтын ажлын регистр агуулсан. Энэ нь нэг мөчлөгт арифметик логик нэгж (ALU) ажиллах боломжийг олгодог. Ердийн ALU үйлдлийн хувьд Бүртгэлээс хоёр операнд гарна File, үйлдлийг гүйцэтгэж, үр дүн нь Бүртгэлд хадгалагдана File- нэг цагийн мөчлөгт.

32 регистрийн зургаа нь өгөгдлийн орон зайн хаягжилтын 16 битийн шууд бус хаягийн регистрийн гурван заагч болгон ашиглаж болох бөгөөд ингэснээр хаягийн үр ашигтай тооцоо хийх боломжтой болно. Эдгээр хаягийн нэг заагчийг Flash програмын санах ой дахь хүснэгт хайхад хаяг заагч болгон ашиглаж болно. Эдгээр нэмэгдсэн функцийн регистрүүд нь энэ хэсэгт дараа тайлбарласан 16-битийн X-, Y-, Z-регистр юм.

ALU нь регистрүүдийн хооронд эсвэл тогтмол ба регистрийн хоорондох арифметик ба логик ажиллагааг дэмждэг. Нэг бүртгэлийн үйл ажиллагааг ALU-д гүйцэтгэж болно. Арифметик үйлдэл хийсний дараа үйл ажиллагааны үр дүнгийн талаархи мэдээллийг тусгах зорилгоор Статусын бүртгэлийг шинэчилдэг.

Хөтөлбөрийн урсгалыг нөхцөлт ба болзолгүй үсрэлт, дуудлагын заавраар хангаж, хаягийн бүх зайг шууд шийдвэрлэх боломжтой. Ихэнх AVR заавар нь 16 битийн үгийн форматтай байдаг боловч 32 битийн заавар байдаг.

Тасалдал болон дэд програмын дуудлага хийх үед буцах хаяг Program Counter (PC) нь Stack дээр хадгалагддаг. Стекийг ерөнхий SRAM өгөгдөлд үр дүнтэй хуваарилдаг бөгөөд ингэснээр Stack хэмжээ нь зөвхөн SRAM-ийн нийт хэмжээ болон SRAM-ийн ашиглалтаар хязгаарлагддаг. Бүх хэрэглэгчийн програмууд нь Дахин тохируулах горим дахь SP-г эхлүүлэх ёстой (дэд горимууд эсвэл тасалдал эхлэхээс өмнө). Stack Pointer (SP) -ийг I / O зайнд унших / бичих боломжтой. SRAM өгөгдлийг AVR архитектурт дэмжигдсэн таван өөр хаягийн горимоор дамжуулан хялбархан олж авах боломжтой.

AVR архитектур дахь санах ойн зай нь бүгд шугаман ба тогтмол санах ойн зураглал юм.

Тасалдлын уян хатан модуль нь Статус Бүртгэлд нэмэлт Global Interrupt Enable бит бүхий I / O зайд хяналтын регистрүүдтэй байдаг. Бүх тасалдал нь Тасалдлын вектор хүснэгтэд тусдаа тасалдлын вектортой байдаг. Тасалдал нь тэдний тасалдлын вектор байрлалын дагуу тэргүүлэх ач холбогдолтой юм. Тасалдлын вектор хаяг бага байх тусам тэргүүлэх ач холбогдол өндөр болно.

Оролт/гаралтын санах ой нь хяналтын бүртгэл, SPI болон бусад оролт/гаралтын функцууд зэрэг CPU-ийн нэмэлт функцүүдийн 64 хаягийг агуулдаг. Оролт/гаралтын санах ойд шууд хандаж болно, эсвэл Бүртгэлийн дараа өгөгдлийн орон зайн байршлаар хандаж болно File, 0x20 – 0x5F.

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

Өндөр үзүүлэлттэй AVR ALU нь бүх ерөнхий зориулалтын 32 ажлын регистрүүдтэй шууд холбоотой ажилладаг. Нэг цагийн мөчлөгийн хүрээнд ерөнхий зориулалтын регистрүүдийн хооронд эсвэл бүртгэл ба шууд хоорондох арифметик үйлдлүүдийг гүйцэтгэдэг. ALU үйлдлийг арифметик, логик, битийн функц гэсэн үндсэн гурван ангилалд хуваадаг. Архитектурын зарим хэрэгжүүлэлт нь гарын үсэггүй / гарын үсэггүй үржүүлгийн болон бутархай форматыг хоёуланг нь дэмждэг хүчирхэг үржүүлэгчийг бий болгодог. Дэлгэрэнгүй тайлбарыг "Зааврын багц" хэсгээс үзнэ үү.

Статусын бүртгэл

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

Статус регистрийг тасалдлын горимд оруулахдаа автоматаар хадгалдаггүй бөгөөд тасалдалтаас буцаж ирэхэд сэргээдэг. Үүнийг програм хангамжаар зохицуулах ёстой.

SREG - AVR статусын бүртгэл

AVR статусын бүртгэл - SREG - гэж дараахь байдлаар тодорхойлно.

Бит 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7 - I: Global Interrupt Enable

Тасалдлыг идэвхжүүлэхийн тулд Global Interrupt Enable битийг тохируулсан байх ёстой. Тусдаа тасалдлыг идэвхжүүлэх хяналтыг дараа нь тусдаа хяналтын регистрүүдэд гүйцэтгэдэг. Хэрэв дэлхийн тасалдлыг идэвхжүүлэх бүртгэлийг арилгасан бол тасалдлыг идэвхжүүлэх тохиргооноос хамааралгүйгээр тасалдлын аль нь ч идэвхжээгүй болно. I-битийг тасалдал гарсны дараа техник хангамжаар арилгаж RETI заавраар тохируулж дараачийн тасалдлыг идэвхжүүлдэг. I-bit-ийг SEI ба CLI зааврын хамт програмын тохиргооноос цэвэрлэж болно.

Бит 6 - Т: Бит хуулбар хадгалах сан

Bit Copy зааврууд BLD (Bit LoaD) болон BST (Bit STore) нь T-битийг ажиллаж байгаа битийн эх үүсвэр эсвэл очих газар болгон ашигладаг. Бүртгэлийн бүртгэлээс бага зэрэг File BST-ийн заавраар T-д хуулж болно, Т-ийн битийг Бүртгэлийн регистрийн бит рүү хуулж болно. File BLD заавраар.

Бит 5 - H: Хагас зөөх туг

Half Carry Flag H нь арифметикийн зарим үйлдлүүдэд Half Carry-ийг заана. Half Carry нь BCD арифметикт хэрэгтэй. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

Бит 4 – S: Битийн тэмдэг, S = N ⊕ V

S-bit нь үргэлж онцгой шинжтэй эсвэл сөрөг туг N ба Хоёрын нэмэлт хавтгай халих далбааны хооронд байрладаг V. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

Бит 3 - V: Хоёрын нэмэлт халих туг

The Two's Complete Overflow Flag V нь хоёрын нэмэлт арифметикийг дэмждэг. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

Бит 2 - N: Сөрөг туг

Сөрөг туг N нь арифметик эсвэл логик үйлдлийн сөрөг үр дүнг илэрхийлнэ. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

Бит 1 - Z: Тэг туг

Тэг туг Z нь арифметик эсвэл логик үйлдлийн тэг үр дүнг заана. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

Бит 0 - С: Туг барина уу

Carry Flag C нь арифметик эсвэл логик үйлдэл хийхийг заадаг. Дэлгэрэнгүй мэдээллийг "Зааварчилгааны багц тайлбар" -аас үзнэ үү.

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

Бүртгэл File AVR Enhanced RISC зааврын багцад зориулж оновчтой болгосон. Шаардлагатай гүйцэтгэл, уян хатан байдалд хүрэхийн тулд дараах оролт/гаралтын схемүүдийг Бүртгэл дэмжинэ. File:

Нэг 8 битийн гаралтын операнд ба нэг 8 битийн үр дүнгийн оролт

Хоёр 8 битийн гаралтын операнд ба нэг 8 битийн үр дүнгийн оролт

Хоёр 8 битийн гаралтын операнд ба нэг 16 битийн үр дүнгийн оролт

Нэг 16 битийн гаралтын операнд ба нэг 16 битийн үр дүнгийн оролт

Зураг 4-2 процессор дахь ерөнхий зориулалтын 32 ажлын регистрийн бүтцийг харуулсан болно. Ерөнхий зорилго

Зурагт үзүүлснээр Зураг 4-2, регистр бүрд мөн өгөгдлийн санах ойн хаяг өгөгдсөн бөгөөд тэдгээрийг хэрэглэгчийн Data Space-ийн эхний 32 байршилд шууд буулгана. Энэ санах ойн зохион байгуулалт нь SRAM байршлын хувьд физикийн хувьд хэрэгждэггүй ч X, Y, Z-заагч регистрүүд нь регистрийн аль ч бүртгэлийг индексжүүлж болох тул регистрт хандахад маш уян хатан байдлыг хангадаг. file.Бүртгэл дээр ажиллаж байгаа ихэнх заавар File бүх регистрүүдэд шууд хандах боломжтой бөгөөд ихэнх нь нэг мөчлөгийн заавар юм.

X-бүртгэл, Y-бүртгэл, Z-бүртгэл

R26..R31 регистрүүд нь ерөнхий зориулалтын хэрэглээнд зарим нэмэлт функцуудтай байдаг. Эдгээр регистрүүд нь өгөгдлийн орон зайг шууд бусаар хаяглахад чиглэсэн 16 битийн хаяг заагч юм. X, Y, Z гэсэн шууд бус хаягийн гурван регистрийг тайлбарласны дагуу тодорхойлсон болно Зураг 4-3.

Бүртгүүлэх

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

Stack заагч

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

Stack Pointer нь Subroutine ба Interrupt Stacks байрладаг өгөгдлийн SRAM Stack хэсгийг заана. SRAM өгөгдлийн энэхүү Stack зайг дэд програмын дуудлага хийх эсвэл интерактив тохиргоог идэвхжүүлэхээс өмнө програм тодорхойлсон байх ёстой. Stack заагчийг 0x60-аас дээш түвшинд тохируулах ёстой. Өгөгдлийг PUSH командын хамт Stack руу түлхэхэд Stack заагчийг нэгээр нь бууруулж, буцах хаягийг дэд програмын дуудлага эсвэл тасалдалтайгаар Stack руу түлхэхэд хоёрыг бууруулна. Stack-ээс өгөгдлийг POP заавраар оруулахад Stack заагчийг нэгээр нэмэгдүүлдэг бөгөөд RET дэд програмаас буцах эсвэл RETI тасалдалтаас буцах замаар Stack-аас өгөгдөл гарч ирэхэд үүнийг хоёроор нэмэгдүүлдэг.

AVR Stack заагч нь I / O зайд 8 битийн хоёр регистр хэлбэрээр хэрэгждэг. Бодит ашигласан битүүдийн тоо нь хэрэгжилтээс хамаарна. AVR архитектурын зарим хэрэгжилтийн өгөгдлийн зай маш бага тул зөвхөн SPL шаардлагатай болохыг анхаарна уу. Энэ тохиолдолд SPH бүртгэл байхгүй болно.

SPH ба SPL - Stack заагч регистр

Бит 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
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Анхны үнэ цэнэ RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Зааварчилгааны гүйцэтгэлийн хугацаа

Энэ хэсэгт зааварчилгааг гүйцэтгэх хандалтын ерөнхий ойлголтуудыг тайлбарласан болно. AVR CPU нь чипийн сонгосон цагны эх үүсвэрээс шууд үүсгэгдсэн clkCPU CPU-ээр удирддаг. Дотоод цагийн хуваалтыг ашигладаггүй.

Зураг 4.4

Зураг 4-4 Харвардын архитектур болон хурдан хандалтын бүртгэлээс идэвхжүүлсэн зааварчилгааг зэрэгцээ татан авалт болон зааварчилгааны гүйцэтгэлийг харуулж байна. File үзэл баримтлал. Энэ нь нэг МГц тутамд 1 MIPS хүртэлх давтамжийг олж авах үндсэн шугам сүлжээний үзэл баримтлал бөгөөд нэг зардалд ногдох функц, цаг ногдох функц, эрчим хүчний нэгжийн функцийн хувьд харгалзах өвөрмөц үр дүн юм.

Зураг 4-5. Нэг мөчлөгийн ALU ажиллагаа

Зураг 4.5

Дахин тохируулах, дахин боловсруулах

AVR нь хэд хэдэн өөр тасалдлын эх үүсвэрээр хангадаг. Эдгээр тасалдал ба тусдаа Reset Vector нь програмын санах ойн зайд тусдаа Program Vector байна. Бүх тасалдалтыг дангаар нь идэвхжүүлсэн битүүдийг хуваарилдаг бөгөөд таслалтыг идэвхжүүлэхийн тулд статусын бүртгэл дэх Global Interrupt Enable битийн хамт логик бичсэн байх ёстой.

Програмын санах ойн зай дахь хамгийн бага хаягуудыг анхдагчаар Reset and Interrupt Vectors гэж тодорхойлдог. Векторуудын бүрэн жагсаалтыг харуулав 48-р хуудасны “Тасалдал”. Жагсаалт нь өөр өөр тасалдлын тэргүүлэх түвшинг тодорхойлдог. Хаяг доогуур байх тусам тэргүүлэх түвшний түвшин юм. RESET нь хамгийн өндөр ач холбогдолтой бөгөөд дараагийнх нь INT0 - Гадаад тасалдлын хүсэлт 0.

Тасалдал гарах үед Global Interrupt Enable I-bit цэвэрлэгдэх бөгөөд бүх тасалдал идэвхгүй болно. Хэрэглэгчийн програм хангамж нь I-bit-т логик бичиж, үүрлэсэн тасалдлыг идэвхжүүлдэг. Бүх идэвхжүүлсэн тасалдалууд нь одоогийн тасалдлын горимыг тасалдуулж болзошгүй юм. RETI-ийг зогсоох зааврыг гүйцэтгэх үед I-bit нь автоматаар тохируулагддаг.

Үндсэндээ хоёр төрлийн тасалдал байдаг. Эхний төрөл нь тасалдлын далбааг тохируулах үйл явдлаар өдөөгддөг. Эдгээр тасалдлын хувьд програмын тоолуурыг тасалдалтай харьцах ердийн горимыг гүйцэтгэхийн тулд бодит тасалдлын вектор руу векторлуулдаг бөгөөд тоног төхөөрөмж нь холбогдох тасалдлын тугийг цэвэрлэнэ. Таслах тугуудыг цэвэрлэхийн тулд тугны битийн байрлал (ууд) -д логик бичиж, арилгах боломжтой. Хэрэв холбогдох харгалзах идэвхжүүлэх битийг цэвэрлэж байх үед тасалдлын нөхцөл байдал үүссэн бол тасалдлыг идэвхжтэл, эсвэл тугийг програмаар цэвэрлэх хүртэл таслах тугийг тохируулж санах болно. Үүнтэй адил, хэрэв Global Interrupt Enable битийг цэвэрлэх үед нэг буюу хэд хэдэн тасалдлын нөхцөл байдал үүссэн бол холбогдох Interrupt Flag (ууд) -ийг тохируулж Global Interrupt Enable битийг тохируулах хүртэл санаж, дараа нь давуу эрхийн дарааллаар гүйцэтгэнэ.

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

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

Статусын бүртгэл нь тасалдлын горимд орохдоо автоматаар хадгалагддаггүй, тасалдалтаас буцаж ирэхэд сэргээгддэггүйг анхаарна уу. Үүнийг програм хангамжаар зохицуулах ёстой.

Тасалдлыг идэвхгүй болгохын тулд CLI зааврыг ашиглах үед тасалдлыг шууд идэвхгүй болгоно. CLI заавартай нэгэн зэрэг тохиолдсон ч CLI зааварчилгааны дараа ямар ч тасалдлыг гүйцэтгэхгүй. Дараах эксample нь EEPROM бичих хугацаатай дарааллын үед тасалдлаас зайлсхийхийн тулд үүнийг хэрхэн ашиглаж болохыг харуулж байна.

Ассемблей код Example
r16, SREG-д; SREG утгыг хадгалах

cli ; Хугацаа тогтоосон дарааллын үед тасалдлыг идэвхгүй болгох

sbi EECR, EEMPE; EEPROM бичиж эхлэх

sbi EECR, EEPE

гарч SREG, r16 ; SREG утгыг сэргээх (I-бит)

C код Example
char cSREG;

cSREG = SREG; /* SREG утгыг хадгалах */

/* цаг хугацааны дарааллын үед тасалдлыг идэвхгүй болгох */

_CLI ();

EECR |= (1<

EECR | = (1 <

SREG = cSREG; /* SREG утгыг сэргээх (I-бит) */

Тасалдлыг идэвхжүүлэхийн тулд SEI зааврыг ашиглах үед SEI-ийн дараах заавар нь энэ жишээнд үзүүлсэн шиг хүлээгдэж буй тасалдлаас өмнө гүйцэтгэгдэх болно.ample.

Ассемблей код Example
sei; Global Interrupt Enable-г тохируулна уу

унтах; унтлаа, тасалдахыг хүлээж байна

; тэмдэглэл: хүлээхээс өмнө унтах горимд орно

; таслах

C код Example
_SEI(); /* Глобал тасалдлыг идэвхжүүлэхийг тохируулах */

_SLEEP(); /* нойронд орж, тасалдахыг хүлээж байна */

/ * тэмдэглэл: хүлээгдэж буй тасалдалтаас өмнө унтах горимд орно * /

Хариултын цагийг тасалдуулах

Бүх идэвхжүүлсэн AVR тасалдлын тасалдлын гүйцэтгэлийн хариу нь хамгийн багадаа дөрвөн цагийн мөчлөг юм. Дөрвөн цагийн мөчлөгийн дараа тасалдлыг зохицуулах бодит програмын Вектор хаягийг гүйцэтгэнэ. Энэ дөрвөн цагийн мөчлөгийн үед Програм тоолуурыг Стек дээр шахдаг. Вектор нь ихэвчлэн тасалдлын горим руу үсрэх бөгөөд энэ үсрэлт нь гурван цагийн мөчлөг шаарддаг. Хэрэв олон мөчлөгт зааврыг гүйцэтгэх явцад тасалдал гарвал тасалдал үйлчлэхээс өмнө энэ заавар дуусна. Хэрэв MCU унтах горимд байх үед тасалдал гарвал тасалдлын хариу өгөх хугацааг дөрвөн цагийн мөчлөгөөр нэмэгдүүлдэг. Энэхүү өсөлт нь сонгосон унтах горимоос эхлэх хугацаанаас гадна нэмэгддэг.

Тасалдлыг зохицуулах журмаас буцах нь дөрвөн цагийн мөчлөг шаарддаг. Эдгээр дөрвөн цагийн мөчлөгийн үед програмын тоолуурыг (хоёр байт) Стекээс буцааж гаргаж, Stack заагчийг хоёроор нэмэгдүүлж, SREG дэх I-битийг тохируулна.

AVR дурсамж

Энэ хэсэгт ATtiny25 / 45/85 дээрх өөр өөр дурсамжуудыг тайлбарласан болно. AVR архитектур нь өгөгдлийн санах ой, програмын санах ой гэсэн хоёр үндсэн санах ойтой. Нэмж дурдахад ATtiny25 / 45/85 нь өгөгдөл хадгалах зориулалттай EEPROM санах ойтой. Санах ойн гурван зай бүгд шугаман ба тогтмол байдаг.

Системд дахин програмчлагдах боломжтой Flash програмын санах ой

ATtiny25 / 45/85 нь програмын хадгалалтад зориулагдсан 2/4 / 8K байтын чип дэх систем дэх дахин програмчлагдах боломжтой флаш санах ой агуулдаг. Бүх AVR заавар нь 16 эсвэл 32 битийн өргөн тул Flash-ийг 1024/2048/4096 x 16 гэж зохион байгуулав.

Flash санах ой нь дор хаяж 10,000 бичих / устгах циклийн тэсвэр тэвчээртэй байдаг. ATtiny25 / 45/85 програмын тоолуур (PC) нь 10/11/12 битийн өргөнтэй тул 1024/2048/4096 програмын санах ойн байршлыг шийддэг. “Санах ойн хөтөлбөр- ming ”хуудсанд 147-р хуудсанд нийтлэв SPI тээглүүр ашиглан Flash датаг цуврал татаж авах дэлгэрэнгүй тайлбарыг агуулсан болно.

Тогтмол хүснэгтүүдийг програмын санах ойн хаягийн бүх хэсэгт хуваарилж болно (LPM - Load Program санах ойн зааврын тайлбарыг үзнэ үү).

Зураг 5-1. Програмын санах ойн газрын зураг Санах ойн зураг

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

Зураг 5-2 ATtiny25 / 45/85 SRAM санах ойг хэрхэн зохион байгуулж байгааг харуулав.

Доод 224/352/607 өгөгдлийн санах ойн байршил нь Бүртгэлд хоёуланд нь хаяглана File, оролт гаралтын санах ой болон дотоод өгөгдөл SRAM. Эхний 32 байршил нь Бүртгэлд ханддаг File, дараагийн 64 байршил нь стандарт I/O санах ой, сүүлийн 128/256/512 байршил нь дотоод өгөгдлийн SRAM-д ханддаг.

Мэдээллийн санах ойд зориулсан таван өөр хаяглалтын горимууд: Шууд, Шууд бус, нүүлгэн шилжүүлэлттэй, шууд бус, Урьдчилан бууралттай шууд бус, Дараах өсөлттэй шууд бус. Бүртгэлд File, R26-аас R31 хүртэлх регистрүүд нь шууд бус хаяглалтын заагч регистрүүдийг агуулдаг.

Шууд хаяглалт нь бүх өгөгдлийн орон зайд хүрдэг.

Нүүлгэн шилжүүлэлттэй шууд бус горим нь Y- эсвэл Z- регистрийн өгсөн үндсэн хаягаас 63 хаягийн байршилд хүрдэг.

Автоматаар урьдчилан бууруулж, өсгөснөөр регистрийн шууд бус хаягийн горимыг ашиглахдаа X, Y, Z хаягийн регистрийг бууруулж эсвэл нэмэгдүүлдэг.

ATtiny32/64/128 дээрх 256 ерөнхий зориулалтын ажлын регистр, 512 оролт/гаралтын регистр, 25/45/85 байт дотоод мэдээллийн SRAM-д эдгээр бүх хаяглалтын горимоор хандах боломжтой. Бүртгэл File -д дүрсэлсэн байдаг “Ерөнхий eral Зорилго Бүртгэл File” 10-р хуудсанд.

Зураг 5-2. Өгөгдлийн санах ойн газрын зураг Санах ойн зураг 2

Өгөгдлийн санах ойд нэвтрэх Цаг хугацаа

Энэ хэсэгт дотоод санах ойд хандах хандалтын ерөнхий ойлголтуудыг тайлбарласан болно. Дотоод өгөгдлийн SRAM хандалтыг доор тайлбарласны дагуу хоёр clkCPU циклээр гүйцэтгэдэг Зураг 5-3.

Зураг 5-3. Чип дээрх өгөгдлийн SRAM хандалтын циклүүд Чипийн өгөгдөл дээр EEPROM өгөгдлийн санах ой

ATtiny25 / 45/85 нь 128/256/512 байт өгөгдлийн EEPROM санах ой агуулдаг. Энэ нь дан байтыг унших, бичих боломжтой өгөгдлийн тусдаа орон зай хэлбэрээр зохион байгуулагдсан болно. EEPROM нь дор хаяж 100,000 бичих / устгах мөчлөгийн тэсвэр тэвчээртэй байдаг. EEPROM ба CPU-ийн хоорондох хандалтыг дараахь байдлаар тодорхойлсон бөгөөд үүнд EEPROM хаяг регистр, EEPROM өгөгдлийн бүртгэл, EEPROM хяналтын бүртгэл зэргийг зааж өгсөн болно. Дэлгэрэнгүйг үзнэ үү 151-р хуудсанд “Цуврал татаж авах”.

EEPROM Унших / Бичих Хандалт

EEPROM хандалтын бүртгэлүүд нь I / O зайнд нэвтрэх боломжтой.

EEPROM-ийн бичих хандалтын цагийг өгсөн болно 5-р хуудасны хүснэгт 1-21. Өөрийгөө цаг хугацааны функц нь хэрэглэгчийн програм хангамжид дараагийн байтыг хэзээ бичиж болохыг илрүүлэх боломжийг олгодог. Хэрэв хэрэглэгчийн код нь EEPROM-г бичих зааварчилгааг агуулж байвал урьдчилан сэргийлэх зарим арга хэмжээг авах шаардлагатай. Өндөр шүүлтүүртэй тэжээлийн хангамжид VCC нь аажмаар өсөх эсвэл буурах магадлалтай

Асаах/унтраах. Энэ нь төхөөрөмжийг тодорхой хугацаанд эзлэхүүнээр ажиллуулахад хүргэдэгtage ашигласан цагийн давтамжийн хамгийн багадаа заасан хэмжээнээс бага. Харна уу 19-р хуудсанд “EEPROM авлигаас урьдчилан сэргийлэх” Эдгээр нөхцөл байдалд бэрхшээлээс хэрхэн зайлсхийх талаар дэлгэрэнгүй үзнэ үү.

Санамсаргүй байдлаар EEPROM бичихээс урьдчилан сэргийлэхийн тулд тодорхой бичих журмыг мөрдөх шаардлагатай. Үзнэ үү “Атом Байт програмчлал ”17-р хуудсанд нийтлэв болон 17-р хуудасны “Блайт байтын програмчлал” энэ талаар дэлгэрэнгүйг.

EEPROM-ийг уншихад дараагийн зааврыг гүйцэтгэхээс өмнө CPU-ийг дөрвөн цагийн турш зогсооно. EEPROM-ийг бичихэд дараагийн зааврыг гүйцэтгэхээс өмнө CPU-ийг хоёр цагийн турш зогсооно.

Атомын байтын програмчлал

Атомын байтын програмчлалыг ашиглах нь хамгийн энгийн горим юм. EEPROM-д байт бичихдээ хэрэглэгч хаягаа EEAR бүртгэлд, өгөгдлөө EEDR регистрт бичих ёстой. Хэрэв EEPMn битүүд тэг байвал EEPE (EEMPE-г бичсэнээс хойш дөрвөн циклийн дотор) бичих нь устгах / бичих ажиллагааг идэвхжүүлдэг. Устгах, бичих циклийг хоёуланг нь нэг үйлдлээр хийж програмчлалын нийт хугацааг өгсөн болно 5-р хуудасны хүснэгт 1-21. EEPE битийг устгах, бичих үйлдлийг дуустал тохируулсан хэвээр байна. Төхөөрөмж програмчлах завгүй байхад бусад EEPROM үйлдлийг хийх боломжгүй юм.

Блайт байтыг програмчлах

Устгах, бичих мөчлөгийг хоёр өөр үйлдэлд хуваах боломжтой. Хэрэв системд тодорхой хугацааны туршид богино хандалтын хугацаа шаардлагатай бол энэ нь ашигтай байж болох юм (ихэвчлэн цахилгаан хангамжийн хэмжээtage уналт). Урьдчилан сэргийлэхийн тулд- tagЭнэ аргын e хувьд бичих үйлдлээс өмнө бичих байршлыг устгасан байх шаардлагатай. Гэхдээ устгах, бичих үйлдлүүд хуваагдсан тул систем нь цаг хугацааны чухал үйлдлүүдийг (ихэвчлэн асаалтын дараа) хийхийг зөвшөөрөх үед устгах үйлдлүүдийг хийх боломжтой байдаг.

Устгах

Байтыг арилгахын тулд хаягийг EEAR руу бичих шаардлагатай. Хэрэв EEPMn битүүд 0b01 бол EEPE-г бичих (EEMPE-ийг бичсэнээс хойш дөрвөн циклийн дотор) зөвхөн устгах ажиллагааг өдөөх болно (програмчлалын цагийг Хүснэгт 5-1 хуудас 21). EEPE битийг арилгах ажиллагаа дуусах хүртэл тохируулсан хэвээр байна. Төхөөрөмж нь програмчлах завгүй байхад бусад EEPROM үйлдлийг хийх боломжгүй юм.

бичих

Байршил бичихийн тулд хэрэглэгч хаягаа EEAR, өгөгдлийг EEDR гэж бичих ёстой. Хэрэв EEPMn битүүд 0b10 бол EEPE бичих (EEMPE-ийг бичсэнээс хойш дөрвөн цикл дотор) бичих нь зөвхөн бичих ажиллагааг өдөөх болно (програмчлагдах хугацаа 5-р хуудасны хүснэгт 1-21). EEPE бит нь бичих ажиллагаа дуустал тохируулагдсан хэвээр байна. Хэрэв бичихээс өмнө бичих байршлыг устгаагүй бол хадгалагдсан өгөгдлийг алдагдсанд тооцох ёстой. Төхөөрөмж програмчлах завгүй байхад бусад EEPROM үйлдлийг хийх боломжгүй юм.

Шалгалт тохируулагч Oscillator нь EEPROM-д нэвтрэхэд цаг хугацаа зарцуулахад ашиглагддаг. Осцилляторын давтамжийг тодорхойлсон шаардлагын дагуу байгаа эсэхийг шалгаарай 31-р хуудсан дээрх “OSCCAL - Осцилляторын тохируулгын бүртгэл".

Дараах код жишээ ньamples нь EEPROM-г устгах, бичих эсвэл атом бичихэд зориулагдсан нэг угсралт, нэг С функцийг харуулав. эксampЭдгээр функцийг гүйцэтгэх явцад тасалдал гарахгүйн тулд тасалдлыг хянадаг (жишээлбэл, дэлхийн хэмжээнд тасалдлыг идэвхгүй болгох замаар) гэж үздэг.

Ассемблей код Example
EEPROM_ бичих:

; Өмнөх бичиж дуусгахыг хүлээнэ үү

sbic EECR, EEPE

rjmp EEPROM_write

; Програмчлалын горимыг тохируулах

ldi        r16, (0<<EEPM1)|(0<<EEPM0)

EECR гарч, r16

; Хаягийн бүртгэлд хаягаа тохируулна уу (r18: r17)

гарч EEARH, r18

гарч EEARL, r17

; Мэдээллийн бүртгэлд өгөгдөл бичих (r19)

гарч EEDR, r19

; EEMPE-д логик нэгийг нь бичээрэй

sbi EECR, EEMPE

; EEPE-ийг тохируулж eeprom бичиж эхлээрэй

sbi EECR, EEPE

ret

C код Example
хүчингүй болсон EEPROM_write(тэмдэггүй тэмдэгт ucAddress, тэмдэггүй ucData)

{

/* Өмнөх бичиж дуусахыг хүлээнэ үү */ while(EECR & (1<

;

/* Програмчлалын горимыг тохируулах */

EECR = (0 <

/ * Хаяг, өгөгдлийн регистрийг тохируулах * / EEAR = ucAddress;

EEDR = ucData;

/* EEMPE-д логик нэгийг бичих */

EECR | = (1 <

/ * EEPE * тохиргоог хийж eeprom бичиж эхлээрэй.

EECR | = (1 <

}

Дараагийн код өмнөхamples нь EEPROM-г уншихад зориулсан угсралт болон C функцуудыг харуулдаг. эксampЭдгээр функцийг гүйцэтгэх явцад тасалдал гарахгүйн тулд тасалдлыг удирддаг гэж үздэг.

Ассемблей код Example
EEPROM_ унших:

; Өмнөх бичиж дуусгахыг хүлээнэ үү

sbic EECR, EEPE

rjmp EEPROM_унших

; Хаягийн бүртгэлд хаягаа тохируулна уу (r18: r17)

гарч EEARH, r18

гарч EEARL, r17

; EERE гэж бичиж eeprom уншиж эхлээрэй

sbi EECR,EERE

; Өгөгдлийн бүртгэлээс өгөгдлийг унших

r16,EEDR-д

ret

C код Example
тэмдэггүй тэмдэгт EEPROM_унших(тэмдэггүй тэмдэгт ucAddress)

{

/ * Өмнөх бичиж дуусгахыг хүлээх * /

байхад (EECR & (1 <

;

/ * Хаягийн регистр тохируулах * / EEAR = ucAddress;

/* EERE гэж бичээд eeprom уншиж эхлэх */

EECR | = (1 <

/ * Мэдээллийн бүртгэлээс өгөгдлийг буцаах * /

буцах EEDR;

}

EEPROM авлигаас урьдчилан сэргийлэх

VCC багатай үед нийлүүлэлтийн хэмжээ их байдаг тул EEPROM өгөгдөл эвдэрч болзошгүйtage нь CPU болон EEPROM зөв ажиллахад хэтэрхий бага байна. Эдгээр асуудлууд нь EEPROM ашигладаг самбарын түвшний системтэй адил бөгөөд дизайны шийдлүүдийг ашиглах нь зүйтэй.

EEPROM өгөгдлийн эвдрэл нь хоёр нөхцөл байдлаас үүдэлтэй байж болноtage хэтэрхий бага байна. Нэгдүгээрт, EEPROM-д тогтмол бичих дараалал нь хамгийн бага хэмжээ шаарддагtagд зөв ажиллах. Хоёрдугаарт, хэрэв хангамж байгаа бол CPU өөрөө зааварчилгааг буруу гүйцэтгэж болноtage хэтэрхий бага байна.

Энэхүү дизайны зөвлөмжийг дагаж мөрдвөл EEPROM өгөгдлийн эвдрэлээс амархан зайлсхийх боломжтой.

Цахилгаан хангамж хангалтгүй үед AVR RESET-ийг идэвхтэй (бага) байлгаtagд. Үүнийг дотоод Brown-out Detector (BOD) идэвхжүүлснээр хийж болно. Хэрэв дотоод ЗБХ-ны илрүүлэх түвшин нь тохирохгүй байвал

илрүүлэх түвшний шаардлагатай бол гадаад бага VCC дахин тохируулах хамгаалалтын хэлхээг ашиглаж болно. Хэрэв бичих ажиллагаа хийгдэж байх үед дахин тохируулалт хийгдэх бол тэжээлийн эх үүсвэр voltage хангалттай.

I / O санах ой

ATtiny25 / 45/85-ийн I / O орон зайн тодорхойлолтыг үзүүлэв 200-р хуудасны "Бүртгэлийн хураангуй".

Бүх ATtiny25 / 45/85 I / Os ба нэмэлт төхөөрөмжүүдийг I / O зайд байрлуулсан болно. Бүх I / O байршилд LD / LDS / LDD ба ST / STS / STD заавраар хандаж, ерөнхий зориулалтын 32 ажлын регистр ба I / O зайны хооронд өгөгдөл дамжуулж болно. 0x00 - 0x1F хаягийн хүрээнд оролт гаралтын регистрүүд нь SBI ба CBI зааврыг ашиглан битээс шууд нэвтрэх боломжтой. Эдгээр регистрүүдэд SBIS ба SBIC зааврыг ашиглан нэг битийн утгыг шалгаж болно. Илүү дэлгэрэнгүйг зааврын багц хэсгээс авна уу. Оролт, гаралтын тусгай командыг IN болон OUT ашиглах үед I / O хаягуудыг 0x00 - 0x3F ашиглах ёстой. LD ба ST зааврыг ашиглан I / O Registers-ийг өгөгдлийн зай болгон хаягжуулахдаа эдгээр хаягуудад 0x20 нэмэх шаардлагатай.

Ирээдүйн төхөөрөмжүүдтэй нийцтэй байхын тулд нөөцлөгдсөн битүүдийг хандаж байвал тэгээр бичнэ. Нөөцлөгдсөн I / O санах ойн хаягийг хэзээ ч бичиж болохгүй.

Статусын зарим тугийг тэдгээрт логик тэмдэглэл бичиж цэвэрлэнэ. CBI ба SBI зааварчилгаа нь зөвхөн заасан бит дээр ажиллах тул ийм Статусын тугийг агуулсан регистрүүдэд ашиглаж болно гэдгийг анхаарна уу. CBI ба SBI заавар нь зөвхөн 0x00-ээс 0x1F бүртгэлтэй ажилладаг.

I / O ба захын төхөөрөмжүүдийн хяналтын регистрүүдийг дараагийн хэсгүүдэд тайлбарласан болно.

Бүртгүүлэх тодорхойлолт

EEARH - EEPROM хаягийн бүртгэл

Бит 7 6 5 4 3 2 1 0
0x1F EEAR8 Чих
Унших/бичих R R R R R R R R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 X/0

Бит 7: 1 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүдийг ирээдүйд ашиглахаар нөөцөлсөн бөгөөд үргэлж тэг гэж унших болно.

Бит 0 - EEAR8: EEPROM хаяг

Энэ бол ATtiny85-ийн хамгийн чухал EEPROM хаягийн бит юм. EEPROM багатай төхөөрөмжүүдэд, өөрөөр хэлбэл ATtiny25 / ATtiny45-д энэ бит хадгалагдсан тул үргэлж тэгийг уншина. EEPROM хаягийн бүртгэл (EEAR) -ийн анхны утга тодорхойлогдоогүй тул EEPROM руу нэвтрэхээс өмнө зохих утгыг бичнэ.

EEARL - EEPROM хаягийн бүртгэл

Бит

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 ДУУ
Арын / Бичих R/W R/W R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ X X X X X X X X

Бит 7 - EEAR7: EEPROM хаяг

Энэ бол ATtiny45-ийн хамгийн чухал EEPROM хаягийн бит юм. EEPROM багатай төхөөрөмжүүдэд, өөрөөр хэлбэл ATtiny25-д энэ бит хадгалагдсан тул үргэлж тэгийг унших болно. EEPROM хаягийн бүртгэл (EEAR) -ийн анхны утга тодорхойлогдоогүй тул EEPROM руу нэвтрэхээс өмнө зохих утгыг бичнэ.

Бит 6: 0 - EEAR [6: 0]: EEPROM хаяг

Эдгээр нь EEPROM хаягийн бүртгэлийн (бага) битүүд юм. EEPROM өгөгдлийн байтыг 0… (128/256 / 512-1) мужид шугаман байдлаар шийдвэрлэнэ. EEAR-ийн анхны утга тодорхойлогдоогүй тул EEPROM-д нэвтрэхээс өмнө зохих утгыг бичсэн байх ёстой.

EEDR - EEPROM өгөгдлийн бүртгэл

Бит 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

EEPROM бичих үйл ажиллагаанд зориулж EEDR регистр нь EEPROM-д EEAR бүртгэлд өгсөн хаягаар бичих өгөгдлийг агуулдаг. EEPROM унших ажиллагааны хувьд EEDR нь-ээс уншсан өгөгдлийг агуулдаг

EEAR-ээс өгсөн хаягаар EEPROM.

 

5.5.4 EECR - EEPROM хяналтын бүртгэл

Бит 7 6 5 4 3 2 1 0
0х1С        – EEPM1 EEPM0 САЙХАН EEMPE EEPE ЭЕРЭ EECR
R R R / W-г унших / бичих R/W R/W R/W R/W R/W
Эхний утга 0 0 X X 0 0 X 0

Bit 7 - Res: Нөөцлөгдсөн бит

Энэ бит нь ирээдүйд ашиглахад зориулагдсан бөгөөд ATtiny0 / 25/45 дээр үргэлж 85 гэж унших болно. Ирээдүйн AVR төхөөрөмжүүдтэй нийцтэй байхын тулд энэ битийг үргэлж тэг хүртэл бичнэ үү. Уншсаны дараа үүнийг жаахан далдал.

Bit 6 - Res: Нөөцлөгдсөн бит

Энэ бит нь ATtiny25 / 45/85-д хадгалагдсан бөгөөд үргэлж тэг байх болно.

Бит 5: 4 - EEPM [1: 0]: EEPROM програмчлалын горимын битүүд

EEPROM програмчлалын горимын бит тохиргоо нь EEPE бичихэд ямар програмчлалын үйлдлийг өдөөж болохыг тодорхойлдог. Нэг атомын үйл ажиллагаанд өгөгдлийг програмчлах (хуучин утгыг арилгаж, шинэ утгыг програмчлах) эсвэл Устгах, Бичих үйлдлүүдийг хоёр өөр үйлдэлд хуваах боломжтой. Өөр өөр горимд зориулсан програмчлалын хугацааг харуулав Хүснэгт 5-1. EEPE-г тохируулсан байхад EEPMn руу бичих аливаа зүйлийг үл тоомсорлох болно. Дахин тохируулах явцад EEPROM програмчлах завгүй бол EEPMn битүүдийг 0b00 болгож дахин тохируулна.

Хүснэгт 5-1. EEPROM горимын битүүд

EEPM1 EEPM0 Програмчлалын цаг Үйл ажиллагаа
0 0 3.4 мс Устгаж, нэг үйлдэл дээр бичих (Атомын ажиллагаа)
0 1 1.8 мс Зөвхөн арилгах
1 0 1.8 мс Зөвхөн бичих
1 1 Цаашид ашиглахаар нөөцөлсөн

Бит 3 - EERIE: EEPROM Ready Interrupt идэвхжүүлэх

EREIE бичих нь SREG-ийн I-бит тохируулагдсан бол EEPROM Ready Interrupt-ийг идэвхжүүлдэг. EERIE-ийг тэг рүү бичих нь тасалдлыг зогсоодог. EEPROM Ready Interrupt нь тогтворгүй санах ой програмчлахад бэлэн болсон үед тогтмол тасалдал үүсгэдэг.

Бит 2 - EEMPE: EEPROM Мастер хөтөлбөрийг идэвхжүүлнэ үү

EEMPE бит нь EEPE-г бичих нь үр дүнтэй байх эсэхийг тодорхойлдог.

EEMPE-ийг тохируулсан үед EEPE-ийг дөрвөн цагийн дотор тохируулах нь сонгосон хаягаар EEPROM-ийг програмчлах болно. Хэрэв EEMPE нь тэг байвал EEPE-ийг тохируулах нь ямар ч нөлөө үзүүлэхгүй. EEMPE-ийг програм хангамжаар нэгэнд нь бичихэд дөрвөн цагийн мөчлөгийн дараа техник хангамж битийг тэг болгоно.

Бит 1 - EEPE: EEPROM програмыг идэвхжүүлэх

EEPROM Program Enable Signal EEPE бол EEPROM-д програмчлалыг идэвхжүүлэх дохио юм. EEPE бичих үед EEPROM нь EEPMn бит тохиргооны дагуу програмчлагдах болно. EEPE-д логик нэгийг бичихээс өмнө EEMPE битийг нэгэнд нь бичих ёстой, эс тэгвээс EEPROM бичихгүй. Бичих хандалтын хугацаа дуусахад EEPE битийг техник хангамжаар арилгадаг. EEPE тохируулагдсан бол дараагийн зааврыг гүйцэтгэхээс өмнө CPU-ийг хоёр мөчлөгөөр зогсооно.

Бит 0 - EERE: EEPROM Read Enable

EEPROM Read Enable Signal - EERE нь EEPROM-ийн унших строб юм. EEAR бүртгэлд зөв хаягийг тохируулах үед EEEROM уншихад түлхэц өгөхийн тулд EERE битийг нэг дээр бичих шаардлагатай. EEPROM унших хандалт нь нэг зааварчилгааг шаарддаг бөгөөд хүссэн өгөгдлийг шууд авах боломжтой. EEPROM-ийг уншихад дараагийн зааврыг гүйцэтгэхээс өмнө CPU-ийг дөрвөн мөчлөгөөр зогсооно. Унших ажиллагааг эхлүүлэхээс өмнө хэрэглэгч EEPE битээс санал асуулга авах хэрэгтэй. Хэрэв бичих ажиллагаа хийгдэж байгаа бол EEPROM-г унших, эсвэл EEAR бүртгэлийг өөрчлөх боломжгүй юм.

Системийн цаг ба цагны сонголтууд

Цагны систем ба тэдгээрийн тархалт

Цаг хуваарилалт

CPU цаг

CPU-ийн цаг нь AVR цөмтэй холбоотой системийн хэсгүүдэд чиглэгддэг. Жишээ ньampИйм модулиуд нь Ерөнхий зориулалтын бүртгэл юм File, Status Register болон Stack заагчийг агуулж буй өгөгдлийн санах ой. CPU-ийн цагийг зогсоосноор цөм нь ерөнхий үйлдэл, тооцоолол хийхэд саад болдог.

I / O Clock - clkI / O

I / O цагийг таймер / тоолуур гэх мэт I / O модулиудын ихэнх нь ашигладаг. I / O цагийг External Interrupt модульд ашигладаг боловч гадны зарим тасалдлыг асинхрон логикоор илрүүлдэг тул I / O цагийг зогсоосон ч гэсэн ийм тасалдлыг илрүүлэх боломжийг олгодог.

Flash Clock - clkFLASH

Flash цаг нь Flash интерфэйсийн ажиллагааг удирддаг. Flash цаг нь ихэвчлэн CPU-ийн цагтай зэрэгцэн ажилладаг.

ADC цаг - clkADC

ADC нь тусгай цагийн домэйнаар хангагдсан байдаг. Энэ нь дижитал хэлхээний үүсгэсэн дуу чимээг багасгах зорилгоор CPU болон I / O цагийг зогсоох боломжийг олгодог. Энэ нь илүү нарийвчлалтай ADC хөрвүүлэлтийн үр дүнг өгдөг.

Захын цагийг хурдан үүсгэх дотоод PLL - clkPCK

ATtiny25 / 45/85 доторх PLL нь эх үүсвэрийн оролтоос 8 дахин үржүүлсэн цагийн давтамжийг үүсгэдэг. Анхдагч байдлаар PLL нь дотоод, 8.0 MHz RC oscillator гаралтыг эх үүсвэр болгон ашигладаг. Эсвэл PLLCSR-ийн LSM битийг тохируулсан бол PLL нь RC oscillator-ийн гаралтыг хоёроор хувааж ашиглана. Тиймээс PLL-ийн гаралт, хурдан захын цаг нь 64 МГц юм. Хурдан захын цаг буюу түүнээс урьдчилан тохируулсан цагийг Таймер / Тоолуур1-ийн цагийн эх үүсвэр эсвэл системийн цаг болгон сонгож болно. Харна уу Зураг 6-2. PLLCSR-ийн LSM-ийг тохируулах үед хурдан захын цагийн давтамжийг хоёр хувааснаар 32 МГц давтамжтай болно. Хэрэв PLLCLK системийн цаг болгон ашиглаж байгаа бол LSM-г тохируулах боломжгүй гэдгийг анхаарна уу.

Зураг 6-2. PCK цагны систем. PCK цаг

PLL нь RC oscillator дээр түгжигдсэн бөгөөд RC oscillator-ийг OSCCAL бүртгэлээр тохируулснаар хурдан захын цагийг нэгэн зэрэг тохируулах болно. Гэсэн хэдий ч RC осцилляторыг 8 МГц-ээс өндөр давтамжтай аваачихсан байсан ч захын цагны давтамж нь 85 МГц-ээр ханасан (хамгийн муу тохиолдол) бөгөөд хамгийн их давтамжтайгаар хэлбэлзсээр байна. Энэ тохиолдолд PLL нь RC oscillator цагтай хамт түгжигдээгүй болохыг тэмдэглэх нь зүйтэй. Тиймээс PLL-ийг зөв үйл ажиллагааны хүрээнд байлгахын тулд OSCCAL тохируулгыг 8 MHz-ээс өндөр давтамжтайгаар хийхгүй байхыг зөвлөж байна.

Дотоод PLL нь дараахь тохиолдолд идэвхждэг:

PLLCSR регистрийн PLLE битийг тохируулсан болно.

CKSEL гал хамгаалагчийг '0001' програмчлагдсан.

CKSEL гал хамгаалагчийг '0011' програмчлагдсан.

PLL түгжигдсэн үед PLLCSR бит PLOCK тохируулагдана. Дотоод RC осциллятор болон PLL хоёулаа унтрах ба зогсолтын горимд унтардаг.

ATtiny15 нийцтэй горим дахь дотоод PLL

ATtiny25 / 45/85 нь ATtiny15 хэрэглэгчдэд зориулсан шилжих төхөөрөмж тул арын хэсгийн нийцтэй байдлын ATtiny15 тохирох горим байдаг. ATtiny15 нийцтэй горимыг CKSEL гал хамгаалагчийг '0011' болгож програмчлах замаар сонгоно.

ATtiny15 нийцтэй горимд дотоод RC осцилляторын давтамжийг 6.4 MHz хүртэл тохируулж, PLL-ийн үржүүлгийн коэффициентийг 4x болгож тохируулна. Харна уу Зураг 6-3. Эдгээр тохируулгуудын дагуу цаг тоолох систем нь ATtiny15-тэй нийцдэг бөгөөд хурдан захын цаг нь 25.6 MHz давтамжтай байдаг (ATtiny15-тэй адил).

Зураг 6-3. ATtiny15 нийцтэй горим дахь PCK цагны систем. Clocking систем

Цагны эх сурвалж

Төхөөрөмж нь дараахь эх үүсвэрийн сонголтыг доор харуулсны дагуу Flash Fuse битээр сонгох боломжтой. Сонгосон эх үүсвэрээс цагийг AVR цаг үүсгэгч рүү оруулаад тохирох модулиуд руу чиглүүлнэ.

Хүснэгт 6-1. Төхөөрөмжийн цагны сонголтуудыг сонгоно уу

Төхөөрөмжийн цаг тохируулах сонголт CKSEL[3:0](1)
Гадаад цаг (харна уу хуудас 26) 0000
Өндөр давтамжийн PLL цаг (харна уу хуудас 26) 0001
Шалгалт тохируулсан дотоод осциллятор (харна уу хуудас 27) 0010(2)
Шалгалт тохируулсан дотоод осциллятор (харна уу хуудас 27) 0011(3)
Дотоод 128 кГц-ийн Осциллятор (харна уу хуудас 28) 0100
Бага давтамжтай болор oscillator (харна уу хуудас 29) 0110
Кристал Осциллятор / Керамик резонатор (харна уу хуудас 29) 1000-1111
Захиалагдсан 0101, 0111

Бүх гал хамгаалагчдын хувьд "1" нь програмчлагдаагүй, харин "0" нь програмчлагдсан гэсэн үг юм.

Энэ сонголтыг сонгож төхөөрөмжийг ачуулна.

Энэ нь ATtiny15 Compatibility Mode-ийг сонгох бөгөөд системийн цагийг дөрөв хувааж, 1.6 MHz цагийн давтамжийг бий болгоно. Дэлгэрэнгүй мэдээллийг үзнэ үү 27-р хуудсан дээрх “Калибровклагдсан дотоод осциллятор”.

Цаг тохируулах сонголт бүрийн төрөл бүрийн сонголтыг дараах хэсгүүдэд өгөв. CPU унтрахаас сэрэхэд сонгосон цагийн эх үүсвэрийг эхлүүлэх хугацааг ашиглана, ингэснээр зааврын гүйцэтгэл эхлэхээс өмнө Осцилляторын тогтвортой ажиллагааг хангана. CPU-г дахин тохируулж эхлэхэд хэвийн ажиллагаа эхлэхээс өмнө хүчийг тогтвортой түвшинд хүргэх нэмэлт саатал гардаг. Watchdog Oscillator нь эхлэх цагийн бодит цаг хугацааны хувьд ашиглагддаг. Гарах бүрт ашигласан WDT Oscillator циклийн тоог харуулав Хүснэгт 6-2.

Хүснэгт 6-2. Watchdog Oscillator Cycles-ийн тоо

Typ завсарлага Циклийн тоо
4 мс 512
64 мс 8К (8,192)

Гадаад цаг

Төхөөрөмжийг гадны цагийн эх үүсвэрээс жолоодохын тулд CLKI-г харуулсны дагуу жолоодох хэрэгтэй Зураг 6-4. Төхөөрөмжийг гадаад цаг дээр ажиллуулахын тулд CKSEL гал хамгаалагчийг “00” болгож програмчлагдсан байх ёстой.

Зураг 6-4. Гадаад цагны хөтчийн тохиргоо

Зураг 6.4

Энэ цагийн эх үүсвэрийг сонгоход асаах цагийг SUT гал хамгаалагчаар харуулав Хүснэгт 6-3.

Хүснэгт 6-3. Гадаад цагийг сонгох эхлэлийн цаг

SUT[1:0] Унтраахаас асаах цаг Дахин тохируулахаас хойшлуулсан нэмэлт хугацаа Зөвлөмж болгож буй хэрэглээ
00 6 CK 14CK BOD идэвхжсэн
01 6 CK 14CK + 4 мс Хурдан нэмэгдэж буй хүч
10 6 CK 14CK + 64 мс Эрчим хүч аажмаар нэмэгдэж байна
11 Захиалагдсан

Гадаад цагийг хэрэглэхдээ MCU-ийн тогтвортой ажиллагааг хангахын тулд цаг хугацааны давтамжийг гэнэт өөрчлөхөөс зайлсхийх шаардлагатай. Нэг цагийн мөчлөгөөс нөгөөд шилжих давтамж 2% -иас дээш хэлбэлзэх нь урьдчилан таамаглах аргагүй байдалд хүргэж болзошгүй юм. Цагны давтамж ийм өөрчлөгдөж байх үед MCU-г Reset дээр хадгалахыг баталгаажуулах шаардлагатай.

System Clock Presale нь тогтвортой ажиллагааг хангахын зэрэгцээ дотоод цагийн давтамжийн ажиллах хугацааны өөрчлөлтийг хэрэгжүүлэхэд ашиглаж болно гэдгийг анхаарна уу. Үзнэ үү 31-р хуудсан дээрх “System Clock Prescaler” дэлгэрэнгүй мэдээллийг авна уу.

Өндөр давтамжийн PLL цаг

Захын таймер / тоолуур64 болон системийн цагийн эх үүсвэрийг ашиглахад RC Oscillator-д түгжигдсэн 1 MHz цагийн хурдыг нэрлэсэн байдлаар хангадаг дотоод PLL байдаг. Системийн цагийн эх үүсвэр болгон сонгохдоо CKSEL гал хамгаалагчийг '0001' болгож програмчлах замаар XNUMX-т үзүүлсэн шиг хуваана. Хүснэгт 6-4.

Хүснэгт 6-4. Өндөр давтамжийн PLL цагны ажиллах горимууд

CKSEL[3:0] Нэрлэсэн давтамж
0001 16 МГц

Энэ цагийн эх үүсвэрийг сонгоход асаах цагийг SUT гал хамгаалагчаар харуулав Хүснэгт 6-5.

Хүснэгт 6-5. Өндөр давтамжийн PLL цагийг эхлүүлэх цаг

SUT[1:0] Power Down-ээс эхлүүлэх цаг Асаах үед дахин тохируулах нэмэлт саатал (VCC = 5.0V) Зөвлөмж болгож буй хэрэглээ
00 14CK + 1K (1024) CK + 4 мс 4 мс BOD идэвхжсэн

Хүснэгт 6-5. Өндөр давтамжийн PLL цагийг эхлүүлэх цаг

SUT[1:0] Power Down-ээс эхлүүлэх цаг Асаах үед дахин тохируулах нэмэлт саатал (VCC = 5.0V) Зөвлөмж болгож буй хэрэглээ
01 14CK + 16K (16384) CK + 4 мс 4 мс Хурдан нэмэгдэж буй хүч
10 14CK + 1K (1024) CK + 64 мс 4 мс Эрчим хүч аажмаар нэмэгдэж байна
11 14CK + 16K (16384) CK + 64 мс 4 мс Эрчим хүч аажмаар нэмэгдэж байна

Шалгалт тохируулсан дотоод осциллятор

Анхдагч байдлаар, дотоод RC осциллятор нь ойролцоогоор 8.0 МГц цагийг өгдөг. Хэдийгээр ботьtage ба температураас хамаарч энэ цагийг хэрэглэгч маш нарийн тохируулж болно. Харна уу “Калибровк хийгдсэн дотоод RC осцилляторын Accu- racy ”164-р хуудсанд нийтлэв болон Хуудасны 192 дахь “Дотоод Осцилляторын хурд” илүү дэлгэрэнгүйг Төхөөрөмжийг програмчлагдсан CKDIV8 Fuse-тэй нийлүүлдэг. Харна уу 31-р хуудсан дээрх “System Clock Prescaler” дэлгэрэнгүй мэдээллийг авна уу.

Энэ цагийг CKSEL гал хамгаалагчийг үзүүлсний дагуу програмчилж системийн цаг болгон сонгож болно Хуудасны 6-6-р хүснэгт

27. Хэрэв сонгосон бол гадны бүрэлдэхүүн хэсгүүдгүйгээр ажиллах болно. Дахин тохируулах явцад тоног төхөөрөмж нь урьдчилан програмчлагдсан шалгалт тохируулгын утгыг OSCCAL бүртгэлд ачаалж, улмаар RC Oscillator-ийг автоматаар тохируулна. Энэхүү шалгалт тохируулгын нарийвчлалыг Үйлдвэрийн шалгалт тохируулгад харуулав 21-р хуудасны хүснэгт 2-164.

SW-ээс OSCCAL регистрийг өөрчилснийг үзнэ үү 31-р хуудсан дээрх “OSCCAL - Осцилляторын тохируулгын бүртгэл", үйлдвэрийн шалгалт тохируулгыг ашиглахаас илүү өндөр тохируулгын нарийвчлалыг авах боломжтой. Энэхүү тохируулгын нарийвчлалыг Хэрэглэгчийн шалгалт тохируулга дотор харуулав 21-р хуудасны хүснэгт 2-164.

Энэхүү Осцилляторыг чипний цаг болгон ашиглах үед Watchdog Oscillator нь Watchdog Timer болон Reset Time-out-д ашиглагдах болно. Урьдчилан програмчлагдсан шалгалт тохируулгын утгын талаар нэмэлт мэдээллийг энэ хэсгээс авна уу “Кали- bration bytes ”гэсэн хуудсыг 150-р хуудсанд байрлуулав.

Мөн дотоод осцилляторыг CKSEL гал хамгаалагчийг “6.4” гэж бичих замаар 0011 МГц цагийг тохируулахаар тохируулж болно. Хүснэгт 6-6 доор. Энэ тохиргоог ATtiny15 Compatibility Mode гэж нэрлэдэг бөгөөд ATtiny6.4-тэй адил 15 MHz давтамжтай цагийн эх үүсвэрийг хангах зорилготой юм. ATtiny15 Compatibility Mode-д PLL нь 6.4 MHz давтамжтай дотоод осцилляторыг ашигладаг бөгөөд таймер / тоолуур25.6-д зориулж 1 MHz захын цагийн дохио үүсгэдэг. “8 битийн таймер / тоолуур1 ATtiny15 Mode ”хуудасны 95-р хуудсанд байрлуулсан болно). Энэ горимд 6.4 МГц-ийн цагын дохиог үргэлж дөрөв хувааж, 1.6 МГц-ийн системийн цагийг өгдөг болохыг анхаарна уу.

Хүснэгт 6-6. Дотоод тохируулгатай RC осцилляторын ажиллах горимууд

CKSEL[3:0] Нэрлэсэн давтамж
0010(1) 8.0 МГц
0011(2) 6.4 МГц

Энэ сонголтыг сонгож төхөөрөмжийг ачуулна.

Энэ тохиргоо нь ATtiny15 Compatibility Mode-ийг сонгох бөгөөд системийн цагийг дөрөв хувааж, 1.6 MHz цаг давтамжтай болгоно.

8 МГц-ийн дотоод осцилляторыг цагийн эх үүсвэр болгон сонгосон үед асаах цагийг SUT гал хамгаалагчаар үзүүлсэн болно. Хүснэгт 6-7 доор.

Хүснэгт 6-7. Дотоод тохируулгатай RC осцилляторын цагийг эхлүүлэх цаг

SUT[1:0] Унтраахаас асаах цаг Дахин тохируулах нэмэлт саатал (VCC = 5.0V) Зөвлөмж болгож буй хэрэглээ
00 6 CK 14CK(1) BOD идэвхжсэн
01 6 CK 14CK + 4 мс Хурдан нэмэгдэж буй хүч
10(2) 6 CK 14CK + 64 мс Эрчим хүч аажмаар нэмэгдэж байна
11 Захиалагдсан

1. Хэрэв RSTDISBL гал хамгаалагч програмчлагдсан бол програмчлах горимд орох боломжтой байхын тулд энэ эхлэх хугацааг 14CK + 4 ms болгож нэмэгдүүлнэ.
2. Төхөөрөмжийг энэ сонголтыг сонгож ачилна.

ATtiny15 нийцтэй горимд асаах цагийг SUT гал хамгаалагчаар харуулав Хүснэгт 6-8 доор.

Хүснэгт 6-8. Дотоод тохируулгатай RC осцилляторын цагийг эхлүүлэх цаг (ATtiny15 горимд)

SUT[1:0] Унтраахаас асаах цаг Дахин тохируулах нэмэлт саатал (VCC = 5.0V) Зөвлөмж болгож буй хэрэглээ
00 6 CK 14CK + 64 мс
01 6 CK 14CK + 64 мс
10 6 CK 14CK + 4 мс
11 1 CK 14CK(1)

Тайлбар: Хэрэв RSTDISBL гал хамгаалагч програмчлагдсан бол програмчлалын горимд орохын тулд эхлүүлэх хугацааг 14CK + 4 мс хүртэл нэмэгдүүлнэ.

Дүгнэж хэлэхэд ATtiny15 Compatibility Mode-ийн талаархи дэлгэрэнгүй мэдээллийг хэсэг хэсгээс олж болно “Б порт (PB5: PB0)” -ийг асаах хуудас 2“ATtiny15 нийцтэй горим дахь дотоод PLL” 24-р хуудас“ATtiny8 горимд 1 битийн таймер / тоолуур15” асаалттай байна хуудас 95140-р хуудсан дээрх "debugWIRE-ийн хязгаарлалт"Хуудасны 150 дахь “Калибровкын байт” ба хүснэгтэд “Цаг Prescaler Сонгох ”хуудсыг 33-р хуудсанд байрлуул.

Дотоод 128 кГц-ийн Осциллятор

128 кГц давтамжтай дотоод осциллятор нь 128 кГц давтамжтай бага чадалтай Осциллятор юм. Давтамж нь 3V ба 25 ° C-д нэрлэсэн байна. Энэ цагийг CKSEL гал хамгаалагчийг "0100" болгож програмчлах замаар системийн цаг болгон сонгож болно.

Энэ цагийн эх үүсвэрийг сонгоход асаах цагийг SUT гал хамгаалагчаар харуулав Хүснэгт 6-9.

Хүснэгт 6-9. 128 кГц-ийн дотоод осцилляторыг эхлүүлэх хугацаа

SUT[1:0] Унтраахаас асаах цаг Дахин тохируулахаас хойшлуулсан нэмэлт хугацаа Зөвлөмж болгож буй хэрэглээ
00 6 CK 14CK(1) BOD идэвхжсэн
01 6 CK 14CK + 4 мс Хурдан нэмэгдэж буй хүч
10 6 CK 14CK + 64 мс Эрчим хүч аажмаар нэмэгдэж байна
11 Захиалагдсан

Тайлбар: Хэрэв RSTDISBL гал хамгаалагч програмчлагдсан бол програмчлалын горимд орохын тулд эхлүүлэх хугацааг 14CK + 4 мс хүртэл нэмэгдүүлнэ.

Бага давтамжтай болор oscillator

Төхөөрөмжийн цагийн эх үүсвэр болгон 32.768 кГц цагны болорыг ашиглахын тулд CKSEL гал хамгаалагчийг '0110' болгож тохируулж нам давтамжтай болор Oscillator-ийг сонгох хэрэгтэй. Кристалыг зурагт үзүүлсний дагуу холбох хэрэгтэй Зураг 6-5. 32.768 кГц-ийн крисальд тохирох ачааллын багтаамжийг олохын тулд үйлдвэрлэгчийн мэдээллийн хуудаснаас авна уу.

Энэ осцилляторыг сонгоход асаах цагийг SUT гал хамгаалагчаар харуулав Хүснэгт 6-10.

Хүснэгт 6-10. Бага давтамжийн болор осцилляторын цагийг сонгох эхлэлийн хугацаа

SUT[1:0] Power Down-ээс эхлүүлэх цаг Дахин тохируулах нэмэлт саатал (VCC = 5.0V) Зөвлөмж болгож буй хэрэглээ
00 1К (1024) CK(1) 4 мс Хурдан нэмэгдэж буй хүч эсвэл BOD идэвхжсэн
01 1К (1024) CK(1) 64 мс Эрчим хүч аажмаар нэмэгдэж байна
10 32К (32768) CK 64 мс Ажил эхлэхэд тогтвортой давтамж
11 Захиалагдсан

Тайлбар: Эдгээр сонголтыг зөвхөн эхлүүлэх үед давтамжийн тогтвортой байдал чухал биш тохиолдолд л ашиглах ёстой.

Бага давтамжийн болор Oscillator нь дотоод ачааллын багтаамжийг хангаж өгдөг Хүснэгт 6-11 TOSC зүү тус бүрт.

Хүснэгт 6-11. Бага давтамжийн кристалл осцилляторын багтаамж

Төхөөрөмж 32 кГц Osc. Төрөл Cap (Xtal1 / Tosc1) Cap (Xtal2 / Tosc2)
ATtiny25 / 45/85 Системийн Osc. 16 пФ 6 пФ

Кристал Осциллятор / Керамик резонатор

XTAL1 ба XTAL2 нь урвуу оролт ба гаралт юм ampЗурагт үзүүлсэн шиг чип дээрх осциллятор болгон ашиглахаар тохируулж болох өргөгч Зураг 6-5. Кварцын болор эсвэл керамик резонатор ашиглаж болно.

C1 ба C2 нь талст болон резонаторын аль алинд нь үргэлж тэнцүү байх ёстой. Конденсаторуудын оновчтой утга нь ашиглаж байгаа болор эсвэл резонатор, төөрсөн багтаамжийн хэмжээ, хүрээлэн буй орчны цахилгаан соронзон дуу чимээ зэргээс хамаарна. Кристалд ашиглах конденсаторыг сонгох анхны удирдамжийг энд өгөв Хүснэгт 6-12 доор. Керамик резонаторын хувьд үйлдвэрлэгчийн өгсөн конденсаторын утгыг ашиглах хэрэгтэй.

Хүснэгт 6-12. Кристал осцилляторын ажиллах горимууд

CKSEL[3:1] Давтамжийн хязгаар (МГц) C1 ба C2 конденсаторыг талсттай хамт ашиглахыг зөвлөж байна (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

Тайлбар: Энэ сонголтыг болортой хамт хэрэглэхгүй, зөвхөн керамик резонатортой хамт хэрэглэх нь зүйтэй.

Осциллятор нь гурван өөр горимд ажиллах боломжтой бөгөөд тус бүр нь тодорхой давтамжийн хязгаарт тохирсон горимд ажилладаг. Ажиллах горимыг CKSEL [3: 1] гал хамгаалагчаар харуулав Хүснэгт 6-12.

CKSEL0 гал хамгаалагч нь SUT-тай хамт [1: 0] Гал хамгаалагч нь асаах цагийг харуулсны дагуу сонгоно Хүснэгт 6-13.

Хүснэгт 6-13. Кристал осцилляторын цагийг сонгох эхлэлийн цаг

CKSEL0 SUT[1:0] Унтраахаас асаах цаг Дахин тохируулахаас хойшлуулсан нэмэлт хугацаа Зөвлөмж болгож буй хэрэглээ
0 00 258 CK(1) 14CK + 4 мс Керамик резонатор, хурдан өсч буй хүч
0 01 258 CK(1) 14CK + 64 мс Керамик резонатор, аажмаар нэмэгдэж буй хүч
0 10 1К (1024) CK(2) 14CK Керамик резонатор, BOD идэвхжсэн
0 11 1K (1024) CK(2) 14CK + 4 мс Керамик резонатор, хурдан өсч буй хүч
1 00 1K (1024) CK(2) 14CK + 64 мс Керамик резонатор, аажмаар нэмэгдэж буй хүч
1 01 16К (16384) CK 14CK Crystal Oscillator, BOD идэвхжсэн
1 10 16К (16384) CK 14CK + 4 мс Кристал Осциллятор, хурдацтай өсч байгаа хүч
1 11 16К (16384) CK 14CK + 64 мс Кристал Осциллятор, аажмаар нэмэгдэж буй хүч

Тэмдэглэл

Эдгээр сонголтыг зөвхөн төхөөрөмжийн хамгийн их давтамжтай ойрхон ажиллахгүй үед ашиглах ёстой бөгөөд зөвхөн эхлэхэд давтамжийн тогтвортой байдал нь програмд ​​чухал биш юм. Эдгээр сонголтууд нь талстуудад тохиромжгүй байдаг.

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

Анхдагч цагийн эх үүсвэр

Төхөөрөмжийг CKSEL = "0010", SUT = "10" болон CKDIV8 программчилсан байдлаар тээвэрлэсэн. Иймээс цагны эх үүсвэрийн өгөгдмөл тохиргоо нь дотоод RC осциллятор нь 8 МГц давтамжтайгаар ажиллаж, хамгийн урт асах хугацаа ба системийн анхны цагийн хуваарийг 8 болгож, системийн цагийг 1.0 МГц болгодог. Энэхүү өгөгдмөл тохиргоо нь бүх хэрэглэгчид Систем доторх эсвэл Өндөр дууны тусламжтайгаар цагны эх үүсвэрийн тохиргоог хийх боломжтой болгодог.tage Программист.

Системийн цагийн урьдчилсан тооцоолуур

ATtiny25 / 45/85 системийн цагийг тохируулснаар хувааж болно 32-р хуудсан дээрх “CLKPR - Урьдчилан хэмжих цагийн бүртгэл”. Энэ функцийг боловсруулах хүчин чадал бага байх үед эрчим хүчний хэрэглээг багасгахад ашиглаж болно. Үүнийг цагны эх үүсвэрийн бүх сонголттой ашиглаж болох бөгөөд энэ нь CPU болон бүх синхрон дагалдах хэрэгслийн цагийн давтамжид нөлөөлнө. clkI/O, clkADC, clkCPU болон clkFLASH-ийг дараах хүчин зүйлээр хуваана. 6-р хуудасны хүснэгт 15-33.

Солих цаг

Prescaler тохиргоонуудын хооронд шилжих үед System Clock Prescaler нь цагийн системд ямар нэгэн доголдол гарахгүй байх, завсрын давтамж нь өмнөх тохиргоонд харгалзах цаг давтамж, шинэ тохиргоонд харгалзах цагийн давтамжаас ихгүй байхыг баталгаажуулдаг.

Урьдчилан тохируулагчийг ажиллуулдаг долгионы тоолуур нь хуваагдаагүй цагийн давтамж дээр ажилладаг бөгөөд энэ нь CPU-ийн цагийн давтамжаас хурдан байж болох юм. Тиймээс, урьдчилж тохируулагчийн төлөв байдлыг тодорхойлох боломжгүй - уншиж болохуйц байсан ч нэг цагийн хуваагчаас нөгөө рүү шилжих цагийг яг таг таамаглах боломжгүй юм.

CLKPS утгыг бичсэн үеэс эхлэн шинэ цагийн давтамж идэвхжихээс өмнө T1 + T2 ба T1 + 2 * T2 хооронд явагдана. Энэ интервалд 2 идэвхтэй цагийн ирмэгийг гаргадаг. Энд T1 бол өмнөх цагийн хугацаа, T2 бол шинэ prescaler тохиргоонд харгалзах үе юм.

Цаг гаралтын буфер

Төхөөрөмж нь CLKO зүү дээр системийн цагийг гаргаж чаддаг (XTAL2 зүү биш бол). Гаралтыг идэвхжүүлэхийн тулд CKOUT Fuse програмчлагдсан байх ёстой. Энэ горим нь чипний цагийг систем дээрх бусад хэлхээг жолоодоход ашиглахад тохиромжтой. Дахин тохируулах үед цаг гарахгүй бөгөөд гал хамгаалагч програмчлагдсан үед I / O зүүний хэвийн ажиллагаа хэтрэх болно гэдгийг анхаарна уу. Цаг CLKO дээр гарахад дотоод RC Oscillator, WDT Oscillator, PLL, гадаад цаг (CLKI) -ийг сонгож болно. Кристал осциллятор (XTAL1, XTAL2) нь CLKO дээр цаг гарахад ашиглагдах боломжгүй юм. Хэрэв System Clock Prescaler ашигладаг бол энэ нь хуваагдсан системийн цаг юм.

Бүртгүүлэх тодорхойлолт

OSCCAL - Осцилляторын тохируулгын бүртгэл

Бит 7 6 5 4 3 2 1 0
0х31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W

Бит 7: 0 - CAL [7: 0]: Осцилляторын тохируулгын утга

Осцилляторын тохируулгын бүртгэлийг осцилляторын давтамжаас процессын өөрчлөлтийг арилгахын тулд шалгалт тохируулгын дотоод RC осцилляторыг багасгахад ашигладаг. Урьдчилан програмчилагдсан шалгалт тохируулгын утгыг чипийг дахин тохируулах үед энэ регистрт автоматаар бичиж, Үйлдвэрийн тохируулсан давтамжийг 21-р хуудасны хүснэгт 2-164. Аппликешн програм нь осцилляторын давтамжийг өөрчлөхийн тулд энэхүү регистрийг бичиж болно. Осцилляторыг заасны дагуу давтамжаар тохируулж болно 21-р хуудасны хүснэгт 2-164. Энэ хүрээнээс гадуур шалгалт тохируулга хийх нь баталгаагүй болно.

Энэхүү осциллятор нь EEPROM болон Flash бичих хандалтыг цаг хугацаанд нь ашиглахад ашиглагддаг бөгөөд эдгээр бичих цагуудад зохих нөлөөлөл үзүүлэх болно гэдгийг анхаарна уу. Хэрэв EEPROM эсвэл Flash бичигдсэн бол 8.8 МГц-ээс хэтрэхгүй. Үгүй бол EEPROM эсвэл Flash бичих нь амжилтгүй болж магадгүй юм.

CAL7 бит нь осцилляторын ажиллах хүрээг тодорхойлдог. Энэ битийг 0 болговол хамгийн бага давтамжийн муж, энэ битийг 1 болговол хамгийн өндөр давтамжийн муж гарна. Хоёр давтамжийн хүрээ давхцаж байна, өөрөөр хэлбэл OSCCAL = 0x7F гэсэн тохиргоо нь OSCCAL = 0x80-ээс өндөр давтамжийг өгдөг.

CAL [6: 0] битүүдийг сонгосон муж доторх давтамжийг тааруулахад ашигладаг. 0x00 тохиргоо нь тухайн муж дахь хамгийн бага давтамжийг өгдөг бөгөөд 0x7F тохиргоо нь хамгийн өндөр давтамжийг өгдөг.

MCU-ийн тогтвортой ажиллагааг хангахын тулд шалгалт тохируулгын утгыг бага хэмжээгээр өөрчлөх хэрэгтэй. Нэг мөчлөгөөс нөгөө мөчлөг хүртэл 2% -иас дээш давтамжтай хэлбэлзэж байвал урьдчилан таамаглахгүй байдалд хүргэж болзошгүй юм. OSCCAL-ийн өөрчлөлт нь шалгалт тохируулга бүрт 0x20-ээс хэтрэхгүй байх ёстой. Цагны давтамж ийм өөрчлөгдөж байх үед MCU-г Reset-т хадгалахыг баталгаажуулах шаардлагатай

Хүснэгт 6-14. Дотоод RC осцилляторын давтамжийн хүрээ

OSCCAL утга Нэрлэсэн давтамжтай холбоотой хамгийн бага давтамж Нэрлэсэн давтамжтай холбоотой хамгийн өндөр давтамж
0х00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Цаг хэмжих урьдчилсан бүртгэл

Бит 7 6 5 4 3 2 1 0
0х26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Унших/бичих R/W R R R R/W R/W R/W R/W

Эхний утга 0 0 0 0 Битийн тодорхойлолтыг үзнэ үү

Бит 7 - CLKPCE: Clock Prescaler Change идэвхжүүлнэ

CLKPCE битийг өөрчлөхийг идэвхжүүлэхийн тулд CLKPCE битийг логик байдлаар бичсэн байх ёстой. CLKPCE битийг CLKPR-ийн бусад битүүдийг нэгэн зэрэг тэг дээр бичих үед л шинэчлэгддэг. CLKPCE нь бичигдсэний дараа эсвэл CLKPS бит бичигдсэний дараа дөрвөн мөчлөгөөр техник хангамжаар арилдаг. CLKPCE битийг энэ хугацааны дотор дахин бичих нь хугацааг сунгахгүй, CLKPCE битийг арилгахгүй.

Бит 6: 4 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler Бит 3 - 0-ийг сонгоно уу

Эдгээр битүүд нь сонгосон цагийн эх үүсвэр ба дотоод системийн цагийг хуваах хүчин зүйлийг тодорхойлдог. Эдгээр битүүдийг програмын шаардлагад нийцүүлэн цагийн давтамжийг өөрчлөхийн тулд ажиллах хугацааг бичиж болно. Хуваагч нь мастер цагийн оролтыг MCU-д хувааж байх үед хуваах коэффициентийг ашиглахад бүх синхрон захын төхөөрөмжүүдийн хурд буурдаг. Хуваах хүчин зүйлийг өгсөн болно Хүснэгт 6-15.

Цагны давтамжийг санамсаргүйгээр өөрчлөхөөс зайлсхийхийн тулд CLKPS битүүдийг өөрчлөхийн тулд бичих тусгай журмыг мөрдөх шаардлагатай.

Clock Prescaler Change Enable (CLKPCE) битийг нэг, CLKPR-ийн бусад бүх битүүдийг тэг болгож бичнэ үү.

Дөрвөн мөчлөгийн дотор CLKPCE руу тэгийг бичиж байхдаа хүссэн утгыг CLKPS руу бичнэ үү.

Бичих процедур тасалдаагүй эсэхийг шалгахын тулд prescaler тохиргоог өөрчлөх үед тасалдлыг идэвхгүй болгох шаардлагатай.

CKDIV8 гал хамгаалагч нь CLKPS битүүдийн анхны утгыг тодорхойлдог. Хэрэв CKDIV8 программчлагдаагүй бол CLKPS битүүдийг "0000" болгож дахин тохируулна. Хэрэв CKDIV8 програмчлагдсан бол CLKPS-ийн битүүдийг "0011" болгож дахин тохируулж эхлэхэд найман хуваах коэффициентийг өгнө. Сонгосон цагны эх үүсвэр нь одоогийн үйлдлийн нөхцөлд төхөөрөмжийн хамгийн их давтамжаас өндөр давтамжтай байвал энэ функцийг ашиглах ёстой. CKDIV8 Гал хамгаалагчийн тохиргооноос үл хамааран CLKPS битүүдэд ямар ч утгыг бичиж болно гэдгийг анхаарна уу. Хэрэглээний програм хангамж нь хангалттай хуваах хүчин зүйл байгаа эсэхийг баталгаажуулах ёстой

сонгосон цагийн эх үүсвэр нь өнөөгийн ажиллагааны нөхцөлд төхөөрөмжийн хамгийн их давтамжаас өндөр давтамжтай байвал сонгоно. Төхөөрөмжийг програмчлагдсан CKDIV8 гал хамгаалагчийн хамт нийлүүлдэг.

Хүснэгт 6-15. Цагийн тохируулагчийг сонгоно уу

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Цаг хуваарилах хүчин зүйл
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 Захиалагдсан
1 0 1 0 Захиалагдсан
1 0 1 1 Захиалагдсан
1 1 0 0 Захиалагдсан
1 1 0 1 Захиалагдсан
1 1 1 0 Захиалагдсан
1 1 1 1 Захиалагдсан

Тайлбар: Урьдчилан хэмжигч нь ATtiny15 нийцтэй горимд идэвхгүй болсон бөгөөд CLKPR руу бичих эсвэл CKDIV8 гал хамгаалагчийг програмчлах нь системийн цагт ямар ч нөлөө үзүүлэхгүй (энэ нь үргэлж 1.6 МГц байх болно).

Эрчим хүчний менежмент ба унтах горим

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

Унтах горим

6-р хуудасны зураг 1-23 өөр өөр цагийн системүүд ба тэдгээрийн тархалтыг ATtiny25 / 45/85 дээр танилцуулж байна. Зураг нь тохиромжтой унтах горимыг сонгоход тустай. Хүснэгт 7-1 унтах өөр горим, сэрэх эх үүсвэрийг харуулдаг.

Хүснэгт 7-1. Янз бүрийн унтах горим дахь идэвхтэй цагийн домэйнууд ба сэрээх эх сурвалжууд

Идэвхтэй цагийн домэйнууд Осциллятор Сэрэх эх сурвалжууд
Унтах горим clkCPU clkFLASH clkIO clkADC clkPCK Үндсэн цагийн эх үүсвэрийг идэвхжүүлсэн INT0 ба Pin Change SPM / EEPROM

Бэлэн

 

USI эхлэх нөхцөл

ADC Бусад I/O Харагч нохой Тасал
Сул зогсолт X X X X X X X X X X
ADC дуу чимээг бууруулах X X X(1) X X X X
Унтраах X(1) X X

Тайлбар: INT0-ийн хувьд зөвхөн түвшний тасалдал.

Гурван унтах горимын аль нэгэнд орохын тулд MCUCR дэх SE битийг логикийн нэгээр нь бичиж, SLEEP зааврыг гүйцэтгэх шаардлагатай. MCUCR Регистрийн SM [1: 0] битүүд нь SLEEP зааврын дагуу аль унтах горимыг идэвхжүүлдэгийг (идэвхгүй, ADC дуу чимээг бууруулах эсвэл унтраах) сонгоно. Харна уу Хүснэгт 7-2 хураангуй.

Хэрэв MCU унтах горимд байх үед идэвхжсэн тасалдал гарвал MCU сэрдэг. Дараа нь MCU-г эхлүүлэх хугацаанаас гадна дөрвөн циклээр зогсоож, тасалдлын горимыг гүйцэтгэж, SLEEP-ийн дараах заавраас гүйцэтгэлийг үргэлжлүүлнэ. Бүртгэлийн агуулга File болон SRAM нь төхөөрөмжийг нойрноос сэрэх үед өөрчлөгдөөгүй. Унтах горимын үед дахин тохируулалт хийгдвэл MCU сэргэж, Reset Vector-ээс ажиллана.

Анхаарна уу: Хэрэв түвшний өдөөгдсөн тасалдлыг сэрээхэд ашигладаг бол өөрчлөгдсөн түвшинг MCU-г сэрээхийн тулд хэсэг хугацаанд барих шаардлагатай (мөн MCU нь тасалдал үйлчилгээний горимд орохын тулд). Харна уу 49-р хуудасны “Гадаад тасалдал” дэлгэрэнгүй мэдээллийг авна уу.

Сул зогсолтын горим

SM[1:0] битүүдийг 00 руу бичих үед SLEEP заавар нь MCU-г идэвхгүй горимд оруулж, CPU-г зогсоож, харин Аналог харьцуулагч, ADC, USI, Timer/Counter, Watchdog болон тасалдлын системийг үргэлжлүүлэн ажиллуулах боломжийг олгоно. идэх. Энэ унтах горим нь үндсэндээ clkCPU болон clkFLASH-ыг зогсоож, бусад цагийг ажиллуулах боломжийг олгодог.

Сул зогсолтын горим нь MCU-г гадаад өдөөгдсөн тасалдалтаас гадна Timer Overflow гэх мэт дотоод сэрээнүүдээс сэрээх боломжийг олгодог. Хэрэв аналог харьцуулагчийн тасалдалтаас сэрэх шаардлагагүй бол аналог харьцуулагчийг ACD битийг тохируулж асааж болно. “ACSR - Аналог харьцуулагчийн хяналт ба статусын бүртгэл” хуудас 120. Энэ нь сул зогсолтын горим дахь цахилгаан зарцуулалтыг багасгах болно. Хэрэв ADC идэвхжсэн бол энэ горимд шилжих үед хөрвүүлэлт автоматаар эхэлдэг.

ADC дуу чимээг бууруулах горим

SM[1:0] битүүдийг 01-д бичих үед SLEEP заавар нь MCU-г ADC Noise Reduction горимд оруулж, CPU-г зогсоож, харин ADC, гадаад тасалдал, Watchdog-ийг үргэлжлүүлэн ажиллуулах боломжийг олгоно (хэрэв идэвхжүүлсэн бол). Энэ унтах горим нь clkI/O, clkCPU болон clkFLASH-ыг зогсоож, бусад цагуудыг ажиллуулах боломжийг олгодог.

Энэ нь ADC-ийн дуу чимээний орчныг сайжруулж, өндөр нарийвчлалтай хэмжилт хийх боломжийг олгодог. Хэрэв ADC идэвхжсэн бол энэ горимд шилжих үед хөрвүүлэлт автоматаар эхэлдэг. ADC-ийн хөрвүүлэлтийн бүрэн тасалдалаас гадна зөвхөн гадаад тохиргоог сэргээх, харуулын нохой дахин тохируулах, хүрэн өнгөт дахин тохируулах, SPM / EEPROM бэлэн тасалдал, INT0 дээрх гаднах түвшний тасалдал эсвэл зүү солих тасалдал нь MCU-ийг ADC дуу чимээг бууруулахаас сэрээх боломжтой. горим.

Асаах горим

SM [1: 0] битийг 10-д бичих үед SLEEP заавар нь MCU-г Power-down горимд оруулдаг. Энэ горимд Осциллятор зогсох бөгөөд гадны тасалдал, USI эхлэх нөхцөлийг илрүүлж, Watchdog үргэлжлүүлэн ажиллах болно (хэрэв идэвхжсэн бол). Зөвхөн Гадаад Reset, Watchdog Reset, Brown-out Reset, USI эхлэх нөхцлийг тасалдуулах, INT0 дээр гаднах түвшний тасалдал эсвэл зүү солих тасалдал нь MCU-г сэрээх болно. Энэхүү унтах горим нь үүссэн бүх цагийг зогсоож, зөвхөн асинхрон модулийг ажиллуулах боломжийг олгодог.

Програм хангамжийн BOD идэвхгүй болгох

Brown-out Detector (BOD) -ийг BODLEVEL гал хамгаалагч идэвхжүүлсэн үед (харна уу 20-р хуудасны хүснэгт 4-148), ТУЗ нь нийлүүлэлтийн боть идэвхтэй хяналт тавьж байнаtage унтах үед. Зарим төхөөрөмжүүдэд унтрах горимд программ хангамжаар BOD-г идэвхгүй болгосноор эрчим хүч хэмнэх боломжтой. Унтах горимын эрчим хүчний хэрэглээ нь дэлхийн хэмжээнд гал хамгаалагчаар BOD идэвхгүй болсон үеийнхтэй ижил түвшинд байх болно.

Хэрэв BOD програм хангамжаар идэвхгүй болсон бол BOD функц нь унтах горимд орсны дараа шууд унтарна. Унтахаасаа сэрэх үед BOD автоматаар дахин идэвхждэг. Энэ нь унтах үед VCC түвшин буурсан тохиолдолд аюулгүй ажиллагааг хангана.

BOD идэвхгүй болсон үед унтах горимоос сэрэх хугацаа нь RESET-ээс сэрэхэд ижил байх болно. Хэрэглэгч нь сэрэх цагийг гараар тохируулах ёстой бөгөөд ингэснээр bandgap лавлагаа эхлэх цагтай байх ба MCU нь кодыг үргэлжлүүлэн гүйцэтгэхээс өмнө BOD зөв ажиллаж байна. Хүснэгтээс SUT [1: 0] ба CKSEL [3: 0] гал хамгаалагчийн хэсгүүдийг үзнэ үү 149-р хуудасны “Fuse Low Byte”

BOD идэвхгүйжүүлэлтийг MCU хяналтын регистрийн BODS (BOD Sleep) битээр хянана “MCUCR - MCU хяналт Бүртгүүлэх ”хуудсыг 37-р хуудсанд байрлуулав. Энэ битийг нэг рүү бичих нь BOD-ийг Power-Down дээр унтрааж байхад тэгийг бичих нь BOD-ийг идэвхтэй байлгадаг. Анхдагч тохируулга нь тэг, өөрөөр хэлбэл BOD идэвхтэй байна.

BODS бит рүү бичихийг цаг хугацааны дараалал, идэвхжүүлэх битээр хянадаг “MCUCR - MCU Control Regis- ter ”гэж 37-р хуудсанд бичсэн байна.

Хязгаарлалтууд

BOD идэвхгүйжүүлэх функцийг дараахь төхөөрөмжүүдэд хэрэгжүүлсэн болно:

ATtiny25, E хувилбар, шинэ хувилбар

ATtiny45, D хувилбар, шинэ хувилбар

ATtiny85, С хувилбар, шинэ хувилбарууд

Засваруудыг төхөөрөмжийн багц дээр тэмдэглэсэн бөгөөд дараах байдлаар байрлуулж болно:

8P3 ба 8S2 багцын доод тал

20M1 багцын дээд тал

Эрчим хүч бууруулах бүртгэл

Цахилгаан бууруулах бүртгэл (PRR) -ийг үзнэ үү 38-р хуудсан дээрх “PRR - Эрчим хүчийг бууруулах бүртгэл”, тусдаа захын төхөөрөмжүүдэд цагийг зогсоосноор цахилгаан зарцуулалтыг бууруулах аргыг санал болгодог. Захын өнөөгийн байдал нь царцсан бөгөөд I / O регистрийг унших, бичих боломжгүй байна. Цагийг зогсооход захын төхөөрөмж ашигладаг нөөцүүд эзлэгдсэн хэвээр байх тул ихэнх тохиолдолд цагийг зогсоохоос өмнө захын төхөөрөмжийг идэвхгүй болгох хэрэгтэй. PRR дээр битийг цэвэрлэх замаар хийгддэг модулийг сэрээх нь модулийг унтрахаас өмнөх байдалд оруулдаг.

Модулийг унтраах горимыг идэвхгүй горим болон Идэвхтэй горимд ашиглаж болно. Бусад бүх унтах горимд цаг аль хэдийн зогссон байна. Харна уу 177-р хуудсан дээрх “Оролт / гаралтын модулиудын нийлүүлэлтийн гүйдэл” жишээ ньamples.

Эрчим хүчний хэрэглээг багасгах

AVR удирдлагатай систем дэх цахилгаан зарцуулалтыг хамгийн бага байлгахыг хичээхдээ хэд хэдэн асуудлыг анхаарч үзэх хэрэгтэй. Ерөнхийдөө унтах горимыг аль болох ихээр ашиглах хэрэгтэй бөгөөд төхөөрөмжийн функцууд аль болох цөөхөн ажиллаж байхаар унтах горимыг сонгох хэрэгтэй. Шаардлагагүй бүх функцийг идэвхгүй болгох хэрэгтэй. Ялангуяа хамгийн бага цахилгаан зарцуулалт хийхийг оролдохдоо дараахь модулиудыг онцгой анхаарч үзэх хэрэгтэй.

Аналогоос дижитал хөрвүүлэгч

Хэрэв идэвхжүүлсэн бол ADC нь бүх унтах горимд идэвхжсэн байх болно. Эрчим хүч хэмнэхийн тулд ямар ч унтах горимд орохоосоо өмнө ADC-г идэвхгүй болгох хэрэгтэй. ADC-г унтрааж дахин асаахад дараагийн хөрвүүлэлт нь өргөтгөсөн хөрвүүлэлт болно. Үзнэ үү 122-р хуудасны “Дижитал хөрвүүлэгчийн аналог” ADC ажиллагааны талаархи дэлгэрэнгүй мэдээллийг авна уу.

Аналог харьцуулагч

Сул зогсолтын горимд орохдоо аналог харьцуулагчийг ашиглаагүй бол идэвхгүй болгох хэрэгтэй. ADC дуу чимээг бууруулах горимд орохдоо аналог харьцуулагчийг идэвхгүй болгох хэрэгтэй. Бусад унтах горимд аналог харьцуулагч автоматаар идэвхгүй болно. Гэсэн хэдий ч, хэрэв Аналог харьцуулагчийг дотоод боть ашиглахаар тохируулсан болtage Оролтын хувьд Аналог харьцуулагчийг бүх унтах горимд идэвхгүй болгох ёстой. Үгүй бол, Дотоод ботьtage Лавлагаа нь унтах горимоос үл хамааран идэвхжинэ. Үзнэ үү Хуудасны 119 дэх “Аналог харьцуулагч” Аналог харьцуулагчийг хэрхэн тохируулах талаар дэлгэрэнгүй үзнэ үү.

Браун гарч ирсэн детектор

Хэрэв Brown-out Detector програмд ​​хэрэггүй бол энэ модулийг унтраасан байх ёстой. Хэрэв Brown-out Detector-ийг BODLEVEL гал хамгаалагч идэвхжүүлсэн бол бүх унтах горимд идэвхжүүлсэн байх тул үргэлж эрчим хүч зарцуулдаг. Унтах гүн горимд энэ нь одоогийн нийт хэрэглээнд ихээхэн хувь нэмэр оруулах болно. Харна уу “Бор детек- tion ”хуудсан дээр 41-р хуудсанд байрлуулсан болно болон 35-р хуудасны “Software BOD Disable” Brown-out Detector-ийг хэрхэн тохируулах талаар дэлгэрэнгүй үзнэ үү.

Дотоод ботьtage Лавлагаа

Дотоод ботьtage Reference нь Brown-out Detection, Analog Comparator эсвэл ADC-д шаардлагатай үед идэвхжинэ. Дээрх хэсгүүдэд заасны дагуу эдгээр модулиудыг идэвхгүй болгосон бол дотоод ботьtage лавлагаа идэвхгүй болох бөгөөд энэ нь эрчим хүч хэрэглэхгүй. Дахин асаалттай үед хэрэглэгч гаралтыг ашиглахаас өмнө лавлагааг эхлүүлэхийг зөвшөөрөх ёстой. Хэрэв лавлагааг унтах горимд байлгавал гаралтыг шууд ашиглах боломжтой. Үзнэ үү “Дотоод ботьtage Лавлагаа” 42-р хуудас эхлэх цагийн талаархи дэлгэрэнгүй мэдээллийг авна уу.

Харуулын таймер

Хэрэв програмд ​​Watchdog Timer хэрэггүй бол энэ модулийг унтраасан байх ёстой. Хэрэв Watchdog Timer-ийг идэвхжүүлсэн бол бүх унтах горимд идэвхжүүлсэн байх тул үргэлж эрчим хүч зарцуулдаг. Унтах гүн горимд энэ нь одоогийн нийт хэрэглээнд ихээхэн хувь нэмэр оруулах болно. Үзнэ үү 42-р хуудасны “Харуулын нохойн цаг хэмжигч” Watchdog Timer-ийг хэрхэн тохируулах талаар дэлгэрэнгүй үзнэ үү.

Порт зүү

Унтах горимд орохдоо бүх портын зүүг хамгийн бага хүчийг ашиглахаар тохируулсан байх ёстой. Хамгийн гол нь ямар ч зүү эсэргүүцэл ачааллыг жолоодохгүй байх явдал юм. I/O цаг (clkI/O) болон ADC цаг (clkADC) хоёулаа зогссон унтах горимд төхөөрөмжийн оролтын буфер идэвхгүй болно. Энэ нь эрчим хүч хэрэглэхгүй байх баталгаа юм

шаардлагагүй бол оруулах логикоор. Зарим тохиолдолд сэрэх нөхцлийг тодорхойлоход оролтын логик шаардлагатай байдаг ба

дараа нь үүнийг идэвхжүүлнэ. Энэ хэсгийг үзнэ үү “Дижитал оролтыг идэвхжүүлж, унтах горим” 57-р хуудсанд аль зүүг идэвхжүүлсэн талаар дэлгэрэнгүй мэдээллийг авна уу. Хэрэв оролтын буфер идэвхжсэн бөгөөд оролтын дохио нь хөвөгч үлдсэн эсвэл VCC/2-той ойролцоо аналог дохионы түвшинтэй байвал оролтын буфер хэт их хүч зарцуулна.

Аналог оролтын тээглүүрүүдийн хувьд дижитал оролтын буфер үргэлж идэвхгүй байх ёстой. Оролтын зүү дээрх VCC/2-тэй ойролцоо аналог дохионы түвшин нь идэвхтэй горимд ч их хэмжээний гүйдэл үүсгэдэг. Дижитал оролтыг идэвхгүй болгох бүртгэлд (DIDR0) бичиж дижитал оролтын буферийг идэвхгүй болгож болно. Үзнэ үү "DIDR0 - Дижитал оролтыг идэвхгүйжүүлэх бүртгэл 0", хуудас 121 дэлгэрэнгүй мэдээллийг авна уу.

Бүртгүүлэх тодорхойлолт

MCUCR - MCU хяналтын бүртгэл

MCU-ийн хяналтын бүртгэл нь эрчим хүчний менежментийн хяналтын битүүдийг агуулдаг.

Бит 7 6 5 4 3 2 1 0
0х35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Унших/бичих R R/W R/W R/W R/W R R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7 - BODS: BOD Sleep

BOD идэвхгүй болгох функцийг зөвхөн зарим төхөөрөмжид ашиглах боломжтой. Харна уу Хуудасны 36 дахь “хязгаарлалт”.

Унтах үед BOD-ийг идэвхгүй болгохын тулд (үзнэ үү 7-р хуудасны хүснэгт 1-34) BODS битийг логикийн дагуу бичсэн байх ёстой. Үүнийг цаг хугацааны дараалал, MCUCR дахь BODSE идэвхжүүлэх битээр хянадаг. Нэгдүгээрт, BODS ба BODSE хоёулаа нэгийг тохируулсан байх ёстой. Хоёрдугаарт, дөрвөн цагийн мөчлөгт BODS-ийг нэг болгож, BODSE-ийг тэг болгож тохируулах ёстой. BODS битийг тохируулсны дараа гурван цагийн мөчлөг идэвхждэг. Бодит унтах горимд BOD-ийг унтраахын тулд BODS идэвхтэй байх үед унтах зааврыг заавал гүйцэтгэх ёстой. BODS битийг гурван цагийн мөчлөгийн дараа автоматаар цэвэрлэнэ.

Sleeping BOD-ийг хэрэгжүүлээгүй төхөөрөмжүүдэд энэ битийг ашигладаггүй тул үргэлж тэгийг унших болно.

Бит 5 - SE: Унтах горимыг идэвхжүүлэх

SLEEP командыг гүйцэтгэх үед MCU-г унтах горимд оруулахын тулд SE битийг логик нэг рүү бичих ёстой. Програмистын зорилго биш л бол MCU-г унтах горимд оруулахгүйн тулд SLEEP зааврыг гүйцэтгэхийн өмнөхөн Sleep Enable (SE) битийг нэг болгон бичиж, сэрсний дараа шууд цэвэрлэхийг зөвлөж байна.

Бит 4: 3 - SM [1: 0]: Унтах горим 1 ба 0 битийг сонгоно уу

Эдгээр битүүд нь үзүүлсэн шиг байгаа гурван унтлагын горимыг сонгоно Хүснэгт 7-2.

Хүснэгт 7-2. Унтах горимыг сонгоно уу

SM1 SM0 Унтах горим
0 0 Сул зогсолт
0 1 ADC дуу чимээг бууруулах
1 0 Унтраах
1 1 Захиалагдсан

Бит 2 - BODSE: BOD Sleep Enable

BOD идэвхгүй болгох функцийг зөвхөн зарим төхөөрөмжид ашиглах боломжтой. Харна уу Хуудасны 36 дахь “хязгаарлалт”.

BODSE бит нь BODS битийн тайлбар дээр тайлбарласны дагуу BODS хяналтын битийг тохируулах боломжийг олгодог. BOD идэвхгүйжүүлэлтийг цаг хугацааны дарааллаар хянадаг.

Энэ бит нь програм хангамжийн BOD идэвхгүйжүүлэлт хийгдээгүй төхөөрөмжүүдэд ашиглагддаггүй бөгөөд тэдгээр төхөөрөмжид тэгээр унших болно.

PRR - Эрчим хүчийг бууруулах бүртгэл

Эрчим хүчийг бууруулах бүртгэл нь захын цагийн дохиог идэвхгүй болгох замаар цахилгаан зарцуулалтыг бууруулах аргыг өгдөг.

Бит 7 6 5 4 3 2 1 0
0х20 PRTIM1 PRTIM0 ПРУСИ PRADC PRR
Унших/бичих R R R R R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7: 4 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 3 - PRTIM1: Цахилгаан бууруулах таймер / тоолуур1

Энэ бит дээр логик бичих нь Timer / Counter1 модулийг унтраадаг. Таймер / тоолуур1-ийг идэвхжүүлсэн үед ажиллагаа унтрахаас өмнөх шиг үргэлжилнэ.

Бит 2 - PRTIM0: Цахилгаан бууруулах таймер / тоолуур0

Энэ бит дээр логик бичих нь Timer / Counter0 модулийг унтраадаг. Таймер / тоолуур0-ийг идэвхжүүлсэн үед ажиллагаа унтрахаас өмнөх шиг үргэлжилнэ.

Бит 1 - PRUSI: Цахилгаан бууруулах USI

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

Бит 0 - PRADC: Цахилгаан бууруулах ADC

Энэ бит дээр логик бичих нь ADC-ийг унтраадаг. ADC-ийг унтраахаас өмнө идэвхгүй болгох шаардлагатай. ADC цагийг аналог харьцуулагчийн зарим хэсэгт ашигладаг тул энэ бит өндөр байх үед аналог харьцуулагчийг ашиглах боломжгүй гэсэн үг юм.

Системийн хяналт ба дахин тохируулах

AVR-г дахин тохируулж байна

Дахин тохируулах явцад бүх I / O регистрүүд анхны утгууддаа тохируулагдсан бөгөөд Reset Vector програмаас програм хэрэгжиж эхэлнэ. Дахин тохируулах вектор дээр байрлуулсан заавар нь RJMP - Харьцангуй үсрэлт - дахин тохируулах горимын заавар байх ёстой. Хэрэв програм нь тасалдлын эх үүсвэрийг хэзээ ч идэвхжүүлдэггүй бол тасалдлын векторуудыг ашигладаггүй бөгөөд ердийн програмын кодыг эдгээр байршилд байрлуулах боломжтой. Дахь хэлхээний диаграмм Зураг 8-1 дахин тохируулах логикийг харуулна. Дахин тохируулах хэлхээний цахилгаан хэмжигдэхүүнийг өгөв 165-р хуудасны “Систем ба дахин тохируулах шинж чанарууд”.

Зураг 8-1 Логикийг дахин тохируулах Дахин тохируулах

AVR-ийн I / O портууд дахин тохируулах эх үүсвэр идэвхжсэн үед анхны байдалдаа шууд орно. Энэ нь ямар ч цагийн эх үүсвэрийг ажиллуулахыг шаарддаггүй.

Бүх дахин тохируулах эх үүсвэрүүд идэвхгүй болсны дараа дотоод тохиргоог сунгаж хойшлуулах тоолуурыг ажиллуулна. Энэ нь хэвийн ажиллагаа эхлэхээс өмнө хүчийг тогтвортой түвшинд хүргэх боломжийг олгодог. Саатал тоолуурын хугацаа дуусах хугацааг хэрэглэгч SUT ба CKSEL гал хамгаалагчаар тодорхойлдог. Хойшлуулах хугацааны янз бүрийн сонголтуудыг толилуулж байна “Цаг Эх сурвалж ”25-р хуудсанд нийтлэв.

Эх сурвалжийг дахин тохируулах

ATtiny25 / 45/85 нь дахин тохируулах дөрвөн эх үүсвэртэй:

Асаах үед дахин тохируулах. нийлүүлэлтийн хэмжээ үед MCU дахин тохируулагдсан байнаtage нь асаахад дахин тохируулах босго (VPOT) доогуур байна.

Гадаад тохиргоо. RESET зүү дээр хамгийн бага импульсийн уртаас бага түвшинд байх үед MCU-ийг дахин тохируулна.

Харуулын нохойг дахин тохируулах. Watchdog Timer хугацаа дуусч, Watchdog идэвхжсэн үед MCU-г дахин тохируулна.

Брауныг дахин тохируулах. Нийлүүлэлтийн боть үед MCU дахин тохируулагданаtage VCC нь Brown-out Reset босго (VBOT)-аас доогуур байгаа бөгөөд Brown-out Detector идэвхжсэн байна.

Асаалттай дахин тохируулах

On-чип илрүүлэх хэлхээнд Power-on Reset (POR) импульс үүсгэдэг. Илрүүлэх түвшинг “Сис- tem and reset шинж чанарууд ”сэдэвт 165-р хуудсанд нийтлэв. VCC нь илрүүлэх түвшнээс доогуур үед POR идэвхждэг. POR хэлхээг эхлүүлэхийн тулд дахин тохируулах, мөн хангамжийн доголдлыг илрүүлэхэд ашиглаж болно.tage.

Асаах үед дахин тохируулах (POR) хэлхээ нь төхөөрөмжийг асаалтаас дахин тохируулахыг баталгаажуулдаг. Асаах үед дахин тохируулах босгонд хүрч байнаtage нь VCC нэмэгдсэний дараа төхөөрөмжийг RESET горимд хэр удаан байлгахыг тодорхойлдог саатлын тоолуурыг дууддаг. VCC илрүүлэх түвшнээс доогуур буурах үед RESET дохио нь ямар ч сааталгүйгээр дахин идэвхждэг.

Зураг 8-2. MCU эхлүүлэх, RESET VCC-д холбогдсон

ДОТООД ДАХИН ТОХИРУУЛАХ

Зураг 8-3. MCU эхлүүлэх, RESET Extended Extended

Гадаад тохиргоо

Гадаад идэвхжүүлэлтийг идэвхжүүлсэн тохиолдолд RESET зүү дээрх доод түвшнээр үүсгэдэг. Хамгийн бага импульсийн өргөнөөс урт импульсийг дахин тохируулна уу 165-р хуудасны “Систем ба дахин тохируулах шинж чанарууд”) нь цаг ажиллахгүй байсан ч дахин тохируулах болно. Богино импульс нь дахин тохируулах баталгаа болохгүй. Хэрэглэсэн дохио нь Reset Threshold Vol-д хүрэхэдtage – VRST – эерэг ирмэг дээр, саатлын тоолуур Хугацаа дууссаны дараа MCU-г эхлүүлнэ.

Зураг 8-4. Ашиглалтын явцад гадаад дахин тохируулах Зураг 8.4

Браун гарч илрүүлэх

ATtiny25/45/85 нь үйл ажиллагааны явцад VCC-ийн түвшинг тогтсон гох түвшинтэй харьцуулах замаар хянах зориулалттай чип дээр хүрэн гарах илрүүлэх (BOD) хэлхээтэй. BOD-ийн гох түвшинг BODLEVEL гал хамгаалагчаар сонгож болно. Өдөөгчийн түвшин нь огцом үсрэлтгүй Хүрэн гаралтыг илрүүлэхийн тулд гистерезистэй байдаг. Илрүүлэх түвшний гистерезисийг VBOT+ = VBOT + VHYST/2 ба VBOT- = VBOT – VHYST/2 гэж тайлбарлах хэрэгтэй.

BOD идэвхжсэн үед VCC нь гох түвшингээс доогуур (VBOT-д) хүртэл буурдаг. Зураг 8-5), Brown-out Reset нэн даруй идэвхждэг. VCC нь гох түвшнээс дээш өсөх үед (VBOT+ in Зураг 8-5), саатал тоологч нь tTOUT хугацаа дууссаны дараа MCU-г эхлүүлнэ.

BOD хэлхээ нь зөвхөн VCC-ийн уналтыг зөвхөн voltage нь өгөгдсөн tBOD-аас удаан хугацаагаар гох түвшнээс доогуур байна 165-р хуудасны “Систем ба дахин тохируулах шинж чанарууд”. Зураг 8.5

Харуулын нохойг дахин тохируулах

Watchdog-ийн хугацаа дуусахад энэ нь нэг CK мөчлөгийн үргэлжлэх богино хугацааны дахин тохируулах импульс үүсгэдэг. Энэ импульсийн унасан ирмэг дээр саатал таймер tTOUT хугацааг тоолж эхэлнэ. Үзнэ үү 42-р хуудасны “Харуулын нохойн цаг хэмжигч” Watchdog Timer-ийн ажиллагааны талаархи дэлгэрэнгүй мэдээллийг авна уу.

Ботьtage Лавлагаа идэвхжүүлэх дохио ба эхлүүлэх цаг

Ботьtage лавлагаа нь түүнийг ашиглах аргад нөлөөлж болох эхлэх хугацаатай байдаг. Эхлэх цагийг заасан байна 165-р хуудасны “Систем ба дахин тохируулах шинж чанарууд”. Эрчим хүч хэмнэхийн тулд лавлагааг үргэлж асаадаггүй. Дараахь нөхцөл байдлын үед тайлбарыг идэвхжүүлсэн болно.

BOD идэвхжсэн үед (BODLEVEL [2: 0] Fuse Bits програмчлах замаар).

Bandgap лавлагаа нь аналог харьцуулагчтай холбогдсон үед (ACSR-д ACBG битийг тохируулах замаар).

ADC идэвхжсэн үед.

Тиймээс BOD-ийг идэвхжүүлээгүй үед ACBG битийг тохируулсны дараа эсвэл ADC-г идэвхжүүлсний дараа хэрэглэгч аналог харьцуулагч эсвэл ADC-ийн гаралтыг ашиглахаас өмнө лавлагааг эхлүүлэхийг үргэлж зөвшөөрөх ёстой. Цахилгаан таслах горим дахь цахилгаан зарцуулалтыг багасгахын тулд хэрэглэгч дээрх гурван нөхцлөөс зайлсхийж, цахилгаан унтрах горимд орохоосоо өмнө лавлагаа унтрааж болно.

Харуулын таймер

Watchdog Timer нь 128 кГц-ийн хурдтай ажилладаг On-chip Oscillator төхөөрөмжөөс ажилладаг. Watchdog Timer prescaler-ийг хянах замаар Watchdog Reset интервалыг дараах байдлаар тохируулж болно. 8-р хуудасны хүснэгт 3-46. WDR - Watchdog Reset - заавар нь Watchdog Timer-ийг дахин тохируулна. Watchdog Timer нь идэвхгүй болсон үед болон Chip Reset хийх үед дахин тохируулагдана. Дахин тохируулах хугацааг тодорхойлохын тулд арван өөр цагийн мөчлөгийн үеийг сонгож болно. Дахин тохируулах хугацаа дахин нэг Watchdog Reset хийхгүйгээр дуусах юм бол ATtiny25 / 45/85 нь Reset Vector-ыг дахин эхлүүлж ажиллуулна. Watchdog-ийг дахин тохируулах талаархи дэлгэрэнгүй мэдээллийг үзнэ үү 8-р хуудасны хүснэгт 3-46.

Watchdog Timer-ийг дахин тохируулахын оронд тасалдал үүсгэхээр тохируулж болно. Энэ нь Watchdog-ийг Power-down-ээс сэрээхэд ашиглахад маш их тустай байж болох юм.

Хяналтын нохойг санамсаргүйгээр идэвхгүй болгох эсвэл санамсаргүй байдлаар хугацаагаа өөрчлөхөөс урьдчилан сэргийлэхийн тулд гал хамгаалагч WDTON-ээр хоёр өөр аюулгүй байдлын түвшинг сонгосон болно. Хүснэгт 8-1 лавлана уу “Консолыг өөрчлөх хугацаатай дараалал харуулын нохойн цагийг дүрслэх нь ”гэсэн хуудсан дээрх 43-р хуудсанд нийтлэв дэлгэрэнгүй мэдээллийг авна уу.

Хүснэгт 8-1. WDT-ийн тохиргоо нь WDTON-ийн гал хамгаалагчийн тохиргооны функц юм

WDTON Аюулгүй байдлын түвшин WDT анхны байдал WDT-ийг хэрхэн хаах вэ Цаг хугацааг хэрхэн өөрчлөх вэ
Програмчлагдаагүй 1 Идэвхгүй Цаг хугацааны дараалал Хязгаарлалт байхгүй
Програмчлагдсан 2 Идэвхжүүлсэн Үргэлж идэвхжүүлсэн Цаг хугацааны дараалал

Зураг 8-7. Харуулын таймер Харагч нохой

Харуулын нохой таймерын тохиргоог өөрчлөх хугацаатай дараалал

Тохиргоог өөрчлөх дараалал нь аюулгүй байдлын хоёр түвшний хооронд ялимгүй ялгаатай байна. Түвшин тус бүрт тусдаа журмуудыг тайлбарласан болно.

Аюулгүй байдлын 1-р түвшин: Энэ горимд Watchdog Timer анх идэвхгүй болсон боловч WDE битийг ямар ч хязгаарлалтгүйгээр нэг рүү бичих замаар идэвхжүүлж болно. Идэвхжүүлсэн Watchdog Timer-ыг идэвхгүй болгоход цаг хугацааны дараалал шаардлагатай. Идэвхжүүлсэн Watchdog Timer-ыг идэвхгүй болгохын тулд дараах журмыг дагаж мөрдөх шаардлагатай.

Үүнтэй ижил үйлдлийг WDCE ба WDE дээр логик бичнэ үү. WDE битийн өмнөх утгаас бага логик логикийг WDE дээр бичих ёстой.

Дараагийн дөрвөн мөчлөгийн дотор ижил үйлдлээр WDE ба WDP битүүдийг хүссэнээрээ бичнэ үү, гэхдээ WDCE битийг арилгана.

Аюулгүй байдлын 2-р түвшин: Энэ горимд Watchdog Timer үргэлж идэвхжсэн байх ба WDE бит нь үргэлж нэг гэж уншина. Харуулын нохойны хугацаа дуусах хугацааг өөрчлөхөд цаг хугацааны дараалал шаардлагатай. Watchdog-ийн цагийг өөрчлөхийн тулд дараахь журмыг дагаж мөрдөх шаардлагатай.

Үүнтэй ижил үйлдэл хийхдээ логик хувилбарыг WDCE ба WDE дээр бичнэ үү. WDE нь үргэлж тохируулагддаг боловч цаг хугацааны дарааллыг эхлүүлэхийн тулд WDE-г нэг дээр нь бичих ёстой.

Дараагийн дөрвөн цагийн мөчлөгт ижил үйлдлээр WDP битүүдийг хүссэн хэмжээгээр бичнэ үү, гэхдээ WDCE битийг арилгана. WDE бит дээр бичсэн утга нь хамааралгүй болно.

Код Example

Дараах код жишээ ньample нь WDT-г унтраах нэг угсралт, нэг C функцийг харуулж байна. эксample нь эдгээр функцийг гүйцэтгэх явцад тасалдал гарахгүйн тулд тасалдлыг хянадаг (жишээ нь, дэлхийн хэмжээнд тасалдлыг идэвхгүй болгох замаар) гэж үздэг.

Ассемблей код Example(1)
WDT_off:

wdr

; MCUSR дээр WDRF-г арилгах

ldi r16, (0<

MCUSR гарч, r16

; WDCE ба WDE-д логик нэгийг нь бичээрэй

; Санамсаргүй байдлаар Watchdog Reset хийхээс урьдчилан сэргийлэхийн тулд prescaler-ийн хуучин тохиргоог хадгалаарай

r16, WDTCR дээр

ori r16, (1<

гарч WDTCR, r16

; WDT-г унтраа

ldi r16, (0<

гарч WDTCR, r16

ret

C код Example(1)
хүчингүй WDT_off(хүчингүй)

{

_WDR ();

/* MCUSR дахь WDRF-г цэвэрлэх */ MCUSR = 0x00

/* WDCE болон WDE-д логик нэгийг бичнэ */ WDTCR |= (1<

/ * WDT-г унтраах * / WDTCR = 0x00;

}

Тэмдэглэл: 1. Үзнэ үү “Код Examples” 6-р хуудсанд.

Бүртгүүлэх тодорхойлолт

MCUSR - MCU статусын бүртгэл

MCU-ийн статусын бүртгэл нь дахин тохируулах эх үүсвэрээс MCU-г дахин тохируулахтай холбоотой мэдээллийг өгдөг.

Бит 7 6 5 4 3 2 1 0
0х34 WDRF БОРФ EXTRF PORF MCUSR
Унших/бичих R R R R R/W R/W R/W R/W

Эхний утга 0 0 0 0 Битийн тодорхойлолтыг үзнэ үү

Бит 7: 4 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 3 - WDRF: Watchdog Reset Flag

Хэрэв Watchdog-ийг дахин тохируулах шаардлагатай бол энэ битийг тохируулна. Битийг асаахад дахин тохируулах замаар эсвэл туг руу логик тэг бичих замаар дахин тохируулна.

Бит 2 - BORF: Дахин дахин тохируулах туг

Браун гадагшлуулах дахин тохируулах тохиолдолд энэ битийг тохируулна. Битийг асаахад дахин тохируулах замаар эсвэл туг руу тэг логик бичих замаар дахин тохируулна.

Бит 1 - EXTRF: Гадаад дахин тохируулах туг

Хэрэв гадаад тохиргоог дахин тохируулах тохиолдолд энэ битийг тохируулна. Битийг асаахад дахин тохируулах замаар эсвэл туг руу логик тэг бичих замаар дахин тохируулна.

Бит 0 - PORF: Дахин асаах

Хэрэв асаалттай үед дахин тохируулах шаардлагатай бол энэ битийг тохируулна. Битийг зөвхөн туг руу логик тэг бичиж л дахин тохируулна.

Дахин тохируулах тугийг ашиглан тохиргоог дахин тохируулах нөхцөлийг тодорхойлохын тулд хэрэглэгч програмыг MCUSR програмыг аль болох эрт уншаад дахин тохируулах хэрэгтэй. Хэрэв дахин тохируулахаас өмнө регистрийг цэвэрлэсэн бол Дахин тохируулах тугуудыг шалгаж дахин эхлүүлэх эх үүсвэрийг олох боломжтой.

WDTCR - Watchdog таймерын хяналтын бүртгэл

Бит 7 6 5 4 3 2 1 0
0х21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Унших/бичих R/W R/W R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 X 0 0 0

Бит 7 - WDIF: Watchdog Timeout Interrupt flag

Энэ битийг Watchdog Timer-д завсарлага гарч, Watchdog Timer-ийг тасалдуулахаар тохируулсан үед тохируулна. Холбогдох тасалдалтай харьцах векторыг гүйцэтгэх үед WDIF-ийг техник хангамжаар арилгадаг. Эсвэл WDIF-ийг туганд логик бичээд цэвэрлэх болно. SREG ба WDIE дахь I-bit тохируулагдсан үед Watchdog Time-out Interrupt-ийг гүйцэтгэнэ.

Бит 6 - WDIE: Watchdog Timeout Interrupt идэвхжүүлэх

Энэ битийг нэг дээр бичээд WDE цэвэрлэгдэж, Статусын бүртгэл дэх I-битийг тохируулах үед Watchdog Time-out Interrupt идэвхждэг. Хэрэв энэ горимд Watchdog Timer-д завсарлага ирвэл дахин тохируулахын оронд холбогдох тасалдлыг гүйцэтгэнэ.

Хэрэв WDE-г тохируулсан бол хугацаа дуусахад WDIE-ийг тоног төхөөрөмжөөр автоматаар арилгадаг. Энэ нь тасалдлыг ашиглах явцад Watchdog Reset аюулгүй байдлыг хангахад ашигтай юм. WDIE битийг арилгасны дараа дараагийн завсарлага нь дахин тохируулах болно. Watchdog-ийг дахин тохируулахаас зайлсхийхийн тулд тасалдал бүрийн дараа WDIE-ийг тохируулах шаардлагатай.

Хүснэгт 8-2. Watchdog таймерын тохиргоо

WDE WDIE Харуулын нохой Таймер муж Цаг дуусах үйл ажиллагаа
0 0 Зогссон Байхгүй
0 1 Гүйж байна Тасал
1 0 Гүйж байна Дахин тохируулах
1 1 Гүйж байна Тасал

Бит 4 - WDCE: Харуулын нохойн өөрчлөлтийг идэвхжүүлнэ

WDE битийг логикийн тэг гэж бичих үед энэ битийг тохируулах ёстой. Үгүй бол Харуулын нохойг идэвхгүй болгохгүй. Нэгэнд нь бичсэний дараа дөрвөн цагийн мөчлөгийн дараа тоног төхөөрөмж энэ битийг арилгах болно. Watchdog идэвхгүй болгох процедурыг WDE битийн тодорхойлолтоос авна уу. Урьдчилан тохируулагч битийг өөрчлөх үед энэ битийг тохируулах ёстой. Харна уу “Хугацаатай дараалал харуулын нохойн цаг тохиргоог өөрчлөхөд зориулагдсан болно. ”хуудсан дээрх 43-р хуудсанд.

Бит 3 - WDE: Харуулын нохойг идэвхжүүлэх

WDE-ийг логик байдлаар бичих үед Watchdog Timer-ийг идэвхжүүлдэг бөгөөд хэрэв WDE-ийг тэг логикоор бичсэн бол Watchdog Timer функцийг идэвхгүйжүүлдэг. WDCE бит нь логик түвшний нэг түвшинд байгаа тохиолдолд л WDE-г арилгах боломжтой. Идэвхжүүлсэн Watchdog Timer-ийг идэвхгүй болгохын тулд дараахь журмыг мөрдөх шаардлагатай.

Үүнтэй ижил үйлдлийг WDCE ба WDE дээр логик бичнэ үү. WDE дээр логикийг идэвхгүй болгох ажиллагаа эхлэхээс өмнө тохируулсан байх ёстой.

Дараагийн дөрвөн цагийн мөчлөгт WDE руу 0 логик бичнэ үү. Энэ нь Харуулын нохойг идэвхгүйжүүлдэг.

Аюулгүй байдлын 2-р түвшинд дээр дурдсан алгоритмтай байсан ч Watchdog Timer-ийг идэвхгүй болгох боломжгүй юм. Харна уу “Хараат нохой таймерийн тохиргоог өөрчлөх хугацаатай дараалал” 43-р хуудас.

Аюулгүй байдлын 1-р түвшинд WDE-ийг MCUSR-д WDRF хүчингүй болгодог. Харна уу 44-р хуудсан дээрх “MCUSR - MCU-ийн статусын бүртгэл” WDRF-ийн тодорхойлолтыг авах. Энэ нь WDRF тохируулагдсан үед WDE үргэлж тохируулагддаг гэсэн үг юм. WDE-г арилгахын тулд дээр дурдсан процедурын дагуу Watchdog-г идэвхгүй болгохын өмнө WDRF-ийг цэвэрлэх шаардлагатай. Энэ функц нь эвдрэлд хүргэж болзошгүй нөхцөл байдлын үед дахин тохируулах, эвдрэлийн дараа аюулгүй эхлүүлэх боломжийг олгодог.

Тэмдэглэл: Хэрэв харуулын цаг хэмжигчийг програмд ​​ашиглахгүй бол төхөөрөмжийг эхлүүлэхдээ харуулын нохойг идэвхгүй болгох процедурыг давах нь чухал юм. Хэрэв Watchdog санамсаргүйгээр идэвхжсэн бол жишээ ньample гүйсэн заагч эсвэл хүрэн гарсан тохиолдолд төхөөрөмж дахин тохируулагдах бөгөөд энэ нь эргээд шинэ харуулыг дахин тохируулахад хүргэнэ. Ийм нөхцөл байдлаас зайлсхийхийн тулд програмын програм хангамж нь эхлүүлэх горимд WDRF туг болон WDE хяналтын битийг үргэлж цэвэрлэх ёстой.

Бит 5, 2: 0 - WDP [3: 0]: Харуулын нохой Таймер Prescaler 3, 2, 1, 0

WDP [3: 0] битүүд нь Watchdog Timer-ийг идэвхжүүлсэн үед ажиглагчийн урьдчилан хэмжих хэмжээг тодорхойлдог. Урьдчилан тооцоолох өөр өөр утга ба тэдгээрийн харгалзах хугацаа дуусах хугацааг дараах байдлаар харуулав Хүснэгт 8-3.

Хүснэгт 8-3. Watchdog Timer Prescale Select

WDP3 WDP2 WDP1 WDP0 WDT Oscillator циклийн тоо VCC-ийн ердийн завсарлага = 5.0V
0 0 0 0 2K (2048) цикл 16 мс
0 0 0 1 4K (4096) цикл 32 мс
0 0 1 0 8K (8192) цикл 64 мс
0 0 1 1 16K (16384) цикл 0.125 с
0 1 0 0 32K (32764) цикл 0.25 с
0 1 0 1 64K (65536) цикл 0.5 с
0 1 1 0 128K (131072) цикл 1.0 с
0 1 1 1 256K (262144) цикл 2.0 с
1 0 0 0 512K (524288) цикл 4.0 с
1 0 0 1 1024K (1048576) цикл 8.0 с

Хүснэгт 8-3. Watchdog Timer Prescale Select (Үргэлжлэл)

WDP3 WDP2 WDP1 WDP0 WDT Oscillator циклийн тоо VCC-ийн ердийн завсарлага = 5.0V
1 0 1 0 Захиалагдсан(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Жич: 1. Сонгосон тохиолдолд 0b1010-аас доош хүчинтэй тохиргоонуудын аль нэгийг ашиглана.

Тасалдаг

Энэ хэсэгт ATtiny25 / 45/85 дээр гүйцэтгэсэн тасалдалтай харьцах онцлог шинж чанаруудыг тодорхойлсон болно. AVR тасалдалтай харьцах ерөнхий тайлбарыг эндээс авна уу 12-р хуудсан дээрх “Дахин тохируулах ба таслах ажил”.

ATtiny25 дахь тасалдсан векторууд45 / 85/XNUMX

ATtiny25 / 45/85-ийн тасалдлын векторуудыг тайлбарласан болно Хүснэгт 9-1доор.

Хүснэгт 9-1. Векторуудыг дахин тохируулах, таслах

Векторын дугаар Хөтөлбөрийн хаяг Эх сурвалж Тасалдлын тодорхойлолт
1 0х0000 RESET Гадаад зүү, асаалттай байдалд дахин тохируулах, хүрэн өнгөөр ​​дахин тохируулах, харуул хамгаалагчийг дахин тохируулах
2 0х0001 INT0 Гадаад тасалдлын хүсэлт 0
3 0х0002 PCINT0 Зүүг өөрчлөх тасалдлын хүсэлт 0
4 0х0003 TIMER1_COMPA Таймер / Тоолуур1 Тоглолтыг харьцуулах А
5 0х0004 TIMER1_OVF Таймер / тоолуур1 халих
6 0х0005 TIMER0_OVF Таймер / тоолуур0 халих
7 0х0006 EE_RDY EEPROM бэлэн
8 0х0007 ANA_COMP Аналог харьцуулагч
9 0х0008 ADC ADC хөрвүүлэлт дууссан
10 0х0009 TIMER1_COMPB Таймер / тоолуур1 Тоглолтын харьцуулалтыг Б
11 0х000А TIMER0_COMPA Таймер / Тоолуур0 Тоглолтыг харьцуулах А
12 0x000B хувилбар TIMER0_COMPB Таймер / тоолуур0 Тоглолтын харьцуулалтыг Б
13 0х000С WDT Харуулын нохойн цаг дууссан
14 0x000D USI_START USI START
15 0x000E USI_OVF USI халих

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

ATtiny25/45/85 дахь тасалдлын вектор хаягуудын ердийн ба ерөнхий тохиргоог програмын жишээнд үзүүлэв.ampдоор.

Ассемблей код Example
.org 0x0000 ; Дараагийн хаягийг тохируулна уу мэдэгдэл
rjmp ДАХИН тохируулах ; Хаяг 0x0000
rjmp INT0_ISR ; Хаяг 0x0001
rjmp PCINT0_ISR ; Хаяг 0x0002
rjmp TIM1_COMPA_ISR ; Хаяг 0x0003
rjmp TIM1_OVF_ISR ; Хаяг 0x0004
rjmp TIM0_OVF_ISR ; Хаяг 0x0005
rjmp EE_RDY_ISR ; Хаяг 0x0006
rjmp ANA_COMP_ISR ; Хаяг 0x0007
rjmp ADC_ISR ; Хаяг 0x0008
rjmp TIM1_COMPB_ISR ; Хаяг 0x0009
rjmp TIM0_COMPA_ISR ; 0x000A хаяг
rjmp TIM0_COMPB_ISR ; 0x000B хаяг
rjmp WDT_ISR ; 0x000C хаяг
rjmp USI_START_ISR ; 0x000D хаяг
rjmp USI_OVF_ISR ; 0x000E хаяг
Сэргээх: ; Хөтөлбөрийн эхлэл
; 0x000F хаяг

Жич: Харна уу “Код Examples” 6-р хуудсанд.

Гадаад тасалдал

Гадаад тасалдлыг INT0 зүү эсвэл PCINT [5: 0] зүүгээр өдөөж өгдөг. Хэрэв идэвхжүүлсэн бол INT0 эсвэл PCINT [5: 0] тээглүүрүүдийг гаралт хэлбэрээр тохируулсан байсан ч гэсэн тасалдал үүсэхийг анхаарна уу. Энэ онцлог нь програм хангамжийн тасалдлыг бий болгох арга замыг хангаж өгдөг. Зүүг өөрчлөх нь PCIT [5: 0] -г идэвхжүүлсэн тохиолдолд PCI-г идэвхжүүлдэг. PCMSK Бүртгэлийн хяналт нь тээглүүрийг өөрчлөхөд тасалдал үүсгэдэг. PCINT [5: 0] дээрх зүү солих тасалдлыг асинхроноор илрүүлдэг. Энэ нь эдгээр тасалдлыг хэсгийг идэвхгүй горимоос бусад унтах горимоос сэрээхэд ашиглаж болно гэсэн үг юм.

INT0 тасалдал нь унаж эсвэл дээшлэх ирмэг эсвэл бага түвшнээр өдөөгдөж болно. Энэ нь MCU хяналтын бүртгэл - MCUCR-ийн тодорхойлолтод заасны дагуу тохируулагдсан болно. INT0 тасалдлыг идэвхжүүлж, түвшинг өдөөсөн байдлаар тохируулах үед зүү бага байх үед тасалдал үүснэ. INT0 дээр унасан буюу өссөн ирмэгийн тасалдлыг хүлээн зөвшөөрөхөд тайлбарласан I / O цаг байхыг шаарддаг болохыг анхаарна уу “Цагийн систем ба тэдгээрийн тархалт” сэдэвт хуудас 23.

Бага түвшний тасалдал

INT0 дээрх бага түвшний тасалдлыг синхронгүйгээр илрүүлдэг. Энэ нь тасалдлыг сул зогсолтоос бусад унтах горимоос сэрээхэд ашиглаж болно гэсэн үг юм. I / O цагийг идэвхгүй горимоос бусад бүх унтлагын горимд зогсоодог.

Хэрэв цахилгаан унтарснаас сэрэх үед түвшний өдөөсөн тасалдлыг ашиглаж байгаа бол түвшний тасалдлыг өдөөхөд шаардлагатай түвшинг MCU-г сэрээх ажлыг дуусгахад хангалттай удаан барих ёстойг анхаарна уу. Хэрэв эхлэх хугацаа дуусахаас өмнө түвшин алга бол MCU сэргэсэн хэвээр байх боловч тасалдал үүсэхгүй. Эхлэх хугацааг -д тайлбарласны дагуу SUT болон CKSEL гал хамгаалагчаар тодорхойлно 23-р хуудасны “Системийн цаг ба цагийн сонголтууд”.

Хэрэв төхөөрөмжийг сэрээхээс өмнө тасалдлын зүү дээрх доод түвшинг арилгасан бол програмын гүйцэтгэл нь тасалдлын үйлчилгээний горим руу шилжихгүй бөгөөд SLEEP командын дараах зааврын дагуу үргэлжлүүлнэ.

Зүүг өөрчлөх тасалдлын цаг хугацаа

Хуучинampзүү солих тасалдлын хугацааг харуулсан байна Зураг 9-1.

Бүртгүүлэх тодорхойлолт

MCUCR - MCU хяналтын бүртгэл

Гадаад тасалдлын хяналтын регистр А нь тасалдлын мэдрэмжийг хянах хяналтын битүүдийг агуулдаг.

Бит 7 6 5 4 3 2 1 0
0х35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Унших/бичих R R/W R/W R/W R/W R R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 1: 0 - ISC0 [1: 0]: Мэдрэмжийг таслах 0 Бит 1 ба Бит 0

SREG I-туг болон холбогдох тасалдлын маскыг тохируулсан тохиолдолд гадаад тасалдал 0-ийг гадаад зүү INT0 идэвхжүүлдэг. Тасалдлыг идэвхжүүлдэг гадаад INT0 зүү дээрх түвшин ба ирмэгийг тодорхойлно Хүснэгт 9-2. INT0 зүү дээрх утга нь s байнаampирмэгийг илрүүлэхээс өмнө удирддаг. Хэрэв ирмэг эсвэл унтраалгатай тасалдлыг сонгосон бол нэг цагаас илүү үргэлжлэх импульс нь тасалдлыг үүсгэнэ. Богино импульс нь тасалдал үүсгэх баталгаагүй болно. Хэрэв доод түвшний тасалдлыг сонгосон бол тасалдал үүсгэхийн тулд одоогийн гүйцэтгэж буй заавар дуустал доод түвшнийг барих ёстой.

Хүснэгт 9-2. 0 мэдрэхүйн хяналтыг тасалдуулах

ISC01 ISC00 Тодорхойлолт
0 0 INT0-ийн доод түвшин нь тасалдлын хүсэлтийг үүсгэдэг.
0 1 INT0 дээрх аливаа логик өөрчлөлт нь тасалдлын хүсэлтийг үүсгэдэг.
1 0 INT0-ийн уналтын ирмэг нь тасалдлын хүсэлтийг үүсгэдэг.
1 1 INT0-ийн нэмэгдэж буй ирмэг нь тасалдлын хүсэлтийг үүсгэдэг.

GIMSK - Ерөнхий тасалдлын маск регистр

Бит 7 6 5 4 3 2 1 0
0x3B хувилбар INT0 PCIe ГИМСК
Унших/бичих R R/W R/W R R R R R
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7, 4: 0 - Нөөц: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 6 - INT0: Гадаад тасалдлын хүсэлт 0 Идэвхжүүлэх

INT0 битийг тохируулсан (нэг) ба Статусын бүртгэлд (SREG) I-битийг тохируулсан үед (нэг) гадаад зүү таслахыг идэвхжүүлдэг. MCU Хяналтын Бүртгэлд (MCUCR) орсон Interrupt Sense Control0 битүүд 1/0 (ISC01 ба ISC00) нь INT0 зүү эсвэл түвшинг мэдрэх үед гаднах тасалдал идэвхжиж байгаа эсэхийг тодорхойлдог. Зүү дээрх үйл ажиллагаа нь INT0-ийг гаралт хэлбэрээр тохируулсан байсан ч гэсэн тасалдлын хүсэлтийг үүсгэдэг. Гадаад тасалдлын хүсэлт 0-ийн харгалзах тасалдлыг INT0 тасалдлын вектороос гүйцэтгэнэ.

Бит 5 - PCIE: Зүү солих тасалдлыг идэвхжүүлэх

PCIE битийг тохируулсан (нэг) ба Статусын бүртгэлд (SREG) I-бит тохируулсан үед (нэг) зүү солих тасалдал идэвхжсэн болно. Аливаа идэвхжүүлсэн PCINT [5: 0] зүү дээрх аливаа өөрчлөлт нь тасалдал үүсгэдэг. Pin Change Interrupt Request-ийн холбогдох тасалдлыг PCI Interrupt Vector-ээс гүйцэтгэдэг. PCINT [5: 0] тээглүүрүүдийг PCMSK0 Бүртгэлээр дангаар нь идэвхжүүлдэг.

GIFR - Тасалдлын ерөнхий бүртгэл

Бит 7 6 5 4 3 2 1 0
0х3А INTF0 PCIF GIFR
Унших/бичих R R/W R/W R R R R R
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7, 4: 0 - Нөөц: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 6 - INTF0: Гадаад тасалдлын туг 0

INT0 зүү дээрх ирмэг эсвэл логик өөрчлөлт нь тасалдлын хүсэлтийг өдөөхөд INTF0 нь тохируулагдах болно (нэг). Хэрэв SREG-ийн I-бит ба GIMSK-ийн INT0 битийг тохируулсан бол (MC) харгалзах тасалдлын вектор руу шилжих болно. Тасалдалтын горимыг гүйцэтгэх үед тугийг цэвэрлэнэ. Эсвэл тугийг логик туг бичээд цэвэрлэж болно. INT0-ийг түвшний тасалдал болгон тохируулах үед энэ туг үргэлж цэвэрлэгддэг.

Бит 5 - PCIF: Зүүг өөрчлөх тасалдлын туг

Аливаа PCINT [5: 0] зүү дээрх логик өөрчлөлт нь тасалдлын хүсэлтийг өдөөхөд PCIF нь тохируулагдсан (нэг) болдог. Хэрэв SREG дэх I-бит ба GIMSK дахь PCIE битийг тохируулсан бол (MC), MCU нь харгалзах Тасалдлын вектор руу үсрэх болно. Тасалдалтын горимыг гүйцэтгэх үед тугийг цэвэрлэнэ. Эсвэл тугийг логик туг бичээд цэвэрлэж болно.

PCMSK - Зүүг өөрчлөх маск регистр

Бит 7 6 5 4 3 2 1 0
0х15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Унших/бичих R R R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 7: 6 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 5: 0 - PCINT [5: 0]: Зүүг өөрчлөх маск 5: 0

PCINT [5: 0] бит бүр нь холбогдох I / O зүү дээр зүү солих тасалдлыг идэвхжүүлсэн эсэхийг сонгоно. Хэрэв PCINT [5: 0] -г тохируулж, GIMSK-д PCIE битийг тохируулсан бол харгалзах I / O зүү дээр зүү солих тасалдлыг идэвхжүүлнэ. Хэрэв PCINT [5: 0] цэвэрлэгдсэн бол харгалзах I / O зүү дээрх зүү солих тасалдлыг идэвхгүйжүүлнэ.

I/O портууд

Танилцуулга

Бүх AVR портууд нь ерөнхий дижитал оролт гаралтын порт болгон ашиглахад жинхэнэ Унших-Өөрчлөх-Бичих функцтэй байдаг. Энэ нь SBI болон CBI зааврын дагуу нэг портын пингийн чиглэлийг өөр ямар ч пингийн чиглэлийг санамсаргүйгээр өөрчлөхгүйгээр өөрчлөх боломжтой гэсэн үг юм. Хөтөчийн утгыг өөрчлөх (гаралт болгон тохируулсан бол) эсвэл татах резисторыг идэвхжүүлэх/идэвхгүй болгох (хэрэв оролтоор тохируулсан бол) мөн адил хамаарна. Гаралтын буфер бүр нь өндөр угаалтуур болон эх үүсвэрийн чадвартай тэгш хэмтэй хөтчийн шинж чанартай байдаг. Зүү драйвер нь LED дэлгэцийг шууд удирдахад хангалттай хүчтэй. Бүх портын зүү нь нийлүүлэлтийн хэмжээ бүхий тус тусад нь сонгох боломжтой татах резисторуудтайtage хувиршгүй эсэргүүцэл. Бүх оролт гаралтын тээглүүрүүд нь-д заасны дагуу VCC болон газардуулгын хамгаалалтын диодтой Зураг 10-1. лавлана уу 161-р хуудасны “Цахилгааны шинж чанар” параметрийн бүрэн жагсаалтыг авахын тулд.

Зураг 10-1. I/O Pin эквивалент схем

Зураг 10

Энэ хэсгийн бүх регистр ба битийн лавлагааг ерөнхий хэлбэрээр бичсэн болно. Жижиг үсэг нь портын дугаарлах үсгийг, жижиг үсэг нь битийн дугаарыг илэрхийлнэ. Гэсэн хэдий ч, регистр эсвэл битийн тодорхойлолтыг програмд ​​ашиглахдаа нарийн хэлбэрийг ашиглах ёстой. Жишээ ньample, PORTB3 битийн дугаар. В портын 3, энд ерөнхийдөө PORTxn гэж бичигдсэн. Биет оролт/гаралтын бүртгэлүүд болон битийн байршлуудыг жагсаасан байна "Бүртгүүлэх тодорхойлолт" дээр хуудас 64.

Порт тус бүрт гурван I / O санах ойн хаягийн байршил, өгөгдлийн регистр - PORTx, өгөгдлийн чиглэлийн бүртгэл - DDRx, портын оролтын зүү - PINx тус бүр нэг хуваарилагдсан болно. Порт оруулах тээглүүрүүдийн оролт гаралтын байршлыг зөвхөн унших боломжтой бөгөөд өгөгдлийн бүртгэл ба өгөгдлийн чиглэлийн бүртгэлийг унших / бичих боломжтой. Гэсэн хэдий ч PINx регистрт логикийг жаахан жаахан бичвэл өгөгдлийн бүртгэлд харгалзах битийг өөрчлөх боломжтой болно. Нэмж дурдахад, MCUCR дахь Pull-up Disable - PUD bit нь тохируулагдсан үед бүх портууд дахь бүх тээглүүрүүдийн татах функцийг идэвхгүйжүүлдэг.

I / O портыг General Digital I / O болгон ашиглах талаар тайлбарласан болно 53-р хуудсан дээрх “Ерөнхий дижитал оролт гаралтын портууд”. Ихэнх порт тээглүүрүүд нь төхөөрөмж дээрх захын онцлог шинж чанаруудыг харгалзан өөр функцээр үржүүлдэг. Хувилах функц бүр порт портой хэрхэн холбогддог талаар тайлбарласан болно 57-р хуудсан дээрх “Өөр порт хийх функцууд”. Өөр функцүүдийн бүрэн тодорхойлолтыг модуль тус бүрийн хэсгүүдээс авна уу.

Зарим портын зүүг өөр функцийг идэвхжүүлснээр порт дахь бусад тээглүүрийг ерөнхий дижитал I / O болгон ашиглахад нөлөөлөхгүй гэдгийг анхаарна уу.

Ерөнхий дижитал I / O гэсэн портууд

Портууд нь хоёр тийш чиглэсэн I / O портууд бөгөөд нэмэлт татах боломжтой. Зураг 10-2 нь Pxn гэж нэрлэгддэг нэг I / O-порт зүүний функциональ тодорхойлолтыг харуулдаг.

Зураг 10-2. Ерөнхий дижитал I/O(1)

Зураг 10

Зүүг тохируулах

Портын зүү бүр DDxn, PORTxn, PINxn гэсэн гурван регистрийн битээс бүрдэнэ. -Т үзүүлсний дагуу "Бүртгүүлэх тодорхойлолт" дээр хуудас 64, DDxn битүүдийг DDRx I / O хаягаар, PORTxn битийг PORTx I / O хаягаар, PINxn битийг PINx I / O хаягаар ханддаг.

DDRx регистрийн DDxn бит энэ зүүний чиглэлийг сонгоно. Хэрэв DDxn нь логик байдлаар бичигдсэн бол Pxn нь гаралтын зүү хэлбэрээр тохируулагдсан болно. Хэрэв DDxn-ийг логик тэг гэж бичсэн бол Pxn-ийг оролтын зүү болгон тохируулна.

Хэрэв зүүг оролтын зүү болгон тохируулах үед PORTxn логик бичигдсэн бол татах резистор идэвхждэг. Татах эсэргүүцлийг унтраахын тулд PORTxn-ийг логик тэг гэж бичих эсвэл зүүг гаралтын зүү болгож тохируулах шаардлагатай. Дахин тохируулах нөхцөл идэвхжсэн үед цаг залгаагүй байсан ч гэсэн порт тээглүүрүүдийг гурван удаа тэмдэглэнэ.

Хэрэв зүүг гаралтын зүү болгон тохируулах үед PORTxn логик бичигдсэн бол порт зүү өндөр (нэг) хөтлөгддөг. Хэрэв зүүг гаралтын зүү болгон тохируулах үед PORTxn-ийг логик тэг гэж бичсэн бол порт зүүг бага (тэг) чиглүүлдэг.

Зүүг сэлгэх

PINxn-д логик бичих нь DDRxn-ээс хамааралгүй PORTxn-ийн утгыг шилжүүлдэг. SBI зааврыг порт дээрх нэг битийг асаахад ашиглаж болохыг анхаарна уу.

Оролт ба гаралтын хооронд шилжих

Гурвалсан төлөв ({DDxn, PORTxn} = 0b00) болон гаралтын өндөр ({DDxn, PORTxn} = 0b11) хооронд шилжих үед татах идэвхжсэн {DDxn, PORTxn} = 0b01) эсвэл бага гаралттай завсрын төлөв. ({DDxn, PORTxn} = 0b10) тохиолдох ёстой. Ердийн үед өндөр импеданттай орчин нь хүчтэй өндөр жолоодлого болон татах хоёрын ялгааг анзаардаггүй тул татах идэвхжсэн төлөвийг бүрэн хүлээн зөвшөөрдөг. Хэрэв тийм биш бол MCUCR Бүртгэлийн PUD битийг бүх порт дахь бүх татахыг идэвхгүй болгохоор тохируулж болно.

Татах ба бага гаралттай оролтын хооронд шилжих нь ижил асуудал үүсгэдэг. Хэрэглэгч гурвалсан төлөвийг ({DDxn, PORTxn} = 0b00) эсвэл гаралтын өндөр төлөвийг ({DDxn, PORTxn} = 0b10) завсрын алхам болгон ашиглах ёстой.

Хүснэгт 10-1 зүү утгын хяналтын дохионуудыг нэгтгэн дүгнэдэг.

Хүснэгт 10-1. Портын пин тохиргоо

DDxn PORTxn PUD

(MCUCR-д)

I/O Татах Сэтгэгдэл
0 0 X Оруулах Үгүй Гурван төлөв (Hi-Z)
0 1 0 Оруулах Тиймээ Pxn нь ext бол гүйдлийн эх үүсвэр болно. намхан татав.
0 1 1 Оруулах Үгүй Гурван төлөв (Hi-Z)
1 0 X Гаралт Үгүй Гаралт бага (угаалтуур)
1 1 X Гаралт Үгүй Гаралт өндөр (Эх сурвалж)

Тэмдэгт утгыг унших

DDxn өгөгдлийн чиглэлийн битийн тохиргооноос үл хамааран портын зүүг PINxn регистрийн битээр дамжуулан уншиж болно. -Т үзүүлсний дагуу Зураг 10-2, PINxn регистрийн бит ба өмнөх түгжээ нь синхрончлогч болно. Хэрэв физик зүү дотоод цагны захын ойролцоо утгыг өөрчилдөг бол энэ нь метаболит байдлаас зайлсхийхэд шаардлагатай боловч хойшлуулалтыг бий болгодог. Зураг 10-3 нь гаднаас хэрэглэсэн зүү утгыг унших үед синхрончлолын цагийн диаграммыг харуулж байна. Хамгийн их ба хамгийн бага тархалтын саатлыг tpd,max, tpd,min гэж тус тус тэмдэглэнэ.

Системийн цагийн уналтын эхний ирмэгээс хойш удалгүй эхлэх хугацааг авч үзье. Түгжээ нь цаг багатай үед хаалттай, өндөр байх үед ил тод болдог бөгөөд үүнийг “SYNC LATCH” дохионы сүүдэрлэсэн муж харуулж байна. Системийн цаг багасахад дохионы утга түгжигддэг. Үүнийг дараагийн эерэг цагийн ирмэг дээр PINxn бүртгэлд оруулна. Tpd, max ба tpd, min гэсэн хоёр сумаар зааж өгсний дагуу зүү дээрх нэг дохионы шилжилтийг батлах хугацаанаас хамааран системийн цагийн хооронд ½ ба 1½ хооронд хойшлогдоно.

Програм хангамжийн өгөгдсөн зүү утгыг буцааж уншихдаа nop зааврыг заасан хэсэгт оруулах ёстой Зураг 10-4. Гарсан заавар нь "SYNC LATCH" дохиог цагийн эерэг ирмэг дээр байрлуулна. Энэ тохиолдолд синхрончлогчоор дамжин хойшлогдох tpd нь системийн нэг цаг хугацаа юм.

Дараах код жишээ ньample нь B портын 0 ба 1-ийн өндөр, 2 ба 3-ын доод цэгүүдийг хэрхэн тохируулахыг харуулж, 4-5 хүртэлх портын зүүг 4-р портын пин-д хуваарилагдсан таталтаар оролт болгон тодорхойлох болно. Үр дүнд нь пин утгуудыг дахин уншина, гэхдээ Өмнө дурьдсанчлан зарим тээглүүрүүдэд саяхан өгсөн утгыг буцааж унших боломжтой байхын тулд nop зааврыг оруулсан болно.

Ассемблей код Example(1)

; Татах хөдөлгөөнийг тодорхойлж, гаралтыг өндөрт тохируулна уу

; Портын тээглүүрүүдийн чиглэлийг тодорхойлох

ldi        r16,(1<<PB4)|(1<<PB1)|(1<<PB0)

ldi        r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)

гарч PORTB,r16

DDRB, r17 гарч байна

; Синхрончлолд зориулж nop оруулна уу

үгүй

; Портын зүүг уншина уу

r16, PINB-д

Тайлбар: Угсрах программын хувьд 0, 1, 4-р зүү дээр таталт хийхээс эхлээд чиглэлийн битүүдийг зөв тохируулах, 2, 3-р битүүдийг бага гэж тодорхойлж, 0 болон битүүдийг дахин тодорхойлох хүртэл хоёр түр бүртгэлийг ашигладаг. 1 зэрэг хүчтэй өндөр жолооч нар.

C код Example
unsigned char i;

/* Таталтыг тодорхойлж, гаралтыг өндөр болгох */

/* Порт пинүүдийн чиглэлийг тодорхойлох */ PORTB = (1<

DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);

/* Синхрончлолд зориулж nop оруулах*/

_NOP ();

/* Портын зүүг унших */ i = PINB;

Дижитал оролтыг идэвхжүүлэх ба унтах горим

Зурагт үзүүлснээр Зураг 10-2, тоон оролтын дохио нь cl байж болноampШмитт-триггерийн оролт дээр газардуулга. Зураг дээрх SLEEP гэж тэмдэглэгдсэн дохиог MCU Унтлагын хянагч нь унтрах горимд тохируулсан бөгөөд хэрэв зарим оролтын дохио хөвж үлдсэн эсвэл аналог дохионы түвшин VCC/2-тэй ойролцоо байвал эрчим хүчний өндөр зарцуулалтаас зайлсхийх болно.

SLEEP-ийг гадны тасалдлын тээглүүр болгон идэвхжүүлсэн порт тээглүүр дээр хүчингүй болгосон. Хэрэв гадны тасалдлын хүсэлтийг идэвхжүүлээгүй бол SLEEP нь эдгээр тээглүүрт идэвхтэй байна. SLEEP-ийг тайлбарласны дагуу өөр өөр өөр функцуудаар орлуулдаг 57-р хуудсан дээрх “Өөр порт хийх функцууд”.

Хэрэв гадаад тасалдлыг идэвхжүүлээгүй байхад "Өсөх ирмэг дээр тасалдал, уналтын ирмэг эсвэл зүү дээрх аливаа логик өөрчлөлт" гэж тохируулсан асинхрон гадаад тасалдлын зүү дээр логик өндөр түвшний ("нэг") байгаа бол харгалзах Гадаад тасалдлын туг үүснэ. дээр дурдсан Унтлагын горимоос эхлэх үед cl гэж тохируулнаampЭдгээр унтах горимд ажиллах нь хүссэн логик өөрчлөлтийг үүсгэдэг.

Холбоогүй зүү

Хэрэв зарим тээглүүрийг ашиглаагүй бол эдгээр тээглүүрийг тодорхой түвшинд байлгахыг зөвлөж байна. Дээр дурдсанчлан дижитал оролтуудын ихэнхийг гүн нойрны горимд идэвхгүй болгосон ч дижитал оролтыг идэвхжүүлсэн бусад бүх горимд одоогийн хэрэглээг багасгахын тулд хөвөгч оролтоос зайлсхийх хэрэгтэй (Дахин тохируулах, Идэвхтэй горим ба Хөдөлгөөнгүй горим).

Ашиглагдаагүй зүүг тодорхой түвшинд байлгах хамгийн энгийн арга бол дотоод таталтыг идэвхжүүлэх явдал юм. Энэ тохиолдолд дахин тохируулах үед татах нь идэвхгүй болно. Хэрэв дахин тохируулах үед бага эрчим хүчний зарцуулалт чухал бол гаднаас татах эсвэл татахыг ашиглахыг зөвлөж байна. Ашиглагдаагүй зүүг VCC эсвэл GND-д шууд холбохыг зөвлөдөггүй, учир нь зүүг санамсаргүйгээр гаралт болгон тохируулсан тохиолдолд хэт их гүйдэл үүсгэж болзошгүй.

Портын өөр функцууд

Ихэнх порт зүү нь ерөнхий дижитал I / Os байхаас гадна өөр функцтэй байдаг. Зураг 10-5 хялбаршуулсан цэгээс портын зүү хэрхэн яаж дохио өгч байгааг харуулж байна Зураг 10-2 өөр функцээр орлуулах боломжтой. Давхардсан дохио нь бүх порт зүүнд байхгүй байж болох боловч зураг нь AVR микроконтроллерын гэр бүлийн бүх порт зүүнд хамаарах ерөнхий тодорхойлолт болж өгдөг.

Хүснэгт 10-2. Альтернатив функцүүдийн дохионы ерөнхий тодорхойлолт

Дохионы нэр Бүтэн нэр Тодорхойлолт
PUOE Татаж авах хүчингүй болгохыг идэвхжүүлэх Хэрэв энэ дохиог тохируулсан бол татах чадварыг PUOV дохиогоор удирддаг. Хэрэв энэ дохиог цэвэрлэсэн бол татан авалтыг идэвхжүүлсэн болно

{DDxn, PORTxn, PUD} = 0b010.

ПУОВ Татаж авах утга Хэрэв PUOE тохируулсан бол DDxn, PORTxn, PUD регистрийн битүүдийн тохиргооноос үл хамааран PUOV-ийг тохируулах / цэвэрлэх үед татах ажиллагааг идэвхжүүлдэг / идэвхгүй болгодог.
DDOE Мэдээллийн чиглэлийг дарж идэвхжүүлэх Хэрэв энэ дохиог тохируулсан бол Output Driver Enable-ийг DDOV дохиогоор удирддаг. Хэрэв энэ дохиог цэвэрлэсэн бол DDxn Register битээр Output драйверийг идэвхжүүлдэг.
ДДОВ Мэдээллийн чиглэл нь утгыг хүчингүй болгодог Хэрэв DDOE тохируулсан бол DDxn регистрийн битийн тохиргооноос үл хамааран DDOV-ийг тохируулах / цэвэрлэхэд гаралтын драйверийг идэвхжүүлдэг / идэвхгүй болгодог.
PVOE Портын утгыг дарж идэвхжүүлэх Хэрэв энэ дохиог тохируулж, гаралтын драйверийг идэвхжүүлсэн бол порт утгыг PVOV дохиогоор удирддаг. Хэрэв PVOE цэвэрлэгдэж, гаралтын драйвер идэвхжсэн бол порт Утга нь PORTxn Register битээр хянагддаг.
ПВОВ Портын утга нь утгыг хүчингүй болгодог Хэрэв PVOE гэж тохируулсан бол PORTxn Register битийн тохиргооноос үл хамааран портын утгыг PVOV гэж тохируулна.
PTOE Port Toggle Override идэвхжүүлэх Хэрэв PTOE тохируулсан бол PORTxn регистрийн бит урвуу байна.
DIEOE Дижитал оролтыг идэвхжүүлэхийг хүчингүй болгохыг идэвхжүүлэх Хэрэв энэ битийг тохируулсан бол дижитал оролтын идэвхжүүлэлтийг DIEOV дохиогоор удирддаг. Хэрэв энэ дохиог цэвэрлэсэн бол Дижитал оролтыг идэвхжүүлэхийг MCU төлөвөөр (Хэвийн горим, унтах горим) тодорхойлно.
ДИЕОВ Дижитал оролт нь хүчингүй болгох утгыг идэвхжүүлдэг Хэрэв DIEOE-г тохируулсан бол MCU төлөвөөс үл хамааран (Хэвийн горим, унтах горим) DIEOV-ийг тохируулах / цэвэрлэх үед дижитал оролтыг идэвхжүүлдэг / идэвхгүй болгодог.
DI Дижитал оролт Энэ бол ээлжит функцүүдийн тоон оролт юм. Зураг дээр дохио нь schmitt-trigger-ийн гаралттай холбогдсон боловч синхрончлогчоос өмнө холбогдсон байна. Дижитал оролтыг цагийн эх үүсвэр болгон ашиглахгүй бол өөр функцтэй модуль нь өөрийн синхрончлогчийг ашиглах болно.
AIO Аналог оролт / гаралт Энэ бол аналог оролт / гаралт ба өөр функцээс /. Сигнал нь дэвсгэр дээр шууд холбогдсон бөгөөд хоёр чиглэлд ашиглаж болно.

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

Порт В-ийн өөр функцууд

Өөр функцтэй Port B тээглүүрүүдийг үзүүлэв Хүснэгт 10-3.

Хүснэгт 10-3. Порт B зүү өөр функцууд

Портын зүү Өөр функц
PB5

Дахин тохируулах: Зүүг дахин тохируулах

dW: debugWIRE I / O ADC0: ADC оролтын суваг 0

PCINT5: Зүү солих тасалдал, Эх сурвалж 5

PB4 XTAL2: Crystal Oscillator гаралт CLKO: Системийн цагийн гаралт ADC2: ADC оролтын суваг 2

OC1B: Timer / Counter1 харьцуулалт B matchput гаралт PCINT4: Pin-ийн тасалдал 0, Source 4

PB3 XTAL1: Кристал осцилляторын оролт CLKI: Гадаад цагийн оролт ADC3: ADC оролтын суваг 3

OC1B: Нэмэлт цаг хэмжигч / Counter1 харьцуулалт B тааруулалт Гаралтын PCINT3: Зүү солих тасалдал 0, Эх сурвалж 3

PB2 SCK: Цуваа цагийн оролт ADC1: ADC оролтын суваг 1

T0: Таймер / тоолуур0 цагийн эх үүсвэр USCK: USI цаг (гурван утас горим) SCL: USI цаг (хоёр утас горим) INT0: гадаад тасалдал 0 оролтын PCINT2: зүү солих тасалдал 0, эх сурвалж 2

PB1 MISO: SPI мастер өгөгдлийн оролт / боолын өгөгдлийн гаралт AIN1: аналог харьцуулагч, сөрөг оролт OC0B: таймер / тоолуур0 харьцуулсан харьцуулалт B гаралт OC1A: таймер / тоолуур харьцуулах 1, Эх сурвалж 1
PB0 MOSI :: SPI Мастер өгөгдлийн гаралт / Slave өгөгдөл оруулах AIN0: Аналог харьцуулагч, эерэг оролт

OC0A: Цаг хэмжигч/Тоолуур0 А гаралтыг тааруулах

OC1A: Нэмэлт цаг хэмжигч / Counter1-ийг харьцуулж үзээрэй A гаралтын DI: USI өгөгдлийн оролт (гурван утас горим)

SDA: USI өгөгдлийн оролт (хоёр утас горим) AREF: Гадаад аналог лавлагааны PCINT0: Зүү солих тасалдал 0, Эх сурвалж 0

Port B, Bit 5 - RESET / dW / ADC0 / PCINT5

RESET: External Reset оролт нь бага бөгөөд RSTDISBL гал хамгаалагчийг програмчлахгүйгээр ("1") идэвхжүүлдэг. Зүүг RESET зүү болгон ашиглах үед таталт идэвхжиж гаралтын драйвер болон дижитал оролт идэвхгүй болно.

dW: debugWIRE Enable (DWEN) Fuse програмчлагдаж Lock бит програмчлагдаагүй үед зорилтот төхөөрөмж доторх debugWIRE систем идэвхждэг. RESET порт тээглүүрийг татах ба идэвхжүүлсэн утас-AND (задгай ус зайлуулах) хоёр чиглэлт I / O зүү болгон тохируулсан бөгөөд зорилтот болон эмуляторын хоорондох холбооны гарц болно.

ADC0: Аналогоос дижитал хөрвүүлэгч, 0-р суваг.

PCINT5: Pin Change Interrupt source 5.

Port B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4

XTAL2: Chip Clock Oscillator pin 2. Дотоод тохируулгын RC Oscillator болон гадаад цагнаас бусад бүх чип цагны эх үүсвэрүүдэд цагийн зүү болгон ашигладаг. Цаг зүү болгон ашиглах үед зүүг I / O зүү болгон ашиглах боломжгүй. Дотоод тохируулга хийх RC Oscillator эсвэл Гадаад цагийг Chip цагны эх үүсвэр болгон ашиглах үед PB4 нь ердийн I / O зүү болдог.

CLKO: Системийн цагийг PB4 зүү дээр гаргаж болно. PORTB4 ба DDB4 тохиргооноос үл хамааран CKOUT Fuse програмчлагдсан тохиолдолд хуваагдсан системийн цаг гарах болно. Энэ нь дахин тохируулах явцад гарах болно.

ADC2: Аналогоос дижитал хөрвүүлэгч, 2-р суваг.

OC1B: Output Compare Match output: PB4 зүү нь гаралт (DDB1 багц) хэлбэрээр тохируулагдсан бол Timer / Counter4 Compare Match B-ийн гадаад гаралт болж чаддаг. OC1B зүү нь PWM горимын таймер функцын гаралтын зүү юм.

PCINT4: Pin Change Interrupt source 4.

Port B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3

XTAL1: Chip Clock Oscillator pin 1. Дотоод калибратын RC осциллятороос бусад чип цагийн эх үүсвэрүүдэд ашиглагддаг. Цаг зүү болгон ашиглах үед зүүг I / O зүү болгон ашиглах боломжгүй.

CLKI: Гадаад цагийн эх үүсвэрээс цаг оруулах, харна уу 26-р хуудасны “Гадаад цаг”.

ADC3: Аналогоос дижитал хөрвүүлэгч, 3-р суваг.

OC1B: Inverted Output Compare Match гаралт: PB3 зүү нь Timer / Counter1 Compare Match B гаралтыг (DDB3 багц) тохируулсан үед гадны гаралт болж чаддаг. OC1B зүү нь PWM горимын таймер функцэд зориулагдсан урвуу гаралтын зүү юм.

PCINT3: Pin Change Interrupt source 3.

Port B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2

SCK: Master Clock гаралт, SPI сувгийн Slave Clock оролтын зүү. SPI-г Боол болгон идэвхжүүлсэн тохиолдолд энэ зүү нь DDB2 тохиргооноос үл хамааран оролт хэлбэрээр тохируулагддаг. ТХИ-ийг мастер хэлбэрээр идэвхжүүлсэн тохиолдолд энэ зүүний өгөгдлийн чиглэлийг DDPB2 хянана. ТХГН-ээс оролтыг шахах үед зүүг PORTB2 битээр хянах боломжтой.

ADC1: Аналогоос дижитал хөрвүүлэгч, 1-р суваг.

T0: Таймер / Counter0 тоолуурын эх үүсвэр.

USCK: Гурван утастай горим Universal Serial Interface Clock.

SCL: USI хоёр утастай горимд зориулсан хоёр утастай горимын цуваа цаг.

INT0: Гадаад тасалдлын эх үүсвэр 0.

PCINT2: Pin Change Interrupt source 2.

Port B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: Master Data input, SPI сувгийн Slave Data output pin. ТХИ-ийг мастер хэлбэрээр идэвхжүүлсэн тохиолдолд энэ зүү нь DDB1 тохиргооноос үл хамааран оролт хэлбэрээр тохируулагддаг. SPI-г Боол болгон идэвхжүүлсэн тохиолдолд энэ зүүний өгөгдлийн чиглэлийг DDB1 хянана. ТХГН-ээс зүүг оролт болгоход шахалтыг PORTB1 бит хянах боломжтой.

AIN1: Аналог харьцуулагчийн сөрөг оролт. Дижитал портын функц нь Аналог харьцуулагчийн функцэд саад учруулахаас зайлсхийхийн тулд портын зүүг дотоод татах хүчийг унтрааж оролт болгон тохируулна уу.

OC0B: Гаралтын харьцуулалт PB1 зүү нь Timer / Counter0 Compare B match-ийн гадаад гаралтын үүргийг гүйцэтгэж чаддаг. PB1 зүү нь энэ функцийг гүйцэтгэхийн тулд гаралт (DDB1 багц (нэг)) хэлбэрээр тохируулагдсан байх ёстой. OC0B зүү нь PWM горимын таймер функцын гаралтын зүү юм.

OC1A: Output Compare Match гаралт: PB1 зүү нь гаралт (DDB1 багц) хэлбэрээр тохируулагдсан үед Timer / Counter1 Compare Match B-ийн гадаад гаралт болж чаддаг. OC1A зүү нь PWM горимын таймер функцын гаралтын зүү юм.

DO: Гурван утастай горим Universal Serial Interface Мэдээллийн гаралт. Гурван утастай горим Мэдээллийн гаралт нь PORTB1 утгыг хүчингүй болгож, өгөгдлийн чиглэл DDB1 (нэг) тохируулагдсан үед порт уруу хөтөлнө. PORTB1 нь чиглүүлэлтийг оруулаад PORTB1-ийг тохируулсан бол татах хүчийг идэвхжүүлсэн хэвээр байна.

PCINT1: Pin Change Interrupt source 1.

Port B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0

MOSI: SPI Master Data output, SPI сувгийн Slave Data input. SPI-г боол болгон идэвхжүүлсэн тохиолдолд энэ зүү нь DDB0 тохиргооноос үл хамааран оролт хэлбэрээр тохируулагддаг. ТХИ-ийг мастер хэлбэрээр идэвхжүүлсэн тохиолдолд энэ зүүний өгөгдлийн чиглэлийг DDB0 хянана. ТХГН-ээс зүүг оролт болгон шахахад таталтыг PORTB0 бит хянах боломжтой.

AIN0: Аналог харьцуулагчийн эерэг оролт. Дижитал портын функцийг Аналог харьцуулагчийн функцэд саад учруулахаас зайлсхийхийн тулд портын зүүг дотоод татах хүчийг унтрааж оролт болгон тохируулна уу.

OC0A: Гаралтын харьцуулалт PB0 тээглүүр нь гаралт (DDB0 багц (нэг)) хэлбэрээр тохируулагдсан үед A таймер / тоолуурыг харьцуулах гадаад гаралтын үүрэг гүйцэтгэдэг. OC0A зүү нь PWM горимын таймер функцын гаралтын зүү юм.

OC1A: Урвуу гаралтын харьцуулалтыг харьцуулах үр дүн: PB0 зүү нь гаралт (DDB1 багц) хэлбэрээр тохируулагдсан үед Timer / Counter0 Compare Match B-ийн гадаад гаралт болж чаддаг. OC1A зүү нь PWM горимын таймер функцэд урвуу гаралтын зүү юм.

SDA: Хоёр утастай горимын цуваа интерфейсийн өгөгдөл.

AREF: ADC-ийн гадаад аналог лавлагаа. Зүүг гадаад лавлагаа эсвэл дотоод боть болгон ашиглах үед PB0 дээр татах болон гаралтын драйвер идэвхгүй болно.tage AREF зүү дээрх гадаад конденсатортай лавлагаа.

DI: USI гурван утастай горимд өгөгдөл оруулах. USI Three-wire горим нь ердийн порт функцуудыг хүчингүй болгодог тул pin функц нь DI функцын оролт болж тохируулагдсан байх ёстой.

PCINT0: Pin Change Interrupt source 0.

Хүснэгт 10-4 болон Хүснэгт 10-5 Порт В-ийн ээлжит функцуудыг үзүүлсэн давамгайлсан дохиотой холбоно уу Зураг 10-5 хуудас 58.

Хүснэгт 10-4. PB дахь өөр функцүүдийн дохиог хүчингүй болгох[5:3]

Дохионы нэр PB5 / RESET / ADC0 / PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
ПУОВ 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
ДДОВ Утас дамжуулах 0 0
PVOE 0 OC1B идэвхжүүлэх

OC1B идэвхжүүлэх

ПВОВ 0 OC1B OC1B
PTOE 0 0 0
DIEOE

RSTDISBL(1) + (PCINT5 • PCIE + ADC0D)

PCINT4 • PCIE + ADC2D PCINT3 • PCIE + ADC3D
ДИЕОВ ADC0D ADC2D ADC3D
DI PCINT5 оролт PCINT4 оролт PCINT3 оролт
AIO RESET оролт, ADC0 оролт ADC2 оролт ADC3 оролт

Анхаарна уу: Гал хамгаалагч "0" байх үед (Программчлагдсан).

Хүснэгт 10-5. PB дахь өөр функцүүдийн дохиог хүчингүй болгох[2:0]

Дохионы нэр 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
ПУОВ 0 0 0
DDOE USI_TWO_WIRE 0 USI_TWO_WIRE
ДДОВ (USI_SCL_HOLD + PORTB2) • DDB2 0  

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 OC0B идэвхжүүлэх + OC1A идэвхжүүлэх + USI_THREE_WIRE

OC0A идэвхжүүлэх + OC1A идэвхжүүлэх + (USI_TWO_WIRE

DDB0)

ПВОВ 0 OC0B + OC1A + DO

OC0A + OC1A

PTOE USITC 0 0
DIEOE PCINT2 • PCIE + ADC1D + USISIE PCINT1 • PCIE + AIN1D PCINT0 • PCIE + AIN0D + USISIE
ДИЕОВ ADC1D AIN1D AIN0D
DI T0 / USCK / SCL / INT0 /

PCINT2 оролт

PCINT1 оролт DI / SDA / PCINT0 оролт
AIO ADC1 оролт Аналог харьцуулагчийн сөрөг оролт Аналог харьцуулагчийн эерэг оролт

Бүртгүүлэх тодорхойлолт

MCUCR - MCU хяналтын бүртгэл

Бит 7 6 5 4 3 2 1 0
0х35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Унших/бичих R R/W R/W R/W R/W R R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

Бит 6 - PUD: Татах идэвхгүй болгох

Энэ битийг нэг рүү бичихэд DDxn ба PORTxn регистрүүд татах ажиллагааг идэвхжүүлэхээр тохируулсан байсан ч гэсэн I / O портууд дахь татах ажиллагааг идэвхгүйжүүлдэг ({DDxn, PORTxn} = 0b01). Харна уу Хуудасны 54-р хуудсанд “Зүүг тохируулах” энэ функцын талаархи дэлгэрэнгүй мэдээллийг авна уу.

PORTB - Port B мэдээллийн бүртгэл

Бит 7 6 5 4 3 2 1 0
0х18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 ПОРТБ
Унших/бичих R R R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

DDRB - Port B өгөгдлийн чиглэлийн бүртгэл

Бит 7 6 5 4 3 2 1 0
0х17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Унших/бичих R R R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 0 0 0 0 0 0

PINB - Port B оролтын голтой хаяг

Бит 7 6 5 4 3 2 1 0
0х16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Унших/бичих R R R/W R/W R/W R/W R/W R/W
Анхны үнэ цэнэ 0 0 Үгүй Үгүй Үгүй Үгүй Үгүй Үгүй

ХОУХШ-тэй 8-битийн таймер / тоолуур

Онцлогууд

Хоёр бие даасан гаралтын харьцуулах нэгж

Давхар буфертай гаралтын харьцуулах регистрүүд

Харьцуулах тоглолтыг таймерыг арилгах (Автоматаар дахин ачаалах)

Ачаагүй, фазын зөв импульсийн өргөн модулятор (PWM)

Хувьсах ХБХ-ны хугацаа

Давтамж үүсгэгч

Бие даасан тасалдлын гурван эх үүсвэр (TOV0, OCF0A, OCF0B)

Дууслааview

Таймер / тоолуур нь ерөнхийдөө зориулагдсан 0 битийн Таймер / тоолуурын модуль бөгөөд хоёр бие даасан Гаралтын харьцуулах нэгжтэй бөгөөд ХОУХШ-ийн дэмжлэгтэй байдаг. Энэ нь програмыг үнэн зөв гүйцэтгэх цаг хугацаа (үйл явдлын менежмент) ба долгион үүсгэх боломжийг олгодог.

8-битийн таймер / тоолуурын хялбаршуулсан блок диаграммыг үзүүлэв Зураг 11-1. Оролт / гаралтын тээглүүрийн бодит байршлыг эндээс үзнэ үү 25-р хуудсан дээрх “Pinout ATtiny45 / 85/2”. Оруулагч гаралтын бит, оролт гаралтын тээглүүр зэрэг CPU-д нэвтрэх боломжтой гаралтын регистрийг тод үсгээр харуулав. Төхөөрөмжид хамаарах I / O Бүртгэл ба битийн байршлыг Хуудасны 77 дахь “Бүртгэлийн тодорхойлолт”.

Таймер/Тоолуур (TCNT0) ба Гаралтыг харьцуулах регистрүүд (OCR0A ба OCR0B) нь 8 битийн регистр юм. Тасалдлын хүсэлт (зураг дээрх Int.Req. гэж товчилсон) дохионууд бүгд Timer Interrupt Flag Register (TIFR) дээр харагдана. Бүх тасалдлыг Timer Interrupt Mask Register (TIMSK) ашиглан тус тусад нь далдалдаг. TIFR болон TIMSK-ийг зурагт харуулаагүй болно.

Цаг хэмжигч/тоолуурыг дотооддоо, урьдчилан тохируулагчаар эсвэл T0 зүү дээрх цагны гадаад эх үүсвэрээр хэмжиж болно. Clock Select логик блок нь Timer/Counter нь түүний утгыг нэмэгдүүлэх (эсвэл багасгах) тулд ямар цагийн эх үүсвэр болон ирмэгийг ашиглахыг хянадаг. Цагийн эх үүсвэр сонгогдоогүй үед таймер/тоолуур идэвхгүй байна. Clock Select логикийн гаралтыг таймер цаг (clkT0) гэж нэрлэдэг.

Давхар буфертай гаралтын харьцуулах регистрүүд (OCR0A ба OCR0B) -ийг Таймер / Тоолуурын утгатай бүх цаг үед харьцуулж үздэг. Харьцуулалтын үр дүнг Waveform Generator ашиглан Гаралтын харьцуулалтын голууд (OC0A ба OC0B) дээр PWM буюу хувьсах давтамжийн гаралтыг бий болгоход ашиглаж болно. 69-р хуудасны “Гаралтын харьцуулалтын нэгж” -ийг үзнэ үү. дэлгэрэнгүйг Compare Match арга хэмжээ нь Output Compare тасалдлын хүсэлтийг үүсгэхэд ашиглаж болох Compare Flag (OCF0A or OCF0B) -г тохируулах болно.

Тодорхойлолт

Энэ хэсгийн олон регистр, битийн лавлагаа ерөнхий хэлбэрээр бичигдсэн байдаг. Жижиг үсэг "n" нь Таймер / Тоолуурын дугаарыг орлох бөгөөд энэ тохиолдолд 0. Гаралтын харьцуулах нэгжийг "х" үсгийн жижиг үсгээр сольж, энэ тохиолдолд А нэгжийг харьцуулах буюу В нэгжийг харьцуулах. Гэхдээ регистр эсвэл битийг ашиглахдаа програмд ​​яг нарийн хэлбэрийг ашиглах ёстой, өөрөөр хэлбэл Timer / Counter0 тоолуурын утгад хандах TCNT0 гэх мэт.

Дахь тодорхойлолтууд Хүснэгт 11-1 нь баримт бичгийн туршид өргөн хэрэглэгддэг.

Хүснэгт 11-1. Тодорхойлолт

Тогтмол Тодорхойлолт
ДООД Тоологч 0x00 болоход BOTTOM хүрдэг
МАКС Тоолуур нь 0xFF (аравтын бутархай 255) болоход хамгийн дээд хэмжээндээ хүрдэг
ДЭЭД Тоолуурын тооллын дарааллын хамгийн өндөр утгатай тэнцэх үед тоолуур нь ТОП-д хүрдэг. TOP утгыг тогтмол утга 0xFF (MAX) эсвэл OCR0A регистрт хадгалагдсан утга болгож өгч болно. Даалгавар нь үйл ажиллагааны горимоос хамаарна

Цаг хэмжигч / Тоологч Prescaler ба Clock Source

Таймер / тоолуурыг цагны дотоод болон гадаад эх үүсвэрээр хянах боломжтой. Цагны эх үүсвэрийг Таймер / Counter0 хяналтын бүртгэлд (TCCR0B) байрлах Clock Select (c) битүүдээр хянагддаг Clock Select логикоор сонгодог.

Prescaler бүхий дотоод цагны эх үүсвэр

Таймер/Тоолуур0-г системийн цагаар шууд зааж болно (CS0[2:0] = 1-ийг тохируулснаар). Энэ нь системийн цагийн давтамжтай (fCLK_I/O) тэнцэх хамгийн их таймер/тоолуур цагийн давтамжтайгаар хамгийн хурдан ажиллагааг хангадаг. Эсвэл урьдчилан тохируулагчийн дөрвөн товшилтын аль нэгийг цагны эх үүсвэр болгон ашиглаж болно. Урьдчилан тохируулсан цаг нь аль алиных нь давтамжтай байдаг

Prescaler-ийг дахин тохируулах

Урьдчилан хэмжигч нь чөлөөтэй ажилладаг, өөрөөр хэлбэл Timer/Counter0-ийн Clock Select логикоос хамааралгүйгээр ажилладаг. Урьдчилан хэмжигч нь таймер/тоолуурын цагийн сонголтод нөлөөлөхгүй тул урьдчилан тохируулагчийн төлөв байдал нь урьдчилан тохируулсан цаг ашиглаж байгаа нөхцөл байдалд нөлөөлнө. Нэг эксampУрьдчилан масштаблах олдворын le нь таймер/тоолуурыг идэвхжүүлж, урьдчилан хэмжигчээр (6 > CS0[2:0] > 1) тохируулсан үед юм. Цаг хэмжигчийг идэвхжүүлсэнээс эхлээд эхний тоо гарах хүртэлх системийн цагийн мөчлөгийн тоо нь 1-ээс N+1 системийн цагийн цикл байж болох ба N нь урьдчилсан хуваагчтай (8, 64, 256 эсвэл 1024) тэнцүү байна.

Програмыг ажиллуулахын тулд таймер / тоолуурыг синхрончлоход Prescaler Reset-ийг ашиглах боломжтой.

Гадаад цагны эх үүсвэр

T0 зүү дээр хэрэглэсэн гадаад цагийн эх үүсвэрийг таймер/тоолуур цаг (clkT0) болгон ашиглаж болно. T0 зүү нь sampпин синхрончлолын логикоор системийн цагийн мөчлөг бүрт нэг удаа удирддаг. Синхрончлогдсон (sampled) дохио дамжуулагдана

ирмэг илрүүлэгчээр дамжуулан. Зураг 11-2 T0 синхрончлол ба ирмэг илрүүлэгч логикийн функциональ эквивалент блок диаграммыг харуулав. Регистрүүд нь дотоод системийн цагийн эерэг ирмэг дээр (clkI/O) байна. Түгжээ нь дотоод системийн цагийн өндөр үед ил тод байдаг.

Ирмэг мэдрэгч нь илрүүлсэн эерэг (CS0[0:2] = 0) эсвэл сөрөг (CS7[0:2] = 0) ирмэг бүрт нэг clkT6 импульс үүсгэдэг.

OCR0x регистрүүд нь импульсийн өргөний модуляцийн (PWM) аль ч горимыг ашиглахад давхар буфертай байдаг. Compare (CTC) горимын хэвийн ба Clear Timer горимд давхар буфер хийхийг идэвхгүйжүүлсэн болно. Давхар буфер нь OCR0x харьцуулах регистрийн шинэчлэлтийг тоолох дарааллын дээд ба доод хэсэгт синхрончилдог. Синхрончлол нь сондгой урттай, тэгш хэмт бус PWM импульс үүсэхээс сэргийлж гаралтыг доголдолгүй болгодог.

OCR0x Регистрийн хандалт нь төвөгтэй мэт санагдаж болох ч энэ нь тийм биш юм. Давхар буферийг идэвхжүүлсэн үед CPU нь OCR0x буфер регистрт хандах боломжтой бөгөөд хэрэв давхар буфер хийхийг идэвхгүй болгосон бол CPU нь шууд OCR0x руу нэвтрэх болно.

Албадан гаралтыг харьцуулах

PWM бус долгионы хэлбэрийг бий болгох горимд харьцуулагчийн тохирох гаралтыг Force Output Compare (FOC0x) бит дээр нэгийг бичиж хүчээр шахаж болно. Compare Match-ийг хүчээр тулгах нь OCF0x тугийг тохируулахгүй эсвэл таймерыг дахин ачаалах / цэвэрлэхгүй боловч OC0x зүү нь жинхэнэ Compare Match болсон юм шиг шинэчлэгдэх болно (COM0x [1: 0] битүүдийн тохиргоо нь OC0x зүү тохируулсан, цэвэрлэгдсэн эсэхийг тодорхойлдог. эсвэл шилжүүлсэн).

Тоглолтыг хориглохыг TCNT0 бичгээр харьцуул

TCNT0 Регистрт CPU бичих бүх үйлдлүүд нь таймер зогссон ч дараагийн таймерын цагийн мөчлөгт тохиолддог Compare Match-ийг хаах болно. Энэ онцлог нь OCR0x-ийг TCNT0-тэй ижил утгатай эхлүүлэх боломжийг Timer / Counter цаг идэвхжсэн үед тасалдал үүсгэхгүй байх боломжийг олгодог.

Гаралтын харьцуулах нэгжийг ашиглах

TCNT0-ийг ямар ч ажиллагааны горимд бичих нь бүх цаг харьцуулах тохиргоог нэг таймерын цагийн мөчлөгт хаах тул Таймер / тоолуур ажиллаж байгаа эсэхээс үл хамааран Гаралтын харьцуулах нэгжийг ашиглахад TCNT0-ийг өөрчлөхөд эрсдэлтэй байдаг. Хэрэв TCNT0-д бичсэн утга нь OCR0x-тэй тэнцүү байвал харьцуулах харьцуулалт алдагдах тул долгионы хэлбэр буруу үүснэ. Үүнтэй адил тоолуурыг доош тоолох үед TCNT0 утгыг BOTTOM-той тэнцүү гэж бичиж болохгүй.

OC0x-ийн тохиргоог порт зүү гаргах өгөгдлийн чиглэлийн бүртгэлийг тохируулахаас өмнө хийх хэрэгтэй. OC0x утгыг тохируулах хамгийн хялбар арга бол Force Output Compare (FOC0x) strobe битүүдийг хэвийн горимд ашиглах явдал юм. OC0x регистрүүд Waveform Generation горимуудын хооронд өөрчлөгдөх үед ч гэсэн үнэ цэнээ хадгалдаг.

COM0x [1: 0] бит харьцуулах утгын хамт давхар буфер биш гэдгийг анхаарах хэрэгтэй. COM0x [1: 0] битүүдийг өөрчлөх нь шууд хүчин төгөлдөр болно.

Тоглолтын гаралтын нэгжийг харьцуулах

Compare Output mode (COM0x [1: 0]) битүүд нь хоёр функцтэй байдаг. Waveform Generator нь COM0x [1: 0] битүүдийг дараагийн Compare Match дээр гаралтын харьцуулалт (OC0x) төлөвийг тодорхойлоход ашигладаг. COM0x [1: 0] битүүд нь OC0x зүү гаралтын эх үүсвэрийг удирддаг. Зураг 11-6 COM0x [1: 0] битийн тохиргоонд нөлөөлсөн логикийн хялбаршуулсан схемийг харуулав. Зураг дээрх I / O регистр, I / O бит, I / O зүүг тод үсгээр харуулав. Зөвхөн I / O порт хянах ерөнхий регистрүүдийн (DDR ба PORT) COM0x [1: 0] битүүдэд нөлөөлөх хэсгүүдийг харуулсан болно. OC0x төлөвийг дурдахад OC0x зүү биш харин дотоод OC0x регистрийн тухай лавлагаа өгөх болно. Хэрэв системийг дахин тохируулах тохиолдолд OC0x бүртгэлийг "0" болгож дахин тохируулна.

OC0A / OC0B-ийг I / O зүүтэй холбоход COM0A [1: 0] / COM0B [1: 0] битүүдийн функц WGM0 [2: 0] битийн тохиргооноос хамаарна. Хүснэгт 11-2 WGM0 [1: 0] битүүдийг хэвийн эсвэл CTC горимд (PWM бус) тохируулсан үед COM0x [2: 0] битийн ажиллагааг харуулдаг.

Хүснэгт 11-2. Гаралтын горим, PWM бус горимыг харьцуул

COM0A1 COM0B1 COM0A0 COM0B0 Тодорхойлолт
0 0 Портын хэвийн ажиллагаа, OC0A / OC0B салгагдсан.
0 1 Compare Match дээр OC0A / OC0B-г асаах
1 0 Compare Match дээр OC0A / OC0B-г арилгах
1 1 Compare Match дээр OC0A / OC0B тохируулна уу

Хүснэгт 11-3 WGM0 [1: 0] битүүдийг хурдан PWM горимд тохируулах үед COM0x [2: 0] битийн ажиллагааг харуулдаг.

Хүснэгт 11-3. Гаралтын горим, Хурдан PWM горимыг харьцуулна уу(1)

COM0A1 COM0B1 COM0A0 COM0B0 Тодорхойлолт
0 0 Портын хэвийн ажиллагаа, OC0A / OC0B салгагдсан.
0 1 Захиалагдсан
1 0 Compare Match дээр OC0A / OC0B-г арилгаж OC0A / OC0B-г BOTTOM дээр тохируулна (урвуу биш горим)
1 1 Compare Match дээр OC0A / OC0B-г тохируулаад BOTTOM дээр OC0A / OC0B-г цэвэрлэ (урвуу горим)

Тайлбар: OCR0A эсвэл OCR0B нь TOP-тэй тэнцүү ба COM0A1/COM0B1-ийг тохируулсан үед онцгой тохиолдол гардаг. Энэ тохиолдолд харьцуулах үйлдлийг үл тоомсорлодог, гэхдээ багц эсвэл тодорхой болгох нь ДООД хэсэгт хийгддэг. Харна уу 73-р хуудасны “Хурдан PWM горим” дэлгэрэнгүй мэдээллийг авна уу.

Хүснэгт 11-4 WGM0 [1: 0] битүүдийг PWM горимыг үе шаттайгаар тохируулахаар тохируулсан үед COM0x [2: 0] битийн ажиллагааг харуулдаг.

Хүснэгт 11-4. Гаралтын горим, фазын зөв PWM горимыг харьцуул(1)

COM0A1 COM0B1 COM0A0 COM0B0 Тодорхойлолт
0 0 Портын хэвийн ажиллагаа, OC0A / OC0B салгагдсан.
0 1 Захиалагдсан
1 0 Тоолж тоолохдоо Compare Match дээр OC0A / OC0B-г арилгана уу. Урьдчилан тоолохдоо Compare Match дээр OC0A / OC0B тохируулна уу.
1 1 Тоолж тоолохдоо Compare Match дээр OC0A / OC0B тохируулна уу. Урьдчилан тоолохдоо Compare Match дээр OC0A / OC0B-г арилгана уу.

Тайлбар: 1. OCR0A эсвэл OCR0B нь TOP-тэй тэнцүү ба COM0A1/COM0B1-ийг тохируулсан үед онцгой тохиолдол гардаг. Энэ тохиолдолд Харьцуулах Тохирлыг үл тоомсорлодог боловч багц буюу тодорхойлалтыг TOP дээр хийнэ. Харна уу 74-р хуудсан дээрх “ХОУХШ-ны зөв үе шат” дэлгэрэнгүй мэдээллийг авна уу.

Бит 3: 2 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 1: 0 - WGM0 [1: 0]: Долгион үүсгэх хэлбэр

TCCR02B регистрээс олдсон WGM0 биттэй хослуулан эдгээр битүүд нь тоолуурын тоолох дараалал, тоолуурын хамгийн их (TOP) утгын эх үүсвэр, ямар хэлбэрийн долгионы хэлбэрийг ашиглахыг хянана. Хүснэгт 11-5. Таймер / тоолуурын нэгжээр дэмжигдсэн ажиллагааны горимууд нь: Хэвийн горим (тоолуур), Харьцуулах тохирох (CTC) горим дээрх Clear Timer, мөн импульсийн өргөний модуляц (PWM) гэсэн хоёр төрлийн горим (харна уу). “Ашиглалтын горим” 71-р хуудсанд).

Хүснэгт 11-5. Долгионы хэлбэр үүсгэх горимын битийн тайлбар

Горим WGM 02 WGM 01 WGM 00 Таймер / тоолуурын горим ДЭЭД OCRx-ийн шинэчлэлт TOV тугийг тохируулсан
0 0 0 0 Ердийн 0xFF Шууд МАКС(1)
1 0 0 1 ХОУХШХ, зөв ​​үе шат 0xFF ДЭЭД ДООД(2)
2 0 1 0 CTC OCRA Шууд МАКС(1)
3 0 1 1 Хурдан PWM 0xFF ДООД(2) МАКС(1)
4 1 0 0 Захиалагдсан
5 1 0 1 ХОУХШХ, зөв ​​үе шат OCRA ДЭЭД ДООД(2)
6 1 1 0 Захиалагдсан
7 1 1 1 Хурдан PWM OCRA ДООД(2) ДЭЭД

Бит 7 - FOC0A: Хүчний гаралтыг А-тай харьцуул

FOC0A бит нь WGM битүүд нь PWM бус горимыг зааж өгөх үед л идэвхждэг.

Гэсэн хэдий ч ирээдүйн төхөөрөмжүүдтэй нийцтэй байдлыг хангахын тулд PWM горимд ажиллахдаа TCCR0B бичих үед энэ битийг тэг болгож тохируулах шаардлагатай. FOC0A бит дээр логик нэгийг бичихдээ шууд харьцуулах тохиргоог Waveform Generation хэсэгт заавал оруулдаг. OC0A гаралтыг COM0A [1: 0] битийн тохиргооны дагуу өөрчилдөг. FOC0A бит нь строб хэлбэрээр хэрэгждэг болохыг анхаарна уу. Тиймээс COM0A [1: 0] битүүдэд байгаа утга нь албадан харьцуулалтын үр нөлөөг тодорхойлдог.

FOC0A strobe нь ямар ч тасалдал үүсгэхгүй бөгөөд CTC горимд таймерыг OCR0A-г TOP болгон ашиглахгүй. FOC0A битийг үргэлж тэг гэж уншдаг.

Бит 6 - FOC0B: Хүчний гаралтыг харьцуулах B

FOC0B бит нь WGM битүүд нь PWM бус горимыг зааж өгөх үед л идэвхждэг.

Гэсэн хэдий ч ирээдүйн төхөөрөмжүүдтэй нийцтэй байдлыг хангахын тулд PWM горимд ажиллахдаа TCCR0B бичих үед энэ битийг тэг болгож тохируулах шаардлагатай. Логик хувилбарыг FOC0B бит дээр бичих үед шууд харьцуулах тохиргоог Waveform Generation хэсэгт заавал оруулдаг. COM0B [0: 1] битийн тохиргооны дагуу OC0B гаралтыг өөрчилнө. FOC0B бит нь строб хэлбэрээр хэрэгждэг болохыг анхаарна уу. Тиймээс COM0B [1: 0] битүүдэд байгаа утга нь албадан харьцуулалтын үр нөлөөг тодорхойлдог.

FOC0B строб нь ямар ч тасалдал үүсгэхгүй бөгөөд CTC горимд таймерыг OCR0B-ийг TOP болгон ашиглахгүй.

FOC0B битийг үргэлж тэг гэж уншдаг.

Бит 5: 4 - Res: Нөөцлөгдсөн битүүд

Эдгээр битүүд нь ATtiny25 / 45/85-д хадгалагдсан битүүд бөгөөд үргэлж тэг байх болно.

Бит 3 - WGM02: Долгион үүсгэх үеийн горим

Тайлбарыг үзнэ үү “TCCR0A - Таймер / тоолуурын хяналтын бүртгэл А”, 77-р хуудас.

Бит 2: 0 - CS0 [2: 0]: Цаг сонгох

Clock Select гурван бит нь Timer / Counter-д ашиглах цагийн эх үүсвэрийг сонгоно.

Хүснэгт 11-6. Цаг сонгох Бит тайлбар

CS02 CS01 CS00 Тодорхойлолт
0 0 0 Цагны эх үүсвэр байхгүй (Таймер / тоолуур зогссон)
0 0 1 clkI/O/(Урьдчилан масштаблахгүй)
0 1 0 clkI/O/8 (Урьдчилан хэмжигчээс)
0 1 1 clkI/O/64 (Урьдчилан хэмжигчээс)
1 0 0 clkI/O/256 (Урьдчилан хэмжигчээс)
1 0 1 clkI/O/1024 (Урьдчилан хэмжигчээс)
1 1 0 T0 зүү дээрх гадаад цагийн эх үүсвэр. Унах ирмэг дээр цаг.
1 1 1 T0 зүү дээрх гадаад цагийн эх үүсвэр. Өсөх ирмэг дээр цаг.

Хэрэв таймер / тоолуур0-т гаднах зүү горимыг ашигладаг бол зүү нь гаралт хэлбэрээр тохируулагдсан байсан ч T0 зүү дээрх шилжилтүүд тоолуурыг ажиллуулах болно. Энэ онцлог нь тооллогыг програмаар хянах боломжийг олгодог.

Тоологч ба харьцуулах нэгж

Timer / Counter1 ерөнхий ажиллагааг асинхрон горимд тайлбарлаж, синхрончлох горим дахь ажиллагааг зөвхөн эдгээр хоёр горимын хооронд ялгаа байгаа тохиолдолд л дурдсан болно. Зураг 12-2 таймер / тоолуур 1 синхрончлолын регистрийн блок диаграм болон регистрүүдийн хоорондох синхрончлолын хоцрогдол зэргийг харуулна. Бүх цагийн зайн мэдээллийг зураг дээр харуулаагүй болохыг анхаарна уу. Timer / Counter1 регистрийн утгууд нь тоолуурын үйл ажиллагаанд нөлөөлөхөөсөө өмнө оролтын синхрончлолын саатлыг үүсгэдэг дотоод синхрончлолын бүртгэлээр дамждаг. TCCR1, GTCCR, OCR1A, OCR1B, OCR1C регистрүүдийг бүртгэлийг бичсэний дараа шууд унших боломжтой. Оролтын болон гаралтын синхрончлолын улмаас Timer / Counter1 (TCNT1) регистр ба тугнуудын (OCF1A, OCF1B, TOV1) буцааж унших утга хойшлогдож байна.

Timer / Counter1 нь өндөр нарийвчлалтай, өндөр нарийвчлалтай ашиглах боломжийг олгодог. Энэ нь 8 MHz (эсвэл бага хурдтай горимд 64 MHz) хүртэлх цагийн хурдыг ашиглан хоёр нарийвчлалтай, өндөр хурдтай, 32-битийн импульсийн өргөн модуляторыг дэмжиж чаддаг. Энэ горимд Timer / Counter1 ба гаралтын харьцуулах регистрүүд нь хоорондоо давхцахгүй урвуу ба урвуу гаралттай давхар бие даасан ХОУ-ын үүрэг гүйцэтгэдэг. Үзнэ үү хуудас 86 Энэ функцын талаархи дэлгэрэнгүй тайлбарыг авна уу. Үүний нэгэн адил, урьдчилан тооцоолох өндөр боломж нь энэ нэгжийг бага хурдтай функцууд эсвэл ховор үйлдэлтэй цаг хугацааны тодорхой функцуудад ашигтай болгодог.

Зураг 12-2. Таймер/Тоолуур 1 Синхрончлолын бүртгэлийн блок диаграмм.

Таймер / тоолуур1 ба prescaler нь процессорыг асинхрон горимд хурдан 64 MHz (эсвэл бага хурдтай горимд 32 MHz) PCK цаг ажиллаж байхад цагийг дурын эх үүсвэрээс ажиллуулах боломжийг олгодог.

Системийн цагийн давтамж нь PCK давтамжийн гуравны нэгээс бага байх ёстой гэдгийг анхаарна уу. Асинхрон таймер / тоолуур1-ийн синхрончлолын механизм нь системийн цаг өндөр байхад PCK-ийн дор хаяж хоёр ирмэг хэрэгтэй. Хэрэв системийн цагийн давтамж хэт өндөр байвал өгөгдөл эсвэл хяналтын утга алдагдах эрсдэлтэй.

Дараахь Зураг 12-3 таймер / тоолуур1-ийн блок диаграммыг харуулав.

Хүснэгт 12-1. PWM горимд харьцуулах горимыг сонгох

COM1x1 COM1x0 Гаралтын харьцуулах тээглүүрт үзүүлэх нөлөө
0 0 OC1x холбогдоогүй байна. OC1x холбогдоогүй байна.
0 1 OC1x харьцуулсан тоглолтыг арилгасан. TCNT1 = $ 00 байх үед тохируулна уу. OC1x харьцуулах тохиргоог тохируулсан. TCNT1 = $ 00 байх үед арилгах болно.
1 0 OC1x харьцуулсан тоглолтыг арилгасан. TCNT1 = $ 00 байх үед тохируулна уу. OC1x холбогдоогүй байна.
1 1 OC1x харьцуулах тохиргоог тохируулна уу. TCNT1 = $ 00 байх үед арилгах болно. OC1x холбогдоогүй байна.

ADC шинж чанар

Хүснэгт 21-8. ADC шинж чанар, нэг төгсгөлтэй суваг. ТТ = -40 хэмээс +85 хэм хүртэл

Тэмдэг Параметр Нөхцөл байдал Мин Төрөл Макс Нэгж
Шийдвэр 10 Бит
Үнэмлэхүй нарийвчлал (INL, DNL, ​​ба Quantization, Gain and Offset алдааг оруулаад) VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

2 LSB
VREF = 4V, VCC = 4V,

ADC цаг = 1 МГц

3 LSB
VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

Дуу чимээг бууруулах горим

1.5 LSB
VREF = 4V, VCC = 4V,

ADC цаг = 1 МГц

Дуу чимээг бууруулах горим

2.5 LSB
Интеграл шугаман бус байдал (INL) (Оффсет ба шалгалт тохируулга хийсний дараа нарийвчлал) VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

1 LSB
Дифференциал шугаман бус байдал (DNL) VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

0.5 LSB
Алдаа олсон VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

2.5 LSB
Офсет алдаа VREF = 4V, VCC = 4V,

ADC цаг = 200 кГц

1.5 LSB
Хөрвүүлэх хугацаа Үнэгүй ажиллаж буй хөрвүүлэлт 14 280 .s
Цаг давтамж 50 1000 kHz
VIN Оролтын хэмжээtage GND VREF V
Зурвасын өргөнийг оруулах 38.4 kHz
AREF Гадаад лавлагаа ботьtage 2.0 VCC V
VINT Дотоод ботьtage Лавлагаа 1.0 1.1 1.2 V
Дотоод 2.56V лавлагаа (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF 32 кОм
БОРОО Аналог оролтын эсэргүүцэл 100 МΩ
ADC гаралт 0 1023 LSB

Жич: 1. Утга нь зөвхөн удирдамж юм.

Хүснэгт 21-9. ADC шинж чанар, дифференциал сувгууд (Нэг туйлт горим). ТТ = -40 хэмээс +85 хэм хүртэл

Тэмдэг Параметр Нөхцөл байдал Мин Төрөл Макс Нэгж
Шийдвэр Олз = 1х 10 Бит
Олз = 20х 10 Бит
Үнэмлэхүй нарийвчлал (INL, DNL, ​​ба. Орно

Тоо хэмжээ, олз ба офсет алдаа)

Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

10.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

20.0 LSB
Интеграл шугаман бус байдал (INL) (Офсет ба ашиглалтын шалгалт тохируулгын дараах нарийвчлал) Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

4.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

10.0 LSB
Алдаа олсон Олз = 1х 10.0 LSB
Олз = 20х 15.0 LSB
Офсет алдаа Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

3.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

4.0 LSB
Хөрвүүлэх хугацаа Үнэгүй ажиллаж буй хөрвүүлэлт 70 280 .s
Цаг давтамж 50 200 kHz
VIN Оролтын хэмжээtage GND VCC V
VDIFF Оролтын дифференциал ботьtage VREF/Ашиг V
Зурвасын өргөнийг оруулах 4 kHz
AREF Гадаад лавлагаа ботьtage 2.0 VCC - 1.0 V
VINT Дотоод ботьtage Лавлагаа 1.0 1.1 1.2 V
Дотоод 2.56V лавлагаа (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Лавлагааны оролтын эсэргүүцэл 32 кОм
БОРОО Аналог оролтын эсэргүүцэл 100 МΩ
ADC хөрвүүлэлтийн гаралт 0 1023 LSB

Жич: Утга нь зөвхөн удирдамж юм.

Хүснэгт 21-10. ADC-ийн шинж чанар, дифференциал сувгууд (Хоёр туйлт горим). ТТ = -40 хэмээс +85 хэм хүртэл

Тэмдэг Параметр Нөхцөл байдал Мин Төрөл Макс Нэгж
Шийдвэр Олз = 1х 10 Бит
Олз = 20х 10 Бит
Үнэмлэхүй нарийвчлал (INL, DNL, ​​ба. Орно

Тоо хэмжээ, олз ба офсет алдаа)

Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

8.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

8.0 LSB
Интеграл шугаман бус байдал (INL) (Офсет ба ашиглалтын шалгалт тохируулгын дараах нарийвчлал) Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

4.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

5.0 LSB
Алдаа олсон Олз = 1х 4.0 LSB
Олз = 20х 5.0 LSB
Офсет алдаа Олз = 1х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

3.0 LSB
Олз = 20х

VREF = 4V, VCC = 5V

ADC цаг = 50 - 200 кГц

4.0 LSB
Хөрвүүлэх хугацаа Үнэгүй ажиллаж буй хөрвүүлэлт 70 280 .s
Цаг давтамж 50 200 kHz
VIN Оролтын хэмжээtage GND VCC V
VDIFF Оролтын дифференциал ботьtage VREF/Ашиг V
Зурвасын өргөнийг оруулах 4 kHz
AREF Гадаад лавлагаа ботьtage 2.0 VCC - 1.0 V
VINT Дотоод ботьtage Лавлагаа 1.0 1.1 1.2 V
Дотоод 2.56V лавлагаа (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Лавлагааны оролтын эсэргүүцэл 32 кОм
БОРОО Аналог оролтын эсэргүүцэл 100 МΩ
ADC хөрвүүлэлтийн гаралт -512 511 LSB

Зааварчилгааны багц товч

Мнемоник Операндууд Тодорхойлолт Үйл ажиллагаа Тугнууд # Цаг
Арифметик ба логик заавар
НЭМЭХ Rd, Rr Хоёр регистр нэмнэ үү Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Хоёр бүртгэл дагуулж яваарай Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Рдл, К Word дээр даруй нэмэх Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
SUB Rd, Rr Хоёр регистрийг хас Rd ← Rd – Rr Z, C, N, V, H 1
ДЭЭШ Рд, К Бүртгүүлэхээс тогтмолыг хас Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Хоёр регистрийн хамт хасах Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Рд, К Reg-ээс Carry Constant-тэй хасах. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Рдл, К Үгнээс шууд хасах Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
БА Rd, Rr Логик ба бүртгэл Rd ← Rd ∙ Rr Z, N, V 1
АНДИ Рд, К Логик ба бүртгэл ба тогтмол Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr Логик эсвэл бүртгэл Rd ← Rd v Rr Z, N, V 1
ORI Рд, К Логик Эсвэл Бүртгүүлэх ба Тогтмол Rd ← Rd v K Z, N, V 1
EOR Rd, Rr Онцгой бүртгэлийн бүртгэл Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Нэг хүний ​​нэмэлт Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Хоёрын нэмэлт Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Рд, К Бүртгүүлэхдээ битүүдийг тохируулна уу Rd ← Rd v K Z, N, V 1
CBR Рд, К Бүртгүүлэхдээ битүүдийг арилгах Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Нэмэгдүүлэх Rd ← Rd + 1 Z, N, V 1
ДЕК Rd Бууралт Rd ← Rd − 1 Z, N, V 1
TST Rd Тэг эсвэл хасах тест Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Бүртгэлийг арилгах Rd ← Rd ⊕ Rd Z, N, V 1
СЭР Rd Бүртгэлийг тохируулах Rd ← 0xFF Байхгүй 1
САЛБАРЫН ЗААВАР
RJMP k Харьцангуй үсрэлт PC ← PC + k + 1 Байхгүй 2
IJMP (Z) руу шууд бус үсрэлт PC ← З Байхгүй 2
Дуудлага k Харьцангуй дэд програмын дуудлага PC ← PC + k + 1 Байхгүй 3
БИ ЗАЛГАНА (Z) руу шууд бус дуудлага хийх PC ← З Байхгүй 3
RET Subroutine буцах PC ← STACK Байхгүй 4
RETI Тасалдал буцах PC ← STACK I 4
CPSE Rd, Rr Харьцуулах, тэнцүү бол алгасах хэрэв (Rd = Rr) PC ← PC + 2 эсвэл 3 Байхгүй 1/2/3
CP Rd, Rr Харьцуулах Rd - Rr Z, N, V, C, H 1
CPC Rd, Rr Carry-тэй харьцуул Rd − Rr − C Z, N, V, C, H 1
ХҮИ Рд, К Бүртгэлийг даруйхантай харьцуулах Rd - K Z, N, V, C, H 1
SBRC Рр, б Бүртгүүлэхэд бит хасагдсан бол алгасах хэрэв (Rr(b)=0) PC ← PC + 2 эсвэл 3 Байхгүй 1/2/3
СБРС Рр, б Бүртгүүлэхэд бит тохируулсан бол алгасах хэрэв (Rr(b)=1) PC ← PC + 2 эсвэл 3 Байхгүй 1/2/3
SBIC П, б Оролт / гаралтын бит дэх бүртгэлийг арилгасан бол алгасах хэрэв (P(b)=0) PC ← PC + 2 эсвэл 3 Байхгүй 1/2/3
SBIS П, б Оролт / гаралтын бүртгэлд бит тохируулсан бол алгасах хэрэв (P(b)=1) PC ← PC + 2 эсвэл 3 Байхгүй 1/2/3
БРБС с, к Статус туг тохируулсан бол салбар хэрэв (SREG(s) = 1) бол PC←PC+k + 1 Байхгүй 1/2
BRBC с, к Статусын тугийг арилгасан бол салбар хэрэв (SREG(s) = 0) бол PC←PC+k + 1 Байхгүй 1/2
ХАМГААЛАХ k Тэнцүү бол салбар хэрэв (Z = 1) бол PC ← PC + k + 1 Байхгүй 1/2
БРНЭ k Хэрэв тэнцүү биш бол салбар хэрэв (Z = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRCS k Тээврийн хэрэгслийг авч явбал салбар хэрэв (C = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRCC k Хэрэв зөөвөрлөсөн бол салбар хэрэв (C = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRSH k Ижил эсвэл түүнээс дээш бол салбар хэрэв (C = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRLO k Хэрэв доод бол салбар хэрэв (C = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRMI k Хасах бол салбар хэрэв (N = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRPL k Plus бол салбар хэрэв (N = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRGE k Их эсвэл тэнцүү бол гарын үсэг зурсан салбар хэрэв (N ⊕ V= 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRLT k Тэгээс бага, гарын үсэг зурсан бол салбар хэрэв (N ⊕ V= 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRHS k Хагас зөөвөрлөх тугны багц байвал салбар хэрэв (H = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRHC k Хагас ачааны тугийг цэвэрлэсэн бол салбар хэрэв (H = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRTS k Хэрэв T туг тохируулсан бол салбар хэрэв (T = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRTC k T тугийг арилгасан бол салбар хэрэв (T = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BRVS k Хэрэв халих туг тохируулсан бол салбар хэрэв (V = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRVC k Хэрэв халих далбааг арилгасан бол салбар хэрэв (V = 0) бол PC ← PC + k + 1 Байхгүй 1/2
ХУЛГАЙ k Тасалдлыг идэвхжүүлсэн бол салбар хэрэв ( I = 1) бол PC ← PC + k + 1 Байхгүй 1/2
BRID k Тасалдлыг идэвхгүй болгосон тохиолдолд салбар хэрэв ( I = 0) бол PC ← PC + k + 1 Байхгүй 1/2
BIT ба BIT-TEST ЗААВАР
SBI P, b Оролт / гаралтын бүртгэлд битийг тохируулна уу I/O(P,b) ← 1 Байхгүй 2
CBI P, b I / O бүртгэлд битийг арилгах I/O(P,b) ← 0 Байхгүй 2
LSL Rd Логик зүүн тийш шилжих Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Логик баруун тийш шилжих Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
ҮҮРЭГ Rd Зөөвөрлөх замаар зүүн тийш эргүүлэх Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Ачаагаар зөв эргүүл Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Арифметик шилжилтийн баруун Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Мнемоник Операндууд Тодорхойлолт Үйл ажиллагаа Тугнууд # Цаг
SWAP Rd Нибблсийг солих Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Байхгүй 1
BSET s Тугны тохируулга SREG(үүд) ← 1 SREG (ууд) 1
BCLR s Туг дарах SREG(үүд) ← 0 SREG (ууд) 1
БСТ Рр, б Битр дэлгүүрээс Бүртгэлээс Т хүртэл дэлгүүр T ← Rr(b) T 1
BLD Рд, б Т-ээс Бүртгүүлэх хүртэл бит ачаалал Rd(b) ← Т Байхгүй 1
SEC Carry-ийг тохируулна уу C ← 1 C 1
CLC Тээврийн хэрэгслийг цэвэрлэ C ← 0 C 1
СЭН Сөрөг тугийг тохируулах N ← 1 N 1
CLN Сөрөг тугийг арилгах N ← 0 N 1
SEZ Тэг тугийг тохируулах Z ← 1 Z 1
CLZ Тэг тугийг арилгах Z ← 0 Z 1
SEI Глобал тасалдлыг идэвхжүүлэх Би ← 1 I 1
CLI Глобал тасалдлыг идэвхгүй болгох Би ← 0 I 1
SES Гарын үсэг бүхий туршилтын тугийг тохируулна уу S ← 1 S 1
CLS Гарын үсэг бүхий туршилтын тугийг арилгах S ← 0 S 1
SEV Twos Complement Overflow-ийг тохируулна уу. V ← 1 V 1
CLV Twos Complement Overflow-ийг цэвэрлэ V ← 0 V 1
SET SREG дээр T тохируулна уу T ← 1 T 1
CLT SREG дээр T-г цэвэрлэ T ← 0 T 1
SEH SREG-д Хагас Ачааны тугийг тохируулна уу H ← 1 H 1
CLH SREG-д хагасыг нь авч явах H ← 0 H 1
МЭДЭЭ ШИЛЖҮҮЛЭХ ЗААВАР
MOV Rd, Rr Бүртгэлийн хооронд шилжих Rd ← Rr Байхгүй 1
ХӨДӨЛГӨӨН Rd, Rr Бүртгүүлэх үгийг хуулах Rd+1:Rd ← Rr+1:Rr Байхгүй 1
LDI Рд, К Яаралтай ачаалах Rd ← K Байхгүй 1
LD Рд, X Шууд бус хэлбэрээр ачаалах Rd ← (X) Байхгүй 2
LD Rd, X + Шууд бус болон Post-Inc-ийг ачаалах. Rd ← (X), X ← X + 1 Байхгүй 2
LD Rd, - X Шууд бус болон арванхоёрдугаар сарын өмнөх ачаалал. X ← X – 1, Rd ← (X) Байхгүй 2
LD Рд, Ю Шууд бус хэлбэрээр ачаалах Rd ← (Y) Байхгүй 2
LD Rd, Y + Шууд бус болон Post-Inc-ийг ачаалах. Rd ← (Y), Y ← Y + 1 Байхгүй 2
LD Rd, - Y Шууд бус болон арванхоёрдугаар сарын өмнөх ачаалал. Y ← Y – 1, Rd ← (Y) Байхгүй 2
LDD Rd, Y + q Нүүлгэн шилжүүлэлттэй шууд бус ачаалал Rd ← (Y + q) Байхгүй 2
LD Рд, З Шууд бус хэлбэрээр ачаалах Rd ← (Z) Байхгүй 2
LD Rd, Z + Шууд бус болон Post-Inc-ийг ачаалах. Rd ← (Z), Z ← Z+1 Байхгүй 2
LD Рд, -З Шууд бус болон арванхоёрдугаар сарын өмнөх ачаалал. Z ← Z – 1, Rd ← (Z) Байхгүй 2
LDD Rd, Z + q Нүүлгэн шилжүүлэлттэй шууд бус ачаалал Rd ← (Z + q) Байхгүй 2
ХҮГ Рд, к SRAM-ээс шууд ачаалах Rd ← (k) Байхгүй 2
ST X, Rr Шууд бус хэлбэрээр хадгалах (X) ← Rr Байхгүй 2
ST X +, Rr Шууд бус болон Post-Inc дэлгүүр. (X) ← Rr, X ← X + 1 Байхгүй 2
ST - X, Rr Шууд бус болон XNUMX-р сараас өмнө хадгалах. X ← X – 1, (X) ← Rr Байхгүй 2
ST Y, Rr Шууд бус хэлбэрээр хадгалах (Y) ← Rr Байхгүй 2
ST Y +, Rr Шууд бус болон Post-Inc дэлгүүр. (Ү) ← Rr, Y ← Y + 1 Байхгүй 2
ST - Y, Rr Шууд бус болон XNUMX-р сараас өмнө хадгалах. Ү ← Ү – 1, (Ү) ← Rr Байхгүй 2
БЗДХ Y + q, Rr Шууд бусыг нүүлгэн шилжүүлэлтээр хадгалах (Y + q) ← Rr Байхгүй 2
ST З, Рр Шууд бус хэлбэрээр хадгалах (Z) ← Rr Байхгүй 2
ST Z +, Rr Шууд бус болон Post-Inc дэлгүүр. (Z) ← Rr, Z ← Z + 1 Байхгүй 2
ST -З, Rr Шууд бус болон XNUMX-р сараас өмнө хадгалах. Z ← Z – 1, (Z) ← Rr Байхгүй 2
БЗДХ Z + q, Rr Шууд бусыг нүүлгэн шилжүүлэлтээр хадгалах (Z + q) ← Rr Байхгүй 2
STS k, Rr SRAM руу шууд хадгалах (k) ← Rr Байхгүй 2
LPM Хөтөлбөрийн санах ойг ачаалах R0 ← (Z) Байхгүй 3
LPM Рд, З Хөтөлбөрийн санах ойг ачаалах Rd ← (Z) Байхгүй 3
LPM Rd, Z + Хөтөлбөрийн санах ойг ачаалах Rd ← (Z), Z ← Z+1 Байхгүй 3
SPM Хөтөлбөрийн санах ойг хадгалах (z) ← R1:R0 Байхгүй
IN Rd, P. Боомтод Rd ← П Байхгүй 1
ГАРСАН П, Рр Боомтоос гарав P ← Rr Байхгүй 1
ТҮЛХ Rr Stack дээр бүртгүүлэх STACK ← Rr Байхгүй 2
POP Rd Stack-аас поп бүртгэл Rd ← STACK Байхгүй 2
MCU-ийн хяналтын заавар
ҮГҮЙ Үйл ажиллагаа байхгүй Байхгүй 1
УНТАХ Унтах (Унтах функцийг тодорхой бууралтыг харна уу) Байхгүй 1
WDR Харуулын нохойг дахин тохируулах (WDR / Timer-ийн тодорхой бууралтыг харна уу) Байхгүй 1
BREAK Завсарлага
Хурд (MHz) (1) Нийлүүлэлт ботьtage (V) Температурын хүрээ Багц (2) Захиалгын код (3)
10 1.8-5.5 Аж үйлдвэрийн

(-40 ° C-аас + 85 ° C) (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 Аж үйлдвэрийн

(-40 ° C-аас + 85 ° C) (4)

8P3 ATtiny45-20PU
8S2 ATtiny45-20SU ATtiny45-20SUR

ATtiny45-20SH ATtiny45-20SHR

8X ATtiny45-20XU ATtiny45-20XUR
20M1 ATtiny45-20MU ATtiny45-20MUR

Тайлбар: 1. Хурд ба нийлүүлэлтийн ботьtage, хэсгийг үзнэ үү 21.3-р хуудасны 163 “хурд”.

Бүх багц нь Pb агуулаагүй, галогенгүй, бүрэн ногоон бөгөөд тэдгээр нь Европын Аюултай Бодисыг Хязгаарлах (RoHS) удирдамжтай нийцдэг.

Кодын үзүүлэлтүүд

H: NiPdAu хар тугалга

U: царцсан цагаан тугалга

R: соронзон хальс ба дамар

Эдгээр төхөөрөмжийг мөн ялтсан хэлбэрээр нийлүүлж болно. Захиалгын нарийвчилсан мэдээлэл, хамгийн бага хэмжээг харъяа Atmel борлуулалтын албатайгаа холбоо барина уу.

Эррата

25. Errata ATtiny

Энэ хэсгийн засварын үсэг нь ATtiny25 төхөөрөмжийг шинэчлэхийг хэлнэ.

Илч D - F

Мэдэгдэж байгаа алдаа алга.

Илчлэлт B - C

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

EEPROM-ийг цагны давтамж бага ба/эсвэл нийлүүлэлт багатай үед уншихыг оролдож байнаtage нь хүчингүй өгөгдөл үүсгэж болзошгүй.

Асуудлыг засах / шийдвэрлэх арга

Цагийн давтамж 1 МГц-ээс бага, хангамжийн хэмжээ байх үед EEPROM-г бүү ашиглаtage 2V-оос бага байна. Хэрэв үйлдлийн давтамжийг 1 МГц-ээс дээш өсгөх боломжгүй бол нийлүүлэлтийн хэмжээtage 2V-оос их байх ёстой. Үүний нэгэн адил, хэрэв нийлүүлэлт ботьtage 2V-оос дээш өсгөх боломжгүй бол үйлдлийн давтамж 1MHz-ээс их байх ёстой.

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

Илч А

С бишampудирдсан.

45. Errata ATtiny

Энэ хэсгийн засварын үсэг нь ATtiny45 төхөөрөмжийг шинэчлэхийг хэлнэ.

Илч F - Г.

Мэдэгдэж байгаа алдаа алга

Илч D - E

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

EEPROM-ийг цагны давтамж бага ба/эсвэл нийлүүлэлт багатай үед уншихыг оролдож байнаtage нь хүчингүй өгөгдөл үүсгэж болзошгүй.

Асуудлыг засах / шийдвэрлэх арга

Цагийн давтамж 1 МГц-ээс бага, хангамжийн хэмжээ байх үед EEPROM-г бүү ашиглаtage 2V-оос бага байна. Хэрэв үйлдлийн давтамжийг 1 МГц-ээс дээш өсгөх боломжгүй бол нийлүүлэлтийн хэмжээtage 2V-оос их байх ёстой. Үүний нэгэн адил, хэрэв нийлүүлэлт ботьtage 2V-оос дээш өсгөх боломжгүй бол үйлдлийн давтамж 1MHz-ээс их байх ёстой.

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

Илчлэлт B - C

PLL түгжигдээгүй байна

Програмын кодоос уншсан EEPROM нь Lock Bit Mode 3 горимд ажиллахгүй

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

OC1B- XOC1B дээрх таймер тоолуур 1 PWM гаралт зөв ажиллахгүй байна

PLL түгжигдээгүй байна

6.0 МГц-ээс доош давтамжтай үед PLL түгжигдэхгүй

Асуудлыг засах / шийдвэрлэх арга

PLL ашиглахдаа 6.0 MHz ба түүнээс дээш хурдтай ажиллуулна уу.

Програмын кодоос уншсан EEPROM нь Lock Bit Mode 3 горимд ажиллахгүй

Memory Lock LB2 ба LB1 битүүдийг 3 горимд програмчлах үед програмын кодоос EEPROM унших нь ажиллахгүй болно.

Асуудлыг засах / тойрон гарах

Програмын кодыг EEPROM-оос унших шаардлагатай үед Lock Bit Protection Mode 3 горимыг бүү тохируул.

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

EEPROM-ийг цагны давтамж бага ба/эсвэл нийлүүлэлт багатай үед уншихыг оролдож байнаtage нь хүчингүй өгөгдөл үүсгэж болзошгүй.

Асуудлыг засах / шийдвэрлэх арга

Цагийн давтамж 1 МГц-ээс бага, хангамжийн хэмжээ байх үед EEPROM-г бүү ашиглаtage 2V-оос бага байна. Хэрэв үйлдлийн давтамжийг 1 МГц-ээс дээш өсгөх боломжгүй бол нийлүүлэлтийн хэмжээtage 2V-оос их байх ёстой. Үүний нэгэн адил, хэрэв нийлүүлэлт ботьtage 2V-оос дээш өсгөх боломжгүй бол үйлдлийн давтамж 1MHz-ээс их байх ёстой.

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

OC1B - XOC1B дээрх таймер тоолуур 1 PWM гаралт зөв ажиллахгүй байна

Таймер Counter1 PWM гаралт OC1B-XOC1B зөв ажиллахгүй байна. COM1B1 ба COM1B0 нь хяналтын битүүд COM1A1 ба COM1A0-тэй ижил горимд байх тохиолдолд л OC1B-XOC1B гаралт зөв ажилладаг.

Асуудлыг засах / тойрон гарах

Цорын ганц шийдэл бол COM1A [1: 0] ба COM1B [1: 0] хяналтын битүүдэд ижил хяналтын тохиргоог ашиглах явдал юм, мэдээллийн хүснэгт дэх хүснэгт 14-4-ийг үзнэ үү. Асуудлыг Tiny45 rev D-д тохируулсан болно.

Илч А

Хэт их цахилгаан зарцуулалт

DebugWIRE нь тасалдал руу нэг алхам хийх үед харилцаа холбоогоо алддаг

PLL түгжигдээгүй байна

Програмын кодоос уншсан EEPROM нь Lock Bit Mode 3 горимд ажиллахгүй

EEPROM-ийн уншилт бага нийлүүлэлтийн эзэлхүүнд амжилтгүй болж магадгүйtage / бага цагийн давтамж

Хэт их цахилгаан зарцуулалт

Гурван нөхцөл байдал нь хэт их цахилгаан зарцуулалтыг бууруулах болно. Эдгээр нь:

Гадаад цагийг гал хамгаалагчаар сонгодог боловч I / O PORT нь гаралт хэлбэрээр идэвхжсэн хэвээр байна.

EEPROM-ийг унтрааж уншихаас өмнө уншдаг.

VCC нь 4.5 вольт ба түүнээс дээш байна.

Анхааруулга: Энэхүү баримт бичигт байгаа мэдээллийг Atmel бүтээгдэхүүнтэй холбогдуулан өгсөн болно. Энэхүү баримт бичиг эсвэл Атмелийн бүтээгдэхүүнийг борлуулахтай холбогдуулан оюуны өмчийн аливаа эрхийг шууд болон далд хэлбэрээр олгогдоогүй болно. ATMEL ДЭЭР БАЙРШЛАГА ХУДАЛДААНЫ НӨХЦӨЛ, НӨХЦӨЛД ТОДОРХОЙЛООС БУСАД WEBСАЙТ, АТМЕЛ НЬ ЯМАР ч хариуцлага хүлээхгүй бөгөөд ҮЙЛДВЭРЛЭГЧ, ХУДАЛДААНЫ ҮЙЛЧИЛГЭЭ, ХУДАЛДААНЫ ҮЙЛЧИЛГЭЭНИЙ БАТАЛГАА ОРОН БҮТЭЭГДЭХҮҮНТЭЙ ХОЛБОГДОХ ИЛЭРХИЙ, шууд ЭСВЭЛ ХУУЛИЙН БУС БАТАЛГААС ТАТААСАХГҮЙ. ЯМАР ч тохиолдолд АТМЕЛ ХАРИУЦЛАГА ХАРИУЦАХГҮЙ ШУУД, ШУУД БУС, ҮРГЭЛЖЛҮҮЛСЭН, ШИЙТГЭЛИЙН, ТУСГАЙ ЭСВЭЛ САНАМЖИЙН ХОХИРОЛ (АЖИЛЛАГААНЫ АЖИЛЛАГААНЫ АЖИЛЛАГААНЫ ХЭРЭГСЭЛ, АШИГИЙН ХОХИРОЛТОЙ, ХЯЗГААРЛАХГҮЙ). ЭНЭ БАРИМТ БИЧИГ, АТМЕЛЬД ИЙМ ХОХИРОЛ ҮҮСЭХ БОЛОМЖТОЙГ ЗӨВЛӨГСӨН БАЙСАН БОЛ.

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

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *