8-бітны мікракантролер AVR Atmel з 2/4/8K байтамі ўнутрысістэмнай праграмуемай флэш-памяці
Асаблівасці
- Высокапрадукцыйны 8-бітны мікракантролер AVR® з нізкім энергаспажываннем
- Пашыраная архітэктура RISC
- 120 магутныя інструкцыі - большасць выкананняў за адзін такт
- 32 х 8 працоўных рэгістраў агульнага прызначэння
- Цалкам статычная аперацыя
- Энерганезалежная памяць праграм і дадзеных
- 2/4/8K байт унутрысістэмнай праграмуемай флэш-памяці праграм
- Цягавітасць: 10,000 цыклаў запісу/сцірання
- 128/256/512 байт унутрысістэмнага праграмаванага EEPROM
- Цягавітасць: 100,000 цыклаў запісу/сцірання
- 128/256/512 байт унутранай SRAM
- Блакаванне праграмавання для самастойнага праграмавання флэш-праграмы і бяспекі дадзеных EEPROM
Перыферыйныя функцыі
- 8-бітны таймер/лічыльнік з папярэднім дзялільнікам і двума ШІМ-каналамі
- 8-бітны высакахуткасны таймер/лічыльнік з асобным папярэднім дзялільнікам
- 2 высокачашчынныя ШІМ-выхады з асобнымі выхаднымі рэгістрамі параўнання
- Праграмуемы генератар мёртвага часу
- USI - універсальны паслядоўны інтэрфейс з дэтэктарам умоў запуску
- 10-бітны АЦП
4 аднаканальныя каналы
2 дыферэнцыяльныя пары каналаў АЦП з праграмуемым узмацненнем (1x, 20x)
Вымярэнне тэмпературы
Праграмуемы вартавы таймер з асобным убудаваным асцылятарам
Убудаваны аналагавы кампаратар
Спецыяльныя функцыі мікракантролера
debugWIRE Унутраная сістэма адладкі
Унутрысістэмнае праграмаванне праз порт SPI
Знешнія і ўнутраныя крыніцы перапыненняў
Рэжымы прастою з нізкім энергаспажываннем, зніжэння шуму АЦП і рэжымы адключэння
Палепшаная схема скіду пры ўключэнні
Праграмуемая схема выяўлення карычневага колеру
Унутраны калібраваны асцылятар
Увод-вывад і пакеты
Шэсць праграмуемых ліній уводу-вываду
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 МГц пры 1.8 – 5.5 В, 0 – 10 МГц пры 2.7 – 5.5 В
– ATtiny25/45/85: 0 – 10 МГц пры 2.7 – 5.5 В, 0 – 20 МГц пры 4.5 – 5.5 В
Прамысловы дыяпазон тэмператур
Нізкае энергаспажыванне
Актыўны рэжым:
1 МГц, 1.8 В: 300 мкА
Рэжым выключэння:
Канфігурацыі кантактаў
Распиновка ATtiny25/45/85
Pin Апісанні
VCC: Выпtage.
GND: Зямля.
Порт B (PB5:PB0): Порт B - гэта 6-бітны двухнакіраваны порт уводу/вываду з унутранымі падцягваючымі рэзістарамі (выбіраюцца для кожнага біта). Буферы выхаду порта B маюць сіметрычныя характарыстыкі прывада з высокай здольнасцю як паглынальніка, так і крыніцы. У якасці ўваходу кантакты порта B, якія звонку знаходзяцца на нізкім узроўні, будуць крыніцай току, калі актываваны падцягвальныя рэзістары. Высновы порта B маюць тры станы, калі ўмова скіду становіцца актыўнай, нават калі гадзіннік не працуе.
Порт B таксама выконвае функцыі розных спецыяльных функцый ATtiny25/45/85, як пералічана
На ATtiny25 праграмуемыя парты ўводу/вываду PB3 і PB4 (кантакты 2 і 3) мяняюцца ў рэжыме сумяшчальнасці ATtiny15 для падтрымкі зваротнай сумяшчальнасці з ATtiny15.
RESET: Скінуць увод. Нізкі ўзровень на гэтым штыфты даўжэйшы за мінімальную даўжыню імпульсу прывядзе да скіду, нават калі гадзіннік не працуе і калі штыфт скіду не адключаны. Указана мінімальная даўжыня імпульсу Табліца 21-4 на старонцы 165. Больш кароткія імпульсы не гарантуюць генерацыю скіду.
Штыфт скіду таксама можна выкарыстоўваць як (слабы) штыфт уводу-вываду.
Скончанаview
ATtiny25/45/85 - гэта маламагутны 8-разрадны мікракантролер CMOS на аснове палепшанай архітэктуры RISC AVR. Выконваючы магутныя інструкцыі за адзін такт, 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 ліній уводу-вываду агульнага прызначэння, 32 агульныя працоўныя рэгістры прызначэння, адзін 8-бітны таймер/лічыльнік з рэжымамі параўнання, адзін 8-бітны высакахуткасны таймер/лічыльнік, універсальны паслядоўны інтэрфейс, унутраныя і знешнія перапыненні, 4-канальны 10-бітны АЛП, праграмуемы вартавы таймер з унутр. Асцылятар і тры рэжымы энергазберажэння з праграмным выбарам. Рэжым бяздзейнасці спыняе працэсар, дазваляючы SRAM, таймеру/лічыльніку, АЛП, аналагаваму кампаратару і сістэме перапынення працягваць функцыянаваць. Рэжым адключэння захоўвае змесціва рэестра, адключаючы ўсе функцыі мікрасхемы да наступнага перапынення або апаратнага скіду. Рэжым зніжэння шуму АЦП спыняе працэсар і ўсе модулі ўводу/вываду, акрамя АЦП, каб мінімізаваць шум пераключэння падчас пераўтварэння АЦП.
Прылада выраблена з выкарыстаннем тэхналогіі энерганезалежнай памяці высокай шчыльнасці Atmel. Убудаваная ў чып ISP Flash дазваляе перапраграмаваць памяць праграмы ў сістэме праз паслядоўны інтэрфейс SPI, з дапамогай звычайнага праграміста энерганезалежнай памяці або з дапамогай убудаванага кода загрузкі, які працуе на ядры AVR.
ATtiny25/45/85 AVR падтрымліваецца поўным наборам інструментаў распрацоўкі праграм і сістэмы, уключаючы: кампілятары C, асэмблеры макрасаў, адладчык/сімулятары праграм і наборы для ацэнкі.
Пра рэсурсы
Поўны набор інструментаў распрацоўкі, нататкі па прылажэннях і табліцы дадзеных даступныя для загрузкі http://www.atmel.com/avr.
Код Прampлес
Гэтая дакументацыя змяшчае просты код напрampфайлы, якія коратка паказваюць, як карыстацца рознымі часткамі прылады. Гэты код напрamples мяркуецца, што частка канкрэтнага загалоўка file уключаны перад кампіляцыяй. Майце на ўвазе, што не ўсе пастаўшчыкі кампілятараў C ўключаюць азначэнні бітаў у загаловак files і апрацоўка перапыненняў у C залежыць ад кампілятара. Калі ласка, пацвердзіце ў дакументацыі кампілятара C для атрымання больш падрабязнай інфармацыі.
Для рэгістраў уводу/вываду, размешчаных у пашыранай карце ўводу/вываду, інструкцыі «IN», «OUT», «SBIS», «SBIC», «CBI» і «SBI» павінны быць заменены на інструкцыі, якія дазваляюць доступ да пашыранага I /О. Як правіла, гэта азначае «LDS» і «STS» у спалучэнні з «SBRS», «SBRC», «SBR» і «CBR». Звярніце ўвагу, што не ўсе прылады AVR ўключаюць пашыраную карту ўводу/вываду.
Ёмістны сэнсарны сэнсар
Atmel QTouch Library забяспечвае простае ў выкарыстанні рашэнне для сэнсарных інтэрфейсаў на мікракантролерах Atmel AVR. Бібліятэка QTouch уключае падтрымку метадаў атрымання QTouch® і QMatrix®.
Датчык дотыку лёгка дадаецца ў любое прыкладанне, звязваючы бібліятэку QTouch і выкарыстоўваючы інтэрфейс праграмнага забеспячэння (API) бібліятэкі для вызначэння сэнсарных каналаў і датчыкаў. Затым праграма выклікае API, каб атрымаць інфармацыю аб канале і вызначыць стан сэнсарнага датчыка.
Бібліятэка QTouch бясплатная і можа быць загружана з Atmel webсайт. Для атрымання дадатковай інфармацыі і дэталяў рэалізацыі звярніцеся да Кіраўніцтва карыстальніка бібліятэкі QTouch, якое таксама даступна ў Atmel webсайт.
Захаванне дадзеных
Вынікі кваліфікацыі надзейнасці паказваюць, што прагназаваны ўзровень адмоваў захавання даных значна меншы за 1 PPM на працягу 20 гадоў пры 85°C або 100 гадоў пры 25°C.
Ядро працэсара AVR
Уводзіны
У гэтым раздзеле абмяркоўваецца асноўная архітэктура AVR у цэлым. Асноўная функцыя ядра працэсара - забеспячэнне карэктнага выканання праграм. Таму працэсар павінен мець доступ да памяці, выконваць вылічэнні, кіраваць перыферыйнымі прыладамі і апрацоўваць перапыненні.
Архітэктурны надview
Каб максымізаваць прадукцыйнасць і паралелізм, AVR выкарыстоўвае гарвардскую архітэктуру - з асобнай памяццю і шынамі для праграм і даных. Інструкцыі ў памяці Праграмы выконваюцца з аднаўзроўневай канвеерызацыяй. Пакуль адна інструкцыя выконваецца, наступная інструкцыя папярэдне выбіраецца з памяці праграмы. Гэтая канцэпцыя дазваляе выконваць інструкцыі ў кожным такце. Праграмная памяць - гэта флэш-памяць, якая перапраграмуецца ўнутры сістэмы.
Рэестр хуткага доступу File змяшчае 32 х 8-бітных працоўных рэгістраў агульнага прызначэння з адным часам доступу тактавага цыклу. Гэта дазваляе працаваць з арыфметыка-лагічным прыладай (ALU) у адзін цыкл. У звычайнай аперацыі ALU з рэестра выводзяцца два аперанды File, аперацыя выконваецца, а вынік захоўваецца ў рэестры File– за адзін такт.
Шэсць з 32 рэгістраў могуць быць выкарыстаны ў якасці трох 16-бітных паказальнікаў рэгістра ўскосных адрасоў для адрасавання прасторы даных, што дазваляе эфектыўна разлічваць адрасы. Адзін з гэтых адрасных паказальнікаў таксама можна выкарыстоўваць як адрасны паказальнік для пошукавых табліц у памяці флэш-праграмы. Гэтыя дадатковыя функцыянальныя рэгістры з'яўляюцца 16-бітнымі X-, Y- і Z-рэгістрамі, апісанымі далей у гэтым раздзеле.
ALU падтрымлівае арыфметычныя і лагічныя аперацыі паміж рэгістрамі або паміж канстантай і рэгістрам. Аперацыі з адным рэгістрам таксама могуць быць выкананы ў АЛУ. Пасля выканання арыфметычнай аперацыі Рэгістр стану абнаўляецца, каб адлюстраваць інфармацыю аб выніку аперацыі.
Паток праграмы забяспечваецца ўмоўнымі і безумоўнымі інструкцыямі пераходу і выкліку, здольнымі непасрэдна звяртацца да ўсёй адраснай прасторы. Большасць інструкцый AVR маюць адзіны 16-бітны фармат слова, але ёсць і 32-бітныя інструкцыі.
Падчас перапыненняў і выклікаў падпраграм зваротны адрас лічыльніка праграмы (PC) захоўваецца ў стэку. Стэк фактычна размяркоўваецца ў агульным SRAM дадзеных, і, такім чынам, памер стэка абмежаваны толькі агульным памерам SRAM і выкарыстаннем SRAM. Усе карыстальніцкія праграмы павінны ініцыялізаваць SP у працэдуры Reset (перад выкананнем падпраграм або перапыненняў). Паказальнік стэка (SP) даступны для чытання/запісу ў прасторы ўводу/вываду. Да дадзеных SRAM можна лёгка атрымаць доступ праз пяць розных рэжымаў адрасавання, якія падтрымліваюцца ў архітэктуры AVR.
Прасторы памяці ў архітэктуры AVR - гэта лінейныя і звычайныя карты памяці.
Модуль гнуткага перапынення мае рэгістры кіравання ў прасторы ўводу-вываду з дадатковым бітам уключэння глабальнага перапынення ў рэгістры стану. Усе перапыненні маюць асобны вектар перапынення ў табліцы вектараў перапынення. Перапыненні маюць прыярытэт у адпаведнасці з іх становішчам вектара перапынення. Чым меншы адрас вектара перапынення, тым вышэйшы прыярытэт.
Прастора памяці ўводу-вываду змяшчае 64 адрасы для перыферыйных функцый працэсара, такіх як рэгістры кіравання, SPI і іншыя функцыі ўводу-вываду. Доступ да памяці ўводу/вываду можа ажыццяўляцца напрамую або як месцазнаходжанне прасторы даных, наступнае за месцам рэестра File, 0x20 – 0x5F.
ALU – арыфметыка-лагічны блок
Высокапрадукцыйнае AVR ALU працуе ў прамым злучэнні з усімі 32 працоўнымі рэгістрамі агульнага прызначэння. У межах аднаго такту выконваюцца арыфметычныя аперацыі паміж рэгістрамі агульнага прызначэння або паміж рэгістрам і іммедыям. Аперацыі ALU дзеляцца на тры асноўныя катэгорыі - арыфметычныя, лагічныя і бітавыя функцыі. Некаторыя рэалізацыі архітэктуры таксама забяспечваюць магутны множнік, які падтрымлівае множанне са знакам/без знака і дробавы фармат. Падрабязнае апісанне глядзіце ў раздзеле «Набор інструкцый».
Рэгістр статусу
Рэгістр стану змяшчае інфармацыю аб выніку апошняй выкананай арыфметычнай інструкцыі. Гэтую інфармацыю можна выкарыстоўваць для змены патоку праграмы для выканання ўмоўных аперацый. Звярніце ўвагу, што рэгістр стану абнаўляецца пасля ўсіх аперацый ALU, як паказана ў даведніку па набору інструкцый. У многіх выпадках гэта пазбавіць ад неабходнасці выкарыстання спецыяльных інструкцый параўнання, што прывядзе да больш хуткага і кампактнага кода.
Рэгістр стану не захоўваецца аўтаматычна пры ўваходзе ў працэдуру перапынення і аднаўляецца пры вяртанні з перапынення. Гэта павінна вырашацца праграмным забеспячэннем.
SREG - Рэгістр стану AVR
Рэгістр стану AVR - SREG - вызначаецца як:
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Чытаць/Запісваць | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Пачатковае значэнне | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Біт 7 – I: Глабальнае ўключэнне перапынення
Біт Global Interrupt Enable павінен быць усталяваны, каб перапыненні былі ўключаны. Затым асобнае кіраванне ўключэннем перапынення выконваецца ў асобных рэгістрах кіравання. Калі глабальны рэестр дазволу перапынення ачышчаны, ні адно з перапыненняў не будзе ўключана незалежна ад налад індывідуальнага ўключэння перапынення. I-біт ачышчаецца апаратна пасля таго, як адбылося перапыненне, і ўсталёўваецца інструкцыяй RETI для ўключэння наступных перапыненняў. I-біт таксама можа быць усталяваны і ачышчаны праграмай з дапамогай інструкцый SEI і CLI, як апісана ў спасылцы на набор інструкцый.
Біт 6 – T: Сховішча бітавых копій
Інструкцыі Bit Copy BLD (Bit LoaD) і BST (Bit STore) выкарыстоўваюць T-біт у якасці крыніцы або прызначэння для кіраванага біта. Крыху з рэестра ў Рэестры File можна скапіяваць у T з дапамогай інструкцыі BST, а біт у T можна скапіяваць у біт у рэгістры ў Register File па інструкцыі BLD.
Біт 5 – H: Half Carry Flag
Сцяг Half Carry H паказвае на Half Carry ў некаторых арыфметычных аперацыях. Half Carry карысны ў арыфметыцы BCD. Падрабязную інфармацыю глядзіце ў раздзеле «Апісанне набору інструкцый».
Біт 4 – S: знакавы біт, S = N ⊕ V
S-біт заўсёды з'яўляецца эксклюзіўным або паміж адмоўным сцягам N і сцягам перапаўнення дапаўнення двух дапаўненняў V. Падрабязную інфармацыю глядзіце ў «Апісанні набору інструкцый».
Біт 3 – V: сцяг перапаўнення камплементу два
Сцяг перапаўнення дапаўнення да двух V падтрымлівае арыфметыку дапаўнення да двух. Падрабязную інфармацыю глядзіце ў раздзеле «Апісанне набору інструкцый».
Біт 2 – N: адмоўны сцяг
Адмоўны сцяг N паказвае на адмоўны вынік арыфметычнай або лагічнай аперацыі. Падрабязную інфармацыю глядзіце ў раздзеле «Апісанне набору інструкцый».
Біт 1 – Z: нулявы сцяг
Нулявы сцяг Z паказвае нулявы вынік арыфметычнай або лагічнай аперацыі. Падрабязную інфармацыю глядзіце ў раздзеле «Апісанне набору інструкцый».
Біт 0 – C: флаг пераносу
Сцяг 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-рэгістр, Y-рэгістр і Z-рэгістр
Рэгістры R26..R31 маюць некаторыя дадатковыя функцыі да агульнага выкарыстання. Гэтыя рэгістры з'яўляюцца 16-бітнымі паказальнікамі адрасоў для ўскоснай адрасацыі прасторы даных. Тры рэгістры ўскосных адрасоў X, Y і Z вызначаны, як апісана ў Малюнак 4-3.
У розных рэжымах адрасавання гэтыя адрасныя рэгістры выконваюць такія функцыі, як фіксаванае зрушэнне, аўтаматычнае павелічэнне і аўтаматычнае памяншэнне (падрабязнасці глядзіце ў спасылцы на набор інструкцый).
Паказальнік стэка
Стэк у асноўным выкарыстоўваецца для захоўвання часовых даных, лакальных зменных і зваротных адрасоў пасля перапыненняў і выклікаў падпраграм. Рэгістр паказальніка стэка заўсёды паказвае на верх стэка. Звярніце ўвагу, што стэк рэалізаваны як рост ад больш высокіх месцаў памяці да меншых месцаў памяці. Гэта азначае, што каманда Stack PUSH памяншае паказальнік стэка.
Паказальнік стэка паказвае на вобласць стэка дадзеных SRAM, дзе знаходзяцца стэкі падпраграм і перапыненняў. Прастора стэка ў SRAM дадзеных павінна быць вызначана праграмай перад выкананнем любых выклікаў падпраграм або ўключэннем перапыненняў. Паказальнік стэка павінен быць усталяваны вышэй за 0x60. Паказальнік стэка памяншаецца на адзінку, калі даныя адпраўляюцца ў стэк з дапамогай інструкцыі PUSH, і памяншаецца на два, калі зваротны адрас адпраўляецца ў стэк з дапамогай выкліку падпраграмы або перапынення. Паказальнік стэка павялічваецца на адзінку, калі даныя выцягваюцца са стэка з дапамогай інструкцыі POP, і павялічваецца на два, калі даныя вырываюцца са стэка з вяртаннем з падпраграмы RET або вяртаннем з перапынення RETI.
Паказальнік стэка AVR рэалізаваны ў выглядзе двух 8-бітных рэгістраў у прасторы ўводу-вываду. Колькасць біт, якія фактычна выкарыстоўваюцца, залежыць ад рэалізацыі. Звярніце ўвагу, што прастора дадзеных у некаторых рэалізацыях архітэктуры AVR настолькі малая, што патрабуецца толькі SPL. У гэтым выпадку рэгістр SPH адсутнічае.
SPH і SPL — Рэгістр паказальнікаў стэка
Біт | 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 кіруецца тактавай частатой працэсара clkCPU, непасрэдна згенераванай з абранай крыніцы тактавай частоты для чыпа. Унутраны дзяленне гадзінніка не выкарыстоўваецца.
Малюнак 4-4 паказвае паралельную выбарку інструкцый і выкананне інструкцый, уключаных Гарвардскай архітэктурай і рэгістрам хуткага доступу File канцэпцыя. Гэта асноўная канцэпцыя канвеера для атрымання да 1 MIPS на МГц з адпаведнымі унікальнымі вынікамі для функцый па кошце, функцый па тактах і функцый па блоку харчавання.
Малюнак 4-5. Аперацыя ALU з адным цыклам
Скід і апрацоўка перапыненняў
AVR забяспечвае некалькі розных крыніц перапынення. Гэтыя перапыненні і асобны вектар скіду маюць асобны вектар праграмы ў прасторы памяці праграм. Усім перапыненням прызначаюцца асобныя біты ўключэння, якія павінны быць запісаны ў лагічную адзінку разам з бітам уключэння глабальнага перапынення ў рэестры стану, каб уключыць перапыненне.
Самыя нізкія адрасы ў прасторы памяці праграмы вызначаюцца па змаўчанні як вектары скіду і перапынення. Поўны спіс вектараў паказаны ў «Перыпыненні» на старонцы 48. Спіс таксама вызначае ўзроўні прыярытэту розных перапыненняў. Чым ніжэй адрас, тым вышэй узровень прыярытэту. RESET мае найвышэйшы прыярытэт, а наступным ідзе INT0 - знешні запыт перапынення 0.
Калі адбываецца перапыненне, I-біт Global Interrupt Enable ачышчаецца, і ўсе перапыненні адключаюцца. Карыстальніцкае праграмнае забеспячэнне можа запісаць лагічную адзінку ў біт I, каб уключыць укладзеныя перапыненні. Затым усе дазволеныя перапыненні могуць перапыніць бягучую працэдуру перапынення. I-біт усталёўваецца аўтаматычна, калі выконваецца інструкцыя Return from Interrupt - RETI.
У асноўным існуе два тыпу перапыненняў. Першы тып выклікаецца падзеяй, якая ўсталёўвае сцяг перапынення. Для гэтых перапыненняў Лічыльнік праграм пераносіцца на фактычны вектар перапынення, каб выканаць працэдуру апрацоўкі перапынення, і апаратнае забеспячэнне ачышчае адпаведны флаг перапынення. Сцягі перапынення таксама могуць быць ачышчаны шляхам запісу лагічнай адзінкі ў пазіцыю(-і) біта сцяга, якую трэба ачысціць. Калі ўзнікае ўмова перапынення, калі адпаведны біт дазволу перапынення ачышчаны, флаг перапынення будзе ўсталяваны і запомнены, пакуль перапыненне не будзе ўключана або сцяг не будзе ачышчаны праграмным забеспячэннем. Аналагічным чынам, калі адна або некалькі ўмоў перапынення ўзнікаюць, калі біт глабальнага ўключэння перапынення ачышчаны, адпаведны сцяг(-і) перапынення будзе ўсталяваны і запомнены, пакуль не будзе ўсталяваны біт глабальнага ўключэння перапынення, а затым будзе выкананы ў парадку прыярытэту.
Другі тып перапынення будзе спрацоўваць, пакуль прысутнічае ўмова перапынення. Гэтыя перапыненні неабавязкова маюць сцягі перапынення. Калі ўмова перапынення знікае да таго, як перапыненне будзе ўключана, перапыненне не будзе запушчана.
Калі AVR выходзіць з перапынення, ён заўсёды вяртаецца да асноўнай праграмы і выконвае яшчэ адну інструкцыю, перш чым будзе абслугоўвацца якое-небудзь незавершанае перапыненне.
Звярніце ўвагу, што рэгістр стану не захоўваецца аўтаматычна пры ўваходзе ў працэдуру перапынення і не аднаўляецца пры вяртанні з працэдуры перапынення. Гэта павінна вырашацца праграмным забеспячэннем.
Пры выкарыстанні інструкцыі CLI для адключэння перапыненняў, перапыненні будуць неадкладна адключаны. Ніякае перапыненне не будзе выканана пасля інструкцыі CLI, нават калі яно адбываецца адначасова з інструкцыяй CLI. Наступны выпрample паказвае, як гэта можна выкарыстоўваць, каб пазбегнуць перапынкаў падчас паслядоўнасці запісу EEPROM па часе.
Код зборкі Example |
у r16, SREG; захоўваць значэнне SREG
клі ; адключыць перапыненні падчас таймераванай паслядоўнасці sbi EECR, EEMPE ; пачаць запіс EEPROM sbi EECR, EEPE з SREG, r16; аднавіць значэнне SREG (I-біт) |
C Код Example |
сімвал cSREG;
cSREG = SREG; /* захаванне значэння SREG */ /* адключыць перапыненні падчас таймераванай паслядоўнасці */ _CLI(); EECR |= (1< EECR |= (1< SREG = cSREG; /* аднавіць значэнне SREG (I-біт) */ |
Пры выкарыстанні інструкцыі SEI для ўключэння перапыненняў інструкцыя пасля SEI будзе выканана перад любымі перапыненнямі ў чаканні, як паказана ў гэтым прыкладзеampле.
Код зборкі Example |
сей ; ўсталяваць Global Interrupt Enable
сон; увайсці ў сон, чакаючы перапынення ; нататка: пяройдзе ў рэжым сну перад любым чаканнем ; перапыненне(я) |
C Код Example |
_SEI(); /* усталяваць глабальнае ўключэнне перапынення */
_СОН(); /* пераход у рэжым сну, чаканне перапынення */ /* заўвага: пяройдзе ў рэжым сну перад любым незавершаным(-мі) перапыненнем(-ямі) */ |
Час водгуку перапынення
Адказ на выкананне перапынення для ўсіх уключаных перапыненняў AVR складае мінімум чатыры тактавыя цыклы. Пасля чатырох тактаў выконваецца адрас праграмнага вектара для фактычнай працэдуры апрацоўкі перапынення. На працягу гэтага чатырохтактавага перыяду лічыльнік праграм перамяшчаецца ў стэк. Вектар звычайна з'яўляецца пераходам да працэдуры перапынення, і гэты пераход займае тры тактавых цыклу. Калі падчас выканання шматцыклавай інструкцыі адбываецца перапыненне, гэтая інструкцыя завяршаецца да таго, як перапыненне будзе абслугоўвацца. Калі перапыненне адбываецца, калі MCU знаходзіцца ў рэжыме сну, час адказу на выкананне перапынення павялічваецца на чатыры тактавых цыклу. Гэта павелічэнне адбываецца ў дадатак да часу запуску з абранага рэжыму сну.
Вяртанне з працэдуры апрацоўкі перапынення займае чатыры тактавых цыклу. На працягу гэтых чатырох тактаў лічыльнік праграм (два байты) вяртаецца са стэка, паказальнік стэка павялічваецца на два, і ўсталёўваецца біт I у SREG.
Успаміны AVR
У гэтым раздзеле апісваюцца розныя памяці ў ATtiny25/45/85. Архітэктура AVR мае дзве асноўныя прасторы памяці, памяць дадзеных і прастору памяці праграм. Акрамя таго, ATtiny25/45/85 мае памяць EEPROM для захоўвання дадзеных. Усе тры прасторы памяці лінейныя і рэгулярныя.
Унутрысістэмная перапраграмуемая флэш-памяць праграм
ATtiny25/45/85 змяшчае 2/4/8K байт флэш-памяці, якая перапраграмуецца ў чыпе для захоўвання праграм. Паколькі ўсе інструкцыі AVR маюць шырыню 16 або 32 біта, Flash арганізаваны як 1024/2048/4096 x 16.
Флэш-памяць мае вытрымку не менш за 10,000 25 цыклаў запісу/сцірання. Лічыльнік праграм ATtiny45/85/10 (ПК) мае шырыню 11/12/1024 біт, такім чынам звяртаючыся да 2048/4096/XNUMX месцаў памяці праграм. «Праграма памяці - мін» на старонцы 147 змяшчае падрабязнае апісанне паслядоўнай загрузкі дадзеных Flash з выкарыстаннем кантактаў SPI.
Табліцы канстантаў могуць размяшчацца ва ўсёй адраснай прасторы памяці праграмы (гл. апісанне інструкцыі LPM – загрузка памяці праграмы).
Малюнак 5-1. Карта памяці праграмы
Памяць дадзеных SRAM
Малюнак 5-2 паказвае, як арганізавана памяць SRAM ATtiny25/45/85.
Ніжнія месцы памяці 224/352/607 даных адрасуюць абодва рэгістры File, памяць уводу-вываду і ўнутраная памяць SRAM. Першыя 32 адрасы рэестра File, наступныя 64 месцы - гэта стандартная памяць уводу-вываду, а апошнія 128/256/512 месцаў - да ўнутранай памяці SRAM.
Пяць розных рэжымаў адрасавання для памяці дадзеных ахопліваюць: прамая, ускосная са зрушэннем, ускосная, ускосная з прэдэкрэментам і ўскосная з постінкрэментам. У рэестры File, рэгістры ад R26 да R31 маюць рэгістры паказальніка ўскоснай адрасацыі.
Прамая адрасацыя ахоплівае ўсю прастору дадзеных.
Рэжым "Ускосны са зрушэннем" дасягае 63 месцазнаходжанняў адрасоў ад базавага адраса, зададзенага Y- або Z-рэгістрам.
Пры выкарыстанні рэгістравых рэжымаў ускоснай адрасацыі з аўтаматычным прэдэкрэментам і постінкрэментам адрасныя рэгістры X, Y і Z памяншаюцца або павялічваюцца.
32 працоўныя рэгістры агульнага прызначэння, 64 рэгістры ўводу/вываду і 128/256/512 байт унутранай памяці SRAM у ATtiny25/45/85 даступныя праз усе гэтыя рэжымы адрасавання. Рэестр File апісваецца ст «Ген- рэестр прызначэння File» на старонцы 10.
Малюнак 5-2. Карта памяці дадзеных
Доступ да памяці даных Часы
У гэтым раздзеле апісваюцца агульныя канцэпцыі часу доступу для доступу да ўнутранай памяці. Доступ да ўнутраных дадзеных SRAM выконваецца за два цыклы clkCPU, як апісана ў Малюнак 5-3.
Малюнак 5-3. Цыклы доступу да дадзеных SRAM на чыпе Памяць дадзеных EEPROM
ATtiny25/45/85 змяшчае 128/256/512 байт памяці дадзеных EEPROM. Ён арганізаваны як асобная прастора дадзеных, у якой можна чытаць і запісваць асобныя байты. EEPROM мае вытрымку не менш за 100,000 XNUMX цыклаў запісу/сцірання. Доступ паміж EEPROM і цэнтральным працэсарам апісваецца далей, указваючы адрасныя рэгістры EEPROM, рэгістр даных EEPROM і рэгістр кіравання EEPROM. Падрабязней гл «Паслядоўная загрузка» на старонцы 151.
Доступ для чытання/запісу EEPROM
Рэгістры доступу да EEPROM даступныя ў прасторы ўводу/вываду.
Час доступу да запісу для EEPROM прыведзены ў Табліца 5-1 на старонцы 21. Аднак функцыя аўтасінхронізацыі дазваляе праграмнаму забеспячэнню карыстальніка вызначаць, калі можна запісаць наступны байт. Калі код карыстальніка змяшчае інструкцыі, якія запісваюць EEPROM, трэба прыняць некаторыя меры засцярогі. У крыніцах сілкавання з моцнай фільтрацыяй VCC, хутчэй за ўсё, будзе павольна расці або падаць
Уключэнне/выключэнне. Гэта прымушае прыладу некаторы час працаваць на аб'ёмеtage ніжэй, чым вызначана як мінімум для выкарыстоўванай тактавай частаты. Глядзіце “Прадухіленне пашкоджання EEPROM” на старонцы 19 падрабязна аб тым, як пазбегнуць праблем у гэтых сітуацыях.
Для прадухілення ненаўмыснай запісу ў EEPROM неабходна выконваць спецыяльную працэдуру запісу. Спасылацца на «Атамная Байтавае праграмаванне» на старонцы 17 і “Праграмаванне раздзялення байтаў” на старонцы 17 для атрымання падрабязнай інфармацыі аб гэтым.
Калі EEPROM счытваецца, працэсар спыняецца на чатыры тактавых цыклу перад выкананнем наступнай інструкцыі. Калі EEPROM запісваецца, працэсар спыняецца на два тактавых цыклу перад выкананнем наступнай інструкцыі.
Праграмаванне атамнага байта
Выкарыстанне Atomic Byte Programming - самы просты рэжым. Пры запісе байта ў EEPROM карыстальнік павінен запісаць адрас у рэестр EEAR і дадзеныя ў рэестр EEDR. Калі біты EEPMn роўныя нулю, запіс EEPE (на працягу чатырох цыклаў пасля запісу EEMPE) запусціць аперацыю сцірання/запісу. Цыкл сцірання і запісу выконваецца за адну аперацыю, і ўводзіцца агульны час праграмавання Табліца 5-1 на старонцы 21. Біт EEPE застаецца ўсталяваным, пакуль не будуць завершаны аперацыі сцірання і запісу. Пакуль прылада занята праграмаваннем, нельга выконваць іншыя аперацыі з EEPROM.
Праграмаванне раздзялення байтаў
Цыкл сцірання і запісу можна падзяліць на дзве розныя аперацыі. Гэта можа быць карысна, калі сістэме патрабуецца кароткі час доступу на працягу некаторага абмежаванага перыяду часу (як правіла, калі блок харчавання voltagе падае). Для таго, каб узяць наперад- tagДля гэтага метаду патрабуецца, каб месцы для запісу былі сцёртыя перад аперацыяй запісу. Але паколькі аперацыі сцірання і запісу падзеленыя, можна выконваць аперацыі сцірання, калі сістэма дазваляе выконваць крытычныя па часе аперацыі (звычайна пасля ўключэння харчавання).
Сцерці
Каб сцерці байт, адрас павінен быць запісаны ў EEAR. Калі біты EEPMn роўны 0b01, запіс EEPE (на працягу чатырох цыклаў пасля запісу EEMPE) запусціць толькі аперацыю сцірання (час праграмавання пададзены ў Табліца 5-1 на старонка 21). Біт EEPE застаецца ўсталяваным да завяршэння аперацыі сцірання. Пакуль прылада занята праграмаваннем, нельга выконваць іншыя аперацыі з EEPROM.
Пішыце
Каб запісаць месцазнаходжанне, карыстальнік павінен запісаць адрас у EEAR і дадзеныя ў EEDR. Калі біты EEPMn роўны 0b10, запіс EEPE (на працягу чатырох цыклаў пасля запісу EEMPE) запусціць толькі аперацыю запісу (час праграмавання пададзены ў Табліца 5-1 на старонцы 21). Біт EEPE застаецца ўсталяваным да завяршэння аперацыі запісу. Калі месца для запісу не было сцёрта перад запісам, дадзеныя, якія захоўваюцца, павінны лічыцца страчанымі. Пакуль прылада занята праграмаваннем, нельга выконваць іншыя аперацыі з EEPROM.
Адкалібраваны асцылятар выкарыстоўваецца для адліку часу доступу да EEPROM. Пераканайцеся, што частата асцылятара адпавядае патрабаванням, апісаным у «OSCCAL – Рэгістр каліброўкі асцылятара» на старонцы 31.
Наступны код напрыкладamples паказваюць адну зборку і адну функцыю C для сцірання, запісу або атамарнай запісу EEPROM. Былыampмяркуецца, што перапыненні кантралююцца (напрыклад, глабальна адключаючы перапыненні), так што падчас выканання гэтых функцый не будзе ніякіх перапыненняў.
Код зборкі Example |
EEPROM_запіс:
; Дачакайцеся завяршэння папярэдняга запісу sbic EECR,EEPE rjmp EEPROM_запіс ; Усталюйце рэжым праграмавання 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)
{ /* Чакаць завяршэння папярэдняга запісу */ while(EECR & (1< ; /* Усталяваць рэжым праграмавання */ EECR = (0< /* Наладзіць рэестры адрасоў і даных */ EEAR = ucAddress; EEDR = ucData; /* Запіс лагічнай адзінкі ў EEMPE */ EECR |= (1< /* Пачаць запіс у eeprom, усталяваўшы EEPE */ EECR |= (1< } |
Наступны код напрamples show функцыі зборкі і C для чытання EEPROM. Былыampмяркуецца, што перапыненні кантралююцца так, што падчас выканання гэтых функцый не будзе ніякіх перапыненняў.
Код зборкі Example |
чытанне EEPROM:
; Дачакайцеся завяршэння папярэдняга запісу sbic EECR,EEPE rjmp чытанне EEPROM ; Усталюйце адрас (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 занадта нізкі для належнай працы працэсара і EEPROM. Гэтыя праблемы такія ж, як і для сістэм на ўзроўні платы, якія выкарыстоўваюць EEPROM, і павінны прымяняцца тыя ж канструктыўныя рашэнні.
Пашкоджанне дадзеных EEPROM можа быць выклікана двума сітуацыямі, калі voltage занадта нізкая. Па-першае, звычайная паслядоўнасць запісу ў EEPROM патрабуе мінімальнага аб'ёмуtage працаваць правільна. Па-другое, працэсар сам можа выконваць інструкцыі некарэктна, калі падача voltage занадта нізкая.
Пашкоджання дадзеных EEPROM можна лёгка пазбегнуць, прытрымліваючыся гэтай рэкамендацыі па распрацоўцы:
Падтрымлівайце AVR RESET актыўным (нізкім) у перыяды недастатковага аб'ёму сілкаванняtagд. Гэта можна зрабіць, уключыўшы ўнутраны дэтэктар загарання (BOD). Калі ўзровень выяўлення ўнутранага БПК не супадае з
неабходнага ўзроўню выяўлення, можна выкарыстоўваць знешнюю схему абароны ад скіду з нізкім VCC. Калі падчас запісу адбываецца скід, аперацыя запісу будзе завершана пры ўмове, што крыніца харчавання voltage дастаткова.
Памяць уводу-вываду
Вызначэнне прасторы ўводу/вываду ATtiny25/45/85 паказана ў «Зводка рэестра» на старонцы 200.
Усе прылады ўводу-вываду і перыферыйныя прылады ATtiny25/45/85 размешчаны ў прасторы ўводу-вываду. Усе месцы ўводу/вываду могуць быць даступныя з дапамогай інструкцый LD/LDS/LDD і ST/STS/STD, перадаючы даныя паміж 32 працоўнымі рэгістрамі агульнага прызначэння і прасторай уводу/вываду. Рэгістры ўводу/вываду ў дыяпазоне адрасоў 0x00 – 0x1F даступныя непасрэдна з дапамогай інструкцый SBI і CBI. У гэтых рэгістрах значэнне асобных бітаў можна праверыць з дапамогай інструкцый SBIS і SBIC. Для атрымання дадатковай інфармацыі звярніцеся да раздзела з наборам інструкцый. Пры выкарыстанні спецыяльных каманд уводу/вываду IN і OUT неабходна выкарыстоўваць адрасы ўводу/вываду 0x00 – 0x3F. Пры адрасаванні рэгістраў уводу-вываду як прасторы даных з дапамогай інструкцый LD і ST да гэтых адрасоў трэба дадаць 0x20.
Для сумяшчальнасці з будучымі прыладамі зарэзерваваныя біты павінны быць запісаны ў нуль пры доступе. Зарэзерваваныя адрасы памяці ўводу-вываду ніколі не павінны запісвацца.
Некаторыя з сцягоў статусу ачышчаюцца шляхам запісу лагічнай адзінкі да іх. Звярніце ўвагу, што інструкцыі CBI і SBI будуць працаваць толькі з указаным бітам і таму могуць выкарыстоўвацца ў рэгістрах, якія змяшчаюць такія сцягі стану. Інструкцыі CBI і SBI працуюць толькі з рэгістрамі ад 0x00 да 0x1F.
Рэгістры кіравання ўводам/вывадам і перыферыйнымі прыладамі тлумачацца ў наступных раздзелах.
Апісанне рэгістра
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 – Res: зарэзерваваныя біты
Гэтыя біты зарэзерваваны для выкарыстання ў будучыні і заўсёды будуць чытацца як нулі.
Біты 0 – EEAR8: адрас EEPROM
Гэта самы значны біт адраса EEPROM ATtiny85. У прыладах з меншай колькасцю 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
Гэта самы важны біт адраса EEPROM ATtiny45. У прыладах з меншай колькасцю EEPROM, напрыклад, у ATtiny25, гэты біт зарэзерваваны і заўсёды будзе чытаць нуль. Пачатковае значэнне адраснага рэгістра EEPROM (EEAR) не вызначана, таму перад доступам да EEPROM неабходна запісаць належнае значэнне.
Біты 6:0 – EEAR[6:0]: адрас EEPROM
Гэта (малодшыя) біты рэестра адрасоў EEPROM. Байты дадзеных EEPROM адрасуюцца лінейна ў дыяпазоне 0…(128/256/512-1). Першапачатковае значэнне EEAR не вызначана, таму перад доступам да EEPROM неабходна запісаць належнае значэнне.
EEDR – Рэгістр дадзеных EEPROM
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Чытаць/Запісваць | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Пачатковае значэнне | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Для аперацыі запісу ў EEPROM рэестр EEDR утрымлівае даныя, якія трэба запісаць у EEPROM па адрасе, указаным у рэестры EEAR. Для аперацыі чытання EEPROM EEDR змяшчае дадзеныя, счытваныя з
EEPROM па адрасе, указаным EEAR.
5.5.4 EECR – Рэгістр кіравання EEPROM |
|||||||||
Біт 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 |
Біт 7 – Res: зарэзерваваны біт
Гэты біт зарэзерваваны для выкарыстання ў будучыні і заўсёды будзе чытацца як 0 у ATtiny25/45/85. Для сумяшчальнасці з будучымі прыладамі AVR заўсёды запісвайце гэты біт у нуль. Пасля прачытання замаскіруйце гэты біт.
Біт 6 – Res: зарэзерваваны біт
Гэты біт зарэзерваваны ў 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 мс | Сціраць і пісаць за адну аперацыю (атамарная аперацыя) |
0 | 1 | 1.8 мс | Толькі сцерці |
1 | 0 | 1.8 мс | Толькі пісаць |
1 | 1 | – | Зарэзервавана для выкарыстання ў будучыні |
Біт 3 – EERIE: EEPROM Ready Interrupt Enable
Запіс EERIE у адзін уключае перапыненне гатоўнасці EEPROM, калі ў SREG усталяваны біт I. Запіс EERIE ў нуль адключае перапыненне. Перапыненне EEPROM Ready стварае пастаяннае перапыненне, калі энерганезалежная памяць гатовая да праграмавання.
Біт 2 – EEMPE: уключэнне асноўнай праграмы EEPROM
Біт 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
Сігнал дазволу чытання EEPROM - EERE - гэта строб чытання EEPROM. Калі правільны адрас усталяваны ў рэестры EEAR, біт EERE павінен быць запісаны ў адзінку, каб запусціць чытанне EEPROM. Доступ для чытання EEPROM займае адну інструкцыю, і запытаныя даныя даступныя неадкладна. Пры чытанні EEPROM працэсар спыняецца на чатыры цыклы перад выкананнем наступнай інструкцыі. Карыстальнік павінен апытаць біт EEPE перад пачаткам аперацыі чытання. Калі выконваецца аперацыя запісу, немагчыма ані прачытаць EEPROM, ані змяніць рэестр EEAR.
Сістэмны гадзіннік і параметры гадзінніка
Гадзіннікавыя сістэмы і іх распаўсюджванне
Тактавы працэсар
Тактавы сігнал працэсара накіроўваецца ў часткі сістэмы, звязаныя з працай ядра AVR. напрыкладampЧастка такіх модуляў - Рэестр агульнага прызначэння File, рэгістр стану і памяць дадзеных, якая змяшчае паказальнік стэка. Прыпынак тактавай частоты працэсара перашкаджае ядру выконваць агульныя аперацыі і вылічэнні.
Тактавы сігнал уводу-вываду – clkI/O
Гадзіннік уводу/вываду выкарыстоўваецца большасцю модуляў уводу/вываду, такіх як таймер/лічыльнік. Тактавы сігнал уводу/вываду таксама выкарыстоўваецца модулем знешніх перапыненняў, але звярніце ўвагу, што некаторыя знешнія перапыненні выяўляюцца асінхроннай логікай, што дазваляе выяўляць такія перапыненні, нават калі тактавы сігнал уводу/вываду спынены.
Флэш-гадзіннік – clkFLASH
Гадзіннік Flash кіруе працай інтэрфейсу Flash. Гадзіннік Flash звычайна актыўны адначасова з тактавым сігналам працэсара.
Гадзіннік АЦП - clkADC
АЦП забяспечваецца спецыяльным тактавым даменам. Гэта дазваляе спыніць тактавы сігнал працэсара і ўводу/вываду, каб паменшыць шум, які ствараецца лічбавай схемай. Гэта дае больш дакладныя вынікі пераўтварэння АЦП.
Унутраны PLL для хуткай генерацыі перыферыйных тактавых сігналаў - clkPCK
Унутраная сістэма ФАПЧ у ATtiny25/45/85 генеруе тактавую частату, якая ў 8 разоў павялічваецца з уваходнага сігналу крыніцы. Па змаўчанні PLL выкарыстоўвае выхад унутранага RC-генератара 8.0 МГц у якасці крыніцы. У якасці альтэрнатывы, калі біт LSM PLLCSR усталяваны, PLL будзе выкарыстоўваць выхад RC-генератара, падзелены на два. Такім чынам, выхад PLL, хуткая перыферыйная тактавая частата, складае 64 МГц. Хуткія перыферыйныя тактавыя частоты або тактавыя частоты, папярэдне маштабаваныя з іх, могуць быць выбраны ў якасці крыніцы тактавага сігналу для таймера/лічыльніка1 або ў якасці сістэмнага гадзінніка. Глядзіце Малюнак 6-2. Частата хуткага перыферыйнага тактавага сігналу дзеліцца на два, калі ўсталяваны LSM PLLCSR, у выніку чаго тактавая частата складае 32 МГц. Звярніце ўвагу, што LSM нельга ўсталяваць, калі ў якасці сістэмнага гадзінніка выкарыстоўваецца PLLCLK.
Малюнак 6-2. Сістэма тактавання PCK.
ФАПЧ зафіксаваны на RC-генератары, і рэгуляванне RC-генератара праз рэгістр OSCCAL адначасова наладзіць хуткі перыферыйны такт. Аднак нават калі частата RC-генератара пераўзыходзіць 8 МГц, хуткая перыферыйная тактавая частата насычаецца на 85 МГц (у горшым выпадку) і застаецца вагацца на максімальнай частаце. Варта адзначыць, што PLL у гэтым выпадку больш не блакуецца з тактавым сігналам RC-генератара. Такім чынам, не рэкамендуецца наладжваць OSCCAL на частату вышэй за 8 МГц, каб падтрымліваць PLL у правільным працоўным дыяпазоне.
Унутраны PLL уключаны, калі:
Біт PLLE ў рэгістры PLLCSR усталяваны.
Засцерагальнік CKSEL запраграмаваны на «0001».
Засцерагальнік CKSEL запраграмаваны на «0011».
Біт PLLCSR PLOCK усталёўваецца, калі PLL заблакіравана. Як унутраны RC-генератар, так і ФАПЧ адключаюцца ў рэжыме адключэння харчавання і ў рэжыме чакання.
Унутраны PLL у рэжыме сумяшчальнасці ATtiny15
Паколькі ATtiny25/45/85 з'яўляецца міграцыйнай прыладай для карыстальнікаў ATtiny15, існуе рэжым сумяшчальнасці ATtiny15 для зваротнай сумяшчальнасці. Рэжым сумяшчальнасці ATtiny15 выбіраецца шляхам праграмавання засцерагальнікаў CKSEL на «0011».
У рэжыме сумяшчальнасці ATtiny15 частата ўнутранага RC-генератара адкалібравана да 6.4 МГц, а каэфіцыент множання ФАПЧ усталяваны на 4x. Глядзіце Малюнак 6-3. З такімі наладамі сістэма тактавання сумяшчальная з ATtiny15, і выніковая хуткая перыферыйная тактавая частата складае 25.6 МГц (такая ж, як і ў ATtiny15).
Малюнак 6-3. Сістэма тактавання PCK у рэжыме сумяшчальнасці ATtiny15.
Крыніцы гадзінніка
Прылада мае наступныя параметры крыніцы тактавага сігналу, якія можна выбраць з дапамогай бітаў 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 МГц. Для атрымання дадатковай інфармацыі гл «Калібраваны ўнутраны асцылятар» на старонцы 27.
Розныя варыянты для кожнага варыянту тактавання прыведзены ў наступных раздзелах. Калі працэсар выходзіць з рэжыму адключэння, абраная крыніца тактавага сігналу выкарыстоўваецца для вымярэння часу запуску, забяспечваючы стабільную працу асцылятара перад пачаткам выканання інструкцый. Калі працэсар запускаецца з скіду, існуе дадатковая затрымка, якая дазваляе магутнасці дасягнуць стабільнага ўзроўню перад пачаткам нармальнай працы. Вартавы асцылятар выкарыстоўваецца для вымярэння часу гэтай часткі часу запуску ў рэжыме рэальнага часу. Колькасць цыклаў асцылятара WDT, якія выкарыстоўваюцца для кожнага тайм-аўту, паказана ў Табліца 6-2.
Табліца 6-2. Колькасць цыклаў вартавога асцылятара
Увядзіце Тайм-аўт | Колькасць цыклаў |
4 мс | 512 |
64 мс | 8K (8,192 XNUMX) |
Знешні гадзіннік
Каб кіраваць прыладай ад знешняй крыніцы тактавага сігналу, трэба кіраваць CLKI, як паказана ў Малюнак 6-4. Каб прылада працавала на знешніх гадзінах, засцерагальнікі CKSEL павінны быць запраграмаваны на «00».
Малюнак 6-4. Канфігурацыя вонкавага прывада гадзінніка
Калі выбрана гэтая крыніца тактавага сігналу, час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-3.
Табліца 6-3. Час запуску для выбару вонкавага гадзінніка
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду | Рэкамендуемае выкарыстанне |
00 | 6 КК | 14CK | БПК уключаны |
01 | 6 КК | 14CK + 4 мс | Хуткі рост магутнасці |
10 | 6 КК | 14CK + 64 мс | Павольна расце магутнасць |
11 | Зарэзерваваны |
Пры выкарыстанні вонкавага тактавага сігналу неабходна пазбягаць рэзкіх змен у прымененай тактавай частаце, каб забяспечыць стабільную працу MCU. Змена частоты больш чым на 2% ад аднаго такту да наступнага можа прывесці да непрадказальных паводзін. Неабходна пераканацца, што MCU захоўваецца ў рэжыме скіду падчас такіх змен у тактавай частаце.
Звярніце ўвагу, што папярэдні продаж сістэмнага гадзінніка можа быць выкарыстаны для ўнясення змяненняў унутранай тактавай частаты падчас выканання, забяспечваючы пры гэтым стабільную працу. Спасылацца на «Папярэдні дзельнік сістэмнага гадзінніка» на старонцы 31 для дэталяў.
Высокачашчынны такт PLL
Ёсць унутраная сістэма PLL, якая забяспечвае намінальную тактавую частату 64 МГц, прывязаную да RC-генератара для выкарыстання перыферыйнага таймера/лічыльніка1 і для крыніцы сістэмнага тактавага сігналу. Пры выбары ў якасці крыніцы сістэмнага гадзінніка, шляхам праграмавання CKSEL зліваецца на «0001», ён дзеліцца на чатыры, як паказана на Табліца 6-4.
Табліца 6-4. Рэжымы працы высокачашчыннага тактавага сігналу PLL
CKSEL[3:0] | Намінальная частата |
0001 | 16 МГц |
Калі выбрана гэтая крыніца тактавага сігналу, час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-5.
Табліца 6-5. Час запуску высокачашчыннага тактавага сігналу PLL
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду пры ўключэнні (VCC = 5.0 В) | Рэкамендуемае выкарыстанне |
00 | 14CK + 1K (1024) CK + 4 мс | 4 мс | БПК уключаны |
Табліца 6-5. Час запуску высокачашчыннага тактавага сігналу PLL
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду пры ўключэнні (VCC = 5.0 В) | Рэкамендуемае выкарыстанне |
01 | 14CK + 16K (16384) CK + 4 мс | 4 мс | Хуткі рост магутнасці |
10 | 14CK + 1K (1024) CK + 64 мс | 4 мс | Павольна расце магутнасць |
11 | 14CK + 16K (16384) CK + 64 мс | 4 мс | Павольна расце магутнасць |
Калібраваны ўнутраны асцылятар
Па змаўчанні ўнутраны RC-генератар забяспечвае частату прыблізна 8.0 МГц. Хаця тtagУ залежнасці ад тэмпературы, гэты гадзіннік можа быць вельмі дакладна адкалібраваны карыстальнікам. Глядзіце «Калібраваны ўнутраны RC асцылятар Accu- пікантны» на старонцы 164 і «Хуткасць унутранага асцылятара» на старонцы 192 для больш падрабязнай інфармацыі. Прылада пастаўляецца з запраграмаваным засцерагальнікам CKDIV8. Глядзіце «Папярэдні дзельнік сістэмнага гадзінніка» на старонцы 31 для больш падрабязнай інфармацыі.
Гэты гадзіннік можна выбраць у якасці сістэмнага, запраграмаваўшы засцерагальнікі CKSEL, як паказана ў Табліца 6-6 на стар
27. Пры выбары ён будзе працаваць без знешніх кампанентаў. Падчас скіду апаратнае забеспячэнне загружае папярэдне запраграмаванае значэнне каліброўкі ў рэестр OSCCAL і такім чынам аўтаматычна калібруе RC-генератар. Дакладнасць гэтай каліброўкі паказана як заводская каліброўка ў Табліца 21-2 на старонцы 164.
Змяняючы рэгістр OSCCAL з SW, гл «OSCCAL – Рэгістр каліброўкі асцылятара» на старонцы 31, можна атрымаць больш высокую дакладнасць каліброўкі, чым пры выкарыстанні завадской каліброўкі. Дакладнасць гэтай каліброўкі паказваецца як Карыстальніцкая каліброўка ў Табліца 21-2 на старонцы 164.
Калі гэты асцылятар выкарыстоўваецца ў якасці гадзінніка мікрасхемы, вартавы асцылятар па-ранейшаму будзе выкарыстоўвацца для вартавога таймера і для тайм-аўту скіду. Для атрымання дадатковай інфармацыі аб папярэдне запраграмаваным значэнні каліброўкі глядзіце раздзел «Калі- bration Bytes” на старонцы 150.
Унутраны асцылятар таксама можна наладзіць для забеспячэння тактавай частаты 6.4 МГц, запісаўшы засцерагальнікі CKSEL у «0011», як паказана ў Табліца 6-6 ніжэй. Гэта налада называецца рэжымам сумяшчальнасці ATtiny15 і прызначана для забеспячэння адкалібраванай крыніцы тактавага сігналу на 6.4 МГц, як у ATtiny15. У рэжыме сумяшчальнасці ATtiny15 ФАПЧ выкарыстоўвае ўнутраны асцылятар, які працуе на частаце 6.4 МГц, для генерацыі перыферыйнага тактавага сігналу 25.6 МГц для таймера/лічыльніка1 (гл. «8-бітны таймер/лічыльнік1 у Рэжым ATtiny15» на старонцы 95). Звярніце ўвагу, што ў гэтым рэжыме працы тактавы сігнал 6.4 МГц заўсёды дзеліцца на чатыры, забяспечваючы сістэмны тактавы сігнал 1.6 МГц.
Табліца 6-6. Рэжымы працы ўнутранага калібраванага RC-генератара
CKSEL[3:0] | Намінальная частата |
0010(1) | 8.0 МГц |
0011(2) | 6.4 МГц |
Прылада пастаўляецца з абранай гэтай опцыяй.
Гэта налада выбірае рэжым сумяшчальнасці ATtiny15, дзе сістэмны гадзіннік дзеліцца на чатыры, што прыводзіць да тактавай частаты 1.6 МГц.
Калі ў якасці крыніцы тактавага сігналу выбраны адкалібраваны ўнутраны генератар 8 МГц, час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-7 ніжэй.
Табліца 6-7. Час запуску ўнутранага калібраванага гадзінніка RC-генератара
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду (VCC = 5.0 В) | Рэкамендуемае выкарыстанне |
00 | 6 КК | 14CK(1) | БПК уключаны |
01 | 6 КК | 14CK + 4 мс | Хуткі рост магутнасці |
10(2) | 6 КК | 14CK + 64 мс | Павольна расце магутнасць |
11 | Зарэзерваваны |
1. Калі засцерагальнік RSTDISBL запраграмаваны, гэты час запуску будзе павялічаны да 14CK + 4 мс, каб можна было ўвайсці ў рэжым праграмавання.
2. Прылада пастаўляецца з абранай гэтай опцыяй.
У рэжыме сумяшчальнасці ATtiny15 час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-8 ніжэй.
Табліца 6-8. Час запуску ўнутранага калібраванага RC-генератара (у рэжыме ATtiny15)
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду (VCC = 5.0 В) | Рэкамендуемае выкарыстанне |
00 | 6 КК | 14CK + 64 мс | |
01 | 6 КК | 14CK + 64 мс | |
10 | 6 КК | 14CK + 4 мс | |
11 | 1 КК | 14CK(1) |
Заўвага: калі засцерагальнік RSTDISBL запраграмаваны, гэты час запуску будзе павялічаны да 14CK + 4 мс, каб можна было ўвайсці ў рэжым праграмавання.
Такім чынам, дадатковую інфармацыю аб рэжыме сумяшчальнасці ATtiny15 можна знайсці ў раздзелах «Порт B (PB5:PB0)» уключаны старонка 2, «Унутраная сістэма PLL у рэжыме сумяшчальнасці ATtiny15» на старонцы 24, «8-бітны таймер/лічыльнік1 у рэжыме ATtiny15» укл старонка 95, “Абмежаванні debugWIRE” на старонцы 140, «Байты каліброўкі» на старонцы 150 і ў табл «Гадзіннік Prescaler Выберыце» на старонцы 33.
Унутраны асцылятар 128 кГц
Унутраны асцылятар 128 кГц - гэта маламагутны асцылятар, які забяспечвае тактавую частату 128 кГц. Частата намінальная пры 3В і 25°C. Гэты гадзіннік можна выбраць у якасці сістэмнага, запраграмаваўшы засцерагальнікі CKSEL на «0100».
Калі выбрана гэтая крыніца тактавага сігналу, час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-9.
Табліца 6-9. Час запуску ўнутранага асцылятара 128 кГц
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду | Рэкамендуемае выкарыстанне |
00 | 6 КК | 14CK(1) | БПК уключаны |
01 | 6 КК | 14CK + 4 мс | Хуткі рост магутнасці |
10 | 6 КК | 14CK + 64 мс | Павольна расце магутнасць |
11 | Зарэзерваваны |
Заўвага: калі засцерагальнік RSTDISBL запраграмаваны, гэты час запуску будзе павялічаны да 14CK + 4 мс, каб можна было ўвайсці ў рэжым праграмавання.
Нізкачашчынны кварцавы генератар
Каб выкарыстоўваць крышталь гадзінніка з частатой 32.768 кГц у якасці крыніцы тактавага сігналу для прылады, неабходна выбраць нізкачашчынны кварцавы генератар, усталяваўшы засцерагальнікі CKSEL на «0110». Крышталь павінен быць злучаны, як паказана на Малюнак 6-5. Каб знайсці прыдатную ёмістасць нагрузкі для crysal 32.768 кГц, звярніцеся да тэхнічнага пашпарта вытворцы.
Калі абраны гэты асцылятар, час запуску вызначаецца засцерагальнікамі SUT, як паказана ў Табліца 6-10.
Табліца 6-10. Час запуску для выбару тактавага сігналу нізкачашчыннага кварцавага генератара
ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду (VCC = 5.0 В) | Рэкамендуемае выкарыстанне |
00 | 1K (1024) CK(1) | 4 мс | Уключаны хуткі рост магутнасці або БПК |
01 | 1K (1024) CK(1) | 64 мс | Павольна расце магутнасць |
10 | 32K (32768) CK | 64 мс | Стабільная частата пры запуску |
11 | Зарэзерваваны |
Заўвага: гэтыя параметры варта выкарыстоўваць, толькі калі стабільнасць частоты пры запуску не важная.
Нізкачашчынны кварцавы генератар забяспечвае ўнутраную ёмістасць нагрузкі, гл Табліца 6-11 на кожным штыфце TOSC.
Табліца 6-11. Ёмістасць нізкачашчыннага кварцавага генератара
прылада | 32 кГц Osc. Тып | Кепка (Xtal1/Tosc1) | Кепка (Xtal2/Tosc2) |
ATtiny25/45/85 | Сістэма Osc. | 16 пФ | 6 пФ |
Крысталічны асцылятар / керамічны рэзанатар
XTAL1 і XTAL2 - гэта ўваход і выхад, адпаведна, інвертавання amplifier, які можна наладзіць для выкарыстання ў якасці ўбудаванага асцылятара, як паказана ў Малюнак 6-5. Можна выкарыстоўваць альбо кварцавы крышталь, альбо керамічны рэзанатар.
C1 і C2 заўсёды павінны быць роўнымі як для крышталяў, так і для рэзанатараў. Аптымальнае значэнне кандэнсатараў залежыць ад выкарыстоўванага крышталя або рэзанатара, велічыні паразитной ёмістасці і электрамагнітнага шуму навакольнага асяроддзя. Некаторыя першапачатковыя рэкамендацыі па выбары кандэнсатараў для выкарыстання з крышталямі прыведзены ў Табліца 6-12 ніжэй. Для керамічных рэзанатараў варта выкарыстоўваць значэнні кандэнсатараў, указаныя вытворцам.
Табліца 6-12. Рэжымы працы кварцавага генератара
CKSEL[3:1] | Дыяпазон частот (МГц) | Рэкамендаваны дыяпазон для кандэнсатараў C1 і C2 для выкарыстання з крышталямі (пФ) |
100(1) | 0.4 - 0.9 | – |
101 | 0.9 - 3.0 | 12 - 22 |
110 | 3.0 - 8.0 | 12 - 22 |
111 | 8.0 - | 12 - 22 |
Заўвагі: гэту опцыю нельга выкарыстоўваць з крышталямі, толькі з керамічнымі рэзанатарамі.
Асцылятар можа працаваць у трох розных рэжымах, кожны з якіх аптымізаваны для пэўнага дыяпазону частот. Рэжым працы выбіраецца засцерагальнікамі CKSEL[3:1], як паказана на Табліца 6-12.
Засцерагальнік CKSEL0 разам з засцерагальнікамі SUT[1:0] выбірае час запуску, як паказана ў Табліца 6-13.
Табліца 6-13. Час запуску для выбару гадзіннікавага генератара
CKSEL0 | ПОД[1:0] | Час запуску пасля выключэння | Дадатковая затрымка ад скіду | Рэкамендуемае выкарыстанне |
0 | 00 | 258 КК(1) | 14CK + 4 мс | Керамічны рэзанатар, хутка нарастаючая магутнасць |
0 | 01 | 258 КК(1) | 14CK + 64 мс | Керамічны рэзанатар, павольна расце магутнасць |
0 | 10 | 1K (1024) CK(2) | 14CK | Керамічны рэзанатар, БПК уключаны |
0 | 11 | 1K (1024)CK(2) | 14CK + 4 мс | Керамічны рэзанатар, хутка нарастаючая магутнасць |
1 | 00 | 1K (1024)CK(2) | 14CK + 64 мс | Керамічны рэзанатар, павольна расце магутнасць |
1 | 01 | 16K (16384) CK | 14CK | Crystal Oscillator, BOD уключаны |
1 | 10 | 16K (16384) CK | 14CK + 4 мс | Crystal Oscillator, хутка расце магутнасць |
1 | 11 | 16K (16384) CK | 14CK + 64 мс | Crystal Oscillator, павольна расце магутнасць |
Заўвагі
Гэтыя параметры варта выкарыстоўваць толькі тады, калі частата прылады не працуе блізка да максімальнай, і толькі калі стабільнасць частоты пры запуску не важная для прыкладання. Гэтыя варыянты не падыходзяць для крышталяў.
Гэтыя варыянты прызначаны для выкарыстання з керамічнымі рэзанатарамі і забяспечаць стабільнасць частоты пры запуску. Яны таксама могуць быць выкарыстаны з крышталямі, калі яны не працуюць блізка да максімальнай частаты прылады, і калі стабільнасць частоты пры запуску не важная для прымянення.
Крыніца гадзінніка па змаўчанні
Прылада пастаўляецца з запраграмаванымі CKSEL = «0010», SUT = «10» і CKDIV8. Такім чынам, наладай крыніцы тактавага сігналу па змаўчанні з'яўляецца ўнутраны RC-генератар, які працуе на частаце 8 МГц з самым доўгім часам запуску і першапачатковым папярэднім маштабаваннем сістэмнага тактавага сігналу 8, у выніку чаго сістэмны тактавы сігнал складае 1.0 МГц. Гэтая налада па змаўчанні гарантуе, што ўсе карыстальнікі могуць зрабіць жаданую наладу крыніцы гадзінніка з дапамогай In-System або High-voltagе праграміст.
Папярэдне дзельнік сістэмнага гадзінніка
Сістэмныя гадзіны ATtiny25/45/85 можна падзяліць, усталяваўшы «CLKPR – Рэгістр папярэдняй шкалы гадзінніка» на старонцы 32. Гэтую функцыю можна выкарыстоўваць для памяншэння энергаспажывання, калі патрабаванні да вылічальнай магутнасці нізкія. Гэта можна выкарыстоўваць з усімі параметрамі крыніцы тактавага сігналу, і гэта паўплывае на тактавую частату працэсара і ўсіх сінхронных перыферыйных прылад. clkI/O, clkADC, clkCPU і clkFLASH дзеляцца на каэфіцыент, як паказана на Табліца 6-15 на старонцы 33.
Час пераключэння
Пры пераключэнні паміж наладамі папярэдняга дзельшчыка, Prescaler System Clock Prescaler гарантуе, што ў сістэме тактавага сігналу не ўзнікаюць збоі і што ніякая прамежкавая частата не перавышае ні тактавую частату, якая адпавядае папярэдняй наладзе, ні тактавую частату, якая адпавядае новай наладзе.
Лічыльнік пульсацый, які рэалізуе папярэдні дзелільнік, працуе на частаце непадзеленага тактавага сігналу, які можа быць хутчэй, чым тактавая частата ЦП. Такім чынам, немагчыма вызначыць стан папярэдняга дзельніка - нават калі б ён быў чытальным, і дакладны час, неабходны для пераключэння з аднаго падзелу гадзінніка на іншы, немагчыма дакладна прадказаць.
З моманту запісу значэнняў CLKPS праходзіць ад T1 + T2 да T1 + 2*T2, перш чым новая тактавая частата стане актыўнай. У гэтым інтэрвале ўтвараюцца 2 актыўныя фронты тактавай частоты. Тут T1 - папярэдні тактавы перыяд, а T2 - перыяд, які адпавядае новай наладзе папярэдняга дзелільніка.
Тактавы выхадны буфер
Прылада можа выводзіць сістэмныя гадзіны на штыфт CLKO (калі ён не выкарыстоўваецца як штыфт XTAL2). Каб уключыць выхад, трэба запраграмаваць засцерагальнік CKOUT. Гэты рэжым падыходзіць, калі гадзіннік чыпа выкарыстоўваецца для кіравання іншымі схемамі ў сістэме. Звярніце ўвагу, што гадзіннік не будзе выводзіцца падчас скіду і што звычайная праца кантакту ўводу/вываду будзе адменена, калі запраграмаваны засцерагальнік. Унутраны RC-генератар, WDT-генератар, PLL і знешні тактавы сігнал (CLKI) можна выбраць, калі тактавы сігнал выводзіцца на CLKO. Крысталавыя асцылятары (XTAL1, XTAL2) не могуць выкарыстоўвацца для вываду тактавага сігналу на CLKO. Калі выкарыстоўваецца сістэмны гадзіннік Prescaler, гэта падзелены сістэмны гадзіннік, які выводзіцца.
Апісанне рэгістра
OSCCAL - Рэгістр каліброўкі асцылятара
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Чытаць/Запісваць | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Біты 7:0 – CAL[7:0]: значэнне каліброўкі асцылятара
Рэгістр каліброўкі асцылятара выкарыстоўваецца для карэкціроўкі калібраванага ўнутранага RC-генератара для выдалення змены частоты асцылятара. Папярэдне запраграмаванае значэнне каліброўкі аўтаматычна запісваецца ў гэты рэгістр падчас скіду чыпа, даючы частату каліброўкі на заводзе, як паказана ў Табліца 21-2 на старонцы 164. Прыкладное праграмнае забеспячэнне можа запісаць гэты рэгістр, каб змяніць частату асцылятара. Асцылятар можна адкалібраваць на частотах, як паказана ў Табліца 21-2 на старонцы 164. Каліброўка за межамі гэтага дыяпазону не гарантуецца.
Звярніце ўвагу, што гэты асцылятар выкарыстоўваецца для вымярэння часу доступу да запісу ў EEPROM і флэш-памяці, і гэты час запісу будзе закрануты адпаведна. Калі EEPROM або Flash запісаны, не выконвайце каліброўку больш чым на 8.8 МГц. У адваротным выпадку запіс у EEPROM або Flash можа не атрымацца.
Біт CAL7 вызначае дыяпазон працы асцылятара. Усталяванне гэтага біта ў 0 дае самы нізкі дыяпазон частот, усталяванне гэтага біта ў 1 дае самы высокі дыяпазон частот. Два дыяпазоны частот перакрываюцца, іншымі словамі, налада OSCCAL = 0x7F дае больш высокую частату, чым OSCCAL = 0x80.
Біты CAL[6:0] выкарыстоўваюцца для налады частоты ў абраным дыяпазоне. Параметр 0x00 дае самую нізкую частату ў гэтым дыяпазоне, а параметр 0x7F дае самую высокую частату ў дыяпазоне.
Для забеспячэння стабільнай працы MCU значэнне каліброўкі павінна быць зменена нязначна. Змена частоты больш чым на 2% ад аднаго цыклу да наступнага можа прывесці да непрадказальных паводзін. Змены ў OSCCAL не павінны перавышаць 0x20 для кожнай каліброўкі. Неабходна пераканацца, што MCU захоўваецца ў рэжыме скіду падчас такіх змен у тактавай частаце
Табліца 6-14. Унутраны дыяпазон частот RC-генератара
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 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біты 3:0 – CLKPS[3:0]: Біты выбару папярэдняга дзялільніка гадзінніка 3 – 0
Гэтыя біты вызначаюць каэфіцыент дзялення паміж абранай крыніцай тактавага сігналу і ўнутраным сістэмным гадзіннікам. Гэтыя біты могуць быць запісаны падчас выканання, каб змяняць тактавую частату ў адпаведнасці з патрабаваннямі прыкладання. Паколькі дзельнік дзеліць уваход галоўнага тактавага сігналу ў MCU, хуткасць усіх сінхронных перыферыйных прылад зніжаецца пры выкарыстанні каэфіцыента дзялення. Каэфіцыенты дзялення прыведзены ў Табліца 6-15.
Каб пазбегнуць ненаўмысных змяненняў тактавай частаты, трэба прытрымлівацца спецыяльнай працэдуры запісу для змены бітаў CLKPS:
Запішыце біт уключэння папярэдняга дзялільніка гадзінніка (CLKPCE) у адзінку, а ўсе астатнія біты ў CLKPR - у нуль.
На працягу чатырох цыклаў запішыце патрэбнае значэнне ў CLKPS, адначасова запісваючы нуль у CLKPCE.
Перапыненні павінны быць адключаны пры змене налад папярэдняга дзялільніка, каб пераканацца, што працэдура запісу не перапыняецца.
Засцерагальнік CKDIV8 вызначае пачатковае значэнне бітаў CLKPS. Калі CKDIV8 не запраграмаваны, біты CLKPS будуць скінуты да «0000». Калі CKDIV8 запраграмаваны, біты CLKPS скідаюцца ў «0011», што дае каэфіцыент дзялення восем пры запуску. Гэтую функцыю трэба выкарыстоўваць, калі абраная крыніца тактавага сігналу мае больш высокую частату, чым максімальная частата прылады ў цяперашніх умовах працы. Звярніце ўвагу, што любое значэнне можа быць запісана ў біты CLKPS незалежна ад налады CKDIV8 Fuse. Прыкладное праграмнае забеспячэнне павінна забяспечыць дастатковы каэфіцыент дзялення
выбіраецца, калі абраная крыніца тактавага сігналу мае больш высокую частату, чым максімальная частата прылады ў цяперашніх умовах працы. Прылада пастаўляецца з запраграмаваным засцерагальнікам CKDIV8.
Табліца 6-15. Гадзіннік Prescaler Select
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. Дамены актыўнага гадзінніка і крыніцы абуджэння ў розных рэжымах сну
Дамены Active Clock | Асцылятары | Крыніцы абуджэння | ||||||||||
Рэжым сну | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Асноўная крыніца гадзінніка ўключана | INT0 і Pin Change | SPM/EEPROM
Гатовы |
Пачатковая ўмова USI |
АЛП | Іншы ўвод-вывад | Вартавы сабака Перапыніць |
Бяздзейны | X | X | X | X | X | X | X | X | X | X | ||
Зніжэнне шуму АЦП | X | X | X(1) | X | X | X | X | |||||
Выключэнне харчавання | X(1) | X | X |
Заўвага: для INT0, толькі перапыненне ўзроўню.
Каб увайсці ў любы з трох рэжымаў сну, біт SE ў MCUCR павінен быць запісаны ў лагічную адзінку і павінна быць выканана інструкцыя SLEEP. Біты SM[1:0] у рэгістры MCUCR выбіраюць, які рэжым сну (прастой, шумапрыглушэнне АЦП або выключэнне) будзе актываваны інструкцыяй SLEEP. Глядзіце Табліца 7-2 для рэзюмэ.
Калі ўключанае перапыненне адбываецца, калі MCU знаходзіцца ў спячым рэжыме, MCU выходзіць з рэжыму сну. Затым MCU спыняецца на чатыры цыклы ў дадатак да часу запуску, выконвае працэдуру перапынення і аднаўляе выкананне з інструкцыі пасля SLEEP. Змест Рэестра File і SRAM не змяняюцца, калі прылада выходзіць са сну. Калі скід адбываецца ў рэжыме сну, MCU выходзіць з рэжыму сну і выконвае з вектара скіду.
Заўвага: калі для абуджэння выкарыстоўваецца перапыненне, выкліканае ўзроўнем, зменены ўзровень павінен утрымлівацца некаторы час, каб разбудзіць MCU (і для таго, каб MCU увайшоў у працэдуру абслугоўвання перапынення). Глядзіце “Знешнія перапыненні” на старонцы 49 для дэталяў.
Рэжым чакання
Калі біты SM[1:0] запісваюцца ў 00, інструкцыя SLEEP прымушае MCU пераходзіць у рэжым чакання, спыняючы працэсар, але дазваляючы аналагаваму кампаратару, АЦП, USI, таймеру/лічыльніку, Watchdog і сістэме перапыненняў працягваць працу. есць. Гэты рэжым сну ў асноўным спыняе clkCPU і clkFLASH, дазваляючы іншым гадзіннікам працаваць.
Рэжым бяздзейнасці дазваляе MCU прачынацца ад знешніх выкліканых перапыненняў, а таксама ад унутраных, такіх як перапаўненне таймера. Калі абуджэнне ад перапынення аналагавага кампаратара не патрабуецца, аналагавы кампаратар можна выключыць, усталяваўшы біт ACD у “ACSR – Рэгістр кіравання і стану аналагавага кампаратара” на старонцы 120. Гэта знізіць энергаспажыванне ў рэжыме чакання. Калі АЦП уключаны, пераўтварэнне пачынаецца аўтаматычна пры ўваходзе ў гэты рэжым.
Рэжым шумапрыглушэння АЦП
Калі біты SM[1:0] запісваюцца ў 01, інструкцыя SLEEP прымушае MCU пераходзіць у рэжым зніжэння шуму АЦП, спыняючы працэсар, але дазваляючы АЦП, знешнім перапыненням і Watchdog працягваць працаваць (калі ўключаны). Гэты рэжым сну спыняе clkI/O, clkCPU і clkFLASH, дазваляючы іншым гадзіннікам працаваць.
Гэта паляпшае шумавое асяроддзе для АЦП, што дазваляе праводзіць вымярэнні з больш высокім дазволам. Калі АЦП уключаны, пераўтварэнне пачынаецца аўтаматычна пры ўваходзе ў гэты рэжым. Акрамя перапынення ADC Conversion Complete, толькі знешні скід, скід Watchdog, скід Brown-out, перапыненне гатоўнасці SPM/EEPROM, перапыненне знешняга ўзроўню на INT0 або перапыненне змены кантакту можа абудзіць MCU ад шумапрыглушэння ADC рэжым.
Рэжым адключэння
Калі біты SM[1:0] запісваюцца ў 10, інструкцыя SLEEP прымушае MCU пераходзіць у рэжым адключэння. У гэтым рэжыме асцылятар спыняецца, у той час як знешнія перапыненні, выяўленне стану запуску USI і Watchdog працягваюць працаваць (калі ўключаны). Толькі знешні скід, скід Watchdog, скід Brown-out, перапыненне ўмовы запуску USI, перапыненне знешняга ўзроўню на INT0 або перапыненне змены кантакту можа абудзіць MCU. Гэты рэжым сну спыняе ўсе згенераваныя тактавыя сігналы, дазваляючы працаваць толькі асінхронным модулям.
Праграмнае забеспячэнне BOD Disable
Калі дэтэктар загарання (BOD) уключаны засцерагальнікамі BODLEVEL (гл Табліца 20-4 на старонцы 148), БПК актыўна сочыць за пастаўкай абtagе ў перыяд сну. У некаторых прыладах можна зэканоміць энергію, адключыўшы BOD праграмным забеспячэннем у спячым рэжыме Power-Down. Энергаспажыванне ў спячым рэжыме будзе на тым жа ўзроўні, што і пры глабальным адключэнні BOD засцерагальнікамі.
Калі BOD адключаны праграмным забеспячэннем, функцыя BOD адключаецца адразу пасля ўваходу ў спячы рэжым. Пасля выхаду са сну BOD аўтаматычна зноў уключаецца. Гэта забяспечвае бяспечную працу ў выпадку падзення ўзроўню VCC падчас перыяду сну.
Калі BOD быў адключаны, час абуджэння з спячага рэжыму будзе такім жа, як і для абуджэння з RESET. Карыстальнік павінен уручную наладзіць час абуджэння такім чынам, каб эталонны зазор паспеў запусціцца і BOD працаваў правільна, перш чым MCU працягне выкананне кода. Глядзіце біты засцерагальніка SUT[1:0] і CKSEL[3:0] у табліцы “Малодшы байт Fuse” на старонцы 149
Адключэнне BOD кіруецца бітам BODS (BOD Sleep) рэгістра кіравання MCU, гл «MCUCR - кантроль MCU Рэгістрацыя» на старонцы 37. Запіс гэтага біта ў адзінку выключае BOD пры выключэнні, а запіс нуля падтрымлівае BOD актыўным. Налада па змаўчанні роўная нулю, гэта значыць БПК актыўны.
Запіс у біт BODS кантралюецца часовай паслядоўнасцю і бітам уключэння, гл «MCUCR - Рэгістр кіравання MCU- ter” на старонцы 37.
Абмежаванні
Функцыя адключэння BOD была рэалізавана толькі ў наступных прыладах:
ATtiny25, версія E і навей
ATtiny45, версія D і навейшыя
ATtiny85, версія C і навейшыя
Рэвізіі пазначаны на ўпакоўцы прылады і могуць быць размешчаны наступным чынам:
Ніжні бок пакетаў 8П3 і 8С2
Верхні бок пакета 20М1
Рэестр зніжэння магутнасці
Рэгістр зніжэння магутнасці (PRR), гл «PRR - Рэгістр зніжэння магутнасці» на старонцы 38, забяспечвае метад змяншэння энергаспажывання шляхам прыпынку тактавага сігналу асобных перыферыйных прылад. Бягучы стан перыферыйнага прылады замарожаны, і рэгістры ўводу/вываду не могуць быць прачытаны або запісаны. Рэсурсы, якія выкарыстоўваюцца перыферыйным прыладай пры спыненні гадзінніка, застануцца занятымі, таму ў большасці выпадкаў перыферыйнае прылада павінна быць адключана перад спыненнем гадзінніка. Прачынанне модуля, якое робіцца шляхам ачысткі біта ў PRR, пераводзіць модуль у той жа стан, што і перад выключэннем.
Выключэнне модуля можна выкарыстоўваць у рэжыме чакання і актыўным рэжыме, каб значна знізіць агульнае энергаспажыванне. Ва ўсіх астатніх рэжымах сну гадзіннік ужо спынены. Глядзіце «Сілавы ток модуляў уводу/вываду» на старонцы 177 напрыкладampлес.
Мінімізацыя энергаспажывання
Пры спробе мінімізаваць энергаспажыванне ў сістэме, кіраванай AVR, трэба ўлічваць некалькі праблем. Увогуле, спячыя рэжымы павінны выкарыстоўвацца як мага часцей, а спячы рэжым павінен быць абраны так, каб працавала як мага менш функцый прылады. Усе непатрэбныя функцыі трэба адключыць. У прыватнасці, наступныя модулі могуць запатрабаваць асаблівай увагі пры спробе дасягнуць мінімальна магчымага энергаспажывання.
Аналагава-лічбавы канвэртар
Калі ўключана, АЦП будзе ўключаны ва ўсіх рэжымах сну. Каб зэканоміць энергію, АЦП павінен быць адключаны перад уваходам у рэжым сну. Калі АЦП выключаецца і зноў уключаецца, наступнае пераўтварэнне будзе пашыраным. Спасылацца на “Аналагава-лічбавы пераўтваральнік” на старонцы 122 падрабязную інфармацыю аб працы АЛП.
Аналагавы кампаратар
Пры ўваходзе ў рэжым чакання аналагавы кампаратар павінен быць адключаны, калі ён не выкарыстоўваецца. Пры ўваходзе ў рэжым шумапрыглушэння АЦП аналагавы кампаратар павінен быць адключаны. У іншых рэжымах сну аналагавы кампаратар аўтаматычна адключаецца. Аднак, калі аналагавы кампаратар настроены на выкарыстанне Internal Voltage У якасці ўваходных дадзеных аналагавы кампаратар павінен быць адключаны ва ўсіх рэжымах сну. У адваротным выпадку Internal Voltage Даведка будзе ўключана незалежна ад рэжыму сну. Спасылацца на “Аналагавы кампаратар” на старонцы 119 падрабязную інфармацыю аб тым, як наладзіць аналагавы кампаратар.
Дэтэктар пацямнення
Калі дэтэктар карычневага колеру не патрэбны ў дадатку, гэты модуль трэба выключыць. Калі дэтэктар загарання ўключаны засцерагальнікамі BODLEVEL, ён будзе ўключаны ва ўсіх рэжымах сну і, такім чынам, заўсёды спажывае энергію. У больш глыбокіх рэжымах сну гэта будзе значна спрыяць агульнаму спажыванню току. Глядзіце «Выяўленне карычневага колеру цыя» на старонцы 41 і “Праграмнае адключэнне BOD” на старонцы 35 падрабязную інфармацыю аб тым, як наладзіць дэтэктар карычневага колеру.
Унутраны выпtage Даведка
The Internal Voltage Апорны сігнал будзе ўключаны, калі спатрэбіцца выяўленню загарання, аналагаваму кампаратару або АЛП. Калі гэтыя модулі адключаны, як апісана ў раздзелах вышэй, унутраны томtagСпасылка будзе адключана, і яна не будзе спажываць энергію. Пры паўторным уключэнні карыстальнік павінен дазволіць запуск спасылкі перад выкарыстаннем вываду. Калі спасылка застаецца ўключанай у спячым рэжыме, выхад можна выкарыстоўваць неадкладна. Спасылацца на «Internal Voltage Reference” на старонцы 42 падрабязней пра час запуску.
Вартавы таймер
Калі Watchdog Timer не патрэбны ў дадатку, гэты модуль трэба выключыць. Калі вартавы таймер уключаны, ён будзе ўключаны ва ўсіх рэжымах сну і, такім чынам, заўсёды будзе спажываць энергію. У больш глыбокіх рэжымах сну гэта будзе значна спрыяць агульнаму спажыванню току. Спасылацца на «Вартавы таймер» на старонцы 42 каб атрымаць падрабязную інфармацыю аб тым, як наладзіць вартавы таймер.
Штыфты порта
Пры ўваходзе ў рэжым сну ўсе кантакты порта павінны быць настроены на выкарыстанне мінімальнай магутнасці. Самае важнае - пераканацца, што ніякія штыфты не рухаюць рэзістыўныя нагрузкі. У спячых рэжымах, калі тактавы сігнал уводу/вываду (clkI/O) і тактавы сігнал АЦП (clkADC) спынены, уваходныя буферы прылады будуць адключаны. Гэта гарантуе, што электраэнергія не спажываецца
па логіцы ўводу, калі гэта не патрэбна. У некаторых выпадках логіка ўводу патрэбна для выяўлення ўмоў абуджэння і
пасля гэтага ён будзе ўключаны. Звярніцеся да падзелу «Рэжымы ўключэння лічбавага ўваходу і спячага рэжыму» на старонцы 57 каб атрымаць падрабязную інфармацыю аб тым, якія шпількі ўключаны. Калі ўваходны буфер уключаны і ўваходны сігнал застаецца плаваючым або мае ўзровень аналагавага сігналу, блізкі да VCC/2, уваходны буфер будзе выкарыстоўваць празмерную магутнасць.
Для кантактаў аналагавага ўводу буфер лічбавага ўводу павінен быць увесь час адключаны. Узровень аналагавага сігналу, блізкі да VCC/2 на ўваходным выснове, можа выклікаць значны ток нават у актыўным рэжыме. Буферы лічбавага ўводу можна адключыць шляхам запісу ў рэгістр адключэння лічбавага ўводу (DIDR0). Спасылацца на “DIDR0 – Рэгістр адключэння лічбавага ўваходу 0” на старонцы 121 для дэталяў.
Апісанне рэгістра
MCUCR - Рэгістр кіравання MCU
Рэгістр кіравання MCU змяшчае біты кіравання для кіравання харчаваннем.
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | БОДС | ПУД | 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.
Каб адключыць БПК падчас сну (гл Табліца 7-1 на старонцы 34) біт BODS павінен быць запісаны ў лагічную адзінку. Гэта кіруецца часовай паслядоўнасцю і бітам уключэння BODSE у MCUCR. Па-першае, і BODS, і BODSE павінны быць устаноўлены ў адзінку. Па-другое, на працягу чатырох тактаў BODS павінен быць усталяваны ў адзінку, а BODSE - у нуль. Біт BODS актыўны праз тры тактавыя цыклы пасля яго ўстаноўкі. Інструкцыя сну павінна быць выканана, калі BODS актыўны, каб выключыць BOD для фактычнага рэжыму сну. Біт BODS аўтаматычна ачышчаецца пасля трох тактаў.
У прыладах, у якіх не быў рэалізаваны Sleeping BOD, гэты біт не выкарыстоўваецца і заўсёды будзе паказваць нуль.
Біт 5 – SE: уключэнне рэжыму сну
Біт SE павінен быць запісаны ў лагічную адзінку, каб MCU перайшоў у спячы рэжым, калі выконваецца інструкцыя SLEEP. Каб пазбегнуць пераходу MCU у рэжым сну, калі гэта не з'яўляецца мэтай праграміста, рэкамендуецца запісваць біт уключэння сну (SE) у адзінку непасрэдна перад выкананнем інструкцыі SLEEP і ачышчаць яго адразу пасля абуджэння.
Біты 4:3 – SM[1:0]: Выбар рэжыму сну Біты 1 і 0
Гэтыя біты выбіраюць паміж трыма даступнымі рэжымамі сну, як паказана на Табліца 7-2.
Табліца 7-2. Выбар рэжыму сну
SM1 | SM0 | Рэжым сну |
0 | 0 | Бяздзейны |
0 | 1 | Зніжэнне шуму АЦП |
1 | 0 | Выключэнне харчавання |
1 | 1 | Зарэзерваваны |
Біт 2 – BODSE: уключэнне рэжыму сну BOD
Функцыя адключэння BOD даступная толькі на некаторых прыладах. Глядзіце «Абмежаванні» на старонцы 36.
Біт BODSE дазваляе ўсталяваць біт кіравання BODS, як тлумачыцца ў апісанні біта BODS. Адключэнне БПК кантралюецца паслядоўнасцю па часе.
Гэты біт не выкарыстоўваецца ў прыладах, дзе праграмнае адключэнне BOD не было рэалізавана, і будзе чытацца як нуль у гэтых прыладах.
PRR - Рэгістр зніжэння магутнасці
Рэгістр зніжэння магутнасці забяспечвае метад зніжэння спажывання энергіі, дазваляючы адключаць перыферыйныя тактавыя сігналы.
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | ПРТІМ1 | ПРТІМ0 | ПРУСІ | PRADC | PRR |
Чытаць/Запісваць | R | R | R | R | R/W | R/W | R/W | R/W | |
Пачатковае значэнне | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Біты 7:4 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біт 3 – PRTIM1: таймер/лічыльнік зніжэння магутнасці 1
Запіс лагічнай адзінкі ў гэты біт выключае модуль Timer/Counter1. Калі Таймер/Лічыльнік1 уключаны, праца будзе працягвацца, як і перад выключэннем.
Біт 2 – PRTIM0: таймер/лічыльнік зніжэння магутнасці 0
Запіс лагічнай адзінкі ў гэты біт выключае модуль Timer/Counter0. Калі Таймер/Лічыльнік0 уключаны, праца будзе працягвацца, як і перад выключэннем.
Біт 1 – PRUSI: USI зніжэння магутнасці
Запіс лагічнай адзінкі ў гэты біт адключае USI, спыняючы гадзіннік модуля. Пры паўторным выхадзе з рэжыму сну USI трэба паўторна ініцыялізаваць яго, каб забяспечыць належную працу.
Біт 0 – PRADC: АЦП зніжэння магутнасці
Запіс лагічнай адзінкі ў гэты біт выключае АЦП. АЦП павінен быць адключаны перад выключэннем. Звярніце ўвагу, што тактавы сігнал АЦП таксама выкарыстоўваецца некаторымі часткамі аналагавага кампаратара, што азначае, што аналагавы кампаратар нельга выкарыстоўваць, калі гэты біт высокі.
Кантроль і скід сістэмы
Скід налад AVR
Падчас скіду ўсе рэгістры ўводу/вываду ўсталёўваюцца ў пачатковыя значэнні, і праграма пачынае выкананне з вектара скіду. Інструкцыя, размешчаная ў вектары скіду, павінна быць RJMP – адносны пераход – інструкцыяй для працэдуры апрацоўкі скіду. Калі праграма ніколі не ўключае крыніцу перапынення, вектары перапынення не выкарыстоўваюцца, і звычайны праграмны код можа быць размешчаны ў гэтых месцах. Электрычная схема ў Малюнак 8-1 паказвае логіку скіду. Электрычныя параметры схемы скіду прыведзены ў «Характарыстыкі сістэмы і скіду» на старонцы 165.
Малюнак 8-1 Логіка скіду
Парты ўводу/вываду AVR неадкладна скідаюцца ў зыходны стан, калі крыніца скіду становіцца актыўнай. Гэта не патрабуе працы крыніцы тактавага сігналу.
Пасля таго, як усе крыніцы скіду становяцца неактыўнымі, выклікаецца лічыльнік затрымкі, працягваючы ўнутраны скід. Гэта дазваляе магутнасці дасягнуць стабільнага ўзроўню перад пачаткам нармальнай працы. Перыяд тайм-аўту лічыльніка затрымкі вызначаецца карыстальнікам праз засцерагальнікі SUT і CKSEL. Розныя выбары для перыяду затрымкі прадстаўлены ў «Гадзіннік Крыніцы» на старонцы 25.
Скінуць крыніцы
ATtiny25/45/85 мае чатыры крыніцы скіду:
Скід пры ўключэнні. MCU скідаецца, калі аб'ём падачыtage ніжэй парогавага значэння скіду пры ўключэнні (VPOT).
Знешні скід. MCU скідаецца, калі нізкі ўзровень прысутнічае на штыфце RESET больш, чым мінімальная даўжыня імпульсу.
Вартавы скід. MCU скідаецца, калі перыяд вартавога таймера заканчваецца і вартавы таймер уключаны.
Скід карычневага колеру. MCU скідаецца, калі аб'ём падачыtage VCC ніжэй парогавага скіду карычневага колеру (VBOT), а дэтэктар карычневага колеру ўключаны.
Скід пры ўключэнні
Імпульс скіду пры ўключэнні (POR) генеруецца ўбудаванай схемай выяўлення. Узровень выяўлення вызначаецца ў «Сістэма- Тэм і скід характарыстык» на старонцы 165. POR актывуецца кожны раз, калі VCC ніжэй за ўзровень выяўлення. Схема POR можа выкарыстоўвацца для запуску скіду пры запуску, а таксама для выяўлення збою ў аб'ёме падачыtage.
Схема скіду пры ўключэнні (POR) забяспечвае скід прылады пасля ўключэння. Дасягненне парогавага значэння скіду пры ўключэнні абtage выклікае лічыльнік затрымкі, які вызначае, як доўга прылада знаходзіцца ў рэжыме RESET пасля павышэння VCC. Сігнал RESET зноў актывуецца без затрымкі, калі VCC зніжаецца ніжэй за ўзровень выяўлення.
Малюнак 8-2. Запуск MCU, СКІД, прывязаны да VCC
УНУТРАНЫ СКІД
Малюнак 8-3. Запуск MCU, СКІД пашыраны звонку
Знешні скід
Знешні скід генеруецца нізкім узроўнем на штыфце RESET, калі ён уключаны. Скінуць імпульсы даўжэй мінімальнай шырыні імпульсу (гл «Характарыстыкі сістэмы і скіду» на старонцы 165) прывядзе да скіду, нават калі гадзіннік не працуе. Больш кароткія імпульсы не гарантуюць генерацыю скіду. Калі пададзены сігнал дасягае скіду парога Voltage – VRST – на станоўчым фрэнчы лічыльнік затрымкі запускае MCU пасля заканчэння перыяду тайм-аўту.
Малюнак 8-4. Знешні скід падчас працы
Выяўленне карычневага колеру
ATtiny25/45/85 мае ўбудаваны ў чып ланцуг выяўлення пашкоджання (BOD) для маніторынгу ўзроўню VCC падчас працы, параўноўваючы яго з фіксаваным узроўнем запуску. Узровень спрацоўвання для BOD можна выбраць з дапамогай засцерагальнікаў BODLEVEL. Узровень спрацоўвання мае гістэрэзіс, каб гарантаваць выяўленне пашкоджанняў без скокаў. Гістэрэзіс на ўзроўні выяўлення варта інтэрпрэтаваць як VBOT+ = VBOT + VHYST/2 і VBOT- = VBOT – VHYST/2.
Калі BOD уключаны і VCC зніжаецца да значэння ніжэй за ўзровень запуску (VBOT- in Малюнак 8-5), неадкладна актывуецца скід карычневага колеру. Калі VCC павялічваецца вышэй за ўзровень запуску (VBOT+ у Малюнак 8-5), лічыльнік затрымкі запускае MCU пасля заканчэння перыяду тайм-аўту tTOUT.
Схема БПК выявіць падзенне VCC, толькі калі аб'ёмtage застаецца ніжэй за трыгерны ўзровень даўжэй, чым tBOD «Характарыстыкі сістэмы і скіду» на старонцы 165.
Вартавы скід
Калі Watchdog скончыцца, ён згенеруе кароткі імпульс скіду працягласцю ў адзін цыкл CK. На спадальным фронце гэтага імпульсу таймер затрымкі пачынае адлік перыяду тайм-аўту tTOUT. Спасылацца на «Вартавы таймер» на старонцы 42 падрабязную інфармацыю аб працы вартавога таймера.
тtage Даведачныя сігналы ўключэння і час запуску
ВыпtagДаведка мае час запуску, які можа паўплываць на спосаб яе выкарыстання. Уведзены час запуску «Характарыстыкі сістэмы і скіду» на старонцы 165. Для эканоміі энергіі эталон не заўсёды ўключаецца. Даведка ўключаецца ў наступных сітуацыях:
Калі BOD уключаны (шляхам праграмавання біт засцерагальніка BODLEVEL [2:0]).
Калі эталонны зазор падлучаны да аналагавага кампаратара (шляхам усталявання біта ACBG у ACSR).
Калі АЛП уключаны.
Такім чынам, калі BOD не ўключаны, пасля ўстанаўлення біта ACBG або ўключэння АЛП карыстальнік павінен заўсёды дазваляць запускаць апорны сігнал перад выкарыстаннем вываду з аналагавага кампаратара або АЛП. Каб знізіць энергаспажыванне ў рэжыме адключэння, карыстальнік можа пазбегнуць трох вышэйпералічаных умоў, каб пераканацца, што апорны сігнал адключаны перад уваходам у рэжым адключэння.
Вартавы таймер
Вартавы таймер кіруецца ад убудаванага асцылятара, які працуе на частаце 128 кГц. Кіруючы папярэднім дзельшчыкам Watchdog Timer, інтэрвал Watchdog Reset можна наладзіць, як паказана ў Табліца 8-3 на старонцы 46. WDR - Watchdog Reset - інструкцыя скідае Watchdog Timer. Вартавы таймер таксама скідаецца, калі ён адключаны і калі адбываецца скід мікрасхемы. Для вызначэння перыяду скіду можна выбраць дзесяць розных перыядаў тактавага сігналу. Калі перыяд скіду заканчваецца без паўторнага скіду Watchdog, ATtiny25/45/85 скідае і выконвае з вектара скіду. Падрабязную інфармацыю аб скідзе Watchdog глядзіце ў Табліца 8-3 на старонцы 46.
Вартавы таймер таксама можна наладзіць для генерацыі перапынення замест скіду. Гэта можа быць вельмі карысна пры выкарыстанні Watchdog для выхаду з рэжыму адключэння.
Каб прадухіліць ненаўмыснае адключэнне Watchdog або ненаўмыснае змяненне перыяду тайм-аўту, два розныя ўзроўні бяспекі выбіраюцца засцерагальнікам WDTON, як паказана ў Табліца 8-1 Спасылацца на «Часавыя паслядоўнасці для змены кан- малюнак вартавога таймера» на старонцы 43 для дэталяў.
Табліца 8-1. Канфігурацыя WDT як функцыя налад засцерагальніка WDTON
WDTON | Узровень бяспекі | Пачатковы стан WDT | Як адключыць WDT | Як змяніць тайм-аўт |
Непраграмаваны | 1 | Інваліды | Часовая паслядоўнасць | Без абмежаванняў |
Запраграмаваны | 2 | Уключаны | Заўсёды ўключана | Часовая паслядоўнасць |
Малюнак 8-7. Вартавы таймер
Часовыя паслядоўнасці для змены канфігурацыі вартавога таймера
Паслядоўнасць змены канфігурацыі нязначна адрозніваецца паміж двума ўзроўнямі бяспекі. Для кожнага ўзроўню апісаны асобныя працэдуры.
Узровень бяспекі 1: у гэтым рэжыме вартавы таймер першапачаткова адключаны, але можа быць уключаны шляхам запісу біта WDE у адзінку без якіх-небудзь абмежаванняў. Пры адключэнні ўключанага вартавога таймера патрабуецца паслядоўнасць па часе. Каб адключыць уключаны Watchdog Timer, неабходна выканаць наступную працэдуру:
У гэтай жа аперацыі запішыце лагічную адзінку ў WDCE і WDE. Лагічная адзінка павінна быць запісана ў WDE незалежна ад папярэдняга значэння біта WDE.
На працягу наступных чатырох тактавых цыклаў у той жа аперацыі запішыце біты WDE і WDP па жаданні, але са счышчаным бітам WDCE.
Узровень бяспекі 2: у гэтым рэжыме вартавы таймер заўсёды ўключаны, і біт WDE заўсёды будзе чытацца як адзін. Часовая паслядоўнасць неабходная пры змене перыяду тайм-аўту Watchdog. Каб змяніць тайм-аўт Watchdog, неабходна выканаць наступную працэдуру:
У гэтай жа аперацыі запішыце лагічную адзінку ў WDCE і WDE. Нягледзячы на тое, што WDE заўсёды ўсталяваны, WDE павінен быць запісаны ў адзінку, каб пачаць часовую паслядоўнасць.
На працягу наступных чатырох тактавых цыклаў у той жа аперацыі запішыце біты WDP па жаданні, але са счышчаным бітам WDCE. Значэнне, запісанае ў біт WDE, не мае значэння.
Код Прample
Наступны код напрыкладample паказвае адну зборку і адну функцыю C для адключэння WDT. Былыample мяркуе, што перапыненні кантралююцца (напрыклад, глабальна адключаючы перапыненні), так што падчас выканання гэтых функцый не будзе ніякіх перапыненняў.
Код зборкі Example(1) |
WDT_off:
wdr ; Ачысціць WDRF у MCUSR ldi r16, (0< з MCUSR, r16 ; Запіс лагічнай адзінкі ў WDCE і WDE ; Захоўвайце старыя налады папярэдняга дзельніка, каб прадухіліць ненаўмысны скід Watchdog у r16, WDTCR ori r16, (1< з WDTCR, r16 ; Выключыце WDT ldi r16, (0< з WDTCR, r16 адпачынак |
C Код Example(1) |
несапраўдны WDT_off(несапраўдны)
{ _WDR(); /* Ачысціць WDRF у MCUSR */ MCUSR = 0x00 /* Запіс лагічнай адзінкі ў WDCE і WDE */ WDTCR |= (1< /* Выключыць WDT */ WDTCR = 0x00; } |
Заўвага: 1. Гл «Кодэкс Exampлес» на старонцы 6.
Апісанне рэгістра
MCUSR - Рэгістр стану MCU
Рэгістр стану MCU змяшчае інфармацыю аб тым, якая крыніца скіду выклікала скід MCU.
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | БОРФ | ЭКСТРАФ | ПОРФ | МКУСР |
Чытаць/Запісваць | R | R | R | R | R/W | R/W | R/W | R/W |
Пачатковае значэнне 0 0 0 0 Глядзіце апісанне біта
Біты 7:4 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біт 3 – WDRF: сцяг скіду вартавога таймера
Гэты біт усталёўваецца, калі адбываецца скід Watchdog. Біт скідаецца шляхам скіду пры ўключэнні або запісам лагічнага нуля ў сцяг.
Біт 2 – BORF: сцяг скіду карычневага колеру
Гэты біт усталёўваецца, калі адбываецца скід карычневага колеру. Біт скідаецца шляхам скіду пры ўключэнні або запісам лагічнага нуля ў сцяг.
Біт 1 – EXTRF: Знешні сцяг скіду
Гэты біт усталёўваецца, калі адбываецца знешні скід. Біт скідаецца шляхам скіду пры ўключэнні або запісам лагічнага нуля ў сцяг.
Біт 0 – PORF: Флаг скіду пры ўключэнні
Гэты біт усталёўваецца, калі адбываецца скід пры ўключэнні. Біт скідаецца толькі запісам лагічнага нуля ў сцяг.
Каб выкарыстоўваць сцягі скіду для ідэнтыфікацыі стану скіду, карыстальнік павінен прачытаць і затым скінуць MCUSR як мага раней у праграме. Калі рэестр ачышчаны перад наступным скідам, крыніца скіду можа быць знойдзена шляхам вывучэння сцягоў скіду.
WDTCR - Рэестр кіравання вартавым таймерам
Біт | 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
Гэты біт усталёўваецца, калі адбываецца тайм-аўт у вартавым таймеры і вартавы таймер настроены на перапыненне. WDIF ачышчаецца апаратна пры выкананні адпаведнага вектара апрацоўкі перапынення. У якасці альтэрнатывы WDIF ачышчаецца запісам лагічнай адзінкі ў сцяг. Калі біт I ў SREG і WDIE усталяваны, выконваецца перапыненне Watchdog Time-out.
Біт 6 – WDIE: Уключэнне перапынення тайм-аўту Watchdog
Калі гэты біт запісваецца ў адзінку, WDE ачышчаецца, а біт I у рэгістры стану ўсталёўваецца, уключаецца перапыненне па тайм-аўце Watchdog. У гэтым рэжыме адпаведнае перапыненне выконваецца замест скіду, калі адбываецца тайм-аўт у Watchdog Timer.
Калі ўстаноўлена WDE, WDIE аўтаматычна ачышчаецца апаратным забеспячэннем, калі надыходзіць тайм-аўт. Гэта карысна для захавання бяспекі Watchdog Reset падчас выкарыстання перапынення. Пасля таго, як біт WDIE ачышчаны, наступны тайм-аўт прывядзе да скіду. Каб пазбегнуць скіду Watchdog, WDIE трэба ўсталёўваць пасля кожнага перапынення.
Табліца 8-2. Канфігурацыя вартавога таймера
WDE | WDIE | Стан вартавога таймера | Дзеянне па тайм-аўту |
0 | 0 | Спыніліся | Няма |
0 | 1 | Бег | Перапыніць |
1 | 0 | Бег | Скінуць |
1 | 1 | Бег | Перапыніць |
Біт 4 – WDCE: уключэнне Watchdog Change
Гэты біт павінен быць усталяваны, калі біт WDE запісваецца ў лагічны нуль. У адваротным выпадку Watchdog не будзе адключаны. Пасля запісу ў адзін апаратнае забеспячэнне ачысціць гэты біт пасля чатырох тактаў. Звярніцеся да апісання біта WDE для працэдуры адключэння Watchdog. Гэты біт таксама павінен быць усталяваны пры змене біт папярэдняга дзялільніка. Глядзіце «Часавыя паслядоўнасці для змены канфігурацыі вартавога таймера» на старонцы 43.
Біт 3 – WDE: Watchdog Enable
Калі WDE запісваецца ў лагічную адзінку, вартавы таймер уключаны, а калі WDE запісваецца ў лагічны нуль, функцыя вартавога таймера адключаецца. WDE можна ачысціць, толькі калі біт WDCE мае лагічны ўзровень адзін. Каб адключыць уключаны Watchdog Timer, неабходна выканаць наступную працэдуру:
У гэтай жа аперацыі запішыце лагічную адзінку ў WDCE і WDE. Лагічная адзінка павінна быць запісана ў WDE, нават калі яна ўстаноўлена ў адзінку перад пачаткам аперацыі адключэння.
На працягу наступных чатырох тактаў запішыце лагічны 0 у WDE. Гэта адключае Watchdog.
На ўзроўні бяспекі 2 немагчыма адключыць вартавы таймер, нават з алгарытмам, апісаным вышэй. Глядзіце «Паслядоўнасці па часе для змены канфігурацыі вартавога таймера» на старонцы 43.
На ўзроўні бяспекі 1 WDE перавызначаецца WDRF у MCUSR. Глядзіце «MCUSR – Рэгістр стану MCU» на старонцы 44 для апісання WDRF. Гэта азначае, што WDE заўсёды ўсталёўваецца, калі ўсталяваны WDRF. Каб ачысціць WDE, WDRF неабходна ачысціць перад адключэннем Watchdog з дапамогай апісанай вышэй працэдуры. Гэтая функцыя забяспечвае шматразовы скід падчас умоў, якія выклікаюць збой, і бяспечны запуск пасля збою.
Заўвага: калі вартавы таймер не будзе выкарыстоўвацца ў дадатку, важна прайсці працэдуру адключэння вартавога таймера пры ініцыялізацыі прылады. Калі Watchdog выпадкова ўключаны, напрыкладampз-за ўцякаючага паказальніка або стану карычневага колеру, прылада будзе скінута, што, у сваю чаргу, прывядзе да новага скіду вартавога таймера. Каб пазбегнуць гэтай сітуацыі, прыкладное праграмнае забеспячэнне павінна заўсёды ачышчаць сцяг WDRF і кантрольны біт WDE у працэдуры ініцыялізацыі.
Біты 5, 2:0 – WDP[3:0]: Вартавы таймер Prescaler 3, 2, 1 і 0
Біты WDP[3:0] вызначаюць папярэдняе маштабаванне вартавога таймера, калі вартавы таймер уключаны. Розныя значэнні папярэдняга маштабавання і адпаведныя ім перыяды чакання паказаны ў Табліца 8-3.
Табліца 8-3. Вартавы таймер Prescale Select
WDP3 | WDP2 | WDP1 | WDP0 | Колькасць цыклаў асцылятара WDT | Тыповы тайм-аўт пры VCC = 5.0 В |
0 | 0 | 0 | 0 | 2K (2048) цыклаў | 16 мс |
0 | 0 | 0 | 1 | 4K (4096) цыклаў | 32 мс |
0 | 0 | 1 | 0 | 8K (8192) цыклаў | 64 мс |
0 | 0 | 1 | 1 | 16K (16384) цыклаў | 0.125 с |
0 | 1 | 0 | 0 | 32K (32764) цыклаў | 0.25 с |
0 | 1 | 0 | 1 | 64K (65536) цыклаў | 0.5 с |
0 | 1 | 1 | 0 | 128K (131072) цыклаў | 1.0 с |
0 | 1 | 1 | 1 | 256K (262144) цыклаў | 2.0 с |
1 | 0 | 0 | 0 | 512K (524288) цыклаў | 4.0 с |
1 | 0 | 0 | 1 | 1024K (1048576) цыклаў | 8.0 с |
Табліца 8-3. Выбар папярэдняй шкалы вартавога таймера (працяг)
WDP3 | WDP2 | WDP1 | WDP0 | Колькасць цыклаў асцылятара WDT | Тыповы тайм-аўт пры VCC = 5.0 В |
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. Вектары скіду і перапынення
Вектарны нумар | Адрас праграмы | Крыніца | Вызначэнне перапынення |
1 | 0x0000 | СКІД | Знешні штыфт, скід пры ўключэнні харчавання, скід карычневага колеру, скід Watchdog |
2 | 0x0001 | INT0 | Запыт знешняга перапынення 0 |
3 | 0x0002 | PCINT0 | Запыт на перапыненне змены PIN-кода 0 |
4 | 0x0003 | ТАЙМЕР1_КОМПА | Таймер/Лічыльнік 1 Параўнанне Супадзенне А |
5 | 0x0004 | ТАЙМЕР1_OVF | Перапаўненне таймера/лічыльніка 1 |
6 | 0x0005 | ТАЙМЕР0_OVF | Перапаўненне таймера/лічыльніка 0 |
7 | 0x0006 | EE_RDY | Гатовы EEPROM |
8 | 0x0007 | ANA_COMP | Аналагавы кампаратар |
9 | 0x0008 | АЛП | Пераўтварэнне АЦП завершана |
10 | 0x0009 | TIMER1_COMPB | Таймер/Лічыльнік 1 Параўнайце супадзенне B |
11 | 0x000A | ТАЙМЕР0_КОМПА | Таймер/Лічыльнік 0 Параўнанне Супадзенне А |
12 | 0x000B | TIMER0_COMPB | Таймер/Лічыльнік 0 Параўнайце супадзенне B |
13 | 0x000C | WDT | Вартавы тайм-аўт |
14 | 0x000D | USI_START | USI START |
15 | 0x000E | USI_OVF | Перапаўненне USI |
Калі праграма ніколі не ўключае крыніцу перапынення, вектары перапынення не выкарыстоўваюцца, і звычайны праграмны код можа быць размешчаны ў гэтых месцах.
Тыповая і агульная ўстаноўка для адрасоў вектараў перапынення ў ATtiny25/45/85 паказана ў праграме exampніжэй.
Код зборкі Example | ||
.org 0x0000 | ;Усталяваць адрас наступнага | заява |
rjmp СКІД | ; Адрас 0x0000 | |
rjmp INT0_ISR | ; Адрас 0x0001 | |
rjmp PCINT0_ISR | ; Адрас 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Адрас 0x0003 | |
rjmp TIM1_OVF_ISR | ; Адрас 0x0004 | |
rjmp TIM0_OVF_ISR | ; Адрас 0x0005 | |
rjmp EE_RDY_ISR | ; Адрас 0x0006 | |
rjmp ANA_COMP_ISR | ; Адрас 0x0007 | |
rjmp ADC_ISR | ; Адрас 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Адрас 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Адрас 0x000A | |
rjmp TIM0_COMPB_ISR | ; Адрас 0x000B | |
rjmp WDT_ISR | ; Адрас 0x000C | |
rjmp USI_START_ISR | ; Адрас 0x000D | |
rjmp USI_OVF_ISR | ; Адрас 0x000E | |
Скінуць: | ; Запуск асноўнай праграмы | |
; Адрас 0x000F | ||
… |
Заўвага: гл «Кодэкс Exampлес» на старонцы 6.
Знешнія перапыненні
Знешнія перапыненні выклікаюцца кантактам INT0 або любым з кантактаў PCINT[5:0]. Звярніце ўвагу, што калі ўключана, перапыненні будуць запускацца, нават калі кантакты INT0 або PCINT[5:0] настроены ў якасці выхадаў. Гэтая функцыя забяспечвае спосаб генерацыі праграмнага перапынення. Перарыванні пры змене кантакту PCI спрацуюць, калі любы з уключаных кантактаў PCINT[5:0] пераключаецца. Рэгістр PCMSK кантралюе, якія кантакты спрыяюць перапыненням змены кантактаў. Перапыненні змены кантакту на PCINT[5:0] выяўляюцца асінхронна. Гэта азначае, што гэтыя перапыненні могуць быць выкарыстаны для абуджэння часткі таксама з рэжымаў сну, акрамя рэжыму чакання.
Перапыненні INT0 могуць быць выкліканы спадальным або нарастаючым фронтам або нізкім узроўнем. Гэта настроена, як паказана ў спецыфікацыі рэгістра кіравання MCU - MCUCR. Калі перапыненне INT0 уключана і наладжана як узровень трыгера, перапыненне будзе запускацца да таго часу, пакуль штыфт знаходзіцца ў нізкім узроўні. Звярніце ўвагу, што для распазнавання перапыненняў па спадальным або нарастаючым фронтах на INT0 патрабуецца наяўнасць тактавага сігналу ўводу/вываду, апісанага ў «Сістэмы гадзінніка і іх распаўсюджванне» на старонка 23.
Перапыненне нізкага ўзроўню
Перапыненне нізкага ўзроўню на INT0 выяўляецца асінхронна. Гэта азначае, што гэтае перапыненне можа выкарыстоўвацца для выхаду часткі таксама з рэжымаў сну, акрамя рэжыму чакання. Гадзіннік уводу/вываду спыняецца ва ўсіх рэжымах сну, акрамя рэжыму чакання.
Звярніце ўвагу, што калі перапыненне, выкліканае ўзроўнем, выкарыстоўваецца для абуджэння пасля адключэння харчавання, неабходны ўзровень павінен утрымлівацца дастаткова доўга, каб MCU завяршыў абуджэнне, каб выклікаць перапыненне ўзроўню. Калі ўзровень знікае да заканчэння часу запуску, MCU усё роўна выйдзе з рэжыму сну, але перапыненне не будзе створана. Час запуску вызначаецца засцерагальнікамі SUT і CKSEL, як апісана ў «Сістэмны гадзіннік і параметры гадзінніка» на старонцы 23.
Калі нізкі ўзровень на штыфце перапынення выдалены да таго, як прылада выйшла з рэжыму сну, то выкананне праграмы не будзе перанакіравана на працэдуру абслугоўвання перапынення, а працягнецца з інструкцыі, наступнай за камандай SLEEP.
Pin Change Interrupt Timing
БылыampLe часу перапынення змены кантакту паказана ў Малюнак 9-1.
Апісанне рэгістра
MCUCR - Рэгістр кіравання MCU
Знешні рэгістр кіравання перапыненнямі A змяшчае біты кіравання для кіравання сэнсам перапынення.
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | БОДС | ПУД | 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 роўна sampвёў да выяўлення краёў. Калі абранае перарыванне па фронту або пераключэнню, імпульсы, якія доўжацца больш за адзін такт, будуць ствараць перапыненне. Больш кароткія імпульсы не гарантуюць генерацыю перапынення. Калі выбрана перапыненне нізкага ўзроўню, нізкі ўзровень павінен утрымлівацца да завяршэння інструкцыі, якая выконваецца ў дадзены момант, для стварэння перапынення.
Табліца 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 | – | – | – | – | – | ГІМСК |
Чытаць/Запісваць | R | R/W | R/W | R | R | R | R | R | |
Пачатковае значэнне | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Біты 7, 4:0 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біт 6 – INT0: Знешні запыт перапынення 0 Уключаны
Калі біт INT0 усталяваны (адзін) і біт I ў рэгістры стану (SREG) усталяваны (адзін), перапыненне вонкавага кантакту ўключана. Біты Interrupt Sense Control0 1/0 (ISC01 і ISC00) у рэгістры кіравання MCU (MCUCR) вызначаюць, ці актывуецца знешняе перапыненне па нарастаючым і/або спадальным фронце кантакту INT0 або вызначанага ўзроўню. Актыўнасць на пін-код выкліча запыт перапынення, нават калі INT0 настроены ў якасці выхаду. Адпаведнае перапыненне знешняга запыту перапынення 0 выконваецца з вектара перапынення INT0.
Біт 5 – PCIE: уключэнне перапынення змены кантакту
Калі біт PCIE усталяваны (адзін) і біт I ў рэгістры стану (SREG) усталяваны (адзін), перапыненне змены кантакту ўключана. Любое змяненне любога ўключанага кантакту PCINT[5:0] прывядзе да перапынення. Адпаведнае перапыненне запыту перапынення змены кантакту выконваецца з вектара перапынення 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 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біт 6 – INTF0: Флаг знешняга перапынення 0
Калі фронт або змяненне логікі на выснове INT0 выклікае запыт перапынення, INTF0 становіцца ўстаноўленым (адзін). Калі біт I у SREG і біт INT0 у GIMSK усталяваны (адзін), MCU пераходзіць да адпаведнага вектара перапынення. Сцяг здымаецца пры выкананні працэдуры перапынення. Акрамя таго, сцяг можна ачысціць, напісаўшы да яго лагічную адзінку. Гэты сцяг заўсёды здымаецца, калі INT0 наладжана як перапыненне ўзроўню.
Біт 5 – PCIF: Флаг перапынення змены кантакту
Калі змена логікі на любым выснове PCINT[5:0] выклікае запыт перапынення, PCIF становіцца ўстаноўленым (адзін). Калі біт I у SREG і біт PCIE у GIMSK усталяваны (адзін), MCU пяройдзе да адпаведнага вектара перапынення. Сцяг здымаецца пры выкананні працэдуры перапынення. Акрамя таго, сцяг можна ачысціць, напісаўшы да яго лагічную адзінку.
PCMSK - Рэгістр маскі змены Pin
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | ПКМСК |
Чытаць/Запісваць | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Пачатковае значэнне | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Біты 7:6 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біты 5:0 – PCINT[5:0]: Маска ўключэння змены кантакту 5:0
Кожны біт PCINT[5:0] вызначае, ці ўключана перапыненне змены кантакту на адпаведным выводзе ўводу/вываду. Калі ўсталяваны PCINT[5:0] і ўсталяваны біт PCIE у GIMSK, перапыненне змены кантакту ўключана на адпаведным штыфце ўводу/вываду. Калі PCINT[5:0] ачышчана, перапыненне змены кантакту на адпаведным штыфце ўводу/вываду адключана.
Парты ўводу-вываду
Уводзіны
Усе парты AVR маюць сапраўдную функцыянальнасць чытання-змянення-запісу пры выкарыстанні ў якасці агульных лічбавых партоў уводу/вываду. Гэта азначае, што кірунак штыфта аднаго порта можа быць зменены без ненаўмыснага змены кірунку любога іншага штыфта з дапамогай інструкцый SBI і CBI. Тое ж самае прымяняецца пры змене значэння прывада (калі наладжана як выхад) або ўключэнні/выключэнні падцягваючых рэзістараў (калі настроена ў якасці ўваходу). Кожны выходны буфер мае сіметрычныя характарыстыкі прывада з высокай здольнасцю як паглынальніка, так і крыніцы. Штыфтовы драйвер дастаткова моцны, каб непасрэдна кіраваць святлодыёднымі дысплеямі. Усе штыфты порта маюць індывідуальна выбіраемыя падцягвальныя рэзістары з аб'ёмам харчаванняtagе нязменнае супраціўленне. Усе кантакты ўводу/вываду маюць ахоўныя дыёды як для VCC, так і для зазямлення, як паказана ў Малюнак 10-1. Спасылацца на “Электрычныя характарыстыкі” на старонцы 161 каб атрымаць поўны спіс параметраў.
Малюнак 10-1. Эквівалентная схема ўводу-вываду
Усе рэгістры і спасылкі на біты ў гэтым раздзеле запісаны ў агульным выглядзе. Малы рэгістр “x” уяўляе сабой літару нумарацыі для порта, а малы рэгістр “n” уяўляе сабой нумар біта. Аднак пры выкарыстанні рэгістра або біта ў праграме неабходна выкарыстоўваць дакладную форму. Напрыкладample, PORTB3 для біта №. 3 у порце B, тут дакументавана як PORTxn. Фізічныя рэгістры ўводу/вываду і размяшчэнне бітаў пералічаны ў «Апісанне рэгістрацыі» на старонка 64.
Для кожнага порта вылучаюцца тры адрасы памяці ўводу/вываду, па адным для рэгістра даных - PORTx, рэгістра накіравання даных - DDRx і ўваходных кантактаў порта - PINx. Размяшчэнне ўваходных штыфтоў порта ўводу/вываду даступна толькі для чытання, у той час як рэгістр даных і рэгістр накіравання даных - для чытання/запісу. Аднак запіс лагічнай адзінкі ў біт у рэгістры PINx прывядзе да пераключэння адпаведнага біта ў рэгістры даных. Акрамя таго, біт Pull-up Disable – PUD у MCUCR адключае функцыю падцягвання для ўсіх кантактаў ва ўсіх партах, калі ўстаноўлена.
Выкарыстанне порта ўводу-вываду ў якасці агульнага лічбавага ўводу-вываду апісана ў «Парты як агульны лічбавы ўвод-вывад» на старонцы 53. Большасць кантактаў порта мультыплексаваны з альтэрнатыўнымі функцыямі для перыферыйных функцый прылады. Як кожная альтэрнатыўная функцыя перашкаджае штыфту порта, апісана ў «Альтэрнатыўныя функцыі порта» на старонцы 57. Звярніцеся да асобных раздзелаў модуляў для поўнага апісання альтэрнатыўных функцый.
Звярніце ўвагу, што ўключэнне альтэрнатыўнай функцыі некаторых кантактаў порта не ўплывае на выкарыстанне іншых кантактаў у порце ў якасці агульнага лічбавага ўводу/вываду.
Парты як агульны лічбавы ўвод-вывад
Парты ўяўляюць сабой двухнакіраваныя парты ўводу/вываду з дадатковымі ўнутранымі падцягваннямі. Малюнак 10-2 паказвае функцыянальнае апісанне аднаго штыфта порта ўводу/вываду, які тут звычайна называецца Pxn.
Малюнак 10-2. Агульны лічбавы ўвод-вывад(1)
Налада Pin
Кожны кантакт порта складаецца з трох бітаў рэгістра: DDxn, PORTxn і PINxn. Як паказана ў «Апісанне рэгістрацыі» на старонка 64, доступ да бітаў DDxn ажыццяўляецца па адрасе ўводу/вываду DDRx, да бітаў PORTxn па адрасе ўводу/вываду PORTx, а да бітаў PINxn па адрасе ўводу/вываду PINx.
Біт DDxn у рэгістры DDRx выбірае кірунак гэтага кантакту. Калі DDxn пішацца як лагічная адзінка, Pxn канфігуруецца як выхадны кантакт. Калі ў DDxn запісваецца лагічны нуль, Pxn канфігуруецца як уваходны кантакт.
Калі PORTxn запісваецца ў лагічную адзінку, калі кантакт настроены ў якасці ўваходнага кантакту, актывуецца падцягвальны рэзістар. Каб выключыць падцягвальны рэзістар, PORTxn павінен быць запісаны лагічным нулем або кантакт павінен быць сканфігураваны як выхадны кантакт. Высновы порта маюць тры станы, калі стан скіду становіцца актыўным, нават калі гадзіннік не працуе.
Калі PORTxn пішацца як лагічная адзінка, калі кантакт настроены ў якасці выхаднога кантакту, на штыфт порта ўводзіцца высокі ўзровень (адзін). Калі ў PORTxn запісваецца лагічны нуль, калі вывад настроены як выхадны, на выводзе порта знаходзіцца нізкі ўзровень (нуль).
Пераключэнне шпількі
Запіс лагічнай адзінкі ў PINxn пераключае значэнне PORTxn незалежна ад значэння DDRxn. Звярніце ўвагу, што інструкцыя SBI можа выкарыстоўвацца для пераключэння аднаго біта ў порце.
Пераключэнне паміж уваходам і вывадам
Пры пераключэнні паміж тры-станам ({DDxn, PORTxn} = 0b00) і высокім выхадам ({DDxn, PORTxn} = 0b11), прамежкавым станам альбо з уключаным падцягваннем {DDxn, PORTxn} = 0b01), альбо з нізкім выхадам ({DDxn, PORTxn} = 0b10) павінна адбыцца. Звычайна стан уключанага падцягвання цалкам прымальны, бо асяроддзе з высокім імпедансам не заўважыць розніцы паміж моцным высокім драйверам і падцягваннем. Калі гэта не так, біт PUD у рэгістры MCUCR можа быць настроены на адключэнне ўсіх падцягванняў ва ўсіх партах.
Пераключэнне паміж уваходам з падцягваннем і выхадам з нізкім узроўнем стварае тую ж праблему. У якасці прамежкавага кроку карыстальнік павінен выкарыстоўваць альбо тры станы ({DDxn, PORTxn} = 0b00), альбо высокі выхадны стан ({DDxn, PORTxn} = 0b10).
Табліца 10-1 абагульняе сігналы кіравання для значэння штыфта.
Табліца 10-1. Канфігурацыі штыфта порта
DDxn | PORTxn | ПУД
(у MCUCR) |
Увод-вывад | Падцягванне | Каментуйце |
0 | 0 | X | Увод | няма | Тры стану (Hi-Z) |
0 | 1 | 0 | Увод | так | Pxn будзе крыніцай току, калі дап. пацягнуў нізка. |
0 | 1 | 1 | Увод | няма | Тры стану (Hi-Z) |
1 | 0 | X | Выхад | няма | Нізкі выхад (ракавіна) |
1 | 1 | X | Выхад | няма | Выхад высокі (крыніца) |
Чытанне значэння Pin
Незалежна ад налады біта напрамку даных DDxn, штыфт порта можна прачытаць праз біт рэгістра PINxn. Як паказана ў Малюнак 10-2, біт рэгістра PINxn і папярэдняя зашчапка складаюць сінхранізатар. Гэта неабходна, каб пазбегнуць метастабільнасці, калі фізічны штыфт змяняе значэнне каля краю ўнутранага гадзінніка, але гэта таксама ўводзіць затрымку. Малюнак 10-3 паказвае часовую дыяграму сінхранізацыі пры счытванні вонкава прымененага значэння PIN-кода. Максімальная і мінімальная затрымкі распаўсюджвання абазначаюцца адпаведна tpd,max і tpd,min.
Разгледзім перыяд тактавага сігналу, які пачынаецца неўзабаве пасля першага спадальнага фронту сістэмнага тактавага сігналу. Зашчапка зачыняецца, калі гадзіннік нізкі, і становіцца празрыстым, калі гадзіннік высокі, на што паказвае зацененая вобласць сігналу «SYNC LATCH». Значэнне сігналу фіксуецца, калі сістэмны гадзіннік становіцца нізкім. Ён запісваецца ў рэестр PINxn на наступным станоўчым фронце тактавай частоты. Як пазначана дзвюма стрэлкамі tpd,max і tpd,min, адзінкавы пераход сігналу на выснове будзе адкладзены паміж ½ і 1½ перыяду сістэмнага такта ў залежнасці ад часу сцвярджэння.
Пры счытванні прысвоенага праграмным забеспячэннем значэння PIN-кода неабходна ўставіць інструкцыю 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 |
беззнакавы сімвал i;
… /* Вызначце падцягванні і ўстанавіце высокія вынікі */ /* Вызначэнне напрамкаў для штыфтоў порта */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Уставіць nop для сінхранізацыі*/ _NOP(); /* Чытанне кантактаў порта */ i = PINB; … |
Рэжымы ўключэння лічбавага ўваходу і спячага рэжыму
Як паказана ў Малюнак 10-2, лічбавы ўваходны сігнал можа быць клampзамыкаецца на зямлю на ўваходзе трыгера Шміта. Сігнал, пазначаны на малюнку SLEEP, усталёўваецца кантролерам сну MCU у рэжыме адключэння, каб пазбегнуць высокага спажывання энергіі, калі некаторыя ўваходныя сігналы застаюцца плаваючымі або маюць узровень аналагавага сігналу, блізкі да VCC/2.
SLEEP перавызначаецца для кантактаў порта, уключаных у якасці знешніх кантактаў перапынення. Калі знешні запыт перапынення не ўключаны, SLEEP таксама актыўны для гэтых кантактаў. SLEEP таксама адмяняецца рознымі іншымі альтэрнатыўнымі функцыямі, як апісана ў «Альтэрнатыўныя функцыі порта» на старонцы 57.
Калі высокі ўзровень логікі («адзінка») прысутнічае на асінхронным знешнім выснове перапынення, наладжаным як «Перапыненне пры нарастаючым фронце, спадальным фронце або пры любой змене логікі на пін-код», у той час як знешняе перапыненне не ўключана, адпаведны сцяг знешняга перапынення будзе быць усталяваны пры выхадзе з вышэйзгаданага рэжыму сну, як клampзнаходжанне ў гэтых рэжымах сну вырабляе запытаную змену логікі.
Непадлучаныя шпількі
Калі некаторыя штыфты не выкарыстоўваюцца, рэкамендуецца пераканацца, што гэтыя штыфты маюць пэўны ўзровень. Нягледзячы на тое, што большасць лічбавых уваходаў адключана ў рэжымах глыбокага сну, як апісана вышэй, варта пазбягаць плаваючых уваходаў, каб знізіць спажыванне току ва ўсіх іншых рэжымах, дзе лічбавыя ўваходы ўключаны (Скід, Актыўны рэжым і рэжым чакання).
Самы просты спосаб забяспечыць пэўны ўзровень нявыкарыстанага штыфта - уключыць унутранае падцягванне. У гэтым выпадку падцягванне будзе адключана падчас скіду. Калі важна нізкае энергаспажыванне падчас скіду, рэкамендуецца выкарыстоўваць знешняе падцягванне або расцягванне. Падключаць невыкарыстоўваныя штыфты непасрэдна да VCC або GND не рэкамендуецца, бо гэта можа выклікаць празьмерныя токі, калі штыфт выпадкова сканфігураваны як выхад.
Альтэрнатыўныя функцыі порта
Большасць кантактаў порта маюць альтэрнатыўныя функцыі ў дадатак да агульных лічбавых уводаў/вывадаў. Малюнак 10-5 паказвае, як сігналы кіравання кантактным портам ад спрошчанага Малюнак 10-2 можа быць перавызначаны альтэрнатыўнымі функцыямі. Пераважныя сігналы могуць прысутнічаць не на ўсіх кантактах порта, але малюнак служыць агульным апісаннем, прыдатным да ўсіх кантактаў порта ў сямействе мікракантролераў AVR.
Табліца 10-2. Агульнае апісанне перавызначаючых сігналаў для альтэрнатыўных функцый
Назва сігналу | Поўнае імя | Апісанне |
ПУОЭ | Pull-up Override Enable | Калі гэты сігнал усталяваны, уключэнне падцягвання кіруецца сігналам PUOV. Калі гэты сігнал ачышчаны, падцягванне ўключана, калі
{DDxn, PORTxn, PUD} = 0b010. |
ПУОВ | Значэнне перавызначэння падцягвання | Калі PUOE усталяваны, падцягванне ўключаецца/выключаецца, калі PUOV усталяваны/ачышчаны, незалежна ад налады бітаў DDxn, PORTxn і PUD Register. |
DDOE | Уключыць перавызначэнне кірунку даных | Калі гэты сігнал усталяваны, выхадны драйвер Enable кіруецца сігналам DDOV. Калі гэты сігнал ачышчаны, драйвер выхаду ўключаецца бітам рэгістра DDxn. |
DDOV | Значэнне перавызначэння кірунку даных | Калі ўсталяваны DDOE, то выхадны драйвер уключаецца/выключаецца, калі DDOV усталяваны/ачышчаны, незалежна ад налады біта рэгістра DDxn. |
ПВОЭ | Уключыць перавызначэнне значэння порта | Калі гэты сігнал усталяваны і выхадны драйвер уключаны, значэнне порта кантралюецца сігналам PVOV. Калі PVOE ачышчана і драйвер вываду ўключаны, значэнне порта кантралюецца бітам рэгістра PORTxn. |
PVOV | Значэнне перавызначэння порта | Калі ўсталяваны PVOE, значэнне порта ўсталёўваецца ў PVOV, незалежна ад налады біта рэгістра PORTxn. |
PTOE | Уключыць перавызначэнне пераключэння порта | Калі PTOE усталяваны, біт рэгістра PORTxn інвертуецца. |
DIEOE | Лічбавы ўваход Уключыць Перавызначыць Уключыць | Калі гэты біт усталяваны, уключэнне лічбавага ўваходу кіруецца сігналам DIEOV. Калі гэты сігнал ачышчаны, уключэнне лічбавага ўваходу вызначаецца станам MCU (звычайны рэжым, рэжым сну). |
ДЗЁЎ | Значэнне перавызначэння ўключэння лічбавага ўводу | Калі DIEOE усталяваны, лічбавы ўваход уключаецца/выключаецца, калі DIEOV усталяваны/ачышчаны, незалежна ад стану MCU (звычайны рэжым, спячы рэжым). |
DI | Лічбавы ўвод | Гэта лічбавы ўваход для альтэрнатыўных функцый. На малюнку сігнал падлучаны да выхаду трыгера Шміта, але перад сінхранізатарам. Калі лічбавы ўваход не выкарыстоўваецца ў якасці крыніцы тактавага сігналу, модуль з альтэрнатыўнай функцыяй будзе выкарыстоўваць уласны сінхранізатар. |
AIO | Аналагавы ўваход / выхад | Гэта аналагавы ўвод/выхад у/ад альтэрнатыўных функцый. Сігнал падключаецца непасрэдна да пляцоўкі і можа выкарыстоўвацца ў двух напрамках. |
Наступныя падраздзелы коратка апісваюць альтэрнатыўныя функцыі для кожнага порта і звязваюць пераважныя сігналы з альтэрнатыўнай функцыяй. Для атрымання дадатковай інфармацыі звярніцеся да апісання альтэрнатыўнай функцыі.
Альтэрнатыўныя функцыі порта B
Штыфты порта B з альтэрнатыўнай функцыяй паказаны ў Табліца 10-3.
Табліца 10-3. Альтэрнатыўныя функцыі кантактаў порта B
Штыфт порта | Альтэрнатыўная функцыя |
PB5 | ![]() RESET: Скінуць Pin dW: debugWIRE I/O ADC0: Уваходны канал АЦП 0 PCINT5: перапыненне змены кантакту, крыніца 5 |
PB4 | XTAL2: Выхад кварцавага генератара CLKO: Выхад сістэмнага тактавага сігналу ADC2: Уваходны канал АЦП 2
OC1B: Таймер/Лічыльнік1 Параўнанне матчу B Выхад PCINT4: Pin Change Interrupt 0, Source 4 |
PB3 | XTAL1: Уваход кварцавага генератара CLKI: Уваход вонкавага тактавага сігналу ADC3: Уваходны канал 3 АЦП
OC1B: Дадатковы таймер/лічыльнік1 Параўнанне супадзення B Выхад PCINT3: Перапыненне змены кантакту 0, крыніца 3 |
PB2 | SCK: Паслядоўны тактавы ўваход ADC1: Уваходны канал 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: Перапыненне змены кантакту 0, Крыніца 1 |
PB0 | MOSI:: Вывад асноўных даных SPI / Уваход падпарадкаваных даных AIN0: Аналагавы кампаратар, станоўчы ўваход
OC0A: Вывад таймера/лічыльніка 0 параўнання матчу A OC1A: Дадатковы таймер/лічыльнік 1, параўнанне, адпаведнасць выхаду A, DI: Увод дадзеных USI (трохправадны рэжым) SDA: Увод даных USI (двухправадны рэжым) AREF: Знешні аналагавы эталон PCINT0: Перапыненне змены кантакту 0, крыніца 0 |
Порт B, біт 5 – RESET/dW/ADC0/PCINT5
СКІД: Уваход вонкавага скіду актыўны нізкі і ўключаны адпраграмаваннем (“1”) засцерагальніка RSTDISBL. Pullup актывуецца, а драйвер вываду і лічбавы ўваход адключаюцца, калі штыфт выкарыстоўваецца як штыфт RESET.
dW: Калі засцерагальнік уключэння debugWIRE (DWEN) запраграмаваны, а біты блакіроўкі не запраграмаваны, у мэтавай прыладзе актывуецца сістэма debugWIRE. Штыфт порта RESET сканфігураваны як двухнакіраваны штыфт уводу-вываду па правадах І (з адкрытым сцёкам) з уключаным падцягваннем і становіцца шлюзам сувязі паміж мэтай і эмулятарам.
ADC0: аналагава-лічбавы пераўтваральнік, канал 0.
PCINT5: Pin Change Крыніца перапынення 5.
Порт B, біт 4 – XTAL2/CLKO/ADC2/OC1B/PCINT4
XTAL2: Вывад 2 генератара тактавага сігналу мікрасхемы. Выкарыстоўваецца ў якасці кантакту тактавага сігналу для ўсіх крыніц тактавага сігналу мікрасхемы, акрамя ўнутранага RC-генератара з магчымасцю каліброўкі і вонкавага тактавага сігналу. Пры выкарыстанні ў якасці штыфта гадзінніка ён не можа выкарыстоўвацца як штыфт уводу/вываду. Пры выкарыстанні ўнутранага калібруемага RC-генератара або вонкавага тактавага сігналу ў якасці крыніцы тактавага сігналу мікрасхемы PB4 служыць звычайным кантактам уводу/вываду.
CLKO: падзеленыя сістэмныя гадзіны могуць быць выведзены на кантакт PB4. Раздзелены сістэмны гадзіннік будзе выводзіцца, калі запраграмаваны засцерагальнік CKOUT, незалежна ад налад PORTB4 і DDB4. Ён таксама будзе выведзены падчас скіду.
ADC2: аналагава-лічбавы пераўтваральнік, канал 2.
OC1B: Вывад параўнання супадзення: кантакт PB4 можа служыць знешнім выхадам для таймера/лічыльніка1 параўнання супадзення B, калі ён настроены ў якасці выхаду (набор DDB4). Вывад OC1B таксама з'яўляецца выхадным кантактам для функцыі таймера ў рэжыме ШІМ.
PCINT4: Pin Change Крыніца перапынення 4.
Порт B, біт 3 – XTAL1/CLKI/ADC3/OC1B/PCINT3
XTAL1: Штыфт 1 генератара тактавага сігналу мікрасхемы. Выкарыстоўваецца для ўсіх крыніц тактавага сігналу мікрасхемы, акрамя ўнутранага RC-генератара з магчымасцю каліброўкі. Пры выкарыстанні ў якасці штыфта гадзінніка ён не можа выкарыстоўвацца як штыфт уводу/вываду.
CLKI: Уваход гадзінніка ад вонкавай крыніцы гадзінніка, гл «Знешні гадзіннік» на старонцы 26.
ADC3: аналагава-лічбавы пераўтваральнік, канал 3.
OC1B: інвертаваны выхад параўнання супадзення: вывад PB3 можа служыць знешнім выхадам для таймера/лічыльніка1 параўнання супадзення B, калі наладжаны як выхад (набор DDB3). Вывад OC1B таксама з'яўляецца перавернутым вывадам для функцыі таймера рэжыму ШІМ.
PCINT3: Pin Change Крыніца перапынення 3.
Порт B, біт 2 – SCK/ADC1/T0/USCK/SCL/INT0/PCINT2
SCK: выхад Master Clock, уваходны кантакт Slave Clock для канала SPI. Калі SPI уключаны ў якасці падпарадкаванага, гэты кантакт настроены як уваходны, незалежна ад налады DDB2. Калі SPI уключаны ў якасці галоўнага, кірунак дадзеных гэтага кантакту кантралюецца DDPB2. Калі штыфт прымушае SPI быць уваходам, падцягванне ўсё яшчэ можа кантралявацца бітам PORTB2.
ADC1: аналагава-лічбавы пераўтваральнік, канал 1.
T0: Крыніца лічыльніка таймера/лічыльніка 0.
USCK: трохправадны рэжым тактавага сігналу універсальнага паслядоўнага інтэрфейсу.
SCL: двухправадны рэжым паслядоўнага такта для двухправаднога рэжыму USI.
INT0: Знешняя крыніца перапынення 0.
PCINT2: Pin Change Крыніца перапынення 2.
Порт B, біт 1 – MISO/AIN1/OC0B/OC1A/DO/PCINT1
MISO: увод асноўных даных, выхад падпарадкаваных даных для канала SPI. Калі SPI уключаны як галоўны, гэты кантакт настроены як уваходны, незалежна ад налады DDB1. Калі SPI уключаны ў якасці падпарадкаванага, кірунак дадзеных гэтага кантакту кантралюецца DDB1. Калі штыфт прымушае SPI быць уваходам, падцягванне ўсё яшчэ можа кантралявацца бітам PORTB1.
AIN1: Адмоўны ўваход аналагавага кампаратара. Наладзьце штыфт порта ў якасці ўваходу з адключаным унутраным падцягваннем, каб пазбегнуць умяшання функцыі лічбавага порта ў працу аналагавага кампаратара.
OC0B: Вывад Параўнанне Супадзенне вываду. Вывад PB1 можа служыць у якасці вонкавага выхаду для таймера/лічыльніка0 параўнання супадзення B. Вывад PB1 павінен быць сканфігураваны ў якасці выхаду (набор DDB1 (адзін)), каб выконваць гэтую функцыю. Вывад OC0B таксама з'яўляецца выхадным кантактам для функцыі таймера ў рэжыме ШІМ.
OC1A: Вывад параўнання супадзення: вывад PB1 можа служыць знешнім выхадам для таймера/лічыльніка1 параўнання супадзення B, калі ён настроены як выхад (набор DDB1). Вывад OC1A таксама з'яўляецца выхадным кантактам для функцыі таймера ў рэжыме ШІМ.
DO: Вывад дадзеных універсальнага паслядоўнага інтэрфейсу ў трохправадным рэжыме. Трохправадны рэжым Вывад даных перакрывае значэнне PORTB1 і накіроўваецца ў порт, калі ўсталяваны біт накіравання даных DDB1 (адзін). PORTB1 па-ранейшаму дазваляе падцягванне, калі ўведзены кірунак і PORTB1 усталяваны (адзін).
PCINT1: Pin Change Крыніца перапынення 1.
Порт B, біт 0 - MOSI/AIN0/OC0A/OC1A/DI/SDA/AREF/PCINT0
MOSI: выхад асноўных дадзеных SPI, уваход падпарадкаваных дадзеных для канала SPI. Калі SPI уключаны як падпарадкаваны, гэты кантакт настроены як уваходны, незалежна ад налады DDB0. Калі SPI уключаны ў якасці галоўнага, кірунак дадзеных гэтага кантакту кантралюецца DDB0. Калі штыфт прымушае SPI стаць уваходам, падцягваннем усё яшчэ можна кіраваць з дапамогай біта PORTB0.
AIN0: Дадатны ўваход аналагавага кампаратара. Наладзьце штыфт порта ў якасці ўваходу з адключаным унутраным падцягваннем, каб пазбегнуць умяшання функцыі лічбавага порта ў працу аналагавага кампаратара.
OC0A: Вывад Параўнанне Супадзенне вываду. Штыфт PB0 можа служыць знешнім выхадам для Таймера/Лічыльніка0 Параўнанне Матч A, калі настроены ў якасці выхаду (набор DDB0 (адзін)). Вывад OC0A таксама з'яўляецца выхадным кантактам для функцыі таймера ў рэжыме ШІМ.
OC1A: інвертаваны выхад параўнання супадзення: вывад PB0 можа служыць знешнім выхадам для таймера/лічыльніка1 параўнання супадзення B, калі настроены ў якасці выхаду (набор DDB0). Вывад OC1A таксама з'яўляецца перавернутым выхадным высновай для функцыі таймера рэжыму ШІМ.
SDA: Двухправадны рэжым паслядоўнага інтэрфейсу дадзеных.
AREF: знешні аналагавы апорны сігнал для АЦП. Драйвер падцягвання і вываду адключаны на PB0, калі штыфт выкарыстоўваецца ў якасці вонкавага апорнага або ўнутранага аб'ёмуtage Апорны сігнал са знешнім кандэнсатарам на выснове AREF.
DI: Увод дадзеных у трохправадным рэжыме USI. Трохправадны рэжым USI не адмяняе звычайныя функцыі порта, таму кантактны кантакт трэба наладзіць як уваход для функцыі DI.
PCINT0: Pin Change Крыніца перапынення 0.
Табліца 10-4 і Табліца 10-5 звязаць альтэрнатыўныя функцыі порта B з галоўнымі сігналамі, паказанымі ў На малюнку 10-5 старонка 58.
Табліца 10-4. Перавызначэнне сігналаў для альтэрнатыўных функцый у PB[5:3]
Назва сігналу | PB5/СКІД/ ADC0/PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
ПУОЭ | ![]() |
0 | 0 |
ПУОВ | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • ДВЭН(1) | 0 | 0 |
DDOV | debugWire Transmit | 0 | 0 |
ПВОЭ | 0 | OC1B Уключыць | ![]() OC1B Уключыць |
PVOV | 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 |
ПУОЭ | 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 |
ПВОЭ | USI_TWO_WIRE • DDB2 | OC0B Уключыць + OC1A Уключыць + USI_THREE_WIRE | ![]() OC0A Уключыць + OC1A Уключыць + (USI_TWO_WIRE DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
ДЗЁЎ | ADC1D | AIN1D | AIN0D |
DI | T0/USCK/SCL/INT0/
Уваход PCINT2 |
Уваход PCINT1 | Уваход DI/SDA/PCINT0 |
AIO | Уваход ADC1 | Адмоўны ўваход аналагавага кампаратара | Станоўчы ўваход аналагавага кампаратара |
Апісанне рэгістра
MCUCR - Рэгістр кіравання MCU
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | БОДС | ПУД | 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: адключэнне падцягвання
Калі гэты біт запісваецца ў адзінку, падцягванні ў партах уводу/вываду адключаюцца, нават калі рэгістры DDxn і PORTxn настроены на ўключэнне падцягванняў ({DDxn, PORTxn} = 0b01). Глядзіце “Наладжванне PIN-кода” на старонцы 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 Data Direction Register
Біт | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | ДДРБ |
Чытаць/Запісваць | 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 | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
8-бітны таймер/лічыльнік 0 з ШІМ
Асаблівасці
Дзве незалежныя адзінкі параўнання вываду
Рэгістры параўнання вываду з падвойнай буферызацыяй
Ачысціць таймер пры супадзенні параўнання (аўтаматычная перазагрузка)
Шыротна-імпульсны мадулятар (ШІМ) без збояў, з правільнай фазай
Пераменны перыяд ШІМ
Генератар частаты
Тры незалежныя крыніцы перапынення (TOV0, OCF0A і OCF0B)
Скончанаview
Timer/Counter0 - гэта 8-бітны модуль таймера/лічыльніка агульнага прызначэння з двума незалежнымі адзінкамі параўнання выхаду і падтрымкай ШІМ. Гэта дазваляе дакладна вызначаць час выканання праграмы (кіраванне падзеямі) і генерацыю хвалі.
Спрошчаная блок-схема 8-бітнага таймера/лічыльніка паказана ў Малюнак 11-1. Фактычнае размяшчэнне кантактаў уводу/вываду глядзіце ў «Распіноўка ATtiny25/45/85» на старонцы 2. Рэгістры ўводу/вываду, даступныя працэсару, у тым ліку біты ўводу/вываду і кантакты ўводу/вываду, паказаны тлустым шрыфтам. Спецыфічны для прылады рэестр уводу/вываду і размяшчэнне бітаў пералічаны ў «Апісанне рэгістра» на старонцы 77.
Рэгістры таймера/лічыльніка (TCNT0) і выхаднога параўнання (OCR0A і OCR0B) з'яўляюцца 8-бітнымі рэгістрамі. Усе сігналы запыту перапынення (скарочана Int.Req. на малюнку) бачныя ў рэгістры флагаў перапынення таймера (TIFR). Усе перапыненні індывідуальна маскіруюцца з дапамогай рэгістра маскі перапынення таймера (TIMSK). TIFR і TIMSK на малюнку не паказаны.
Таймер/лічыльнік можа выкарыстоўвацца з унутранай тактавай частатой, праз папярэдні дзелільнік або з дапамогай знешняй крыніцы тактавага сігналу на выснове T0. Лагічны блок Clock Select кантралюе крыніцу тактавага сігналу і фронт, які таймер/лічыльнік выкарыстоўвае для павелічэння (або памяншэння) свайго значэння. Таймер/лічыльнік неактыўны, калі не выбрана крыніца гадзінніка. Выхад логікі выбару гадзінніка называецца гадзіннікам таймера (clkT0).
Выхадныя рэгістры параўнання з падвойнай буферызацыяй (OCR0A і OCR0B) увесь час параўноўваюцца са значэннем таймера/лічыльніка. Вынік параўнання можа быць выкарыстаны генератарам сігналаў для генерацыі ШІМ або выхаду з пераменнай частатой на высновах параўнання выхаду (OC0A і OC0B). Глядзіце «Блок параўнання вываду» на старонцы 69. для дэталяў. Падзея Compare Match таксама ўсталюе сцяг параўнання (OCF0A або OCF0B), які можа выкарыстоўвацца для стварэння запыту перапынення Output Compare.
Азначэнні
Многія спасылкі на рэгістры і біты ў гэтым раздзеле напісаны ў агульнай форме. Малы рэгістр "n" замяняе нумар таймера/лічыльніка, у дадзеным выпадку 0. Малы рэгістр "x" замяняе выходны блок параўнання, у дадзеным выпадку блок параўнання A або блок параўнання B. Аднак пры выкарыстанні рэгістра або біта вызначаецца у праграме павінна выкарыстоўвацца дакладная форма, напрыклад, TCNT0 для доступу да значэння лічыльніка Timer/Counter0 і гэтак далей.
Вызначэнні ў Табліца 11-1 таксама шырока выкарыстоўваюцца ва ўсім дакуменце.
Табліца 11-1. Азначэнні
Пастаянная | Апісанне |
ДНІЗ | Лічыльнік дасягае ДНА, калі становіцца 0x00 |
МАКС | Лічыльнік дасягае свайго MAXimum, калі становіцца 0xFF (дзесятковае 255) |
ТОП | Лічыльнік дасягае вяршыні, калі становіцца роўным найбольшаму значэнню ў паслядоўнасці падліку. Значэнне TOP можа быць прызначана як фіксаванае значэнне 0xFF (MAX) або значэнне, якое захоўваецца ў рэгістры OCR0A. Прызначэнне залежыць ад рэжыму працы |
Таймер/лічыльнік Prescaler і крыніцы тактавага сігналу
Таймер/лічыльнік можа выкарыстоўвацца з унутранай або знешняй крыніцай тактавага сігналу. Крыніца тактавага сігналу выбіраецца логікай выбару гадзінніка, якая кіруецца бітамі выбару гадзінніка (c), размешчанымі ў рэгістры кіравання таймерам/лічыльнікам 0 (TCCR0B).
Унутраная крыніца тактавага сігналу з папярэднім дзеляром
Таймер/Лічыльнік0 можа быць зададзены непасрэдна сістэмным гадзіннікам (усталяваўшы CS0[2:0] = 1). Гэта забяспечвае самую хуткую працу з максімальнай тактавай частатой таймера/лічыльніка, роўнай сістэмнай тактавай частаце (fCLK_I/O). У якасці альтэрнатывы ў якасці крыніцы тактавага сігналу можна выкарыстоўваць адно з чатырох адводаў папярэдняга дзельніка. Папярэдне маштабаваны гадзіннік мае частату любога з іх
Скід папярэдняга дзельшчыка
Папярэдне дзялільнік працуе свабодна, гэта значыць ён працуе незалежна ад логікі выбару гадзінніка таймера/лічыльніка0. Паколькі выбар тактавага сігналу таймера/лічыльніка не ўплывае на папярэдні дзелільнік, стан папярэдняга дзелільніка будзе мець наступствы для сітуацый, калі выкарыстоўваецца гадзіннік з папярэднім маштабаваннем. Адзін былыampартэфакт папярэдняга маштабавання - гэта калі таймер/лічыльнік уключаны і тактаваны з дапамогай папярэдняга маштабавання (6 > CS0[2:0] > 1). Колькасць цыклаў сістэмнага гадзінніка з моманту ўключэння таймера да першага адліку можа быць ад 1 да N+1 цыклаў сістэмнага такта, дзе N роўна дзельніку папярэдняга дзелільніка (8, 64, 256 або 1024).
Для сінхранізацыі таймера/лічыльніка з выкананнем праграмы можна выкарыстоўваць скід папярэдняга маштабавання.
Знешні крыніца гадзінніка
Знешняя крыніца тактавага сігналу, прымененая да штыфта T0, можа выкарыстоўвацца як гадзіннік таймера/лічыльніка (clkT0). Штыфт T0 - гэта sampкіруецца адзін раз за кожны такт сістэмы логікай сінхранізацыі кантактаў. Сінхранізаваны (сampсвятлодыёд) затым перадаецца сігнал
праз краёвы дэтэктар. Малюнак 11-2 паказвае функцыянальную эквівалентную блок-схему сінхранізацыі T0 і логікі дэтэктара краю. Рэгістры тактуюць па плюсе ўнутранага сістэмнага гадзінніка (clkI/O). Зашчапка празрыстая ў высокім перыядзе ўнутраных сістэмных гадзін.
Дэтэктар краю генеруе адзін імпульс clkT0 для кожнага станоўчага (CS0[2:0] = 7) або адмоўнага (CS0[2:0] = 6) краю, які ён выяўляе.
Рэгістры OCR0x падвойна буферызуюцца пры выкарыстанні любога з рэжымаў шыротна-імпульснай мадуляцыі (ШІМ). Для звычайных рэжымаў і рэжымаў Clear Timer on Compare (CTC) падвойная буферызацыя адключана. Двайная буферызацыя сінхранізуе абнаўленне рэгістраў параўнання OCR0x з верхняй або ніжняй часткай паслядоўнасці падліку. Сінхранізацыя прадухіляе з'яўленне несіметрычных ШІМ-імпульсаў няцотнай даўжыні, што робіць выхад без збояў.
Доступ да рэгістра OCR0x можа здацца складаным, але гэта не так. Калі двайная буферызацыя ўключана, працэсар мае доступ да рэгістра буфера OCR0x, і калі двайная буферызацыя адключана, працэсар будзе звяртацца непасрэдна да OCR0x.
Force Output Compare
У рэжымах генерацыі формы сігналу без ШІМ супадзенне выхаду кампаратара можа быць прымусова запісана адзінкай у біт Force Output Compare (FOC0x). Прымусовае супадзенне параўнання не ўсталюе сцяг OCF0x і не перазагрузіць/ачысціць таймер, але пін-код OC0x будзе абноўлены, як калі б адбылося сапраўднае супадзенне параўнання (налады біт COM0x[1:0] вызначаюць, усталяваны, ачышчаны пін OC0x або пераключаны).
Параўнайце блакіроўку супадзенняў ад TCNT0 Write
Усе аперацыі запісу працэсара ў рэгістр TCNT0 будуць блакіраваць любое супадзенне параўнання, якое адбываецца ў наступным такце таймера, нават калі таймер спынены. Гэтая функцыя дазваляе ініцыялізаваць OCR0x да таго ж значэння, што і TCNT0, не выклікаючы перапынення, калі ўключаны такт таймера/лічыльніка.
Выкарыстанне блока параўнання вываду
Паколькі запіс TCNT0 у любым рэжыме працы будзе блакаваць усе супадзенні параўнання за адзін такт таймера, пры змене TCNT0 пры выкарыстанні блока параўнання вываду існуюць рызыкі, незалежна ад таго, працуе таймер/лічыльнік ці не. Калі значэнне, запісанае ў TCNT0, роўнае значэнню OCR0x, адпаведнасць параўнання будзе прапушчана, што прывядзе да няправільнай генерацыі сігналу. Аналагічным чынам не запісвайце значэнне TCNT0, роўнае BOTTOM, калі лічыльнік знаходзіцца ў паніжаным рэжыме.
Наладжванне OC0x павінна быць выканана перад устаноўкай рэгістра накіравання даных для вывода порта. Самы просты спосаб усталяваць значэнне OC0x - выкарыстоўваць біты страбаскопа Force Output Compare (FOC0x) у звычайным рэжыме. Рэгістры OC0x захоўваюць свае значэнні нават пры пераключэнні паміж рэжымамі генерацыі сігналаў.
Майце на ўвазе, што біты COM0x[1:0] не буферызуюцца падвойна разам са значэннем параўнання. Змяненне бітаў COM0x[1:0] уступіць у сілу неадкладна.
Параўнанне супадзенняў
Біты рэжыму вываду параўнання (COM0x[1:0]) выконваюць дзве функцыі. Генератар сігналаў выкарыстоўвае біты COM0x[1:0] для вызначэння стану параўнання вываду (OC0x) пры наступным супадзенні параўнання. Акрамя таго, біты COM0x[1:0] кіруюць крыніцай вываду OC0x. Малюнак 11-6 паказвае спрошчаную схему логікі, на якую ўплывае налада біта COM0x[1:0]. Рэгістры ўводу/вываду, біты ўводу/вываду і кантакты ўводу/вываду на малюнку паказаны тлустым шрыфтам. Паказваюцца толькі часткі агульных рэгістраў кіравання партамі ўводу/вываду (DDR і PORT), на якія ўплываюць біты COM0x[1:0]. Пры спасылцы на стан OC0x спасылка датычыцца ўнутранага рэгістра OC0x, а не кантакту OC0x. Калі адбываецца скід сістэмы, рэгістр OC0x скідаецца ў «0».
Калі OC0A/OC0B падлучаны да кантакту ўводу/вываду, функцыя бітаў COM0A[1:0]/COM0B[1:0] залежыць ад налады біта WGM0[2:0]. Табліца 11-2 паказвае функцыянальнасць біта COM0x[1:0], калі біты WGM0[2:0] усталяваны ў звычайны рэжым або рэжым CTC (без ШІМ).
Табліца 11-2. Параўнайце рэжым вываду, рэжым без ШІМ
COM0A1 COM0B1 | COM0A0 COM0B0 | Апісанне |
0 | 0 | Нармальная праца порта, OC0A/OC0B адключаны. |
0 | 1 | Пераключайце OC0A/OC0B пры параўнанні |
1 | 0 | Ачысціце OC0A/OC0B пры параўнанні |
1 | 1 | Усталюйце OC0A/OC0B на Compare Match |
Табліца 11-3 паказвае функцыянальнасць біта COM0x[1:0], калі біты WGM0[2:0] усталяваны ў рэжым хуткай ШІМ.
Табліца 11-3. Параўнайце рэжым вываду, рэжым хуткай ШІМ(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Апісанне |
0 | 0 | Нармальная праца порта, OC0A/OC0B адключаны. |
0 | 1 | Зарэзерваваны |
1 | 0 | Ачысціце OC0A/OC0B пры супадзенні параўнання, усталюйце OC0A/OC0B унізе (рэжым неінвертавання) |
1 | 1 | Усталюйце OC0A/OC0B на Compare Match, ачысціце OC0A/OC0B унізе (рэжым інвертавання) |
Заўвага: асаблівы выпадак узнікае, калі OCR0A або OCR0B роўна TOP і ўсталяваны COM0A1/COM0B1. У гэтым выпадку супадзенне параўнання ігнаруецца, але ўстаноўка або ачыстка выконваецца ў НІЗУ. Глядзіце «Хуткі рэжым ШІМ» на старонцы 73 для больш падрабязнай інфармацыі.
Табліца 11-4 паказвае функцыянальнасць біта COM0x[1:0], калі біты WGM0[2:0] настроены на правільны фазавы рэжым ШІМ.
Табліца 11-4. Параўнайце рэжым вываду, рэжым фазавай карэкцыі ШІМ(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Апісанне |
0 | 0 | Нармальная праца порта, OC0A/OC0B адключаны. |
0 | 1 | Зарэзерваваны |
1 | 0 | Ачысціце OC0A/OC0B пры параўнанні матчу пры падліку. Усталюйце OC0A/OC0B на Compare Match пры памяншэнні адліку. |
1 | 1 | Усталюйце OC0A/OC0B на Compare Match пры падліку. Ачысціце OC0A/OC0B пры параўнанні матчу пры памяншэнні адліку. |
Заўвага: 1. Асаблівы выпадак узнікае, калі OCR0A або OCR0B роўна TOP і ўсталяваны COM0A1/COM0B1. У гэтым выпадку супадзенне параўнання ігнаруецца, але набор або ачыстка выконваецца ў ВЕРХУ. Глядзіце «Рэжым карэкціроўкі фазы ШІМ» на старонцы 74 для больш падрабязнай інфармацыі.
Біты 3:2 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біты 1:0 – WGM0[1:0]: Рэжым генерацыі сігналаў
У спалучэнні з бітам WGM02, знойдзеным у рэгістры TCCR0B, гэтыя біты кантралююць паслядоўнасць падліку лічыльніка, крыніцу максімальнага (TOP) значэння лічыльніка і тып генерацыі сігналу, які трэба выкарыстоўваць, гл. Табліца 11-5. Рэжымы працы, якія падтрымліваюцца блокам таймера/лічыльніка: звычайны рэжым (лічыльнік), рэжым ачысткі таймера параўнання супадзення (CTC) і два тыпы рэжымаў шыротна-імпульснай мадуляцыі (ШІМ) (гл. «Рэжымы працы» на старонцы 71).
Табліца 11-5. Апісанне біта рэжыму генерацыі сігналу
Рэжым | WGM 02 | WGM 01 | WGM 00 | Рэжым працы таймера/лічыльніка | ТОП | Абнаўленне OCRx на | Усталяваны сцяг TOV |
0 | 0 | 0 | 0 | Нармальны | 0xFF | Неадкладны | МАКС(1) |
1 | 0 | 0 | 1 | ШІМ, правільная фаза | 0xFF | ТОП | ДНІЗ(2) |
2 | 0 | 1 | 0 | КТК | OCRA | Неадкладны | МАКС(1) |
3 | 0 | 1 | 1 | Хуткі ШІМ | 0xFF | ДНІЗ(2) | МАКС(1) |
4 | 1 | 0 | 0 | Зарэзерваваны | – | – | – |
5 | 1 | 0 | 1 | ШІМ, правільная фаза | OCRA | ТОП | ДНІЗ(2) |
6 | 1 | 1 | 0 | Зарэзерваваны | – | – | – |
7 | 1 | 1 | 1 | Хуткі ШІМ | OCRA | ДНІЗ(2) | ТОП |
Біт 7 – FOC0A: Force Output Compare A
Біт FOC0A актыўны толькі тады, калі біты WGM вызначаюць рэжым без ШІМ.
Аднак для забеспячэння сумяшчальнасці з будучымі прыладамі гэты біт павінен быць усталяваны ў нуль, калі TCCR0B запісваецца пры працы ў рэжыме ШІМ. Пры запісе лагічнай адзінкі ў біт FOC0A неадкладнае супадзенне параўнання прымушаецца ў блоку генерацыі сігналу. Вывад OC0A змяняецца ў адпаведнасці з яго наладай біт COM0A[1:0]. Звярніце ўвагу, што біт FOC0A рэалізаваны як строб. Такім чынам, значэнне, прысутнае ў бітах COM0A[1:0], вызначае эфект прымусовага параўнання.
Страбаскоп FOC0A не будзе ствараць ніякіх перапыненняў, а таксама не ачысціць таймер у рэжыме CTC з выкарыстаннем OCR0A як TOP. Біт FOC0A заўсёды чытаецца як нуль.
Біт 6 – FOC0B: Force Output Compare B
Біт FOC0B актыўны толькі тады, калі біты WGM вызначаюць рэжым без ШІМ.
Аднак для забеспячэння сумяшчальнасці з будучымі прыладамі гэты біт павінен быць усталяваны ў нуль, калі TCCR0B запісваецца пры працы ў рэжыме ШІМ. Пры запісе лагічнай адзінкі ў біт FOC0B неадкладнае супадзенне параўнання прымушаецца ў блоку генерацыі сігналу. Вывад OC0B змяняецца ў адпаведнасці з яго наладай біт COM0B[1:0]. Звярніце ўвагу, што біт FOC0B рэалізаваны як строб. Такім чынам, значэнне, прысутнае ў бітах COM0B[1:0], вызначае эфект прымусовага параўнання.
Страбаскоп FOC0B не будзе ствараць ніякіх перапыненняў, а таксама не ачысціць таймер у рэжыме CTC з выкарыстаннем OCR0B у якасці TOP.
Біт FOC0B заўсёды чытаецца як нуль.
Біты 5:4 – Res: зарэзерваваныя біты
Гэтыя біты з'яўляюцца зарэзерваванымі бітамі ў ATtiny25/45/85 і заўсёды будуць чытацца як нулі.
Біт 3 – WGM02: Рэжым генерацыі сігналу
Глядзіце апісанне ў “TCCR0A – Рэгістр кіравання таймерам/лічыльнікам A” на старонцы 77.
Біты 2:0 – CS0[2:0]: выбар гадзінніка
Тры біты выбару гадзінніка выбіраюць крыніцу тактавага сігналу, які будзе выкарыстоўвацца таймерам/лічыльнікам.
Табліца 11-6. Гадзіннік Выберыце біт Апісанне
CS02 | CS01 | CS00 | Апісанне |
0 | 0 | 0 | Няма крыніцы гадзінніка (таймер/лічыльнік спынены) |
0 | 0 | 1 | clkI/O/ (без папярэдняга маштабавання) |
0 | 1 | 0 | clkI/O/8 (з папярэдняга дзялільніка) |
0 | 1 | 1 | clkI/O/64 (з папярэдняга дзялільніка) |
1 | 0 | 0 | clkI/O/256 (з папярэдняга дзялільніка) |
1 | 0 | 1 | clkI/O/1024 (з папярэдняга дзялільніка) |
1 | 1 | 0 | Знешняя крыніца тактавага сігналу на выснове T0. Гадзіннік на падзенні краю. |
1 | 1 | 1 | Знешняя крыніца тактавага сігналу на выснове T0. Гадзіннік на нарастаючым краі. |
Калі для таймера/лічыльніка0 выкарыстоўваюцца знешнія рэжымы кантактаў, пераходы на штыфты T0 будуць тактаваць лічыльнік, нават калі штыфт настроены як выхад. Гэтая функцыя дазваляе праграмна кіраваць падлікам.
Лічыльнік і параўнанне адзінак
Агульная праца Timer/Counter1 апісваецца ў асінхронным рэжыме, а праца ў сінхронным рэжыме згадваецца толькі ў тым выпадку, калі паміж гэтымі двума рэжымамі ёсць адрозненні. Малюнак 12-2 паказвае блок-схему рэгістра сінхранізацыі таймера/лічыльніка 1 і затрымкі сінхранізацыі паміж рэгістрамі. Звярніце ўвагу, што на малюнку не паказаны ўсе дэталі гадзінніка. Значэнні рэгістра Timer/Counter1 праходзяць праз унутраныя рэгістры сінхранізацыі, якія выклікаюць затрымку сінхранізацыі ўводу, перш чым паўплываць на працу лічыльніка. Рэгістры TCCR1, GTCCR, OCR1A, OCR1B і OCR1C можна прачытаць адразу пасля запісу ў рэгістр. Счытваныя значэнні затрымліваюцца для рэгістра Таймер/Лічыльнік1 (TCNT1) і сцягоў (OCF1A, OCF1B і TOV1) з-за сінхранізацыі ўваходу і выхаду.
Таймер/лічыльнік1 адрозніваецца высокай раздзяляльнасцю і высокай дакладнасцю выкарыстання з меншымі магчымасцямі папярэдняга маштабавання. Ён таксама можа падтрымліваць два дакладныя высакахуткасныя 8-бітныя шыротна-імпульсныя мадулятары з тактавай частатой да 64 МГц (або 32 МГц у рэжыме нізкай хуткасці). У гэтым рэжыме Таймер/Лічыльнік1 і выхадныя рэгістры параўнання служаць падвойнымі аўтаномнымі ШІМ з неперакрываючыміся неінвертаваным і інвертаваным выхадамі. Спасылацца на старонка 86 для падрабязнага апісання гэтай функцыі. Аналагічным чынам, высокія магчымасці папярэдняга маштабавання робяць гэта прылада карысным для функцый з нізкай хуткасцю або функцый дакладнага часу з рэдкімі дзеяннямі.
Малюнак 12-2. Блок-схема рэгістра сінхранізацыі таймера/лічыльніка 1.
Таймер/лічыльнік1 і папярэдні дзелільнік дазваляюць запускаць працэсар з любой крыніцы тактавай частоты, у той час як папярэдні дзелільнік працуе на хуткай частаце 64 МГц (або 32 МГц у нізкахуткасным рэжыме) PCK у асінхронным рэжыме.
Звярніце ўвагу, што тактавая частата сістэмы павінна быць ніжэй за адну трэць частаты PCK. Механізм сінхранізацыі асінхроннага таймера/лічыльніка 1 мае патрэбу як мінімум у двух фронтах PCK, калі тактавая частата сістэмы высокая. Калі частата сістэмнага гадзінніка занадта высокая, існуе рызыка страты даных або значэнняў кіравання.
Наступнае Малюнак 12-3 паказвае блок-схему для Timer/Counter1.
Табліца 12-1. Выбар рэжыму параўнання ў рэжыме ШІМ
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 не падключаны. |
Характарыстыкі АЛП
Табліца 21-8. Характарыстыкі АЦП, аднаканцовыя каналы. TA = ад -40°C да +85°C
Сімвал | Параметр | Стан | Мін | Тып | Макс | Адзінкі |
дазвол | 10 | Біты | ||||
Абсалютная дакладнасць (у тым ліку памылкі INL, DNL і квантавання, узмацнення і зрушэння) | VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц |
2 | LSB | |||
VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 1 МГц |
3 | LSB | ||||
VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц Рэжым шумапрыглушэння |
1.5 | LSB | ||||
VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 1 МГц Рэжым шумапрыглушэння |
2.5 | LSB | ||||
Інтэгральная нелінейнасць (INL) (Дакладнасць пасля каліброўкі зрушэння і ўзмацнення) | VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц |
1 | LSB | |||
Дыферэнцыяльная нелінейнасць (DNL) | VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц |
0.5 | LSB | |||
Памылка ўзмацнення | VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц |
2.5 | LSB | |||
Памылка зрушэння | VREF = 4В, VCC = 4В,
Тактавая частата АЦП = 200 кГц |
1.5 | LSB | |||
Час пераўтварэння | Free Running Conversion | 14 | 280 | мк | ||
Тактовая частата | 50 | 1000 | кГц | |||
VIN | Уваходны кнtage | GND | VREF | V | ||
Прапускная здольнасць уводу | 38.4 | кГц | ||||
АРЭФ | Знешняя даведка Voltage | 2.0 | VCC | V | ||
ВІНТ | Унутраны выпtage Даведка | 1.0 | 1.1 | 1.2 | V | |
Унутраны эталон 2.56 В (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | кОм | ||||
ДОЖДЖ | Аналагавы ўваходны супраціў | 100 | МОм | |||
Выхад АЦП | 0 | 1023 | LSB |
Заўвага: 1. Значэнні з'яўляюцца толькі арыентыровачнымі.
Табліца 21-9. Характарыстыкі АЦП, дыферэнцыяльныя каналы (уніпалярны рэжым). TA = ад -40°C да +85°C
Сімвал | Параметр | Стан | Мін | Тып | Макс | Адзінкі |
дазвол | Выйгрыш = 1x | 10 | Біты | |||
Выйгрыш = 20x | 10 | Біты | ||||
Абсалютная дакладнасць (уключаючы INL, DNL і
Памылкі квантавання, узмацнення і зрушэння) |
Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
10.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
20.0 | LSB | ||||
Інтэгральная нелінейнасць (INL) (дакладнасць пасля каліброўкі зрушэння і ўзмацнення) | Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
4.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
10.0 | LSB | ||||
Памылка ўзмацнення | Выйгрыш = 1x | 10.0 | LSB | |||
Выйгрыш = 20x | 15.0 | LSB | ||||
Памылка зрушэння | Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
3.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
4.0 | LSB | ||||
Час пераўтварэння | Free Running Conversion | 70 | 280 | мк | ||
Тактовая частата | 50 | 200 | кГц | |||
VIN | Уваходны кнtage | GND | VCC | V | ||
VDIFF | Уваходны дыферэнцыял Voltage | VREF/Узмацненне | V | |||
Прапускная здольнасць уводу | 4 | кГц | ||||
АРЭФ | Знешняя даведка Voltage | 2.0 | VCC – 1.0 | V | ||
ВІНТ | Унутраны выпtage Даведка | 1.0 | 1.1 | 1.2 | V | |
Унутраны эталон 2.56 В (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | Эталонны ўваходны супраціў | 32 | кОм | |||
ДОЖДЖ | Аналагавы ўваходны супраціў | 100 | МОм | |||
Выхад пераўтварэння АЦП | 0 | 1023 | LSB |
Заўвага: Значэнні з'яўляюцца толькі арыентыровачнымі.
Табліца 21-10. Характарыстыкі АЦП, дыферэнцыяльныя каналы (біпалярны рэжым). TA = ад -40°C да +85°C
Сімвал | Параметр | Стан | Мін | Тып | Макс | Адзінкі |
дазвол | Выйгрыш = 1x | 10 | Біты | |||
Выйгрыш = 20x | 10 | Біты | ||||
Абсалютная дакладнасць (уключаючы INL, DNL і
Памылкі квантавання, узмацнення і зрушэння) |
Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
8.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
8.0 | LSB | ||||
Інтэгральная нелінейнасць (INL) (дакладнасць пасля каліброўкі зрушэння і ўзмацнення) | Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
4.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
5.0 | LSB | ||||
Памылка ўзмацнення | Выйгрыш = 1x | 4.0 | LSB | |||
Выйгрыш = 20x | 5.0 | LSB | ||||
Памылка зрушэння | Выйгрыш = 1x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
3.0 | LSB | |||
Выйгрыш = 20x
VREF = 4В, VCC = 5В Тактавая частата АЦП = 50 – 200 кГц |
4.0 | LSB | ||||
Час пераўтварэння | Free Running Conversion | 70 | 280 | мк | ||
Тактовая частата | 50 | 200 | кГц | |||
VIN | Уваходны кнtage | GND | VCC | V | ||
VDIFF | Уваходны дыферэнцыял Voltage | VREF/Узмацненне | V | |||
Прапускная здольнасць уводу | 4 | кГц | ||||
АРЭФ | Знешняя даведка Voltage | 2.0 | VCC – 1.0 | V | ||
ВІНТ | Унутраны выпtage Даведка | 1.0 | 1.1 | 1.2 | V | |
Унутраны эталон 2.56 В (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | Эталонны ўваходны супраціў | 32 | кОм | |||
ДОЖДЖ | Аналагавы ўваходны супраціў | 100 | МОм | |||
Выхад пераўтварэння АЦП | -512 | 511 | LSB |
Рэзюмэ набору інструкцый
Мнематэхніка | Операнды | Апісанне | Аперацыя | Сцягі | #Гадзіннікі |
АРЫФМЕТЫЧНЫЯ І ЛАГІЧНЫЯ ІНСТРУКЦЫІ | |||||
ДАДАЦЬ | Rd, Rr | Дадайце два рэгістры | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
АЛП | Rd, Rr | Дадайце з дапамогай Carry два рэгістра | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Рдл,К | Неадкладна дадаць у Word | Rdh:Rdl ← Rdh:Rdl + K | Я, Ц, П, В, П | 2 |
SUB | Rd, Rr | Адніміце два рэгістры | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
СУБІ | Рд, К | Адняць канстанту з рэестра | Рд ← Рд – К | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Адніманне з Carry двума рэгістрамі | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Рд, К | Адніміце канстанту пераносу з рэг. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Рдл,К | Адніміце імгненнае з Word | Rdh:Rdl ← Rdh:Rdl – К | Я, Ц, П, В, П | 2 |
І | Rd, Rr | Лагічныя рэгістры І | Rd ← Rd ∙ Rr | Я, П, В | 1 |
АНДЗІ | Рд, К | Лагічны рэгістр І і канстанта | Rd ← Rd ∙ K | Я, П, В | 1 |
OR | Rd, Rr | Лагічныя рэгістры АБО | Rd ← Rd v Rr | Я, П, В | 1 |
ORI | Рд, К | Рэгістр лагічнага АБО і канстанта | Rd ← Rd v K | Я, П, В | 1 |
EOR | Rd, Rr | Эксклюзіўныя рэгістры АБО | Rd ← Rd ⊕ Rr | Я, П, В | 1 |
COM | Rd | One's Complement | Rd ← 0xFF − Rd | Я, З, П, В | 1 |
NEG | Rd | Дапаўненне двух | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Рд, К | Усталюйце біт(ы) у Register | Rd ← Rd v K | Я, П, В | 1 |
ЦБР | Рд, К | Ачысціць біт(-ы) у рэестры | Rd ← Rd ∙ (0xFF – K) | Я, П, В | 1 |
ІНК | Rd | Прырост | Rd ← Rd + 1 | Я, П, В | 1 |
СНЕЖ | Rd | Памяншэнне | Rd ← Rd − 1 | Я, П, В | 1 |
TST | Rd | Тэст на нуль або мінус | Рд ← Рд ∙ Рд | Я, П, В | 1 |
CLR | Rd | Ачысціць рэгістрацыю | Rd ← Rd ⊕ Rd | Я, П, В | 1 |
SER | Rd | Усталюйце Рэгістрацыя | Rd ← 0xFF | Няма | 1 |
ІНСТРУКЦЫЯ ФІЛІЯЛА | |||||
RJMP | k | Адносны скачок | ПК ← ПК + k + 1 | Няма | 2 |
IJMP | Ускосны пераход да (Z) | ПК ← З | Няма | 2 | |
ВЫЗВАН | k | Адносны выклік падпраграмы | ПК ← ПК + k + 1 | Няма | 3 |
ICALL | Ускосны выклік (Z) | ПК ← З | Няма | 3 | |
РЭТ | Вяртанне падпраграмы | ПК ← СТОК | Няма | 4 | |
РЭЦІ | Вяртанне перапынення | ПК ← СТОК | I | 4 | |
CPSE | Rd,Rr | Параўнаць, прапусціць, калі роўна | калі (Rd = Rr) PC ← PC + 2 або 3 | Няма | 1г |
CP | Rd,Rr | Параўнайце | Rd − Rr | Z, N, V, C, H | 1 |
КПК | Rd,Rr | Параўнайце з Carry | Rd − Rr − C | Z, N, V, C, H | 1 |
ІСЦ | Рд, К | Параўнайце Register з Imediate | Rd − K | Z, N, V, C, H | 1 |
СБРК | Рр, б | Прапусціць, калі біт у рэестры ачышчаны | калі (Rr(b)=0) ПК ← ПК + 2 або 3 | Няма | 1г |
СРБС | Рр, б | Прапусціць, калі ўсталяваны біт у рэестры | калі (Rr(b)=1) ПК ← ПК + 2 або 3 | Няма | 1г |
СБІК | П, б | Прапусціць, калі біт у рэгістры ўводу/вываду ачышчаны | калі (P(b)=0) ПК ← ПК + 2 або 3 | Няма | 1г |
СБІС | П, б | Прапусціць, калі ўсталяваны біт у рэгістры ўводу/вываду | калі (P(b)=1) ПК ← ПК + 2 або 3 | Няма | 1г |
БРБС | с, к | Разгалінаванне, калі ўсталяваны сцяг стану | калі (SREG(s) = 1), то PC ←PC+k + 1 | Няма | 1/2 |
БРБК | с, к | Разгалінаванне, калі сцяг статусу ачышчаны | калі (SREG(s) = 0), то PC ←PC+k + 1 | Няма | 1/2 |
BREQ | k | Галінаванне, калі роўна | калі (Z = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРНЕ | k | Галінаванне, калі не роўна | калі (Z = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРКС | k | Галіна, калі Carry Set | калі (C = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРЦК | k | Аддзяленне, калі Carry ачышчана | калі (C = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРШ | k | Галіна, калі такая ж або вышэйшая | калі (C = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРЛО | k | Галіна калі Ніжняя | калі (C = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРМІ | k | Галіна калі мінусоўка | калі (N = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРПЛ | k | Галіна, калі плюс | калі (N = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРГЭ | k | Разгалінаванне, калі больш або роўна, са знакам | калі (N ⊕ V= 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРЛТ | k | Галінаванне, калі менш за нуль, з подпісам | калі (N ⊕ V= 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРХС | k | Разгалінаванне, калі набор сцяга Half Carry | калі (H = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРХЦ | k | Галіна, калі сцяг Half Carry ачышчаны | калі (H = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРТС | k | Галіна, калі ўсталяваны сцяг T | калі (T = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРТК | k | Галіна, калі сцяг T ачышчаны | калі (T = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРВС | k | Галіна, калі ўсталяваны сцяг перапаўнення | калі (V = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРВЦ | k | Разгалінаванне, калі сцяг перапаўнення зняты | калі (V = 0), то PC ← PC + k + 1 | Няма | 1/2 |
БРЫ | k | Разгалінаванне, калі ўключана перапыненне | калі ( I = 1), то PC ← PC + k + 1 | Няма | 1/2 |
БРІД | k | Разгалінаванне, калі перапыненне адключана | калі ( I = 0), то PC ← PC + k + 1 | Няма | 1/2 |
ІНСТРУКЦЫІ ПА БІТАМ І БІТ-ТЭСТАМ | |||||
ВОО | П,б | Усталюйце біт у рэгістры ўводу-вываду | I/O(P,b) ← 1 | Няма | 2 |
CBI | П,б | Ачысціць біт у рэгістры ўводу-вываду | I/O(P,b) ← 0 | Няма | 2 |
LSL | Rd | Лагічны зрух улева | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Я, З, П, В | 1 |
ЛСР | Rd | Лагічны зрух управа | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Я, З, П, В | 1 |
ROL | Rd | Паварот налева праз перанос | Rd(0)←C,Rd(n+1) ← Rd(n),C←Rd(7) | Я, З, П, В | 1 |
ROR | Rd | Паварот направа праз Carry | Rd(7)←C,Rd(n) ← Rd(n+1),C←Rd(0) | Я, З, П, В | 1 |
ASR | Rd | Арыфметычны зрух управа | Rd(n) ← Rd(n+1), n=0..6 | Я, З, П, В | 1 |
Мнематэхніка | Операнды | Апісанне | Аперацыя | Сцягі | #Гадзіннікі |
АБМЕН | Rd | Памяняйце грызкі | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Няма | 1 |
BSET | s | Усталяваны сцяг | SREG(s) ← 1 | SREG(ы) | 1 |
BCLR | s | Сцяг Ачысціць | SREG(s) ← 0 | SREG(ы) | 1 |
BST | Рр, б | Bit Store ад Register да T | T ← Rr(b) | T | 1 |
BLD | Р-д, б | Разрадная нагрузка ад T да Register | Rd(b) ← Т | Няма | 1 |
SEC | Набор Carry | Ц ← 1 | C | 1 | |
CLC | Clear Carry | Ц ← 0 | C | 1 | |
СЕН | Усталяваць адмоўны сцяг | N ← 1 | N | 1 | |
CLN | Ачысціць адмоўны сцяг | N ← 0 | N | 1 | |
АЭЗ | Усталяваць нулявы сцяг | Z ← 1 | Z | 1 | |
CLZ | Ачысціць нулявы сцяг | Z ← 0 | Z | 1 | |
SEI | Глабальнае ўключэнне перапынення | Я ← 1 | I | 1 | |
CLI | Глабальнае адключэнне перапынення | Я ← 0 | I | 1 | |
АЭП | Усталяваць падпісаны тэставы сцяг | S ← 1 | S | 1 | |
CLS | Выразны тэставы сцяг з подпісам | S ← 0 | S | 1 | |
SEV | Набор Twos Complement Overflow. | V ← 1 | V | 1 | |
CLV | Выразнае перапаўненне дапаўнення двоек | V ← 0 | V | 1 | |
НАБОР | Усталюйце T у SREG | Т ← 1 | T | 1 | |
CLT | Ачысціць T у SREG | Т ← 0 | T | 1 | |
ГЛЯДЗІЦЕ | Усталюйце сцяг Half Carry у SREG | Ч ← 1 | H | 1 | |
CLH | Ачысціць сцяг Half Carry у SREG | Ч ← 0 | H | 1 | |
ІНСТРУКЦЫЯ ПА ПЕРАДАЧЫ ДАДЗЕНЫХ | |||||
MOV | Rd, Rr | Перамяшчэнне паміж рэгістрамі | Rd ← Rr | Няма | 1 |
MOVW | Rd, Rr | Капіяваць Register Word | Rd+1:Rd ← Rr+1:Rr | Няма | 1 |
LDI | Рд, К | Загрузіць неадкладна | Rd ← K | Няма | 1 |
LD | Рд, X | Ускосная загрузка | Rd ← (X) | Няма | 2 |
LD | Rd, X+ | Загрузіць ускосныя і пост-інк. | Rd ← (X), X ← X + 1 | Няма | 2 |
LD | Рд, – X | Загрузіць ускосныя і перад скарачэннем. | X ← X – 1, Rd ← (X) | Няма | 2 |
LD | Рд, Ю | Ускосная загрузка | Rd ← (Y) | Няма | 2 |
LD | Rd, Y+ | Загрузіць ускосныя і пост-інк. | Rd ← (Y), Y ← Y + 1 | Няма | 2 |
LD | Рд, – Я | Загрузіць ускосныя і перад скарачэннем. | Y ← Y – 1, Rd ← (Y) | Няма | 2 |
ЛДД | Rd,Y+q | Нагрузка ўскосная са зрушэннем | Rd ← (Y + q) | Няма | 2 |
LD | Рд, З | Ускосная загрузка | Rd ← (Z) | Няма | 2 |
LD | Rd, Z+ | Загрузіць ускосныя і пост-інк. | Rd ← (Z), Z ← Z+1 | Няма | 2 |
LD | Рд, -З | Загрузіць ускосныя і перад скарачэннем. | Z ← Z – 1, Rd ← (Z) | Няма | 2 |
ЛДД | Rd, Z+q | Нагрузка ўскосная са зрушэннем | Rd ← (Z + q) | Няма | 2 |
LDS | Рд, к | Загрузіць прама з SRAM | Rd ← (k) | Няма | 2 |
ST | X, Rr | Крама Indirect | (X) ← Rr | Няма | 2 |
ST | X+, Rr | Store Indirect і Post-Inc. | (X) ← Rr, X ← X + 1 | Няма | 2 |
ST | – X, Rr | Захоўвайце ўскосныя і да снежня. | X ← X – 1, (X) ← Rr | Няма | 2 |
ST | Y, Rr | Крама Indirect | (Y) ← Rr | Няма | 2 |
ST | Y+, Rr | Store Indirect і 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 | Крама Indirect | (Z) ← Rr | Няма | 2 |
ST | Z+, Rr | Store Indirect і 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 |
ЛПМ | Загрузіць памяць праграмы | R0 ← (Z) | Няма | 3 | |
ЛПМ | Рд, З | Загрузіць памяць праграмы | Rd ← (Z) | Няма | 3 |
ЛПМ | Rd, Z+ | Памяць загрузкі праграм і Post-Inc | Rd ← (Z), Z ← Z+1 | Няма | 3 |
СЗМ | Памяць праграм | (z) ← R1:R0 | Няма | ||
IN | Рд, П | У порце | Rd ← P | Няма | 1 |
ВЫХОД | P, Rr | Выходны порт | P ← Rr | Няма | 1 |
ШТУХНУЦЬ | Rr | Push Register on Stack | СТОК ← Рр | Няма | 2 |
ПОП | Rd | Pop Register са стэка | Rd ← СТОК | Няма | 2 |
ІНСТРУКЦЫЯ КІРАВАННЯ MCU | |||||
NOP | Без аперацыі | Няма | 1 | ||
СПАЦЬ | спаць | (гл. канкрэтнае апісанне функцыі сну) | Няма | 1 | |
WDR | Вартавы скід | (гл. канкрэтнае апісанне WDR/таймера) | Няма | 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. Для хуткасці супраць прапановы voltage, гл. раздзел 21.3 «Хуткасць» на старонцы 163.
Усе пакеты не ўтрымліваюць свінцу, галогенідаў і цалкам зялёныя, і яны адпавядаюць Еўрапейскай дырэктыве па абмежаванні небяспечных рэчываў (RoHS).
Кодавыя індыкатары
H: Свінцовая аздабленне NiPdAu
U: матавае волава
R: стужка і шпулька
Гэтыя прылады таксама могуць пастаўляцца ў выглядзе пласцін. Калі ласка, звярніцеся ў мясцовы офіс продажаў Atmel для атрымання падрабязнай інфармацыі аб замове і мінімальнай колькасці.
Памылка
Памылка ATtiny25
Ліст аб рэвізіі ў гэтым раздзеле адносіцца да рэвізіі прылады ATtiny25.
Rev D – F
Няма вядомых памылак.
Rev B – C
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Спроба прачытаць EEPROM на нізкіх тактавых частотах і/або нізкім аб'ёме харчаванняtage можа прывесці да несапраўдных дадзеных.
Выпраўленне праблемы/абыходны шлях
Не выкарыстоўвайце EEPROM, калі тактавая частата ніжэй за 1 МГц і аб'ём харчаванняtage ніжэй за 2В. Калі працоўную частату нельга павысіць вышэй за 1 МГц, падайце аб'ёмtage павінна быць больш за 2В. Сапраўды гэтак жа, калі пастаўка voltage не можа быць павышана вышэй за 2 В, тады працоўная частата павінна быць больш за 1 МГц.
Вядома, што гэтая асаблівасць залежыць ад тэмпературы, але яна не была ахарактарызавана. Рэкамендацыі прыведзены толькі для пакаёвай тэмпературы.
Вялебны А
Не сampвял.
Памылка ATtiny45
Ліст аб рэвізіі ў гэтым раздзеле адносіцца да рэвізіі прылады ATtiny45.
Rev F – G
Няма вядомых памылак
Rev D – E
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Спроба прачытаць EEPROM на нізкіх тактавых частотах і/або нізкім аб'ёме харчаванняtage можа прывесці да несапраўдных дадзеных.
Выпраўленне праблемы/абыходны шлях
Не выкарыстоўвайце EEPROM, калі тактавая частата ніжэй за 1 МГц і аб'ём харчаванняtage ніжэй за 2В. Калі працоўную частату нельга павысіць вышэй за 1 МГц, падайце аб'ёмtage павінна быць больш за 2В. Сапраўды гэтак жа, калі пастаўка voltage не можа быць павышана вышэй за 2 В, тады працоўная частата павінна быць больш за 1 МГц.
Вядома, што гэтая асаблівасць залежыць ад тэмпературы, але яна не ахарактарызавана. Рэкамендацыі прыведзены толькі для пакаёвай тэмпературы.
Rev B – C
PLL не блакуецца
Счытванне EEPROM з кода прыкладання не працуе ў рэжыме Lock Bit Mode 3
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Выхад лічыльніка таймера 1 ШІМ на 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 ніжэй за 2В. Калі працоўную частату нельга павысіць вышэй за 1 МГц, падайце аб'ёмtage павінна быць больш за 2В. Сапраўды гэтак жа, калі пастаўка voltage не можа быць павышана вышэй за 2 В, тады працоўная частата павінна быць больш за 1 МГц.
Вядома, што гэтая асаблівасць залежыць ад тэмпературы, але яна не была ахарактарызавана. Рэкамендацыі прыведзены толькі для пакаёвай тэмпературы.
Выхад лічыльніка таймера 1 ШІМ на OC1B – XOC1B не працуе належным чынам
Выхад ШІМ-лічыльніка таймера 1 OC1B-XOC1B не працуе належным чынам. Толькі ў выпадку, калі біты кіравання COM1B1 і COM1B0 знаходзяцца ў тым жа рэжыме, што і COM1A1 і COM1A0 адпаведна, выхад OC1B-XOC1B працуе правільна.
Выпраўленне праблемы/абыход
Адзіным абыходным шляхам з'яўляецца выкарыстанне той жа налады кіравання для біт кіравання COM1A[1:0] і COM1B[1:0], гл. табліцу 14-4 у табліцы даных. Праблема была выпраўлена для Tiny45 rev D.
Вялебны А
Занадта высокае энергаспажыванне
DebugWIRE губляе сувязь пры адным кроку ў перапыненні
PLL не блакуецца
Счытванне EEPROM з кода прыкладання не працуе ў рэжыме Lock Bit Mode 3
Счытванне EEPROM можа не атрымацца пры нізкім аб'ёме харчаванняtage / нізкая тактавая частата
Занадта высокае энергаспажыванне
Тры сітуацыі прывядуць да занадта высокага спажывання энергіі пры адключэнні. Гэта:
Знешні гадзіннік выбіраецца засцерагальнікамі, але ПОРТ уводу/вываду па-ранейшаму ўключаны ў якасці выхаду.
EEPROM счытваецца перад адключэннем харчавання.
VCC складае 4.5 вольта або вышэй.
Адмова ад адказнасці: інфармацыя ў гэтым дакуменце прадастаўляецца ў сувязі з прадуктамі Atmel. Гэты дакумент або ў сувязі з продажам прадуктаў Atmel не прадастаўляюць ніякай ліцэнзіі, відавочнай або ўяўнай, на падставе адмовы або іншым чынам, на права інтэлектуальнай уласнасці. АКРАМЯ ТАКІХ, ПАЛАДАНЫХ ВА ЎМОВАХ ПРОДАЖУ ATMEL, РАЗМЕШЧАНЫХ НА ATMEL WEBСАЙТ, ATMEL НЕ НЯСЕ НІЯКАЙ АДКАЗНАСЦІ І АДМОВАЛЯЕЦЦА АД ЛЮБЫХ ВЫРАВНЫХ, РАЗУМЕВАННЫХ АБО СТАТУТНЫХ ГАРАНТЫЙ ДА СВАІХ ПРАДУКЦЫЙ, ВКЛЮЧАЮЧЫ, АЛЕ НЕ АБМЕЖУЮЧЫСЯ, РАЗРАЗУМЕВАНЫЯ ГАРАНТЫІ ТАВАЖНАЙ ПРЫГОДНАСЦІ, ПРЫДАТНАСЦІ ДЛЯ ПЭЎНАЙ МЭТЫ АБО НЕПАРУШЭННЯ. ATMEL НІ НІ ў якім выпадку НЕ НЯСЕ АДКАЗНАСЦІ ЗА ЛЮБЫЯ ПРАМЫЯ, УСКОСНЫЯ, НЕПРАМІВЫЯ, ШТРАФНЫЯ, СПЕЦЫЯЛЬНЫЯ АБО ВЫПАДКОВЫЯ ШКОДЫ (УКЛЮЧАЮЧЫ, БЕЗ АБМЕЖАВАННЯ, ШКОДУ ЗА СТРАТЫ І ПРЫБЫТКІ, ПЕРЫПЫ ДЗЕЙНАСЦІ АБО СТРАТУ ІНФАРМАЦЫІ), ЯКІЯ Ўзніклі ў выніку ВЫКАРЫСТАННЯ ВАМ АБО БЯЗМОЖНАСЦІ ГЭТЫ ДАКУМЕНТ, НАВАТ КАЛІ ATMEL БЫЛА ПАВЕДАМЛЕНА АБ МАГЧЫМАСЦІ ТАКОГА ШКОДЫ.
Кампанія Atmel не робіць ніякіх заяў і не дае гарантый у дачыненні да дакладнасці або паўнаты змесціва гэтага дакумента і пакідае за сабой права ўносіць змены ў спецыфікацыі і апісанні прадуктаў у любы час без папярэдняга паведамлення. Atmel не бярэ на сябе ніякіх абавязацельстваў абнаўляць змешчаную тут інфармацыю. Калі не пазначана іншае, прадукты Atmel не падыходзяць і не павінны выкарыстоўвацца ў аўтамабільных прылажэннях. Прадукты Atmel не прызначаныя, дазволеныя або гарантаваныя для выкарыстання ў якасці кампанентаў у праграмах, прызначаных для падтрымання або падтрымання жыцця.