Բովանդակություն թաքցնել

Ատմել

Atmel 8-բիթանոց AVR միկրոկոնտրոլեր՝ 2/4/8K բայթ համակարգային ծրագրավորվող ֆլեշովչիպ

 

Առանձնահատկություններ

  • Բարձր արդյունավետությամբ, ցածր էներգիայի AVR® 8-բիթանոց միկրոկառավարիչ
  • Ընդլայնված RISC ճարտարապետություն
  • 120 Հզոր հրահանգներ – Ժամացույցի ցիկլի կատարման ամենաշատը
  • 32 x 8 Ընդհանուր նշանակության աշխատանքային ռեգիստրներ
  • Լիովին ստատիկ գործողություն
  • Ոչ անկայուն ծրագիր և տվյալների հիշողություններ
  • 2/4/8K բայթ Ներհամակարգային ծրագրավորվող ծրագրի հիշողության ֆլեշ
  • Տոկունություն: 10,000 Գրել/Ջնջել ցիկլեր
  • 128/256/512 բայթ համակարգային ծրագրավորվող EEPROM
  • Տոկունություն: 100,000 Գրել/Ջնջել ցիկլեր
  • 128/256/512 բայթ Ներքին SRAM
  • Ծրագրավորման կողպեք ինքնածրագրավորվող Flash ծրագրի և EEPROM տվյալների անվտանգության համար

Ծայրամասային առանձնահատկություններ

  • 8-բիթանոց ժմչփ/հաշվիչ Prescaler-ով և երկու PWM ալիքներով
  • 8-բիթանոց բարձր արագությամբ ժմչփ/հաշվիչ՝ առանձին նախնական սանդղակավորիչով
  • 2 բարձր հաճախականության PWM ելքեր առանձին ելքային համեմատական ​​ռեգիստրներով
  • Ծրագրավորվող Dead Time Generator
  • USI – Ունիվերսալ սերիական ինտերֆեյս մեկնարկային վիճակի դետեկտորով
  • 10-բիթանոց ADC

4 Մեկ ավարտված ալիք

2 դիֆերենցիալ ADC ալիքների զույգեր՝ ծրագրավորվող շահույթով (1x, 20x)

Ջերմաստիճանի չափում

Ծրագրավորվող Watchdog Timer առանձին On-chip Oscillator-ով

Չիպային անալոգային համեմատիչ

Հատուկ միկրոկոնտրոլերի առանձնահատկությունները

debugWIRE On-chip Debug System

Ներհամակարգային ծրագրավորվող SPI Port-ի միջոցով

Արտաքին և ներքին ընդհատման աղբյուրներ

Ցածր էներգիայի պարապուրդ, ADC աղմուկի նվազեցում և անջատման ռեժիմներ

Ընդլայնված միացման վերակայման միացում

Ծրագրավորվող շագանակագույն դուրս հայտնաբերման միացում

Ներքին տրամաչափված օսցիլատոր

I/O և փաթեթներ

Ծրագրավորվող I/O վեց գծեր

8-փին PDIP, 8-փին SOIC, 20-փին QFN/MLF և 8-փին TSSOP (միայն ATtiny45/V)

Գործող Voltage
– 1.8 – 5.5 Վ ATtiny25V/45V/85V-ի համար
– 2.7 – 5.5 Վ ATtiny25/45/85-ի համար

Արագության դասարան
– ATtiny25V/45V/85V: 0 – 4 MHz @ 1.8 – 5.5V, 0 – 10 MHz @ 2.7 – 5.5V
– ATtiny25/45/85՝ 0 – 10 ՄՀց @ 2.7 – 5.5 Վ, 0 – 20 ՄՀց @ 4.5 – 5.5 Վ

Արդյունաբերական ջերմաստիճանի միջակայք

Ցածր էներգիայի սպառում

Ակտիվ ռեժիմ:

1 ՄՀց, 1.8 Վ՝ 300 մԱ

Անջատման ռեժիմ.

Pin կոնֆիգուրացիաներ

Pinout ATtiny25/45/85 Կոնֆիգուրացիա

Փին նկարագրություններ

VCC: Supply voltage.
GND: Հող:
Նավահանգիստ B (PB5:PB0). B նավահանգիստը 6-բիթանոց երկկողմանի մուտքի/ելքի միացք է՝ ներքին ձգվող դիմադրիչներով (ընտրված յուրաքանչյուր բիտի համար): Port B-ի ելքային բուֆերներն ունեն սիմետրիկ շարժիչի բնութագրիչներ ինչպես բարձր լվացման, այնպես էլ աղբյուրի հնարավորությամբ: Որպես մուտքային մուտքեր, նավահանգիստ B-ի կապանքները, որոնք արտաքինից ցածր են քաշվում, հոսանք կհոսեն, եթե ձգվող դիմադրիչները ակտիվացվեն: Նավահանգիստ B-ի կապանքները եռապատկվում են, երբ վերակայման պայմանն ակտիվանում է, նույնիսկ եթե ժամացույցը չի աշխատում:

Նավահանգիստ B-ը նաև ծառայում է ATtiny25/45/85-ի տարբեր հատուկ առանձնահատկությունների գործառույթներին, ինչպես նշված է
ATtiny25-ում ծրագրավորվող I/O PB3 և PB4 պորտերը (2 և 3 կապում) փոխանակվում են ATtiny15 Համատեղելիության ռեժիմում՝ ATtiny15-ի հետ հետ համատեղելիությունն աջակցելու համար:

RESET. Վերականգնել մուտքագրումը: Ցածր մակարդակը այս պտուտակի վրա նվազագույն զարկերակային երկարությունից ավելի երկար կառաջացնի վերակայում, նույնիսկ եթե ժամացույցը չի աշխատում, և պայմանով, որ վերակայման փին անջատված չէ: Նվազագույն զարկերակային երկարությունը տրված է Աղյուսակ 21-4 165-րդ էջում. Ավելի կարճ իմպուլսները երաշխավորված չեն վերականգնում ստեղծելու համար:

Վերականգնման քորոցը կարող է օգտագործվել նաև որպես (թույլ) I/O փին:

Ավարտվել էview

ATtiny25/45/85-ը ցածր էներգիայի CMOS 8-բիթանոց միկրոկառավարիչ է, որը հիմնված է AVR ուժեղացված RISC ճարտարապետության վրա: Կատարելով հզոր հրահանգներ մեկ ժամացույցի ցիկլով, ATtiny25/45/85-ը հասնում է թողունակության, որը մոտենում է 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, ծրագրավորվող Watchdog Timer ներքին հետ: Oscillator և երեք ծրագրային ապահովման էներգախնայողության ռեժիմներ: Անգործության ռեժիմը դադարեցնում է պրոցեսորը՝ միաժամանակ թույլ տալով SRAM-ը, ժմչփը/հաշվիչը, ADC-ն, անալոգային համեմատիչը և ընդհատումը շարունակել գործել: Անջատման ռեժիմը պահպանում է ռեգիստրի բովանդակությունը՝ անջատելով չիպի բոլոր գործառույթները մինչև հաջորդ ընդհատումը կամ սարքաշարի վերակայումը: ADC Noise Reduction ռեժիմը դադարեցնում է պրոցեսորը և բոլոր I/O մոդուլները, բացառությամբ ADC-ի՝ ADC-ի փոխարկումների ժամանակ անջատման աղմուկը նվազագույնի հասցնելու համար:

Սարքը արտադրված է Atmel-ի բարձր խտության ոչ անկայուն հիշողության տեխնոլոգիայի միջոցով: On-chip ISP Flash-ը թույլ է տալիս ծրագրի հիշողությունը վերածրագրավորել In-System միջոցով SPI սերիական ինտերֆեյսի միջոցով, սովորական ոչ անկայուն հիշողության ծրագրավորողի կամ AVR միջուկի վրա աշխատող On-chip boot code-ի միջոցով:

ATtiny25/45/85 AVR-ն ապահովվում է ծրագրերի և համակարգերի մշակման գործիքների ամբողջական փաթեթով, ներառյալ՝ C Կազմողներ, մակրոհավաքիչներ, Ծրագրի վրիպազերծիչ/սիմուլյատորներ և գնահատման փաթեթներ:

Ռեսուրսների մասին

Զարգացման գործիքների, հավելվածի նշումների և տվյալների թերթիկների համապարփակ փաթեթը հասանելի է ներբեռնման համար http://www.atmel.com/avr.

Կոդ Examples

Այս փաստաթուղթը պարունակում է պարզ ծածկագիր, օրինակampցուցումներ, որոնք հակիրճ ցույց են տալիս, թե ինչպես օգտագործել սարքի տարբեր մասերը: Այս ծածկագրերը նախկինamples ենթադրում ենք, որ մասի հատուկ վերնագիր file ներառված է մինչև կազմումը: Ուշադիր եղեք, որ C կոմպիլյատորների ոչ բոլոր վաճառողները ներառում են բիթերի սահմանումներ վերնագրում files և ընդհատումների մշակումը C-ում կախված է կոմպիլյատորից: Խնդրում ենք հաստատել C կոմպիլյատորի փաստաթղթերը լրացուցիչ մանրամասների համար:

Ընդլայնված I/O քարտեզում տեղակայված I/O ռեգիստրների համար «IN», «OUT», «SBIS», «SBIC», «CBI» և «SBI» հրահանգները պետք է փոխարինվեն հրահանգներով, որոնք թույլ են տալիս մուտք գործել ընդլայնված I: /Օ. Սովորաբար սա նշանակում է «LDS» և «STS»՝ զուգորդված «SBRS», «SBRC», «SBR» և «CBR» հետ: Նկատի ունեցեք, որ ոչ բոլոր AVR սարքերն են ներառում ընդլայնված I/O քարտեզ:

Capacitive Touch Sensing

Atmel QTouch Library-ը տրամադրում է պարզ օգտագործման լուծում Atmel AVR միկրոկառավարիչների վրա հպման զգայուն միջերեսների համար: QTouch գրադարանը ներառում է QTouch® և QMatrix® ձեռքբերման մեթոդների աջակցություն:

Touch sensing-ը հեշտությամբ ավելացվում է ցանկացած հավելվածում՝ միացնելով QTouch գրադարանը և օգտագործելով գրադարանի Application Programming Interface (API)՝ հպման ալիքներն ու սենսորները սահմանելու համար: Այնուհետև հավելվածը կանչում է API՝ ալիքի մասին տեղեկատվությունը ստանալու և հպման սենսորի վիճակը որոշելու համար:

QTouch գրադարանն անվճար է և կարելի է ներբեռնել Atmel-ից webկայք. Լրացուցիչ տեղեկությունների և իրականացման մանրամասների համար տե՛ս QTouch գրադարանի Օգտագործման ուղեցույցը, որը նույնպես հասանելի է Atmel-ից webկայք։

Տվյալների պահպանում

Հուսալիություն Որակավորման արդյունքները ցույց են տալիս, որ տվյալների պահպանման կանխատեսվող խափանման մակարդակը շատ ավելի քիչ է, քան 1 PPM 20 տարվա ընթացքում 85°C ջերմաստիճանում կամ 100 տարի 25°C ջերմաստիճանում:

AVR CPU Core

Ներածություն

Այս բաժինը ընդհանուր առմամբ քննարկում է AVR-ի հիմնական ճարտարապետությունը: CPU միջուկի հիմնական գործառույթն է ապահովել ծրագրի ճիշտ կատարումը: Հետևաբար, պրոցեսորը պետք է կարողանա մուտք գործել հիշողություններ, կատարել հաշվարկներ, վերահսկել ծայրամասային սարքերը և կարգավորել ընդհատումները:

Ճարտարապետական ​​ավարտview Ճարտարապետություն

Գործողությունը և զուգահեռությունը առավելագույնի հասցնելու համար AVR-ն օգտագործում է Հարվարդի ճարտարապետություն՝ առանձին հիշողություններով և ավտոբուսներով ծրագրերի և տվյալների համար: Ծրագրի հիշողության հրահանգները կատարվում են մեկ մակարդակի խողովակաշարով: Մինչ մեկ հրահանգ է կատարվում, հաջորդ հրահանգը նախապես վերցվում է Ծրագրի հիշողությունից: Այս հայեցակարգը թույլ է տալիս հրահանգներ կատարել յուրաքանչյուր ժամացույցի ցիկլում: Ծրագրի հիշողությունը ներհամակարգային վերածրագրավորվող ֆլեշ հիշողություն է:

Արագ մուտքի գրանցում File պարունակում է 32 x 8-բիթանոց ընդհանուր նշանակության աշխատանքային ռեգիստրներ՝ մեկ ժամացույցի ցիկլի մուտքի ժամանակով: Սա թույլ է տալիս մեկ ցիկլի թվաբանական տրամաբանական միավորի (ALU) աշխատանքը: Սովորական ALU գործողության մեջ գրանցամատյանից դուրս են գալիս երկու օպերանդ File, գործողությունը կատարվում է, և արդյունքը հետ է պահվում ռեգիստրում File- մեկ ժամացույցի ընթացքում:

32 ռեգիստրներից վեցը կարող են օգտագործվել որպես երեք 16-բիթանոց հասցեների ռեգիստրի ցուցիչներ Տվյալների տարածության հասցեավորման համար՝ հնարավորություն տալով արդյունավետ հասցեների հաշվարկներ: Այս հասցեների ցուցիչներից մեկը կարող է օգտագործվել նաև որպես հասցեի ցուցիչ Flash Ծրագրի հիշողության մեջ աղյուսակների որոնման համար: Այս ավելացված գործառույթների ռեգիստրներն են 16-բիթանոց X-, Y- և Z-գրանցիչները, որոնք նկարագրված են ավելի ուշ այս բաժնում:

ALU-ն աջակցում է թվաբանական և տրամաբանական գործողություններ գրանցողների միջև կամ հաստատունի և ռեգիստրի միջև: Մեկ ռեգիստրի գործողությունները կարող են իրականացվել նաև ALU-ում: Թվաբանական գործողությունից հետո Կարգավիճակի ռեգիստրը թարմացվում է գործողության արդյունքի մասին տեղեկատվությունը արտացոլելու համար:

Ծրագրի հոսքը ապահովվում է պայմանական և անվերապահ ցատկման և զանգի հրահանգներով, որոնք կարող են ուղղակիորեն հասցեագրել ողջ հասցեային տարածքը: AVR հրահանգների մեծ մասն ունի մեկ բառի 16-բիթանոց ձևաչափ, բայց կան նաև 32-բիթանոց հրահանգներ:

Ընդհատումների և ենթածրագրային զանգերի ժամանակ վերադարձի հասցեի Ծրագրի հաշվիչ (PC) հասցեն պահվում է Stack-ում: Stack-ը արդյունավետորեն տեղաբաշխվում է ընդհանուր տվյալների SRAM-ում, և, հետևաբար, Stack-ի չափը սահմանափակվում է միայն SRAM-ի ընդհանուր չափով և SRAM-ի օգտագործմամբ: Օգտագործողի բոլոր ծրագրերը պետք է սկզբնավորեն SP-ն «Վերականգնել» ռեժիմում (մինչև ենթածրագրերի կամ ընդհատումների իրականացումը): Stack ցուցիչը (SP) հասանելի է կարդալ/գրել մուտքի/ելքի տարածքում: Տվյալների SRAM-ը հեշտությամբ հասանելի է AVR ճարտարապետության մեջ աջակցվող հինգ հասցեավորման ռեժիմների միջոցով:

AVR ճարտարապետության հիշողության տարածքները բոլորը գծային և կանոնավոր հիշողության քարտեզներ են:

Ճկուն ընդհատման մոդուլն ունի իր կառավարման ռեգիստրները I/O տարածության մեջ՝ կարգավիճակի ռեգիստրում լրացուցիչ Global Interrupt Enable բիթով: Բոլոր ընդհատումներն ունեն առանձին ընդհատման վեկտոր ընդհատման վեկտորի աղյուսակում: Ընդհատումները ունեն առաջնահերթություն՝ ըստ իրենց ընդհատման վեկտորի դիրքի: Որքան ցածր է ընդհատման վեկտորի հասցեն, այնքան բարձր է առաջնահերթությունը:

I/O հիշողության տարածքը պարունակում է 64 հասցե պրոցեսորի ծայրամասային գործառույթների համար՝ որպես Control Registers, SPI և այլ I/O ֆունկցիաներ: I/O հիշողությունը կարող է մուտք գործել ուղղակիորեն, կամ որպես Տվյալների տարածության տեղակայումներ, որոնք հետևում են գրանցման տվյալներին File, 0x20 – 0x5F:

ALU – Թվաբանական տրամաբանական միավոր

Բարձր արդյունավետությամբ AVR ALU-ն աշխատում է բոլոր 32 ընդհանուր նշանակության աշխատանքային ռեգիստրների հետ անմիջական կապով: Մեկ ժամացույցի ընթացքում թվաբանական գործողություններ են կատարվում ընդհանուր նշանակության ռեգիստրների կամ ռեգիստրի և անմիջականի միջև: ALU գործողությունները բաժանված են երեք հիմնական կատեգորիաների՝ թվաբանական, տրամաբանական և բիթային ֆունկցիաներ: Ճարտարապետության որոշ իրականացումներ նաև ապահովում են հզոր բազմապատկիչ, որն աջակցում է ինչպես ստորագրված/անստորագիր բազմապատկմանը, այնպես էլ կոտորակային ձևաչափին: Մանրամասն նկարագրության համար տես «Հրահանգների հավաքածու» բաժինը:

Կարգավիճակի գրանցում

Կարգավիճակի ռեգիստրը պարունակում է տեղեկատվություն ամենավերջին կատարված թվաբանական հրահանգի արդյունքի մասին: Այս տեղեկատվությունը կարող է օգտագործվել ծրագրի հոսքը փոխելու համար՝ պայմանական գործողություններ կատարելու համար: Նկատի ունեցեք, որ կարգավիճակի ռեգիստրը թարմացվում է ALU-ի բոլոր գործողություններից հետո, ինչպես նշված է Instruction Set Reference-ում: Սա շատ դեպքերում կհեռացնի հատուկ համեմատության հրահանգների օգտագործման անհրաժեշտությունը, ինչը կհանգեցնի ավելի արագ և կոմպակտ կոդ:

Կարգավիճակի ռեգիստրը ավտոմատ կերպով չի պահվում ընդհատման ռեժիմ մուտք գործելիս և վերականգնվում է ընդհատումից վերադառնալիս: Սա պետք է կարգավորվի ծրագրային ապահովման միջոցով:

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. Համաշխարհային ընդհատման միացում

Համաշխարհային ընդհատման ակտիվացման բիթը պետք է սահմանվի, որպեսզի ընդհատումները միացվեն: Անհատական ​​ընդհատման հնարավորությունների վերահսկումն այնուհետև իրականացվում է առանձին հսկիչ ռեգիստրներում: Եթե ​​Համաշխարհային ընդհատումների ակտիվացման գրանցամատյանը ջնջված է, ընդհատումներից ոչ մեկը միացված չէ անկախ ընդհատման ակտիվացման անհատական ​​կարգավորումներից: I-bit-ը ջնջվում է ապարատային միջոցով ընդհատումից հետո և սահմանվում է RETI հրահանգով, որպեսզի հնարավոր լինի հետագա ընդհատումները: I-bit-ը կարող է նաև սահմանվել և մաքրվել հավելվածի կողմից SEI և CLI հրահանգներով, ինչպես նկարագրված է հրահանգների հավաքածուի հղումում:

Բիթ 6 – T. Բիթային պատճենների պահեստավորում

Bit Copy հրահանգները BLD (Bit LoaD) և BST (Bit Store) օգտագործում են T-bit-ը որպես սկզբնաղբյուր կամ նպատակակետ գործած բիթի համար: Մի քիչ ռեգիստրից գրանցամատյանում File կարող է պատճենվել T-ում BST հրահանգով, իսկ T-ի բիթը կարող է պատճենվել ռեգիստրի ռեգիստրի բիթերի մեջ File BLD հրահանգով:

Բիթ 5 – H: Դրոշ կիսով չափ կրել

Half Carry Flag H-ը ցույց է տալիս Half Carry որոշ թվաբանական գործողություններում: Half Carry-ն օգտակար է BCD թվաբանության մեջ: Մանրամասն տեղեկությունների համար տե՛ս «Հրահանգների հավաքածուի նկարագրությունը»:

Բիթ 4 – S. նշանի բիթ, S = N ⊕ V

S-bit-ը միշտ բացառիկ է կամ Ngative Flag N-ի և Two's Complement Overflow Flag V-ի միջև: Մանրամասն տեղեկությունների համար տես «Հրահանգների հավաքածուի նկարագրությունը»:

Բիթ 3 – V. Երկուսի լրացման դրոշակ

The Two's Complement Overflow Flag V-ն աջակցում է երկուսի լրացման թվաբանությանը: Մանրամասն տեղեկությունների համար տե՛ս «Հրահանգների հավաքածուի նկարագրությունը»:

Բիթ 2 – N: Բացասական դրոշ

Բացասական դրոշ N-ը ցույց է տալիս թվաբանական կամ տրամաբանական գործողության բացասական արդյունք: Մանրամասն տեղեկությունների համար տե՛ս «Հրահանգների հավաքածուի նկարագրությունը»:

Բիթ 1 – Z: Զրոյական դրոշակ

Zero Flag Z-ը ցույց է տալիս զրոյական արդյունք թվաբանական կամ տրամաբանական գործողության մեջ: Մանրամասն տեղեկությունների համար տե՛ս «Հրահանգների հավաքածուի նկարագրությունը»:

Bit 0 – C: Կրել դրոշակ

Carry Flag C-ը ցույց է տալիս թվաբանական կամ տրամաբանական գործողության փոխադրումը: Մանրամասն տեղեկությունների համար տե՛ս «Հրահանգների հավաքածուի նկարագրությունը»:

Ընդհանուր նշանակության ռեգիստր File

Ռեգիստրը File օպտիմիզացված է AVR Enhanced RISC հրահանգների հավաքածուի համար: Պահանջվող կատարողականության և ճկունության հասնելու համար ռեգիստրի կողմից աջակցվում են հետևյալ մուտքային/ելքային սխեմաները. File:

Մեկ 8-բիթանոց ելքային օպերանդ և մեկ 8-բիթանոց արդյունքի մուտք

Երկու 8-բիթանոց ելքային օպերանդ և մեկ 8-բիթանոց արդյունքի մուտքագրում

Երկու 8-բիթանոց ելքային օպերանդ և մեկ 16-բիթանոց արդյունքի մուտքագրում

Մեկ 16-բիթանոց ելքային օպերանդ և մեկ 16-բիթանոց արդյունքի մուտք

Նկար 4-2 ցույց է տալիս պրոցեսորի 32 ընդհանուր նշանակության աշխատանքային ռեգիստրների կառուցվածքը: Ընդհանուր նպատակ

Ինչպես ցույց է տրված Նկար 4-2, յուրաքանչյուր ռեգիստրին հատկացվում է նաև Տվյալների հիշողության հասցե՝ դրանք ուղղակիորեն քարտեզագրելով օգտագործողի տվյալների տարածության առաջին 32 վայրերում: Թեև ֆիզիկապես չի ներդրվում որպես SRAM տեղակայանքներ, այս հիշողության կազմակերպումը մեծ ճկունություն է ապահովում ռեգիստրների հասանելիության հարցում, քանի որ X-, Y- և Z ցուցիչի ռեգիստրները կարող են սահմանվել ինդեքսավորելու ցանկացած գրանցամատյանում: file.Ռեգիստրում գործող հրահանգների մեծ մասը File ուղիղ մուտք ունեն բոլոր ռեգիստրները, և դրանց մեծ մասը մեկ ցիկլի հրահանգներ են:

X-register, Y-register և Z-register

R26..R31 գրանցամատյաններն ունեն որոշ լրացուցիչ գործառույթներ իրենց ընդհանուր նշանակության օգտագործման համար: Այս ռեգիստրները 16-բիթանոց հասցեի ցուցիչներ են տվյալների տարածության անուղղակի հասցեավորման համար: Երեք անուղղակի հասցեների X, Y և Z գրանցամատյանները սահմանվում են այնպես, ինչպես նկարագրված է Նկար 4-3.

Գրանցվել

Հասցեավորման տարբեր ռեժիմներում այս հասցեների ռեգիստրներն ունեն ֆիքսված տեղաշարժ, ավտոմատ ավելացում և ավտոմատ նվազում (մանրամասների համար տե՛ս հրահանգների հավաքածուի հղումը):

Stack Pointer

Stack-ը հիմնականում օգտագործվում է ժամանակավոր տվյալներ պահելու, տեղային փոփոխականները պահելու և ընդհատումներից և ենթածրագրային զանգերից հետո վերադարձի հասցեները պահելու համար: Stack Pointer Register-ը միշտ ցույց է տալիս Stack-ի վերևը: Նկատի ունեցեք, որ Stack-ն իրականացվում է, երբ աճում է ավելի բարձր հիշողության վայրերից դեպի ավելի ցածր հիշողության վայրեր: Սա ենթադրում է, որ Stack PUSH հրամանը նվազեցնում է Stack Pointer-ը:

Stack Pointer-ը ցույց է տալիս տվյալների SRAM Stack տարածքը, որտեղ գտնվում են Subroutine և Interrupt Stacks-ը: Տվյալների SRAM-ում այս Stack տարածքը պետք է սահմանվի ծրագրի կողմից՝ նախքան որևէ ենթածրագրային զանգեր կատարելը կամ ընդհատումները միացնելը: Stack Pointer-ը պետք է դրվի 0x60-ից բարձր կետի վրա: Stack ցուցիչը նվազում է մեկով, երբ տվյալները դրվում են Stack-ի վրա PUSH հրահանգով, և այն նվազում է երկուով, երբ վերադարձի հասցեն սեղմվում է Stack-ի վրա ենթածրագրի կանչով կամ ընդհատումով: Stack ցուցիչը ավելանում է մեկով, երբ տվյալները դուրս են գալիս Stack-ից POP հրահանգով, և այն ավելանում է երկուով, երբ տվյալները դուրս են գալիս Stack-ից վերադարձով RET ենթածրագրից կամ վերադառնում են ընդհատումից RETI:

AVR Stack Pointer-ը ներդրվում է որպես երկու 8-բիթանոց ռեգիստրներ I/O տարածքում: Իրականում օգտագործվող բիթերի քանակը կախված է իրականացումից: Նկատի ունեցեք, որ AVR ճարտարապետության որոշ իրականացումներում տվյալների տարածությունն այնքան փոքր է, որ անհրաժեշտ է միայն SPL: Այս դեպքում SPH ռեգիստրը ներկա չի լինի:

SPH և SPL — Stack Pointer Register

Բիթ 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
Սկզբնական արժեքը ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ
Սկզբնական արժեքը ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ ՌԱՄԵՆԴ

Հրահանգների կատարման ժամկետներ

Այս բաժինը նկարագրում է հրահանգների կատարման համար մուտքի ժամանակի ընդհանուր հասկացությունները: AVR պրոցեսորը ղեկավարվում է CPU ժամացույցի clkCPU-ով, որն ուղղակիորեն գեներացվում է չիպի համար ընտրված ժամացույցի աղբյուրից: Ներքին ժամացույցի բաժանում չի օգտագործվում:

Նկ4.4

Նկար 4-4 ցույց է տալիս Հարվարդի ճարտարապետության և արագ մուտքի ռեգիստրի կողմից թույլատրված զուգահեռ հրահանգների բեռնումը և հրահանգների կատարումը File հայեցակարգը. Սա խողովակաշարի հիմնական հայեցակարգն է՝ մեկ ՄՀց-ում մինչև 1 MIPS հաճախականություն ստանալու համար՝ համապատասխան եզակի արդյունքներով՝ մեկ արժեքի, մեկ ժամացույցի և մեկ էներգաբլոկի գործառույթների համար:

Նկար 4-5. Մեկ ցիկլի ALU գործողություն

Նկ4.5

Վերականգնել և ընդհատել կառավարումը

AVR-ն ապահովում է մի քանի տարբեր ընդհատման աղբյուրներ: Այս ընդհատումները և առանձին «Վերականգնման վեկտորը» ունեն Ծրագրի հիշողության տարածքում առանձին Ծրագրի վեկտոր: Բոլոր ընդհատումներին հատկացվում են անհատական ​​թույլատրելի բիթ, որոնք պետք է գրվեն մեկ տրամաբանությամբ՝ կարգավիճակի ռեգիստրում գլոբալ ընդհատման ակտիվացման բիթերի հետ միասին՝ ընդհատումը միացնելու համար:

Ծրագրի հիշողության տարածության ամենացածր հասցեները լռելյայն սահմանվում են որպես Վերակայման և ընդհատման վեկտորներ: Վեկտորների ամբողջական ցանկը ներկայացված է «Ընդհատումներ» էջ 48. Ցանկը նաև որոշում է տարբեր ընդհատումների առաջնահերթության մակարդակները: Որքան ցածր է հասցեն, այնքան բարձր է առաջնահերթության մակարդակը: RESET-ն ունի ամենաբարձր առաջնահերթությունը, և հաջորդը INT0-ն է՝ Արտաքին ընդհատման հարցումը 0:

