Atmel 8-битен AVR микроконтролер со 2/4/8K бајти во системот програмабилен блиц
Карактеристики
- AVR® 8-битен микроконтролер со високи перформанси и мала моќност
- Напредна архитектура на RISC
- 120 моќни упатства - најединечно извршување на циклусот на часовникот
- 32 x 8 Регистри за работа со општа намена
- Целосно статична операција
- Нестабилна програма и мемории на податоци
- 2/4 / 8K бајти мемориски блиц на програмата што може да се програмира
- Издржливост: 10,000 циклуси за пишување/бришење
- 128/256/512 бајти Програмибилен EEPROM во системот
- Издржливост: 100,000 циклуси за пишување/бришење
- 128/256/512 бајти Внатрешен SRAM
- Програмирање заклучување за самопрограмирање на Флеш програма и безбедност на податоците EEPROM
Периферни карактеристики
- 8-битен тајмер / бројач со прекалер и два канали PWM
- 8-битен тајмер / бројач со голема брзина со посебен лек
- 2 излези со висока фреквенција PWM со посебни излези Споредете ги регистрите
- Програмабилен генератор на мртво време
- USI - Универзална сериска интерфејс со детектор за состојба на почеток
- 10-битен ADC
4 единечни завршени канали
2 диференцијални парови на ADC канали со програмабилна добивка (1x, 20x)
Мерење на температурата
Програмиран тајмер за надгледување со посебен осцилатор на чипот
Аналоген компаратор на чип
Специјални карактеристики на микроконтролер
дебагирањеWIRE систем на дебагирање на чипови
Програмиран во системот преку SPI порта
Надворешни и внатрешни извори на прекини
Режими во режим на мирување со мала моќност, намалување на бучавата на ADC и намалување на напојувањето
Подобрено коло за ресетирање на вклучувањето
Програмирачко коло за откривање кафеав аут
Внатрешен калибриран осцилатор
I / O и пакети
Шест програмабилни I / O линии
8-пински PDIP, 8-пински SOIC, 20-влошки QFN / MLF и 8-пински TSSOP (само ATtiny45 / V)
Оперативен волtage
- 1.8 - 5.5V за ATtiny25V / 45V / 85V
- 2.7 - 5.5V за ATtiny25 / 45/85
Одделение за брзина
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5 V, 0 - 10 MHz @ 2.7 - 5.5 V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5 V, 0 - 20 MHz @ 4.5 - 5.5 V
Опсег на индустриска температура
Ниска потрошувачка на енергија
Активен режим:
1 MHz, 1.8V: 300 μA
Режим на исклучување:
Конфигурации на игла
Pinout ATtiny25 / 45/85
Пин Описи
VCC: Supply voltage.
ГНД: Земјата.
Порта B (PB5:PB0): Портата B е 6-битна двонасочна влезна/излезна порта со внатрешни отпорници за повлекување (избрани за секој бит). Излезните бафери на Port B имаат симетрични карактеристики на погонот со висока можност за мијалник и извор. Како влезови, игличките на портата B што се надворешно влечени на ниско ниво, ќе извор на струја ако се активираат отпорниците за повлекување. Пиновите на Port B се три-изјавуваат кога ќе се активира условот за ресетирање, дури и ако часовникот не работи.
Пристаништето Б служи и за функциите на различните посебни карактеристики на ATtiny25 / 45/85 како што се наведени
На ATtiny25, програмирачките I / O порти PB3 и PB4 (пинови 2 и 3) се разменуваат во режим на компатибилност ATtiny15 за поддршка на заостаната компатибилност со ATtiny15.
RESET: Ресетирајте го влезот. Ниско ниво на оваа игла подолго од минималната должина на пулсот ќе генерира ресетирање, дури и ако часовникот не работи и под услов пинот за ресетирање да не е оневозможен. Минималната должина на пулсот е дадена во Табела 21-4 на страница 165. Пократките импулси не се гарантира дека ќе генерираат ресетирање.
Игличката за ресетирање може да се користи и како (слаб) пин за влез / излез.
Во текот наview
ATtiny25 / 45/85 е ниско-енергетски CMOS 8-битен микроконтрол базиран на AVR подобрена RISC архитектура. Извршувајќи моќни инструкции во еден циклус на часовник, ATtiny25 / 45/85 постигнува пропусни процеси што се приближуваат до 1 МИПС на MHz дозволувајќи му на дизајнерот на системот да ја оптимизира потрошувачката на енергија наспроти брзината на обработка.
Блок дијаграм
Јадрото AVR комбинира богат сет на инструкции со 32 работни регистри за општа намена. Сите 32 регистри се директно поврзани со единицата за аритметичка логика (ALU), овозможувајќи пристап до два независни регистри во една единствена инструкција извршена во еден циклус на часовник. Резултирачката архитектура е поефикасна во однос на кодот, додека се постигнуваат продукти до десет пати побрзо од конвенционалните микроконтролери CISC.
ATtiny25 / 45/85 ги обезбедува следниве карактеристики: 2/4 / 8K бајти на програмабилен блиц во системот, 128/256/512 бајти EEPROM, 128/256/256 бајти SRAM, 6 I / O линии за општа намена, 32 општи регистрирани работни регистри, еден 8-битен тајмер / бројач со режими на споредување, еден 8-битен тајмер / бројач со голема брзина, универзален сериски интерфејс, внатрешни и надворешни прекини, 4-канален, 10-битен ADC, програмабилен Watchdog тајмер со внатрешен Осцилатор и три режими за заштеда на енергија што може да се изберат софтвер. Режимот на мирување го запира процесорот додека им овозможува на SRAM, тајмер / бројач, ADC, аналоген компаратор и систем на прекини да продолжат да функционираат. Режимот на исклучување ги зачувува содржините на регистарот, оневозможувајќи ги сите функции на чипот до следното прекинување или ресетирање на хардверот. Режимот за намалување на бучавата на ADC ги запира процесорот и сите I / O модули, освен ADC, за да се минимизира бучавата при префрлување за време на конверзиите на ADC.
Уредот е произведен со употреба на технологија на нестабилна меморија со висока густина на Атмел. On-чипот ISP Flash овозможува повторно програмирање на Програмската меморија во-систем преку сериски интерфејс SPI, од конвенционален не-испарлив програмер на меморија или преку код за вклучување на чип кој работи на јадрото AVR.
ATtiny25 / 45/85 AVR е поддржан со целосен пакет алатки за развој на програми и системи, вклучително: C компајлери, макро асемблери, програма за отстранување грешки / симулатори и комплети за проценка.
За ресурси
Сеопфатен сет на алатки за развој, белешки за апликации и табели со податоци се достапни за преземање на http://www.atmel.com/avr.
Код прampлес
Оваа документација содржи едноставен код прamples кои накратко покажуваат како да се користат разни делови од уредот. Овие кодови прamples претпоставуваат дека делот специфичен заглавие file е вклучена пред составувањето. Бидете свесни дека не сите продавачи на компајлери C вклучуваат бит -дефиниции во заглавието files и прекинот на ракувањето во C зависи од компајлерот. Ве молиме, потврдете со документацијата за компајлерот C за повеќе детали.
За I / O регистрите лоцирани во проширената I / O мапа, инструкциите „IN“, „OUT“, „SBIS“, „SBIC“, „CBI“ и „SBI“ мора да бидат заменети со упатства што овозможуваат пристап до проширени / О Типично, ова значи „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 x 8-битни работни регистри за општа намена со едно време на пристап до циклусот на часовникот. Ова овозможува работа со еден циклус аритметичка логичка единица (ALU). Во типична операција ALU, два операнди се излезни од регистарот File, операцијата е извршена, а резултатот се зачувува назад во Регистарот File- во еден циклус на часовник.
Шест од 32 регистри можат да се користат како три 16-битни индикатори за индиректни регистрирани адреси за адресирање на податочен простор - овозможувајќи ефикасни пресметки на адресите. Еден од овие покажувачи на адреси може да се користи и како покажувач на адреси за табели за пребарување во меморијата на Флеш програма. Овие додадени регистри на функции се 16-битни X-, Y- и Z-регистри, опишани подоцна во овој дел.
ALU поддржува аритметички и логички операции помеѓу регистри или помеѓу постојана и регистар. Операциите со единечен регистар исто така може да се извршат во ALU. По аритметичка операција, Регистарот на статусот се ажурира за да одразува информации за резултатот од операцијата.
Протокот на програмата е обезбеден со условно и безусловно упатство за скок и повик, способно директно да се осврне на целиот простор на адресата. Повеќето инструкции AVR имаат единствен формат на 16-битни зборови, но има и 32-битни инструкции.
За време на прекини и подрутински повици, повратната адреса Program Counter (PC) е зачувана на Stack. Stack е ефикасно распределен во општите податоци SRAM, и следствено, големината на Stack е ограничена само од вкупната големина на SRAM и употребата на SRAM. Сите кориснички програми мора да го иницијализираат SP во рутината за ресетирање (пред да се извршат под-рутини или прекини). Stack Pointer (SP) е достапен за читање / запишување во просторот за влез / влез. До податоците до SRAM лесно може да се пристапи преку петте различни режими на адресирање поддржани во архитектурата AVR.
Мемориските простори во архитектурата AVR се сите линеарни и редовни мемориски карти.
Флексибилен модул за прекини има свои контролни регистри во I / O просторот со дополнителен бит за глобално овозможување на прекин во регистарот за статус. Сите прекини имаат посебен вектор на прекини во табелата „Вектор на прекини“. Прекините имаат приоритет во согласност со нивната позиција „Вектор на прекини“. Колку е помала адресата на вектор за прекинување, толку е поголем приоритетот.
Меморискиот простор за влез/излез содржи 64 адреси за периферни функции на процесорот како контролни регистри, SPI и други I/O функции. На меморијата за влез/излез може да се пристапи директно, или како локации на просторот за податоци по оние на регистарот File, 0x20 - 0x5F.
ALU - единица за аритметичка логика
AVR ALU со високи перформанси работи во директна врска со сите 32 регистри за работа со општа намена. Во рамките на еден циклус на часовник, се извршуваат аритметички операции помеѓу регистри за општа намена или помеѓу регистар и непосреден. Операциите ALU се поделени во три главни категории - аритметички, логички и бит-функции. Некои имплементации на архитектурата, исто така, обезбедуваат моќен мултипликатор кој поддржува и потпишано / непотпишано множење и фракционо формат. Погледнете го делот „Упатство за упатства“ за детален опис.
Регистар на статус
Регистарот за статус содржи информации за резултатот од неодамна извршената аритметичка инструкција. Оваа информација може да се користи за промена на протокот на програмата со цел да се извршат условени операции. Забележете дека Регистарот на статусот се ажурира по сите операции на ALU, како што е наведено во Упатството за поставување упатства. Ова во многу случаи ќе ја отстрани потребата од користење на наменски упатства за споредба, што резултира во побрз и покомпактен код.
Регистарот на статуси не се зачувува автоматски кога внесувате рутина за прекини и се обновува кога се враќате од прекин. Ова мора да се справува со софтвер.
СРЕГ - АВР статус Регистар
Регистарот на статуси AVR - SREG - се дефинира како:
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | СРЕГ |
Читај/пишувај | 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-битот се расчистува со хардвер откако ќе се појави прекин и го поставува инструкцијата RETI за да овозможи последователни прекини. I-битот исто така може да се постави и расчисти од апликацијата со упатствата за SEI и CLI, како што е опишано во референцата за множеството инструкции.
Бит 6 - Т: Меморија за копирање на битови
Инструкциите за копирање битови BLD (Bit LoaD) и BST (Bit STore) го користат Т-битот како извор или дестинација за управуваниот бит. Малку од регистар во Регистарот File може да се копира во Т со инструкција BST, а малку во Т може да се копира во малку во регистар во Регистарот File според инструкцијата за БЛД.
Бит 5 - H: Знаме со половина носење
Знамето за половина носење H означува половина носење во некои аритметички операции. Half Carry е корисно во аритметиката BCD. Погледнете во „Опис на сетот за упатства“ за детални информации.
Бит 4 – S: Бит за знак, S = N ⊕ V
S-битот е секогаш ексклузивен или е помеѓу Негативното знаме N и знамето за преполнување на комплементот на двајцата V. Погледнете во „Опис на сетот за инструкции“ за детални информации.
Бит 3 - V: Знаме на преполнување на комплементот на двајца
Знакот V на двата додатоци за дополнување ја поддржува аритметичката на комплементите на двајца. Погледнете во „Опис на сетот за упатства“ за детални информации.
Бит 2 - N: Негативно знаме
Негативното знаме N означува негативен резултат во аритметичка или логичка операција. Погледнете во „Опис на сетот за упатства“ за детални информации.
Бит 1 - З: Знаме со нула
Zero Flag Z означува нула резултат во аритметичка или логичка операција. Погледнете во „Опис на сетот за упатства“ за детални информации.
Бит 0 - Ц: Носете знаме
Carry Flag C означува носење во аритметичка или логичка операција. Погледнете во „Опис на сетот за упатства“ за детални информации.
Регистар за општа намена File
Регистарот File е оптимизиран за инструкцискиот сет AVR Enhanced RISC. Со цел да се постигне потребната перформанса и флексибилност, следните шеми за влез/излез се поддржани од Регистарот File:
Еден 8-битен излезен операнд и еден 8-битен влезен резултат
Два 8-битни излезни операнди и еден 8-битен влезен резултат
Два 8-битни излезни операнди и еден 16-битен влезен резултат
Еден 16-битен излезен операнд и еден 16-битен влезен резултат
Слика 4-2 ја покажува структурата на 32-те регистри за работа со општа намена во процесорот.
Како што е прикажано во Слика 4-2, на секој регистар му е доделена и податочна мемориска адреса, мапирајќи ги директно во првите 32 локации на корисничкиот простор за податоци. Иако не е физички имплементирана како SRAM локации, оваа мемориска организација обезбедува голема флексибилност во пристапот до регистрите, бидејќи регистрите со покажувачи X-, Y- и Z-покажувачите може да се постават за индексирање на секој регистар во file.Повеќето инструкции кои работат на Регистарот File имаат директен пристап до сите регистри, а повеќето од нив се инструкции за еден циклус.
X-регистарот, Y-регистарот и Z-регистарот
Регистрите R26..R31 имаат некои додадени функции во нивната општа употреба. Овие регистри се 16-битни адресни покажувачи за индиректно адресирање на просторот за податоци. Трите индиректни регистри на адреси X, Y и Z се дефинирани како што е опишано во Слика 4-3.
Во различните режими на адресирање, овие регистри на адреси имаат функции како фиксно поместување, автоматско зголемување и автоматско намалување (видете ја упатството за поставување инструкции за детали).
Покажувач на магацинот
Stack главно се користи за зачувување на привремени податоци, за зачувување на локални променливи и за зачувување на повратни адреси по прекини и подпрограми за повици. Регистарот на покажувачи на оџакот секогаш покажува на врвот на оџакот. Забележете дека Stack е имплементиран како расте од места со повисока меморија до локации со помала меморија. Ова подразбира дека командата Stack PUSH го намалува Stack Pointer.
Stack Pointer укажува на податочната област SRAM Stack каде што се наоѓаат подрутините и пакетите за прекини. Овој простор за Stack во податоците SRAM мора да биде дефиниран од програмата пред да се извршат какви било повици на потпрограма или да се овозможат интерпрета. Stack Pointer мора да биде поставен на точка над 0x60. Stack Pointer се намалува за еден кога податоците се туркаат на Stack со инструкциите PUSH и се намалува за два кога адресата за враќање се турка на Stack со потпрограмски повик или прекинува. Stack Pointer се зголемува со еден кога податоците се појавуваат од Stack со инструкцијата POP, и се зголемува за два кога се појавуваат податоци од Stack со враќање од потпрограмата RET или враќање од RETI на прекинот.
AVR Stack Pointer е имплементиран како два 8-битни регистри во I / O просторот. Бројот на битови што се користат е зависен од имплементацијата. Забележете дека просторот за податоци во некои имплементации на архитектурата 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 по MHz со соодветни уникатни резултати за функции по цена, функции по часовници и функции по енергетска единица.
Слика 4-5. Операција на ALU со еден циклус
Ресетирање и ракување со прекини
AVR обезбедува неколку различни извори на прекини. Овие прекини и посебниот вектор за ресетирање имаат посебен вектор на програмата во меморискиот простор на Програмата. На сите прекини им се доделуваат индивидуални битови за овозможување кои мора да бидат напишани логички, заедно со битот за активирање на глобалниот прекин во регистарот за статус, со цел да се овозможи прекин.
Најниските адреси во меморискиот простор на Програмата се стандардно дефинирани како Вектори за ресетирање и прекинување. Комплетниот список на вектори е прикажан на „Прекинувања“ на страница 48. Списокот исто така ги одредува приоритетните нивоа на различните прекини. Колку е помала адресата, повисоко е нивото на приоритет. RESET има најголем приоритет, а следен е INT0 - Барање за надворешен прекин 0.
Кога ќе се појави прекин, бит-битот за овозможување на глобален прекин се брише и сите прекини се оневозможени. Корисничкиот софтвер може да напише логички на I-битот за да овозможи вгнездени прекини. Сите овозможени прекини потоа можат да ја прекинат тековната рутина на прекини. I-битот автоматски се поставува кога се извршува инструкција Враќање од прекин - RETI.
Во основа постојат два вида на прекини. Првиот тип е активиран од настан што го поставува знамето за прекин. За овие прекини, Бројачот на програмата е векторран на вистинскиот вектор за прекини со цел да се изврши рутина за ракување со прекини, а хардверот го чисти соодветното знаме за прекини. Знамињата за прекини може да се исчистат и со запишување на логичка позиција на бит-знаме-позициите што треба да се исчистат. Ако се појави услов за прекин додека се расчисти соодветниот бит за вклучување на прекинот, знамето за прекин ќе се постави и ќе се запомни додека не се овозможи прекинот, или знамето не се исчисти од софтвер. Слично на тоа, ако се појават еден или повеќе услови за прекин додека се расчисти битот за глобално вклучување на прекинот, соодветните знамиња на прекини ќе бидат поставени и запаметени сè додека не се постави битот за активирање на глобални прекини, а потоа ќе се извршува по редослед на приоритет.
Вториот вид на прекини ќе активира се додека е присутна состојбата на прекин. Овие прекини не мора да имаат знамиња на прекини. Ако состојбата на прекин исчезне пред да се овозможи прекинот, прекинот нема да се активира.
Кога AVR ќе излезе од прекин, тој секогаш ќе се врати во главната програма и ќе изврши уште една инструкција пред да се сервира кој било прекин што чека.
Забележете дека Регистарот на статуси не се зачувува автоматски кога внесувате рутина за прекини, ниту се обновува кога се враќате од рутина за прекини. Ова мора да се справува со софтвер.
Кога ја користите инструкцијата CLI за да ги оневозможите прекините, прекините ќе бидат веднаш оневозможени. Нема прекин по инструкцијата CLI, дури и ако се појави истовремено со CLI инструкцијата. Следните прample покажува како ова може да се искористи за да се избегнат прекини за време на временската секвенца на запишување EEPROM.
Монтажен код Прample |
во r16, SREG; чувајте ја вредноста на SREG
cli ; оневозможи прекини за време на темпирана секвенца sbi EECR, EEMPE ; започнете со пишување EEPROM sbi EECR, EEPE надвор SREG, r16; вратете ја вредноста на SREG (I-bit) |
В код прample |
знак cSREG;
cSREG = SREG; /* зачувај ја вредноста на SREG */ /* оневозможи прекини за време на темпирана секвенца */ _CLI (); EECR |= (1< ЕЕЦР | = (1 < SREG = cSREG; /* врати ја вредноста на SREG (I-bit) */ |
Кога ја користите инструкцијата SEI за да овозможите прекини, инструкцијата по SEI ќе се изврши пред сите прекини што чекаат, како што е прикажано во овој пр.ampле.
Монтажен код Прample |
сеи ; поставете го Овозможи глобален прекин
спиење; влезете во сон, чекајќи прекин ; белешка: ќе влезе во сон пред какво било чекање ; прекинувај (и) |
В код прample |
_SEI(); /* постави глобален прекин Овозможи */
_SLEEP(); /* внесете спиење, чекајќи прекин */ / * белешка: ќе влезе во сон пред какво било прекинување (и) во очекување * / |
Време на одговор на прекинување
Одговорот на извршувањето на прекинот за сите овозможени 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 циклуси на пишување / бришење. Бројачот на програмата ATtiny25 / 45/85 (широк компјутер) е широк 10/11/12 бита, со што се адресираат на локациите за меморија на програмата 1024/2048/4096. „Програма за меморија- минг “на страница 147 содржи детален опис за сериско преземање на податоци Flash со помош на пиновите SPI.
Постојаните табели може да се распределат во целиот простор на адресата на програмата за меморија (видете го описот на инструкциите за меморија LPM - Load Program).
Слика 5-1. Програмска мемориска карта
SRAM меморија на податоци
Слика 5-2 покажува како е организирана ATtiny25 / 45/85 SRAM меморијата.
Долните 224/352/607 Локации за меморија на податоци ги адресираат и регистарот File, I/O меморијата и внатрешните податоци SRAM. Првите 32 локации се однесуваат на Регистарот File, следните 64 локации стандардната I/O меморија, а последните 128/256/512 локации ги адресираат внатрешните податоци SRAM.
Петте различни режими за адресирање за покривање на податочната меморија: Директно, Индиректно со поместување, Индиректно, Непосредно со претходно намалување и Индиректно со пост-зголемување. Во Регистарот File, регистрите R26 до R31 ги прикажуваат индиректните регистри на покажувачи.
Директното адресирање го достигнува целиот простор на податоци.
Режимот Индиректно со поместување достигнува 63 локации на адреси од основната адреса дадена од Y- или Z- регистарот.
Кога користите режими на индиректно адресирање на регистри со автоматско пред-намалување и постепено зголемување, регистрите за адреси X, Y и Z се намалуваат или зголемуваат.
32 -те работни регистри за општа намена, 64 I/O регистри и 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 циклуси на пишување / бришење. Пристапот помеѓу EEPROM и процесорот е опишан во следното, специфицирајќи ги регистрите за адреси на EEPROM, регистарот на податоци на EEPROM и регистарот за контрола на EEPROM. За детали видете „Сериско преземање“ на страница 151.
Пристап за читање / запишување на EEPROM
Регистрите за пристап на EEPROM се достапни во просторот за влез / излез.
Времето за пристап до запишување за EEPROM е дадено во Табела 5-1 на страница 21. Функцијата за само-тајминг, сепак, му овозможува на корисничкиот софтвер да открие кога може да се напише следниот бајт. Ако корисничкиот код содржи инструкции што го пишуваат EEPROM, мора да се преземат некои мерки на претпазливост. Во силно филтрираните напојувања, VCC веројатно полека ќе се зголемува или паѓа
Вклучување/исклучување. Ова предизвикува уредот да работи со напон во одреден временски периодtage пониско од наведеното како минимум за употребената такт фреквенција. Види „Спречување на корупцијата на ЕЕПРОМ“ на страница 19 за детали за тоа како да се избегнат проблеми во овие ситуации.
Со цел да се спречи ненамерно пишување на EEPROM, мора да се следи специфична постапка за пишување. Се однесува на „Атомски Програмирање бајти “на страница 17 и „Програмирање со сплит бајт“ на страница 17 за детали за ова.
Кога се чита EEPROM, процесорот е запрен за четири циклуси на часовник пред да се изврши следната инструкција. Кога е напишан EEPROM, процесорот е запрен за два циклуса на часовник пред да се изврши следната инструкција.
Програмирање на атомски бајти
Користењето на програмирање за атомски бајти е наједноставниот режим. Кога пишува бајт до EEPROM, корисникот мора да ја напише адресата во регистарот EEAR и податоците во регистарот EEDR. Ако битовите на EEPMn се нула, запишувањето EEPE (во рок од четири циклуси откако е напишано EEMPE) ќе ја активира операцијата бришење / запишување. И циклусот бришење и запишување се извршува во една операција и се дава вкупното време на програмирање Табела 5-1 на страница 21. Битката EEPE останува поставена сè додека не завршат операциите за бришење и запишување. Додека уредот е зафатен со програмирање, не е можно да се прават други операции на EEPROM.
Програмирање со сплит бајт
Можно е да се подели циклусот за бришење и запишување во две различни операции. Ова може да биде корисно ако системот бара кратко време за пристап за одреден временски период (обично ако напојувањето волtagд паѓа). За да напредуваме- 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. Поранешниотamples претпоставуваат дека прекините се контролираат (на пример, со оневозможување на прекините на глобално ниво), така што нема да се појават прекини за време на извршувањето на овие функции.
Монтажен код Прample |
EEPROM_напиши:
; Почекајте за завршување на претходното пишување sbic EECR,EEPE rjmp EEPROM_write ; Поставете режим за програмирање ldi r16, (0<<EEPM1)|(0<<EEPM0) надвор од EECR, r16 ; Поставете адреса (r18: r17) во регистарот на адреси надвор од EEARH, r18 надвор EEARL, r17 ; Напишете податоци (r19) во регистарот на податоци надвор EEDR, r19 ; Напишете логично на EEMPE sbi EECR,EEMPE ; Започнете да пишувате eeprom со поставување EEPE sbi EECR,EEPE рет |
В код прample |
void EEPROM_write (непотпишан знак ucAddress, непотпишан знак ucData)
{ /* Почекајте да се заврши претходното пишување */ додека(EECR & (1< ; /* Поставете режим на програмирање */ ЕЕЦР = (0 < / * Поставете регистри за адреси и податоци * / EEAR = ucAddress; EEDR = ucData; /* Напишете логичен на EEMPE */ ЕЕЦР | = (1 < / * Започнете да пишувате eeprom со поставување EEPE * / ЕЕЦР | = (1 < } |
Следниот код прamples show собранието и C функциите за читање на EEPROM. Поранешниотamples претпоставуваат дека прекините се контролирани така што нема да има прекини при извршување на овие функции.
Монтажен код Прample |
EEPROM_прочитајте:
; Почекајте за завршување на претходното пишување sbic EECR,EEPE rjmp EEPROM_read ; Поставете адреса (r18: r17) во регистарот на адреси надвор од EEARH, r18 надвор EEARL, r17 ; Започнете да читате eeprom со пишување EERE sbi EECR,EERE ; Прочитајте податоци од регистарот на податоци во r16,EEDR рет |
В код прample |
непотпишан знак EEPROM_read(непотпишан знак ucAddress)
{ / * Почекајте за завршување на претходното пишување * / додека (ЕЕЦР & (1 < ; / * Поставете регистар на адреси * / EEAR = ucAddress; /* Започнете го eeprom читањето со пишување EERE */ ЕЕЦР | = (1 < / * Вратете ги податоците од регистарот на податоци * / враќање на EEDR; } |
Спречување на корупција во ЕЕПРОМ
За време на периоди на низок VCC, податоците на EEPROM може да се оштетат бидејќи снабдувањето волtage е премногу низок за процесорот и EEPROM да функционираат правилно. Овие прашања се исти како и за системите на ниво на табла што користат EEPROM, и треба да се применат истите решенија за дизајн.
Корупцијата на податоците на EEPROM може да биде предизвикана од две ситуации кога волtagе е премногу ниско. Прво, редовната секвенца за пишување на EEPROM бара минимален волtagд да работи правилно. Второ, самиот процесор може погрешно да изврши инструкции, доколку напојувањето волtage е премногу ниско.
Корупцијата на податоците EEPROM лесно може да се избегне со следење на оваа препорака за дизајн:
Чувајте го AVR RESET активен (низок) за време на периоди на недоволно напојување волtagд Ова може да се направи со овозможување на внатрешниот детектор за затемнување (BOD). Ако нивото на откривање на внатрешниот БОД не се совпаѓа со
потребното ниво на откривање, може да се користи надворешно заштитно коло за ресетирање на VCC со низок ниски VCC. Ако се случи ресетирање додека операцијата за запишување е во тек, операцијата за запишување ќе биде завршена под услов напојувањето волtagд е доволно.
I / O меморија
Дефиницијата за В / В простор за ATtiny25 / 45/85 е прикажана на „Резиме Резиме“ на страница 200.
Сите ATtiny25 / 45/85 I / Os и периферни уреди се сместени во I / O просторот. До сите I / O локации може да се пристапи со инструкции LD / LDS / LDD и ST / STS / STD, пренесувајќи податоци помеѓу 32 работни регистри за општа намена и простор за влез / влез. I / O регистрите во опсегот на адреси 0x00 - 0x1F се директно пристапни со малку користење на упатствата за SBI и CBI. Во овие регистри, вредноста на единечните битови може да се провери со користење на упатствата на SBIS и SBIC. Погледнете во делот за поставување инструкции за повеќе детали. Кога користите специфични команди за влез и излез, мора да се користат I / O адресите 0x00 - 0x3F. Кога се обраќате на I / O регистрите како простор за податоци користејќи ги инструкциите LD и ST, 0x20 мора да се додаде на овие адреси.
За компатибилност со идните уреди, резервираните битови треба да се запишат на нула доколку се пристапи до нив. Резервирани I / O мемориски адреси никогаш не треба да бидат напишани.
Некои статусни знамиња се бришат со тоа што ќе им напишете логично. Забележете дека упатствата за CBI и SBI ќе работат само на наведениот бит и затоа можат да се користат на регистри што содржат такви статусни знамиња. Инструкциите на CBI и SBI работат само со регистри 0x00 до 0x1F.
Регистрите за контрола на I / O и периферни уреди се објаснети во подоцнежните делови.
Регистрирај се Опис
Регистар на адреси EEARH - EEPROM
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | УШЕ8 | УШЕ |
Читај/пишувај | R | R | R | R | R | R | R | R/W | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Битови 7: 1 - Рез: резервирани битови
Овие битови се резервирани за идна употреба и секогаш ќе читаат како нула.
Битови 0 - EEAR8: Адреса на ЕЕПРОМ
Ова е најзначајниот дел од адресата EEPROM на ATtiny85. Во уредите со помалку EEPROM, односно ATtiny25 / ATtiny45, овој бит е резервиран и секогаш ќе чита нула. Почетната вредност на Регистарот за адреси на EEPROM (EEAR) е недефинирана и затоа мора да се напише соодветна вредност пред да се пристапи до EEPROM.
Регистар на адреси EEARL - EEPROM
Бит
0x1E | УШЕ7 | УШЕ6 | УШЕ5 | УШЕ4 | УШЕ3 | УШЕ2 | УШЕ1 | УШЕ0 | УШЕ |
Заден / Напиши | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Почетна вредност | X | X | X | X | X | X | X | X |
Бит 7 - EEAR7: Адреса на ЕЕПРОМ
Ова е најзначајниот дел од адресата EEPROM на ATtiny45. Во уредите со помалку EEPROM, односно ATtiny25, овој бит е резервиран и секогаш ќе чита нула. Почетната вредност на Регистарот на адреси на EEPROM (EEAR) е недефинирана и затоа мора да се напише соодветна вредност пред да се пристапи до EEPROM.
Битови 6: 0 - УШИ [6: 0]: Адреса на ЕЕПРОМ
Ова се (ниските) битови на Регистарот на адреси на 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 | ЕЕДР |
Читај/пишувај | 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 ЕЕСР - Контролен регистар ЕЕПРОМ |
|||||||||
Бит 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0х1С – | – | ЕЕПМ1 | ЕЕПМ0 | МРЗНИЧКИ | ЕЕМПЕ | ЕЕПЕ | ОВДЕ | ЕЕЦР | |
Прочитајте / напишете R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Почетна вредност 0 0 X | X | 0 | 0 | X | 0 |
Бит 7 - Рез: Резервиран Бит
Овој бит е резервиран за идна употреба и секогаш ќе чита како 0 во ATtiny25 / 45/85. За компатибилност со идните AVR уреди, секогаш запишете го овој бит на нула. По читањето, маскирајте го овој дел.
Бит 6 - Рез: Резервиран Бит
Овој бит е резервиран во ATtiny25 / 45/85 и секогаш ќе се чита како нула.
Битови 5: 4 - ЕЕПМ [1: 0]: Битови за режим на програмирање EEPROM
Поставката за битови на режимот за програмирање EEPROM дефинира кое програмско дејство ќе се активира при пишување на EEPE. Можно е да се програмираат податоци во една атомска операција (да се избрише старата вредност и да се програмира новата вредност) или да се поделат операциите Бришење и запишување во две различни операции. Времето на програмирање за различните режими е прикажано во Табела 5-1. Додека е поставено EEPE, секое пишување до EEPMn ќе се игнорира. За време на ресетирањето, битовите на EEPMn ќе се ресетираат на 0b00 освен ако EEPROM не е зафатен со програмирање.
Табела 5-1. Битови за режим EEPROM
ЕЕПМ1 | ЕЕПМ0 | Време на програмирање | Операција |
0 | 0 | 3.4 ms | Избриши и запиши во една операција (атомска операција) |
0 | 1 | 1.8 ms | Само бришење |
1 | 0 | 1.8 ms | Само напишете |
1 | 1 | – | Резервирано за идна употреба |
Бит 3 - ЕЕРИЕ: Овозможен спремен прекин на ЕЕПРОМ
Пишувањето EERIE на еден овозможува EEPROM Ready Interrupt ако е поставен I-bit во SREG. Пишувањето на EERIE на нула не го оневозможува прекинот. EEPROM Ready Interrupt генерира постојан прекин кога Нестабилната меморија е подготвена за програмирање.
Бит 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 - ЕЕРЕ: Прочитајте го ЕЕПРОМ Овозможи
EEPROM Read Enable Signal - EERE - е читаниот строб за EEPROM. Кога точната адреса е поставена во регистарот EEAR, битот EERE мора да се напише на еден за да се активира читањето на EEPROM. Пристапот за читање на EEPROM трае една инструкција, а бараните податоци се достапни веднаш. Кога ќе се прочита EEPROM, процесорот е запрен за четири циклуси пред да се изврши следната инструкција. Корисникот треба да го анкетира битот EEPE пред да започне со операцијата за читање. Ако операцијата за пишување е во тек, не е можно ниту да се прочита ЕЕПРОМ, ниту да се смени регистарот на ЕЕАР.
Опции за системски часовник и часовник
Часовни системи и нивна дистрибуција
Часовник на процесорот
Часовникот на процесорот се пренасочува кон делови од системот кои се однесуваат на работата на јадрото AVR. Прampлес на такви модули се Регистарот за општа намена File, Регистарот на статуси и меморијата за податоци што го држат покажувачот на магацинот. Запирање на часовникот на процесорот го спречува јадрото да извршува општи операции и пресметки.
I / O часовник - clkI / O
I / O часовникот го користат мнозинството I / O модули, како Тајмер / Бројач. I / O часовникот го користи и модулот за надворешен прекин, но имајте во предвид дека некои надворешни прекини се детектираат со асинхрона логика, дозволувајќи им на таквите прекини да бидат откриени дури и ако I / O часовникот е запрен.
Флеш часовник - clkFLASH
Флеш часовникот ја контролира работата на интерфејсот Флеш. Флеш часовникот обично е активен истовремено со часовникот на процесорот.
ADC часовник - clkADC
АДЦ е обезбеден со наменски домен на часовник. Ова овозможува запирање на процесорот и I / O часовниците со цел да се намали бучавата генерирана од дигиталните кола. Ова дава поточни резултати на конверзија на ADC.
Внатрешна PLL за брзо генерирање на периферни часовници - clkPCK
Внатрешната PLL во ATtiny25 / 45/85 генерира фреквенција на часовник која е 8x помножена од влезен извор. Стандардно, PLL го користи излезот на внатрешниот, 8.0 MHz RC осцилатор како извор. Алтернативно, ако е поставен битот LSM на PLLCSR, PLL ќе го користи излезот на RC осцилаторот поделен на два. Така, излезот на PLL, брзиот периферен часовник е 64 MHz. Брзиот периферен часовник, или часовник предвиден од тоа, може да се избере како извор на часовник за Timer / Counter1 или како системски часовник. Погледнете Слика 6-2. Фреквенцијата на брзиот периферен часовник се дели со два кога е поставен LSM на PLLCSR, што резултира со часовна фреквенција од 32 MHz. Забележете дека LSM не може да се постави ако PLLCLK се користи како системски часовник.
Слика 6-2. Систем за тактирање PCK.
PLL е заклучен на RC осцилаторот и прилагодувањето на RC осцилаторот преку регистарот OSCCAL ќе го прилагоди брзиот периферен часовник во исто време. Сепак, дури и ако RC осцилаторот се однесе на повисока фреквенција од 8 MHz, брзината на периферниот часовник фреквенција се заситува на 85 MHz (најлош случај) и останува да осцилира на максималната фреквенција. Треба да се напомене дека PLL во овој случај повеќе не е заклучен со часовникот на осцилаторот RC. Затоа, препорачливо е да не ги земате прилагодувањата OSCCAL на поголема фреквенција од 8 MHz со цел да се задржи PLL во правилниот опсег на работа.
Внатрешната PLL е овозможена кога:
Поставен е битот PLLE во регистарот PLLCSR.
Осигурувачот CKSEL е програмиран на „0001“.
Осигурувачот CKSEL е програмиран на „0011“.
PLLCSR битот PLOCK се поставува кога PLL е заклучен. И внатрешниот RC осцилатор и PLL се исклучени во режимите на исклучување и мирување во мирување.
Внатрешна PLL во режим на компатибилност ATtiny15
Бидејќи ATtiny25 / 45/85 е миграциски уред за корисниците на ATtiny15, постои режим на компатибилност ATtiny15 за задната компатибилност. Режимот на компатибилност ATtiny15 е избран со програмирање на осигурувачите CKSEL на '0011'.
Во режимот на компатибилност ATtiny15, фреквенцијата на внатрешниот RC осцилатор се калибрира до 6.4 MHz и факторот за множење на PLL е поставен на 4x. Погледнете Слика 6-3. Со овие прилагодувања, системот за часовник е компатибилен со ATtiny15 и добиениот брз периферен часовник има фреквенција од 25.6 MHz (иста како и во 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 kHz (види страница 28) | 0100 |
Нискофреквентен кристален осцилатор (види страница 29) | 0110 |
Кристален осцилатор / керамички резонатор (види страница 29) | 1000 – 1111 |
Резервирано | 0101, 0111 |
За сите осигурувачи „1“ значи непрограмиран додека „0“ значи програмиран.
Уредот се испраќа со избрана оваа опција.
Ова ќе го избере режимот за компатибилност ATtiny15, каде што часовникот на системот е поделен на четири, што резултира со фреквенција на часовник од 1.6 MHz. За повеќе информации, видете „Калибриран внатрешен осцилатор“ на страница 27.
Различните избори за секоја опција за часовник се дадени во следните делови. Кога процесорот ќе се разбуди од исклучување, избраниот извор на часовник се користи за да се темпира стартувањето, обезбедувајќи стабилна работа на осцилаторот пред да започне извршувањето на инструкциите. Кога процесорот започнува од ресетирање, има дополнително доцнење кое овозможува напојувањето да достигне стабилно ниво пред да започне нормалното работење. Watchdog Oscillator се користи за мерење на време на овој дел од реалното време на почетното време. Бројот на циклуси на осцилатор WDT што се користат за секој тајм-аут е прикажан во Табела 6-2.
Табела 6-2. Број на циклуси на осцилаторни чувари
Тип тајм-аут | Број на циклуси |
4 ms | 512 |
64 ms | 8K (8,192) |
Надворешен часовник
За да се вози уредот од надворешен извор на часовник, CLKI треба да се вози како што е прикажано на Слика 6-4. За да го активирате уредот на надворешен часовник, осигурувачите CKSEL мора да бидат програмирани на „00“.
Слика 6-4. Конфигурација на погонот за надворешен часовник
Кога е избран овој извор на часовник, времето на стартување се определува со SUT осигурувачи како што е прикажано на Табела 6-3.
Табела 6-3. Времиња на стартување за избор на надворешен часовник
SUT[1:0] | Време на стартување од исклучување | Дополнително одложување од ресетирање | Препорачана употреба |
00 | 6 ЦК | 14КК | Овозможено БПД |
01 | 6 ЦК | 14CK + 4 ms | Брзо растечка моќ |
10 | 6 ЦК | 14CK + 64 ms | Полека растечка моќ |
11 | Резервирано |
При примена на надворешен часовник, потребно е да се избегнат ненадејни промени во применетата фреквенција на часовникот за да се обезбеди стабилно работење на MCU. Варијација на фреквенцијата поголема од 2% од еден часовник до следниот може да доведе до непредвидливо однесување. Потребно е да се осигура дека MCU се чува во Reset за време на таквите промени во фреквенцијата на часовникот.
Забележете дека Предвремената продажба на часовникот на системот може да се користи за спроведување на промените во времето на траење на внатрешната фреквенција на часовникот, додека сепак се обезбедува стабилно работење. Се однесува на „Прескалер за системски часовник“ на страница 31 за детали.
Часовник со висока фреквенција PLL
Постои внатрешна PLL која обезбедува номинална брзина на часовникот од 64 MHz заклучена на RC осцилаторот за употреба на периферниот тајмер / бројач1 и за изворот на системскиот часовник. Кога е избран како извор на системски часовник, со програмирање на осигурувачите CKSEL на '0001', тој е поделен на четири како што е прикажано на Табела 6-4.
Табела 6-4. Режими на работа со часовник со висока фреквенција PLL
CKSEL[3:0] | Номинална фреквенција |
0001 | 16 MHz |
Кога е избран овој извор на часовник, времето на стартување се определува со SUT осигурувачи како што е прикажано на Табела 6-5.
Табела 6-5. Времиња на стартување за високофреквентен PLL часовник
SUT[1:0] | Време на стартување од исклучување | Дополнително доцнење при ресетирање на вклучувањето (VCC = 5.0V) | Препорачана употреба |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | Овозможено БПД |
Табела 6-5. Времиња на стартување за високофреквентен PLL часовник
SUT[1:0] | Време на стартување од исклучување | Дополнително доцнење при ресетирање на вклучувањето (VCC = 5.0V) | Препорачана употреба |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Брзо растечка моќ |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Полека растечка моќ |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Полека растечка моќ |
Калибриран внатрешен осцилатор
Стандардно, Внатрешниот RC осцилатор обезбедува приближен часовник од 8.0 MHz. Иако волtagе и температурата, овој часовник може многу точно да се калибрира од корисникот. Види „Калибриран внатрешен акумулатор на РК осцилатор раси ”на страница 164 и „Внатрешна брзина на осцилаторот“ на страница 192 за повеќе детали. Уредот се испраќа со програмиран CKDIV8 осигурувач. Погледнете „Прескалер за системски часовник“ на страница 31 за повеќе детали.
Овој часовник може да биде избран за системски часовник со програмирање на осигурувачи CKSEL како што е прикажано на Табела 6-6 на страница
27. Ако е избрано, тој ќе работи без надворешни компоненти. За време на ресетирањето, хардверот ја вчитува претходно програмираната вредност на калибрација во регистерот OSCCAL и со тоа автоматски го калибрира RC осцилаторот. Точноста на оваа калибрација е прикажана како Фабричка калибрација во Табела 21-2 на страница 164.
Со промена на регистарот OSCCAL од SW, видете „OSCCAL - Регистар за калибрација на осцилатор“ на страница 31, можно е да се добие поголема точност на калибрација отколку со користење на фабричка калибрација. Точноста на оваа калибрација е прикажана како корисничка калибрација во Табела 21-2 на страница 164.
Кога овој осцилатор се користи како чип часовник, Watchdog осцилаторот сепак ќе се користи за Watchdog Timer и за Reset Time-out. За повеќе информации за претходно програмираната вредност на калибрација, видете во делот „Кали- bration Bytes ”на страница 150.
Внатрешниот осцилатор исто така може да се постави да обезбедува часовник од 6.4 MHz со запишување на CKSEL осигурувачи на „0011“, како што е прикажано на Табела 6-6 подолу. Оваа поставка се однесува како режим на компатибилност ATtiny15 и е наменета да обезбеди извор на калибриран часовник на 6.4 MHz, како во ATtiny15. Во режимот на компатибилност ATtiny15, PLL го користи внатрешниот осцилатор кој работи на 6.4 MHz за да генерира периферен сигнал од 25.6 MHz за Timer / Counter1 (види „8-битен тајмер / бројач 1 ин Режим ATtiny15 ”на страница 95) Забележете дека во овој режим на работа сигналот со часовник од 6.4 MHz е секогаш поделен на четири, обезбедувајќи системски часовник од 1.6 MHz.
Табела 6-6. Внатрешни режими на работа со калибриран RC осцилатор
CKSEL[3:0] | Номинална фреквенција |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Уредот се испраќа со избрана оваа опција.
Оваа поставка ќе избере режим на компатибилност ATtiny15, каде што часовникот на системот е поделен на четири, што резултира со фреквенција на часовникот од 1.6 MHz.
Кога е избран калибрираниот внатрешен осцилатор од 8 MHz како извор на часовник, почетните времиња се определуваат со SUT осигурувачи како што е прикажано на Табела 6-7 подолу.
Табела 6-7. Времиња на стартување за внатрешен калибриран RC осцилатор часовник
SUT[1:0] | Време на стартување од исклучување | Дополнително доцнење од ресетирање (VCC = 5.0V) | Препорачана употреба |
00 | 6 ЦК | 14КК(1) | Овозможено БПД |
01 | 6 ЦК | 14CK + 4 ms | Брзо растечка моќ |
10(2) | 6 ЦК | 14CK + 64 ms | Полека растечка моќ |
11 | Резервирано |
1. Ако осигурувачот RSTDISBL е програмиран, ова време на стартување ќе се зголеми на 14CK + 4 ms за да се обезбеди внес на режим на програмирање.
2. Уредот се испраќа со избрана оваа опција.
Во режимот на компатибилност ATtiny15, времето на стартување се определува со SUT осигурувачи како што е прикажано на Табела 6-8 подолу.
Табела 6-8. Времиња на стартување за внатрешен калибриран RC осцилатор часовник (во режим ATtiny15)
SUT[1:0] | Време на стартување од исклучување | Дополнително доцнење од ресетирање (VCC = 5.0V) | Препорачана употреба |
00 | 6 ЦК | 14CK + 64 ms | |
01 | 6 ЦК | 14CK + 64 ms | |
10 | 6 ЦК | 14CK + 4 ms | |
11 | 1 ЦК | 14КК(1) |
Забелешка: Ако осигурувачот RSTDISBL е програмиран, ова време на стартување ќе се зголеми на 14CK + 4 ms за да се осигура дека може да се внесе режим на програмирање.
Сумирајќи, повеќе информации за режимот на компатибилност ATtiny15 може да се најдат во деловите „Пристаниште Б (PB5: PB0)“ на страница 2, „Внатрешна PLL во режим на компатибилност ATtiny15“ на страница 24, Вклучено „8-битен тајмер / бројач 1 во режим ATtiny15“ страница 95, „Ограничувања на дебагирањеWIRE“ на страница 140, „Бајти за калибрација“ на страница 150 и во табела „Часовник Прескалер Изберете ”на страница 33.
Внатрешен осцилатор со 128 kHz
Внатрешниот осцилатор од 128 kHz е осцилатор со мала моќност кој обезбедува часовник од 128 kHz. Фреквенцијата е номинална на 3V и 25°C. Овој часовник може да се избере како системски часовник со програмирање на осигурувачите CKSEL на „0100“.
Кога е избран овој извор на часовник, времето на стартување се определува со SUT осигурувачи како што е прикажано на Табела 6-9.
Табела 6-9. Времиња на стартување за внатрешниот осцилатор од 128 kHz
SUT[1:0] | Време на стартување од исклучување | Дополнително одложување од ресетирање | Препорачана употреба |
00 | 6 ЦК | 14КК(1) | Овозможено БПД |
01 | 6 ЦК | 14CK + 4 ms | Брзо растечка моќ |
10 | 6 ЦК | 14CK + 64 ms | Полека растечка моќ |
11 | Резервирано |
Забелешка: Ако осигурувачот RSTDISBL е програмиран, ова време на стартување ќе се зголеми на 14CK + 4 ms за да се осигура дека може да се внесе режим на програмирање.
Нискофреквентен кристален осцилатор
За да користите кристал на часовник од 32.768 kHz како извор на часовник за уредот, нискофреквентниот кристален осцилатор мора да биде избран со поставување на CKSEL осигурувачи на '0110'. Кристалот треба да биде поврзан како што е прикажано на Слика 6-5. За да пронајдете соодветна капацитивност на товарот за кристал од 32.768 kHz, ве молиме, консултирајте се со листот со податоци на производителот.
Кога е избран овој осцилатор, времето на стартување се определува со SUT осигурувачи како што е прикажано на Табела 6-10.
Табела 6-10. Времиња на стартување за избор на часовник со нискофреквентен кристален осцилатор
SUT[1:0] | Време на стартување од исклучување | Дополнително доцнење од ресетирање (VCC = 5.0V) | Препорачана употреба |
00 | 1К (1024) ЦК(1) | 4 ms | Овозможено е брзо напојување или БОД |
01 | 1К (1024) ЦК(1) | 64 ms | Полека растечка моќ |
10 | 32К (32768) ЦК | 64 ms | Стабилна фреквенција при стартување |
11 | Резервирано |
Забелешка: Овие опции треба да се користат само ако стабилноста на фреквенцијата при стартување не е важна.
Нискофреквентниот кристален осцилатор обезбедува внатрешен капацитет на оптоварување, видете Табела 6-11 на секој игла на TOSC.
Табела 6-11. Капацитет на нискофреквентен кристален осцилатор
Уред | 32 kHz Оска. Тип | Капче (Xtal1 / Tosc1) | Капче (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Оска на системот. | 16 pF | 6 pF |
Кристален осцилатор / керамички резонатор
XTAL1 и XTAL2 се влез и излез, соодветно, на превртување ampпоживо што може да се конфигурира за употреба како осцилатор на чип, како што е прикажано на Слика 6-5. Може да се користи кварцен кристал или керамички резонатор.
C1 и C2 секогаш треба да бидат еднакви и за кристалите и за резонаторите. Оптималната вредност на кондензаторите зависи од кристалот или резонаторот што се користи, количината на залутана капацитивност и електромагнетниот шум на околината. Наведени се некои првични упатства за избор на кондензатори за употреба со кристали Табела 6-12 подолу. За керамички резонатори, треба да се користат вредностите на кондензаторот дадени од производителот.
Табела 6-12. Работни режими на кристален осцилатор
CKSEL[3:1] | Фреквентен опсег (MHz) | Препорачан опсег за кондензатори C1 и C2 за употреба со кристали (pF) |
100(1) | 0.4 – 0.9 | – |
101 | 0.9 – 3.0 | 12 – 22 |
110 | 3.0 – 8.0 | 12 – 22 |
111 | 8.0 - | 12 – 22 |
Забелешки: Оваа опција не треба да се користи со кристали, само со керамички резонатори.
Осцилаторот може да работи во три различни режими, секој оптимизиран за специфичен опсег на фреквенција. Режимот на работа е избран од осигурувачите CKSEL [3: 1] како што е прикажано на Табела 6-12.
Осигурувачот CKSEL0 заедно со осигурувачите SUT [1: 0] ги избираат почетните времиња како што е прикажано на Табела 6-13.
Табела 6-13. Времиња на стартување за избор на часовник со кристален осцилатор
CKSEL0 | SUT[1:0] | Време на стартување од исклучување | Дополнително одложување од ресетирање | Препорачана употреба |
0 | 00 | 258 ЦК(1) | 14CK + 4 ms | Керамички резонатор, брзо растечка моќност |
0 | 01 | 258 ЦК(1) | 14CK + 64 ms | Керамички резонатор, полека растечка моќност |
0 | 10 | 1К (1024) ЦК(2) | 14КК | Керамички резонатор, овозможен БОД |
0 | 11 | 1К (1024) ЦК(2) | 14CK + 4 ms | Керамички резонатор, брзо растечка моќност |
1 | 00 | 1К (1024) ЦК(2) | 14CK + 64 ms | Керамички резонатор, полека растечка моќност |
1 | 01 | 16К (16384) ЦК | 14КК | Кристален осцилатор, овозможено БОД |
1 | 10 | 16К (16384) ЦК | 14CK + 4 ms | Кристален осцилатор, брзо растечка моќност |
1 | 11 | 16К (16384) ЦК | 14CK + 64 ms | Кристален осцилатор, полека растечка моќност |
Белешки
Овие опции треба да се користат само кога не работите близу до максималната фреквенција на уредот, и само ако стабилноста на фреквенцијата при стартување не е важна за апликацијата. Овие опции не се погодни за кристали.
Овие опции се наменети за употреба со керамички резонатори и ќе обезбедат стабилност на фреквенцијата при стартување. Тие исто така може да се користат со кристали кога не работат близу до максималната фреквенција на уредот и ако стабилноста на фреквенцијата при стартување не е важна за апликацијата.
Стандарден извор на часовник
Уредот се испорачува со CKSEL = "0010", SUT = "10" и програмиран CKDIV8. Според тоа, стандардното поставување на изворот на часовникот е Внатрешниот RC осцилатор кој работи на 8 MHz со најдолго време на стартување и почетна системска часовничка однапред од 8, што резултира со системски часовник од 1.0 MHz. Оваа стандардна поставка гарантира дека сите корисници можат да ја направат посакуваната поставка за извор на часовник користејќи системски или висок волуменtage програмер.
Прескалер на системски часовник
Часовникот на системот ATtiny25 / 45/85 може да се подели со поставување на „CLKPR - Регистар на рачни рачни часовници“ на страница 32. Оваа функција може да се користи за намалување на потрошувачката на енергија кога потребата за процесорска моќ е мала. Ова може да се користи со сите опции за извор на часовник и ќе влијае на фреквенцијата на часовникот на процесорот и на сите синхрони периферни уреди. clkI/O, clkADC, clkCPU и clkFLASH се поделени со фактор како што е прикажано во Табела 6-15 на страница 33.
Време на префрлување
Кога се префрлате помеѓу поставките на лекарот, System Clock Prescaler гарантира дека нема проблеми во часовникот и нема средна фреквенција поголема од ниту фреквенцијата на часовникот што одговара на претходната поставка, ниту фреквенцијата на часовникот што одговара на новата поставка.
Бројачот на бранувања што го спроведува лекарот работи со фреквенцијата на неподелениот часовник, што може да биде побрзо од фреквенцијата на часовникот на процесорот. Оттука, не е можно да се одреди состојбата на лекарот - дури и да е читлив, а точното време што е потребно за да се префрли од една во друга поделба на часовникот не може точно да се предвиди.
Од времето кога се запишуваат вредностите на CLKPS, потребно е помеѓу T1 + T2 и T1 + 2 * T2 пред да биде активна новата фреквенција на часовникот. Во овој интервал, се произведуваат 2 активни рабови на часовникот. Тука, T1 е претходниот период на часовник, а T2 е периодот што одговара на новата поставка на лекарот.
Тампон за излез на часовник
Уредот може да го испушти системскиот часовник на иглата CLKO (кога не се користи како игла XTAL2). За да се овозможи излез, осигурувачот CKOUT треба да се програмира. Овој режим е погоден кога часовникот на чипот се користи за возење други кола на системот. Забележете дека часовникот нема да се емитува за време на ресетирањето и дека нормалното работење на пин-влезот ќе се замени кога ќе се програмира осигурувачот. Внатрешен осцилатор RC, осцилатор WDT, PLL и надворешен часовник (CLKI) можат да бидат избрани кога часовникот се емитува на CLKO. Кристалните осцилатори (XTAL1, XTAL2) не можат да се користат за излез на часовникот на CLKO. Ако се користи системски прескалер за часовник, излегува поделениот системски часовник.
Регистрирај се Опис
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 и Flash за пишување, и на овие времиња на пишување ќе се влијае соодветно. Ако се напишани EEPROM или Flash, не калибрирајте на повеќе од 8.8 MHz. Во спротивно, пишувањето на EEPROM или Flash може да не успее.
Битот CAL7 го одредува опсегот на работа за осцилаторот. Поставувањето на овој бит на 0 го дава најнискиот опсег на фреквенција, поставувањето на овој бит на 1 го дава најголемиот опсег на фреквенција. Двата фреквентни опсези се преклопуваат, со други зборови, поставката на OSCCAL = 0x7F дава поголема фреквенција од OSCCAL = 0x80.
Битовите CAL [6: 0] се користат за прилагодување на фреквенцијата во избраниот опсег. Поставка 0x00 ја дава најниската фреквенција во тој опсег, а поставката 0x7F ја дава највисоката фреквенција во опсегот.
За да се обезбеди стабилно работење на MCU, вредноста на калибрацијата треба да се смени во мало. Варијација на фреквенцијата поголема од 2% од еден циклус до следниот може да доведе до непредвидливо однесување. Промените во OSCCAL не треба да надминуваат 0x20 за секоја калибрација. Потребно е да се осигура дека MCU се чува во Reset за време на таквите промени во фреквенцијата на часовникот
Табела 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 - Рез: резервирани битови
Овие битови се резервирани битови во 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. Апликацискиот софтвер мора да осигури дека има доволен фактор на поделба
избран ако избраниот извор на часовник има поголема фреквенција од максималната фреквенција на уредот во сегашните услови на работа. Уредот се испраќа со програмиран CKDIV8 осигурувач.
Табела 6-15. Избери го премерувачот на часовникот
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Фактор за поделба на часовникот |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 2 |
0 | 0 | 1 | 0 | 4 |
0 | 0 | 1 | 1 | 8 |
0 | 1 | 0 | 0 | 16 |
0 | 1 | 0 | 1 | 32 |
0 | 1 | 1 | 0 | 64 |
0 | 1 | 1 | 1 | 128 |
1 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 1 | Резервирано |
1 | 0 | 1 | 0 | Резервирано |
1 | 0 | 1 | 1 | Резервирано |
1 | 1 | 0 | 0 | Резервирано |
1 | 1 | 0 | 1 | Резервирано |
1 | 1 | 1 | 0 | Резервирано |
1 | 1 | 1 | 1 | Резервирано |
Забелешка: Премерувачот е оневозможен во режимот на компатибилност ATtiny15 и ниту пишувањето на CLKPR, ниту програмирањето на осигурувачот CKDIV8 нема никакво влијание врз системскиот часовник (кој секогаш ќе биде 1.6 MHz).
Режими на управување и напон
Високите перформанси и водечката ефикасност на кодот во индустријата ги прават микроконтролерите AVR идеален избор за апликации со мала моќност. Покрај тоа, режимите на мирување овозможуваат апликацијата да ги исклучува неискористените модули во MCU, со што се заштедува енергија. AVR обезбедува различни режими на мирување што му овозможува на корисникот да ја прилагоди потрошувачката на енергија според барањата на апликацијата.
Режими на спиење
Слика 6-1 на страница 23 ги претставува различните часовнички системи и нивната дистрибуција во ATtiny25 / 45/85. Бројката е корисна при изборот на соодветен режим на мирување. Табела 7-1 ги покажува различните режими на спиење и нивните извори на будење.
Табела 7-1. Активни домени на часовникот и извори за будење во различни режими на спиење
Активни домени на часовникот | Осцилатори | Извори за будење | ||||||||||
Режим на спиење | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Главниот извор на часовник е овозможен | INT0 и промена на пинот | СПМ / ЕЕПРОМ
Подготвени |
Услов за почеток на УСИ |
ADC | Други В/И | чувар Прекини |
Неактивен | X | X | X | X | X | X | X | X | X | X | ||
Намалување на бучавата ADC | X | X | X(1) | X | X | X | X | |||||
Намалување на напојувањето | X(1) | X | X |
Забелешка: за INT0, само прекин на ниво.
За да внесете кој било од трите режими на мирување, битот SE во MCUCR мора да биде запишан во логички еден и да се изврши инструкција SLEEP. Битовите СМ [1: 0] во регистарот MCUCR избираат кој режим на мирување (во режим на мирување, ADC намалување на шумот или паѓање на струјата) ќе се активира со инструкциите SLEEP. Погледнете Табела 7-2 за резиме.
Ако се појави прекин додека MCU е во режим на мирување, MCU се буди. MCU потоа се запира за четири циклуси, покрај времето на стартување, ја извршува рутината за прекин и го продолжува извршувањето од инструкцијата по СПИЕ. Содржината на Регистарот File и SRAM се непроменети кога уредот се буди од спиење. Ако се појави ресетирање за време на режимот на мирување, MCU се буди и работи од Ресетирање вектор.
Забелешка: дека ако прекинот активиран од ниво се користи за будење, променетото ниво мора да се задржи некое време за да се разбуди MCU (и за MCU да влезе во рутината на услугата за прекин). Види „Надворешни прекини“ на страница 49 за детали.
Режим на мирување
Кога битовите SM[1:0] се напишани на 00, инструкцијата SLEEP го тера MCU да влезе во режим на мирување, запирајќи го процесорот, но дозволувајќи им на Analog Comparator, ADC, USI, Timer/Counter, Watchdog и системот за прекини да продолжат да работат. јадење. Овој режим на мирување во основа ги запира clkCPU и clkFLASH, додека им дозволува на другите часовници да работат.
Режим на мирување му овозможува на MCU да се разбуди од надворешни активирани прекини, како и од внатрешни, како што е „Претекување на тајмерот“. Ако не е потребно будење од прекинот на аналоген компаратор, аналогниот компаратор може да се напојува надолу со поставување на ACD-бит во „ACSR - Регистар за контрола на аналогна компаратор и статус“ на страница 120. Ова ќе ја намали потрошувачката на енергија во режим на мирување. Ако ADC е овозможено, конверзијата започнува автоматски кога ќе се внесе овој режим.
Режим на намалување на бучавата ADC
Кога битовите SM[1:0] се напишани на 01, инструкцијата SLEEP го тера MCU да влезе во режимот ADC Noise Reduction, запирајќи го процесорот, но дозволувајќи му на ADC, надворешните прекини и Watchdog да продолжат да работат (ако е овозможено). Овој режим на мирување ги запира clkI/O, clkCPU и clkFLASH, додека им дозволува на другите часовници да работат.
Ова ја подобрува околината на бучавата за ADC, овозможувајќи мерења со поголема резолуција. Ако ADC е овозможено, конверзијата започнува автоматски кога ќе се внесе овој режим. Освен целосниот прекин на конверзијата ADC, само надворешно ресетирање, ресетирање на надзорник, ресетирање на кафеаво, прекин спремен за SPM / EEPROM, прекин на надворешно ниво на INT0 или прекин на промена на игла може да го разбуди MCU од ADC намалување на бучавата Мод.
Режим на исклучување
Кога битовите SM [1: 0] се запишуваат на 10, SLEEP инструкцијата го прави MCU да влезе во режим на исклучување. Во овој режим, Осцилаторот е запрен, додека надворешните прекинувања, USI започнуваат со откривање на состојбата и Watchdog продолжуваат да работат (ако е овозможено). Само надворешно ресетирање, ресетирање на набудувачот, ресетирање на кафеав аут, прекин на состојбата во USI, прекин на надворешното ниво на INT0 или прекин на промена на игла може да го разбуди MCU. Овој режим на мирување ги запира сите генерирани часовници, дозволувајќи работа само на асинхрони модули.
Оневозможи софтвер БПК
Кога детекторот за кафеав аут (BOD) е овозможен со осигурувачи BODLEVEL (види Табела 20-4 на страница 148), Управниот одбор активно го следи снабдувањето волtagд во период на спиење. Во некои уреди, можно е да се заштеди енергија со исклучување на BOD преку софтвер во режим на мирување на Power-Down. Потрошувачката на енергија во режим на мирување тогаш ќе биде на исто ниво како кога BOD е глобално оневозможен со осигурувачи.
Ако BOD е оневозможен со софтвер, функцијата BOD се исклучува веднаш по влегувањето во режим на мирување. По будењето од спиење, BOD повторно автоматски се вклучува. Ова обезбедува безбедно работење во случај нивото на VCC да се намали за време на периодот на спиење.
Кога БОД е оневозможен, времето на будење од режимот на мирување ќе биде исто како и за будење од РЕСЕТ. Корисникот мора рачно да ги конфигурира времето на будење така што референцата за bandgap има време да започне и BOD работи правилно пред MCU да продолжи со извршување на кодот. Погледнете ги SUT [1: 0] и CKSEL [3: 0] битови на осигурувачи во табелата „Низок бајт на осигурувачи“ на страница 149
Оневозможувањето на БПК е контролирано од малку БОРДИ (сон на спиење) на регистарот за контрола на MCU, видете „MCUCR - Контрола на MCU Регистрирај се “на страница 37. Пишувањето на овој бит на еден го исклучува BOD во Power-Down, додека пишувањето на нула го одржува активниот BOD. Стандардната поставка е нула, односно BOD е активен.
Пишувањето на битот BODS се контролира со временска низа и бит за овозможување, видете „MCUCR - Регистрација за контрола на MCU- ter “на страница 37.
Ограничувања
Функционалноста за оневозможување на БПП е имплементирана само во следниве уреди:
ATtiny25, ревизија Е и понова
ATtiny45, ревизија Д и понова
ATtiny85, ревизија C и понова
Ревизиите се означени на пакетот на уредот и може да се лоцираат на следниов начин:
Дното на пакетите 8P3 и 8S2
Горна страна на пакетот 20M1
Регистар за намалување на електричната енергија
Регистарот за намалување на електричната енергија (PRR), видете „PRR - Регистар за намалување на електричната енергија“ на страница 38, обезбедува метод за намалување на потрошувачката на енергија со запирање на часовникот на одделни периферни уреди. Тековната состојба на периферните уреди е замрзната и регистрите за влез / влез не можат да се читаат или запишуваат. Ресурсите што ги користи периферијата при запирање на часовникот ќе останат зафатени, па затоа периферниот уред во повеќето случаи треба да биде оневозможен пред да го запрете часовникот. Будењето на модулот, што се прави со чистење на битот во PRR, го става модулот во иста состојба како и пред исклучувањето.
Исклучувањето на модулот може да се користи во режим на мирување и активен режим за значително намалување на вкупната потрошувачка на енергија. Во сите други режими на мирување, часовникот е веќе запрен. Погледнете „Струја на напојување на I / O модулите“ на страница 177 за прampлес.
Минимизирање на потрошувачката на енергија
Постојат неколку прашања што треба да се земат предвид кога се обидувате да ја минимизирате потрошувачката на енергија во системот што се контролира со AVR. Општо, режимите на мирување треба да се користат што е можно повеќе, а режимот на мирување треба да биде избран така што да работат што помалку функции на уредот. Сите функции што не се потребни треба да бидат оневозможени. Особено, на следниве модули може да им треба посебно внимание кога се обидувате да постигнете најмала можна потрошувачка на енергија.
Конвертор од аналоген во дигитален
Ако е овозможено, ADC ќе биде овозможен во сите режими на мирување. За да заштедите енергија, ADC треба да се оневозможи пред да влезете во кој било режим на мирување. Кога ADC е исклучено и повторно вклучено, следната конверзија ќе биде продолжена конверзија. Се однесува на „Аналоген во дигитален конвертор“ на страница 122 за детали за работата на ADC.
Аналоген компаратор
Кога влегувате во режим на мирување, аналогниот споредувач треба да биде оневозможен ако не се користи. Кога влегувате во режимот за намалување на бучавата ADC, аналогниот споредувач треба да биде оневозможен. Во другите режими на мирување, аналогниот споредувач автоматски се оневозможува. Меѓутоа, ако Аналогниот споредувач е поставен да користи Интернет томtagд Упатување како влез, Аналогниот споредувач треба да биде оневозможен во сите режими на мирување. Инаку, Внатрешниот волtage Референцата ќе биде овозможена, независно од режимот на спиење. Се однесува на „Аналоген компаратор“ на страница 119 за детали за тоа како да го конфигурирате аналогниот компаратор.
Детектор за кафеава боја
Ако во апликацијата не е потребен детектор за кафеав излез, овој модул треба да се исклучи. Ако детекторот за кафеав аут е овозможен од BODLEVEL осигурувачите, тој ќе биде овозможен во сите режими на мирување, па оттука, секогаш трошете енергија. Во подлабоките режими на спиење, ова значително ќе придонесе за вкупната потрошувачка на струја. Погледнете „Браун-аут Детек- ција “на страница 41 и „Оневозможи софтвер БПК“ на страница 35 за детали за тоа како да го конфигурирате Детекторот за кафеава боја.
Внатрешен томtagд Референца
Внатрешниот томtage Повикувањето ќе биде овозможено кога е потребно за откривање на кафеава боја, аналоген споредувач или ADC. Ако овие модули се оневозможени како што е опишано во горните делови, внатрешниот волtagреференцата ќе биде оневозможена и нема да троши енергија. Кога повторно ќе се вклучи, корисникот мора да дозволи да започне референцата пред да се користи излезот. Ако референцата е вклучена во режим на мирување, излезот може да се користи веднаш. Се однесува на „Внатрешен томtage Референца “на страница 42 за детали за времето на започнување.
Тајмер за чувари
Ако тајмерот за надзор не е потребен во апликацијата, овој модул треба да биде исклучен. Ако тајмерот за надзор е овозможен, тој ќе биде овозможен во сите режими на мирување, и оттаму, секогаш трошете енергија. Во подлабоките режими на спиење, ова значително ќе придонесе за вкупната потрошувачка на струја. Се однесува на „Тајмер за чување“ на страница 42 за детали за тоа како да го конфигурирате Watcherog Timer.
Пристанишни иглички
Кога влегувате во режим на мирување, сите пинови на портите треба да се конфигурираат да користат минимална моќност. Најважно е тогаш да се осигурате дека нема иглички да придвижуваат отпорни оптоварувања. Во режимите на мирување каде што и I/O часовникот (clkI/O) и часовникот ADC (clkADC) се запрени, влезните бафери на уредот ќе бидат оневозможени. Ова осигурува дека не се троши струја
според влезната логика кога не е потребно. Во некои случаи, влезната логика е потребна за откривање на услови за будење и
тогаш ќе биде овозможено. Погледнете во делот „Режими за овозможување дигитален влез и мирување“ на страница 57 за детали за тоа кои пинови се овозможени. Ако влезниот бафер е овозможен и влезниот сигнал се остави да лебди или има ниво на аналоген сигнал блиску до VCC/2, влезниот бафер ќе користи прекумерна моќност.
За аналогните влезни пинови, баферот за дигитален влез треба постојано да биде оневозможен. Нивото на аналоген сигнал блиску до VCC/2 на влезниот пин може да предизвика значителна струја дури и во активен режим. Баферите за дигитален влез може да се оневозможат со пишување во регистарот за оневозможување на дигитален влез (DIDR0). Се однесува на „DIDR0 - Дигитален влез го оневозможува регистрирањето 0“ на страница 121 за детали.
Регистрирај се Опис
MCUCR - регистар за контрола на MCU
Регистарот за контрола на MCU содржи контролни битови за управување со напојувањето.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
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 - ОДБОРИ: БОД Спиј
Функционалноста за оневозможување на БПК е достапна само во некои уреди. Погледнете „Ограничувања“ на страница 36.
Со цел да се оневозможи БПК за време на спиењето (види Табела 7-1 на страница 34) битот BODS мора да биде запишан во еден логички. Ова е контролирано од временска низа и бит за овозможување, BODSE во MCUCR. Прво, и БОРДИТЕ и БОРДИТЕ мора да се постават на едно. Второ, во рок од четири циклуси на часовникот, БОРДИТЕ мора да се постават на еден, а БОДЕСИ да се постават на нула. Битот BODS е активен три циклуси на часовник откако ќе се постави. Упатство за спиење мора да се изврши додека БОДОВИ се активни со цел да се исклучи BOD за реалниот режим на мирување. Битот BODS се чисти автоматски по три циклуси на часовникот.
Во уредите каде што СП за спиење не е имплементиран, овој бит е неискористен и секогаш ќе чита нула.
Бит 5 - СЕ: Овозможи спиење
Битот SE мора да биде напишан на логиката еден за да може MCU да влезе во режим на мирување кога ќе се изврши инструкцијата SLEEP. За да избегнете MCU да влезе во режим на мирување, освен ако тоа е целта на програмерот, се препорачува да се напише битот Sleep Enable (SE) на еден непосредно пред извршувањето на инструкцијата SLEEP и да се исчисти веднаш по будењето.
Битови 4: 3 - СМ [1: 0]: Режим на мирување Изберете битови 1 и 0
Овие битови избираат помеѓу трите достапни режими на мирување, како што е прикажано на Табела 7-2.
Табела 7-2. Изберете режим на спиење
SM1 | SM0 | Режим на спиење |
0 | 0 | Неактивен |
0 | 1 | Намалување на бучавата ADC |
1 | 0 | Намалување на напојувањето |
1 | 1 | Резервирано |
Бит 2 - БОДЕ: Овозможи спиење на БПД
Функционалноста за оневозможување на БПК е достапна само во некои уреди. Погледнете „Ограничувања“ на страница 36.
Битот BODSE овозможува поставување на контролниот бит на BODS, како што е објаснето на описот на битот BODS. Оневозможеното БОД се контролира со временска низа.
Овој бит е неискористен во уредите каде софтверот БОД е оневозможен не е имплементиран и ќе се чита како нула во тие уреди.
PRR - Регистар за намалување на електричната енергија
Регистарот за намалување на напојувањето обезбедува метод за намалување на потрошувачката на енергија со дозволување на оневозможени сигнали на периферните часовници.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | ПРУСИ | PRADC | PRR |
Читај/пишувај | R | R | R | R | R/W | R/W | R/W | R/W | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Битови 7: 4 - Рез: резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Бит 3 - PRTIM1: Тајмер / Бројач за намалување на напојувањето1
Пишувањето на една логика на овој бит го исклучува модулот Timer / Counter1. Кога тајмерот / бројачот 1 е овозможен, работата ќе продолжи како пред исклучувањето.
Бит 2 - PRTIM0: Тајмер / Бројач за намалување на напојувањето0
Пишувањето на една логика на овој бит го исклучува модулот Timer / Counter0. Кога тајмерот / бројачот 0 е овозможен, работата ќе продолжи како пред исклучувањето.
Бит 1 - PRUSI: Намалување на напојувањето USI
Пишувањето на една логика на овој бит го исклучува USI со запирање на часовникот во модулот. Кога повторно се буди USI, треба да се иницијализира USI за да се обезбеди правилно работење.
Бит 0 - PRADC: ADC за намалување на моќноста
Да се напише логичка на овој бит, се исклучува ADC. ADC мора да се оневозможи пред да се исклучи. Забележете дека ADC часовникот го користат и некои делови од аналогниот компаратор, што значи дека аналогниот компаратор не може да се користи кога овој бит е висок.
Контрола на системот и ресетирање
Ресетирање на AVR
За време на ресетирањето, сите I / O регистри се поставени на нивните почетни вредности, а програмата започнува да се извршува од Reset Vector. Инструкциите поставени на Reset Vector мора да бидат RJMP - Relative Jump - инструкции за рутината за ракување со ресетирање. Ако програмата никогаш не дозволува извор на прекин, векторите за прекин не се користат, а на овие локации може да се постави редовен код на програмата. Дијаграмот на колото во Слика 8-1 ја покажува логиката за ресетирање. Дадени се електричните параметри на колото за ресетирање „Карактеристики на системот и ресетирање“ на страница 165.
Слика 8-1 Ресетирање на логиката
I / O портите на AVR веднаш се ресетираат во почетната состојба кога активира изворот на ресетирање. Ова не бара да работи извор на часовник.
Откако сите извори на ресетирање ќе бидат неактивни, се повикува на бројачот на одложување, со што се протега внатрешното ресетирање. Ова овозможува напојувањето да достигне стабилно ниво пред да започне нормалното работење. Периодот на истекување на бројачот на одложување го дефинира корисникот преку SUT и CKSEL осигурувачи. Различните избори за периодот на доцнење се претставени во "Часовник Извори “на страница 25.
Ресетирајте ги изворите
ATtiny25 / 45/85 има четири извори на ресетирање:
Ресетирање на вклучувањето. MCU се ресетира кога напојувањето волtage е под прагот за ресетирање на вклучување (VPOT).
Надворешно ресетирање. MCU се ресетира кога на пинот RESET е присутно ниско ниво подолго од минималната должина на пулсот.
Ресетирање на надзорниот орган. MCU се ресетира кога ќе истече периодот на Watcherog Timer и Watchdog е овозможено.
Браун-аут Ресетирај. MCU се ресетира кога напојувањето волtage VCC е под прагот за ресетирање на кафеаво-излез (VBOT) и овозможен е Детектор за кафеава излез.
Ресетирање на вклучување
Пулсот за ресетирање на напојувањето (POR) се генерира од колото за откривање на чип. Нивото на откривање е дефинирано во „Сис- Тем и ресетирај ги карактеристиките “на страница 165. POR се активира секогаш кога VCC е под нивото на детекција. Колото POR може да се користи за активирање на ресетирање на стартување, како и за откривање дефект во напојувањетоtage.
Колото за ресетирање на вклучувањето (POR) гарантира дека уредот е ресетиран од вклучување. Постигнување на прагот за ресетирање на вклучување волtage го повикува бројачот за одложување, кој одредува колку долго уредот ќе се чува во RESET по кревањето на VCC. Сигналот RESET се активира повторно, без никакво одлагање, кога VCC се намалува под нивото на детекција.
Слика 8-2. Стартување на MCU, РЕСЕТИРАЊЕ Поврзано со VCC
ВНАТРЕШНО РЕСЕТИРАЊЕ
Слика 8-3. Стартување на MCU, РЕСЕТИРАЊЕ Проширено надворешно
Надворешно ресетирање
Надворешно ресетирање се генерира со ниско ниво на иглата РЕСЕТИРАЕ доколку е овозможено. Ресетирајте ги импулсите подолги од минималната ширина на пулсот (види „Карактеристики на системот и ресетирање“ на страница 165) ќе генерира ресетирање, дури и ако часовникот не работи. Пократките импулси не се гарантирано дека ќе генерираат ресетирање. Кога применетиот сигнал ќе достигне Reset Threshold Voltage – VRST – на неговиот позитивен раб, бројачот за одложување го вклучува MCU откако ќе истече периодот на Time-out.
Слика 8-4. Надворешно ресетирање за време на работата
Откривање на кафеава боја
ATtiny25/45/85 има коло за откривање на кафеаво-излез на чип (BOD) за следење на нивото на VCC за време на работата, споредувајќи го со фиксно ниво на активирањето. Нивото на активирањето за BOD може да се избере со осигурувачите BODLEVEL. Нивото на активирањето има хистереза за да се обезбеди откривање на кафеаво-надвор без шилци. Хистерезата на нивото на детекција треба да се толкува како VBOT+ = VBOT + VHYST/2 и VBOT- = VBOT – VHYST/2.
Кога BOD е овозможено, и VCC се намалува на вредност под нивото на активирањето (VBOT-во Слика 8-5), Веднаш се активира Brown-out Reset. Кога VCC се зголемува над нивото на активирањето (VBOT+ во Слика 8-5), бројачот за доцнење го стартува MCU откако ќе истече периодот на време-аут tTOUT.
Колото BOD ќе открие пад на VCC само ако волtage останува под нивото на активирањето подолго од даденото tBOD „Карактеристики на системот и ресетирање“ на страница 165.
Ресетирање на надзорниот орган
Кога ќе истече времето на Watchdog, ќе генерира краток пулс за ресетирање со едно времетраење на CK циклус. На паѓачкиот раб на овој пулс, тајмерот за одложување започнува да го брои периодот на Time-out tTOUT. Се однесува на „Тајмер за чување“ на страница 42 за детали за работата на Watcherog Timer.
Voltage Reference Овозможи сигнали и време на стартување
Волtagреференцата има време на стартување што може да влијае на начинот на кој треба да се користи. Времето за стартување е дадено во „Карактеристики на системот и ресетирање“ на страница 165. За да заштедите енергија, упатувањето не е секогаш вклучено. Референцата е вклучена во следниве ситуации:
Кога е овозможено BOD (со програмирање на BODLEVEL [2: 0] осигурувачки битови).
Кога референцата за bandgap е поврзана со аналоген компаратор (со поставување на битот ACBG во ACSR).
Кога ADC е овозможено.
Така, кога BOD не е овозможен, откако ќе го поставите ACBG битот или ќе го овозможите ADC, корисникот секогаш мора да дозволи референцата да се стартува пред да се искористи излезот од Analog Comparator или ADC. За да се намали потрошувачката на енергија во режим на исклучување, корисникот може да ги избегне трите горенаведени услови за да осигури дека упатувањето е исклучено пред да влезе во режим на вклучување.
Тајмер за чувари
Watchdog Timer е со клокнат момент од On-chip осцилатор кој работи на 128 kHz. Со контролирање на предупредувачот на Watchdog Timer, интервалот за ресетирање на Watchdog може да се прилагоди како што е прикажано на Табела 8-3 на страница 46. Инструкциите WDR - Watchdog Reset - го ресетираат Watcherog Timer. Тајмерот за надзор исто така се ресетира кога е оневозможен и кога ќе се појави ресетирање на чип. Десет различни периоди на циклус на часовник можат да бидат избрани за да се одреди периодот на ресетирање. Ако периодот за ресетирање истече без друго Ресетирање на надзорникот, ATtiny25 / 45/85 се ресетира и извршува од Векторот за ресетирање. За детали за времето на ресетирање на надзорникот, повикајте се на Табела 8-3 на страница 46.
Watcherog Timer исто така може да се конфигурира да генерира прекин наместо ресетирање. Ова може да биде многу корисно кога го користите Watchdog за да се разбудите од Power-down.
За да се спречи ненамерно оневозможување на Watchdog или ненамерно менување на периодот на истекување, од осигурувачот WDTON се избираат две различни нивоа на безбедност како што е прикажано на Табела 8-1 Се однесуваат на „Навремени низи за промена на фигурација на тајмерот за чувари “на страница 43 за детали.
Табела 8-1. WDT конфигурација како функција на поставките на осигурувачите на WDTON
WDTON | Ниво на безбедност | Почетна држава на WDT | Како да го оневозможите WDT | Како да го смените тајм-аутот |
Непрограмиран | 1 | Оневозможено | Навремена низа | Нема ограничувања |
Програмиран | 2 | Овозможено | Секогаш овозможено | Навремена низа |
Слика 8-7. Тајмер за чувари
Временски низи за промена на конфигурацијата на тајмерот за надзор
Редоследот за промена на конфигурацијата малку се разликува помеѓу двете нивоа на безбедност. Опишани се одделни постапки за секое ниво.
Ниво на безбедност 1: Во овој режим, тајмерот Watchdog првично е оневозможен, но може да се овозможи со запишување на битот WDE на еден без никакво ограничување. Потребна е темпирана секвенца кога се оневозможува овозможен Watchdog Timer. За да се оневозможи овозможен Watchdog Timer, мора да се следи следнава постапка:
Во истата операција, напишете логичка на WDCE и WDE. Логичка мора да биде напишана на WDE во однос на претходната вредност на WDE битот.
Во следните четири циклуси на часовникот, во истата операција, напишете ги битовите WDE и WDP по желба, но со бит WDCE расчистен.
Безбедносно ниво 2: во овој режим, Watchdog Timer е секогаш овозможен, а битот WDE секогаш ќе се чита како еден. Потребна е темпирана секвенца кога се менува периодот на време-аут на Watchdog. За да го промените тајм-аутот на Watchdog, мора да се следи следнава процедура:
Во истата операција, напишете логична на WDCE и WDE. И покрај тоа што WDE е секогаш поставен, WDE мора да се напише на еден за да се започне временската низа.
Во следните четири циклуси на часовникот, во истата операција, напишете ги битовите WDP по желба, но со бит-расчистениот WDCE. Вредноста запишана на битот WDE е ирелевантна.
Код прample
Следниот код прample покажува едно собрание и една C функција за исклучување на WDT. Поранешниотample претпоставува дека прекините се контролираат (на пример, со оневозможување на прекините на глобално ниво), така што нема да се појават прекини за време на извршувањето на овие функции.
Монтажен код Прample(1) |
WDT_off:
wdr ; Исчистете WDRF во MCUSR ldi r16, (0< надвор MCUSR, r16 ; Напишете логичен на WDCE и WDE ; Чувајте ги старите поставки на лекарот за да спречите ненамерно ресетирање на надзорникот во r16, WDTCR или r16, (1< надвор WDTCR, r16 ; Исклучете го WDT ldi r16, (0< надвор WDTCR, r16 рет |
В код прample(1) |
void WDT_off (неважечки)
{ _WDR (); /* Избриши WDRF во MCUSR */ MCUSR = 0x00 /* Напишете логичен на WDCE и WDE */ WDTCR |= (1< / * Исклучете WDT * / WDTCR = 0x00; } |
Белешка: 1. Видете „Код прamples “на страница 6.
Регистрирај се Опис
MCUSR - регистар на статусот MCU
Регистарот за статус на MCU обезбедува информации за тоа кој извор на ресетирање предизвика ресетирање на MCU.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | БОРФ | ЕКСТРФ | PORF | MCUSR |
Читај/пишувај | R | R | R | R | R/W | R/W | R/W | R/W |
Почетна вредност 0 0 0 0 Погледнете го Описот на битот
Битови 7: 4 - Рез: резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Бит 3 - WDRF: Знаме за ресетирање на надзорниот орган
Овој бит е поставен ако се појави Ресетирање на надгледувачот. Битот се ресетира со ресетирање на вклучување или со запишување логичка нула на знамето.
Бит 2 - БОРФ: Знаме за ресетирање со кафеава боја
Овој бит е поставен доколку се појави Ресетирање на кафеаво пренесување. Битот се ресетира со ресетирање на вклучување или со запишување логичка нула на знамето.
Бит 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: Знаме за прекин на часовникот на надзорникот
Овој бит е поставен кога ќе се случи тајм-аут во Watcherog Timer и Watchdog Timer е конфигуриран за прекин. WDIF се расчистува со хардвер при извршување на соодветниот вектор за ракување со прекини. Алтернативно, WDIF се чисти со запишување логичка на знамето. Кога ќе се постават I-bit во SREG и WDIE, се извршува Watchdog Time-out Interrupt.
Бит 6 - WDIE: Овозможен прекин на часовникот на набудувачот
Кога овој бит е запишан на еден, WDE се брише и I-битот во Регистарот за статус е поставен, прекинувачот за времетраење на надзорот е овозможен. Во овој режим, соодветниот прекин се извршува наместо ресетирање, ако се појави тајмаут во Watcherog Timer.
Ако е поставен WDE, WDIE автоматски се брише со хардвер кога ќе се појави тајм-аут. Ова е корисно за одржување на безбедноста на Watchdog Reset додека користите прекин. Откако ќе се исчисти битот WDIE, следниот тајм-аут ќе генерира ресетирање. За да се избегне Ресетирање на надзорникот, WDIE мора да се постави по секое прекинување.
Табела 8-2. Конфигурација на тајмер на Watchdog
WDE | WDIE | Држава за чувари на тајмери | Акција за тајм-аут |
0 | 0 | Застана | Никој |
0 | 1 | Трчање | Прекини |
1 | 0 | Трчање | Ресетирање |
1 | 1 | Трчање | Прекини |
Бит 4 - WDCE: Овозможи промена на надзорникот
Овој бит мора да се постави кога битот WDE е запишан на логичка нула. Во спротивно, Watchdog нема да биде оневозможен. Откако ќе биде напишано на еден, хардверот ќе го исчисти овој бит по четири циклуси на часовникот. Погледнете го описот на битот WDE за процедура за оневозможување на Watchdog. Овој бит исто така мора да се постави при менување на битовите на лекот. Погледнете „Временски низи за промена на конфигурацијата на тајмерот за набудување “на страница 43.
Бит 3 - WDE: Овозможува чувар
Кога WDE е запишан на логички, тармерот за чување е овозможен, а ако WDE е запишан на логичка нула, функцијата Watchdog Timer е оневозможена. WDE може да се избрише само ако битот WDCE има логичко ниво едно. За да го оневозможите вклучениот тајмер за надзор, мора да се следи следната постапка:
Во истата операција, напишете логичка на WDCE и WDE. Логичката мора да се напише на WDE иако е поставена на една пред да започне операцијата за оневозможување.
Во следните четири циклуси на часовник, напишете логика 0 на WDE. Ова го оневозможува Watchdog.
Во безбедносното ниво 2, не е можно да се оневозможи Watcherog Timer, дури и со алгоритмот опишан погоре. Погледнете „Навремени низи за промена на конфигурацијата на тајмерот за надзор“ на страница 43.
Во безбедносно ниво 1, WDE е занемарен од WDRF во MCUSR. Погледнете „MCUSR - Регистар на статус на MCU“ на страница 44 за опис на WDRF. Ова значи дека WDE е секогаш поставена кога е поставен WDRF. За да го исчистите WDE, WDRF мора да се исчисти пред да го оневозможите Watchdog со постапката опишана погоре. Оваа одлика обезбедува повеќе ресетирање за време на услови што предизвикуваат дефект и безбедно стартување по дефектот.
Забелешка: Ако тајмерот за набљудување нема да се користи во апликацијата, важно е да поминете низ процедурата за оневозможување на надзорникот при иницијализацијата на уредот. Ако Watchdog е случајно овозможено, на прampно со бегство покажувач или состојба кафеава-надвор, уредот ќе се ресетира, што пак ќе доведе до ново ресетирање чувар. За да се избегне оваа ситуација, апликативниот софтвер секогаш треба да го исчисти знамето WDRF и контролниот бит WDE во рутината за иницијализација.
Битови 5, 2: 0 - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1 и 0
Битките на WDP [3: 0] го одредуваат пресликувањето на Watcherog Timer кога е овозможен Watcherog Timer. Различните вредности за пресметување и нивните соодветни периоди на истекување се прикажани во Табела 8-3.
Табела 8-3. Watchdog Timer Prescale Select
WDP3 | WDP2 | WDP1 | WDP0 | Број на циклуси на осцилатор WDT | Типично време-аут на VCC = 5.0V |
0 | 0 | 0 | 0 | 2К (2048) циклуси | 16 ms |
0 | 0 | 0 | 1 | 4К (4096) циклуси | 32 ms |
0 | 0 | 1 | 0 | 8К (8192) циклуси | 64 ms |
0 | 0 | 1 | 1 | 16К (16384) циклуси | 0.125 с |
0 | 1 | 0 | 0 | 32К (32764) циклуси | 0.25 с |
0 | 1 | 0 | 1 | 64К (65536) циклуси | 0.5 с |
0 | 1 | 1 | 0 | 128К (131072) циклуси | 1.0 с |
0 | 1 | 1 | 1 | 256К (262144) циклуси | 2.0 с |
1 | 0 | 0 | 0 | 512К (524288) циклуси | 4.0 с |
1 | 0 | 0 | 1 | 1024К (1048576) циклуси | 8.0 с |
Табела 8-3. Watchdog Timer Prescale Select (Продолжува)
WDP3 | WDP2 | WDP1 | WDP0 | Број на циклуси на осцилатор WDT | Типично време-аут на VCC = 5.0V |
1 | 0 | 1 | 0 | Резервирано(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Забелешка: 1. Ако е избрано, ќе се користи една од важечките поставки под 0b1010.
Прекинува
Овој дел ги опишува спецификите на управувањето со прекините, како што е извршено во ATtiny25 / 45/85. За општо објаснување за ракувањето со прекини AVR, повикајте се „Ресетирај и ракувај со прекини“ на страница 12.
Прекинете ги векторите во ATtiny25 / 45/85
Векторите на прекини на ATtiny25 / 45/85 се опишани во Табела 9-1подолу.
Табела 9-1. Ресетирање и прекини вектори
Вектор бр. | Адреса на програмата | Извор | Дефиниција на прекин |
1 | 0x0000 | РЕСЕТИРАЈ | Надворешен пин, ресетирање на вклучување, ресетирање на кафеаво, ресетирање на надзорниот орган |
2 | 0x0001 | ИНТ0 | Надворешно барање за прекин 0 |
3 | 0x0002 | PCINT0 | Барање за прекин на игла 0 |
4 | 0x0003 | TIMER1_COMPA | Тајмер / бројач1 Спореди натпревар А. |
5 | 0x0004 | TIMER1_OVF | Тајмер / бројач 1 Прелевање |
6 | 0x0005 | TIMER0_OVF | Тајмер / бројач 0 Прелевање |
7 | 0x0006 | EE_RDY | ЕЕПРОМ подготвен |
8 | 0x0007 | ANA_COMP | Аналоген компаратор |
9 | 0x0008 | ADC | Конверзијата на ADC заврши |
10 | 0x0009 | TIMER1_COMPB | Тајмер / бројач1 Спореди натпревар Б. |
11 | 0x000A | TIMER0_COMPA | Тајмер / бројач0 Спореди натпревар А. |
12 | 0x000B | TIMER0_COMPB | Тајмер / бројач0 Спореди натпревар Б. |
13 | 0х000С | WDT | Тајм-аут на надзорникот |
14 | 0x000D | USI_START | УСИ СТАРТ |
15 | 0x000E | USI_OVF | Претекување на УСИ |
Ако програмата никогаш не дозволи извор на прекин, векторите за прекин не се користат и на овие локации може да се постави редовен код на програмата.
Типично и општо поставување за прекинувачки векторски адреси во ATtiny25/45/85 е прикажано во програмата прampле подолу.
Монтажен код Прample | ||
.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 | ||
… |
Забелешка: Видете „Код прamples “на страница 6.
Надворешни прекини
Надворешните прекини се активираат од INT0-пинот или кој било од пиновите на PCINT [5: 0]. Внимавајте дека, доколку е овозможено, прекините ќе активираат дури и ако пиновите INT0 или PCINT [5: 0] се конфигурирани како излези. Оваа одлика обезбедува начин за генерирање на софтверски прекин. Прекините на промена на пинот PCI ќе активираат доколку има овозможено вклучување на игла на PCINT [5: 0]. PCMSK Register контролира кои иглички придонесуваат за прекини во промената на пиновите. Прекините за промена на пиновите на PCINT [5: 0] се откриваат асинхроно. Ова подразбира дека овие прекини може да се користат за будење на делот и од режими на мирување, освен режимот на мирување.
Прекините INT0 може да бидат активирани од пад или растечки раб или ниско ниво. Ова е поставено како што е наведено во спецификацијата за контролниот регистар на MCU - MCUCR. Кога прекинот INT0 е овозможен и е конфигуриран како активиран ниво, прекинот ќе активира сè додека игличката се држи на ниско ниво. Забележете дека препознавањето на прекини на паѓање или во пораст на работ на INT0 бара присуство на I / O часовник, опишано во „Часовни системи и нивна дистрибуција“ на страница 23.
Прекин на ниско ниво
Прекинот на ниско ниво на INT0 се открива асинхроно. Ова подразбира дека овој прекин може да се користи за будење на делот, исто така, од режими на мирување, освен режимот на мирување. Времето за влез / излез е запрено во сите режими на мирување, освен режимот на мирување.
Забележете дека ако прекинот активиран од ниво се користи за будење од Исклучување, потребното ниво мора да се држи доволно долго за MCU да го заврши будење за да го активира прекинот на нивото. Ако нивото исчезне пред крајот на времето за стартување, MCU сепак ќе се разбуди, но нема да се генерира прекин. Времето на стартување е дефинирано со осигурувачите SUT и CKSEL како што е опишано во „Системски часовник и опции на часовник“ на страница 23.
Ако ниското ниво на пинот за прекин е отстрането пред да се разбуди уредот, тогаш извршувањето на програмата нема да биде пренасочено кон рутината на услугата за прекинување, туку продолжете од инструкциите следејќи ја наредбата SLEEP.
Време на прекинување на прекинувачот за игла
Поранешенample на времето на прекин на промена на игла е прикажано во Слика 9-1.
Регистрирај се Опис
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 |
Битови 1: 0 - ISC0 [1: 0]: Прекини контрола на чувството 0 Бит 1 и Бит 0
Надворешниот прекин 0 се активира со надворешниот пин INT0 ако се поставени знамето на SREG I и соодветната маска за прекин. Нивото и рабовите на надворешниот пински INT0 што го активираат прекинот се дефинирани во Табела 9-2На Вредноста на пинот INT0 е sampдоведе пред откривање на рабовите. Ако е избрано прекинување на раб или префрлување, импулсите што траат подолго од еден часовен период ќе генерираат прекин. Пократките импулси не се гарантирано дека ќе генерираат прекин. Ако е избрано прекинување на ниско ниво, ниското ниво мора да се задржи до завршување на тековната инструкција за извршување за да се генерира прекин.
Табела 9-2. Прекини 0 Контрола на сетилото
ISC01 | ISC00 | Опис |
0 | 0 | Ниското ниво на INT0 генерира барање за прекин. |
0 | 1 | Секоја логична промена на INT0 генерира барање за прекин. |
1 | 0 | Паѓачкиот раб на INT0 генерира барање за прекин. |
1 | 1 | Растечкиот раб на INT0 генерира барање за прекин. |
GIMSK - Регистар на маски за општи прекини
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | ИНТ0 | PCIe | – | – | – | – | – | ГИМСК |
Читај/пишувај | R | R/W | R/W | R | R | R | R | R | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Битови 7, 4: 0 - Рез: Резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Бит 6 - INT0: Барање за надворешен прекин 0 Овозможено
Кога битот INT0 е поставен (еден) и I-битот во Регистарот за статус (SREG) е поставен (еден), надворешниот прекин на пинот е овозможен. Контролата на чувството на прекинување0 бита 1/0 (ISC01 и ISC00) во регистарот за контрола на MCU (MCUCR) дефинира дали надворешниот прекин е активиран при подигање и / или паѓање на работ на игличката или нивото на INT0. Активноста на пинот ќе предизвика барање за прекин дури и ако INT0 е конфигуриран како излез. Соодветниот прекин на Барањето за екстерен прекин 0 се извршува од векторот за прекин INT0.
Бит 5 - PCIE: Овозможи прекин на промена на игла
Кога битот PCIE е поставен (еден) и I-битот во Регистарот за статус (SREG) е поставен (еден), овозможен е прекин на промена на пинот. Секоја промена на кој било вклучен пин PCINT [5: 0] ќе предизвика прекин. Соодветниот прекин на Барањето за прекин на пин-промена е извршен од PCI Interrupt Vector. PCINT [5: 0] пиновите се овозможени индивидуално од регистарот PCMSK0.
GIFR - Регистар на знамиња за општи прекини
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | ИНТФ0 | ПЦИФ | – | – | – | – | – | GIFR |
Читај/пишувај | R | R/W | R/W | R | R | R | R | R | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Битови 7, 4: 0 - Рез: Резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Бит 6 - INTF0: Надворешно знаме за прекин 0
Кога работ или логиката се менуваат на игличката INT0 активираат барање за прекин, INTF0 станува поставено (едно). Ако битот I во SREG и битот INT0 во GIMSK се поставени (еден), MCU ќе скокне до соодветниот вектор на прекин. Знамето се брише кога се извршува рутината за прекин. Алтернативно, знамето може да се исчисти со тоа што ќе му напише логично. Ова знаме секогаш се брише кога INT0 е конфигуриран како прекин на ниво.
Бит 5 - PCIF: Знаме за прекинување на игла за игла
Кога логичката промена на кој било пин на PCINT [5: 0] активира барање за прекин, PCIF станува поставено (едно). Ако битот I во SREG и битот PCIE во GIMSK се поставени (еден), MCU ќе скокне до соодветниот вектор на прекин. Знамето се брише кога се извршува рутината за прекин. Алтернативно, знамето може да се исчисти со тоа што ќе му напише логично.
PCMSK - Регистар за маски за промена на пинови
Бит | 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 - Рез: резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Битови 5: 0 - ПЦИНТ [5: 0]: Пин за промена на активирање маска 5: 0
Секој бит PCINT [5: 0] избира дали прекинот за промена на пинот е овозможен на соодветниот I / O пин. Ако е поставен PCINT [5: 0] и битот PCIE во GIMSK е поставен, прекинувањето на промена на пинот е овозможено на соодветниот игла / влез. Ако PCINT [5: 0] е исчистен, прекинот за промена на пинот на соодветниот I / O пин е оневозможен.
В/И порти
Вовед
Сите AVR порти имаат вистинска функционалност за читање-менување-запишување кога се користат како општи дигитални влезни/излезни порти. Ова значи дека насоката на еден приклучок за игла може да се промени без ненамерно менување на правецот на која било друга пина со упатствата на SBI и CBI. Истото важи и при промена на вредноста на погонот (ако е конфигуриран како излез) или кога се овозможува/оневозможува отпорници за повлекување (доколку е конфигурирано како влез). Секој излезен тампон има симетрични карактеристики на погонот со голема мијалник и способност за извор. Возачот на иглички е доволно силен за да вози директно LED дисплеи. Сите приклучоци за пинови имаат индивидуално избирачки отпорници за повлекување со напојувањеtagе непроменлив отпор. Сите I/O пинови имаат заштитни диоди и за VCC и за заземјување како што е наведено во Слика 10-1. Се однесуваат на „Електрични карактеристики“ на страница 161 за целосна листа на параметри.
Слика 10-1. Шема еквивалентна на пиновите за влез/излез
Сите регистри и бит -референци во овој дел се напишани во општа форма. Малата буква „x“ ја претставува нумеричката буква за портата, а малата „n“ го претставува битниот број. Меѓутоа, кога се користи регистар или бит дефинирани во програма, мора да се користи прецизна форма. За прample, PORTB3 за бит бр. 3 во пристаништето Б, тука документирано генерално како PORTxn. Физичките влезни/излезни регистри и локации за битови се наведени во „Регистрирај го описот“ вклучено страница 64.
Три места за адреса на влезна меморија се доделуваат за секоја порта, по една за регистарот на податоци - PORTx, регистар на насоки на податоци - DDRx и пинови за влез на порта - PINx. Локацијата на влезот на влезната порта пристаниште се чита само, додека регистарот на податоци и регистарот на насоки на податоци се читаат / пишуваат. Меѓутоа, запишувањето логика еден до малку во регистарот PINx, ќе резултира со вклучување во соодветниот бит во регистарот на податоци. Покрај тоа, Pull-up Disable - PUD битот во MCUCR ја оневозможува функцијата за повлекување за сите пинови во сите порти кога се поставени.
Користењето на I / O портата како General Digital I / O е опишано во „Пристаништа како општ дигитален влез / излез“ на страница 53. Повеќето приклучни пинови се мултиплексираат со алтернативни функции за периферните одлики на уредот. Како е опишана секоја алтернативна функција со игла на портот „Функции на алтернативна порта“ на страница 57. Погледнете ги одделните оддели на модулот за целосен опис на алтернативните функции.
Забележете дека овозможувањето на алтернативната функција на некои од приклучните иглички не влијае на употребата на другите пинови во приклучокот како општ дигитален влез / влез.
Пристаништа како генерален дигитален I / O
Портите се двонасочни I / O порти со опционално внатрешно повлекување. Слика 10-2 покажува функционален опис на еден пински влезен влез, овде генерички наречен Pxn.
Слика 10-2. Генерален дигитален влез/излез(1)
Конфигурирање на игла
Секој приклучок за порти се состои од три бита за регистрација: DDxn, PORTxn и PINxn. Како што е прикажано на „Регистрирај го описот“ вклучено страница 64, до битовите DDxn се пристапува на I / O адресата DDRx, битовите PORTxn на I / O адресата PORTx и битовите PINxn на I / O адресата 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. Конфигурации на иглички за пристаниште
ДДхн | ПОРТхн | ПУД
(во MCUCR) |
I/O | Повлекување | Коментар |
0 | 0 | X | Влез | бр | Три-држава (Здраво-З) |
0 | 1 | 0 | Влез | Да | Pxn ќе добие извор на струја ако не. се повлече ниско. |
0 | 1 | 1 | Влез | бр | Три-држава (Здраво-З) |
1 | 0 | X | Излез | бр | Низок излез (мијалник) |
1 | 1 | X | Излез | бр | Излез висок (извор) |
Читање на вредноста на пинот
Независно од поставувањето на битот за насока на податоци DDxn, игличката на портата може да се прочита преку битот за регистрирање PINxn. Како што е прикажано на Слика 10-2, битот PINxn Register и претходната брава претставуваат синхронизатор. Ова е потребно за да се избегне метастабилност ако физичкиот пин ја смени вредноста близу до работ на внатрешниот часовник, но исто така воведува и задоцнување. Слика 10-3 покажува временски дијаграм на синхронизацијата при читање надворешно применета вредност на пинот. Максималното и минималното доцнење на ширењето се означуваат соодветно tpd, max и tpd, min.
Размислете за периодот на часовникот што започнува кратко по првиот пад на работ на системскиот часовник. Бравата е затворена кога часовникот е слаб, и оди транспарентен кога часовникот е висок, што е означено со засенчената област на сигналот „SYNC LATCH“. Вредноста на сигналот се заклучува кога часовникот на системот оди на ниско ниво. Тој е вклучен во PINxn Регистарот на следната позитивна работ на часовникот. Како што е наведено со двете стрели tpd, max и tpd, min, единечна транзиција на сигналот на пинот ќе се одложи помеѓу ½ и 1½ период на часовникот на системот во зависност од времето на тврдење.
Кога читате назад софтвер, доделена вредност на пинот, мора да се вметне упатство за nop како што е наведено во Слика 10-4. Инструкциите за аут го поставуваат сигналот „SYNC LATCH“ на позитивниот раб на часовникот. Во овој случај, доцнењето tpd преку синхронизаторот е еден системски часовник.
Следниот код прampле покажува како да ги поставите пиновите на портата B 0 и 1 високо, 2 и 3 ниско, и да ги дефинирате пиновите на приклучокот од 4 до 5 како влез со влечење доделено на иглата 4. Добиените вредности на пиновите се читаат повторно, но како што беше претходно дискутирано, вклучена е инструкција nop за да може да се прочита вредноста неодамна доделена на некои од пиновите.
Монтажен код Прample(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 како силни високи возачи.
В код прample |
непотпишан знак i;
… /* Дефинирајте повлекувања и поставете ги излезите високи */ /* Дефинирајте насоки за пиновите на портата */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Вметнете nop за синхронизација*/ _NOP (); /* Читање на пиновите на портата */ i = PINB; … |
Режими за вклучување и дигитален влез
Како што е прикажано во Слика 10-2, дигиталниот влезен сигнал може да биде clamped до заземјување на влезот на schmitt-активирачот. Сигналот означен SLEEP на сликата, е поставен од страна на контролорот за спиење на MCU во режим на исклучување за да се избегне голема потрошувачка на енергија ако некои влезни сигнали се оставени да лебдат или имаат ниво на аналоген сигнал блиску до VCC/2.
SLEEP е заменет за пристанишните пинови што се овозможени како пинови за надворешни прекини. Ако барањето за надворешен прекин не е овозможено, SLEEP е активен и за овие пинови. СПИС е исто така занемарен од разни други алтернативни функции, како што е опишано во „Функции на алтернативна порта“ на страница 57.
Ако логичкото високо ниво („еден“) е присутно на асинхрони надворешен прекинувачки пин конфигуриран како „Прекини на растечки раб, паѓачки раб или каква било логичка промена на пин“ додека надворешниот прекин не е овозможен, соодветното знаме за надворешен прекин ќе да се постави кога продолжувате од горенаведениот режим на спиење, како што е клampВклучувањето во овие режими на спиење ја произведува бараната логичка промена.
Неповрзани иглички
Доколку некои пинови се неискористени, се препорачува да се осигурате дека овие пинови имаат дефинирано ниво. И покрај тоа што повеќето дигитални влезови се оневозможени во режимите на длабок сон, како што е опишано погоре, треба да се избегнуваат пловечки влезови за да се намали потрошувачката на струја во сите други режими каде што се овозможени дигиталните влезови (Ресетирај, Активен режим и режим на мирување).
Наједноставниот метод за да се обезбеди дефинирано ниво на неискористена игла е да се овозможи внатрешно повлекување. Во овој случај, повлекувањето ќе биде оневозможено при ресетирање. Ако е важна малата потрошувачка на енергија при ресетирање, се препорачува да користите надворешно повлекување или повлекување. Не се препорачува директно поврзување на неискористените пинови со VCC или GND, бидејќи тоа може да предизвика прекумерни струи ако пинот случајно е конфигуриран како излез.
Функции на алтернативна порта
Повеќето пристанишни пинови имаат алтернативни функции како додаток на општите дигитални влезови. Слика 10-5 покажува како контролната сигнализација на портата на сигналот од поедноставената Слика 10-2 може да се заменат со алтернативни функции. Преовладувачките сигнали можеби не се присутни во сите пристанишни пинови, но сликата служи како општ опис што се применува на сите пристанишни пинови во семејството микроконтролери AVR.
Табела 10-2. Генерален опис на преовладувачките сигнали за алтернативни функции
Име на сигналот | Целосно име | Опис |
PUOE | Вклучи Откажи за повлекување | Ако овој сигнал е поставен, можноста за повлекување се контролира од сигналот PUOV. Ако овој сигнал е исчистен, повлекувањето е овозможено кога
{DDxn, PORTxn, PUD} = 0b010. |
ПУОВ | Вредност за замени на повлекувањето | Ако е поставено PUOE, повлекувањето е овозможено / оневозможено кога PUOV е поставено / расчистено, без оглед на поставката на битовите за регистрација на DDxn, PORTxn и PUD. |
ДДОЕ | Овозможи преклопување на насоката на податоците | Ако овој сигнал е поставен, Овозможениот возач за излез се контролира од сигналот DDOV. Ако овој сигнал е исчистен, возачот за излез е овозможен со битот за регистрација на DDxn. |
ДДОВ | Вредност на пренасочување на насоката на податоците | Ако е поставено DDOE, возачот за излез е овозможен / оневозможен кога е поставен / расчистен DDOV, без оглед на поставката на битот за регистрирање DDxn. |
PVOE | Овозможи преклопување на вредноста на портата | Ако е поставен овој сигнал и е овозможен Output Driver, вредноста на портата се контролира од сигналот PVOV. Ако PVOE е исчистен, и возачот за излез е овозможен, вредноста на портата се контролира од битот PORTxn Register. |
ПВОВ | Вредноста на портата ја надминува вредноста | Ако е поставено PVOE, вредноста на портата е поставена на PVOV, без оглед на поставката на битот PORTxn Register. |
ПТОЕ | Овозможи преклопување на портата | Ако е поставен PTOE, битот PORTxn Register е превртен. |
Диеое | Овозможи дигитален влез Откажи Овозможи | Ако овој бит е поставен, овозможениот дигитален влез се контролира од сигналот DIEOV. Ако овој сигнал е исчистен, овозможениот дигитален влез се одредува според состојбата на MCU (нормален режим, режим на мирување). |
ДИЕОВ | Вклучи ја вредноста за замени на дигиталниот влез | Ако е поставено DIEOE, дигиталниот влез е овозможен / оневозможен кога е наместен / расчистен DIEOV, без оглед на состојбата на MCU (Нормален режим, режим на мирување). |
DI | Дигитален влез | Ова е дигитален влез за наизменични функции. На сликата, сигналот е поврзан со излезот на шмит-тригер, но пред синхронизаторот. Освен ако дигиталниот влез не се користи како извор на часовник, модулот со алтернативна функција ќе користи свој синхронизатор. |
AIO | Аналоген влез / излез | Ова е Аналоген влез / излез до / од алтернативни функции. Сигналот е поврзан директно со подлогата и може да се користи двонасочно. |
Следните подсекции накратко ги опишуваат алтернативните функции за секоја порта и ги поврзуваат главните сигнали со алтернативната функција. Погледнете во описот на алтернативната функција за повеќе детали.
Алтернативни функции на пристаништето Б.
Пиновите на портата Б со алтернативна функција се прикажани во Табела 10-3.
Табела 10-3. Алтернативни функции за иглички на портата Б
Пристанишен пин | Алтернативна функција |
PB5 | ![]() РЕСЕТ: Ресетирај пин dW: дебагирање WIRE I / O ADC0: ADC влезен канал 0 PCINT5: Прекин за промена на игла, извор 5 |
PB4 | XTAL2: Излез на кристален осцилатор CLKO: Излезен системски часовник ADC2: ADC влезен канал 2
OC1B: Тајмер / Бројач 1 Споредете излез на натпревар Б PCINT4: прекинувач за промена на пин 0, извор 4 |
PB3 | XTAL1: Влез со кристален осцилатор CLKI: Влез со надворешен часовник ADC3: ADC влезен канал 3
OC1B: Комплементарен тајмер / бројач1 Спореди излез на натпревар Б PCINT3: прекинувач за промена на пин 0, извор 3 |
PB2 | SCK: Сериски влез на часовник ADC1: ADC влезен канал 1
T0: Тајмер / Бројач Извор на часовник USCK: USI часовник (режим на три жици) SCL: USI часовник (режим на два жица) INT0: Надворешен прекин 0 Влез PCINT0: Прекин на промена на пин 2, извор 0 |
PB1 | MISO: Главен излез на податоци за SPI / излез на податоци за робови AIN1: Аналоген компаратор, негативен влез OC0B: Тајмер / Бројач 0 Споредба на излез на натпревар B OC1A: Тајмер / Бројач 1 Споредба на излез DO: Излез на податок USI (режим на три жици) PCINT1: Прекин за промена на пин 0, извор 1 |
PB0 | MOSI :: Главен излез на податоци на SPI / Влез на податоци за робови AIN0: аналоген компаратор, позитивен влез
OC0A: Тајмер/бројач0 Излез за споредување на совпаѓање А OC1A: Комплементарен тајмер / бројач 1 Спореди натпревар со излез DI: Влез на податоци USI (режим со три жици) SDA: Внес на податоци USI (режим на два жица) AREF: Надворешна аналогна референтна PCINT0: Прекин на промена на пин 0, извор 0 |
Пристаниште Б, бит 5 - РЕСЕТ / dW / ADC0 / PCINT5
РЕСЕТ: Влезот за надворешно ресетирање е активен мал и е овозможен со непрограмирање („1“) на RSTDISBL осигурувачот. Pullup се активира и излезниот двигател и дигиталниот влез се деактивираат кога игличката се користи како игличка RESET.
dW: Кога е програмиран осигурувачот WIRE Enable (DWEN) осигурувачот и не се програмираат битови за заклучување, системот за дебагирањеWIRE во рамките на целниот уред е активиран. ПИСОТ за портување РЕСЕТ е конфигуриран како жичен-ИН (отворен мозок) двонасочен и-О пин со вклучено влечење и станува портал за комуникација помеѓу целта и емулаторот.
ADC0: аналоген во дигитален конвертор, канал 0.
PCINT5: Извор на прекин на пинот 5.
Пристаниште Б, бит 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Игла на осцилаторот за часовник со чип 2. Се користи како игла за часовник за сите извори на часовник со чип, освен внатрешниот калибрирачки RC осцилатор и надворешниот часовник. Кога се користи како пински часовник, иглата не може да се користи како пин за влез / излез. Кога користите внатрешен калибрирачки RC осцилатор или надворешен часовник како извор на часовник чип, PB4 служи како обичен пин за влез / излез.
CLKO: Разделениот системски часовник може да се емитува на пинот PB4. Поделениот системски часовник ќе се излезе ако CKOUT осигурувачот е програмиран, без оглед на поставките PORTB4 и DDB4. Исто така, ќе се излезе при ресетирање.
ADC2: аналоген во дигитален конвертор, канал 2.
OC1B: Излез Споредба на излезен натпревар: Пинот PB4 може да послужи како надворешен излез за Тајмер / Бројач1 Споредба на натпревар Б кога е конфигуриран како излез (комплет DDB4). Пинот OC1B е исто така излезен пин за функцијата на тајмерот на режимот PWM.
PCINT4: Извор на прекин на пинот 4.
Пристаниште Б, бит 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Игла за осцилатор на часовник за чипови 1. Се користи за сите извори на часовник со чипови, освен внатрешниот калибрирачки RC осцилатор. Кога се користи како пински часовник, иглата не може да се користи како пин за влез / излез.
CLKI: Внес на часовник од надворешен извор на часовник, видете „Надворешен часовник“ на страница 26.
ADC3: аналоген во дигитален конвертор, канал 3.
OC1B: Превртен излез Споредба на излез од натпревар: Пинот PB3 може да послужи како надворешен излез за Timer / Counter1 Споредба на натпревар B кога е конфигуриран како излез (комплет DDB3). Пинот OC1B е исто така превртен излезен пин за функцијата на тајмерот на режимот PWM.
PCINT3: Извор на прекин на пинот 3.
Пристаниште Б, бит 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Излезен главен часовник, игла за внесување Slave Clock за SPI канал. Кога SPI е овозможено како Slave, овој пин е конфигуриран како влез, без оглед на поставката на DDB2. Кога SPI е овозможено како господар, насоката на податоците на овој пин е контролирана од DDPB2. Кога пинот е принуден од SPI да биде влез, повлекувањето сè уште може да се контролира со битот PORTB2.
ADC1: аналоген во дигитален конвертор, канал 1.
T0: Извор на бројач на тајмер / Бројач 0.
USCK: Часовник со универзален сериски интерфејс со режим со три жици.
SCL: Двожичен режим Сериски часовник за режим USI Двожичен режим.
INT0: Надворешен извор на прекин 0.
PCINT2: Извор на прекин на пинот 2.
Пристаниште Б, бит 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Главен внес на податоци, игла за излез на Slave Data за SPI канал. Кога SPI е овозможено како господар, овој пин е конфигуриран како влез, без оглед на поставката на DDB1. Кога SPI е овозможено како Slave, насоката на податоците на овој пин е контролирана од DDB1. Кога пинот е принуден од SPI да биде влез, повлекувањето сè уште може да се контролира со битот PORTB1.
AIN1: Негативен влез на аналоген компаратор. Конфигурирајте ја игличката на портот како влез со исклучено внатрешно повлекување за да избегнете мешање на функцијата на дигиталната порта со функцијата на Аналогниот компаратор.
OC0B: Излез Споредба Излез на совпаѓање. PB1 пинот може да послужи како надворешен излез за Timer / Counter0 Споредба на натпревар Б. PB1 пинот треба да биде конфигуриран како излез (сет DDB1 (еден)) за да служи за оваа функција. Пинот OC0B е исто така излезен пин за функцијата тајмер за режим PWM.
OC1A: Излез Споредба на излезен натпревар: Пинот PB1 може да послужи како надворешен излез за Тајмер / Бројач1 Споредба на натпревар Б кога е конфигуриран како излез (комплет DDB1). Пинот OC1A е исто така излезен пин за функцијата тајмер за режим PWM.
НАПРАВИ: Трижичен режим Универзален сериски интерфејс Излез на податоци. Режим со три жици Излезот на податоци ја надминува вредноста PORTB1 и тој се придвижува до пристаништето кога е поставен битот за насока на податоците DDB1 (еден). PORTB1 сè уште овозможува повлекување, ако е внесен правецот и PORTB1 е поставен (еден).
PCINT1: Извор на прекин на пинот 1.
Пристаниште Б, бит 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: Главен излез на податоци од SPI, Внесување на Slave Data за SPI канал. Кога SPI е овозможено како Slave, овој пин е конфигуриран како влез, без оглед на поставката на DDB0. Кога SPI е овозможено како господар, насоката на податоците на овој пин е контролирана од DDB0. Кога пинот е принуден од SPI да биде влез, повлекувањето сè уште може да се контролира со битот PORTB0.
AIN0: Позитивен влез на аналоген компаратор. Конфигурирајте ја игличката на портот како влез со исклучено внатрешно повлекување за да избегнете мешање на функцијата на дигиталната порта со функцијата на Аналогниот компаратор.
OC0A: Излез Споредба Излез на совпаѓање. Пинот PB0 може да послужи како надворешен излез за Тајмер / Бројач 0 Споредете го натпреварот А кога е конфигуриран како излез (сет DDB0 (еден)). Пинот OC0A е исто така излезен пин за функцијата на тајмер за режим PWM.
OC1A: Превртен излез Споредба на излезен натпревар: Пинот PB0 може да послужи како надворешен излез за Timer / Counter1 Споредба на натпревар B кога е конфигуриран како излез (сет DDB0). Пинот OC1A е исто така превртен излезен пин за функцијата на тајмерот на режимот PWM.
SDA: Податоци за сериски интерфејси во режим на две жици.
AREF: Надворешна аналогна референца за ADC. Влезот и излезниот двигател се оневозможени на PB0 кога пинот се користи како надворешна референца или внатрешен волуменtagд Упатување со надворешен кондензатор на игла AREF.
ДИ: Внесување на податоци во режим на УСИ со три жици. Режимот со три жици USI не ги надминува нормалните функции на портата, така што пинот мора да биде конфигуриран како влез за DI функција.
PCINT0: Извор на прекин на пинот 0.
Табела 10-4 и Табела 10-5 поврзете ги алтернативните функции на портата Б со главните сигнали прикажани на Слика 10-5 на страница 58.
Табела 10-4. Надминувачки сигнали за алтернативни функции во PB[5:3]
Име на сигналот | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
ПУОВ | 1 | 0 | 0 |
ДДОЕ | RSTDISBL(1) • ДВЕН(1) | 0 | 0 |
ДДОВ | дебагирањеWire Transmit | 0 | 0 |
PVOE | 0 | Овозможи OC1B | ![]() Овозможи OC1B |
ПВОВ | 0 | OC1B | OC1B |
ПТОЕ | 0 | 0 | 0 |
Диеое | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
ДИЕОВ | ADC0D | ADC2D | ADC3D |
DI | Влез за PCINT5 | Влез за PCINT4 | Влез за PCINT3 |
AIO | ВНАТРЕШЕН влез, влез ADC0 | Влез ADC2 | Влез ADC3 |
Забелешка: кога осигурувачот е „0“ (програмиран).
Табела 10-5. Надминувачки сигнали за алтернативни функции во PB[2:0]
Име на сигналот | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
ПУОВ | 0 | 0 | 0 |
ДДОЕ | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
ДДОВ | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (СДА + ПОРТБ0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | Овозможи OC0B + Овозможи OC1A + USI_THREE_WIRE | ![]() Овозможи OC0A + Овозможи OC1A + (USI_TWO_WIRE DDB0) |
ПВОВ | 0 | OC0B + OC1A + ДО | ![]() OC0A + OC1A |
ПТОЕ | USITC | 0 | 0 |
Диеое | 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 - Пуд: Оневозможи повлекување
Кога овој бит е запишан на еден, повлекувањата во I / O портите се оневозможени дури и ако регистраторите DDxn и PORTxn се конфигурирани да овозможуваат повлекување ({DDxn, PORTxn} = 0b01). Погледнете „Конфигурирање на игла“ на страница 54 за повеќе детали во врска со оваа одлика.
ПОРТБ - Регистар на податоци за пристаниште Б.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | ПОРТБ5 | ПОРТБ4 | ПОРТБ3 | ПОРТБ2 | ПОРТБ1 | ПОРТБ0 | ПОРТБ |
Читај/пишувај | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Регистар на насоки на податоци пристаниште Б.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | ДДБ5 | ДДБ4 | ДДБ3 | ДДБ2 | ДДБ1 | ДДБ0 | DDRB |
Читај/пишувај | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Почетна вредност | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Адреса за внесување пинови на пристаниште Б
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | ПИНБ |
Читај/пишувај | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Почетна вредност | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-битен тајмер / бројач0 со PWM
Карактеристики
Две независни излезни компаративни единици
Двоен баферен излез Споредете ги регистрите
Исчистете го тајмерот за споредба на натпревар (автоматско повторно вчитување)
Без проблеми, точен фазен модулатор на ширина на пулсот (PWM)
Променлив период на PWM
Генератор на фреквенција
Три независни извори на прекини (TOV0, OCF0A и OCF0B)
Во текот наview
Тајмер / Бројач0 е модул за општа намена 8-битен Тајмер / Бројач, со две независни единици за споредба на излез и со поддршка за PWM. Овозможува точно време на извршување на програмата (управување со настани) и генерирање на бранови.
Поедноставен блок дијаграм на 8-битниот тајмер / бројач е прикажан на Слика 11-1. За вистинско поставување I / O пинови, повикајте се на „Pinout ATtiny25 / 45/85“ на страница 2. Регистрите за влез и пристап на процесорот, вклучително и битови за влез и пинови за влез и влез, се прикажани со задебелени букви. Регистарот за I / O специфични за уредот и локациите за битови се наведени во „Регистрирај опис“ на страница 77.
Регистрите за тајмер/бројач (TCNT0) и за споредување излези (OCR0A и OCR0B) се 8-битни регистри. Сигналите за барање за прекин (скратено како Int.Req. на сликата) се видливи во регистарот за знаменце за прекин на тајмерот (TIFR). Сите прекини се поединечно маскирани со Регистарот за маски за прекин на тајмер (TIMSK). TIFR и TIMSK не се прикажани на сликата.
Тајмерот/бројачот може да се тактира внатрешно, преку прескалерот или со надворешен извор на часовник на пинот T0. Логичкиот блок Избор на часовник контролира кој извор и раб на часовникот користи тајмерот/бројачот за да ја зголеми (или намали) својата вредност. Тајмерот/бројачот е неактивен кога не е избран извор на часовник. Излезот од логиката Clock Select се нарекува часовник со тајмер (clkT0).
Регистрите за споредба на излез со двојно тампон (OCR0A и OCR0B) се споредуваат со вредноста на тајмерот / бројачот во секое време. Резултатот од споредбата може да се искористи од Waveform Generator за генерирање на PWM или варијабилна излезна фреквенција на пиновите за споредба на излез (OC0A и OC0B). Погледнете „Единица за споредба на излез“ на страница 69. за детали. Настанот „Спореди натпревар“ исто така ќе го постави „Спореди знаме“ (OCF0A или OCF0B) што може да се искористи за да се генерира барање за прекин на „Излез спореди“.
Дефиниции
Многу референци за регистрирање и битови во овој дел се напишани во општа форма. Мали букви „n“ го заменуваат бројот на тајмерот / бројачот, во случајов 0. Со мала буква „x“ се заменува единицата за споредба на излез, во овој случај Споредете ја единицата А или споредете ја единицата Б. Сепак, кога користите регистер или бит, дефинирајте во програма, мора да се користи прецизната форма, т.е. TCNT0 за пристап до бројачот на Timer / Counter0 и така натаму.
Дефинициите во Табела 11-1 се користат и широко во целиот документ.
Табела 11-1. Дефиниции
Постојана | Опис |
ДНО | Бројачот достигнува ДНО кога станува 0x00 |
МАКС | Бројачот го достигнува својот максимум кога станува 0xFF (децимален 255) |
ТОП | Бројачот достигнува ТОП кога станува еднаква на најголемата вредност во низата броење. ТОП-вредноста може да се додели да биде фиксна вредност 0xFF (MAX) или вредност зачувана во регистарот OCR0A. Назначувањето зависи од начинот на работа |
Извори на тајмер / бројач на лековити препарати и часовници
Тајмерот / Бројачот може да биде такт од внатрешен или надворешен извор на часовник. Изворот на часовникот е избран со логиката Clock Select која е контролирана од битовите Clock Select (c) лоцирани во контролниот регистар Timer / Counter0 (TCCR0B).
Внатрешен извор на часовник со Прескалер
Тајмерот/бројачот 0 може да се тактира директно од системскиот часовник (со поставување на CS0[2:0] = 1). Ова обезбедува најбрза работа, со максимална фреквенција на тајмер/бројач еднаква на фреквенцијата на системскиот часовник (fCLK_I/O). Алтернативно, еден од четирите славини од предскалелерот може да се користи како извор на часовник. Претскалираниот часовник има фреквенција од било кое
Ресетирање на прескалерот
Претплатникот работи бесплатно, односно работи независно од логиката Clock Select на Тајмер/Бројач0. Бидејќи предупредувачот не влијае на изборот на тајмер/бројач на часовникот, состојбата на пред-скалата ќе има импликации за ситуациите каде што се користи прецизен часовник. Еден бившampЛе на артефакт за пред -скалирање е кога тајмерот/бројачот е овозможен и измерен со часовник од пред -скалерот (6> CS0 [2: 0]> 1). Бројот на циклуси на системски часовници од моментот кога е вклучен тајмерот до првото броење може да биде од 1 до N+1 циклуси на системски часовници, каде N е еднаков на делителот на претскајувачот (8, 64, 256 или 1024).
Можно е да го користите Ресетирање на Prescaler за синхронизација на Тајмерот / Бројачот за извршување на програмата.
Надворешен извор на часовник
Надворешен извор на часовник применет на пинот T0 може да се користи како часовник со тајмер/бројач (clkT0). Пинот T0 е sampводеше еднаш на секој системски циклус со логика за синхронизација на пиновите. Синхронизирано (сampled) потоа се пренесува сигнал
преку детекторот за работ. Слика 11-2 покажува функционален еквивалентен блок дијаграм на синхронизацијата T0 и логиката на рабниот детектор. Регистрите се тактираат на позитивниот раб на внатрешниот системски часовник (clkI/O). Бравата е транспарентна во високиот период на внатрешниот системски часовник.
Детекторот на рабовите генерира еден clkT0 пулс за секој позитивен (CS0[2:0] = 7) или негативен (CS0[2:0] = 6) раб што го детектира.
Регистрите OCR0x се двојно тампонирани кога користите кој било режим на модулација на ширина на пулсот (PWM). За нормалниот и чистиот режим на работа на Тајмер за споредба (CTC), двојното меморија е оневозможена. Двојното меморирање го синхронизира ажурирањето на OCR0x Споредете ги регистрите со горниот или долниот дел од низата за броење. Синхронизацијата спречува појава на непарни, несиметрични PWM импулси со непарна должина, а со тоа излезот е без проблеми.
Пристапот до регистарот OCR0x може да изгледа сложен, но тоа не е така. Кога е овозможено двојното баферирање, процесорот има пристап до Регистарот на тампони OCR0x, и ако е оневозможено двојното баферирање, процесорот ќе има пристап директно до OCR0x.
Споредба на излез на сила
Во режимите за производство на бранови кои не се PWM, излезот на совпаѓањето на компараторот може да биде принуден со запишување на еден во битот за споредба на излез на сила (FOC0x). Принудувањето споредба на натпревар нема да го постави знамето OCF0x или повторно да го вчита / расчисти тајмерот, но иглата OC0x ќе се ажурира како да се случил вистински натпревар споредба на споредба (поставките за битови COM0x [1: 0] дефинираат дали е поставена игла на OC0x, расчистена или вклучено).
Споредете Блокирање на натпревари со TCNT0 Напиши
Сите операции за запишување на процесорот до регистарот TCNT0 ќе го блокираат секој спореден натпревар што се случува во следниот циклус на часовник на тајмерот, дури и кога тајмерот е запрен. Оваа одлика овозможува иницијализирање на OCR0x со иста вредност како TCNT0 без активирање на прекин кога е вклучен часовникот Тајмер / Бројач.
Користење на единицата за споредба на излез
Бидејќи пишувањето на TCNT0 во кој било режим на работа ќе ги блокира сите Споредби на натпревари за еден циклус на часовник со тајмер, постојат ризици при промена на TCNT0 кога користите единица за споредба на излез, независно од тоа дали работи тајмерот / бројачот или не. Ако вредноста запишана на TCNT0 е еднаква на вредноста OCR0x, споредбата ќе се пропушти, што резултира во неправилна генерација на бранови. Слично на тоа, не ја запишувајте вредноста TCNT0 еднаква на ДНО кога бројачот се брои надолу.
Поставувањето на OC0x треба да се изврши пред да го поставите Регистарот за насоки на податоци за излезниот игла. Најлесен начин за поставување на вредноста OC0x е да се користат битови за стробо споредување на излез на сила (FOC0x) во нормален режим. Регистрите OC0x ги задржуваат своите вредности дури и кога се менуваат помеѓу режимите на генерација на бранови.
Бидете свесни дека битовите COM0x [1: 0] не се двојно тампонирани заедно со вредноста на споредбата. Промената на битовите COM0x [1: 0] ќе стапи на сила веднаш.
Споредба на излезната единица натпревар
Битите за споредување на режимот за излез (COM0x [1: 0]) битови имаат две функции. Генераторот на брановидни облици ги користи битовите COM0x [1: 0] за дефинирање на состојбата на споредба на излез (OC0x) на следниот натпревар споредба. Исто така, битовите COM0x [1: 0] го контролираат изворот на излез на пинот OC0x. Слика 11-6 покажува поедноставена шема на логиката под влијание на поставката за битови COM0x [1: 0]. Регистрите за I / O, битови за I / O и I / O пиновите на сликата се прикажани со задебелени букви. Прикажани се само деловите од општите регистри за контрола на порта I / O (DDR и PORT) кои се засегнати од битовите COM0x [1: 0]. Кога се повикувате на состојбата OC0x, упатувањето е за внатрешниот регистар OC0x, а не за пинот OC0x. Доколку се појави ресетирање на системот, Регистарот OC0x се ресетира на „0“.
Кога OC0A / OC0B е поврзан со I / O пинот, функцијата на битовите COM0A [1: 0] / COM0B [1: 0] зависи од поставката на битките WGM0 [2: 0]. Табела 11-2 ја прикажува битната функционалност COM0x [1: 0] кога битовите WGM0 [2: 0] се поставени во нормален или CTC режим (не-PWM).
Табела 11-2. Споредете го излезниот режим, режимот без PWM
COM0A1 COM0B1 | COM0A0 COM0B0 | Опис |
0 | 0 | Нормално работење на пристаништето, OC0A / OC0B е исклучен. |
0 | 1 | Вклучете OC0A / OC0B на Споредете натпревар |
1 | 0 | Исчистете OC0A / OC0B на Споредете натпревар |
1 | 1 | Поставете OC0A / OC0B на Споредете натпревар |
Табела 11-3 ја прикажува битната функционалност COM0x [1: 0] кога битовите WGM0 [2: 0] се поставени во брз режим PWM.
Табела 11-3. Споредете го излезниот режим, брзиот режим PWM(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Опис |
0 | 0 | Нормално работење на пристаништето, OC0A / OC0B е исклучен. |
0 | 1 | Резервирано |
1 | 0 | Исчистете OC0A / OC0B на Споредете натпревар, поставете OC0A / OC0B на Дното (режим на неинвертирање) |
1 | 1 | Поставете OC0A / OC0B на Споредба на натпреварот, исчистете ги OC0A / OC0B на Дното (режим на превртување) |
Забелешка: Посебен случај се јавува кога OCR0A или OCR0B е еднакво на TOP и е поставено COM0A1/COM0B1. Во овој случај, споредувачкото совпаѓање се игнорира, но поставувањето или бришењето се прави на ДОЛНО. Види „Брз режим PWM“ на страница 73 за повеќе детали.
Табела 11-4 ја прикажува битната функционалност COM0x [1: 0] кога битовите WGM0 [2: 0] се поставени во правилен PWM режим во фаза.
Табела 11-4. Споредете го режимот на излез, режимот за правилен фазен PWM(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Опис |
0 | 0 | Нормално работење на пристаништето, OC0A / OC0B е исклучен. |
0 | 1 | Резервирано |
1 | 0 | Исчистете OC0A / OC0B на Споредете натпревар кога пребројувате. Поставете OC0A / OC0B на Споредете натпревар кога сметате надолу. |
1 | 1 | Поставете OC0A / OC0B на Споредете натпревар кога пребројувате. Исчистете OC0A / OC0B на Споредете натпревар кога сметате надолу. |
Забелешка: 1. Посебен случај се јавува кога OCR0A или OCR0B е еднакво на TOP и е поставено COM0A1/COM0B1. Во овој случај, Compare Match се игнорира, но поставувањето или бришењето се врши на ТОП. Види „Правилен режим на PWM“ на страница 74 за повеќе детали.
Битови 3: 2 - Рез: резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Битови 1: 0 - WGM0 [1: 0]: Режим на генерирање бранови форми
Во комбинација со битот WGM02 пронајден во регистарот TCCR0B, овие битови ја контролираат редоследот на броење на бројачот, изворот за максимална (ТОП) контра вредност и каков вид на генерација на бранови форми треба да се користи, видете Табела 11-5. Начините на работа поддржани од единицата за тајмер / бројач се: Нормален режим (бројач), Исчистен тајмер за режим на споредување на натпревар (CTC) и два вида режими на модулација на ширина на пулсот (PWM) (види „Начини на работа“ на страница 71).
Табела 11-5. Опис на бит на режим за генерирање бранови
Режим | РГ 02 | РГ 01 | РГ 00 | Тајмер / Бројач Начин на работа | ТОП | Ажурирање на OCRx на | Поставено знаме на TOV |
0 | 0 | 0 | 0 | Нормално | 0xFF | Веднаш | МАКС(1) |
1 | 0 | 0 | 1 | PWM, фаза е точна | 0xFF | ТОП | ДНО(2) |
2 | 0 | 1 | 0 | CTC | ОКРА | Веднаш | МАКС(1) |
3 | 0 | 1 | 1 | Брз PWM | 0xFF | ДНО(2) | МАКС(1) |
4 | 1 | 0 | 0 | Резервирано | – | – | – |
5 | 1 | 0 | 1 | PWM, фаза е точна | ОКРА | ТОП | ДНО(2) |
6 | 1 | 1 | 0 | Резервирано | – | – | – |
7 | 1 | 1 | 1 | Брз PWM | ОКРА | ДНО(2) | ТОП |
Бит 7 - FOC0A: Излез на сила Споредете А.
Битот FOC0A е активен само кога битовите WGM наведуваат режим што не е PWM.
Сепак, за да се обезбеди компатибилност со идните уреди, овој бит мора да се постави на нула кога TCCR0B е запишан кога работи во режим PWM. Кога пишувате логичен на битот FOC0A, веднаш се споредува натпревар споредба на единицата за производство на бранови. Излезот OC0A се менува во согласност со поставките за битови COM0A [1: 0]. Забележете дека битот FOC0A е имплементиран како строб. Затоа, вредноста присутна во битовите COM0A [1: 0] е таа што го одредува ефектот на присилната споредба.
Строб FOC0A нема да создаде прекин, ниту ќе го исчисти тајмерот во режимот CTC користејќи OCR0A како ВРВ. Битот FOC0A секогаш се чита како нула.
Бит 6 - FOC0B: Споредба на излез на сила Б.
Битот FOC0B е активен само кога битовите WGM наведуваат режим што не е PWM.
Сепак, за да се обезбеди компатибилност со идните уреди, овој бит мора да се постави на нула кога TCCR0B е запишан кога работи во режим PWM. Кога пишувате логичен на битот FOC0B, веднаш се споредува натпревар споредба на единицата за генерација на бранови. Излезот OC0B се менува според поставките за битови COM0B [1: 0]. Забележете дека битот FOC0B е имплементиран како строб. Затоа, вредноста е присутна во битовите COM0B [1: 0] што го одредува ефектот на присилната споредба.
Строб FOC0B нема да создаде прекин, ниту ќе го исчисти тајмерот во режимот CTC користејќи OCR0B како ВРВ.
Битот FOC0B секогаш се чита како нула.
Битови 5: 4 - Рез: резервирани битови
Овие битови се резервирани битови во ATtiny25 / 45/85 и секогаш ќе читаат како нула.
Бит 3 - WGM02: Режим на генерирање на брановидни форми
Погледнете го описот во „TCCR0A - Регистар на тајмер / контролна бројач А“ на страница 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 (Од prescaler) |
0 | 1 | 1 | clkI/O/64 (Од prescaler) |
1 | 0 | 0 | clkI/O/256 (Од prescaler) |
1 | 0 | 1 | clkI/O/1024 (Од prescaler) |
1 | 1 | 0 | Надворешен извор на часовник на игла T0. Часовник на работ што паѓа. |
1 | 1 | 1 | Надворешен извор на часовник на игла T0. Часовник на работ што се крева. |
Ако се користат режими на надворешен пин за Timer / Counter0, транзициите на игличката T0 ќе го матираат бројачот дури и ако пинот е конфигуриран како излез. Оваа одлика овозможува софтверска контрола на броењето.
Бројам и споредувајте единици
Општата операција Тајмер / Бројач1 е опишана во асинхрониот режим и операцијата во синхрониот режим се споменува само ако има разлики помеѓу овие два режима. Слика 12-2 покажува блок-дијаграм за регистрирање на синхронизација на Тајмер / Бројач 1 и одложувања на синхронизацијата помеѓу регистрите. Забележете дека сите детали за собирање часовник не се прикажани на сликата. Вредностите на регистарот Тајмер / Бројач1 поминуваат низ внатрешните регистри за синхронизација, што предизвикува одложување на синхронизацијата на влезот, пред да влијае на работата на бројачот. Регистрите TCCR1, GTCCR, OCR1A, OCR1B и OCR1C може да се прочитаат веднаш по пишувањето на регистерот. Вредностите за читање назад се одложени за регистерот на Тајмер / Бројач1 (TCNT1) и знамињата (OCF1A, OCF1B и TOV1), поради синхронизацијата на влезот и излезот.
Тајмерот / Бројачот1 се одликува со висока резолуција и употреба со голема точност со пониски можности за предискажување. Може исто така да поддржува два точни, голема брзина, 8-битни модулатори на пулсна ширина, користејќи брзина на часовникот до 64 MHz (или 32 MHz во режим на мала брзина). Во овој режим, Тајмер / Бројач1 и регистрите за споредба на излезот служат како двојни самостојни PWM со не-преклопливи не-превртени и превртени излези. Се однесува на страница 86 за детален опис на оваа функција. Слично на тоа, големите можности за претскажување ја прават оваа единица корисна за функции со помала брзина или функции за точен тајминг со ретки дејства.
Слика 12-2. Тајмер/бројач 1 Синхронизација Регистар Блок дијаграм.
Тајмер / Бројач1 и лекарот дозволуваат работење на процесорот од кој било извор на часовник, додека лекарот работи на брз 64 MHz (или 32 MHz во режим на мала брзина) PCK часовник во асинхрон режим.
Забележете дека фреквенцијата на часовникот на системот мора да биде помала од една третина од PCK фреквенцијата. Механизмот за синхронизација на асинхрониот тајмер / бројач1 има потреба од најмалку два рабови на PCK кога системот на часовникот е висок. Ако фреквенцијата на системскиот часовник е превисока, ризик е да се изгубат податоците или контролните вредности.
Следното Слика 12-3 го покажува блок-дијаграмот за Тајмер / Бројач1.
Табела 12-1. Режим за споредување Изберете во режим PWM
COM1x1 | COM1x0 | Ефект врз излезот Споредете ги игличките |
0 | 0 | OC1x не е поврзан. OC1x не е поврзан. |
0 | 1 | OC1x расчисти со споредувањето на совпаѓањето. Поставете когаTCNT1 = 00 $. OC1x се постави на споредување на совпаѓањето. Се расчистува кога TCNT1 = 00 $. |
1 | 0 | OC1x расчисти со споредувањето на совпаѓањето. Поставете кога TCNT1 = 00 $. OC1x не е поврзан. |
1 | 1 | OC1x Поставете меч за споредување. Се расчистува кога TCNT1 = 00 $. OC1x не е поврзан. |
Карактеристики на ADC
Табела 21-8. Карактеристики на ADC, канали со еден крај. TA = -40°C до +85°C
Симбол | Параметар | Состојба | мин | Тип | Макс | Единици |
Резолуција | 10 | Битови | ||||
Апсолутна точност (Вклучувајќи INL, DNL и квантизација, грешки во добивање и офсет) | VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC часовник = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz Режим на намалување на бучавата |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC часовник = 1 MHz Режим на намалување на бучавата |
2.5 | LSB | ||||
Интегрална нелинеарност (INL) (Точност по поместување и калибрација на добивка) | VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz |
1 | LSB | |||
Диференцијална нелинеарност (ДНЛ) | VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz |
0.5 | LSB | |||
Добијте грешка | VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz |
2.5 | LSB | |||
Грешка во офсет | VREF = 4V, VCC = 4V,
ADC часовник = 200 kHz |
1.5 | LSB | |||
Време на реализација | Бесплатна реализација на реализација | 14 | 280 | μs | ||
Фреквенција на часовникот | 50 | 1000 | kHz | |||
VIN | Влез волуменtage | ГНД | VREF | V | ||
Внесен опсег | 38.4 | kHz | ||||
АРЕФ | Надворешна референца томtage | 2.0 | VCC | V | ||
VINT | Внатрешен томtagд Референца | 1.0 | 1.1 | 1.2 | V | |
Внатрешна референца 2.56V (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
ДОЖД | Аналоген отпор на влез | 100 | MΩ | |||
Излез на ADC | 0 | 1023 | LSB |
Забелешка: 1. Вредностите се само упатства.
Табела 21-9. Карактеристики на ADC, диференцијални канали (униполарен режим). TA = -40°C до +85°C
Симбол | Параметар | Состојба | мин | Тип | Макс | Единици |
Резолуција | Добивка = 1x | 10 | Битови | |||
Добивка = 20x | 10 | Битови | ||||
Апсолутна точност (Вклучувајќи INL, DNL и
Грешки во квантизација, добивка и неутрализирање) |
Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
10.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
20.0 | LSB | ||||
Интегрална нелинеарност (INL) (точност по офсет и калибрација на добивка) | Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
4.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
10.0 | LSB | ||||
Добијте грешка | Добивка = 1x | 10.0 | LSB | |||
Добивка = 20x | 15.0 | LSB | ||||
Грешка во офсет | Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
3.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
4.0 | LSB | ||||
Време на реализација | Бесплатна реализација на реализација | 70 | 280 | μs | ||
Фреквенција на часовникот | 50 | 200 | kHz | |||
VIN | Влез волуменtage | ГНД | VCC | V | ||
VDIFF | Влезен диференцијал Voltage | VREF/Gin | V | |||
Внесен опсег | 4 | kHz | ||||
АРЕФ | Надворешна референца томtage | 2.0 | VCC - 1.0 | V | ||
VINT | Внатрешен томtagд Референца | 1.0 | 1.1 | 1.2 | V | |
Внатрешна референца 2.56V (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Референтен влезен отпор | 32 | kΩ | |||
ДОЖД | Аналоген отпор на влез | 100 | MΩ | |||
Излез за конверзија на ADC | 0 | 1023 | LSB |
Забелешка: Вредностите се само упатства.
Табела 21-10. Карактеристики на ADC, диференцијални канали (биполарен режим). TA = -40°C до +85°C
Симбол | Параметар | Состојба | мин | Тип | Макс | Единици |
Резолуција | Добивка = 1x | 10 | Битови | |||
Добивка = 20x | 10 | Битови | ||||
Апсолутна точност (Вклучувајќи INL, DNL и
Грешки во квантизација, добивка и неутрализирање) |
Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
8.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
8.0 | LSB | ||||
Интегрална нелинеарност (INL) (точност по офсет и калибрација на добивка) | Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
4.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
5.0 | LSB | ||||
Добијте грешка | Добивка = 1x | 4.0 | LSB | |||
Добивка = 20x | 5.0 | LSB | ||||
Грешка во офсет | Добивка = 1x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
3.0 | LSB | |||
Добивка = 20x
VREF = 4V, VCC = 5V ADC часовник = 50 - 200 kHz |
4.0 | LSB | ||||
Време на реализација | Бесплатна реализација на реализација | 70 | 280 | μs | ||
Фреквенција на часовникот | 50 | 200 | kHz | |||
VIN | Влез волуменtage | ГНД | VCC | V | ||
VDIFF | Влезен диференцијал Voltage | VREF/Gin | V | |||
Внесен опсег | 4 | kHz | ||||
АРЕФ | Надворешна референца томtage | 2.0 | VCC - 1.0 | V | ||
VINT | Внатрешен томtagд Референца | 1.0 | 1.1 | 1.2 | V | |
Внатрешна референца 2.56V (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Референтен влезен отпор | 32 | kΩ | |||
ДОЖД | Аналоген отпор на влез | 100 | MΩ | |||
Излез за конверзија на ADC | -512 | 511 | LSB |
Резиме на множеството инструкции
Мнемоник | Операнди | Опис | Операција | Знамиња | # Часовници |
Аритметички и логички упатства | |||||
ДОДАЈ | Ред, Рр | Додадете два регистри | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Ред, Рр | Додадете со носете две регистри | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
АДИВ | Рдл, К. | Додадете веднаш во Word | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
ПОД | Ред, Рр | Одземете два регистри | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
СУБИ | Рд, К. | Одземете ја Константа од регистарот | Rd ← Rd – К | Z, C, N, V, H | 1 |
SBC | Ред, Рр | Одземете со Носете два регистри | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Рд, К. | Одземете со Carry Constant од Рег. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Рдл, К. | Одземете Веднаш од Word | Rdh:Rdl ← Rdh:Rdl – К | Z, C, N, V, S | 2 |
И | Ред, Рр | Логички И регистри | Rd ← Rd ∙ Rr | З, Н, В. | 1 |
АНДИ | Рд, К. | Логично И регистрирај се и постојан | Rd ← Rd ∙ К | З, Н, В. | 1 |
OR | Ред, Рр | Логички ИЛИ регистри | Rd ← Rd v Rr | З, Н, В. | 1 |
ОРИ | Рд, К. | Логично ИЛИ регистар и постојан | Rd ← Rd против К | З, Н, В. | 1 |
EOR | Ред, Рр | Ексклузивни ИЛИ регистри | Rd ← Rd ⊕ Rr | З, Н, В. | 1 |
COM | Rd | Еден е дополнување | Rd ← 0xFF − Rd | З, Ц, Н, В. | 1 |
НЕГ | Rd | Надополнување на двајца | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
СБР | Рд, К. | Поставете Бит (и) во Регистрирај се | Rd ← Rd против К | З, Н, В. | 1 |
CBR | Рд, К. | Исчистете ги битовите во Регистрирај се | Rd ← Rd ∙ (0xFF – K) | З, Н, В. | 1 |
INC | Rd | Зголемување | Rd ← Rd + 1 | З, Н, В. | 1 |
ДЕК | Rd | Опаѓање | Rd ← Rd − 1 | З, Н, В. | 1 |
ТСТ | Rd | Тест за нула или минус | Rd ← Rd ∙ Rd | З, Н, В. | 1 |
CLR | Rd | Исчисти регистар | Rd ← Rd ⊕ Rd | З, Н, В. | 1 |
SER | Rd | Постави Регистрирај се | Rd ← 0xFF | Никој | 1 |
УПАТСТВА ЗА ГРАНИЦА | |||||
РЈМП | k | Релативен скок | Компјутер ← компјутер + k + 1 | Никој | 2 |
IJMP | Индиректно скокнување до (З) | компјутер ← З | Никој | 2 | |
ПОВИКИ | k | Релативен повик на потпрограма | Компјутер ← компјутер + k + 1 | Никој | 3 |
ИКАЛ | Индиректен повик до (З) | компјутер ← З | Никој | 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 |
CPC | Rd, Rr | Споредете со Носете | Rd − Rr − C | Z, N, V, C, H | 1 |
ИПК | Рд, К. | Споредете Регистрирај се со Непосредно | Rd - К | Z, N, V, C, H | 1 |
SBRC | Рр, б | Прескокнете ако Бит во регистраторот е расчистен | ако (Rr(b)=0) PC ← PC + 2 или 3 | Никој | 1 |
СБРС | Рр, б | Прескокнете ако е поставено Bit in Register | ако (Rr(b)=1) PC ← PC + 2 или 3 | Никој | 1 |
СБИЦ | П, б | Прескокнете ако Бит во I / O регистриран е расчистен | ако (P(b)=0) PC ← PC + 2 или 3 | Никој | 1 |
СБИС | П, б | Прескокнете ако е поставен Bit во I / O регистар | ако (P(b)=1) PC ← PC + 2 или 3 | Никој | 1 |
BRBS | с, к | Подружница ако е поставено статусно знаме | ако (SREG(s) = 1) тогаш PC←PC+k + 1 | Никој | 1/2 |
BRBC | с, к | Подружница ако Статуското знаме е расчистено | ако (SREG(s) = 0) тогаш PC←PC+k + 1 | Никој | 1/2 |
БРЕК | k | Гранка ако е еднаква | ако (Z = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
БРНЕ | k | Филијала ако не е еднаква | ако (Z = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRCS | k | Подружница ако постави носење | ако (C = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRCC | k | Подружница ако носете расчистена | ако (C = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
БРСХ | 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 |
BRPL | 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 | Подружница ако е поставено знаме за половина носење | ако (H = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRHC | k | Подружница ако се исчисти знамето за половина носење | ако (H = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
БРТС | k | Подружница ако е поставено знаме Т. | ако (T = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRTC | k | Подружница доколку се исчисти знамето Т. | ако (T = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRVS | k | Разгранете ако е поставено знаме за прелевање | ако (V = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
BRVC | k | Разгранете се ако се расчисти знамето за прелевање | ако (V = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
ПОМИНЕТЕ | k | Подружница ако е овозможено прекинување | ако ( I = 1) тогаш PC ← PC + k + 1 | Никој | 1/2 |
МЕСТА | k | Подружница ако прекинот е оневозможен | ако ( I = 0) тогаш PC ← PC + k + 1 | Никој | 1/2 |
УПАТСТВА ЗА БИТ И БИТ-ТЕСТ | |||||
SBI | П, б | Поставете Бит во I / O регистар | I/O(P,b) ← 1 | Никој | 2 |
CBI | П, б | Исчисти бит во регистарот за I / O | I/O(P,b) ← 0 | Никој | 2 |
LSL | Rd | Logical Shift Left | Rd(n+1) ← Rd(n), Rd(0) ← 0 | З, Ц, Н, В. | 1 |
LSR | Rd | Логичко поместување надесно | Rd(n) ← Rd(n+1), Rd(7) ← 0 | З, Ц, Н, В. | 1 |
УЛОГАТА | Rd | Ротирајте лево преку носете | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | З, Ц, Н, В. | 1 |
ROR | Rd | Ротирајте десно преку носете | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | З, Ц, Н, В. | 1 |
ASR | Rd | Аритметичка промена десно | Rd(n) ← Rd(n+1), n=0..6 | З, Ц, Н, В. | 1 |
Мнемоник | Операнди | Опис | Операција | Знамиња | # Часовници |
SWAP | Rd | Трампа Нилблс | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Никој | 1 |
BSET | s | Сет за знамиња | SREG(и) ← 1 | СРЕГ (и) | 1 |
BCLR | s | Знаме јасно | SREG(и) ← 0 | СРЕГ (и) | 1 |
БСТ | Рр, б | Бит-продавница од Регистрирај се до Т. | T ← Rr(b) | T | 1 |
BLD | Rd, б | Бит товар од Т до Регистрација | Rd(b) ← Т | Никој | 1 |
ДИК | Поставете Носи | C ← 1 | C | 1 | |
CLC | Исчисти носеј | C ← 0 | C | 1 | |
SEN | Поставете негативно знаме | 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 | |
СЕВ | Поставете преполнување на дополнување на Twos. | V ← 1 | V | 1 | |
CLV | Исчистете го преполнувањето на дополнувањата на два | V ← 0 | V | 1 | |
ПОСТАВЕТЕ | Поставете Т во СРЕГ | Т ← 1 | T | 1 | |
CLT | Исчисти Т во СРЕГ | Т ← 0 | T | 1 | |
СЕХ | Поставете знаме за половина носење во СРЕГ | H ← 1 | H | 1 | |
CLH | Исчистете го знамето за половина носење во СРЕГ | H ← 0 | H | 1 | |
УПАТСТВА ЗА ПРЕНОС НА ПОДАТОЦИ | |||||
MOV | Ред, Рр | Движете се помеѓу регистрите | Rd ← Rr | Никој | 1 |
MOVW | Ред, Рр | Копирајте Регистрирај збор | Rd+1:Rd ← Rr+1:Rr | Никој | 1 |
LDI | Рд, К. | Вчитај веднаш | Rd ← К | Никој | 1 |
LD | Rd, X | Вчитај индиректно | Rd ← (X) | Никој | 2 |
LD | Rd, X + | Вчитај индиректни и пост-инк. | Rd ← (X), X ← X + 1 | Никој | 2 |
LD | Rd, - X | Вчитајте индиректно и пред декември. | X ← X – 1, Rd ← (X) | Никој | 2 |
LD | Rd, Y | Вчитај индиректно | Rd ← (Y) | Никој | 2 |
LD | Rd, Y + | Вчитај индиректни и пост-инк. | Rd ← (Y), Y ← Y + 1 | Никој | 2 |
LD | Rd, - Y | Вчитајте индиректно и пред декември. | Y ← Y – 1, Rd ← (Y) | Никој | 2 |
LDD | Rd, Y + q | Вчитај индиректно со раселување | Rd ← (Y + q) | Никој | 2 |
LD | Р.Д., З | Вчитај индиректно | Rd ← (Z) | Никој | 2 |
LD | Rd, Z + | Вчитај индиректни и пост-инк. | Rd ← (Z), Z ← Z+1 | Никој | 2 |
LD | Rd, -Z | Вчитајте индиректно и пред декември. | Z ← Z – 1, Rd ← (Z) | Никој | 2 |
LDD | Rd, Z + q | Вчитај индиректно со раселување | Rd ← (Z + q) | Никој | 2 |
LDS | Rd, k | Вчитај директно од SRAM | Rd ← (k) | Никој | 2 |
ST | X, Рр | Чувајте индиректно | (X) ← Rr | Никој | 2 |
ST | X +, Рр | Чувајте индиректни и пост-инк. | (X) ← Rr, X ← X + 1 | Никој | 2 |
ST | - Х, Рр | Чувајте индиректни и пред-декември. | X ← X – 1, (X) ← Rr | Никој | 2 |
ST | Y, Р.р. | Чувајте индиректно | (Y) ← Rr | Никој | 2 |
ST | Y +, Р.р. | Чувајте индиректни и пост-инк. | (Y) ← Rr, Y ← Y + 1 | Никој | 2 |
ST | - Y, Р.р. | Чувајте индиректни и пред-декември. | Y ← Y – 1, (Y) ← Rr | Никој | 2 |
СПБ | Y + q, Рр | Чувајте индиректно со раселување | (Y + q) ← Rr | Никој | 2 |
ST | З, Рр | Чувајте индиректно | (Z) ← Rr | Никој | 2 |
ST | З +, Рр | Чувајте индиректни и пост-инк. | (Z) ← Rr, Z ← Z + 1 | Никој | 2 |
ST | -З, Р.р. | Чувајте индиректни и пред-декември. | Z ← Z – 1, (Z) ← Rr | Никој | 2 |
СПБ | Z + q, Rr | Чувајте индиректно со раселување | (Z + q) ← Rr | Никој | 2 |
СТС | к, Рр | Чувајте директно во SRAM | (к) ← Rr | Никој | 2 |
LPM | Вчитај меморија на програмата | R0 ← (Z) | Никој | 3 | |
LPM | Р.Д., З | Вчитај меморија на програмата | Rd ← (Z) | Никој | 3 |
LPM | Rd, Z + | Вчитај меморија на програмата и пост-инк | Rd ← (Z), Z ← Z+1 | Никој | 3 |
СПМ | Зачувајте ја меморијата на програмата | (z) ← R1:R0 | Никој | ||
IN | Rd, П. | Во пристаништето | Rd ← П | Никој | 1 |
ИЗЛЕЗ | П, Рр | Надвор од пристаништето | P ← Rr | Никој | 1 |
ПУШ | Rr | Притисни регистрирај се на магацинот | СТАК ← Rr | Никој | 2 |
ПОП | Rd | Поп Регистрирај се од Стак | Rd ← СТАК | Никој | 2 |
УПАТСТВА ЗА КОНТРОЛА ЗА MCU | |||||
НЕ | Нема операција | Никој | 1 | ||
СПИЈ | Спиј | (видете специфичен приказ. за функција на мирување) | Никој | 1 | |
WDR | Ресетирање на надзорниот орган | (видете специфичен приказ за WDR / тајмер) | Никој | 1 | |
ПАКУВАЊЕ | Пауза |
Брзина (MHz) (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 | |||
20 М1 | 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 | |||
20 М1 | ATtiny45-20MU ATtiny45-20MUR |
Забелешки: 1. За брзина наспроти напојување волtagд, види дел 21.3 „Брзина“ на страница 163.
Сите пакувања се без Pb, без халид и се целосно зелени и тие се во согласност со европската директива за ограничување на опасни материи (RoHS).
Индикатори за код
H: финиш на водството на NiPdAu
У: мат калај
Р: лента и ролна
Овие уреди може да се испорачуваат и во форма нафора. Ве молиме, контактирајте ја вашата локална канцеларија за продажба на Атмел за детални информации за нарачки и минимални количини.
Ерата
Ерата ЕТтини25
Писмото за ревизија во овој дел се однесува на ревизијата на уредот ATtiny25.
Рев Д - Ф.
Нема позната ерата.
Рев - В.
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Обидувајќи се да читате EEPROM при ниски фреквенции на часовникот и/или ниско напојувањеtage може да резултира со неважечки податоци.
Поправање / решавање на проблемот
Не користете EEPROM кога фреквенцијата на часовникот е под 1MHz и напојување волуменtage е под 2V. Ако фреквенцијата на работа не може да се зголеми над 1 MHz, тогаш напојувајте волtage треба да биде повеќе од 2V. Слично на тоа, ако понудата волtagд не може да се подигне над 2V, тогаш работната фреквенција треба да биде повеќе од 1 MHz.
Познато е дека оваа карактеристика е зависна од температурата, но не е окарактеризирана. Дадени се упатства само за собна температура.
Рев А.
Не сampлед.
Ерата ЕТтини45
Писмото за ревизија во овој дел се однесува на ревизијата на уредот ATtiny45.
Рев Ф - Г.
Нема позната ерата
Рев Д - Е
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Обидувајќи се да читате EEPROM при ниски фреквенции на часовникот и/или ниско напојувањеtage може да резултира со неважечки податоци.
Поправање / решавање на проблемот
Не користете EEPROM кога фреквенцијата на часовникот е под 1MHz и напојување волуменtage е под 2V. Ако фреквенцијата на работа не може да се зголеми над 1 MHz, тогаш напојувајте волtage треба да биде повеќе од 2V. Слично на тоа, ако понудата волtagд не може да се подигне над 2V, тогаш работната фреквенција треба да биде повеќе од 1 MHz.
Познато е дека оваа карактеристика е зависна од температурата, но не е окарактеризирана. Дадени се упатства само за собна температура.
Рев - В.
PLL не заклучува
Прочитаниот EEPROM од кодот на апликацијата не работи во режимот на заклучување на бит 3
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Тајмер Бројач 1 Генерација на излез на PWM на OC1B- XOC1B не работи правилно
PLL не заклучува
Кога се на фреквенции под 6.0 MHz, PLL нема да се заклучи
Поправање на проблемот / заобиколување
Кога користите PLL, работи на 6.0 MHz или повисоко.
Прочитаниот EEPROM од кодот на апликацијата не работи во режимот на заклучување на бит 3
Кога битовите за заклучување на меморијата LB2 и LB1 се програмираат во режим 3, читањето на EEPROM не работи од кодот на апликацијата.
Поправете проблем / Работете наоколу
Не поставувајте режим за заштита на заклучување на бит 3 кога кодот на апликацијата треба да се чита од EEPROM.
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Обидувајќи се да читате EEPROM при ниски фреквенции на часовникот и/или ниско напојувањеtage може да резултира со неважечки податоци.
Поправање / решавање на проблемот
Не користете EEPROM кога фреквенцијата на часовникот е под 1MHz и напојување волуменtage е под 2V. Ако фреквенцијата на работа не може да се зголеми над 1 MHz, тогаш напојувајте волtage треба да биде повеќе од 2V. Слично на тоа, ако понудата волtagд не може да се подигне над 2V, тогаш работната фреквенција треба да биде повеќе од 1 MHz.
Познато е дека оваа карактеристика е зависна од температурата, но не е окарактеризирана. Дадени се упатства само за собна температура.
Бројач на бројач 1 Генерирање излез на PWM на OC1B - XOC1B не работи правилно
Тајмер Бројач1 Излез за PWM OC1B-XOC1B не работи правилно. Само во случај кога контролните битови, COM1B1 и COM1B0 се во ист режим како COM1A1 и COM1A0, соодветно, излезот на OC1B-XOC1B работи правилно.
Поправете проблем / Работете наоколу
Единствената разврска е да се користи истата контролна поставка на контролните битови COM1A [1: 0] и COM1B [1: 0], видете ја табелата 14-4 во листот со податоци. Проблемот е поправен за Tiny45 rev D.
Рев А.
Премногу голема потрошувачка на енергија при спуштање на енергија
DebugWIRE ја губи комуникацијата кога сам влегува во прекини
PLL не заклучува
Прочитаниот EEPROM од кодот на апликацијата не работи во режимот на заклучување на бит 3
Читањето на EEPROM може да пропадне при ниско напојување волtagе / ниска фреквенција на часовникот
Премногу голема потрошувачка на енергија при спуштање на енергија
Три ситуации ќе доведат до преголема потрошувачка на енергија при напон. Овие се:
Надворешен часовник е избран со осигурувачи, но влезниот влез и понатаму е овозможен како излез.
EEPROM се чита пред да се вклучи.
VCC е 4.5 волти или повисок.
Одрекување: Информациите во овој документ се дадени во врска со производите на Atmel. Со овој документ или во врска со продажбата на производите на Atmel, не се дава лиценца, експлицитно или имплицитно, со estoppel или на друг начин, за кое било право на интелектуална сопственост. ОСВЕН КАКО КОИ ШТО Е ПРЕТСТАВЕНО ВО УСЛОВИТЕ И УСЛОВИТЕ НА ПРОДАЖБАТА НА ATMEL лоцирани на ATMEL WEBСАЈТОТ, ATMEL НЕ ПРЕЗЕМА НИКАКВА ОДГОВОРНОСТ И ОДГОВАРА НИКАКВА ИЗРАЗНА, ИММПЛИЦИРАНА ИЛИ СТАТУТОРНА ГАРАНЦИЈА ПОВРЗАНА СО НЕГОВИТЕ ПРОИЗВОДИ ВКЛУЧУВАЈЌИ, НО НЕ ОГРАНИЧЕНА НА, ИММПЛИЦИРАНАТА ГАРАНЦИЈА НА ГАРАНЦИЈА ЗА ГАРАНЦИЈА ЗА ГАРАНЦИЈА. ВО НИКОЈ СЛУЧАЈ ATMEL НЕ СЕ ОДГОВАРА ЗА НИКАКВА ДИРЕКТНА, ИНДИРЕКТНА, СОСЕДНИЧКА, КАЗНЕТНА, ПОСЕБНА ИЛИ СЛУЧАЈНА ШТЕТА (ВКЛУЧУВАЈЌИ, БЕЗ ОГРАНИЧУВАЊЕ, ШТЕТА ЗА ЗАГУБИ И НЕПРОФИТИ, НЕЗАБОТУВАЊЕ НА НАС) ОВОЈ ДОКУМЕНТ, ДУРИ И АКО АТМЕЛ Е ПОВЕДЕН ЗА МОЖНОСТА ОД ТАКВИ ШТЕТИ.
Atmel не дава никакви изјави или гаранции во однос на точноста или комплетноста на содржината на овој документ и го задржува правото да прави промени во спецификациите и описот на производите во секое време без претходна најава. Atmel не презема никаква обврска да ги ажурира информациите содржани овде. Освен ако не е поинаку наведено, производите на Atmel не се погодни и нема да се користат во автомобилски апликации. Производите на Atmel не се наменети, овластени или со гаранција за употреба како компоненти во апликации наменети за поддршка или одржување на живот.