Երբ ընդհատում է տեղի ունենում, Global Interrupt Enable I-bit-ը ջնջվում է և բոլոր ընդհատումներն անջատված են: Օգտատիրոջ ծրագրակազմը կարող է տրամաբանական մեկ գրել I-bit-ում, որպեսզի միացնեն տեղադրվող ընդհատումները: Այնուհետև միացված բոլոր ընդհատումները կարող են ընդհատել ընթացիկ ընդհատումների ռեժիմը: I-bit-ը ավտոմատ կերպով սահմանվում է, երբ կատարվում է Return from Interrupt-ի հրահանգը՝ RETI:

Հիմնականում կան երկու տեսակի ընդհատումներ. Առաջին տեսակը գործարկվում է իրադարձությունից, որը սահմանում է ընդհատման դրոշը: Այս ընդհատումների համար Ծրագրի հաշվիչը վեկտորացվում է իրական ընդհատման վեկտորի վրա, որպեսզի կատարի ընդհատումների մշակման ռեժիմը, և սարքավորումը մաքրում է համապատասխան ընդհատման դրոշակը: Ընդհատման դրոշակները կարող են նաև ջնջվել՝ գրելով տրամաբանական մեկ դրոշի բիտի դիրք(ներ)ում, որը պետք է մաքրվի: Եթե ​​ընդհատման պայման է առաջանում, երբ համապատասխան ընդհատման միացման բիթը ջնջված է, ապա ընդհատման դրոշակը կսահմանվի և կհիշվի այնքան ժամանակ, մինչև ընդհատումը միացվի, կամ դրոշը չջնջվի ծրագրային ապահովման միջոցով: Նմանապես, եթե ընդհատման մեկ կամ մի քանի պայմաններ առաջանան, մինչ գլոբալ ընդհատման ակտիվացման բիթը ջնջված է, համապատասխան ընդհատման դրոշակ(ներ)ը կսահմանվեն և կհիշվեն մինչև գլոբալ ընդհատման ակտիվացման բիթը սահմանվի, և այնուհետև կկատարվի առաջնահերթության կարգով:

Երկրորդ տեսակի ընդհատումները կգործարկվեն այնքան ժամանակ, քանի դեռ առկա է ընդհատման պայմանը: Այս ընդհատումները պարտադիր չէ, որ ունենան ընդհատման դրոշակներ: Եթե ​​ընդհատման պայմանը անհետանում է նախքան ընդհատումը միացնելը, ընդհատումը չի գործարկվի:

Երբ AVR-ն դուրս է գալիս ընդհատումից, այն միշտ կվերադառնա հիմնական ծրագիր և կկատարի ևս մեկ հրահանգ, նախքան սպասվող ընդհատումը սպասարկվելը:

Նկատի ունեցեք, որ Կարգավիճակի գրանցամատյանը ինքնաբերաբար չի պահվում ընդհատումների ռեժիմ մուտքագրելիս և չի վերականգնվում ընդհատման ռեժիմից վերադառնալիս: Սա պետք է կարգավորվի ծրագրային ապահովման միջոցով:

Ընդհատումները անջատելու համար CLI հրահանգն օգտագործելիս, ընդհատումները անմիջապես կանջատվեն: CLI հրահանգից հետո ոչ մի ընդհատում չի կատարվի, նույնիսկ եթե այն տեղի է ունենում CLI հրահանգի հետ միաժամանակ: Հետևյալ նախկինample-ն ցույց է տալիս, թե ինչպես դա կարող է օգտագործվել՝ ժամանակավորված EEPROM գրելու հաջորդականության ընթացքում ընդհատումներից խուսափելու համար:

Համագումարի օրենսգիրք Example
r16-ում, SREG; պահպանել SREG արժեքը

cli ; անջատել ընդհատումները ժամանակավորված հաջորդականության ընթացքում

sbi EECR, EEMPE ; սկսել EEPROM գրել

sbi EECR, EEPE

դուրս SREG, r16; վերականգնել SREG արժեքը (I-bit)

C ծածկագիր Example
char cSREG;

cSREG = SREG; /* պահպանել SREG արժեքը */

/* անջատել ընդհատումները ժամանակավորված հաջորդականության ընթացքում */

_CLI ();

EECR |= (1<

EECR |= (1<

SREG = cSREG; /* վերականգնել SREG արժեքը (I-bit) */

SEI-ի հրահանգն օգտագործելիս ընդհատումները միացնելու համար, SEI-ին հաջորդող հրահանգը կկատարվի նախքան սպասվող ընդհատումները, ինչպես ցույց է տրված այս նախկինում.ampլե.

Համագումարի օրենսգիրք Example
sei ; սահմանել Համաշխարհային ընդհատումը միացնել

քնել; մտնել քուն՝ սպասելով ընդհատման

; Ծանոթագրություն. կմտնի քնից առաջ ցանկացած սպասող

; ընդհատում(ներ)

C ծածկագիր Example
_SEI (); /* սահմանել գլոբալ ընդհատումը միացնել */

_ՔՆԵԼ(); /* մտնել քուն՝ սպասելով ընդհատման */

/* Ծանոթագրություն. կմտնի քնի ցանկացած սպասող ընդհատում(ներ) */

Ընդհատման արձագանքման ժամանակը

Ընդհատումների կատարման պատասխանը բոլոր միացված AVR ընդհատումների համար նվազագույնը չորս ժամացույցի ցիկլ է: Չորս ժամացույցից հետո գործարկվում է Ծրագրի վեկտորի հասցեն փաստացի ընդհատումների մշակման ռեժիմի համար: Այս չորս ժամացույցի ժամանակահատվածում Ծրագրի հաշվիչը դրվում է Stack-ի վրա: Վեկտորը սովորաբար ցատկում է ընդհատման ռեժիմին, և այս թռիչքը տեւում է երեք ժամացույցի ցիկլ: Եթե ​​ընդհատում է տեղի ունենում բազմակի ցիկլի հրահանգի կատարման ժամանակ, ապա այս հրահանգն ավարտվում է ընդհատման սպասարկումից առաջ: Եթե ​​ընդհատում է տեղի ունենում, երբ MCU-ը քնի ռեժիմում է, ընդհատման կատարման արձագանքման ժամանակը ավելանում է չորս ժամացույցի ցիկլով: Այս աճը գալիս է ի լրումն ընտրված քնի ռեժիմից գործարկման ժամանակի:

Ընդհատումների մշակման ռեժիմից վերադարձը տևում է չորս ժամացույց: Այս չորս ժամացույցի ցիկլերի ընթացքում Ծրագրի հաշվիչը (երկու բայթ) դուրս է գալիս Stack-ից, Stack-ի ցուցիչը ավելանում է երկուով, և I-bit-ը SREG-ում սահմանվում է:

AVR հիշողություններ

Այս բաժինը նկարագրում է ATtiny25/45/85 տարբեր հիշողությունները: AVR ճարտարապետությունն ունի երկու հիմնական հիշողության տարածք՝ Տվյալների հիշողությունը և Ծրագրի հիշողության տարածքը: Բացի այդ, ATtiny25/45/85-ն ունի EEPROM հիշողություն տվյալների պահպանման համար: Հիշողության բոլոր երեք տարածքները գծային են և կանոնավոր:

Ներհամակարգային վերածրագրավորվող ֆլեշ ծրագրի հիշողություն

ATtiny25/45/85-ը պարունակում է 2/4/8K բայթ On-chip In-System Reprogrammable Flash հիշողություն՝ ծրագրերի պահպանման համար: Քանի որ բոլոր AVR հրահանգները ունեն 16 կամ 32 բիթ լայնություն, Flash-ը կազմակերպված է որպես 1024/2048/4096 x 16:

Ֆլեշ հիշողությունն ունի առնվազն 10,000 գրելու/ջնջման ցիկլերի դիմացկունություն: ATtiny25/45/85 Ծրագրային հաշվիչը (PC) ունի 10/11/12 բիթ լայնություն՝ այդպիսով հասցեագրելով 1024/2048/4096 Ծրագրի հիշողության վայրերը: «Հիշողության ծրագիր- ming» էջ 147 պարունակում է մանրամասն նկարագրություն Flash տվյալների սերիական ներբեռնման մասին՝ օգտագործելով SPI կապում:

Մշտական ​​աղյուսակները կարող են տեղաբաշխվել Ծրագրի հիշողության ողջ հասցեների տարածության մեջ (տես LPM – Բեռնել ծրագրի հիշողության հրահանգների նկարագրությունը):

Նկար 5-1. Ծրագրի հիշողության քարտեզ Հիշողության քարտեզ

SRAM տվյալների հիշողություն

Նկար 5-2 ցույց է տալիս, թե ինչպես է կազմակերպված ATtiny25/45/85 SRAM հիշողությունը:

Ստորին 224/352/607 Տվյալների հիշողության վայրերը հասցեագրում են երկու ռեգիստրը File, I/O հիշողությունը և ներքին տվյալների SRAM-ը: Առաջին 32 վայրերը հասցեագրված են ռեգիստրին File, հաջորդ 64 վայրերում ստանդարտ I/O հիշողությունը, իսկ վերջին 128/256/512 տեղանքները հասցեագրում են ներքին տվյալների SRAM-ին:

Տվյալների հիշողության հասցեավորման հինգ տարբեր ռեժիմները ներառում են՝ ուղղակի, անուղղակի տեղաշարժով, անուղղակի, անուղղակի՝ նախնական նվազումով և անուղղակի՝ հետաճողով: Գրանցամատյանում File, R26-ից մինչև R31 ռեգիստրները ներկայացնում են անուղղակի հասցեավորման ցուցիչի ռեգիստրները:

Ուղղակի հասցեավորումը հասնում է ամբողջ տվյալների տարածությանը:

Անուղղակի տեղաշարժով ռեժիմը հասնում է 63 հասցեի տեղակայման՝ Y- կամ Z- ռեգիստրի կողմից տրված բազային հասցեից:

Երբ օգտագործում եք ռեգիստրի անուղղակի հասցեավորման ռեժիմներ՝ ավտոմատ նախնական նվազմամբ և հետաճեցմամբ, X, Y և Z հասցեների ռեգիստրները նվազում կամ ավելանում են:

32 ընդհանուր նշանակության աշխատանքային ռեգիստրները, 64 I/O գրանցամատյանները և ATtiny128/256/512-ում 25/45/85 բայթ ներքին տվյալների SRAM-ը հասանելի են բոլոր հասցեավորման այս ռեժիմների միջոցով: Ռեգիստրը File նկարագրված է «Գեն- նախկին նպատակի գրանցամատյան 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 Read/Write Access

EEPROM մուտքի ռեգիստրները հասանելի են I/O տարածքում:

EEPROM-ի համար գրելու մուտքի ժամանակները նշված են Աղյուսակ 5-1 էջ 21-ում. Ինքնորոշման գործառույթը, սակայն, թույլ է տալիս օգտվողի ծրագրակազմին հայտնաբերել, թե երբ կարող է գրվել հաջորդ բայթը: Եթե ​​օգտագործողի կոդը պարունակում է հրահանգներ, որոնք գրում են EEPROM-ը, ապա պետք է որոշ նախազգուշական միջոցներ ձեռնարկվեն: Խիստ ֆիլտրացված սնուցման աղբյուրներում VCC-ն, ամենայն հավանականությամբ, դանդաղ կբարձրանա կամ իջնի

Միացում/հանգեցում: Սա հանգեցնում է նրան, որ սարքը որոշ ժամանակով աշխատում է ծավալովtage ավելի ցածր, քան սահմանված է որպես նվազագույնը օգտագործվող ժամացույցի հաճախականության համար: Տեսնել «EEPROM-ի կոռուպցիայի կանխարգելում» էջ 19-ում մանրամասների համար, թե ինչպես խուսափել խնդիրներից այս իրավիճակներում:

EEPROM-ի ոչ միտումնավոր գրությունները կանխելու համար պետք է հետևել գրելու հատուկ ընթացակարգին: Վերաբերել «Ատոմային Բայթ ծրագրավորում» էջում 17 և «Split Byte Programming» էջ 17 այս մասին մանրամասների համար:

Երբ EEPROM-ը կարդացվում է, պրոցեսորը կանգ է առնում չորս ժամացույցի ցիկլով մինչև հաջորդ հրահանգը կատարելը: Երբ EEPROM-ը գրված է, պրոցեսորը կանգ է առնում երկու ժամացույցի ցիկլով, մինչև հաջորդ հրահանգը կատարվի:

Ատոմային բայթ ծրագրավորում

Ատոմային բայթ ծրագրավորման օգտագործումը ամենապարզ ռեժիմն է: EEPROM-ում բայթ գրելիս օգտատերը պետք է հասցեն գրի EEAR ռեգիստրում, իսկ տվյալները՝ EEDR ռեգիստրում: Եթե ​​EEPMn բիթերը զրո են, EEPE գրելը (EEMPE գրելուց հետո չորս ցիկլերի ընթացքում) կգործարկի ջնջման/գրելու գործողությունը: Ե՛վ ջնջման, և՛ գրելու ցիկլը կատարվում է մեկ գործողությամբ, և ծրագրավորման ընդհանուր ժամանակը տրվում է Աղյուսակ 5-1 էջ 21-ում. EEPE բիթը մնում է սահմանված, մինչև ջնջման և գրելու գործողությունները ավարտվեն: Մինչ սարքը զբաղված է ծրագրավորմամբ, հնարավոր չէ որևէ այլ EEPROM գործողություն կատարել:

Split Byte ծրագրավորում

Հնարավոր է ջնջել և գրել ցիկլը բաժանել երկու տարբեր գործողությունների: Սա կարող է օգտակար լինել, եթե համակարգը պահանջում է մուտքի կարճ ժամանակ՝ որոշակի սահմանափակ ժամանակահատվածի համար (սովորաբար, եթե էլեկտրամատակարարումը voltagե ընկնում): Առաջ գնալու համար tagԱյս մեթոդի ե, պահանջվում է, որ գրվող վայրերը ջնջվեն նախքան գրելու գործողությունը: Բայց քանի որ ջնջման և գրելու գործողությունները բաժանված են, հնարավոր է ջնջել գործողություններ, երբ համակարգը թույլ է տալիս կատարել ժամանակի կարևոր գործողություններ (սովորաբար Power-up-ից հետո):

Ջնջել

Բայթը ջնջելու համար հասցեն պետք է գրվի EEAR-ում: Եթե ​​EEPMn բիթերը 0b01 են, EEPE գրելը (EEMPE գրվելուց հետո չորս ցիկլերի ընթացքում) կգործարկի միայն ջնջման գործողությունը (ծրագրավորման ժամանակը նշված է Աղյուսակ 5-1 էջ 21) EEPE բիթը մնում է կարգավորված, մինչև ջնջման գործողությունն ավարտվի: Մինչ սարքը զբաղված է ծրագրավորմամբ, հնարավոր չէ կատարել որևէ այլ EEPROM գործողություն:

Գրել

Տեղադրություն գրելու համար օգտատերը պետք է հասցեն գրի EEAR-ում, իսկ տվյալները՝ EEDR-ում: Եթե ​​EEPMn բիթերը 0b10 են, EEPE գրելը (EEMPE գրվելուց հետո չորս ցիկլերի ընթացքում) կգործարկի միայն գրելու գործողությունը (ծրագրավորման ժամանակը տրված է. Աղյուսակ 5-1 էջ 21-ում) EEPE բիթը մնում է սահմանված, մինչև գրելու գործողությունն ավարտվի: Եթե ​​գրվող վայրը չի ջնջվել նախքան գրելը, ապա պահվող տվյալները պետք է համարվեն կորած: Մինչ սարքը զբաղված է ծրագրավորմամբ, հնարավոր չէ որևէ այլ EEPROM գործողություն կատարել:

Կալիբրացված օսցիլյատորն օգտագործվում է EEPROM-ի մուտքերը ժամանակավորելու համար: Համոզվեք, որ Oscillator հաճախականությունը համապատասխանում է նկարագրված պահանջներին «OSCCAL – Oscillator Calibration Register» էջ 31.

Հետևյալ կոդը օրինակamples ցույց է տալիս մեկ հավաք և մեկ C ֆունկցիա՝ EEPROM-ի ջնջման, գրելու կամ ատոմային գրելու համար: Նախկինamples-ը ենթադրում է, որ ընդհատումները վերահսկվում են (օրինակ՝ անջատելով ընդհատումները գլոբալ մասշտաբով), այնպես որ այս գործառույթների կատարման ընթացքում որևէ ընդհատում տեղի չի ունենա:

Համագումարի օրենսգիրք Example
EEPROM_write:

; Սպասեք նախորդ գրառման ավարտին

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

; Սկսեք eeprom գրել՝ EEPE-ն սահմանելով

sbi EECR,EEPE

ետ

C ծածկագիր Example
void EEPROM_write (unsigned char ucAddress, unsigned char ucData)

{

/* Սպասեք նախորդ գրառման ավարտին */ մինչ (EECR & (1<

;

/* Սահմանել ծրագրավորման ռեժիմը */

EECR = (0<

/* Ստեղծեք հասցեների և տվյալների ռեգիստրներ */ EEAR = ucAddress;

EEDR = ucData;

/* Գրեք տրամաբանական մեկը EEMPE-ին */

EECR |= (1<

/* Սկսեք eeprom գրել՝ կարգավորելով EEPE */

EECR |= (1<

}

Հաջորդ ծածկագիրը օրինակamples ցույց է տալիս հավաքման և C ֆունկցիաները՝ EEPROM-ը կարդալու համար: Նախկինamples-ը ենթադրում է, որ ընդհատումները վերահսկվում են այնպես, որ այս գործառույթների կատարման ընթացքում ընդհատումներ տեղի չունենան:

Համագումարի օրենսգիրք Example
EEPROM_read:

; Սպասեք նախորդ գրառման ավարտին

sbic EECR,EEPE

rjmp EEPROM_read

; Տեղադրեք հասցեն (r18:r17) հասցեների ռեգիստրում

դուրս EEARH, r18

դուրս EEARL, r17

; Սկսեք eeprom կարդալ՝ գրելով EERE

sbi EECR,EERE

; Կարդացեք տվյալները տվյալների ռեգիստրից

r16-ում, EEDR

ետ

C ծածկագիր Example
unsigned char EEPROM_read (unsigned char ucAddress)

{

/* Սպասեք նախորդ գրառման ավարտին */

մինչդեռ (EECR & (1<

;

/* Ստեղծեք հասցեների ռեգիստր */ EEAR = ucAddress;

/* Սկսել eeprom-ի ընթերցումը` գրելով EERE */

EECR |= (1<

/* Վերադարձնել տվյալները տվյալների ռեգիստրից */

վերադարձի EEDR;

}

EEPROM կոռուպցիայի կանխարգելում

Ցածր VCC-ի ժամանակաշրջաններում EEPROM-ի տվյալները կարող են խաթարվել, քանի որ մատակարարման ծավալըtage-ը չափազանց ցածր է, որպեսզի CPU-ն և EEPROM-ը ճիշտ աշխատեն: Այս խնդիրները նույնն են, ինչ EEPROM օգտագործող տախտակի մակարդակի համակարգերի համար, և պետք է կիրառվեն նույն նախագծային լուծումները:

EEPROM տվյալների կոռուպցիան կարող է առաջանալ երկու իրավիճակի պատճառով, երբ voltage-ը չափազանց ցածր է: Նախ, EEPROM-ում սովորական գրելու հաջորդականությունը պահանջում է նվազագույն ծավալtagե ճիշտ գործելու համար: Երկրորդ, պրոցեսորն ինքնին կարող է սխալ կատարել հրահանգները, եթե մատակարարման ծավալըtage-ը չափազանց ցածր է:

EEPROM տվյալների կոռուպցիան հեշտությամբ կարելի է խուսափել՝ հետևելով այս նախագծային առաջարկությանը.

Պահպանեք AVR RESET-ը ակտիվ (ցածր) սնուցման անբավարար ծավալի ժամանակաշրջաններումtagե. Դա կարելի է անել՝ միացնելով ներքին շագանակագույն ելքային դետեկտորը (BOD): Եթե ​​ներքին BOD-ի հայտնաբերման մակարդակը չի համապատասխանում

անհրաժեշտ հայտնաբերման մակարդակը, կարող է օգտագործվել արտաքին ցածր VCC վերակայման պաշտպանության միացում: Եթե ​​գրելու գործողությունն ընթացքի մեջ է, երբ վերակայում է տեղի ունենում, գրելու գործողությունը կավարտվի, պայմանով, որ սնուցման ծավալըtage- ը բավարար է:

I/O հիշողություն

ATtiny25/45/85-ի I/O տարածության սահմանումը ցույց է տրված «Գրանցման ամփոփում» էջ 200.

Բոլոր ATtiny25/45/85 I/O-ները և ծայրամասային սարքերը տեղադրված են I/O տարածության մեջ: Բոլոր I/O վայրերը կարող են հասանելի լինել LD/LDS/LDD և ST/STS/STD հրահանգներով՝ փոխանցելով տվյալները ընդհանուր նշանակության 32 աշխատանքային ռեգիստրների և I/O տարածության միջև: 0x00 – 0x1F հասցեների տիրույթում մուտքի/ելքի ռեգիստրները ուղղակիորեն հասանելի են բիթով՝ օգտագործելով SBI և CBI հրահանգները: Այս ռեգիստրներում առանձին բիթերի արժեքը կարելի է ստուգել՝ օգտագործելով SBIS և SBIC հրահանգները: Լրացուցիչ մանրամասների համար տես հրահանգների հավաքածուի բաժինը: I/O հատուկ հրամանները IN և OUT օգտագործելիս պետք է օգտագործվեն 0x00 – 0x3F I/O հասցեները: I/O ռեգիստրները որպես տվյալների տարածություն հասցեագրելիս՝ օգտագործելով LD և ST հրահանգները, այս հասցեներին պետք է ավելացվի 0x20:

Ապագա սարքերի հետ համատեղելիության համար վերապահված բիթերը պետք է գրվեն զրոյի, եթե հասանելի լինեն: Վերապահված I/O հիշողության հասցեները երբեք չպետք է գրվեն:

Կարգավիճակի դրոշներից մի քանիսը մաքրվում են՝ դրանցում տրամաբանական նշան գրելով: Նկատի ունեցեք, որ CBI-ի և SBI-ի հրահանգները կգործեն միայն նշված բիթով և, հետևաբար, կարող են օգտագործվել նման կարգավիճակի դրոշներ պարունակող ռեգիստրների վրա: CBI-ի և SBI-ի հրահանգներն աշխատում են միայն 0x00-ից մինչև 0x1F ռեգիստրների հետ:

I/O և ծայրամասային սարքերի կառավարման ռեգիստրները բացատրվում են հետագա բաժիններում:

Գրանցման նկարագրություն

EEARH – EEPROM Հասցեների գրանցում

Բիթ 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
Կարդալ/գրել R R R R R R R R/W
Սկզբնական արժեքը 0 0 0 0 0 0 0 X/0

Բիթ 7:1 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված են ապագա օգտագործման համար և միշտ կարդում են որպես զրո:

Բիթ 0 – EEAR8. EEPROM հասցե

Սա ATtiny85-ի ամենակարևոր EEPROM հասցեի բիթն է: Ավելի քիչ EEPROM ունեցող սարքերում, այսինքն՝ ATtiny25/ATtiny45, այս բիթը պահպանված է և միշտ կարդում է զրո: EEPROM Հասցեների ռեգիստրի (EEAR) սկզբնական արժեքը որոշված ​​չէ, և, հետևաբար, պետք է գրվի համապատասխան արժեք մինչև EEPROM մուտք գործելը:

EEARL – EEPROM հասցեների գրանցամատյան

Բիթ

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
Հետևի / Գրել 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 մուտք գործելը:

Bits 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-ը պարունակում է այն տվյալները, որոնք կարդացվել են

EEPROM-ը EEAR-ի կողմից տրված հասցեում:

 

5.5.4 EECR – EEPROM Control Register

Բիթ 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 ԶԱՐԳԱԼԻԿ EEMPE EEPE EERE 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: Reserved Bit

Այս բիթը վերապահված է հետագա օգտագործման համար և միշտ կկարդա որպես 0 ATtiny25/45/85-ում: Ապագա AVR սարքերի հետ համատեղելիության համար այս բիթը միշտ գրեք զրոյի: Ընթերցելուց հետո դիմակավորեք սա։

Bit 6 – Res: Reserved Bit

Այս բիթը պահպանված է ATtiny25/45/85-ում և միշտ կկարդա որպես զրո:

Բիթ 5:4 – EEPM[1:0]. EEPROM ծրագրավորման ռեժիմի բիթ

EEPROM ծրագրավորման ռեժիմի բիթերի պարամետրը սահմանում է, թե որ ծրագրավորման գործողությունը կգործարկվի EEPE գրելիս: Հնարավոր է ծրագրավորել տվյալները մեկ ատոմային գործողության մեջ (ջնջել հին արժեքը և ծրագրավորել նոր արժեքը) կամ ջնջել և գրել գործողությունները բաժանել երկու տարբեր գործողությունների: Ծրագրավորման ժամանակները տարբեր ռեժիմների համար ցուցադրված են Աղյուսակ 5-1. Մինչ EEPE-ը սահմանված է, ցանկացած գրություն EEPMn-ին անտեսվելու է: Վերակայման ժամանակ EEPMn բիթերը կվերակայվեն մինչև 0b00, եթե EEPROM-ը զբաղված չէ ծրագրավորմամբ:

Աղյուսակ 5-1. EEPROM ռեժիմի բիթերը

EEPM1 EEPM0 Ծրագրավորման ժամանակ Գործողություն
0 0 3.4 ms Ջնջել և գրել մեկ գործողությամբ (Atomic Operation)
0 1 1.8 ms Միայն ջնջել
1 0 1.8 ms Միայն գրել
1 1 Պահպանված է հետագա օգտագործման համար

Բիթ 3 – EERIE. EEPROM Ready Interrupt Aable

EERIE մեկին գրելը հնարավորություն է տալիս EEPROM Ready ընդհատումը, եթե SREG-ում I-bit-ը սահմանված է: EERIE-ը զրոյի վրա գրելը անջատում է ընդհատումը: EEPROM Ready ընդհատումը առաջացնում է մշտական ​​ընդհատում, երբ ոչ անկայուն հիշողությունը պատրաստ է ծրագրավորման:

Բիթ 2 – EEMPE. EEPROM Master Program Միացնել

EEMPE բիթը որոշում է՝ EEPE մեկին գրելը ազդեցություն կունենա, թե ոչ:

Երբ EEMPE-ը միացված է, EEPE-ի կարգավորումը չորս ժամացույցի ընթացքում կծրագրավորի EEPROM-ը ընտրված հասցեում: Եթե ​​EEMPE-ը զրոյական է, EEPE-ի կարգավորումն ազդեցություն չի ունենա: Երբ EEMPE-ը գրվել է մեկին ծրագրային ապահովման միջոցով, սարքաշարը չորս ժամացույցի ցիկլից հետո բիթը զրոյացնում է:

Բիթ 1 – EEPE: EEPROM ծրագիրը միացնել

EEPROM ծրագրի միացման ազդանշանը EEPE-ն EEPROM-ի ծրագրավորման միացման ազդանշանն է: Երբ EEPE գրված է, EEPROM-ը կծրագրավորվի ըստ EEPMn բիթերի կարգավորումների: EEMPE բիթը պետք է գրվի մեկին, նախքան տրամաբանականը գրվի EEPE-ին, հակառակ դեպքում ոչ մի EEPROM գրություն տեղի չի ունենում: Երբ գրելու մուտքի ժամանակը լրացել է, EEPE բիթը մաքրվում է սարքաշարով: Երբ EEPE-ն դրված է, պրոցեսորը կանգ է առնում երկու ցիկլով՝ մինչև հաջորդ հրահանգը կատարելը:

Բիթ 0 – EERE. EEPROM Read Aable

EEPROM Read Enable Signal – EERE – EEPROM-ի ընթերցվող ստրոբն է: Երբ ճիշտ հասցեն ստեղծվում է EEAR ռեգիստրում, EERE բիթը պետք է գրվի մեկին, որպեսզի գործարկվի EEPROM ընթերցումը: EEPROM-ի ընթերցման հասանելիությունը պահանջում է մեկ հրահանգ, և պահանջվող տվյալները հասանելի են անմիջապես: Երբ EEPROM-ը կարդացվում է, պրոցեսորը կանգ է առնում չորս ցիկլով՝ մինչև հաջորդ հրահանգը կատարելը: Օգտագործողը պետք է ուսումնասիրի EEPE բիթը՝ կարդալու գործողությունը սկսելուց առաջ: Եթե ​​գրելու գործողությունն ընթացքի մեջ է, ապա հնարավոր չէ ոչ կարդալ EEPROM-ը, ոչ էլ փոխել EEAR ռեգիստրը:

Համակարգի ժամացույցի և ժամացույցի ընտրանքներ

Ժամացույցի համակարգեր և դրանց բաշխում

Ժամացույցի բաշխում

CPU Ժամացույց

CPU-ի ժամացույցը ուղղորդվում է դեպի համակարգի այն մասերը, որոնք վերաբերում են AVR միջուկի աշխատանքին: Օրինակ՝ampՆման մոդուլների տեսակներն են Ընդհանուր նշանակության ռեգիստրը File, Status Register-ը և Stack Pointer-ը պահող Տվյալների հիշողությունը: CPU-ի ժամացույցի դադարեցումը խանգարում է միջուկին կատարել ընդհանուր գործողություններ և հաշվարկներ:

I/O ժամացույց – clkI/O

I/O ժամացույցն օգտագործվում է I/O մոդուլների մեծամասնության կողմից, օրինակ՝ Timer/Counter: I/O ժամացույցն օգտագործվում է նաև External Interrupt մոդուլի կողմից, սակայն նկատի ունեցեք, որ որոշ արտաքին ընդհատումներ հայտնաբերվում են ասինխրոն տրամաբանությամբ, ինչը թույլ է տալիս հայտնաբերել այդպիսի ընդհատումները, նույնիսկ եթե I/O ժամացույցը դադարեցված է:

Flash Ժամացույց – clkFLASH

Flash ժամացույցը վերահսկում է Flash ինտերֆեյսի աշխատանքը: Flash ժամացույցը սովորաբար ակտիվ է CPU-ի ժամացույցի հետ միաժամանակ:

ADC Ժամացույց – clkADC

ADC-ին տրամադրվում է հատուկ ժամացույցի տիրույթ: Սա թույլ է տալիս դադարեցնել պրոցեսորի և I/O ժամացույցները՝ նվազեցնելու թվային սխեմաների կողմից առաջացած աղմուկը: Սա տալիս է ADC-ի փոխակերպման ավելի ճշգրիտ արդյունքներ:

Ներքին PLL արագ ծայրամասային ժամացույցի ստեղծման համար – clkPCK

Ներքին PLL-ը ATtiny25/45/85-ում առաջացնում է ժամացույցի հաճախականություն, որը 8 անգամ բազմապատկվում է աղբյուրի մուտքագրումից: Լռելյայնորեն, PLL-ն օգտագործում է ներքին, 8.0 ՄՀց հաճախականությամբ RC օսլիլատորի ելքը որպես աղբյուր: Այլապես, եթե PLLCSR-ի LSM-ի բիթը դրված է, PLL-ը կօգտագործի RC օսլիլատորի ելքը՝ բաժանված երկուսի: Այսպիսով, PLL-ի ելքը, արագ ծայրամասային ժամացույցը 64 ՄՀց է: Արագ ծայրամասային ժամացույցը կամ դրանից նախապես չափված ժամացույցը կարող է ընտրվել որպես ժամացույցի աղբյուր Timer/Counter1-ի համար կամ որպես համակարգային ժամացույց: Տեսնել Նկար 6-2. Ծայրամասային արագ ժամացույցի հաճախականությունը բաժանվում է երկուսի, երբ սահմանվում է PLLCSR-ի LSM-ը, ինչի արդյունքում ժամացույցի հաճախականությունը կազմում է 32 ՄՀց: Նկատի ունեցեք, որ LSM-ը չի կարող սահմանվել, եթե PLLCLK-ն օգտագործվում է որպես համակարգի ժամացույց:

Նկար 6-2. PCK ժամացույցի համակարգ. PCK ժամացույց

PLL-ը կողպված է RC oscillator-ի վրա, և RC oscillator-ի կարգավորումը OSCCAL ռեգիստրի միջոցով կկարգավորի արագ ծայրամասային ժամացույցը միաժամանակ: Այնուամենայնիվ, նույնիսկ եթե RC տատանվողը տեղափոխվում է 8 ՄՀց-ից բարձր հաճախականությամբ, ծայրամասային ժամացույցի արագ հաճախականությունը հագեցնում է 85 ՄՀց (վատագույն դեպքում) և մնում է տատանվող առավելագույն հաճախականությամբ: Հարկ է նշել, որ PLL-ն այս դեպքում այլևս կողպված չէ RC oscillator ժամացույցով: Հետևաբար, խորհուրդ է տրվում OSCCAL կարգավորումները չվերցնել 8 ՄՀց-ից բարձր հաճախականության վրա՝ PLL-ը ճիշտ աշխատանքային տիրույթում պահելու համար:

Ներքին PLL-ը միացված է, երբ՝

PLLCSR գրանցամատյանում PLLE բիթը սահմանված է:

CKSEL ապահովիչը ծրագրավորված է «0001»:

CKSEL ապահովիչը ծրագրավորված է «0011»:

PLLCSR բիթ PLOCK-ը սահմանվում է, երբ PLL կողպված է: Ե՛վ ներքին RC տատանվողը, և՛ PLL-ն անջատված են անջատման և սպասման քնի ռեժիմներում:

Ներքին PLL ATtiny15 Համատեղելիության ռեժիմում

Քանի որ ATtiny25/45/85-ը միգրացիոն սարք է ATtiny15-ի օգտատերերի համար, կա ATtiny15 համատեղելիության ռեժիմ հետընթաց համատեղելիության համար: ATtiny15 համատեղելիության ռեժիմն ընտրվում է CKSEL ապահովիչները «0011» ծրագրավորելով:

ATtiny15 համատեղելիության ռեժիմում ներքին RC տատանվող հաճախականությունը չափավորվում է մինչև 6.4 ՄՀց, իսկ PLL-ի բազմապատկման գործակիցը սահմանվում է 4x: Տեսնել Նկար 6-3. Այս ճշգրտումներով ժամացույցի համակարգը համատեղելի է ATtiny15-ի հետ, և արդյունքում արագ ծայրամասային ժամացույցը ունի 25.6 ՄՀց հաճախականություն (նույնը, ինչ ATtiny15-ում):

Նկար 6-3. PCK ժամացույցի համակարգ ATtiny15 Համատեղելիության ռեժիմում: Clամացույցի համակարգ

Ամացույցի աղբյուրներ

Սարքն ունի հետևյալ ժամացույցի աղբյուրի ընտրանքները, որոնք ընտրվում են Flash Fuse բիթերով, ինչպես ցույց է տրված ստորև: Ընտրված աղբյուրից ժամացույցը մուտքագրվում է AVR ժամացույցի գեներատոր և ուղղորդվում համապատասխան մոդուլներին:

Աղյուսակ 6-1. Սարքի ժամացույցի ընտրանքներ Ընտրեք

Սարքի ժամացույցի տարբերակ CKSEL [3:0](1)
Արտաքին ժամացույց (տես էջ 26) 0000
Բարձր հաճախականության PLL ժամացույց (տես էջ 26) 0001
Կալիբրացված ներքին օսցիլատոր (տես էջ 27) 0010(2)
Կալիբրացված ներքին օսցիլատոր (տես էջ 27) 0011(3)
Ներքին 128 կՀց տատանիչ (տես էջ 28) 0100
Ցածր հաճախականության բյուրեղյա տատանիչ (տես էջ 29) 0110
Բյուրեղյա օսցիլատոր / Կերամիկական ռեզոնատոր (տես էջ 29) 1000-1111
Վերապահված 0101, 0111

Բոլոր ապահովիչների համար «1» նշանակում է չծրագրավորված, իսկ «0» նշանակում է ծրագրավորված:

Սարքը առաքվում է ընտրված այս տարբերակով:

Սա կընտրի ATtiny15 Համատեղելիության ռեժիմը, որտեղ համակարգի ժամացույցը բաժանվում է չորսի, ինչը հանգեցնում է 1.6 ՄՀց ժամացույցի հաճախականության: Լրացուցիչ տեղեկությունների համար տե՛ս «Calibrated Internal Oscillator» էջ 27.

Ժամացույցի յուրաքանչյուր տարբերակի տարբեր ընտրանքներ տրված են հետևյալ բաժիններում: Երբ պրոցեսորն արթնանում է անջատումից, ընտրված ժամացույցի աղբյուրը օգտագործվում է գործարկման ժամանակի համար՝ ապահովելով Oscillator-ի կայուն աշխատանքը նախքան հրահանգի կատարումը: Երբ պրոցեսորը սկսվում է զրոյացումից, կա լրացուցիչ ուշացում, որը թույլ է տալիս հզորությունը հասնել կայուն մակարդակի՝ նախքան նորմալ շահագործումը սկսելը: Watchdog Oscillator-ն օգտագործվում է գործարկման ժամանակի այս իրական ժամանակի մասի ժամանակացույցի համար: WDT Oscillator ցիկլերի քանակը, որոնք օգտագործվում են յուրաքանչյուր դադարի համար, ցույց է տրված Աղյուսակ 6-2.

Աղյուսակ 6-2. Watchdog Oscillator ցիկլերի քանակը

Մուտքագրեք Time-out Ցիկլերի քանակը
4 ms 512
64 ms 8K (8,192)

Արտաքին ժամացույց

Սարքը արտաքին ժամացույցի աղբյուրից վարելու համար CLKI-ն պետք է վարվի այնպես, ինչպես ցույց է տրված նկարում Նկար 6-4. Սարքը արտաքին ժամացույցի վրա գործարկելու համար CKSEL ապահովիչները պետք է ծրագրավորվեն «00»-ի վրա:

Նկար 6-4. Արտաքին ժամացույցի սկավառակի կազմաձևում

Նկ6.4

Երբ ընտրվում է այս ժամացույցի աղբյուրը, գործարկման ժամանակները որոշվում են SUT ապահովիչներով, ինչպես ցույց է տրված նկարում Աղյուսակ 6-3.

Աղյուսակ 6-3. Արտաքին ժամացույցի ընտրության գործարկման ժամանակներ

SUT[1:0] Գործարկման ժամանակը անջատումից Լրացուցիչ ուշացում Վերակայումից Առաջարկվող օգտագործումը
00 6 ԿԿ 14CK BOD-ը միացված է
01 6 ԿԿ 14CK + 4 ms Արագ աճող հզորություն
10 6 ԿԿ 14CK + 64 ms Դանդաղ աճող հզորություն
11 Վերապահված

Արտաքին ժամացույց կիրառելիս անհրաժեշտ է խուսափել կիրառվող ժամացույցի հաճախականության հանկարծակի փոփոխություններից՝ MCU-ի կայուն աշխատանքն ապահովելու համար: Մեկ ժամացույցի ցիկլից մյուսը 2%-ից ավելի հաճախականության տատանումները կարող են հանգեցնել անկանխատեսելի վարքի: Պահանջվում է ապահովել, որ ժամացույցի հաճախականության նման փոփոխությունների ժամանակ MCU-ն պահվի Reset-ում:

Նկատի ունեցեք, որ System Clock Presale-ը կարող է օգտագործվել ներքին ժամացույցի հաճախականության աշխատաժամանակի փոփոխություններ իրականացնելու համար՝ միաժամանակ ապահովելով կայուն աշխատանք: Վերաբերել «System Clock Prescaler» էջ 31 մանրամասների համար.

Բարձր հաճախականության PLL ժամացույց

Գոյություն ունի ներքին PLL, որն ապահովում է անվանական 64 ՄՀց ժամացույցի արագություն, որը կողպված է RC Oscillator-ին ծայրամասային ժմչփի/հաշվիչի օգտագործման և համակարգի ժամացույցի աղբյուրի համար: Երբ ընտրվում է որպես համակարգի ժամացույցի աղբյուր, CKSEL ապահովիչները ծրագրավորելով «1»-ի վրա, այն բաժանվում է չորսի, ինչպես ցույց է տրված. Աղյուսակ 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 ms 4 ms BOD-ը միացված է

Աղյուսակ 6-5. Գործարկման ժամանակներ բարձր հաճախականության PLL ժամացույցի համար

SUT[1:0] Գործարկման ժամանակը Power Down-ից Լրացուցիչ ուշացում միացման վերակայումից (VCC = 5.0V) Առաջարկվող օգտագործումը
01 14CK + 16K (16384) CK + 4 ms 4 ms Արագ աճող հզորություն
10 14CK + 1K (1024) CK + 64 ms 4 ms Դանդաղ աճող հզորություն
11 14CK + 16K (16384) CK + 64 ms 4 ms Դանդաղ աճող հզորություն

Կալիբրացված ներքին օսցիլատոր

Լռելյայնորեն, ներքին RC Oscillator-ն ապահովում է մոտավոր 8.0 ՄՀց ժամացույց: Չնայած հատtagե և ջերմաստիճանից կախված՝ այս ժամացույցը կարող է շատ ճշգրիտ չափորոշվել օգտագործողի կողմից: Տեսնել «Calibrated Internal RC Oscillator Accu- ռասի» էջ 164 և «Ներքին տատանվող արագություն» էջ 192 լրացուցիչ մանրամասների համար: Սարքը առաքվում է ծրագրավորված CKDIV8 ապահովիչով: Տեսնել «System Clock Prescaler» էջ 31 լրացուցիչ մանրամասների համար:

Այս ժամացույցը կարող է ընտրվել որպես համակարգի ժամացույց՝ ծրագրավորելով CKSEL ապահովիչները, ինչպես ցույց է տրված նկարում Աղյուսակ 6-6 էջում

27. Եթե ​​ընտրվի, այն կաշխատի առանց արտաքին բաղադրիչների: Վերականգնման ընթացքում սարքավորումը բեռնում է նախապես ծրագրավորված տրամաչափման արժեքը OSCCAL ռեգիստրում և դրանով իսկ ավտոմատ կերպով ստուգում է RC Oscillator-ը: Այս չափաբերման ճշգրտությունը ցուցադրվում է որպես գործարանային տրամաչափում Աղյուսակ 21-2 էջ 164-ում.

Փոխելով OSCCAL ռեգիստրը SW-ից, տե՛ս «OSCCAL – Oscillator Calibration Register» էջ 31, հնարավոր է ստանալ ավելի բարձր տրամաչափման ճշգրտություն, քան գործարանային տրամաչափումը։ Այս տրամաչափման ճշգրտությունը ցուցադրվում է որպես User calibration in Աղյուսակ 21-2 էջ 164-ում.

Երբ այս Oscillator-ն օգտագործվում է որպես չիպային ժամացույց, Watchdog Oscillator-ը դեռ կօգտագործվի Watchdog Timer-ի և Reset Time-ի համար: Նախապես ծրագրավորված տրամաչափման արժեքի մասին լրացուցիչ տեղեկությունների համար տես բաժինը «Կալի- bration Bytes» էջ 150.

Ներքին օսցիլյատորը կարող է նաև կարգավորվել 6.4 ՄՀց ժամացույց ապահովելու համար՝ գրելով CKSEL ապահովիչներ «0011» վրա, ինչպես ցույց է տրված նկարում. Աղյուսակ 6-6 ստորև. Այս պարամետրը կոչվում է ATtiny15 Համատեղելիության ռեժիմ և նախատեսված է 6.4 ՄՀց հաճախականությամբ ժամացույցի չափորոշված ​​աղբյուր ապահովելու համար, ինչպես ATtiny15-ում: ATtiny15 Համատեղելիության ռեժիմում PLL-ն օգտագործում է 6.4 ՄՀց հաճախականությամբ աշխատող ներքին օսլիլատորը, որպեսզի ստեղծի 25.6 ՄՀց ծայրամասային ժամացույցի ազդանշան Timer/Counter1-ի համար (տես «8-bit Timer/Counter1 in ATtiny15 Mode» էջում 95) Նշենք, որ աշխատանքի այս ռեժիմում 6.4 ՄՀց ժամացույցի ազդանշանը միշտ բաժանվում է չորսի, ապահովելով 1.6 ՄՀց համակարգի ժամացույց:

Աղյուսակ 6-6. Ներքին տրամաչափված RC Oscillator գործառնական ռեժիմներ

CKSEL [3:0] Անվանական հաճախականություն
0010(1) 8.0 ՄՀց
0011(2) 6.4 ՄՀց

Սարքը առաքվում է ընտրված այս տարբերակով:

Այս պարամետրը կընտրի ATtiny15 Համատեղելիության ռեժիմը, որտեղ համակարգի ժամացույցը բաժանված է չորսի, ինչի արդյունքում ժամացույցի հաճախականությունը 1.6 ՄՀց է:

Երբ կալիբրացված 8 ՄՀց ներքին օսլիլատորը ընտրվում է որպես ժամացույցի աղբյուր, գործարկման ժամանակները որոշվում են SUT ապահովիչներով, ինչպես ցույց է տրված նկարում. Աղյուսակ 6-7 ստորև.

Աղյուսակ 6-7. Ներքին տրամաչափված RC տատանվող ժամացույցի գործարկման ժամանակներ

SUT[1:0] Գործարկման ժամանակը անջատումից Վերակայումից լրացուցիչ ուշացում (VCC = 5.0V) Առաջարկվող օգտագործումը
00 6 ԿԿ 14CK(1) BOD-ը միացված է
01 6 ԿԿ 14CK + 4 ms Արագ աճող հզորություն
10(2) 6 ԿԿ 14CK + 64 ms Դանդաղ աճող հզորություն
11 Վերապահված

1. Եթե RSTDISBL ապահովիչը ծրագրավորված է, գործարկման այս ժամանակը կավելացվի մինչև 14CK + 4 ms, որպեսզի ապահովվի ծրագրավորման ռեժիմի մուտքը:
2. Սարքը առաքվում է ընտրված այս տարբերակով:

ATtiny15 Համատեղելիության ռեժիմում գործարկման ժամանակները որոշվում են SUT ապահովիչներով, ինչպես ցույց է տրված նկարում Աղյուսակ 6-8 ստորև.

Աղյուսակ 6-8. Ներքին տրամաչափված RC տատանվող ժամացույցի գործարկման ժամերը (ATtiny15 ռեժիմում)

SUT[1:0] Գործարկման ժամանակը անջատումից Վերակայումից լրացուցիչ ուշացում (VCC = 5.0V) Առաջարկվող օգտագործումը
00 6 ԿԿ 14CK + 64 ms
01 6 ԿԿ 14CK + 64 ms
10 6 ԿԿ 14CK + 4 ms
11 1 ԿԿ 14CK(1)

Նշում. Եթե RSTDISBL ապահովիչը ծրագրավորված է, գործարկման այս ժամանակը կավելացվի մինչև 14CK + 4 ms՝ ապահովելու համար, որ ծրագրավորման ռեժիմը կարող է մուտք գործել:

Ամփոփելով, ATtiny15 Համատեղելիության ռեժիմի մասին լրացուցիչ տեղեկություններ կարելի է գտնել բաժիններում «Port B (PB5:PB0)» միացված է էջ 2«Ներքին PLL ATtiny15 Համատեղելիության ռեժիմում» 24-րդ էջում«8-բիթանոց ժմչփ/հաշվիչ1 ATtiny15 ռեժիմում» միացված է էջ 95«DebugWIRE-ի սահմանափակումները» էջ 140«Calibration Bytes» էջ 150 և աղյուսակում «Ժամացույցի Prescaler Ընտրել» էջում 33.

Ներքին 128 կՀց տատանիչ

128 կՀց հաճախականությամբ ներքին օսցիլյատորը ցածր էներգիայի տատանիչ է, որն ապահովում է 128 կՀց ժամացույց: Հաճախականությունը անվանական է 3V-ում և 25°C-ում: Այս ժամացույցը կարող է ընտրվել որպես համակարգի ժամացույց՝ ծրագրավորելով CKSEL ապահովիչները «0100»-ի վրա:

Երբ ընտրվում է այս ժամացույցի աղբյուրը, գործարկման ժամանակները որոշվում են SUT ապահովիչներով, ինչպես ցույց է տրված նկարում Աղյուսակ 6-9.

Աղյուսակ 6-9. 128 կՀց ներքին օսցիլատորի գործարկման ժամանակներ

SUT[1:0] Գործարկման ժամանակը անջատումից Լրացուցիչ ուշացում Վերակայումից Առաջարկվող օգտագործումը
00 6 ԿԿ 14CK(1) BOD-ը միացված է
01 6 ԿԿ 14CK + 4 ms Արագ աճող հզորություն
10 6 ԿԿ 14CK + 64 ms Դանդաղ աճող հզորություն
11 Վերապահված

Նշում. Եթե RSTDISBL ապահովիչը ծրագրավորված է, գործարկման այս ժամանակը կավելացվի մինչև 14CK + 4 ms՝ ապահովելու համար, որ ծրագրավորման ռեժիմը կարող է մուտք գործել:

Ցածր հաճախականության բյուրեղյա տատանիչ

Որպես սարքի ժամացույցի աղբյուր օգտագործելու համար 32.768 կՀց հաճախականությամբ ժամացույցի բյուրեղը, Ցածր հաճախականության բյուրեղյա օսցիլատորը պետք է ընտրվի՝ CKSEL ապահովիչները դնելով «0110»: Բյուրեղը պետք է միացված լինի, ինչպես ցույց է տրված նկարում Նկար 6-5. 32.768 կՀց բյուրեղի համար համապատասխան բեռնվածքի հզորություն գտնելու համար խնդրում ենք ծանոթանալ արտադրողի տվյալների թերթիկին:

Երբ ընտրվում է այս օսլիլատորը, գործարկման ժամանակները որոշվում են SUT ապահովիչներով, ինչպես ցույց է տրված նկարում Աղյուսակ 6-10.

Աղյուսակ 6-10. Գործարկման ժամանակներ ցածր հաճախականության բյուրեղյա տատանումների ժամացույցի ընտրության համար

SUT[1:0] Գործարկման ժամանակը Power Down-ից Վերակայումից լրացուցիչ ուշացում (VCC = 5.0V) Առաջարկվող օգտագործումը
00 1K (1024) CK(1) 4 ms Արագ աճող հզորություն կամ BOD միացված է
01 1K (1024) CK(1) 64 ms Դանդաղ աճող հզորություն
10 32K (32768) CK 64 ms Կայուն հաճախականություն գործարկման ժամանակ
11 Վերապահված

Նշում. Այս ընտրանքները պետք է օգտագործվեն միայն այն դեպքում, եթե գործարկման ժամանակ հաճախականության կայունությունը կարևոր չէ:

Ցածր հաճախականության բյուրեղյա օսցիլատորը ապահովում է ներքին բեռնվածքի հզորություն, տես Աղյուսակ 6-11 յուրաքանչյուր TOSC փին:

Աղյուսակ 6-11. Ցածր հաճախականության բյուրեղյա օսցիլատորի հզորությունը

Սարք 32 կՀց Օսկ. Տիպ Գլխարկ (Xtal1/Tosc1) Գլխարկ (Xtal2/Tosc2)
ATtiny25/45/85 System Osc. 16 pF 6 pF

Բյուրեղյա օսցիլատոր / Կերամիկական ռեզոնատոր

XTAL1-ը և XTAL2-ը, համապատասխանաբար, շրջվողի մուտքն ու ելքն են amplifier, որը կարող է կազմաձևվել որպես On-chip Oscillator օգտագործելու համար, ինչպես ցույց է տրված Նկար 6-5. Կարող է օգտագործվել կամ քվարց բյուրեղյա կամ կերամիկական ռեզոնատոր:

C1-ը և C2-ը միշտ պետք է հավասար լինեն ինչպես բյուրեղների, այնպես էլ ռեզոնատորների համար: Կոնդենսատորների օպտիմալ արժեքը կախված է օգտագործվող բյուրեղից կամ ռեզոնատորից, թափառող հզորության քանակից և շրջակա միջավայրի էլեկտրամագնիսական աղմուկից: Բյուրեղների հետ օգտագործման համար կոնդենսատորներ ընտրելու որոշ նախնական ուղեցույցներ տրված են Աղյուսակ 6-12 ստորև. Կերամիկական ռեզոնատորների համար պետք է օգտագործվեն արտադրողի կողմից տրված կոնդենսատորների արժեքները:

Աղյուսակ 6-12. Բյուրեղյա օսցիլատորի գործառնական ռեժիմներ

CKSEL [3:1] Frequency Range (MHz) Բյուրեղների հետ օգտագործման համար 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

Նշումներ. Այս տարբերակը չպետք է օգտագործվի բյուրեղների հետ, միայն կերամիկական ռեզոնատորներով:

Oscillator-ը կարող է գործել երեք տարբեր ռեժիմներով, որոնցից յուրաքանչյուրը օպտիմիզացված է որոշակի հաճախականության տիրույթի համար: Գործողության ռեժիմն ընտրվում է CKSEL[3:1] ապահովիչներով, ինչպես ցույց է տրված նկարում Աղյուսակ 6-12.

CKSEL0 ապահովիչը SUT[1:0] ապահովիչների հետ միասին ընտրում են գործարկման ժամանակները, ինչպես ցույց է տրված նկարում. Աղյուսակ 6-13.

Աղյուսակ 6-13. Բյուրեղյա տատանվող ժամացույցի ընտրության գործարկման ժամանակներ

CKSEL0 SUT[1:0] Գործարկման ժամանակը անջատումից Լրացուցիչ ուշացում Վերակայումից Առաջարկվող օգտագործումը
0 00 258 ԿԿ(1) 14CK + 4 ms Կերամիկական ռեզոնատոր, արագ աճող հզորություն
0 01 258 ԿԿ(1) 14CK + 64 ms Կերամիկական ռեզոնատոր, դանդաղ աճող հզորություն
0 10 1K (1024) CK(2) 14CK Կերամիկական ռեզոնատոր, BOD միացված
0 11 1K (1024)CK(2) 14CK + 4 ms Կերամիկական ռեզոնատոր, արագ աճող հզորություն
1 00 1K (1024)CK(2) 14CK + 64 ms Կերամիկական ռեզոնատոր, դանդաղ աճող հզորություն
1 01 16K (16384) CK 14CK Crystal Oscillator, BOD-ը միացված է
1 10 16K (16384) CK 14CK + 4 ms Բյուրեղյա օսցիլատոր, արագ աճող հզորություն
1 11 16K (16384) CK 14CK + 64 ms Բյուրեղյա օսցիլատոր, դանդաղ աճող հզորություն

Նշումներ

Այս ընտրանքները պետք է օգտագործվեն միայն սարքի առավելագույն հաճախականությանը մոտ չաշխատելու դեպքում և միայն այն դեպքում, երբ գործարկման ժամանակ հաճախականության կայունությունը կարևոր չէ հավելվածի համար: Այս տարբերակները հարմար չեն բյուրեղների համար:

Այս տարբերակները նախատեսված են կերամիկական ռեզոնատորների հետ օգտագործելու համար և կապահովեն հաճախականության կայունությունը գործարկման ժամանակ: Դրանք կարող են օգտագործվել նաև բյուրեղների հետ, երբ սարքի առավելագույն հաճախականությանը մոտ չեն աշխատում, և եթե գործարկման ժամանակ հաճախականության կայունությունը կարևոր չէ հավելվածի համար:

Կանխադրված ժամացույցի աղբյուրը

Սարքը առաքվում է CKSEL = «0010», SUT = «10» և CKDIV8 ծրագրավորված: Հետևաբար, ժամացույցի սկզբնաղբյուրի լռելյայն կարգավորումը ներքին RC տատանիչն է, որն աշխատում է 8 ՄՀց հաճախականությամբ՝ գործարկման ամենաերկար ժամանակով և համակարգի սկզբնական ժամացույցի 8-ի նախնական հաշվարկով, ինչը հանգեցնում է 1.0 ՄՀց համակարգի ժամացույցի: Այս լռելյայն կարգավորումն ապահովում է, որ բոլոր օգտվողները կարող են կատարել իրենց ցանկալի ժամացույցի աղբյուրի կարգավորումները՝ օգտագործելով In-System կամ High-voltage Ծրագրավորող.

Համակարգի ժամացույցի նախնական չափիչ

ATtiny25/45/85 համակարգի ժամացույցը կարելի է բաժանել՝ կարգավորելով «CLKPR – Clock Prescale Register» էջ 32. Այս հատկությունը կարող է օգտագործվել էներգիայի սպառումը նվազեցնելու համար, երբ վերամշակող հզորության պահանջը ցածր է: Սա կարող է օգտագործվել ժամացույցի աղբյուրի բոլոր տարբերակների հետ, և դա կազդի պրոցեսորի և բոլոր համաժամանակյա ծայրամասային սարքերի ժամացույցի հաճախականության վրա: clkI/O, clkADC, clkCPU և clkFLASH բաժանվում են գործակցով, ինչպես ցույց է տրված. Աղյուսակ 6-15 էջ 33-ում.

Անցման ժամանակը

Նախաչափականչի կարգավորումների միջև անցում կատարելիս System Clock Prescaler-ը ապահովում է, որ ժամացույցի համակարգում խափանումներ չլինեն և ոչ մի միջանկյալ հաճախականություն ավելի բարձր լինի ոչ նախորդ պարամետրին համապատասխանող ժամացույցի հաճախականությունից, ոչ էլ նոր պարամետրին համապատասխան ժամացույցի հաճախականությունից:

Ծածանքների հաշվիչը, որն իրականացնում է նախնական սանդղակը, աշխատում է չբաժանվող ժամացույցի հաճախականությամբ, որը կարող է ավելի արագ լինել, քան պրոցեսորի ժամացույցի հաճախականությունը: Հետևաբար, հնարավոր չէ որոշել նախնական մասշտաբի վիճակը, նույնիսկ եթե այն ընթեռնելի էր, և ժամացույցի մեկ բաժանումից մյուսին անցնելու համար անհրաժեշտ ճշգրիտ ժամանակը հնարավոր չէ ճշգրիտ կանխատեսել:

CLKPS-ի արժեքները գրվելուց ի վեր, տևում է T1 + T2 և T1 + 2*T2, մինչև նոր ժամացույցի հաճախականությունը ակտիվանա: Այս միջակայքում արտադրվում են 2 ակտիվ ժամացույցի եզրեր: Այստեղ T1-ը նախորդ ժամացույցի ժամանակաշրջանն է, իսկ T2-ը այն ժամանակաշրջանն է, որը համապատասխանում է նոր prescaler-ի պարամետրին:

Ժամացույցի ելքային բուֆեր

Սարքը կարող է դուրս բերել համակարգի ժամացույցը CLKO փինով (երբ չի օգտագործվում որպես XTAL2 փին): Արդյունքը միացնելու համար CKOUT ապահովիչը պետք է ծրագրավորվի: Այս ռեժիմը հարմար է, երբ չիպային ժամացույցը օգտագործվում է համակարգի վրա այլ սխեմաներ վարելու համար: Նկատի ունեցեք, որ զրոյականացման ժամանակ ժամացույցը չի թողարկվի, և որ ապահովիչը ծրագրավորելու ժամանակ մուտքի/ելքի փին-ի նորմալ աշխատանքը կչեղարկվի: Ներքին RC Oscillator, WDT Oscillator, PLL և արտաքին ժամացույցը (CLKI) կարող են ընտրվել, երբ ժամացույցը թողարկվում է CLKO-ով: Բյուրեղյա տատանվողները (XTAL1, XTAL2) չեն կարող օգտագործվել CLKO-ում ժամացույցի ելքի համար: Եթե ​​օգտագործվում է System Clock Prescaler-ը, ապա ելք է ստանում բաժանված համակարգի ժամացույցը:

Գրանցման նկարագրություն

OSCCAL – Oscillator calibration ռեգիստր

Բիթ 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 ՕՍԿԱԼ
Կարդալ/գրել R/W R/W R/W R/W R/W R/W R/W R/W

Բիթ 7:0 – CAL[7:0]. Օսկիլատորի չափաբերման արժեք

Oscillator calibration ռեգիստրն օգտագործվում է տրամաչափված ներքին 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 Oscillator հաճախականության տիրույթ

OSCCAL արժեքը Տիպիկ ամենացածր հաճախականությունը՝ կապված անվանական հաճախականության հետ Տիպիկ ամենաբարձր հաճախականությունը՝ կապված անվանական հաճախականության հետ
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR – Ժամացույցի նախնական մասշտաբի գրանցում

Բիթ 7 6 5 4 3 2 1 0
0x26 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. Ժամացույցի նախնական սանդղակի փոփոխությունը միացնել

CLKPCE բիթը պետք է գրվի տրամաբանական մեկում, որպեսզի հնարավոր լինի փոխել CLKPS բիթերը: CLKPCE բիթը թարմացվում է միայն այն դեպքում, երբ CLKPR-ի մյուս բիթերը միաժամանակ գրվում են զրոյի: CLKPCE-ն ապարատային միջոցով մաքրվում է գրվելուց չորս ցիկլ հետո կամ երբ գրվում են CLKPS բիթերը: CLKPCE բիթը վերագրանցելով այս ժամանակի վերջնաժամկետի ընթացքում ոչ երկարաձգում է ժամկետը, ոչ էլ մաքրում է CLKPCE բիթը:

Բիթ 6:4 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են ATtiny25/45/85-ում և միշտ կկարդան որպես զրո:

Բիթ 3:0 – CLKPS[3:0]. Ժամացույցի նախաչափիչ Ընտրեք բիթ 3 – 0

Այս բիթերը սահմանում են բաժանման գործակիցը ընտրված ժամացույցի աղբյուրի և ներքին համակարգի ժամացույցի միջև: Այս բիթերը կարող են գրվել գործարկման ժամանակ՝ փոփոխելու ժամացույցի հաճախականությունը՝ հավելվածի պահանջներին համապատասխան: Քանի որ բաժանարարը բաժանում է հիմնական ժամացույցի մուտքագրումը MCU-ին, բոլոր համաժամանակյա ծայրամասային սարքերի արագությունը նվազում է, երբ օգտագործվում է բաժանման գործակիցը: Բաժանման գործոնները բերված են Աղյուսակ 6-15.

Ժամացույցի հաճախականության ոչ միտումնավոր փոփոխություններից խուսափելու համար CLKPS բիթերը փոխելու համար պետք է հետևել գրելու հատուկ ընթացակարգին.

Clock Prescaler Change Enable (CLKPCE) բիթը գրեք մեկին, իսկ մյուս բոլոր բիթերը CLKPR-ում զրոյի:

Չորս ցիկլերի ընթացքում գրեք ցանկալի արժեքը CLKPS-ում, մինչդեռ գրեք զրո CLKPCE-ում:

Ընդհատումները պետք է անջատվեն նախնական մասշտաբի կարգավորումները փոխելիս՝ համոզվելու համար, որ գրելու ընթացակարգը չի ընդհատվում:

CKDIV8 ապահովիչը որոշում է CLKPS բիթերի սկզբնական արժեքը: Եթե ​​CKDIV8-ը չծրագրավորված է, CLKPS բիթերը կվերակայվեն «0000»-ի: Եթե ​​CKDIV8-ը ծրագրավորված է, CLKPS-ի բիթերը վերականգնվում են «0011»-ի` մեկնարկի ժամանակ բաժանման գործակիցը տալով ութ: Այս հատկությունը պետք է օգտագործվի, եթե ընտրված ժամացույցի աղբյուրը ներկա աշխատանքային պայմաններում սարքի առավելագույն հաճախականությունից ավելի բարձր հաճախականություն ունի: Նկատի ունեցեք, որ ցանկացած արժեք կարող է գրվել CLKPS բիթերի վրա՝ անկախ CKDIV8 Fuse-ի կարգավորումից: Հավելվածի ծրագրաշարը պետք է ապահովի, որ բաժանման բավարար գործակիցը կա

ընտրված է, եթե ընտրված ժամացույցի աղբյուրն ունի ավելի բարձր հաճախականություն, քան սարքի առավելագույն հաճախականությունը ներկա աշխատանքային պայմաններում: Սարքը առաքվում է ծրագրավորված CKDIV8 ապահովիչով:

Աղյուսակ 6-15. Ժամացույցի Prescaler Ընտրեք

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] բիթերը ընտրում են, թե որ քնի ռեժիմը (անգործուն, ADC աղմուկի նվազեցում կամ անջատում) կակտիվացվի SLEEP հրահանգով: Տեսնել Աղյուսակ 7-2 ամփոփման համար:

Եթե ​​միացված ընդհատումը տեղի է ունենում, երբ MCU-ը քնի ռեժիմում է, MCU-ն արթնանում է: Այնուհետև MCU-ն դադարեցվում է չորս ցիկլով՝ ի հավելումն գործարկման ժամանակի, կատարում է ընդհատման ռեժիմը և վերսկսում է կատարումը SLEEP-ին հաջորդող հրահանգից: Գրանցամատյանի բովանդակությունը File և SRAM-ն անփոփոխ են, երբ սարքն արթնանում է քնից: Եթե ​​վերակայումը տեղի է ունենում քնի ռեժիմում, MCU-ն արթնանում է և գործարկում Վերականգնման վեկտորից:

Նշում. եթե արթնացման համար օգտագործվում է մակարդակի գործարկված ընդհատում, փոխված մակարդակը պետք է որոշ ժամանակով պահվի՝ MCU-ն արթնացնելու համար (և որպեսզի MCU-ն մտնի ընդհատումների սպասարկման ռեժիմ): Տեսնել «Արտաքին ընդհատումներ» էջ 49 մանրամասների համար.

Պարապ ռեժիմ

Երբ SM[1:0] բիթերը գրվում են 00, SLEEP հրահանգը ստիպում է MCU-ին մտնել անգործուն ռեժիմ՝ կանգնեցնելով պրոցեսորը, բայց թույլ տալով Analog Comparator-ին, ADC-ին, USI-ին, Timer/Counter-ին, Watchdog-ին և ընդհատման համակարգին շարունակել աշխատանքը: ուտել. Այս քնի ռեժիմը հիմնականում դադարեցնում է clkCPU-ն և clkFLASH-ը՝ միաժամանակ թույլ տալով մյուս ժամացույցներին աշխատել:

Անգործության ռեժիմը հնարավորություն է տալիս MCU-ին արթնանալ արտաքին գործարկվող ընդհատումներից, ինչպես նաև ներքին ընդհատումներից, ինչպիսին է Timer Overflow-ը: Եթե ​​անալոգային համեմատիչի ընդհատումից արթնացում չի պահանջվում, անալոգային համեմատիչը կարող է անջատվել՝ կարգավորելով ACD-ի բիթը: «ACSR – Analog Comparator Control and Status Register» էջ 120. Սա կնվազեցնի էլեկտրաէներգիայի սպառումը Պարապ ռեժիմում: Եթե ​​ADC-ն միացված է, փոխակերպումն ինքնաբերաբար կսկսվի, երբ այս ռեժիմը մուտքագրվի:

ADC աղմուկի նվազեցման ռեժիմ

Երբ SM[1:0] բիթերը գրվում են 01, SLEEP հրահանգը ստիպում է MCU-ին մտնել ADC Noise Reduction ռեժիմ՝ կանգնեցնելով պրոցեսորը, բայց թույլ տալով ADC-ին, արտաքին ընդհատումներին և Watchdog-ին շարունակել գործել (եթե միացված է): Այս քնի ռեժիմը դադարեցնում է clkI/O-ն, clkCPU-ն և clkFLASH-ը՝ միաժամանակ թույլ տալով մյուս ժամացույցներին աշխատել:

Սա բարելավում է աղմուկի միջավայրը ADC-ի համար՝ հնարավորություն տալով ավելի բարձր լուծաչափի չափումներ: Եթե ​​ADC-ն միացված է, փոխակերպումն ինքնաբերաբար կսկսվի, երբ այս ռեժիմը մուտքագրվի: Բացի ADC Conversion Complete ընդհատումից, միայն արտաքին վերակայումը, Watchdog Reset-ը, Brown-out Reset-ը, SPM/EEPROM-ի պատրաստի ընդհատումը, արտաքին մակարդակի ընդհատումը INT0-ում կամ փին փոխելու ընդհատումը կարող են արթնացնել MCU-ն ADC Noise Reduction-ից: ռեժիմ.

Անջատման ռեժիմ

Երբ SM[1:0] բիթերը գրվում են 10, SLEEP հրահանգը ստիպում է MCU-ին մտնել Power-down ռեժիմ: Այս ռեժիմում Oscillator-ը դադարեցվում է, մինչդեռ արտաքին ընդհատումները, USI-ի մեկնարկի վիճակի հայտնաբերումը և Watchdog-ը շարունակում են գործել (եթե միացված է): Միայն արտաքին վերակայումը, Watchdog Reset-ը, Brown-out Reset-ը, USI-ի մեկնարկի պայմանի ընդհատումը, արտաքին մակարդակի ընդհատումը INT0-ում կամ փին փոխելու ընդհատումը կարող են արթնացնել MCU-ն: Այս քնի ռեժիմը դադարեցնում է բոլոր ստեղծված ժամացույցները՝ թույլ տալով միայն ասինխրոն մոդուլների գործարկումը:

Ծրագրային ապահովման BOD Անջատել

Երբ շագանակագույն ելքի դետեկտորը (BOD) միացված է BODLEVEL ապահովիչներով (տես Աղյուսակ 20-4 էջ 148-ումԲԿ-ն ակտիվորեն վերահսկում է մատակարարման ծավալըtagե քնի ժամանակաշրջանում. Որոշ սարքերում հնարավոր է խնայել էներգիան՝ անջատելով BOD-ը ծրագրաշարի միջոցով Power-Down քնի ռեժիմում: Քնի ռեժիմի էներգիայի սպառումն այնուհետև կլինի նույն մակարդակի վրա, ինչ երբ BOD-ն ամբողջ աշխարհում անջատված է ապահովիչներով:

Եթե ​​BOD-ն անջատված է ծրագրային ապահովման միջոցով, BOD ֆունկցիան անջատվում է քնի ռեժիմ մտնելուց անմիջապես հետո: Քնից արթնանալուն պես BOD-ը նորից ավտոմատ կերպով միացված է: Սա ապահովում է անվտանգ շահագործում այն ​​դեպքում, եթե VCC մակարդակը իջել է քնի ժամանակահատվածում:

Երբ BOD-ն անջատված է, քնի ռեժիմից արթնանալու ժամանակը կլինի նույնը, ինչ RESET-ից արթնանալու համար: Օգտագործողը պետք է ձեռքով կարգավորի արթնացման ժամերը, որպեսզի bandgap-ի հղումը ժամանակ ունենա սկսելու, և BOD-ը ճիշտ աշխատի, մինչև MCU-ն կշարունակի կատարել կոդը: Տե՛ս SUT[1:0] և CKSEL[3:0] ապահովիչների բիթերը աղյուսակում «Fuse Low Byte» էջ 149

BOD անջատումը վերահսկվում է MCU Control Register-ի BODS (BOD Sleep) բիթով, տես. «MCUCR – MCU Control Գրանցվել» էջում 37. Այս բիթը մեկին գրելը անջատում է BOD-ը Power-Down-ում, մինչդեռ զրոյ գրելով՝ BOD-ը մնում է ակտիվ: Նախնական պարամետրը զրո է, այսինքն՝ BOD ակտիվ:

BODS բիթում գրելը վերահսկվում է ժամանակավորված հաջորդականությամբ և ակտիվացման բիթով, տես. «MCUCR – MCU Control Regis- թեր» էջ 37.

Սահմանափակումներ

BOD անջատման գործառույթն իրականացվել է միայն հետևյալ սարքերում.

ATtiny25, վերանայում E և ավելի նոր

ATtiny45, վերանայում D և ավելի նոր

ATtiny85, վերանայում C և ավելի նոր

Վերանայումները նշված են սարքի փաթեթի վրա և կարող են տեղակայվել հետևյալ կերպ.

8P3 և 8S2 փաթեթների ներքևի կողմը

Փաթեթի վերին կողմը 20M1

Էլեկտրաէներգիայի կրճատման ռեգիստր

Էլեկտրաէներգիայի կրճատման ռեգիստրը (PRR), տես «PRR – Power Reduction Register» էջ 38, ապահովում է էներգիայի սպառումը նվազեցնելու մեթոդ՝ ժամացույցը անջատելով առանձին ծայրամասային սարքերում: Ծայրամասային սարքի ներկայիս վիճակը սառեցված է, և մուտքի/ելքի գրանցամատյանները հնարավոր չէ կարդալ կամ գրել: Ծայրամասային սարքի կողմից ժամացույցը կանգնեցնելիս օգտագործվող ռեսուրսները զբաղված կմնան, հետևաբար ծայրամասային սարքը շատ դեպքերում պետք է անջատվի մինչև ժամացույցը կանգնեցնելը: Մոդուլի արթնացումը, որն արվում է PRR-ում բիթը մաքրելու միջոցով, մոդուլը դնում է նույն վիճակում, ինչ մինչև անջատումը:

Մոդուլի անջատումը կարող է օգտագործվել Անգործուն ռեժիմում և Ակտիվ ռեժիմում՝ էապես նվազեցնելու ընդհանուր էներգիայի սպառումը: Քնի մնացած բոլոր ռեժիմներում ժամացույցն արդեն դադարեցված է: Տեսնել «I/O մոդուլների մատակարարման հոսանք» էջ 177 նախկինի համարamples.

Էլեկտրաէներգիայի սպառումը նվազագույնի հասցնելը

Կան մի քանի խնդիրներ, որոնք պետք է հաշվի առնել, երբ փորձում եք նվազագույնի հասցնել էներգիայի սպառումը AVR կառավարվող համակարգում: Ընդհանուր առմամբ, քնի ռեժիմները պետք է հնարավորինս շատ օգտագործվեն, իսկ քնի ռեժիմը պետք է ընտրվի այնպես, որ սարքի գործառույթներից հնարավորինս քիչ աշխատեն: Բոլոր անհրաժեշտ գործառույթները պետք է անջատվեն: Մասնավորապես, հետևյալ մոդուլները կարող են հատուկ ուշադրության կարիք ունենալ, երբ փորձում են հասնել հնարավոր նվազագույն էներգիայի սպառմանը:

Անալոգային թվային փոխարկիչ

Եթե ​​միացված է, ADC-ն միացված կլինի քնի բոլոր ռեժիմներում: Էլեկտրաէներգիան խնայելու համար ADC-ն պետք է անջատվի նախքան քնի ռեժիմ մտնելը: Երբ ADC-ն անջատված է և նորից միացված է, հաջորդ փոխարկումը կլինի ընդլայնված փոխարկում: Վերաբերել «Անալոգից թվային փոխարկիչ» էջ 122 ADC-ի շահագործման մանրամասների համար:

Անալոգային համեմատիչ

Անգործուն ռեժիմ մտնելիս անալոգային համեմատիչը պետք է անջատվի, եթե այն չի օգտագործվում: ADC Noise Reduction ռեժիմ մտնելիս անալոգային համեմատիչը պետք է անջատված լինի: Քնի մյուս ռեժիմներում անալոգային համեմատիչը ավտոմատ կերպով անջատված է: Այնուամենայնիվ, եթե անալոգային համեմատիչը ստեղծվել է ներքին ծավալը օգտագործելու համարtagե Հղում որպես մուտքագրում, անալոգային համեմատիչը պետք է անջատված լինի քնի բոլոր ռեժիմներում: Հակառակ դեպքում, Ներքին հատtagե Հղումը միացված կլինի՝ անկախ քնի ռեժիմից: Վերաբերել «Անալոգային համեմատիչ» էջ 119 Մանրամասների համար, թե ինչպես կարգավորել անալոգային համեմատիչը:

Շագանակագույն դուրս դետեկտոր

Եթե ​​«Brown-out Detector» հավելվածում անհրաժեշտ չէ, այս մոդուլը պետք է անջատվի: Եթե ​​շագանակագույն դուրս հայտնաբերող դետեկտորը միացված է BODLEVEL Ապահովիչներով, այն միացված կլինի քնի բոլոր ռեժիմներում և, հետևաբար, միշտ էներգիա է սպառում: Ավելի խորը քնի ռեժիմներում դա զգալիորեն կնպաստի ընդհանուր ընթացիկ սպառմանը: Տեսնել «Brown-out Detec- tion» էջ 41 և «Ծրագրային ապահովման BOD անջատել» էջ 35 Մանրամասների համար, թե ինչպես կարգավորել Brown-out Detector-ը:

Ներքին հատորtage Տեղեկանք

The Internal Voltagե Հղումը միացված կլինի, երբ անհրաժեշտ լինի Brown-out Detection-ի, Analog Comparator-ի կամ ADC-ի կողմից: Եթե ​​այս մոդուլներն անջատված են, ինչպես նկարագրված է վերը նշված բաժիններում, ներքին հատորըtagԷլեկտրոնային հղումը կանջատվի, և այն էներգիա չի սպառի: Երբ նորից միացված է, օգտագործողը պետք է թույլ տա, որ հղումը գործարկվի, նախքան ելքի օգտագործումը: Եթե ​​հղումը միացված է քնի ռեժիմում, ելքը կարող է անմիջապես օգտագործվել: Վերաբերել «Ներքին հատորtage Reference» էջ 42 մեկնարկի ժամանակի մանրամասների համար:

Watchdog Timer

Եթե ​​հավելվածում Watchdog Timer-ը պետք չէ, այս մոդուլը պետք է անջատվի: Եթե ​​Watchdog Timer-ը միացված է, այն կմիացվի քնի բոլոր ռեժիմներում և, հետևաբար, միշտ էներգիա կսպառի: Ավելի խորը քնի ռեժիմներում դա զգալիորեն կնպաստի ընդհանուր ընթացիկ սպառմանը: Վերաբերել «Watchdog Timer» էջ 42 Մանրամասների համար, թե ինչպես կարգավորել Watchdog Timer-ը:

Պորտ կապում

Քնի ռեժիմ մտնելիս բոլոր նավահանգիստները պետք է կազմաձևվեն այնպես, որ օգտագործեն նվազագույն էներգիա: Ամենակարևորն այն է, որ այնուհետև համոզվեք, որ ոչ մի քորոց չի մղում դիմադրողական բեռներ: Քնի ռեժիմներում, որտեղ և՛ I/O ժամացույցը (clkI/O), և՛ ADC ժամացույցը (clkADC) դադարեցված են, սարքի մուտքային բուֆերները կանջատվեն: Սա ապահովում է, որ էլեկտրաէներգիան չի սպառվում

անհրաժեշտության դեպքում մուտքագրման տրամաբանությամբ: Որոշ դեպքերում մուտքագրման տրամաբանությունը անհրաժեշտ է արթնացման պայմանները հայտնաբերելու համար, և

այն այնուհետև միացված կլինի: Տե՛ս բաժինը «Թվային մուտքի ակտիվացում և քնի ռեժիմներ» էջ 57 մանրամասների համար, թե որ կապումներն են միացված: Եթե ​​մուտքային բուֆերը միացված է, և մուտքային ազդանշանը մնում է լողացող կամ ունի անալոգային ազդանշանի մակարդակ մոտ VCC/2-ին, մուտքային բուֆերը կօգտագործի չափազանց մեծ հզորություն:

Անալոգային մուտքագրման քորոցների համար թվային մուտքագրման բուֆերը պետք է միշտ անջատված լինի: Անալոգային ազդանշանի մակարդակը, որը մոտ է VCC/2-ին, մուտքային կապում կարող է զգալի հոսանք առաջացնել նույնիսկ ակտիվ ռեժիմում: Թվային մուտքագրման բուֆերները կարող են անջատվել՝ գրելով Digital Input Disable Register (DIDR0): Վերաբերել «DIDR0 – Digital Input Disable Register 0» էջ 121 մանրամասների համար.

Գրանցման նկարագրություն

MCUCR – MCU Control Register

MCU Control Register-ը պարունակում է հսկիչ բիթներ էներգիայի կառավարման համար:

Բիթ 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 ԲՈԴՍԵ 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 քուն

BOD անջատման գործառույթը հասանելի է միայն որոշ սարքերում: Տեսնել «Սահմանափակումներ» էջ 36-ում.

Քնի ժամանակ BOD-ն անջատելու համար (տես Աղյուսակ 7-1 էջ 34-ում) BODS բիթը պետք է գրվի տրամաբանական մեկին: Սա վերահսկվում է ժամանակային հաջորդականությամբ և միացման բիթով՝ BODSE MCUCR-ում: Նախ, և՛ BODS, և՛ BODSE պետք է սահմանվեն մեկին: Երկրորդ, չորս ժամացույցի ընթացքում BODS-ը պետք է սահմանվի մեկ, իսկ BODSE-ը պետք է սահմանվի զրոյի: BODS բիթն ակտիվանում է երեք ժամացույցի ցիկլից հետո: Քնի հրահանգը պետք է կատարվի, քանի դեռ BODS-ն ակտիվ է, որպեսզի BOD-ն անջատվի իրական քնի ռեժիմի համար: BODS բիթն ավտոմատ կերպով մաքրվում է ժամացույցի երեք ցիկլից հետո:

Այն սարքերում, որտեղ Sleeping BOD-ը չի ներդրվել, այս բիթը չօգտագործված է և միշտ կարդում է զրո:

Բիթ 5 – SE. Sleep Enable

SE բիթը պետք է գրվի տրամաբանական մեկում, որպեսզի MCU-ն մտնի քնի ռեժիմ, երբ SLEEP հրահանգը կատարվի: MCU-ի քնի ռեժիմ մտնելուց խուսափելու համար, եթե դա ծրագրավորողի նպատակը չէ, խորհուրդ է տրվում Sleep Enable (SE) բիթը գրել մեկին SLEEP հրահանգի կատարումից անմիջապես առաջ և մաքրել այն անմիջապես արթնանալուց հետո:

Բիթ 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 Միացնել

BOD անջատման գործառույթը հասանելի է միայն որոշ սարքերում: Տեսնել «Սահմանափակումներ» էջ 36-ում.

BODSE բիթը հնարավորություն է տալիս սահմանել BODS կառավարման բիթը, ինչպես բացատրված է BODS բիթերի նկարագրության մեջ: BOD անջատումը վերահսկվում է ժամանակավորված հաջորդականությամբ:

Այս բիթը չի օգտագործվում այն ​​սարքերում, որտեղ ծրագրային ապահովման BOD անջատումը չի ներդրվել և այդ սարքերում կկարդա որպես զրո:

PRR – Էլեկտրաէներգիայի կրճատման ռեգիստր

Էլեկտրաէներգիայի կրճատման ռեգիստրը տրամադրում է էներգիայի սպառումը նվազեցնելու մեթոդ՝ թույլ տալով անջատել ծայրամասային ժամացույցի ազդանշանները:

Բիթ 7 6 5 4 3 2 1 0
0x20 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 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են ATtiny25/45/85-ում և միշտ կկարդան որպես զրո:

Բիթ 3 – PRTIM1: Էլեկտրաէներգիայի կրճատման ժմչփ/հաշվիչ 1

Այս բիթում տրամաբանական մեկ գրելով անջատվում է Timer/Counter1 մոդուլը: Երբ Timer/Counter1-ը միացված է, գործողությունը կշարունակվի այնպես, ինչպես մինչև անջատումը:

Բիթ 2 – PRTIM0: Էլեկտրաէներգիայի կրճատման ժմչփ/հաշվիչ 0

Այս բիթում տրամաբանական մեկ գրելով անջատվում է Timer/Counter0 մոդուլը: Երբ Timer/Counter0-ը միացված է, գործողությունը կշարունակվի այնպես, ինչպես մինչև անջատումը:

Բիթ 1 – PRUSI. Power Reduction USI

Այս բիթում տրամաբանական մեկ գրելու դեպքում USI-ն անջատվում է մոդուլի ժամացույցը կանգնեցնելով: USI-ն նորից արթնացնելիս USI-ն պետք է վերսկսվի՝ պատշաճ շահագործումն ապահովելու համար:

Bit 0 – PRADC: Power Reduction ADC

Այս բիթում տրամաբանական մեկ գրելու դեպքում ADC-ն անջատվում է: ADC-ն պետք է անջատված լինի նախքան անջատելը: Նկատի ունեցեք, որ ADC ժամացույցը նույնպես օգտագործվում է անալոգային համեմատիչի որոշ մասերի կողմից, ինչը նշանակում է, որ անալոգային համեմատիչը չի կարող օգտագործվել, երբ այս բիթը բարձր է:

Համակարգի վերահսկում և վերականգնում

AVR-ի վերակայում

Վերակայման ժամանակ բոլոր I/O գրանցամատյանները սահմանվում են իրենց սկզբնական արժեքներին, և ծրագիրը սկսում է իրագործումը Reset Vector-ից: Վերականգնման վեկտորում տեղադրված հրահանգը պետք է լինի RJMP – Relative Jump – հրահանգ վերակայման հետ աշխատելու ռեժիմին: Եթե ​​ծրագիրը երբեք միացնում է ընդհատման աղբյուրը, ապա ընդհատման վեկտորները չեն օգտագործվում, և սովորական ծրագրի կոդը կարող է տեղադրվել այդ վայրերում: Շղթայի դիագրամը Նկար 8-1 ցույց է տալիս վերակայման տրամաբանությունը: Վերականգնման սխեմայի էլեկտրական պարամետրերը բերված են «Համակարգի և վերակայման բնութագրերը» էջ 165.

Նկար 8-1 Վերականգնել տրամաբանությունը Վերականգնել-տրամաբանություն

AVR-ի I/O պորտերը անմիջապես վերականգնվում են իրենց սկզբնական վիճակին, երբ ակտիվանում է վերակայման աղբյուրը: Սա չի պահանջում ժամացույցի որևէ աղբյուրի գործարկում:

Վերակայման բոլոր աղբյուրներն անգործությունից հետո գործարկվում է հետաձգման հաշվիչը՝ ձգելով ներքին վերակայումը: Սա թույլ է տալիս հզորությունը հասնել կայուն մակարդակի, նախքան նորմալ աշխատանքը սկսելը: Հետաձգման հաշվիչի ժամկետը սահմանվում է օգտագործողի կողմից SUT և CKSEL ապահովիչների միջոցով: Հետաձգման ժամանակահատվածի տարբեր ընտրությունները ներկայացված են «Ժամացույց Աղբյուրներ» էջ 25-ում.

Վերականգնել աղբյուրները

ATtiny25/45/85-ն ունի վերակայման չորս աղբյուր.

Միացման վերակայում: MCU-ն վերականգնվում է, երբ մատակարարման ծավալըtage-ը միացման վերակայման շեմից ցածր է (VPOT):

Արտաքին վերականգնում: MCU-ն զրոյացվում է, երբ RESET պտուտակի վրա ցածր մակարդակ կա նվազագույն զարկերակային երկարությունից ավելի երկար:

Watchdog Reset. MCU-ն զրոյացվում է, երբ լրանում է Watchdog Timer-ի ժամկետը, և Watchdog-ը միացված է:

Շագանակագույն դուրս Վերականգնել: MCU-ն վերականգնվում է, երբ մատակարարման ծավալըtage VCC-ը գտնվում է Brown-out Reset շեմից (VBOT) ցածր, և Brown-out Detector-ը միացված է:

Միացումի վերականգնում

Power-on Reset (POR) իմպուլսը ստեղծվում է On-chip հայտնաբերման սխեմայի միջոցով: Հայտնաբերման մակարդակը սահմանվում է «Սիս- tem and Reset Characteristics» էջ 165-ում. POR-ն ակտիվանում է, երբ VCC-ը գտնվում է հայտնաբերման մակարդակից ցածր: POR սխեման կարող է օգտագործվել մեկնարկի վերակայումը գործարկելու, ինչպես նաև մատակարարման ծավալի խափանումը հայտնաբերելու համարtage.

Power-on Reset (POR) միացումն ապահովում է սարքի վերակայումը միացումից: Հասնելով միացման վերակայման շեմին voltage-ն կանչում է հետաձգման հաշվիչը, որը որոշում է, թե որքան ժամանակ է սարքը պահվում RESET-ում VCC-ի բարձրացումից հետո: RESET ազդանշանը կրկին ակտիվանում է առանց որևէ ուշացման, երբ VCC-ն իջնում ​​է հայտնաբերման մակարդակից ցածր:

Նկար 8-2. MCU-ի գործարկում, RESET Կապված է VCC-ին

ՆԵՐՔԻՆ ՎԵՐԱԿԱՆԳՆՈՒՄ

Նկար 8-3. MCU-ի գործարկում, RESET Extended Externally

Արտաքին վերականգնում

Արտաքին վերակայումը ստեղծվում է RESET փին ցածր մակարդակի պատճառով, եթե միացված է: Վերականգնել իմպուլսները ավելի երկար, քան զարկերակի նվազագույն լայնությունը (տես «Համակարգի և վերակայման բնութագրերը» էջ 165) կստեղծի վերակայում, նույնիսկ եթե ժամացույցը չի աշխատում: Ավելի կարճ իմպուլսները երաշխավորված չեն վերականգնում ստեղծելու համար: Երբ կիրառվող ազդանշանը հասնում է Վերականգնման շեմին Voltage – VRST – իր դրական եզրին, հետաձգման հաշվիչը գործարկում է MCU-ն ժամանակի ավարտից հետո:

Նկար 8-4. Արտաքին վերականգնում շահագործման ընթացքում Նկ8.4

Շագանակագույն դուրս հայտնաբերում

ATtiny25/45/85-ն ունի չիպի շագանակագույն դուրս հայտնաբերման (BOD) միացում՝ շահագործման ընթացքում VCC մակարդակը վերահսկելու համար՝ համեմատելով այն ֆիքսված ձգանման մակարդակի հետ: BOD-ի ձգանման մակարդակը կարող է ընտրվել BODLEVEL ապահովիչներով: Գործարկիչի մակարդակն ունի հիստերեզ՝ ապահովելու համար շագանակագույն դուրս գալու հայտնաբերում: Հայտնաբերման մակարդակի հիստերեզը պետք է մեկնաբանվի որպես VBOT+ = VBOT + VHYST/2 և VBOT- = VBOT – VHYST/2:

Երբ BOD-ը միացված է, և VCC-ն իջնում ​​է ձգանման մակարդակից ցածր արժեքի (VBOT-in Նկար 8-5), Brown-out Reset-ն անմիջապես ակտիվանում է: Երբ VCC-ն բարձրանում է ձգանման մակարդակից (VBOT+ in Նկար 8-5), հետաձգման հաշվիչը գործարկում է MCU-ն այն բանից հետո, երբ ավարտվել է tTOUT ժամանակաշրջանը:

BOD սխեման միայն կհայտնաբերի VCC-ի անկումը, եթե ծավալըtage-ը մնում է ձգանման մակարդակից ավելի երկար, քան տրված tBOD-ը «Համակարգի և վերակայման բնութագրերը» էջ 165. Նկ8.5

Watchdog Reset

Երբ Watchdog-ի ժամանակը սպառվի, այն կստեղծի մեկ CK ցիկլի տևողությամբ կարճ վերակայման զարկերակ: Այս զարկերակի անկման եզրին, հետաձգման ժամանակաչափը սկսում է հաշվել ժամանակի վերջնաժամկետը tTOUT: Վերաբերել «Watchdog Timer» էջ 42 Watchdog Timer-ի շահագործման մանրամասների համար:

Հատtagե Տեղեկանք միացնել ազդանշանները և գործարկման ժամանակը

ՀատորըtagԷլեկտրոնային հղումն ունի գործարկման ժամանակ, որը կարող է ազդել դրա օգտագործման ձևի վրա: Գործարկման ժամանակը նշված է «Համակարգի և վերակայման բնութագրերը» էջ 165. Էլեկտրաէներգիան խնայելու համար հղումը միշտ չէ, որ միացված է: Հղումը միացված է հետևյալ իրավիճակներում.

Երբ BOD-ը միացված է (ծրագրավորելով BODLEVEL[2:0] ապահովիչների բիթերը):

Երբ bandgap հղումը միացված է անալոգային համեմատիչին (ACBG բիթը ACSR-ում դնելով):

Երբ ADC-ն միացված է:

Այսպիսով, երբ BOD-ը միացված չէ, ACBG բիթը դնելուց կամ ADC-ն միացնելուց հետո օգտագործողը միշտ պետք է թույլ տա, որ հղումը գործարկվի, նախքան անալոգային համեմատիչի կամ ADC-ի ելքը օգտագործելը: Անջատման ռեժիմում էներգիայի սպառումը նվազեցնելու համար օգտատերը կարող է խուսափել վերը նշված երեք պայմաններից՝ համոզվելու, որ հղումն անջատված է մինչև անջատման ռեժիմ մտնելը:

Watchdog Timer

Watchdog Timer-ը աշխատում է On-chip Oscillator-ից, որն աշխատում է 128 կՀց հաճախականությամբ: Կառավարելով Watchdog Timer prescaler-ը, Watchdog Reset միջակայքը կարող է ճշգրտվել, ինչպես ցույց է տրված նկարում. Աղյուսակ 8-3 էջ 46-ում. WDR – Watchdog Reset – հրահանգը վերակայում է Watchdog Timer-ը: Watchdog Timer-ը նույնպես զրոյացվում է, երբ այն անջատված է և երբ տեղի է ունենում չիպի վերակայում: Վերակայման ժամանակահատվածը որոշելու համար կարելի է ընտրել տասը տարբեր ժամացույցի ցիկլի ժամանակաշրջան: Եթե ​​վերակայման ժամկետը լրանում է առանց մեկ այլ Watchdog Reset-ի, ATtiny25/45/85-ը վերակայվում և գործարկվում է Վերականգնման վեկտորից: Watchdog Reset-ի ժամանակի մանրամասների համար տե՛ս Աղյուսակ 8-3 էջ 46-ում.

Watchdog Timer-ը կարող է նաև կազմաձևվել այնպես, որ վերակայման փոխարեն ընդհատում առաջացնի: Սա կարող է շատ օգտակար լինել, երբ օգտագործում եք Watchdog-ը Power-down-ից արթնանալու համար:

Watchdog-ի ոչ միտումնավոր անջատումը կամ ժամանակի չնախատեսված փոփոխությունը կանխելու համար WDTON ապահովիչի կողմից ընտրվում են անվտանգության երկու տարբեր մակարդակներ, ինչպես ցույց է տրված Աղյուսակ 8-1 Անդրադարձեք «Հետևանքը փոխելու ժամանակային հաջորդականություն. հսկիչ շան ժմչփի պատկերացում» էջ 43-ում մանրամասների համար.

Աղյուսակ 8-1. WDT կոնֆիգուրացիան որպես WDTON-ի ապահովիչների կարգավորումների ֆունկցիա

WDTON Անվտանգության մակարդակ WDT սկզբնական վիճակ Ինչպես անջատել WDT-ն Ինչպես փոխել Time-out-ը
Չծրագրավորված 1 Հաշմանդամ Ժամկետային հաջորդականություն Ոչ մի սահմանափակում
Ծրագրավորված 2 Միացված է Միշտ միացված է Ժամկետային հաջորդականություն

Նկար 8-7. Watchdog Timer Պահապան

Watchdog Timer-ի կոնֆիգուրացիան փոխելու ժամանակային հաջորդականություններ

Կազմաձևի փոփոխման հաջորդականությունը փոքր-ինչ տարբերվում է անվտանգության երկու մակարդակների միջև: Յուրաքանչյուր մակարդակի համար նկարագրված են առանձին ընթացակարգեր:

Անվտանգության մակարդակ 1. Այս ռեժիմում Watchdog Timer-ը ի սկզբանե անջատված է, բայց կարող է միացվել՝ առանց որևէ սահմանափակման WDE բիթը մեկին գրելով: Միացված Watchdog Timer-ն անջատելիս անհրաժեշտ է ժամանակային հաջորդականություն: Միացված Watchdog Timer-ը անջատելու համար պետք է հետևել հետևյալ ընթացակարգին.

Նույն գործողության մեջ գրեք տրամաբանական մեկը WDCE-ին և WDE-ին: Տրամաբանական մեկը պետք է գրվի WDE-ին՝ անկախ WDE բիթերի նախորդ արժեքից:

Հաջորդ չորս ժամացույցի ցիկլերի ընթացքում, նույն գործողությամբ, գրեք WDE և WDP բիթերը ըստ ցանկության, բայց WDCE բիթը մաքրված է:

Անվտանգության մակարդակ 2. Այս ռեժիմում Watchdog Timer-ը միշտ միացված է, և WDE բիթը միշտ կկարդա որպես մեկ: Watchdog Time out-ի ժամկետը փոխելու ժամանակ անհրաժեշտ է ժամանակային հաջորդականություն: Watchdog Time-out-ը փոխելու համար պետք է հետևել հետևյալ ընթացակարգին.

Նույն գործողության մեջ գրեք տրամաբանական մեկը WDCE-ին և WDE-ին: Թեև WDE-ն միշտ սահմանված է, WDE-ն պետք է գրվի մեկին, որպեսզի սկսի ժամանակավորված հաջորդականությունը:

Հաջորդ չորս ժամացույցի ցիկլերի ընթացքում, նույն գործողությամբ, գրեք WDP բիթերը ըստ ցանկության, բայց WDCE բիթը մաքրված է: WDE բիթում գրված արժեքը անտեղի է:

Կոդ Example

Հետևյալ կոդը օրինակample-ն ցույց է տալիս մեկ հավաք և մեկ C ֆունկցիա՝ WDT-ն անջատելու համար: Նախկինample-ն ենթադրում է, որ ընդհատումները վերահսկվում են (օրինակ՝ անջատելով ընդհատումները գլոբալ մասշտաբով), այնպես որ այս գործառույթների կատարման ընթացքում ընդհատումներ չեն լինի:

Համագումարի օրենսգիրք Example(1)
WDT_off:

wdr

; Մաքրել WDRF-ը MCUSR-ում

ldi r16, (0<

դուրս MCUSR, r16

; Գրեք տրամաբանական մեկը WDCE-ին և WDE-ին

; Պահպանեք նախնական մասշտաբի հին կարգավորումը՝ կանխամտածված Watchdog Reset-ը կանխելու համար

r16-ում, WDTCR

or r16, (1<

դուրս WDTCR, r16

; Անջատեք WDT-ն

ldi r16, (0<

դուրս WDTCR, r16

ետ

C ծածկագիր Example(1)
void WDT_off (անվավեր)

{

_WDR ();

/* Մաքրել WDRF-ը MCUSR-ում */ MCUSR = 0x00

/* Գրեք տրամաբանական մեկը WDCE և WDE */ WDTCR |= (1<

/* Անջատեք WDT */ WDTCR = 0x00;

}

Ծանոթագրություն՝ 1. Տես «Օրգamples »էջ 6 -ում.

Գրանցման նկարագրություն

MCUSR – MCU կարգավիճակի գրանցում

MCU կարգավիճակի ռեգիստրը տեղեկատվություն է տրամադրում այն ​​մասին, թե որ վերակայման աղբյուրն է առաջացրել MCU-ի վերակայում:

Բիթ 7 6 5 4 3 2 1 0
0x34 WDRF ԲՈՐՖ ԷՔՍՏՐՖ PORF MCUSR
Կարդալ/գրել R R R R R/W R/W R/W R/W

Սկզբնական արժեքը 0 0 0 0 Տես բիտի նկարագրությունը

Բիթ 7:4 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են ATtiny25/45/85-ում և միշտ կկարդան որպես զրո:

Բիթ 3 – WDRF. Watchdog Reset Flag

Այս բիթը սահմանվում է, եթե տեղի ունենա Watchdog Reset-ը: Բիթը զրոյացվում է Power-on Reset-ի միջոցով կամ դրոշակի վրա տրամաբանական զրո գրելով:

Բիթ 2 – BORF. Դարչնագույն վերակայման դրոշակ

Այս բիթը սահմանվում է, եթե տեղի է ունենում Brown-out Reset: Բիթը զրոյացվում է Power-on Reset-ի միջոցով կամ դրոշակի վրա տրամաբանական զրո գրելով:

Բիթ 1 – EXTRF. Արտաքին վերակայման դրոշակ

Այս բիթը սահմանվում է, եթե տեղի է ունենում արտաքին վերակայում: Բիթը զրոյացվում է Power-on Reset-ի միջոցով կամ դրոշակի վրա տրամաբանական զրո գրելով:

Բիթ 0 – PORF. Միացման վերակայման դրոշակ

Այս բիթը սահմանվում է, եթե տեղի ունենա Power-on Reset: Բիթը զրոյացվում է միայն դրոշի վրա տրամաբանական զրո գրելով:

Վերականգնման դրոշակներից օգտվելու համար վերակայման պայմանը բացահայտելու համար օգտագործողը պետք է կարդա և վերականգնի MCUSR-ը որքան հնարավոր է շուտ ծրագրում: Եթե ​​գրանցամատյանը մաքրվել է մինչև մեկ այլ զրոյացում, ապա վերակայման աղբյուրը կարելի է գտնել՝ ուսումնասիրելով «Վերականգնել» դրոշակները:

WDTCR – Watchdog Timer Control Register-ը

Բիթ 7 6 5 4 3 2 1 0
0x21 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 ընդհատման դրոշ

Այս բիթը սահմանվում է, երբ Watchdog Timer-ում ժամանակի ընդհատում է տեղի ունենում, և Watchdog Timer-ը կազմաձևվում է ընդհատման համար: WDIF-ը մաքրվում է ապարատով, երբ կատարում է համապատասխան ընդհատումների մշակման վեկտորը: Որպես այլընտրանք, WDIF-ը մաքրվում է դրոշի վրա տրամաբանական մեկն գրելով: Երբ I-bit-ը SREG-ում և WDIE-ում սահմանվում է, Watchdog Time-ի ընդհատումը կատարվում է:

Բիթ 6 – WDIE. Watchdog Timeout ընդհատման միացում

Երբ այս բիթը գրվում է մեկին, WDE-ն ջնջվում է, և կարգավիճակի ռեգիստրում I-bit-ը սահմանվում է, Watchdog Time-ի ընդհատումը միացված է: Այս ռեժիմում համապատասխան ընդհատումը կատարվում է զրոյացման փոխարեն, եթե Watchdog Timer-ում ժամանակի ընդհատում է տեղի ունենում:

Եթե ​​WDE-ն սահմանված է, WDIE-ն ավտոմատ կերպով ջնջվում է սարքաշարի կողմից, երբ ժամանակի ընդմիջում է տեղի ունենում: Սա օգտակար է Watchdog Reset-ի անվտանգությունը պահպանելու համար ընդհատումն օգտագործելիս: WDIE բիթը ջնջվելուց հետո հաջորդ ժամանակի ավարտը կստեղծի զրոյացում: Watchdog Reset-ից խուսափելու համար WDIE-ը պետք է սահմանվի յուրաքանչյուր ընդհատումից հետո:

Աղյուսակ 8-2. Watchdog Timer Configuration

WDE WDIE Watchdog Timer State Գործողություն Թայմ-աութի վրա
0 0 Դադարեցվեց Ոչ մեկը
0 1 Վազում Ընդհատել
1 0 Վազում Վերականգնել
1 1 Վազում Ընդհատել

Բիթ 4 – WDCE. Watchdog Change Enable

Այս բիթը պետք է սահմանվի, երբ WDE բիթը գրված է տրամաբանական զրո: Հակառակ դեպքում Watchdog-ը չի անջատվի: Մեկին գրվելուց հետո սարքավորումը կջնջի այս բիթը չորս ժամացույցի ցիկլից հետո: Տե՛ս Watchdog-ի անջատման ընթացակարգի WDE բիթի նկարագրությունը: Այս բիթը պետք է սահմանվի նաև նախնական մասշտաբի բիթերը փոխելու ժամանակ: Տեսնել «Ժամանակավոր հաջորդականություններ Watchdog Timer-ի կոնֆիգուրացիան փոխելու համար» էջում 43.

Բիթ 3 – WDE. Watchdog Enable

Երբ WDE-ը գրված է տրամաբանական մեկում, Watchdog Timer-ը միացված է, իսկ եթե WDE-ն գրված է տրամաբանական զրոյի վրա, Watchdog Timer ֆունկցիան անջատված է: WDE-ն կարող է մաքրվել միայն այն դեպքում, եթե WDCE բիթն ունի տրամաբանական մակարդակ առաջին: Միացված Watchdog Timer-ը անջատելու համար պետք է հետևել հետևյալ ընթացակարգին.

Նույն գործողության մեջ գրեք տրամաբանական մեկը WDCE-ին և WDE-ին: Տրամաբանական մեկը պետք է գրվի WDE-ում, չնայած այն սահմանված է մեկին նախքան անջատելու գործողությունը սկսելը:

Հաջորդ չորս ժամացույցի ցիկլերի ընթացքում WDE-ում գրեք տրամաբանական 0: Սա անջատում է Watchdog-ը:

Անվտանգության 2-րդ մակարդակում հնարավոր չէ անջատել Watchdog Timer-ը, նույնիսկ վերը նկարագրված ալգորիթմով: Տեսնել «Ժամկետային հաջորդականություններ Watchdog Timer-ի կազմաձևումը փոխելու համար» էջ 43.

Անվտանգության 1-ին մակարդակում WDE-ն անտեսվում է WDRF-ի կողմից MCUSR-ում: Տեսնել «MCUSR – MCU Status Register» էջ 44 WDRF-ի նկարագրության համար: Սա նշանակում է, որ WDE-ն միշտ դրված է, երբ WDRF-ը դրված է: WDE-ն մաքրելու համար WDRF-ը պետք է ջնջվի նախքան Watchdog-ն անջատելը վերը նկարագրված ընթացակարգով: Այս հատկությունը ապահովում է բազմաթիվ զրոյացումներ ձախողման պատճառ հանդիսացող պայմաններում և անվտանգ գործարկում ձախողումից հետո:

Նշում. Եթե դիտորդական ժմչփը չի օգտագործվելու հավելվածում, ապա սարքի սկզբնավորման ժամանակ կարևոր է անցնել Watchdog-ի անջատման ընթացակարգը: Եթե ​​Watchdog-ը պատահաբար միացված է, օրինակampԱնհետացած ցուցիչի կամ շագանակագույն դուրս վիճակի միջոցով սարքը կզրոյացվի, որն իր հերթին կհանգեցնի նոր պահակային վերակայման: Այս իրավիճակից խուսափելու համար կիրառական ծրագրաշարը միշտ պետք է մաքրի WDRF դրոշը և WDE կառավարման բիթը սկզբնավորման գործընթացում:

Բիթ 5, 2:0 – WDP[3:0]. Watchdog Timer Prescaler 3, 2, 1 և 0

WDP[3:0] բիթերը որոշում են Watchdog Timer-ի նախնական չափումը, երբ Watchdog Timer-ը միացված է: Տարբեր նախաչափման արժեքներ և դրանց համապատասխան ժամանակի դադարման ժամանակաշրջանները ցուցադրված են Աղյուսակ 8-3.

Աղյուսակ 8-3. Watchdog Timer Prescale Ընտրել

WDP3 WDP2 WDP1 WDP0 WDT Oscillator ցիկլերի քանակը Տիպիկ ժամանակի ընդմիջում VCC = 5.0V-ում
0 0 0 0 2K (2048) ցիկլեր 16 ms
0 0 0 1 4K (4096) ցիկլեր 32 ms
0 0 1 0 8K (8192) ցիկլեր 64 ms
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-ում

ATtiny25/45/85-ի ընդհատման վեկտորները նկարագրված են Աղյուսակ 9-1ստորև.

Աղյուսակ 9-1. Վերականգնել և ընդհատել վեկտորները

Վեկտոր No. Ծրագրի հասցեն Աղբյուր Ընդհատման սահմանում
1 0x0000 ՎԵՐԱԿԱՑՆԵԼ Արտաքին փին, միացման վերակայում, շագանակագույն վերականգնում, Watchdog reset
2 0x0001 INT0 Արտաքին ընդհատման հարցում 0
3 0x0002 PCINT0 Փին փոխելու ընդհատման հարցում 0
4 0x0003 TIMER1_COMPA Ժամաչափ/Հաշվիչ1 Համեմատել Համընկնում Ա
5 0x0004 TIMER1_OVF Ժմչփ/Հաշվիչ1 Հորդառատ
6 0x0005 TIMER0_OVF Ժմչփ/Հաշվիչ0 Հորդառատ
7 0x0006 EE_RDY EEPROM Պատրաստ է
8 0x0007 ANA_COMP Անալոգային համեմատիչ
9 0x0008 ADC ADC-ի փոխակերպումն ավարտված է
10 0x0009 TIMER1_COMPB Ժամաչափ/Հաշվիչ1 Համեմատել Համընկնում B
11 0x000A TIMER0_COMPA Ժամաչափ/Հաշվիչ0 Համեմատել Համընկնում Ա
12 0x000B TIMER0_COMPB Ժամաչափ/Հաշվիչ0 Համեմատել Համընկնում B
13 0x000C WDT Watchdog Time-out
14 0x000D USI_START USI START
15 0x000E USI_OVF USI վարարում

Եթե ​​ծրագիրը երբեք միացնում է ընդհատման աղբյուրը, ապա ընդհատման վեկտորները չեն օգտագործվում, և սովորական ծրագրի կոդը կարող է տեղադրվել այդ վայրերում:

ATtiny25/45/85-ում ընդհատումների վեկտորային հասցեների տիպիկ և ընդհանուր կարգավորումը ցուցադրված է նախկինում ծրագրումample ստորև.

Համագումարի օրենսգիրք Example
.org 0x0000 ;Սահմանել հաջորդի հասցեն հայտարարություն
rjmp RESET ; Հասցե 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

Նշում. Տես «Օրգamples »էջ 6 -ում.

Արտաքին ընդհատումներ

Արտաքին ընդհատումները գործարկվում են INT0 փինով կամ PCINT[5:0] պինդներից որևէ մեկով: Նկատի ունեցեք, որ եթե միացված է, ընդհատումները կաշխատեն, նույնիսկ եթե INT0 կամ PCINT[5:0] քորոցները կազմաձևված են որպես ելքեր: Այս հատկությունը ապահովում է ծրագրային ընդհատում ստեղծելու միջոց: PCI-ի փոփոխության ընդհատումները PCI-ն կգործարկվի, եթե որևէ միացված PCINT[5:0] փին միացվի: PCMSK Register-ը վերահսկում է, թե որ կապումներն են նպաստում փին փոխելու ընդհատումներին: PIN-ի փոփոխման ընդհատումները PCINT[5:0]-ում հայտնաբերվում են ասինխրոն: Սա ենթադրում է, որ այս ընդհատումները կարող են օգտագործվել մասի արթնացման համար նաև քնի ռեժիմներից, բացի անգործուն ռեժիմից:

INT0-ի ընդհատումները կարող են առաջանալ անկման կամ բարձրացող եզրի կամ ցածր մակարդակի պատճառով: Սա ստեղծվել է այնպես, ինչպես նշված է MCU վերահսկման ռեգիստրի բնութագրերում՝ MCUCR: Երբ INT0 ընդհատումը միացված է և կազմաձևվում է որպես գործարկված մակարդակ, ընդհատումը կգործարկվի այնքան ժամանակ, քանի դեռ սեղմիչը ցածր է: Նկատի ունեցեք, որ INT0-ում ընկնող կամ բարձրացող եզրերի ընդհատումների ճանաչումը պահանջում է I/O ժամացույցի առկայությունը, որը նկարագրված է. «Ժամացույցի համակարգերը և դրանց բաշխումը» թեմայով էջ 23.

Ցածր մակարդակի ընդհատում

INT0-ում ցածր մակարդակի ընդհատումը հայտնաբերվում է ասինխրոն: Սա ենթադրում է, որ այս ընդհատումը կարող է օգտագործվել մասի արթնացման համար նաև քնի ռեժիմներից, բացի անգործուն ռեժիմից: Մուտքի/ելքի ժամացույցը դադարեցված է քնի բոլոր ռեժիմներում, բացառությամբ անգործության ռեժիմի:

Նկատի ունեցեք, որ եթե մակարդակով գործարկվող ընդհատումն օգտագործվում է Power-down-ից արթնանալու համար, ապա պահանջվող մակարդակը պետք է այնքան երկար պահվի, որպեսզի MCU-ն ավարտի արթնացումը և գործարկի մակարդակի ընդհատումը: Եթե ​​մակարդակը անհետանա մինչև գործարկման ժամանակի ավարտը, MCU-ն դեռ կարթնանա, բայց ոչ մի ընդհատում չի առաջանա: Գործարկման ժամանակը սահմանվում է SUT և CKSEL ապահովիչներով, ինչպես նկարագրված է ստորև «Համակարգի ժամացույցի և ժամացույցի ընտրանքներ» էջում 23.

Եթե ​​անջատիչի ցածր մակարդակը հանվում է նախքան սարքի արթնանալը, ապա ծրագրի կատարումը չի շեղվի ընդհատումների սպասարկման ռեժիմին, այլ կշարունակվի SLEEP հրամանին հետևող հրահանգից:

Փին Փոփոխության ընդհատման ժամանակ

ՆախկինampՑուցադրված է փին փոխելու ընդհատման ժամանակացույցը Նկար 9-1.

Գրանցման նկարագրություն

MCUCR – MCU Control Register

Արտաքին ընդհատումների վերահսկման ռեգիստրը A պարունակում է հսկիչ բիթներ ընդհատումների հսկողության համար:

Բիթ 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 ԲՈԴՍԵ 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

Արտաքին ընդհատումը 0-ն ակտիվանում է արտաքին INT0 փինով, եթե դրված են SREG I դրոշակը և համապատասխան ընդհատման դիմակը: Արտաքին INT0 փինում այն ​​մակարդակը և եզրերը, որոնք ակտիվացնում են ընդհատումը, սահմանվում են Աղյուսակ 9-2. INT0 փին արժեքը s էampհանգեցրել է եզրերը հայտնաբերելուց առաջ: Եթե ​​ընտրված է եզրային կամ անջատիչի ընդհատում, ապա մեկ ժամացույցից ավելի երկար տևող իմպուլսները կառաջացնեն ընդհատում: Ավելի կարճ իմպուլսները երաշխավորված չեն ընդհատում առաջացնելու համար: Եթե ​​ընտրված է ցածր մակարդակի ընդհատում, ապա ցածր մակարդակը պետք է պահվի մինչև տվյալ պահին կատարվող հրահանգի ավարտը՝ ընդհատում առաջացնելու համար:

Աղյուսակ 9-2. Ընդհատում 0 Sense Control

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 GIMSK
Կարդալ/գրել 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 բիթը սահմանված է (մեկ), իսկ I-bit-ը կարգավիճակի գրանցամատյանում (SREG) սահմանվում է (մեկ), արտաքին փին ընդհատումը միացված է: Ընդհատման սենսորային կառավարում0 բիթերը 1/0 (ISC01 և ISC00) MCU կառավարման ռեգիստրում (MCUCR) սահմանում են, թե արդյոք արտաքին ընդհատումը ակտիվանում է INT0 փին կամ մակարդակի զգալի բարձրացող և/կամ իջնող եզրին: PIN-ի վրա ակտիվությունը կառաջացնի ընդհատման հարցում, նույնիսկ եթե INT0-ը կազմաձևված է որպես ելք: Արտաքին ընդհատման հարցում 0-ի համապատասխան ընդհատումը կատարվում է INT0 ընդհատման վեկտորից:

Բիթ 5 – PCIE: Փին փոփոխության ընդհատումը միացնում է

Երբ PCIE բիթը դրված է (մեկ), իսկ I-bit-ը կարգավիճակի ռեգիստրում (SREG) դրված է (մեկ), փին փոխելու ընդհատումը միացված է: Ցանկացած միացված PCINT[5:0] փինում ցանկացած փոփոխություն կհանգեցնի ընդհատման: Pin Change Interrupt Request-ի համապատասխան ընդհատումը կատարվում է PCI ընդհատման վեկտորից: PCINT[5:0] քորոցները առանձին-առանձին միացված են PCMSK0 ռեգիստրի կողմից:

GIFR – Ընդհանուր ընդհատման դրոշի գրանցում

Բիթ 7 6 5 4 3 2 1 0
0x3A 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-ը դառնում է սահմանված (մեկ): Եթե ​​I-bit-ը SREG-ում և INT0-ը GIMSK-ում դրված են (մեկ), MCU-ը կանցնի համապատասխան ընդհատման վեկտորին: Դրոշը ջնջվում է, երբ կատարվում է ընդհատման ռեժիմը: Որպես այլընտրանք, դրոշը կարող է մաքրվել՝ դրա վրա տրամաբանական նշան գրելով: Այս դրոշը միշտ ջնջվում է, երբ INT0-ը կազմաձևվում է որպես մակարդակի ընդհատում:

Բիթ 5 – PCIF. Pin Change Interrupt Flag

Երբ որևէ PCINT[5:0] փինում տրամաբանական փոփոխությունը առաջացնում է ընդհատման հարցում, PCIF-ը դառնում է սահմանված (մեկ): Եթե ​​I-bit-ը SREG-ում և PCIE-ի բիթը GIMSK-ում դրված են (մեկ), MCU-ը կանցնի համապատասխան ընդհատման վեկտորին: Դրոշը ջնջվում է, երբ կատարվում է ընդհատման ռեժիմը: Որպես այլընտրանք, դրոշը կարող է մաքրվել՝ դրա վրա տրամաբանական նշան գրելով:

PCMSK – Փին փոխել դիմակի գրանցամատյանը

Բիթ 7 6 5 4 3 2 1 0
0x15 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 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են 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]-ը ջնջված է, ապա PIN-ի փոփոխման ընդհատումը համապատասխան I/O փին անջատված է:

I/O պորտեր

Ներածություն

Բոլոր AVR նավահանգիստները ունեն իրական Read-Modify-Write գործառույթ, երբ օգտագործվում են որպես ընդհանուր թվային I/O պորտեր: Սա նշանակում է, որ մեկ նավահանգիստի ուղղությունը կարող է փոխվել առանց SBI-ի և CBI-ի հրահանգների հետ որևէ այլ կապի ուղղությունը ակամա փոխելու: Նույնը վերաբերում է սկավառակի արժեքը փոխելու դեպքում (եթե կազմաձևված է որպես ելք) կամ միացնելով/անջատելով ձգվող դիմադրությունները (եթե կազմաձևված է որպես մուտքային): Յուրաքանչյուր ելքային բուֆեր ունի շարժիչի սիմետրիկ բնութագրեր ինչպես բարձր լվացման, այնպես էլ աղբյուրի հնարավորությամբ: Փին դրայվերը բավականաչափ ուժեղ է LED էկրանները ուղղակիորեն վարելու համար: Բոլոր նավահանգիստների կապումներն ունեն առանձին ընտրովի ձգվող ռեզիստորներ՝ մատակարարման ծավալովtagե անփոփոխ դիմադրություն: Բոլոր I/O կապումներն ունեն պաշտպանական դիոդներ ինչպես VCC-ի, այնպես էլ գետնի համար, ինչպես նշված է Նկար 10-1. Անդրադարձեք «Էլեկտրական բնութագրեր» էջ 161 պարամետրերի ամբողջական ցանկի համար:

Նկար 10-1. I/O փին համարժեք սխեմատիկ

Նկ10

Այս բաժնում բոլոր ռեգիստրները և բիթային հղումները գրված են ընդհանուր ձևով: Փոքրատառ «x»-ը ներկայացնում է պորտի համարակալման տառը, իսկ փոքրատառ «n»-ը ներկայացնում է բիթերի թիվը: Այնուամենայնիվ, երբ ռեգիստրը կամ բիթը սահմանում է ծրագրում, պետք է օգտագործվի ճշգրիտ ձևը: Նախample, PORTB3 բիթ համար. 3 նավահանգստում B, այստեղ փաստաթղթավորվում է որպես PORTxn: Ֆիզիկական I/O գրանցամատյանները և բիթային տեղանքները թվարկված են «Գրանցվել նկարագրությունը» վրա էջ 64.

Յուրաքանչյուր պորտի համար հատկացված են երեք մուտքային/ելքային հիշողության հասցեներ, յուրաքանչյուրը Տվյալների ռեգիստրի համար՝ PORTx, Տվյալների ուղղության ռեգիստրի համար՝ DDRx, և նավահանգիստների մուտքագրման կապանքները՝ PINx: Port Input Pins I/O տեղադրությունը միայն կարդալու է, մինչդեռ Տվյալների գրանցամատյանը և Տվյալների ուղղության գրանցամատյանը կարդալ/գրել են: Այնուամենայնիվ, PINx ռեգիստրում տրամաբանական մեկից մի բիթ գրելը կհանգեցնի տվյալների ռեգիստրում համապատասխան բիթը փոխարկվելու: Բացի այդ, Pull-up Disable – PUD bit-ը MCUCR-ում անջատում է pull-up ֆունկցիան բոլոր նավահանգիստների բոլոր կապանքների համար, երբ սահմանված է:

I/O պորտի օգտագործումը որպես General Digital I/O նկարագրված է «Ports as General Digital I/O» էջ 53. Շատ նավահանգիստ կապում են սարքի ծայրամասային գործառույթների այլընտրանքային գործառույթները: Ինչպես է յուրաքանչյուր այլընտրանքային ֆունկցիա խանգարում պորտի փինին, նկարագրված է «Այլընտրանքային նավահանգիստների գործառույթները» 57-րդ էջում. Այլընտրանքային գործառույթների ամբողջական նկարագրության համար տես առանձին մոդուլի բաժինները:

Նկատի ունեցեք, որ որոշ նավահանգիստների պինդների այլընտրանքային գործառույթը միացնելը չի ​​ազդում նավահանգստում մյուս կապիչների օգտագործման վրա՝ որպես ընդհանուր թվային I/O:

Նավահանգիստները որպես ընդհանուր թվային մուտք / ելք

Նավահանգիստները երկկողմանի I/O պորտեր են, որոնք ունեն կամայական ներքին ձգումներ: Նկար 10-2 ցույց է տալիս մեկ I/O-port կապի ֆունկցիոնալ նկարագրությունը, որն այստեղ սովորաբար կոչվում է Pxn:

Նկար 10-2. Ընդհանուր թվային մուտք / ելք(1)

Նկ10

Pin-ի կազմաձևում

Յուրաքանչյուր պորտի փին բաղկացած է երեք ռեգիստրի բիթերից՝ DDxn, PORTxn և PINxn: Ինչպես ցույց է տրված «Գրանցվել նկարագրությունը» վրա էջ 64, DDxn բիթերը հասանելի են DDRx I/O հասցեում, PORTxn բիթերը PORTx I/O հասցեում, իսկ PINxn բիթերը PINx I/O հասցեում։

DDRx ռեգիստրում DDxn բիթն ընտրում է այս փին-ի ուղղությունը: Եթե ​​DDxn-ը գրված է տրամաբանական մեկ, Pxn-ը կազմաձևվում է որպես ելքային փին: Եթե ​​DDxn-ը գրված է տրամաբանական զրո, Pxn-ը կազմաձևվում է որպես մուտքագրման փին:

Եթե ​​PORTxn-ը գրված է տրամաբանական մեկում, երբ փին կազմաձևված է որպես մուտքային փին, ապա pull-up ռեզիստորն ակտիվանում է: Ձգվող ռեզիստորն անջատելու համար PORTxn-ը պետք է գրվի տրամաբանական զրո կամ փին պետք է կազմաձևվի որպես ելքային փին: Նավահանգիստների քորոցները եռապատկվում են, երբ վերակայման վիճակն ակտիվանում է, նույնիսկ եթե ոչ մի ժամացույց չի աշխատում:

Եթե ​​PORTxn-ը գրված է տրամաբանական մեկում, երբ փին կազմաձևված է որպես ելքային փին, ապա նավահանգիստը բարձրանում է (մեկ): Եթե ​​PORTxn-ը գրված է տրամաբանական զրո, երբ փին կազմաձևված է որպես ելքային փին, ապա նավահանգիստը դրվում է ցածր (զրո):

Փին անջատելը

PINxn-ում տրամաբանական մեկն գրելը փոխում է PORTxn-ի արժեքը՝ անկախ DDRxn-ի արժեքից: Նկատի ունեցեք, որ SBI հրահանգը կարող է օգտագործվել պորտում մեկ բիթ փոխարկելու համար:

Անցում մուտքի և ելքի միջև

Երեք վիճակի ({DDxn, PORTxn} = 0b00) և ելքի բարձր ({DDxn, PORTxn} = 0b11) միջև անցում կատարելիս միջանկյալ վիճակ, որը միացված է կամ pull-up ({DDxn, PORTxn} = 0b01) կամ ցածր ելք: ({DDxn, PORTxn} = 0b10) պետք է տեղի ունենա: Սովորաբար, pull-up միացված վիճակը լիովին ընդունելի է, քանի որ բարձր դիմադրողական միջավայրը չի նկատի տարբերությունը ուժեղ բարձր վարորդի և pull-up-ի միջև: Եթե ​​դա այդպես չէ, MCUCR ռեգիստրի PUD բիթը կարող է կարգաբերվել այնպես, որ անջատի բոլոր ձգումները բոլոր նավահանգիստներում:

Ներածման ներածման և ցածր ելքի միջև անցումը առաջացնում է նույն խնդիրը: Որպես միջանկյալ քայլ օգտատերը պետք է օգտագործի կամ եռ վիճակը ({DDxn, PORTxn} = 0b00) կամ ելքի բարձր վիճակը ({DDxn, PORTxn} = 0b10):

Աղյուսակ 10-1 ամփոփում է հսկիչ ազդանշանները փին արժեքի համար:

Աղյուսակ 10-1. Port Pin-ի կոնֆիգուրացիաներ

DDxn PORTxn PUD

(MCUCR-ում)

I/O Ձգում-up Մեկնաբանություն
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
անստորագիր char i;

/* Սահմանեք ձգումներ և բարձրացրեք ելքերը */

/* Սահմանեք նավահանգիստների կապիչների ուղղությունները */ PORTB = (1<

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

/* Տեղադրեք nop համաժամացման համար*/

_NOP ();

/* Կարդալ նավահանգիստների կապում */ i = PINB;

Թվային մուտքագրման միացման և քնի ռեժիմները

Ինչպես ցույց է տրված Նկար 10-2, թվային մուտքային ազդանշանը կարող է լինել clamped to ground է schmitt-trigger-ի մուտքի մոտ: Նկարում նշված SLEEP ազդանշանը սահմանվում է MCU Sleep Controller-ի կողմից Power-down ռեժիմում՝ խուսափելու մեծ էներգիայի սպառումից, եթե որոշ մուտքային ազդանշաններ մնացել են լողացող կամ ունեն անալոգային ազդանշանի մակարդակ մոտ VCC/2:

SLEEP-ը չեղյալ է հայտարարվել որպես արտաքին ընդհատման կապում միացված նավահանգիստների կապում: Եթե ​​արտաքին ընդհատման հարցումը միացված չէ, SLEEP-ն ակտիվ է նաև այս կապի համար: SLEEP-ը նույնպես անտեսված է տարբեր այլ այլընտրանքային գործառույթներով, ինչպես նկարագրված է ստորև «Այլընտրանքային նավահանգիստների գործառույթները» 57-րդ էջում.

Եթե ​​բարձր տրամաբանական մակարդակ («մեկ») առկա է ասինխրոն արտաքին ընդհատման փինում, որը կազմաձևված է որպես «Ընդհատում բարձրացող եզրին, ընկնող եզրին կամ ցանկացած տրամաբանական փոփոխություն փինում», մինչդեռ արտաքին ընդհատումը միացված չէ, համապատասխան արտաքին ընդհատման դրոշը կ վերը նշված Sleep ռեժիմից վերսկսելիս սահմանվի, քանի որ clampԱյս քնի ռեժիմում աշխատելը առաջացնում է պահանջվող տրամաբանական փոփոխությունը:

Չկապված կապում

Եթե ​​որոշ կապանքներ չօգտագործված են, խորհուրդ է տրվում ապահովել, որ այդ կապումներն ունենան սահմանված մակարդակ: Չնայած թվային մուտքերի մեծ մասն անջատված է խորը քնի ռեժիմներում, ինչպես նկարագրված է վերևում, լողացող մուտքերը պետք է խուսափել՝ նվազեցնելու ընթացիկ սպառումը բոլոր մյուս ռեժիմներում, որտեղ թվային մուտքերը միացված են (Վերականգնել, Ակտիվ ռեժիմ և Անգործուն ռեժիմ):

Չօգտագործված քորոցի որոշակի մակարդակ ապահովելու ամենապարզ մեթոդը ներքին ձգման հնարավորությունն է: Այս դեպքում զրոյականացման ժամանակ անջատիչը կանջատվի: Եթե ​​զրոյականացման ժամանակ ցածր էներգիայի սպառումը կարևոր է, խորհուրդ է տրվում օգտագործել արտաքին ձգվող կամ քաշվող սարք: Չօգտագործված կապումներն ուղղակիորեն VCC-ին կամ GND-ին միացնելը խորհուրդ չի տրվում, քանի որ դա կարող է առաջացնել չափազանց մեծ հոսանքներ, եթե փինը պատահաբար կազմաձևվի որպես ելք:

Այլընտրանքային նավահանգիստների գործառույթները

Նավահանգիստների մեծամասնությունը ունի այլընտրանքային գործառույթներ, բացի ընդհանուր թվային I/O լինելուց: Նկար 10-5 ցույց է տալիս, թե ինչպես է նավահանգստի փին հսկիչ ազդանշանները պարզեցվածից Նկար 10-2 կարող է փոխարինվել այլընտրանքային գործառույթներով: Գերակայող ազդանշանները կարող են չլինել բոլոր նավահանգիստների կապում, սակայն նկարը ծառայում է որպես ընդհանուր նկարագրություն, որը կիրառելի է AVR միկրոկառավարիչների ընտանիքի բոլոր նավահանգիստների համար:

Աղյուսակ 10-2. Այլընտրանքային գործառույթների համար գերակայող ազդանշանների ընդհանուր նկարագրությունը

Ազդանշանի անվանումը Ամբողջական անուն Նկարագրություն
PUOE Միացնել «Pull-up Override»-ը Եթե ​​այս ազդանշանը միացված է, ապա ձգվող միացումը կառավարվում է PUOV ազդանշանով: Եթե ​​այս ազդանշանը ջնջված է, ապա pull-up-ը միացված է, երբ

{DDxn, PORTxn, PUD} = 0b010:

ՊՈՒՈՎ Ձգվող վերացման արժեք Եթե ​​PUOE-ն դրված է, ապա pull-up-ը միացված/անջատված է, երբ PUOV-ը միացված է/ջնջված է՝ անկախ DDxn, PORTxn և PUD Register բիթերի կարգավորումներից:
DDOE Տվյալների ուղղության վերացում Միացնել Եթե ​​այս ազդանշանը կարգավորված է, ելքային վարորդի միացնելը կառավարվում է DDOV ազդանշանով: Եթե ​​այս ազդանշանը ջնջվի, ելքային դրայվերը միացված է DDxn ռեգիստրի բիթով:
DDOV Տվյալների ուղղության վերագրանցման արժեք Եթե ​​DDOE-ն դրված է, ելքային դրայվերը միացված/անջատված է, երբ DDOV-ը կարգաբերված/ջնջված է, անկախ DDxn ռեգիստրի բիտի կարգավորումից:
PVOE Port Value Override Միացնել Եթե ​​այս ազդանշանը միացված է, և ելքային դրայվերը միացված է, պորտի արժեքը վերահսկվում է PVOV ազդանշանով: Եթե ​​PVOE-ն ջնջված է, և ելքային դրայվերը միացված է, պորտի արժեքը վերահսկվում է PORTxn ռեգիստրի բիթով:
ՊՎՈՎ Port Value Override Value Եթե ​​PVOE-ն դրված է, ապա պորտի արժեքը սահմանվում է PVOV՝ անկախ PORTxn ռեգիստրի բիտի կարգավորումից:
PTOE Port Toggle Override Միացնել Եթե ​​PTOE-ն դրված է, PORTxn ռեգիստրի բիթը շրջված է:
DIEOE Թվային մուտքագրում Միացնել Override Միացնել Եթե ​​այս բիթը սահմանված է, թվային մուտքի ակտիվացումը կառավարվում է DIEOV ազդանշանով: Եթե ​​այս ազդանշանը ջնջվի, թվային մուտքի ակտիվացումը որոշվում է MCU վիճակով (Նորմալ ռեժիմ, քնի ռեժիմ):
ԴԻԵՈՎ Թվային մուտքագրումը միացնել անտեսման արժեքը Եթե ​​DIEOE-ն կարգավորված է, Թվային մուտքը միացված/անջատված է, երբ DIEOV-ը միացված/ջնջված է, անկախ MCU վիճակից (Նորմալ ռեժիմ, քնի ռեժիմ):
DI Թվային մուտք Սա այլընտրանքային գործառույթների թվային մուտքն է: Նկարում ազդանշանը միացված է schmitt-trigger-ի ելքին, բայց սինխրոնիզատորից առաջ: Եթե ​​Թվային մուտքագրումը չի օգտագործվում որպես ժամացույցի աղբյուր, այլընտրանքային գործառույթով մոդուլը կօգտագործի իր սեփական համաժամանակիչը:
AIO Անալոգային մուտք / ելք Սա անալոգային մուտքի/ելքի այլընտրանքային գործառույթներից է: Ազդանշանը ուղղակիորեն միացված է պահոցին և կարող է օգտագործվել երկկողմանի:

Հետևյալ ենթաբաժինները կարճ նկարագրում են յուրաքանչյուր պորտի այլընտրանքային գործառույթները և կապում են գերակա ազդանշանները այլընտրանքային ֆունկցիայի հետ: Լրացուցիչ մանրամասների համար տես այլընտրանքային գործառույթի նկարագրությունը:

Նավահանգստի B-ի այլընտրանքային գործառույթները

Նավահանգիստ B կապում այլընտրանքային գործառույթով ցուցադրված են Աղյուսակ 10-3.

Աղյուսակ 10-3. Նավահանգիստ B կապում այլընտրանքային գործառույթներ

Պորտ փին Այլընտրանքային գործառույթ
PB5

ՎԵՐԱԿԱՆԳՆԵԼ. Վերականգնել փին

dW: debugWIRE I/O ADC0: ADC մուտքային ալիք 0

PCINT5. Pin Change Interrupt, Աղբյուր 5

PB4 XTAL2. բյուրեղյա տատանվող ելք CLKO. Համակարգի ժամացույցի ելք ADC2. ADC մուտքային ալիք 2

OC1B. Ժմչաչափ/Հաշվիչ1 Համեմատել համընկնում B Արդյունք PCINT4. Փին Փոխել ընդհատում 0, Աղբյուր 4

PB3 XTAL1. բյուրեղյա օսցիլատորի մուտքագրում CLKI. արտաքին ժամացույցի մուտքագրում ADC3. ADC մուտքային ալիք 3

OC1B. Լրացուցիչ ժմչփ/հաշվիչ1 Համեմատել համընկնում 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 Համեմատել համապատասխանել A ելքը DO. USI տվյալների ելք (երեք լարերի ռեժիմ) PCINT1:Pin Change 0, Աղբյուր 1
PB0 MOSI:: SPI հիմնական տվյալների ելք / ստրուկ տվյալների մուտքագրում AIN0. անալոգային համեմատիչ, դրական մուտքագրում

OC0A. Ժամաչափ/Հաշվիչ0 Համեմատեք համընկնում Ա ելք

OC1A. Լրացուցիչ ժմչփ/հաշվիչ 1 Համեմատել համընկնում A ելք DI. USI տվյալների մուտքագրում (երեք լարային ռեժիմ)

SDA. USI տվյալների մուտքագրում (երկու լարային ռեժիմ) AREF. Արտաքին անալոգային հղում PCINT0. փին Փոխել ընդհատում 0, Աղբյուր 0

Նավահանգիստ B, բիթ 5 – RESET/dW/ADC0/PCINT5

ՌԵՍԵՏ. Արտաքին Վերակայման մուտքագրումն ակտիվ է ցածր և միացված է RSTDISBL ապահովիչը («1») ապածրագրավորելով: Pullup-ն ակտիվանում է, իսկ ելքային դրայվերը և թվային մուտքն անջատվում են, երբ փինն օգտագործվում է որպես RESET փին:

dW. Երբ debugWIRE Enable (DWEN) ապահովիչը ծրագրավորված է, իսկ կողպեքի բիթերը չծրագրավորված են, թիրախային սարքում debugWIRE համակարգը ակտիվանում է: RESET նավահանգիստը կազմաձևված է որպես մետաղալարերի և (բաց արտահոսքի) երկկողմանի մուտքային/ելք կապիչ, որը միացված է pull-up-ին և դառնում է թիրախի և էմուլյատորի միջև հաղորդակցման դարպաս:

ADC0՝ անալոգային թվային փոխարկիչ, ալիք 0:

PCINT5. Փին Փոխել ընդհատման աղբյուրը 5.

Նավահանգիստ B, բիթ 4 – XTAL2/CLKO/ADC2/OC1B/PCINT4

XTAL2. Chip Clock Oscillator pin 2. Օգտագործվում է որպես ժամացույցի մատիտ բոլոր չիպերի ժամացույցի աղբյուրների համար, բացառությամբ ներքին calibrable RC Oscillator և արտաքին ժամացույցի: Երբ օգտագործվում է որպես ժամացույցի պին, փին չի կարող օգտագործվել որպես մուտքի/ելքի կապում: Երբ օգտագործվում է ներքին չափաբերվող RC Oscillator կամ արտաքին ժամացույցը որպես Chip ժամացույցի աղբյուրներ, PB4-ը ծառայում է որպես սովորական I/O փին:

CLKO. բաժանված համակարգի ժամացույցը կարող է դուրս գալ PB4 փինով: Համակարգի բաժանված ժամացույցը դուրս կգա, եթե CKOUT Fuse-ը ծրագրավորվի՝ անկախ PORTB4 և DDB4 կարգավորումներից: Այն նաև դուրս կգա վերակայման ժամանակ:

ADC2՝ անալոգային թվային փոխարկիչ, ալիք 2:

OC1B. Արդյունք Համեմատել Համընկնման ելք. PB4 փին կարող է ծառայել որպես արտաքին ելք ժմչփի/հաշվիչի համար1 Համեմատել համընկնումը B, երբ կազմաձևված է որպես ելք (DDB4 հավաքածու): OC1B քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի ելքային կապն է:

PCINT4. Փին Փոխել ընդհատման աղբյուրը 4.

Նավահանգիստ B, բիթ 3 – XTAL1/CLKI/ADC3/OC1B/PCINT3

XTAL1. Chip Clock Oscillator pin 1. Օգտագործվում է չիպային ժամացույցի բոլոր աղբյուրների համար, բացառությամբ ներքին տրամաչափվող RC տատանվողի: Երբ օգտագործվում է որպես ժամացույցի պին, փին չի կարող օգտագործվել որպես մուտքի/ելքի կապում:

CLKI. Ժամացույցի մուտքագրում արտաքին ժամացույցի աղբյուրից, տես «Արտաքին ժամացույց» էջ 26.

ADC3՝ անալոգային թվային փոխարկիչ, ալիք 3:

OC1B. շրջված ելք Համեմատել համընկնման ելք. PB3 փին կարող է ծառայել որպես արտաքին ելք Ժամաչափի/Հաշվիչի համար1 Համեմատել Match B-ի համար, երբ կազմաձևված է որպես ելք (DDB3 հավաքածու): OC1B քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի շրջված ելքային փին է:

PCINT3. Փին Փոխել ընդհատման աղբյուրը 3.

Նավահանգիստ B, բիթ 2 – SCK/ADC1/T0/USCK/SCL/INT0/PCINT2

SCK. Հիմնական ժամացույցի ելք, Slave Clock մուտքագրման փին SPI ալիքի համար: Երբ SPI-ն միացված է որպես Slave, այս փին կազմաձևվում է որպես մուտքագրում՝ անկախ DDB2-ի կարգավորումից: Երբ SPI-ն միացված է որպես Master, այս փին-ի տվյալների ուղղությունը վերահսկվում է DDPB2-ի կողմից: Երբ PPI-ն ստիպում է SPI-ին մուտքագրել, pull-up-ը դեռ կարող է կառավարվել PORTB2 բիթով:

ADC1՝ անալոգային թվային փոխարկիչ, ալիք 1:

T0: Ժամաչափ/Հաշվիչի աղբյուր:

USCK. Եռալար ռեժիմի ունիվերսալ սերիական ինտերֆեյսի ժամացույց:

SCL. Երկու լարային ռեժիմ Սերիական ժամացույց USI Երկլարային ռեժիմի համար:

INT0. Արտաքին ընդհատման աղբյուր 0:

PCINT2. Փին Փոխել ընդհատման աղբյուրը 2.

Նավահանգիստ B, բիթ 1 – MISO/AIN1/OC0B/OC1A/DO/PCINT1

MISO. Տվյալների հիմնական մուտքագրում, Slave տվյալների ելքային փին SPI ալիքի համար: Երբ SPI-ն միացված է որպես Master, այս փին կազմաձևվում է որպես մուտքագրում՝ անկախ DDB1-ի կարգավորումից: Երբ SPI-ն միացված է որպես Slave, այս փին տվյալների ուղղությունը վերահսկվում է DDB1-ով: Երբ PPI-ն ստիպում է SPI-ին մուտքագրել, ապա pull-up-ը դեռ կարող է կառավարվել PORTB1 բիթով:

AIN1. Անալոգային համեմատիչի բացասական մուտք: Կազմաձևեք նավահանգիստը որպես մուտքագրում՝ անջատված ներքին ձգվող սարքով, որպեսզի խուսափեք թվային պորտի ֆունկցիայի միջամտությունից Անալոգային համեմատիչի գործառույթին:

OC0B. Արդյունք Համեմատել Համընկնման արդյունքը: PB1 փին կարող է ծառայել որպես արտաքին ելք Timer/Counter0 Compare Match B-ի համար: PB1 փին պետք է կազմաձևվի որպես ելք (DDB1 հավաքածու (մեկ)) այս գործառույթը սպասարկելու համար: OC0B քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի ելքային կապն է:

OC1A. Արդյունք Համեմատել Համընկնման ելք. PB1 փին կարող է ծառայել որպես արտաքին ելք Timer/Counter1 Compare Match B-ի համար, երբ կազմաձևված է որպես ելք (DDB1 հավաքածու): OC1A քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի ելքային կապն է:

DO՝ եռալար ռեժիմ Ունիվերսալ սերիական միջերեսի տվյալների ելք: Երեք լարային ռեժիմ Տվյալների ելքը գերազանցում է PORTB1 արժեքը և այն տեղափոխվում է դեպի նավահանգիստ, երբ տվյալների ուղղության DDB1 բիթը սահմանվում է (մեկ): PORTB1-ը դեռևս հնարավորություն է տալիս ձգումը, եթե ուղղությունը մուտքագրված է, և PORTB1-ը սահմանված է (մեկ):

PCINT1. Փին Փոխել ընդհատման աղբյուրը 1.

Նավահանգիստ B, բիթ 0 – MOSI/AIN0/OC0A/OC1A/DI/SDA/AREF/PCINT0

MOSI. SPI Master Data ելք, Slave Data մուտքագրում SPI ալիքի համար: Երբ SPI-ն միացված է որպես Slave, այս փին կազմաձևվում է որպես մուտքագրում՝ անկախ DDB0-ի կարգավորումից: Երբ SPI-ն միացված է որպես Master, այս PIN-ի տվյալների ուղղությունը վերահսկվում է DDB0-ով: Երբ PPI-ը ստիպում է PIN-ին մուտքագրել, ապա pull-up-ը դեռ կարող է կառավարվել PORTB0 բիթով:

AIN0. Անալոգային համեմատիչի դրական մուտքագրում: Կազմաձևեք նավահանգիստը որպես մուտքագրում՝ անջատված ներքին ձգվող սարքով, որպեսզի խուսափեք թվային պորտի ֆունկցիայի միջամտությունից Անալոգային համեմատիչի գործառույթին:

OC0A. Արդյունք Համեմատել Համընկնման արդյունքը: PB0 փին կարող է ծառայել որպես արտաքին ելք Timer/Counter0 Compare Match A-ի համար, երբ կազմաձևված է որպես ելք (DDB0 հավաքածու (մեկ)): OC0A քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի ելքային կապն է:

OC1A. շրջված ելք Համեմատել համընկնման ելք. PB0 փին կարող է ծառայել որպես արտաքին ելք Ժամաչափ/Հաշվիչ1 Համեմատել համընկնումը B-ի համար, երբ կազմաձևված է որպես ելք (DDB0 հավաքածու): OC1A քորոցը նաև PWM ռեժիմի ժմչփի ֆունկցիայի շրջված ելքային փին է:

SDA. Երկու լարային ռեժիմ Սերիական միջերեսի տվյալներ:

AREF. Արտաքին անալոգային հղում ADC-ի համար: Ձգվող և ելքային դրայվեր PB0-ում անջատված են, երբ փինն օգտագործվում է որպես արտաքին հղում կամ ներքին ձայնtagե Հղում արտաքին կոնդենսատորով AREF փինում:

DI. Տվյալների մուտքագրում USI եռալար ռեժիմում: USI Երեք լարային ռեժիմը չի հաղթահարում սովորական միացքի գործառույթները, ուստի քորոցը պետք է կազմաձևվի որպես մուտքագրում DI ֆունկցիայի համար:

PCINT0. Փին Փոխել ընդհատման աղբյուրը 0.

Աղյուսակ 10-4 և Աղյուսակ 10-5 կապել B պորտի այլընտրանքային գործառույթները ներքևում ներկայացված գերակա ազդանշանների հետ Նկար 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
DDOV debugWire փոխանցում 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
DDOV (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 Control Register

Բիթ 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 ԲՈԴՍԵ 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: Ձգվող անջատում

Երբ այս բիթը գրված է մեկին, I/O նավահանգիստներում pull-up-ներն անջատված են, նույնիսկ եթե DDxn և PORTxn ռեգիստրները կազմաձևված են այնպես, որ միացնեն pull-up-ները ({DDxn, PORTxn} = 0b01): Տեսնել «Կազմաձևել փին» էջ 54-ում այս հատկության մասին լրացուցիչ մանրամասների համար:

PORTB – Նավահանգիստ B տվյալների գրանցամատյան

Բիթ 7 6 5 4 3 2 1 0
0x18 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 – Նավահանգիստ B տվյալների ուղղության գրանցում

Բիթ 7 6 5 4 3 2 1 0
0x17 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 – B նավահանգիստ Մուտքային կապում հասցե

Բիթ 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Կարդալ/գրել R R R/W R/W R/W R/W R/W R/W
Սկզբնական արժեքը 0 0 N/A N/A N/A N/A N/A N/A

8-բիթանոց ժմչփ/հաշվիչ 0 PWM-ով

Առանձնահատկություններ

Երկու անկախ արդյունքի համեմատման միավորներ

Կրկնակի բուֆերացված ելքային համեմատության գրանցամատյաններ

Մաքրել ժմչփը Համեմատության համընկնման վրա (ավտոմատ վերաբեռնում)

Խափանումներից զերծ, փուլային ճիշտ զարկերակային լայնության մոդուլատոր (PWM)

Փոփոխական PWM ժամանակաշրջան

Հաճախականության գեներատոր

Երեք անկախ ընդհատման աղբյուրներ (TOV0, OCF0A և OCF0B)

Ավարտվել էview

Timer/Counter0-ը ընդհանուր նշանակության 8-բիթանոց ժմչփ/հաշվիչ մոդուլ է՝ երկու անկախ Արդյունքների համեմատման միավորներով և PWM աջակցությամբ: Այն թույլ է տալիս ճշգրիտ ծրագրի կատարման ժամանակացույցը (իրադարձությունների կառավարում) և ալիքների առաջացումը:

Ցուցադրված է 8-բիթանոց ժմչփի/հաշվիչի պարզեցված բլոկային դիագրամ Նկար 11-1. Մուտքագրման/ելքի կապիչների փաստացի տեղադրման համար տե՛ս «Pinout ATtiny25/45/85» էջ 2-ում. CPU-ին հասանելի I/O ռեգիստրները, ներառյալ I/O բիթերը և I/O փիները, ցուցադրվում են թավատառերով: Սարքի համար հատուկ I/O ռեգիստրը և բիթերի տեղակայումները թվարկված են «Գրանցել նկարագրությունը» էջում 77.

Ժամաչափ/հաշվիչը (TCNT0) և ելքային համեմատման գրանցամատյանները (OCR0A և OCR0B) 8-բիթանոց ռեգիստրներ են: Ընդհատման հարցումը (նկարում կրճատված է Int.Req.) ազդանշանները բոլորը տեսանելի են Timer Interrupt Flag Register-ում (TIFR): Բոլոր ընդհատումները առանձին դիմակավորված են Timer Interrupt Mask Register-ով (TIMSK): TIFR-ը և TIMSK-ը ներկայացված չեն նկարում:

Ժամաչափը/Հաշվիչը կարելի է ներսից ժամացույց անել՝ նախնական սանդղակի միջոցով կամ արտաքին ժամացույցի աղբյուրի միջոցով՝ T0 փին: Ժամացույցի ընտրության տրամաբանական բլոկը վերահսկում է, թե ժամացույցի որ աղբյուրն ու եզրն է օգտագործում ժմչփը/հաշվիչը՝ ավելացնելու (կամ նվազեցնելու) իր արժեքը: Ժամաչափը/Հաշիչը անգործուն է, երբ ժամացույցի աղբյուր ընտրված չէ: Ժամացույցի ընտրության տրամաբանությունից ստացված արդյունքը կոչվում է ժամանակաչափ (clkT0):

Կրկնակի բուֆերացված Արդյունքների համեմատության գրանցամատյանները (OCR0A և OCR0B) համեմատվում են ժմչփի/հաշվիչի արժեքի հետ բոլոր ժամանակներում: Համեմատության արդյունքը կարող է օգտագործվել Waveform Generator-ի կողմից՝ PWM կամ փոփոխական հաճախականության ելք արտադրելու Արդյունք Համեմատման կապում (OC0A և OC0B): Տե՛ս «Արդյունքների համեմատման միավորը» էջ 69-ում: մանրամասների համար. Համեմատել համընկնման միջոցառումը նաև կսահմանի Համեմատության դրոշակ (OCF0A կամ OCF0B), որը կարող է օգտագործվել Արդյունքների համեմատության ընդհատման հարցում ստեղծելու համար:

Սահմանումներ

Այս բաժնում ռեգիստրի և բիթերի շատ հղումներ գրված են ընդհանուր ձևով: Փոքրատառ “n”-ը փոխարինում է Ժամաչափի/Հաշվիչի համարին, այս դեպքում՝ 0-ին: Փոքրատառ “x”-ը փոխարինում է Արդյունք Համեմատման Միավորին, այս դեպքում Համեմատեք Միավորը A կամ Համեմատեք Միավորը B: Այնուամենայնիվ, ռեգիստրը կամ բիթն օգտագործելիս սահմանում է Ծրագրում պետք է օգտագործվի ճշգրիտ ձևը, այսինքն՝ TCNT0՝ ժմչփի/Հաշվիչի արժեքին մուտք գործելու համար և այլն:

Սահմանումները մեջ Աղյուսակ 11-1 լայնորեն օգտագործվում են նաև ամբողջ փաստաթղթում:

Աղյուսակ 11-1. Սահմանումներ

Մշտական Նկարագրություն
ՆԵՐՔԻՆ Հաշվիչը հասնում է BOTTOM, երբ դառնում է 0x00
ՄԱՔՍ Հաշվիչը հասնում է առավելագույնին, երբ դառնում է 0xFF (տասնորդական 255)
ԹՈՓ Հաշվիչը հասնում է TOP-ին, երբ այն հավասարվում է հաշվման հաջորդականության ամենաբարձր արժեքին: TOP արժեքը կարող է նշանակվել որպես ֆիքսված արժեքը 0xFF (MAX) կամ OCR0A գրանցամատյանում պահվող արժեքը: Հանձնարարությունը կախված է գործողության ռեժիմից

Ժամաչափ/Հաշվիչ Prescaler և ժամացույցի աղբյուրներ

Ժամաչափը/Հաշվիչը կարող է հաշվվել ներքին կամ արտաքին ժամացույցի աղբյուրի միջոցով: Ժամացույցի աղբյուրը ընտրվում է Clock Select տրամաբանությամբ, որը վերահսկվում է Ժամացույցի ընտրության (c) բիթերով, որոնք տեղակայված են Timer/Counter0 Control Register-ում (TCCR0B):

Ներքին ժամացույցի աղբյուր Prescaler-ով

Timer/Counter0-ը կարող է հաշվվել անմիջապես համակարգի ժամացույցի միջոցով (սահմանելով CS0[2:0] = 1): Սա ապահովում է ամենաարագ աշխատանքը՝ առավելագույն ժմչփ/հաշվիչի հաճախականությամբ, որը հավասար է համակարգի ժամացույցի հաճախականությանը (fCLK_I/O): Որպես այլընտրանքային տարբերակ, նախնական մասշտաբի չորս հպումներից մեկը կարող է օգտագործվել որպես ժամացույցի աղբյուր: Նախապես չափված ժամացույցն ունի կամի հաճախականություն

Prescaler Reset

Prescaler-ը ազատ է աշխատում, այսինքն՝ այն գործում է Timer/Counter0-ի Clock Select տրամաբանությունից անկախ: Քանի որ նախնական մասշտաբավորիչը չի ազդում ժմչփի/հաշվիչի ժամացույցի ընտրության վրա, նախնական մասշտաբավորիչի վիճակը ազդեցություն կունենա այն իրավիճակների համար, որտեղ օգտագործվում է նախամասշտաբացված ժամացույց: Մեկ նախկինampՆախամասշտաբային արտեֆակտը այն է, երբ ժմչփը/հաշվիչը միացված է և ժամացույց է անում նախաչափիչի կողմից (6 > CS0[2:0] > 1): Համակարգի ժամացույցի ցիկլերի քանակը, երբ ժմչփը միացված է մինչև առաջին հաշվարկը, կարող է լինել 1-ից մինչև N+1 համակարգի ժամացույցի ցիկլեր, որտեղ N-ը հավասար է նախնական մասշտաբային բաժանարարին (8, 64, 256 կամ 1024):

Հնարավոր է օգտագործել Prescaler Reset-ը ժմչփի/հաշվիչը ծրագրի կատարման հետ համաժամեցնելու համար:

Clամացույցի արտաքին աղբյուր

Արտաքին ժամացույցի աղբյուրը, որը կիրառվում է T0 փինին, կարող է օգտագործվել որպես ժամաչափ/հաշվիչ (clkT0): T0 քորոցը s էampղեկավարվում է մեկ անգամ համակարգի ժամացույցի ցիկլով փին համաժամացման տրամաբանությամբ: Համաժամեցված (սampled) ազդանշանն այնուհետև փոխանցվում է

եզրային դետեկտորի միջոցով: Նկար 11-2 ցույց է տալիս T0 համաժամացման և եզրային դետեկտորի տրամաբանության ֆունկցիոնալ համարժեք բլոկային դիագրամ: Ռեգիստրները հաշվվում են ներքին համակարգի ժամացույցի դրական եզրին (clkI/O): Ներքին համակարգի ժամացույցի բարձր ժամանակահատվածում սողնակը թափանցիկ է:

Եզրային դետեկտորը ստեղծում է մեկ clkT0 իմպուլս իր հայտնաբերած յուրաքանչյուր դրական (CS0[2:0] = 7) կամ բացասական (CS0[2:0] = 6) եզրի համար:

OCR0x ռեգիստրները կրկնակի բուֆերացված են, երբ օգտագործում են զարկերակային լայնության մոդուլյացիայի (PWM) ռեժիմներից որևէ մեկը: Գործողության նորմալ և Clear Timer on Compare (CTC) ռեժիմների համար կրկնակի բուֆերավորումն անջատված է: Կրկնակի բուֆերացումը համաժամացնում է OCR0x Համեմատության գրանցամատյանների թարմացումը հաշվման հաջորդականության վերևի կամ ներքևի հետ: Համաժամացումը կանխում է կենտ երկարության, ոչ սիմետրիկ PWM իմպուլսների առաջացումը՝ դրանով իսկ ելքը դարձնելով առանց խափանումների:

OCR0x ռեգիստրի հասանելիությունը կարող է բարդ թվալ, բայց դա այդպես չէ: Երբ կրկնակի բուֆերացումը միացված է, պրոցեսորը հասանելի է OCR0x բուֆերային ռեգիստրին, և եթե կրկնակի բուֆերավորումն անջատված է, պրոցեսորը անմիջապես մուտք կունենա OCR0x:

Համեմատեք ուժի ելքը

Ոչ PWM ալիքի ձևավորման ռեժիմներում, համեմատիչի համընկնման արդյունքը կարող է պարտադրվել՝ մեկ գրելով Force Output Compare (FOC0x) բիթում: Համեմատության պարտադրումը չի սահմանի OCF0x դրոշը կամ վերաբեռնելու/ջնջելու ժամանակաչափը, բայց OC0x փին կթարմացվի այնպես, կարծես իրական Համեմատման համընկնում է տեղի ունեցել (COM0x[1:0] բիթերի կարգավորումները սահմանում են, թե արդյոք OC0x փին դրված է, ջնջված է: կամ անջատված):

Համեմատեք Match Blocking by TCNT0 Գրեք

TCNT0 ռեգիստրում CPU-ի գրելու բոլոր գործողությունները կարգելափակեն ցանկացած Համեմատման համընկնումը, որը տեղի է ունենում հաջորդ ժամանակաչափի ժամացույցի ցիկլում, նույնիսկ երբ ժմչփը դադարեցված է: Այս հատկությունը թույլ է տալիս OCR0x-ին սկզբնավորել նույն արժեքով, ինչ TCNT0-ն՝ առանց ընդհատման գործարկելու, երբ Ժամաչափ/Հաշվիչ ժամացույցը միացված է:

Արդյունքների համեմատության միավորի օգտագործումը

Քանի որ TCNT0-ը ցանկացած գործողության ռեժիմում գրելը կարգելափակի բոլոր Համեմատել համընկնումները մեկ ժամաչափի ցիկլի համար, TCNT0-ը փոխելու ժամանակ ռիսկեր կան Արդյունքների համեմատման միավորի օգտագործման ժամանակ՝ անկախ նրանից՝ Ժամաչափը/Հաշվիչը աշխատում է, թե ոչ: Եթե ​​TCNT0-ում գրված արժեքը հավասար է OCR0x արժեքին, Համեմատել համընկնումը բաց կթողնի, ինչը կհանգեցնի ալիքի սխալ ձևավորման: Նմանապես, մի ​​գրեք TCNT0 արժեքը, որը հավասար է BOTTOM-ին, երբ հաշվիչը նվազում է:

OC0x-ի կարգավորումը պետք է կատարվի նախքան տվյալների ուղղության ռեգիստրը տեղադրելը, որպեսզի նավահանգիստի փին դուրս գա: OC0x արժեքը սահմանելու ամենադյուրին ճանապարհն է օգտագործել Force Output Compare (FOC0x) strobe bits նորմալ ռեժիմում: OC0x ռեգիստրները պահպանում են իրենց արժեքները նույնիսկ Waveform Generation ռեժիմների միջև փոխվելիս:

Ուշադիր եղեք, որ COM0x[1:0] բիթերը կրկնակի բուֆերացված չեն համեմատության արժեքի հետ միասին: COM0x[1:0] բիթերի փոփոխությունն անմիջապես ուժի մեջ կմտնի:

Համեմատեք Match Output Unit

Համեմատեք ելքային ռեժիմի (COM0x[1:0]) բիթերը երկու գործառույթ ունեն։ Ալիքի ձևերի գեներատորն օգտագործում է COM0x[1:0] բիթերը հաջորդ Համեմատման համընկնման ժամանակ Արդյունքների համեմատության (OC0x) վիճակը սահմանելու համար: Նաև COM0x[1:0] բիթերը վերահսկում են OC0x փին ելքային աղբյուրը: Նկար 11-6 ցույց է տալիս COM0x[1:0] բիթային պարամետրի վրա ազդող տրամաբանության պարզեցված սխեմա: Նկարում I/O գրանցամատյանները, I/O բիթերը և I/O քորոցները ցուցադրված են թավատառերով: Ցուցադրվում են միայն ընդհանուր I/O Port Control ռեգիստրների (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 ցույց է տալիս COM0x[1:0] բիթային ֆունկցիոնալությունը, երբ WGM0[2:0] բիթերը դրված են նորմալ կամ CTC ռեժիմի (ոչ PWM):

Աղյուսակ 11-2. Համեմատեք ելքային ռեժիմը, ոչ PWM ռեժիմը

COM0A1 COM0B1 COM0A0 COM0B0 Նկարագրություն
0 0 Պորտի նորմալ աշխատանք, OC0A/OC0B անջատված է:
0 1 Միացնել OC0A/OC0B Համեմատել համընկնումը
1 0 Մաքրել OC0A/OC0B-ը Համեմատել համընկնումը
1 1 Սահմանեք OC0A/OC0B Համեմատության համընկնումը

Աղյուսակ 11-3 ցույց է տալիս COM0x[1:0] բիթային ֆունկցիոնալությունը, երբ WGM0[2:0] բիթերը միացված են արագ PWM ռեժիմին:

Աղյուսակ 11-3. Համեմատեք ելքային ռեժիմը, արագ PWM ռեժիմը(1)

COM0A1 COM0B1 COM0A0 COM0B0 Նկարագրություն
0 0 Պորտի նորմալ աշխատանք, OC0A/OC0B անջատված է:
0 1 Վերապահված
1 0 Մաքրել OC0A/OC0B-ը Համեմատության համընկնման վրա, սահմանել OC0A/OC0B-ը ՆԵՐՔԻՆ (ոչ շրջվող ռեժիմ)
1 1 Սահմանեք OC0A/OC0B-ը Համեմատության համընկնման վրա, ջնջեք OC0A/OC0B-ը ՆԵՐՔԻՆ (շրջելու ռեժիմ)

Նշում. Հատուկ դեպք է տեղի ունենում, երբ OCR0A կամ OCR0B հավասար է TOP-ին, իսկ COM0A1/COM0B1-ը սահմանված է: Այս դեպքում, համեմատության համընկնումն անտեսվում է, բայց հավաքածուն կամ մաքրումը կատարվում է BOTTOM-ում: Տեսնել «Արագ PWM ռեժիմ» էջ 73 լրացուցիչ մանրամասների համար:

Աղյուսակ 11-4 ցույց է տալիս COM0x[1:0] բիթային ֆունկցիոնալությունը, երբ WGM0[2:0] բիթերը միացված են փուլային ճիշտ PWM ռեժիմին:

Աղյուսակ 11-4. Համեմատեք ելքային ռեժիմը, փուլային ճիշտ PWM ռեժիմը(1)

COM0A1 COM0B1 COM0A0 COM0B0 Նկարագրություն
0 0 Պորտի նորմալ աշխատանք, OC0A/OC0B անջատված է:
0 1 Վերապահված
1 0 Մաքրել OC0A/OC0B-ը Համեմատել համընկնումը հաշվելու ժամանակ: Սահմանեք OC0A/OC0B-ը «Համեմատել համընկնումը» ռեժիմում, երբ հաշվում եք:
1 1 Սահմանեք OC0A/OC0B-ը «Համեմատել համընկնումը» հաշվելու ժամանակ: Մաքրել OC0A/OC0B-ը «Համեմատել համընկնումը» հաշվելու ժամանակ:

Նշում. 1. Հատուկ դեպք է տեղի ունենում, երբ OCR0A կամ OCR0B հավասար է TOP-ին, իսկ COM0A1/COM0B1-ը դրված է: Այս դեպքում Համեմատության համընկնումն անտեսվում է, բայց հավաքածուն կամ մաքրումը կատարվում է TOP-ում: Տեսնել «Փուլային ճիշտ PWM ռեժիմ» էջ 74 լրացուցիչ մանրամասների համար:

Բիթ 3:2 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են ATtiny25/45/85-ում և միշտ կկարդան որպես զրո:

Բիթ 1:0 – WGM0[1:0]. Ալիքի ձևավորման ռեժիմ

Համակցված TCCR02B ռեգիստրում հայտնաբերված WGM0 բիթերի հետ՝ այս բիթերը վերահսկում են հաշվիչի հաշվառման հաջորդականությունը, առավելագույն (TOP) հաշվիչի աղբյուրը և ալիքի ձևավորման ինչ տեսակ պետք է օգտագործվի, տես. Աղյուսակ 11-5. Ժամաչափի/Հաշվիչի միավորի կողմից աջակցվող աշխատանքի ռեժիմներն են՝ նորմալ ռեժիմ (հաշվիչ), Մաքրել ժմչփը համեմատելու համընկնման (CTC) ռեժիմում և երկու տեսակի զարկերակային լայնության մոդուլյացիայի (PWM) ռեժիմներ (տես «Շահագործման եղանակներ» 71-րդ էջում).

Աղյուսակ 11-5. Waveform Generation Mode Bit Description

Ռեժիմ WGM 02 WGM 01 WGM 00 Ժամաչափ/Հաշվիչի աշխատանքի ռեժիմ ԹՈՓ OCRx-ի թարմացում ժամը TOV դրոշը միացված է
0 0 0 0 Նորմալ 0xFF Անմիջապես ՄԱՔՍ(1)
1 0 0 1 PWM, փուլը ճիշտ է 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 PWM, փուլը ճիշտ է OCRA ԹՈՓ ՆԵՐՔԻՆ(2)
6 1 1 0 Վերապահված
7 1 1 1 Արագ PWM OCRA ՆԵՐՔԻՆ(2) ԹՈՓ

Բիթ 7 – FOC0A. ուժի ելք Համեմատեք Ա

FOC0A բիթն ակտիվ է միայն այն դեպքում, երբ WGM բիթերը նշում են ոչ PWM ռեժիմ:

Այնուամենայնիվ, ապագա սարքերի հետ համատեղելիությունն ապահովելու համար այս բիթը պետք է սահմանվի զրոյի, երբ TCCR0B գրված է PWM ռեժիմում աշխատելիս: Տրամաբանական մեկը FOC0A բիթում գրելիս անհապաղ Համեմատել համընկնումը պարտադրվում է Waveform Generation միավորի վրա: OC0A ելքը փոխվում է ըստ իր COM0A[1:0] բիթերի կարգավորումների: Նշենք, որ FOC0A բիթն իրականացվում է որպես ստրոբ: Հետևաբար, COM0A[1:0] բիթերում առկա արժեքն է, որը որոշում է հարկադիր համեմատության ազդեցությունը:

FOC0A strobe-ը չի առաջացնի որևէ ընդհատում և չի ջնջի ժամանակաչափը CTC ռեժիմում՝ օգտագործելով OCR0A-ն որպես TOP: FOC0A բիթը միշտ կարդացվում է որպես զրո:

Բիթ 6 – FOC0B. ուժի ելք Համեմատեք B

FOC0B բիթն ակտիվ է միայն այն դեպքում, երբ WGM բիթերը նշում են ոչ PWM ռեժիմ:

Այնուամենայնիվ, ապագա սարքերի հետ համատեղելիությունն ապահովելու համար այս բիթը պետք է սահմանվի զրոյի, երբ TCCR0B գրված է PWM ռեժիմում աշխատելիս: Տրամաբանական մեկը FOC0B բիթում գրելիս անհապաղ Համեմատել համընկնումը պարտադրվում է Waveform Generation միավորի վրա: OC0B ելքը փոխվում է ըստ իր COM0B[1:0] բիթերի կարգավորումների: Նշենք, որ FOC0B բիթն իրականացվում է որպես ստրոբ: Հետևաբար, COM0B[1:0] բիթերում առկա արժեքն է, որը որոշում է հարկադիր համեմատության ազդեցությունը:

FOC0B ստրոբը որևէ ընդհատում չի առաջացնի, ինչպես նաև չի ջնջի ժամաչափը CTC ռեժիմում՝ օգտագործելով OCR0B որպես TOP:

FOC0B բիթը միշտ կարդացվում է որպես զրո:

Բիթ 5:4 – Պատասխան. Պահպանված բիթ

Այս բիթերը վերապահված բիթեր են ATtiny25/45/85-ում և միշտ կկարդան որպես զրո:

Բիթ 3 – WGM02. Ալիքի ձևավորման ռեժիմ

Տես նկարագրությունը «TCCR0A – Ժամաչափ/Հաշվիչի կառավարման ռեգիստր A» էջ 77.

Բիթ 2:0 – CS0[2:0]. Ժամացույցի ընտրություն

Ժամացույցի ընտրության երեք բիթերը ընտրում են ժամացույցի աղբյուրը, որը պետք է օգտագործվի Ժամաչափի/Հաշվիչի կողմից:

Աղյուսակ 11-6. Ժամացույցի ընտրություն Bit Description

CS02 CS01 CS00 Նկարագրություն
0 0 0 Ժամացույցի աղբյուր չկա (ժմչփը/հաշվիչը դադարեցված է)
0 0 1 clkI/O/(Առանց նախնական չափման)
0 1 0 clkI/O/8 (Presscaler-ից)
0 1 1 clkI/O/64 (Presscaler-ից)
1 0 0 clkI/O/256 (Presscaler-ից)
1 0 1 clkI/O/1024 (Presscaler-ից)
1 1 0 Արտաքին ժամացույցի աղբյուր T0 փին: Ժամացույցը ընկնող եզրին:
1 1 1 Արտաքին ժամացույցի աղբյուր T0 փին: Ժամացույցը բարձրացող եզրին:

Եթե ​​ժմչփի/հաշվիչի համար օգտագործվում են արտաքին փին ռեժիմներ, ապա T0 փին անցումները կաշխատեն հաշվիչը, նույնիսկ եթե փին կազմաձևված է որպես ելք: Այս հատկությունը թույլ է տալիս ծրագրային վերահսկել հաշվարկը:

Հաշվիչ և համեմատող միավորներ

Timer/Counter1 ընդհանուր գործողությունը նկարագրվում է ասինխրոն ռեժիմում, իսկ սինխրոն ռեժիմում գործողությունը նշվում է միայն այն դեպքում, եթե կան տարբերություններ այս երկու ռեժիմների միջև: Նկար 12-2 ցույց է տալիս Ժամաչափ/Հաշվիչ 1-ի համաժամացման ռեգիստրի բլոկային դիագրամը և ռեգիստրների միջև համաժամացման հետաձգումները: Նկատի ունեցեք, որ ժամացույցի բոլոր մանրամասները ներկայացված չեն նկարում: Timer/Counter1 ռեգիստրի արժեքները անցնում են ներքին համաժամացման ռեգիստրների միջով, որոնք առաջացնում են մուտքային համաժամացման հետաձգում, նախքան հաշվիչի գործողության վրա ազդելը: TCCR1, GTCCR, OCR1A, OCR1B և OCR1C գրանցամատյանները կարող են հետ կարդալ ռեգիստրը գրելուց անմիջապես հետո: Ընթերցման արժեքները հետաձգվում են Timer/Counter1 (TCNT1) ռեգիստրի և դրոշակների (OCF1A, OCF1B և TOV1) համար՝ մուտքային և ելքային համաժամացման պատճառով:

Timer/Counter1-ն առանձնանում է բարձր լուծաչափով և բարձր ճշգրտությամբ՝ ավելի ցածր նախաչափման հնարավորություններով: Այն կարող է նաև աջակցել երկու ճշգրիտ, բարձր արագությամբ, 8-բիթանոց զարկերակային լայնության մոդուլատորներին՝ օգտագործելով մինչև 64 ՄՀց ժամացույցի արագություն (կամ 32 ՄՀց ցածր արագության ռեժիմում): Այս ռեժիմում Timer/Counter1-ը և ելքային համեմատման ռեգիստրները ծառայում են որպես երկակի ինքնուրույն PWM-ներ՝ չհամընկնող ոչ շրջված և շրջված ելքերով: Վերաբերել էջ 86 այս ֆունկցիայի մանրամասն նկարագրության համար: Նմանապես, նախաչափման բարձր հնարավորությունները այս միավորն օգտակար են դարձնում ավելի ցածր արագության գործառույթների կամ ճշգրիտ ժամանակի գործառույթների համար՝ հազվադեպ գործողություններով:

Նկար 12-2. Ժամաչափ/Հաշվիչ 1 Համաժամացման Գրանցման բլոկ դիագրամ:

Ժամաչափը/Հաշվիչը1 և նախնական սանդղակը թույլ են տալիս գործարկել պրոցեսորը ցանկացած ժամացույցի աղբյուրից, մինչդեռ նախասքանդավորիչը աշխատում է արագ 64 ՄՀց (կամ 32 ՄՀց ցածր արագության ռեժիմում) PCK ժամացույցի վրա ասինխրոն ռեժիմում:

Նկատի ունեցեք, որ համակարգի ժամացույցի հաճախականությունը պետք է ցածր լինի PCK հաճախականության մեկ երրորդից: Asynchronous Timer/Counter1-ի համաժամացման մեխանիզմին անհրաժեշտ է PCK-ի առնվազն երկու եզր, երբ համակարգի ժամացույցը բարձր է: Եթե ​​համակարգի ժամացույցի հաճախականությունը չափազանց բարձր է, ապա տվյալների կամ կառավարման արժեքների կորստի վտանգ կա:

Հետևյալը Նկար 12-3 ցույց է տալիս Timer/Counter1-ի բլոկային դիագրամը:

Աղյուսակ 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-ի բնութագրերը, մեկ ավարտված ալիքներ: TA = -40°C-ից +85°C

Խորհրդանիշ Պարամետր Վիճակ Min Տիպ Մաքս Միավորներ
Բանաձեւ 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
Clամացույցի հաճախականությունը 50 1000 kHz
VIN Ներածման ծավալըtage GND VREF V
Մուտքային թողունակություն 38.4 kHz
ԱՐԵՖ Արտաքին հղում Հատ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-ի բնութագրերը, դիֆերենցիալ ալիքները (միաբևեռ ռեժիմ): TA = -40°C-ից +85°C

Խորհրդանիշ Պարամետր Վիճակ Min Տիպ Մաքս Միավորներ
Բանաձեւ Շահույթ = 1x 10 Բիթ
Շահույթ = 20x 10 Բիթ
Բացարձակ ճշգրտություն (ներառյալ INL, DNL և

Քվանտացում, շահույթ և օֆսեթ սխալներ)

Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

10.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

20.0 LSB
Ինտեգրալ ոչ գծայինություն (INL) (Ճշգրտություն օֆսեթից և ձեռքբերման չափորոշումից հետո) Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

4.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

10.0 LSB
Սխալ ձեռք բերել Շահույթ = 1x 10.0 LSB
Շահույթ = 20x 15.0 LSB
Օֆսեթ սխալ Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

3.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

4.0 LSB
Փոխարկման ժամանակը Անվճար վազող փոխակերպում 70 280 μs
Clամացույցի հաճախականությունը 50 200 kHz
VIN Ներածման ծավալըtage GND VCC V
VDIFF Մուտքի դիֆերենցիալ ծավալtage VREF/Gain V
Մուտքային թողունակություն 4 kHz
ԱՐԵՖ Արտաքին հղում Հատ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-ի բնութագրերը, դիֆերենցիալ ալիքները (երկբևեռ ռեժիմ): TA = -40°C-ից +85°C

Խորհրդանիշ Պարամետր Վիճակ Min Տիպ Մաքս Միավորներ
Բանաձեւ Շահույթ = 1x 10 Բիթ
Շահույթ = 20x 10 Բիթ
Բացարձակ ճշգրտություն (ներառյալ INL, DNL և

Քվանտացում, շահույթ և օֆսեթ սխալներ)

Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

8.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

8.0 LSB
Ինտեգրալ ոչ գծայինություն (INL) (Ճշգրտություն օֆսեթից և ձեռքբերման չափորոշումից հետո) Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

4.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

5.0 LSB
Սխալ ձեռք բերել Շահույթ = 1x 4.0 LSB
Շահույթ = 20x 5.0 LSB
Օֆսեթ սխալ Շահույթ = 1x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

3.0 LSB
Շահույթ = 20x

VREF = 4V, VCC = 5V

ADC ժամացույց = 50 – 200 կՀց

4.0 LSB
Փոխարկման ժամանակը Անվճար վազող փոխակերպում 70 280 μs
Clամացույցի հաճախականությունը 50 200 kHz
VIN Ներածման ծավալըtage GND VCC V
VDIFF Մուտքի դիֆերենցիալ ծավալtage VREF/Gain V
Մուտքային թողունակություն 4 kHz
ԱՐԵՖ Արտաքին հղում Հատ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 Ավելացրեք Carry two Register-ով Rd ← Rd + Rr + C Z,C,N,V,H 1
ADIW Rdl, K Ավելացնել Անմիջապես Word-ին Rdh:Rdl ← Rdh:Rdl + K Z,C,N,V,S 2
ԵՆԹԱԿԱ Rd, Rr Հանեք երկու գրանցամատյան Rd ← Rd – Rr Z,C,N,V,H 1
SUBI Ռդ, Կ Ռեգիստրից հանել հաստատուն Rd ← Rd – Կ Z,C,N,V,H 1
SBC Rd, Rr Հանեք երկու գրանցամատյանով Rd ← Rd – Rr – C Z,C,N,V,H 1
SBCI Ռդ, Կ Carry Constant-ով հանել Reg. Rd ← Rd – K – C Z,C,N,V,H 1
SBIW Rdl, K Word-ից հանել անմիջապես Rdh:Rdl ← Rdh:Rdl – Կ Z,C,N,V,S 2
ԵՎ Rd, Rr Տրամաբանական ԵՎ գրանցումներ Rd ← Rd ∙ Rr Զ, Ն, Վ 1
ԱՆԴԻ Ռդ, Կ Տրամաբանական ԵՎ գրանցում և հաստատուն Rd ← Rd ∙ Կ Զ, Ն, Վ 1
OR Rd, Rr Տրամաբանական ԿԱՄ ռեգիստրներ Rd ← Rd v Rr Զ, Ն, Վ 1
ՕՐԻ Ռդ, Կ Տրամաբանական ԿԱՄ գրանցում և հաստատուն Rd ← Rd v K Զ, Ն, Վ 1
EOR Rd, Rr Բացառիկ ԿԱՄ ռեգիստրներ Rd ← Rd ⊕ Rr Զ, Ն, Վ 1
COM Rd One's Complement Rd ← 0xFF − Rd Z,C,N,V 1
ՆԵԳ Rd Երկուսի լրացում Rd ← 0x00 − Rd Z,C,N,V,H 1
SBR Rd, K Սահմանեք բիթ(ներ) գրանցման մեջ Rd ← Rd v K Զ, Ն, Վ 1
CBR Rd, K Մաքրել բիթ(ները) գրանցամատյանում Rd ← Rd ∙ (0xFF – K) Զ, Ն, Վ 1
INC Rd Ավելացում Rd ← Rd + 1 Զ, Ն, Վ 1
ԴԵԿՏ Rd Անկում Rd ← Rd − 1 Զ, Ն, Վ 1
TST Rd Թեստ զրոյի կամ մինուսի համար Rd ← Rd ∙ Rd Զ, Ն, Վ 1
CLR Rd Մաքրել գրանցամատյանը Rd ← Rd ⊕ Rd Զ, Ն, Վ 1
SER Rd Սահմանել գրանցում Rd ← 0xFF Ոչ մեկը 1
ՄԱՍՆԱՃՅՈՒՂԻ ՑՈՒՑՈՒՄՆԵՐ
RJMP k Հարաբերական ցատկ PC ← PC + k + 1 Ոչ մեկը 2
IJMP Անուղղակի Անցնել դեպի (Z) PC ← Զ Ոչ մեկը 2
RCALL k Հարաբերական ենթածրագրի զանգ PC ← PC + k + 1 Ոչ մեկը 3
ICALL Անուղղակի զանգ դեպի (Z) PC ← Զ Ոչ մեկը 3
RET Ենթակարգ Վերադարձ PC ← ԿՈՒՍԱԿ Ոչ մեկը 4
ՌԵՏԻ Ընդհատել Վերադարձ PC ← ԿՈՒՍԱԿ 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 Համեմատեք Գրանցվել Անմիջականի հետ Rd − K Z, N, V, C, H 1
SBRC Rr, բ Բաց թողնել, եթե գրանցամատյանում բիթը մաքրվել է եթե (Rr(b)=0) PC ← PC + 2 կամ 3 Ոչ մեկը 1/2/3
SBRS Rr, բ Բաց թողնել, եթե Bit in Register-ում սահմանված է եթե (Rr(b)=1) PC ← PC + 2 կամ 3 Ոչ մեկը 1/2/3
SBIC Պ, բ Բաց թողնել, եթե I/O գրանցամատյանում բիթը մաքրվել է եթե (P(b)=0) PC ← PC + 2 կամ 3 Ոչ մեկը 1/2/3
SBIS Պ, բ Բաց թողնել, եթե I/O ռեգիստրում Bit-ը սահմանված է եթե (P(b)=1) PC ← PC + 2 կամ 3 Ոչ մեկը 1/2/3
BRBS s, k Մասնաճյուղ, եթե դրված է կարգավիճակի դրոշակ եթե (SREG(ներ) = 1) ապա PC←PC+k + 1 Ոչ մեկը 1/2
BRBC s, k Մասնաճյուղ, եթե կարգավիճակի դրոշը մաքրված է եթե (SREG(ներ) = 0) ապա PC←PC+k + 1 Ոչ մեկը 1/2
BREQ k Մասնաճյուղ, եթե հավասար է եթե (Z = 1), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRNE k Մասնաճյուղ, եթե ոչ հավասար եթե (Z = 0), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRCS k Branch if Carry Set եթե (C = 1), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRCC k Մասնաճյուղ, եթե այն մաքրված է եթե (C = 0), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
ԲՌՇ 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
ԲՌԳԵ k Մասնաճյուղը, եթե ավելի մեծ է կամ հավասար, ստորագրված է եթե (N ⊕ V= 0), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRLT k Մասնաճյուղ, եթե զրոյից պակաս է, ստորագրված է եթե (N ⊕ V= 1), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRHS k Branch if Half Carry Flag Set եթե (H = 1), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRHC k Մասնաճյուղ, եթե Half Carry Flag մաքրված է եթե (H = 0), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRTS k Branch if T Flag Set եթե (T = 1), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRTC k Մասնաճյուղ, եթե T դրոշը մաքրված է եթե (T = 0), ապա PC ← PC + k + 1 Ոչ մեկը 1/2
BRVS k Մասնաճյուղ, եթե սահմանվել է Overflow Flag եթե (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
ԲԻՏ ԵՎ ԲԻՏ-ԹԵՍՏԻ ՀՐԱՀԱՆԳՆԵՐ
SBI Պ,բ Սահմանեք բիթը I/O ռեգիստրում I/O(P,b) ← 1 Ոչ մեկը 2
CBI Պ,բ Մաքրել բիթը I/O ռեգիստրում I/O(P,b) ← 0 Ոչ մեկը 2
LSL Rd Տրամաբանական Shift ձախ Rd(n+1) ← Rd(n), Rd(0) ← 0 Z,C,N,V 1
LSR Rd Տրամաբանական Shift Right 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 Փոխանակեք Nibbles-ը 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
ԲՍՏ Rr, բ Bit Store գրանցումից մինչև T T ← Rr(b) T 1
BLD Rd, բ Բիթային բեռնում T-ից մինչև գրանցում Rd(b) ← Տ Ոչ մեկը 1
SEC Set Carry C ← 1 C 1
CLC Clear Carry 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
ՍԵՎ Set Twos Complement Overflow: V ← 1 V 1
CLV Clear Twos Complement Overflow V ← 0 V 1
SET Սահմանեք T-ը SREG-ում T ← 1 T 1
CLT Մաքրել T-ը SREG-ում T ← 0 T 1
ՍԵՀ Սահմանեք Half Carry Flag-ը SREG-ում Հ ← 1 H 1
CLH Clear Half Carry Flag-ը SREG-ում Հ ← 0 H 1
ՏՎՅԱԼՆԵՐԻ ՓՈԽԱՆՑՄԱՆ ՀՐԱՀԱՆԳՆԵՐ
MOV Rd, Rr Տեղափոխեք գրանցումների միջև Rd ← Rr Ոչ մեկը 1
MOVW Rd, Rr Պատճենել Գրանցում Word Rd+1:Rd ← Rr+1:Rr Ոչ մեկը 1
LDI Ռդ, Կ Անմիջապես բեռնել Rd ← Կ Ոչ մեկը 1
LD Rd, X Անուղղակի բեռնում Rd ← (X) Ոչ մեկը 2
LD Rd, X+ Load Indirect and Post-Inc. Rd ← (X), X ← X + 1 Ոչ մեկը 2
LD Rd, - X Բեռնել անուղղակի և մինչև դեկտ. X ← X – 1, Rd ← (X) Ոչ մեկը 2
LD Rd, Y Անուղղակի բեռնում Rd ← (Y) Ոչ մեկը 2
LD Rd, Y+ Load Indirect and 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+ Load Indirect and Post-Inc. Rd ← (Z), Z ← Z+1 Ոչ մեկը 2
LD Rd, -Z Բեռնել անուղղակի և մինչև դեկտ. Z ← Z – 1, Rd ← (Z) Ոչ մեկը 2
LDD Rd, Z + q Անուղղակի բեռնել տեղաշարժով Rd ← (Z + q) Ոչ մեկը 2
LDS Rd, k Բեռնել ուղիղ SRAM-ից Rd ← (k) Ոչ մեկը 2
ST X, Rr Պահպանել անուղղակի (X) ← Rr Ոչ մեկը 2
ST X+, Rr Store Indirect and Post-Inc. (X) ← Rr, X ← X + 1 Ոչ մեկը 2
ST - X, Rr Պահպանեք անուղղակի և մինչև դեկտ. X ← X – 1, (X) ← Rr Ոչ մեկը 2
ST Y, Rr Պահպանել անուղղակի (Y) ← Rr Ոչ մեկը 2
ST Y+, Rr Store Indirect and Post-Inc. (Y) ← Rr, Y ← Y + 1 Ոչ մեկը 2
ST - Y, Rr Պահպանեք անուղղակի և մինչև դեկտ. Y ← Y – 1, (Y) ← Rr Ոչ մեկը 2
ՍՃՓՀ Y+q, Rr Պահպանեք անուղղակի տեղաշարժով (Y + q) ← Rr Ոչ մեկը 2
ST Z, Rr Պահպանել անուղղակի (Z) ← Rr Ոչ մեկը 2
ST Z+, Rr Store Indirect and Post-Inc. (Z) ← Rr, Z ← Z + 1 Ոչ մեկը 2
ST -Z, Rr Պահպանեք անուղղակի և մինչև դեկտ. Z ← Z – 1, (Z) ← Rr Ոչ մեկը 2
ՍՃՓՀ Z+q,Rr Պահպանեք անուղղակի տեղաշարժով (Z + q) ← Rr Ոչ մեկը 2
ՀՊԾ k, Rr Պահպանեք անմիջապես SRAM-ում (k) ← Rr Ոչ մեկը 2
LPM Բեռնել ծրագրի հիշողությունը R0 ← (Z) Ոչ մեկը 3
LPM Ռդ, Զ Բեռնել ծրագրի հիշողությունը Rd ← (Z) Ոչ մեկը 3
LPM Rd, Z+ Load Program Memory and Post-Inc Rd ← (Z), Z ← Z+1 Ոչ մեկը 3
SPM Պահպանել ծրագրի հիշողությունը (զ) ← R1:R0 Ոչ մեկը
IN Ռդ, Պ Պորտում Rd ← Պ Ոչ մեկը 1
ԴՈՒՐՍ P, Rr Դուրս նավահանգիստ P ← Rr Ոչ մեկը 1
ՀՐՈՒՄ Rr Push Register on Stack-ում ՓՈՒՍՏ ← Rr Ոչ մեկը 2
POP Rd Pop Register Stack-ից Rd ← ԿՈՒՍՏ Ոչ մեկը 2
MCU ՎԵՐԱՀՍԿՈՂՈՒԹՅԱՆ ՑՈՒՑՈՒՄՆԵՐ
NOP Ոչ մի գործողություն Ոչ մեկը 1
ՔՆԵԼ Քնել (տես «Քնի» գործառույթի հատուկ նկարագրությունը) Ոչ մեկը 1
WDR Watchdog Reset (տես WDR/Timer-ի հատուկ նկարագրությունը) Ոչ մեկը 1
ԴԱԴՐՈՒՄ Ընդմիջում
Արագություն (ՄՀց) (1) Մատակարարում Voltagե (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. Արագության ընդդեմ մատակարարման voltagե, տես բաժինը 21.3 «Արագություն» 163-րդ էջում.

Բոլոր փաթեթները զերծ են Pb-ից, առանց հալոգենիդների և լիովին կանաչ և համապատասխանում են վտանգավոր նյութերի սահմանափակման եվրոպական դիրեկտիվին (RoHS):

Կոդի ցուցիչներ

H: NiPdAu կապարի ավարտ

U՝ անփայլ թիթեղ

R: ժապավեն և կծիկ

Այս սարքերը կարող են մատակարարվել նաև վաֆլի տեսքով: Խնդրում ենք կապվել ձեր տեղական Atmel-ի վաճառքի գրասենյակ պատվիրելու մանրամասն տեղեկությունների և նվազագույն քանակի համար:

Էրատա

Սխալ ATtiny25

Այս բաժնի վերանայման նամակը վերաբերում է ATtiny25 սարքի վերանայմանը:

Rev D – F

Հայտնի սխալ չկա:

Rev B – C

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

Փորձելով կարդալ EEPROM ցածր ժամացույցի հաճախականություններով և/կամ ցածր մատակարարման ծավալովtage-ն կարող է հանգեցնել անվավեր տվյալների:

Խնդիրը շտկել / լուծում

Մի օգտագործեք EEPROM-ը, երբ ժամացույցի հաճախականությունը 1 ՄՀց-ից ցածր է և մատակարարման ծավալըtage-ը 2V-ից ցածր է: Եթե ​​գործառնական հաճախականությունը հնարավոր չէ բարձրացնել 1 ՄՀց-ից բարձր, ապա մատակարարման ծավալըtage-ը պետք է լինի ավելի քան 2V: Նմանապես, եթե մատակարարման ծավալըtage-ն չի կարող բարձրացվել 2V-ից բարձր, ապա գործառնական հաճախականությունը պետք է լինի ավելի քան 1 ՄՀց:

Հայտնի է, որ այս հատկանիշը կախված է ջերմաստիճանից, սակայն այն չի բնութագրվել: Ուղեցույցները տրվում են միայն սենյակային ջերմաստիճանի համար:

Rev Ա

Ոչ սampգլխավորեց

Սխալ ATtiny45

Այս բաժնի վերանայման նամակը վերաբերում է ATtiny45 սարքի վերանայմանը:

Rev F – G

Հայտնի սխալ չկա

Rev D – E

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

Փորձելով կարդալ EEPROM ցածր ժամացույցի հաճախականություններով և/կամ ցածր մատակարարման ծավալովtage-ն կարող է հանգեցնել անվավեր տվյալների:

Խնդիրը շտկել / լուծում

Մի օգտագործեք EEPROM-ը, երբ ժամացույցի հաճախականությունը 1 ՄՀց-ից ցածր է և մատակարարման ծավալըtage-ը 2V-ից ցածր է: Եթե ​​գործառնական հաճախականությունը հնարավոր չէ բարձրացնել 1 ՄՀց-ից բարձր, ապա մատակարարման ծավալըtage-ը պետք է լինի ավելի քան 2V: Նմանապես, եթե մատակարարման ծավալըtage-ն չի կարող բարձրացվել 2V-ից բարձր, ապա գործառնական հաճախականությունը պետք է լինի ավելի քան 1 ՄՀց:

Հայտնի է, որ այս հատկանիշը կախված է ջերմաստիճանից, սակայն այն չի բնութագրվել: Ուղեցույցները տրվում են միայն սենյակային ջերմաստիճանի համար:

Rev B – C

PLL-ը չի կողպվում

Ծրագրի կոդից կարդացվող EEPROM-ը չի աշխատում Lock Bit Mode 3-ում

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

Ժամաչափի հաշվիչ 1 PWM ելքի ստեղծումը OC1B- XOC1B-ում ճիշտ չի աշխատում

PLL-ը չի կողպվում

6.0 ՄՀց-ից ցածր հաճախականությունների դեպքում PLL-ը չի արգելափակվի

Խնդիրի շտկում / լուծում

PLL-ն օգտագործելիս աշխատեք 6.0 ՄՀց կամ ավելի բարձր հաճախականությամբ:

Ծրագրի կոդից կարդացվող EEPROM-ը չի աշխատում Lock Bit Mode 3-ում

Երբ հիշողության կողպման բիթերը LB2 և LB1 ծրագրավորված են 3-րդ ռեժիմում, EEPROM-ի ընթերցումը չի աշխատում հավելվածի կոդից:

Խնդիրը շտկել/աշխատել

Մի կարգավորեք Lock Bit Protection Mode 3-ը, երբ հավելվածի կոդը պետք է կարդալ EEPROM-ից:

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

Փորձելով կարդալ EEPROM ցածր ժամացույցի հաճախականություններով և/կամ ցածր մատակարարման ծավալովtage-ն կարող է հանգեցնել անվավեր տվյալների:

Խնդիրը շտկել / լուծում

Մի օգտագործեք EEPROM-ը, երբ ժամացույցի հաճախականությունը 1 ՄՀց-ից ցածր է և մատակարարման ծավալըtage-ը 2V-ից ցածր է: Եթե ​​գործառնական հաճախականությունը հնարավոր չէ բարձրացնել 1 ՄՀց-ից բարձր, ապա մատակարարման ծավալըtage-ը պետք է լինի ավելի քան 2V: Նմանապես, եթե մատակարարման ծավալըtage-ն չի կարող բարձրացվել 2V-ից բարձր, ապա գործառնական հաճախականությունը պետք է լինի ավելի քան 1 ՄՀց:

Հայտնի է, որ այս հատկանիշը կախված է ջերմաստիճանից, սակայն այն չի բնութագրվել: Ուղեցույցները տրվում են միայն սենյակային ջերմաստիճանի համար:

Ժամաչափի հաշվիչ 1 PWM ելքի ստեղծումը OC1B-ում – XOC1B-ը ճիշտ չի աշխատում

Timer Counter1 PWM ելքը OC1B-XOC1B ճիշտ չի աշխատում: Միայն այն դեպքում, երբ կառավարման բիթերը՝ COM1B1 և COM1B0, գտնվում են նույն ռեժիմում, ինչ համապատասխանաբար COM1A1 և COM1A0, OC1B-XOC1B ելքը ճիշտ է աշխատում:

Խնդիրը շտկել/աշխատել

Միակ լուծումը COM1A[1:0] և COM1B[1:0] կառավարման բիթերի վրա նույն կառավարման կարգավորումն օգտագործելն է, տես աղյուսակ 14-4 տվյալների թերթիկում: Խնդիրը լուծվել է Tiny45 rev D-ի համար:

Rev Ա

Չափազանց բարձր էներգիայի սպառումը

DebugWIRE-ը կորցնում է հաղորդակցությունը, երբ մեկ անգամ անցնում է ընդհատումների

PLL-ը չի կողպվում

Ծրագրի կոդից կարդացվող EEPROM-ը չի աշխատում Lock Bit Mode 3-ում

EEPROM-ի ընթերցումը կարող է ձախողվել ցածր մատակարարման ծավալի դեպքումtage / ցածր ժամացույցի հաճախականություն

Չափազանց բարձր էներգիայի սպառումը

Երեք իրավիճակներ կհանգեցնեն էներգիայի սպառման չափազանց մեծ սպառման: Սրանք:

Արտաքին ժամացույցն ընտրվում է ապահովիչներով, սակայն I/O PORT-ը դեռ միացված է որպես ելք:

EEPROM-ը կարդացվում է նախքան հոսանքազրկելը:

VCC-ն 4.5 վոլտ է կամ ավելի բարձր:

Հրաժարում պատասխանատվությունից. այս փաստաթղթում ներկայացված տեղեկատվությունը տրամադրվում է Atmel-ի արտադրանքի հետ կապված: Սույն փաստաթղթով կամ Atmel-ի արտադրանքի վաճառքի հետ կապված որևէ մտավոր սեփականության իրավունքի որևէ լիցենզիա, բացահայտ կամ ենթադրյալ, estoppel-ով կամ այլ կերպ չի տրվում: Բացառությամբ ATMEL-ի ՎԱՃԱՌՔԻ ՊԱՅՄԱՆՆԵՐՈՒՄ ԵՎ ՊԱՅՄԱՆՆԵՐՈՒՄ ՆՇԱՆԱԿՎԱԾ Է. WEBԿԱՅՔԸ, ATMEL-ը ՈՉ ՄԻ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅՈՒՆ ՉԻ ՍՏԱՀՈՒՄ ԵՎ ՀՐԱԺԱՐՈՒՄ Է ԻՐ ԱՊՐԱՆՔՆԵՐԻ ՀԵՏ ԿԱՊՎԱԾ ՈՐԵՎԷ ԲԱՑԱՀԱՅՏ, ՆԿԱԼԻՐ ԿԱՄ ՕՐԵՆԱԿԱՆ ԵՐԱՇԽԻՔ, ՆԵՐԱՌՅԱԼ, ԲԱՅՑ ՉՍԱՀՄԱՆԱՓԱԿՎԵԼՈՎ ԱՆՀՐԱԺԵՇՏԱԿԱՆ ԵՐԱՇԽԻՔԻ, ԵՐԱՇԽԻՔԻ, - ԽԱԽՏՈՒՄ. ՈՉ ՄԻ ԴԵՊՔՈՒՄ ATMEL-ը ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅՈՒՆ ՉԻ ՊԱՏԱՍԽԱՆԱՏՎԵԼ ՈՐԵՎԷ ՈՒՂԻՂ, ԱՆՈՒՂԻՂ, ՀԵՏԵՎԱՆՔԱՅԻՆ, ՊԱՏԺԻՉ, ՀԱՏՈՒԿ ԿԱՄ ՊԱՏԱՀԱԿԱՆ ՎՆԱՍՆԵՐԻ ՀԱՄԱՐ (ՆԱՌԱՑՎԱԾ, ԱՌԱՆՑ ՍԱՀՄԱՆԱՓԱԿՄԱՆ, ԿՈՐՈՒՍՏԻ ԵՎ ՇԱՀՈՒԹՅԱՆ ՎԵՐԱՍՏԱՆՔՆԵՐԻ ՀԱՄԱՐ ՕԳՏԱԳՈՐԾՄԱՆ ՉԻ ԿԱՄ ՕԳՏԱԳՈՐԾԵԼՈՒ ԱՆԿԱՐՈՂՈՒԹՅՈՒՆ ԱՅՍ ՓԱՍՏԱԹՂԹԸ, ՆՈՒԻՍԿ ԵԹԵ ATMEL-ին ԽՈՐՀՐՎԵԼ Է ՆՄԱՆ ՎՆԱՍՆԵՐԻ ՀՆԱՐԱՎՈՐՈՒԹՅԱՆ ՄԱՍԻՆ:

Atmel-ը որևէ հայտարարություն կամ երաշխիք չի տալիս սույն փաստաթղթի բովանդակության ճշգրտության կամ ամբողջականության վերաբերյալ և իրեն իրավունք է վերապահում փոփոխություններ կատարել տեխնիկական բնութագրերում և ապրանքների նկարագրություններում ցանկացած ժամանակ առանց ծանուցման: Atmel-ը որևէ պարտավորություն չի ստանձնում թարմացնելու այստեղ պարունակվող տեղեկատվությունը: Եթե ​​հատուկ այլ բան նախատեսված չէ, Atmel-ի արտադրանքը հարմար չէ և չպետք է օգտագործվի ավտոմոբիլային ծրագրերում: Atmel-ի արտադրանքները նախատեսված, լիազորված կամ երաշխավորված չեն օգտագործման համար որպես բաղադրիչներ այն հավելվածներում, որոնք նախատեսված են կյանքին աջակցելու կամ պահպանելու համար:

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *