Atmel 8-биттік AVR микроконтроллері 2/4/8К байт жүйелік бағдарламаланатын жарқылы бар
Ерекше өзгешеліктері
- Жоғары өнімділік, төмен қуатты AVR® 8-биттік микроконтроллер
- Жетілдірілген RISC сәулеті
- 120 Күшті нұсқаулық - ең көп циклды орындау
- 32 x 8 жалпы мақсаттағы жұмыс регистрлері
- Толық статикалық жұмыс
- Бағдарлама және деректер туралы естеліктер
- 2/4 / 8K байт жүйелік бағдарламаланатын бағдарлама жады
- Төзімділік: 10,000 XNUMX жазу/өшіру циклі
- 128/256/512 байт жүйелік бағдарламаланатын EEPROM
- Төзімділік: 100,000 XNUMX жазу/өшіру циклі
- 128/256/512 байт Ішкі SRAM
- Flash Program және EEPROM Data Security бағдарламаларын бағдарламалауға арналған құлыптау
Перифериялық ерекшеліктер
- Prescaler және екі PWM каналы бар 8 биттік таймер / есептегіш
- 8 биттік жоғары жылдамдықты таймер / жеке есептегіш
- 2 Жеке жиілікті салыстырмалы регистрлермен жоғары жиілікті PWM шығысы
- Бағдарламаланатын өлі уақыт генераторы
- USI - әмбебап сериялық интерфейс, іске қосу күйін анықтаушы
- 10-биттік ADC
4 жалғыз аяқталған арналар
Бағдарламаланатын пайдаға ие 2 дифференциалды ADC арналық жұбы (1х, 20х)
Температураны өлшеу
Бағдарламаланатын бақылаушы таймері бөлек чиптегі осцилляторы бар
Чиптегі аналогты компаратор
Микроконтроллердің арнайы ерекшеліктері
debugWIRE чиптегі жөндеу жүйесі
SPI порт арқылы жүйеде бағдарламаланатын
Сыртқы және ішкі үзіліс көздері
Төмен қуаттылық, ADC шуды азайту және өшіру режимдері
Жақсартылған қалпына келтіру тізбегі
Бағдарламаланатын қоңыр түсті анықтау схемасы
Ішкі калибрленген осциллятор
I / O және пакеттер
Бағдарламаланатын алты енгізу-шығару сызығы
8 істік PDIP, 8 істік SOIC, 20 жастық QFN / MLF және 8 істік TSSOP (тек ATtiny45 / V)
Операциялық томtage
- ATtiny1.8V / 5.5V / 25V үшін 45 - 85V
- ATtiny2.7 / 5.5/25 үшін 45 - 85 В
Жылдамдық деңгейі
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 МГц @ 2.7 - 5.5 В, 0 - 20 МГц @ 4.5 - 5.5 В
Өндірістік температура диапазоны
Төмен қуат тұтыну
Белсенді режим:
1 МГц, 1.8 В: 300 µА
Өшіру режимі:
Істің конфигурациясы
Pinout ATtiny25 / 45/85
PIN сипаттамалары
VCC: Жабдық томtage.
GND: Жер.
B порты (PB5:PB0): B порты ішкі тартылатын резисторлары бар (әр бит үшін таңдалған) 6 биттік екі бағытты енгізу/шығару порты болып табылады. В портының шығыс буферлері жоғары раковина және көз мүмкіндігі бар симметриялық жетек сипаттамаларына ие. Кіріс ретінде, тартылатын резисторлар іске қосылса, сырттан төмен тартылған B портының түйреуіштері ток көзі болады. В портының түйреуіштері сағат жұмыс істемесе де, қалпына келтіру шарты белсенді болған кезде үш рет көрсетіледі.
Порт В сонымен қатар ATtiny25 / 45/85 тізімделген әртүрлі арнайы функцияларын орындайды
ATtiny25-те бағдарламаланатын енгізу-шығару порттары PB3 және PB4 (түйреуіштер 2 және 3) ATtiny15-пен кері үйлесімділікті қолдау үшін ATtiny15 сыйысымдылық режимінде ауыстырылады.
RESET: кірісті қалпына келтіру. Бұл істікшедегі төменгі деңгей импульстің ең аз ұзындығынан ұзағырақ болуы, тіпті сағат жұмыс істемей тұрса да және қалпына келтіру істікшесі өшірілмеген болса да, қалпына келтіруді жасайды. Импульстің минималды ұзындығы берілген Кесте 21-4 165-бетте. Қысқа импульстар қалпына келтіруге кепілдік бермейді.
Қалпына келтіру түйреуішін (әлсіз) енгізу-шығару штифті ретінде де пайдалануға болады.
Біттіview
ATtiny25 / 45/85 - AVR күшейтілген RISC архитектурасына негізделген төмен қуатты CMOS 8 биттік микроконтроллер. Бір сағаттық циклде қуатты нұсқауларды орындау арқылы ATtiny25 / 45/85 жүйенің дизайнеріне өңдеу жылдамдығына қарсы қуат тұтынуды оңтайландыруға мүмкіндік беретін 1 МГц-ке XNUMX MIPS-ке жақындауға мүмкіндік береді.
Блок-схема
AVR өзегі бай командалар жиынтығын 32 жалпы мақсаттағы жұмыс регистрлерімен біріктіреді. Барлық 32 регистрлер Арифметикалық Логикалық Бірлікке (ALU) тікелей байланысты, бұл екі тәуелсіз регистрге бір сағат циклында орындалатын бір командалық нұсқаулықта қол жеткізуге мүмкіндік береді. Алынған архитектура әдеттегі CISC микроконтроллеріне қарағанда он есеге дейін жылдамдыққа қол жеткізе отырып, кодты тиімдірек етеді.
ATtiny25 / 45/85 келесі мүмкіндіктерді ұсынады: 2/4 / 8K байт жүйелік бағдарламаланатын флэш, 128/256/512 байт EEPROM, 128/256/256 байт SRAM, 6 жалпы мақсаттағы енгізу-шығару жолдары, 32 жалпы мақсатты жұмыс регистрлері, салыстыру режимдерімен бір 8 биттік таймер / санауыш, бір 8 биттік жоғары жылдамдықты таймер / есептегіш, әмбебап сериялық интерфейс, ішкі және сыртқы үзілістер, 4 каналды, 10-биттік ADC, бағдарламаланатын ішкі бақылаушы таймер Осциллятор және үш бағдарламалық жасақтама қуатты үнемдеу режимі. Күту режимі SRAM, Timer / Counter, ADC, Analog Comparator және Interrupt жүйесінің жұмысын жалғастыруға мүмкіндік беріп, CPU-ны тоқтатады. Қуатты өшіру режимі регистрдің мазмұнын үнемдейді, келесі үзіліс немесе жабдықты қалпына келтіруге дейін барлық чип функцияларын өшіреді. ADC шуды азайту режимі ADC түрлендіру кезінде коммутация шуын азайту үшін процессорды және ADC-тен басқа барлық енгізу-шығару модульдерін тоқтатады.
Құрылғы Atmel компаниясының жоғары тығыздықтағы тұрақты жадының технологиясы бойынша жасалған. Flash-ISP Flash бағдарламасы әдеттегі тұрақты жад бағдарламалаушысы немесе AVR ядросында жұмыс жасайтын On-chip жүктеу коды арқылы SPI сериялық интерфейсі арқылы Бағдарламалық жадыны қайта бағдарламалауға мүмкіндік береді.
ATtiny25 / 45/85 AVR бағдарламалық жасақтама мен жүйені құрудың толық жиынтығымен қамтамасыз етілген, оның ішінде: C құрастырушылары, макро ассемблерлер, бағдарламаны жөндеу құралдары / симуляторлар және бағалау жиынтықтары.
Ресурстар туралы
Әзірлеу құралдарының, қолданбалы жазбалардың және мәліметтер кестесінің толық жиынтығын жүктеуге болады http://www.atmel.com/avr.
Код Examples
Бұл құжатта қарапайым код барampҚұрылғының әр түрлі бөлшектерін қалай қолдану керектігін қысқаша көрсететін. Бұл код мысалыamples бөліктің нақты тақырыбы деп есептейді file құрастырылғанға дейін қосылады. С компиляторының барлық жеткізушілері тақырыпта бит анықтамаларын қамтымайтынын біліңіз files және үзіліс өңдеу C -де компиляторға тәуелді. Қосымша ақпарат алу үшін C компилятор құжаттамасымен растаңыз.
Кеңейтілген енгізу-шығару картасында орналасқан енгізу-шығару регистрлері үшін «IN», «OUT», «SBIS», «SBIC», «CBI» және «SBI» нұсқаулары кеңейтілген I-ге қол жеткізуге мүмкіндік беретін нұсқаулықтармен ауыстырылуы керек. / O. Әдетте, бұл «SBRS», «SBRC», «SBR» және «CBR» біріктірілген «LDS» және «STS» дегенді білдіреді. Барлық AVR құрылғыларында кеңейтілген енгізу-шығару картасы жоқ екенін ескеріңіз.
Сенсорлық сыйымдылық
Atmel QTouch Library Atmel AVR микроконтроллерлеріндегі сенсорлық интерфейстерге арналған қарапайым шешімді ұсынады. QTouch кітапханасында QTouch® және QMatrix® алу әдістеріне қолдау көрсетіледі.
Сенсорлық сенсор кез-келген қосымшаға QTouch кітапханасын байланыстыру және сенсорлық арналар мен сенсорларды анықтау үшін кітапхананың қолданбалы бағдарламалық интерфейсін (API) қолдану арқылы оңай қосылады. Содан кейін бағдарлама арнаның ақпаратын алу және сенсорлық сенсордың күйін анықтау үшін API шақырады.
QTouch кітапханасы ақысыз және оны Atmel -ден жүктеуге болады webсайт. Қосымша ақпарат пен іске асырудың егжей -тегжейін QTouch Library пайдаланушы нұсқаулығынан қараңыз - Atmel -де де бар webсайт.
Деректерді сақтау
Сенімділік Біліктілік нәтижелері деректерді сақтаудың болжамды бұзылу деңгейі 1 ° C температурада 20 жыл ішінде немесе 85 ° C температурада 100 жыл ішінде 25 PPM-ден әлдеқайда аз екенін көрсетеді.
AVR CPU ядросы
Кіріспе
Бұл бөлімде жалпы AVR негізгі архитектурасы талқыланады. Орталық процессордың негізгі функциясы - бағдарламаның дұрыс орындалуын қамтамасыз ету. Сондықтан CPU жадтарға қол жеткізуге, есептеулер жүргізуге, перифериялық құрылғыларды басқаруға және үзілістерді басқаруға қабілетті болуы керек.
Архитектуралық аяқталдыview
Өнімділік пен параллелизмді арттыру үшін AVR Гарвард архитектурасын қолданады - бағдарлама мен мәліметтер үшін бөлек естеліктер мен автобустар. Бағдарлама жадындағы нұсқаулар бір деңгейлі құбырмен орындалады. Бір нұсқаулық орындалып жатқанда келесі нұсқаулық Бағдарлама жадынан алынады. Бұл тұжырымдама нұсқаулықтың барлық цикл циклында орындалуына мүмкіндік береді. Бағдарлама жады - бұл жүйеде қайта бағдарламаланатын флэш-жады.
Жылдам қатынау тізімі File бір тактілік циклге қол жеткізу уақыты бар 32 x 8-биттік жалпы мақсаттағы жұмыс регистрлерін қамтиды. Бұл бір циклдік арифметикалық логикалық құрылғының (ALU) жұмысына мүмкіндік береді. Әдеттегі ALU операциясында тізілімнен екі операнд шығарылады File, операция орындалады, ал нәтиже Реестрде сақталады File- бір сағат циклында.
32 регистрдің алтауы үш кеңістіктегі жанама адрестер регистрінің үш кеңістігі ретінде қолданылуы мүмкін, бұл мәліметтер кеңістігін тиімді есептеуге мүмкіндік береді. Осы адрестердің біреуін Flash Program жадында кестелерді іздеуге арналған мекенжай көрсеткіші ретінде пайдалануға болады. Бұл функционалды регистрлер осы бөлімде кейінірек сипатталған 16-биттік X-, Y- және Z-регистр болып табылады.
ALU регистрлер арасындағы немесе тұрақты мен регистр арасындағы арифметикалық және логикалық операцияларды қолдайды. Бірыңғай регистр операциялары ALU-да да орындалуы мүмкін. Арифметикалық операциядан кейін күй нәтижелері туралы ақпаратты көрсету үшін күй регистрі жаңартылады.
Бағдарлама ағыны шартты және сөзсіз секіру және шақыру нұсқауларымен қамтамасыз етіліп, бүкіл мекен-жай кеңістігіне тікелей жүгіне алады. Көптеген AVR нұсқауларында 16 биттік сөз форматы бар, бірақ 32 биттік нұсқаулар бар.
Үзілістер мен ішкі бағдарламалық қоңыраулар кезінде қайтару адресі Бағдарлама есептегіші (ДК) Стекте сақталады. Стек SRAM жалпы мәліметтерінде тиімді түрде орналастырылған, сондықтан Stack мөлшері тек SRAM жалпы көлемімен және SRAM қолдануымен шектеледі. Барлық пайдаланушы бағдарламалары СТ-ны қалпына келтіру процедурасына қосуы керек (ішкі процедуралар немесе үзілістер орындалмас бұрын). Stack көрсеткіші (SP) енгізу / шығару кеңістігінде оқуға / жазуға қол жетімді. SRAM деректеріне AVR архитектурасында қолдау көрсетілетін бес түрлі адрестік режимдер арқылы оңай қол жеткізуге болады.
AVR архитектурасындағы жад кеңістігі - бұл сызықтық және тұрақты жад картасы.
Икемді үзу модулінің енгізу-шығару кеңістігінде өзінің басқару регистрлері күйдің қосымша регистрінде қосымша Global Interrupt Enable битімен болады. Барлық үзілістерде «Үзу векторы» кестесінде «Үзу векторы» бөлек болады. Үзілістердің басымдықтары олардың үзіліс векторының позицияларына сәйкес келеді. Үзіліс векторының мекен-жайы неғұрлым төмен болса, соғұрлым басымдық жоғарылайды.
Енгізу -шығару жады кеңістігінде Басқару регистрлері, SPI және басқа енгізу -шығару функциялары ретінде процессордың перифериялық функциялары үшін 64 адрестер бар. Енгізу-шығару жадысына тікелей немесе Тіркеушіден кейін Деректер кеңістігінде орналасуға болады File, 0x20 - 0x5F.
ALU - арифметикалық логикалық бірлік
Жоғары өнімді AVR ALU барлық 32 жалпы жұмыс регистрлерімен тікелей байланысты жұмыс істейді. Бір сағаттық цикл ішінде жалпы мақсаттағы регистрлер арасындағы немесе регистр мен жедел арасындағы арифметикалық амалдар орындалады. ALU операциялары үш негізгі категорияға бөлінеді - арифметикалық, логикалық және биттік функциялар. Архитектураның кейбір енгізілімдері қолтаңбалы / белгісіз көбейтуді және бөлшек пішімді қолдайтын қуатты мультипликаторды ұсынады. Толық сипаттама алу үшін «Нұсқаулық жиынтығы» бөлімін қараңыз.
Күй регистрі
Күй регистрінде соңғы орындалған арифметикалық нұсқаулықтың нәтижесі туралы ақпарат бар. Бұл ақпаратты шартты операцияларды орындау үшін бағдарлама ағынын өзгерту үшін пайдалануға болады. Нұсқаулыққа арналған анықтамалықта көрсетілгендей, барлық ALU операцияларынан кейін күй регистрі жаңартылатындығын ескеріңіз. Бұл көптеген жағдайларда арнайы салыстыру нұсқауларын пайдалану қажеттілігін жояды, нәтижесінде тезірек және ықшам код пайда болады.
Күй регистрі үзіліс режиміне енген кезде автоматты түрде сақталмайды және үзілістен оралғанда қалпына келтіріледі. Мұны бағдарламалық жасақтама жасау керек.
SREG - AVR мәртебесінің тіркелімі
AVR мәртебесінің тіркелімі - SREG - келесідей анықталады:
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 бит - I: ғаламдық үзілісті қосу
Үзілістерді қосу үшін Global Interrupt Enable битін орнату керек. Жеке үзілістерді қосу басқаруы содан кейін бөлек басқару регистрлерінде орындалады. Егер Жаһандық үзілісті қосу тізілімі тазаланса, үзілістерді қосудың жеке параметрлерінен тәуелсіз ешбір үзіліс қосылмайды. I-бит үзіліс болғаннан кейін аппараттық құралдармен тазаланады және RETI нұсқаулығымен келесі үзілістерге мүмкіндік береді. I-битті нұсқаулар жиынтығының сілтемесінде сипатталғандай SEI және CLI нұсқауларымен қосымшамен орнатуға және тазартуға болады.
Бит 6 - Т: Бит көшірмесін сақтау
Bitd Copy нұсқаулары BLD (Bit LoaD) және BST (Bit Store) T-битін басқарылатын бит үшін дерек көзі немесе тағайындалуы ретінде пайдаланады. Реестрдегі тіркеуден аздап File BST нұсқауымен T -ге көшіруге болады, ал T -дегі битті регистрдегі регистрге битке көшіруге болады File BLD нұсқауы бойынша.
Бит 5 - H: Жартылай жалауша
Жартылай тасымалдау жалаушасы H кейбір арифметикалық амалдардағы жартылай тасымалдауды көрсетеді. Half Carry BCD арифметикасында пайдалы. Толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
4-бит – S: Бит белгісі, S = N ⊕ V
S-бит әрдайым эксклюзивті болып табылады немесе N теріс жалаушасы мен екеуінің толықтауышының толып кететін жалаушасы V. арасында толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
Бит 3 - V: екінің толықтауышының асып кетуі
The Two's Complete Overflow Flag V екеуінің арифметикасын қолдайды. Толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
2 бит - N: теріс жалауша
Теріс жалауша N арифметикалық немесе логикалық операцияның теріс нәтижесін көрсетеді. Толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
1 бит - Z: нөлдік жалауша
Нөлдік жалауша Z арифметикалық немесе логикалық операциядағы нөлдік нәтижені көрсетеді. Толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
Бит 0 - С: жалаушаны алып жүріңіз
Тасымалдау жалаушасы C арифметикалық немесе логикалық операциядағы тасымалдауды көрсетеді. Толық ақпарат алу үшін «Нұсқаулық жиынтығының сипаттамасын» қараңыз.
Жалпы мақсаттағы реестр File
Тіркелу File AVR Enhanced RISC нұсқаулар жиыны үшін оңтайландырылған. Қажетті өнімділікке және икемділікке қол жеткізу үшін тізілімде келесі енгізу/шығару схемалары қолдау көрсетіледі File:
Бір 8-биттік операнд және бір-биттік 8-биттік нәтиже
Екі 8-битті шығару операндтары және біреуі 8-биттік нәтиже
Екі 8-битті шығару операндтары және біреуі 16-биттік нәтиже
Бір 16-биттік операнд және бір-биттік 16-биттік нәтиже
4-2-сурет орталық процессордағы 32 жалпы жұмыс регистрінің құрылымын көрсетеді.
Көрсетілгендей 4-2-сурет, сонымен қатар әрбір регистрге Деректер жадысының мекен -жайы тағайындалады, оларды қолданушының Data Space -тің алғашқы 32 орнына тікелей салыстырады. SRAM орындары ретінде физикалық түрде енгізілмесе де, бұл жады ұйымы регистрлерге қол жеткізуге үлкен икемділікті қамтамасыз етеді, себебі X-, Y- және Z-көрсеткіш регистрлерін кез келген регистрді индекстеу үшін орнатуға болады. file.Тізілімде жұмыс істейтін нұсқаулардың көпшілігі File барлық регистрлерге тікелей қол жеткізе алады, және олардың көпшілігі бір циклді нұсқаулар болып табылады.
X-регистр, Y-регистр және Z-регистр
R26..R31 регистрлерінің жалпы тағайындалуына бірнеше қосымша функциялары бар. Бұл регистрлер мәліметтер кеңістігінің жанама адрестелуіне арналған 16-разрядты адрестер болып табылады. X, Y және Z жанама мекен-жай регистрлері сипатталғандай анықталған 4-3-сурет.
Әр түрлі адрестеу режимдерінде бұл адрестер регистрлері тұрақты орын ауыстыру, автоматты түрде жоғарылату және автоматты түрде азаю сияқты функцияларға ие (егжей-тегжейлі нұсқаулар жиынтығын қараңыз).
Stack көрсеткіші
Stack негізінен уақытша мәліметтерді сақтауға, жергілікті айнымалыларды сақтауға және үзілістер мен ішкі бағдарламалық қоңыраулардан кейін қайтарылатын адрестерді сақтауға арналған. Stack көрсеткіш регистрі әрдайым стектің жоғарғы жағын көрсетеді. Стек жоғары жад орындарынан жад орындарының төмендеуіне қарай өсіп келе жатқанын ескеріңіз. Бұл Stack PUSH командасы Stack көрсеткішін төмендететіндігін білдіреді.
Stack көрсеткіші Subroutine және Interrupt Stacks орналасқан деректер SRAM Stack аймағын көрсетеді. SRAM деректеріндегі бұл стек кеңістігі кез-келген ішкі бағдарламалық қоңыраулар орындалмас бұрын немесе интерпретациялар қосылмай тұрып бағдарламамен анықталуы керек. Стек меңзерін 0x60-тан жоғары деңгейге қою керек. Деректер PUSH командасымен Stack-қа итерілген кезде Stack көрсеткіші бір-біріне азаяды, ал кері адресті Stro-ға подпрограмма шақыруымен немесе үзіліспен итергенде ол екіге азаяды. Stack көрсеткіші POP командасымен бірге Stack-тен шығарылған кезде бір-біріне көбейтіледі, ал RET ішкі программасынан оралумен немесе RETI үзілісінен оралумен Stack-тен мәліметтер шығарылған кезде ол екіге көбейтіледі.
AVR Stack көрсеткіші енгізу-шығару кеңістігінде екі 8-биттік регистр ретінде жүзеге асырылады. Іс жүзінде қолданылатын биттер саны іске асыруға байланысты. AVR архитектурасының кейбір ендірулеріндегі деректер кеңістігі өте аз болғандықтан, тек SPL қажет екенін ескеріңіз. Бұл жағдайда SPH тізілімі болмайды.
SPH және SPL - стек көрсеткішінің тіркелімі
Бит | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
0x3E | SP15 | SP14 | SP13 | SP12 | SP11 | SP10 | SP9 | SP8 | SPH |
0x3D | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | SPL |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Бастапқы мән | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Нұсқаулықтың орындалу мерзімі
Бұл бөлім нұсқаулықты орындауға арналған жалпы қол жеткізу уақытының тұжырымдамаларын сипаттайды. AVR процессоры чип үшін таңдалған сағат көзінен тікелей жасалған clkCPU CPU сағатымен басқарылады. Ішкі сағат бөлімі пайдаланылмайды.
4-4-сурет Гарвард архитектурасы мен жылдам қатынау тізілімімен қосылған параллельді нұсқаулар мен нұсқауларды орындауды көрсетеді File түсінік. Бұл бір МГц-ке 1 MIPS-ке дейін алынатын негізгі шығын концепциясы, шығындар бойынша функциялар, сағаттар үшін функциялар және қуат бірлігіне арналған функциялар үшін сәйкес келетін бірегей нәтижелермен.
4-5-сурет. Бір циклді ALU жұмысы
Қалпына келтіру және өңдеуді үзу
AVR бірнеше түрлі үзіліс көздерін ұсынады. Бұл үзілістерде және бөлек қалпына келтіру векторының әрқайсысында Бағдарламаның жад кеңістігінде жеке Бағдарламалық вектор болады. Барлық үзілістерге жеке қосу биттері тағайындалады, олар үзілістерді қосу үшін күйлер тізбегіндегі Global Interrupt Enable биттерімен бірге жазылуы керек.
Бағдарламаның жадындағы ең төменгі адрестер әдепкі бойынша Векторларды қалпына келтіру және үзу болып табылады. Векторлардың толық тізімі көрсетілген 48-беттегі “Үзілістер”. Тізім сонымен қатар әр түрлі үзілістердің басым деңгейлерін анықтайды. Мекен-жай неғұрлым төмен болса, соғұрлым басым деңгей жоғары болады. RESET ең үлкен басымдылыққа ие, ал келесі INT0 - сыртқы үзіліс сұрауы 0.
Үзіліс болған кезде, I-биттің ғаламдық үзілісі қосылады және барлық үзілістер ажыратылады. Бағдарламалық жасақтама логикалық I-битке кірістірілген үзілістерді қосу үшін жаза алады. Барлық қосылған үзулер ағымдағы үзілісті тоқтатуы мүмкін. I-бит автоматты түрде Interrupt from Return - RETI командасы орындалған кезде орнатылады.
Үзілістердің негізінен екі түрі бар. Бірінші тип үзіліс жалауын орнататын оқиға арқылы іске қосылады. Осы үзілістер үшін бағдарлама санағышы үзілістерді өңдеу процедурасын орындау үшін нақты Векторлық векторға векторланған, ал аппараттық құрал тиісті үзу жалаушасын тазартады. Үзіліс жалауларын тазартылатын жалаушаның орнына (позицияларына) логикасын жазу арқылы да тазартуға болады. Егер тиісті үзілісті қосу биті тазаланған кезде үзіліс шарты орын алса, үзіліс қосылғанға дейін немесе жалауша бағдарламалық жасақтамамен тазаланғанға дейін үзіліс жалаушасы орнатылып, есте сақталады. Дәл сол сияқты, егер үзілістің бір немесе бірнеше жағдайы Global Interrupt Enable биті тазаланған кезде орын алса, сәйкес Interrupt жалаулары (лары) орнатылады және Global Interrupt Enable биті орнатылғанға дейін есте сақталады, содан кейін олар кезекпен орындалады.
Үзілістердің екінші түрі үзіліс шарты болған кезде іске қосылады. Бұл үзілістерде міндетті түрде үзу жалаулары болмайды. Егер үзу шарты үзіліс қосылмай тұрып жоғалып кетсе, үзіліс іске қосылмайды.
AVR үзілістен шыққан кезде, ол әрқашан негізгі бағдарламаға оралады және кез келген күтілмеген үзіліске дейін тағы бір нұсқауды орындайды.
Күй регистрі үзіліс режиміне енген кезде автоматты түрде сақталмайтынын және үзілістен оралғанда қалпына келтірілмейтінін ескеріңіз. Мұны бағдарламалық жасақтама жасау керек.
Үзілулерді өшіру үшін CLI нұсқауын қолданған кезде үзілістер бірден өшіріледі. CLI нұсқаулығымен бір мезгілде орын алса да, CLI нұсқаулығынан кейін ешқандай үзіліс орындалмайды. Келесі эксample бұл уақытты EEPROM жазу реттілігі кезінде үзілістерді болдырмау үшін қалай қолдануға болатынын көрсетеді.
Жинау коды Example |
r16, SREG ; SREG мәнін сақтаңыз
cli; уақытты реттілік кезінде үзулерді өшіру sbi EECR, EEMPE ; EEPROM жазуды бастаңыз sbi EECR, EEPE шығыс SREG, r16 ; SREG мәнін қалпына келтіру (I-бит) |
C коды Example |
char cSREG;
cSREG = SREG; /* SREG мәнін сақтау */ /* уақыт тізбегі кезінде үзілістерді өшіру */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* SREG мәнін қалпына келтіру (I-бит) */ |
Үзілістерді қосу үшін SEI нұсқаулығын пайдаланған кезде, SEI-ден кейінгі нұсқаулық, осы мысалда көрсетілгендей, кез келген тоқтаусыз үзілістер алдында орындалады.ampле.
Жинау коды Example |
sei ; Ғаламдық үзу қосуды орнатыңыз
ұйқы; үзуді күтіп, ұйқыға кіріңіз ; ескерту: күтуге дейін ұйқы режиміне кіреді ; үзу |
C коды Example |
_SEI(); /* Ғаламдық үзу мүмкіндігін орнату */
_SLEEP(); /* ұйқы режиміне өту, үзуді күту */ / * ескерту: кез келген күтуге дейін ұйқы режиміне кіреді * / |
Жауап беру уақыты
Барлық қосылған AVR үзілімдері үшін үзілісті орындау жауабы минимумның төрт циклін құрайды. Төрт сағаттық циклдан кейін үзілістерді өңдеудің нақты бағдарламасы үшін Бағдарламалық векторлық мекен-жай орындалады. Осы төрт сағаттық цикл кезеңінде Бағдарлама есептегіші стекке итеріледі. Әдетте вектор үзілістерге секіру болып табылады және бұл секіру үш цикл циклін алады. Егер көп циклді команданы орындау кезінде үзіліс орын алса, онда бұл нұсқаулық үзіліске дейін аяқталады. Егер MCU ұйқы режимінде болғанда үзіліс орын алса, үзілістің орындалуына жауап беру уақыты төрт циклға көбейтіледі. Бұл өсу таңдалған ұйқы режимінен бастау уақытына қосымша келеді.
Үзілістерді өңдеу процедурасынан қайту төрт сағат циклін алады. Осы төрт сағаттық циклдар кезінде Бағдарлама есептегіші (екі байт) Стектен қайтарылады, Stack көрсеткіші екіге көбейтіледі және SREG ішіндегі I-разряд орнатылады.
AVR естеліктері
Бұл бөлімде ATtiny25 / 45/85 әртүрлі естеліктер сипатталған. AVR архитектурасында екі негізгі жады кеңістігі бар, олар - жады және Бағдарлама жады кеңістігі. Сонымен қатар, ATtiny25 / 45/85 деректерді сақтауға арналған EEPROM жадын ұсынады. Барлық үш жад кеңістігі сызықтық және тұрақты болып табылады.
Жүйеде қайта бағдарламаланатын Flash бағдарламалық жады
ATtiny25 / 45/85 бағдарламасында сақтау үшін 2/4 / 8K байтты жүйелік қайта бағдарламаланатын флэш жады бар. Барлық AVR нұсқауларының ені 16 немесе 32 бит болғандықтан, Flash 1024/2048/4096 x 16 ретінде ұйымдастырылған.
Флэш-жады кем дегенде 10,000 25 жазу / өшіру циклына төзімділікке ие. ATtiny45 / 85/10 бағдарламалық есептегішінің (ДК) ені 11/12/1024 бит, сондықтан 2048/4096/XNUMX бағдарламалық жадының орналасуын шешеді. «Жад бағдарламасы- мың »147 бетте SPI түйреуіштерін пайдаланып Flash деректерін сериялық жүктеу туралы толық сипаттаманы қамтиды.
Тұрақты кестелерді Бағдарламаның жадының бүкіл кеңістігінде бөлуге болады (LPM - Load Program жадының нұсқауларының сипаттамасын қараңыз).
5-1-сурет. Бағдарлама жады картасы
SRAM деректер жады
5-2-сурет ATtiny25 / 45/85 SRAM жадысының қалай ұйымдастырылғанын көрсетеді.
Төменгі 224/352/607 Деректер жадының орналасуы Тізілімге де қатысты File, енгізу -шығару жады және SRAM ішкі деректері. Алғашқы 32 орын Реестрге жүгінеді File, келесі 64 орналасу стандартты енгізу -шығару жады, ал соңғы 128/256/512 орындары SRAM ішкі деректеріне жүгінеді.
Деректер жады қақпағының адрестеудің бес түрлі режимі: тікелей, орын ауыстырумен жанама, жанама, алдын ала азайту арқылы тікелей және кейінгі өсіммен жанама. Реестрде File, R26 - R31 регистрлерінде жанама адрестеу көрсеткіш регистрлері бар.
Тікелей адресаттау бүкіл кеңістікке жетеді.
Ауыстырумен жанама режим Y-немесе Z- регистрі берген базалық мекен-жайдан 63 мекен-жайға жетеді.
Автоматты алдын-ала төмендету және кейінгі ұлғайту арқылы регистрдің жанама адрестеу режимдерін қолдану кезінде X, Y және Z адрестер регистрлері азайтылады немесе көбейтіледі.
ATtiny32/64/128 ішіндегі 256 жалпы мақсаттағы жұмыс регистрі, 512 енгізу -шығару регистрі және 25/45/85 байт SRAM ішкі деректердің барлығына осы адрестеу режимдері арқылы қол жеткізуге болады. Реестр File ішінде сипатталған «Ген- eral Мақсатты тіркеу File»10 бетте.
5-2-сурет. Деректер жады картасы
Деректер жадына қол жеткізу Уақыт
Бұл бөлім ішкі жадқа кіруге арналған жалпы қол жеткізу уақытының тұжырымдамаларын сипаттайды. Ішкі деректерге SRAM қол жеткізу бөлімінде сипатталғандай екі clkCPU циклінде орындалады 5-3-сурет.
5-3-сурет. Чиптегі деректер SRAM қол жеткізу циклдері EEPROM деректер жады
ATtiny25 / 45/85 құрамында 128/256/512 байт мәліметтер EEPROM жады бар. Ол жеке байттарды оқуға және жазуға болатын жеке мәліметтер кеңістігі ретінде ұйымдастырылған. EEPROM кем дегенде 100,000 жазу / өшіру циклына төзімділікке ие. EEPROM мен CPU арасындағы қатынас EEPROM мекен-жай регистрлері, EEPROM деректер регистрі және EEPROM басқару регистрін көрсете отырып, келесіде сипатталған. Толығырақ ақпаратты мына жерден қараңыз 151-беттегі «Сериялық жүктеу».
EEPROM оқу / жазу мүмкіндігі
EEPROM кіру регистрлеріне енгізу-шығару кеңістігінде қол жетімді.
EEPROM үшін жазуға рұқсат уақыты берілген 5-беттегі 1-21-кесте. Дегенмен, өз уақытын анықтау функциясы пайдаланушы бағдарламалық құралына келесі байтты қашан жазуға болатынын анықтауға мүмкіндік береді. Пайдаланушы кодында EEPROM жазатын нұсқаулар болса, кейбір сақтық шараларын қолдану қажет. Қатты сүзілген қуат көздерінде VCC баяу көтерілуі немесе төмендеуі мүмкін
Қуатты қосу/төмендету. Бұл құрылғының біраз уақыт бойы дыбыс деңгейінде жұмыс істеуіне әкеледіtage пайдаланылатын тактілік жиілік үшін минимум ретінде көрсетілгеннен төмен. Қараңыз «EEPROM сыбайлас жемқорлықтың алдын алу» 19-бетте осы жағдайлардағы қиындықтардан қалай аулақ болуға болатындығы туралы егжей-тегжейлі ақпарат алу үшін.
EEPROM-дің кездейсоқ жазуларына жол бермеу үшін белгілі бір жазу процедурасын орындау қажет. Қараңыз «Атом Бағдарламалаудың байттары »17-бетте және «Байтты бағдарламалау» 17-бетте осы туралы егжей-тегжейлі білу үшін.
EEPROM оқылған кезде, CPU келесі нұсқаулық орындалмай тұрып төрт сағат циклына тоқтатылады. EEPROM жазылған кезде, CPU келесі нұсқаулық орындалмас бұрын екі сағат циклына тоқтатылады.
Атомдық байтты бағдарламалау
Атомдық байт бағдарламалауды қолдану - ең қарапайым режим. EEPROM-ға байт жазған кезде пайдаланушы мекен-жайын EEAR тізіліміне, ал деректерді EEDR реестріне жазуы керек. Егер EEPMn биттері нөлге тең болса, EEPE жазу (EEMPE жазылғаннан кейін төрт цикл ішінде) өшіру / жазу жұмысын бастайды. Өшіру де, жазу циклі де бір әрекетте орындалады және бағдарламалаудың жалпы уақыты берілген 5-беттегі 1-21-кесте. EEPE биті өшіру және жазу әрекеттері аяқталғанға дейін орнатылған болып қалады. Құрылғы бағдарламалаумен айналысып жатқанда, басқа EEPROM операцияларын жасау мүмкін емес.
Бөлінген байтты бағдарламалау
Өшіру және жазу циклін екі түрлі әрекетте бөлуге болады. Бұл жүйе кейбір шектеулі уақыт кезеңі үшін қысқа қол жеткізу уақытын қажет етсе пайдалы болуы мүмкін (әдетте қуат көзіtage құлайды). Алдын алу үшін- tagБұл әдістің e нұсқасында жазылатын орындар жазу операциясы алдында өшірілген болуы керек. Бірақ өшіру және жазу операциялары бөлінгендіктен, жүйе уақытты қажет ететін операцияларды орындауға мүмкіндік бергенде өшіру әрекеттерін орындауға болады (әдетте қуат қосылғаннан кейін).
Өшіру
Байды өшіру үшін мекен-жайды EEAR-ға жазу керек. Егер EEPMn биттері 0b01 болса, EEPE жазу (EEMPE жазылғаннан кейін төрт цикл ішінде) тек өшіру жұмысын бастайды (бағдарламалау уақыты берілген 5-1 кесте 21 бет). EEPE биті өшіру әрекеті аяқталғанға дейін орнатылған болып қалады. Құрылғы бағдарламалаумен айналысып жатқанда, басқа EEPROM әрекеттерін орындау мүмкін емес.
Жазыңыз
Орынды жазу үшін пайдаланушы мекен-жайды EEAR-ға, ал деректерді EEDR-ге жазуы керек. Егер EEPMn биттері 0b10 болса, EEPE жазу (EEMPE жазылғаннан кейін төрт цикл ішінде) жазу әрекетін ғана бастайды (бағдарламалау уақыты берілген 5-беттегі 1-21-кесте). EEPE биті жазу әрекеті аяқталғанша орнатылған күйінде қалады. Егер жазылатын орын жазылмай тұрып өшірілмесе, сақталған деректер жоғалған деп саналуы керек. Құрылғы бағдарламалаумен айналысып жатқанда, басқа EEPROM операцияларын жасау мүмкін емес.
Калибрленген осциллятор EEPROM кіру уақытын белгілеу үшін қолданылады. Осциллятор жиілігінің сипатталған талаптарға сәйкес келетініне көз жеткізіңіз «OSCCAL - Осцилляторды калибрлеу регистрі» 31-бетте.
Келесі код мысалыamples EEPROM өшіруге, жазуға немесе атомдық жазуға арналған бір жинақ пен бір С функциясын көрсетеді. Бұрынғыamples бұл функцияларды орындау кезінде үзілістер болмайтындай, үзілістер бақыланады деп есептейді (мысалы, ғаламдық үзілістерді өшіру арқылы).
Жинау коды Example |
EEPROM_жазу:
; Алдыңғы жазбаның аяқталуын күтіңіз sbic EECR, EEPE rjmp EEPROM_write ; Бағдарламалау режимін орнатыңыз ldi r16, (0<<EEPM1)|(0<<EEPM0) EECR шығысы, r16 ; Мекен-жай регистріне мекенжайды орнатыңыз (r18: r17) EEARH, r18 шығыс EEARL, r17 ; Деректер регистріне мәліметтерді жазыңыз (r19) EEDR шығысы, r19 ; EEMPE-ге логикалық түрде жазыңыз sbi EECR, EEMPE ; EEPE орнату арқылы eeprom жазуды бастаңыз sbi EECR, EEPE рет |
C коды Example |
жарамсыз EEPROM_write(таңбасыз ucAddress, unsigned char ucData)
{ /* Алдыңғы жазудың аяқталуын күтіңіз */ while(EECR & (1< ; /* Бағдарламалау режимін орнату */ EECR = (0 < / * Адрестер мен мәліметтер регистрлерін орнатыңыз * / EEAR = ucAddress; EEDR = ucData; /* EEMPE-ге логикалық біреуін жазыңыз */ EECR | = (1 < / * EEPE * орнату арқылы eeprom жазуды бастаңыз EECR | = (1 < } |
Келесі код мысалыamples EEPROM оқуға арналған құрастыру мен С функцияларын көрсетеді. Бұрынғыamples бұл функцияларды орындау кезінде үзілістер болмайтындай етіп үзілістер бақыланады деп есептейді.
Жинау коды Example |
EEPROM_ оқу:
; Алдыңғы жазбаның аяқталуын күтіңіз sbic EECR, EEPE rjmp EEPROM_read ; Мекен-жай регистріне мекенжайды орнатыңыз (r18: r17) EEARH, r18 шығыс EEARL, r17 ; Eeprom-ді EERE жазу арқылы бастаңыз sbi EECR,EERE ; Деректер регистрінен деректерді оқу r16,EEDR рет |
C коды Example |
unsigned char EEPROM_read(белгісіз таңба ucAddress)
{ / * Алдыңғы жазудың аяқталуын күтіңіз * / кезінде (EECR & (1 < ; / * Мекен-жай тіркелімін орнату * / EEAR = ucAddress; /* EERE жазу арқылы eeprom оқуын бастаңыз */ EECR | = (1 < / * Мәліметтер тізілімінен деректерді қайтару * / қайтару EEDR; } |
EEPROM сыбайлас жемқорлықтың алдын алу
Төмен VCC кезеңдерінде EEPROM деректері зақымдалуы мүмкін, себебі жабдықтау көлеміtage CPU және EEPROM дұрыс жұмыс істеуі үшін тым төмен. Бұл мәселелер EEPROM пайдаланатын тақта деңгейіндегі жүйелермен бірдей және сол дизайн шешімдерін қолдану керек.
EEPROM деректерінің бүлінуі екі жағдайдан туындауы мүмкінtage тым төмен. Біріншіден, EEPROM-ға тұрақты жазу тізбегі ең аз көлемді қажет етедіtage дұрыс жұмыс істеу. Екіншіден, процессордың өзі нұсқауларды қате орындауы мүмкін, егер жабдықтау көлеміtage тым төмен.
EEPROM деректерінің бүлінуін осы дизайн бойынша ұсыныстарды орындау арқылы оңай болдырмауға болады:
Қуат көзі жеткіліксіз болған кезде AVR RESET белсенді (төмен) күйде ұстаңызtage. Мұны ішкі қоңыр детекторды (BOD) қосу арқылы жасауға болады. Ішкі BOD анықтау деңгейі сәйкес келмесе
қажет анықтау деңгейінде, сыртқы төмен VCC қалпына келтіру қорғаныс тізбегі пайдалануға болады. Жазу әрекеті орындалып жатқанда ысыру орын алса, қуат көзінің көлемі болған жағдайда жазу әрекеті аяқталадыtage жеткілікті.
I / O жады
ATtiny25 / 45/85 кеңістігінің енгізу-шығару кеңістігі көрсетілген «Тіркелудің қысқаша мазмұны» 200-бетте.
Барлық ATtiny25 / 45/85 I / Os және перифериялық құрылғылар енгізу-шығару кеңістігінде орналасқан. Барлық енгізу-шығару орындарына LD / LDS / LDD және ST / STS / STD нұсқаулықтары арқылы қол жетімді, 32 жалпы мақсаттағы жұмыс регистрлері мен енгізу-шығару кеңістігі арасында деректерді жібере алады. 0x00 - 0x1F мекенжай ауқымындағы енгізу-шығару регистрлері SBI және CBI нұсқауларының көмегімен битке тікелей қол жетімді. Бұл регистрлерде жалғыз разрядтардың мәнін SBIS және SBIC нұсқаулықтарын қолдану арқылы тексеруге болады. Толығырақ нұсқаулар жиынтығы бөлімін қараңыз. I / O арнайы IN және OUT командаларын қолданған кезде 0x00 - 0x3F енгізу-шығару адрестері қолданылуы керек. LD және ST нұсқауларын қолдана отырып, енгізу-шығару регистрлеріне мәліметтер кеңістігі ретінде жүгіну кезінде осы адрестерге 0x20 қосылуы керек.
Болашақ құрылғылармен үйлесімділік үшін сақталған биттер қол жетімді болса, нөлге жазылуы керек. Резервтелген енгізу-шығару жады мекен-жайлары ешқашан жазылмауы керек.
Кейбір күй жалаулары оларға логикалық жазу арқылы жойылады. CBI және SBI нұсқаулары көрсетілген битте ғана жұмыс істейтіндігін ескеріңіз, сондықтан осындай күй жалаулары бар регистрлерде қолдануға болады. CBI және SBI нұсқаулары тек 0x00 - 0x1F регистрлерімен жұмыс істейді.
Енгізу-шығару және перифериялық құрылғыларды басқару регистрлері кейінгі бөлімдерде түсіндірілген.
Тіркелудің сипаттамасы
EEARH - EEPROM мекенжай тіркелімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EEAR8 | ҚҰЛАҚ |
Оқу/жазу | R | R | R | R | R | R | R | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Биттер 7: 1 - Резерв: Бөлінген биттер
Бұл биттер болашақта пайдалану үшін сақталған және әрқашан нөл ретінде оқылады.
Биттер 0 - EEAR8: EEPROM мекен-жайы
Бұл ATtiny85-тің ең маңызды EEPROM мекен-жайы. EEPROM аз құрылғыларда, яғни ATtiny25 / ATtiny45, бұл бит сақталған және әрдайым нөлге тең болады. EEPROM мекенжай регистрінің (EEAR) бастапқы мәні анықталмаған, сондықтан тиісті мән EEPROM қол жетпес бұрын жазылуы керек.
EEARL - EEPROM мекенжай тіркелімі
Бит
0x1E | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | ЕРЛ |
Артқы / жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | X | X | X | X | X | X | X | X |
7 бит - EEAR7: EEPROM мекен-жайы
Бұл ATtiny45-тің ең маңызды EEPROM мекен-жайы. EEPROM аз құрылғыларда, яғни ATtiny25, бұл бит сақталған және әрдайым нөлге тең болады. EEPROM мекен-жай тіркелімінің (EEAR) бастапқы мәні анықталмаған, сондықтан тиісті мән EEPROM-ға қол жеткізілгенге дейін жазылуы керек.
Биттер 6: 0 - EEAR [6: 0]: EEPROM мекен-жайы
Бұл EEPROM мекенжай тіркелімінің (төмен) биттері. EEPROM деректер байттары 0… (128/256 / 512-1) ауқымында сызықтық бағытталған. EEAR-дің бастапқы мәні анықталмаған, сондықтан EEPROM-ға қол жеткізгенге дейін тиісті мәнді жазу керек.
EEDR - EEPROM мәліметтерін тіркеу
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EEPROM жазу операциясы үшін EEDR тізілімінде EEPROM-ға EEAR тізілімінде берілген мекен-жайға жазылатын мәліметтер бар. EEPROM оқу әрекеті үшін EEDR ішінен оқылған деректерді қамтиды
EEPROM EEAR берген мекен-жай бойынша.
5.5.4 EECR - EEPROM бақылау тізілімі |
|||||||||
Бит 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0х1С – | – | EEPM1 | EEPM0 | ҚҰРАҚ | EEMPE | EEPE | EERE | EECR | |
Оқу / жазу R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Бастапқы мән 0 0 X | X | 0 | 0 | X | 0 |
7 бит - Резервтелген бит
Бұл бит болашақта пайдалану үшін сақталған және ATtiny0 / 25/45 жүйесінде әрқашан 85 болып оқылады. Болашақ AVR құрылғыларымен үйлесімділік үшін әрқашан осы битті нөлге жазыңыз. Оқып болғаннан кейін, осы жерді жасырыңыз.
6 бит - Резервтелген бит
Бұл бит ATtiny25 / 45/85-те сақталған және әрқашан нөл ретінде оқылады.
Bits 5: 4 - EEPM [1: 0]: EEPROM бағдарламалау режимінің биттері
EEPROM бағдарламалау режимінің биттік параметрі EEPE жазу кезінде қай бағдарламалау әрекеті іске қосылатынын анықтайды. Бір атомдық операцияда мәліметтерді бағдарламалауға болады (ескі мәнді өшіріп, жаңа мәнді бағдарламалайды) немесе Erase және Write амалдарын екі түрлі әрекетке бөлуге болады. Әр түрлі режимдерге арналған бағдарламалау уақыты көрсетілген Кесте 5-1. EEPE орнатылған кезде, EEPMn-ге кез келген жазу еленбейді. Қалпына келтіру кезінде, EEPROM бағдарламалаумен айналыспаса, EEPMn биттері 0b00 қалпына келтіріледі.
Кесте 5-1. EEPROM режимінің биттері
EEPM1 | EEPM0 | Бағдарламалау уақыты | Операция |
0 | 0 | 3.4 мс | Өшіру және бір әрекетте жазу (Атомдық жұмыс) |
0 | 1 | 1.8 мс | Тек өшіру |
1 | 0 | 1.8 мс | Тек жазыңыз |
1 | 1 | – | Болашақта пайдалану үшін сақталған |
3 бит - EERIE: EEPROM дайын үзілісті қосу
EREIE-ді жазу EREPROM Ready Interrupt мүмкіндігін қосады, егер SREG-дегі I-бит орнатылса. EERIE-ді нөлге жазу үзілісті болдырмайды. EEPROM Ready Interrupt тұрақты жад бағдарламалауға дайын болған кезде тұрақты үзілісті тудырады.
2 бит - EEMPE: EEPROM магистрлік бағдарламасын қосу
EEMPE биті EEPE-ді біреуіне жазудың нәтижелі болатынын немесе болмайтынын анықтайды.
EEMPE орнатылған кезде, EEPE-ді төрт сағаттық цикл ішінде орнату таңдалған мекен-жай бойынша EEPROM-ны бағдарламалайды. Егер EEMPE нөлге тең болса, EEPE параметрінің әсері болмайды. EEMPE бағдарламалық жасақтама арқылы біреуге жазылса, аппараттық құрал төрт сағат циклынан кейін битті нөлге дейін тазартады.
1 бит - EEPE: EEPROM бағдарламасын қосу
EEPROM Program Enable Signal EEPE - бұл EEPROM-ға бағдарламалық қамтамасыз ету сигналы. EEPE жазылған кезде, EEPROM EEPMn биттік параметріне сәйкес бағдарламаланатын болады. EEMPE биті EEPE-ге логикалық жазылмас бұрын біреуіне жазылуы керек, әйтпесе EEPROM жазбасы болмайды. Жазуға қол жеткізу уақыты аяқталғаннан кейін EEPE биті аппараттық құралдармен тазаланады. EEPE орнатылған кезде, келесі нұсқаулық орындалмай тұрып, процессор екі циклге тоқтатылады.
Бит 0 - EERE: EEPROM Read Enable
EEPROM Read Enable Signal - EERE - бұл EEPROM-ға оқылатын строб. EEAR регистрінде дұрыс мекен-жай орнатылғанда, EEPROM оқылуын бастау үшін EERE битін біреуіне жазу керек. EEPROM оқу рұқсаты бір нұсқаулықты алады, ал сұралған деректер дереу қол жетімді. EEPROM оқылған кезде, CPU келесі цикл орындалмай тұрып төрт циклге тоқтатылады. Оқу жұмысын бастамас бұрын пайдаланушы EEPE битін сұрауы керек. Егер жазу әрекеті жүріп жатса, не EEPROM оқуға, не EEAR тіркелімін өзгертуге болмайды.
Жүйелік сағат және сағат параметрлері
Сағат жүйелері және олардың таралуы
CPU сағаты
CPU сағаты AVR ядросының жұмысына қатысты жүйенің бөліктеріне бағытталады. МысалыampМұндай модульдердің жалпы мақсаты- Реестр File, Күй регистрі және Stack көрсеткішін ұстайтын деректер жады. CPU сағатын тоқтату ядроға жалпы операциялар мен есептеулер жүргізуге кедергі келтіреді.
I / O Clock - clkI / O
I / O сағатын Timer / Counter сияқты енгізу-шығару модульдерінің көпшілігі қолданады. Енгізу-шығару сағатын Сыртқы үзіліс модулі де қолданады, бірақ кейбір сыртқы үзілістер асинхронды логика арқылы анықталатынын ескеріп, енгізу-шығару сағаты тоқтатылған жағдайда да мұндай үзілістерді анықтауға мүмкіндік береді.
Flash Clock - clkFLASH
Flash сағат Flash интерфейсінің жұмысын басқарады. Flash сағат әдетте CPU сағатымен бір уақытта жұмыс істейді.
ADC Clock - clkADC
ADC арнайы сағат доменімен қамтамасыз етілген. Бұл цифрлық схемалардан туындайтын шуды азайту үшін процессор мен енгізу-шығару сағаттарын тоқтатуға мүмкіндік береді. Бұл ADC конверсиясының дәл нәтижелерін береді.
Перифериялық жылдам генерацияға арналған ішкі PLL - clkPCK
ATtiny25 / 45/85 ішіндегі PLL көзі кірістен 8 есе көбейтілген тактілік жиілікті тудырады. Әдепкі бойынша, PLL көзі ретінде ішкі 8.0 МГц RC осцилляторының шығысын пайдаланады. Сонымен қатар, PLLCSR бит LSM орнатылған болса, PLL RC осцилляторының екіге бөлінген шығуын қолданады. Осылайша, PLL жылдамдығы, жылдам перифериялық сағат - 64 МГц. Жылдам перифериялық сағатты немесе осыдан алдын-ала анықталған сағатты Timer / Counter1 үшін сағат көзі немесе жүйелік сағаттар ретінде таңдауға болады. Қараңыз 6-2-сурет. PLLCSR LSM орнатылған кезде жылдам перифериялық сағат жиілігі екіге бөлінеді, нәтижесінде 32 МГц тактілік жиілік пайда болады. PLLCLK жүйелік сағат ретінде пайдаланылса, LSM орнату мүмкін емес екенін ескеріңіз.
6-2-сурет. PCK сағат жүйесі.
PLL RC осцилляторында бұғатталған және RSC осцилляторын OSCCAL регистрі арқылы реттеу жылдам перифериялық сағатты бір уақытта реттейді. Алайда, егер RC осцилляторы 8 МГц-ден жоғары жиілікке қабылданса да, жылдам перифериялық сағат жиілігі 85 МГц-ке қанықтырады (ең нашар жағдайда) және максималды жиілікте тербеліс күйінде қалады. Бұл жағдайда PLL бұдан әрі RC осцилляторының сағатымен құлыпталмайтындығын ескеру қажет. Сондықтан PLL-ді дұрыс жұмыс ауқымында ұстап тұру үшін OSCCAL түзетулерін 8 МГц-ден жоғары жиілікке қабылдамаған жөн.
Ішкі PLL келесі жағдайларда қосылады:
PLLCSR регистріндегі PLLE биті орнатылған.
CKSEL сақтандырғышы '0001' бағдарламаланған.
CKSEL сақтандырғышы '0011' бағдарламаланған.
PLLCSR бит PLOCK PLL құлыпталған кезде орнатылады. Ішкі RC осцилляторы да, PLL де қуатты өшіру және күту режимінде ұйқы режимінде өшіріледі.
ATtiny15 сыйысымдылық режиміндегі ішкі PLL
ATtiny25 / 45/85 ATtiny15 пайдаланушылары үшін көші-қон құрылғысы болғандықтан, артқы жағынан үйлесімділікке арналған ATtiny15 үйлесімділік режимі бар. ATtiny15 үйлесімділік режимі CKSEL сақтандырғыштарын '0011' бағдарламалау арқылы таңдалады.
ATtiny15 үйлесімділік режимінде ішкі RC осцилляторының жиілігі 6.4 МГц-ге дейін калибрленеді және PLL көбейту коэффициенті 4x деңгейіне орнатылады. Қараңыз 6-3-сурет. Осы реттеулермен тактілік жүйе ATtiny15-пен үйлесімді және нәтижесінде пайда болатын жылдам перифериялық сағат жиілігі 25.6 МГц (ATtiny15 сияқты).
6-3-сурет. ATtiny15 үйлесімділік режиміндегі PCK сағат жүйесі.
Сағат көздері
Құрылғыда төменде көрсетілгендей Flash Fuse биттерімен таңдалатын келесі сағат көзі параметрлері бар. Таңдалған көзден алынған сағат AVR сағат генераторына енгізіліп, тиісті модульдерге бағытталады.
Кесте 6-1. Құрылғы сағатының опциялары таңдаңыз
Құрылғыны блоктау опциясы | CKSEL[3:0](1) |
Сыртқы сағат (қараңыз 26 бет) | 0000 |
Жоғары жиіліктегі PLL сағаты (қараңыз 26 бет) | 0001 |
Калибрленген ішкі осциллятор (қараңыз 27 бет) | 0010(2) |
Калибрленген ішкі осциллятор (қараңыз 27 бет) | 0011(3) |
128 кГц ішкі осциллятор (қараңыз 28 бет) | 0100 |
Төмен жиілікті кристалды осциллятор (қараңыз 29 бет) | 0110 |
Хрустальды осциллятор / керамикалық резонатор (қараңыз 29 бет) | 1000 – 1111 |
Резервтелген | 0101, 0111 |
Барлық сақтандырғыштар үшін «1» бағдарламаланбаған, ал «0» бағдарламаланған дегенді білдіреді.
Құрылғы осы параметр таңдалған күйінде жеткізіледі.
Бұл ATtiny15 үйлесімділік режимін таңдайды, мұнда жүйелік сағат төртке бөлінеді, нәтижесінде 1.6 МГц жиілік жиілігі пайда болады. Қосымша инормация алу үшін қараңыз «Калибрленген ішкі осциллятор» 27-бетте.
Әр тактты таңдау үшін әр түрлі нұсқа келесі бөлімдерде келтірілген. Орталық процессор Қуаттан оянған кезде таңдалған сағат көзі команданың орындалуын бастамас бұрын осциллятордың тұрақты жұмысын қамтамасыз етіп, іске қосуды уақытты белгілеу үшін қолданылады. Орталық процессор қалпына келтіріле бастаған кезде қалыпты жұмыс істей бастағанға дейін қуаттың тұрақты деңгейге жетуіне мүмкіндік беретін қосымша кідіріс болады. Watchdog осцилляторы іске қосу уақытының нақты уақыт бөлігін белгілеу үшін қолданылады. Әр тайм-аут үшін қолданылатын WDT осциллятор циклдарының саны көрсетілген Кесте 6-2.
Кесте 6-2. Watchdog осциллятор циклдерінің саны
Тайм-аут | Циклдар саны |
4 мс | 512 |
64 мс | 8K (8,192) |
Сыртқы сағат
Құрылғыны сыртқы сағат көзінен басқару үшін CLKI көрсетілгендей қозғалуы керек 6-4-сурет. Құрылғыны сыртқы сағатта іске қосу үшін CKSEL сақтандырғыштарын «00» етіп бағдарламалау керек.
6-4-сурет. Сыртқы сағат дискінің конфигурациясы
Осы сағат көзі таңдалғанда, іске қосу уақыты SUT сақтандырғыштарында көрсетілгендей анықталады Кесте 6-3.
Кесте 6-3. Сыртқы сағатты таңдауға арналған іске қосу уақыттары
SUT[1:0] | Іске қосылу уақыты | Қалпына келтірудің қосымша кідірісі | Ұсынылатын пайдалану |
00 | 6 CK | 14CK | BOD қосылды |
01 | 6 CK | 14CK + 4 мс | Қуат жылдам көтеріледі |
10 | 6 CK | 14CK + 64 мс | Баяу күш |
11 | Резервтелген |
Сыртқы сағатты қолдану кезінде MCU тұрақты жұмысын қамтамасыз ету үшін қолданылатын жиіліктің кенеттен өзгеруіне жол бермеу қажет. Бір сағат циклынан екіншісіне 2% -дан астам жиіліктің өзгеруі күтпеген әрекетке әкелуі мүмкін. Мұндай жиіліктің өзгеруі кезінде MCU қалпына келтіруде сақталуын қамтамасыз ету қажет.
Жүйелік сағаттың алдын-ала сатылымы тұрақты жұмыс істей отырып, ішкі сағат жиілігінің жұмыс уақытының өзгеруін жүзеге асыруға болатындығын ескеріңіз. Қараңыз «System Clock Prescaler» бетте 31 мәліметтер үшін.
Жоғары жиіліктегі PLL сағаты
Перифериялық таймер / есептегішті пайдалану үшін және жүйенің сағат көзі үшін RC осцилляторына бекітілген 64 МГц жиіліктегі жылдамдықты қамтамасыз ететін ішкі PLL бар. Жүйелік сағат көзі ретінде таңдалған кезде CKSEL сақтандырғыштарын '1' дейін бағдарламалау арқылы, ол көрсетілгендей төртке бөлінеді. Кесте 6-4.
Кесте 6-4. Жоғары жиілікті PLL сағатының жұмыс режимдері
CKSEL[3:0] | Номиналды жиілік |
0001 | 16 МГц |
Осы сағат көзі таңдалған кезде, іске қосу уақыты көрсетілгендей SUT сақтандырғыштарымен анықталады Кесте 6-5.
Кесте 6-5. Жоғары жиілікті PLL сағатының іске қосылу уақыты
SUT[1:0] | Қуатты сөндіруден бастап іске қосу уақыты | Қосылғанды қалпына келтіруден кейінгі қосымша кідіріс (VCC = 5.0 В) | Ұсынылатын пайдалану |
00 | 14CK + 1K (1024) CK + 4 мс | 4 мс | BOD қосылды |
Кесте 6-5. Жоғары жиілікті PLL сағатының іске қосылу уақыты
SUT[1:0] | Қуатты сөндіруден бастап іске қосу уақыты | Қосылғанды қалпына келтіруден кейінгі қосымша кідіріс (VCC = 5.0 В) | Ұсынылатын пайдалану |
01 | 14CK + 16K (16384) CK + 4 мс | 4 мс | Қуат жылдам көтеріледі |
10 | 14CK + 1K (1024) CK + 64 мс | 4 мс | Баяу күш |
11 | 14CK + 16K (16384) CK + 64 мс | 4 мс | Баяу күш |
Калибрленген ішкі осциллятор
Әдепкі бойынша, ішкі RC осцилляторы шамамен 8.0 МГц жиілікті қамтамасыз етеді. дегенмен томtage және температураға байланысты бұл сағатты пайдаланушы өте дәл калибрлеуі мүмкін. Қараңыз «Калибрленген ішкі RC осцилляторы ырықсыздық »164 бетте және «Ішкі осциллятор жылдамдығы» бетте 192 толығырақ. Құрылғы бағдарламаланған CKDIV8 сақтандырғышымен жеткізіледі. Қараңыз «System Clock Prescaler» бетте 31 толығырақ ақпарат алу үшін.
Бұл сағатты CKSEL сақтандырғыштарын көрсетілгендей бағдарламалау арқылы жүйелік сағат ретінде таңдауға болады 6-6 кесте
27. Егер таңдалса, ол сыртқы компоненттерсіз жұмыс істейді. Қалпына келтіру кезінде жабдық алдын ала бағдарламаланған калибрлеу мәнін OSCCAL тіркеліміне жүктейді және осылайша RC осцилляторын автоматты түрде калибрлейді. Бұл калибрлеу дәлдігі зауыттық калибрлеу ретінде көрсетілген 21-беттегі 2-164-кесте.
OSCCAL регистрін SW-ден өзгерту арқылы қараңыз «OSCCAL - Осцилляторды калибрлеу регистрі» 31-бетте, зауыттық калибрлеуді қолданғаннан гөрі жоғары калибрлеу дәлдігін алуға болады. Бұл калибрлеудің дәлдігі Пайдаланушы калибрлеуінде көрсетілген 21-беттегі 2-164-кесте.
Бұл осциллятор чип сағаты ретінде қолданылған кезде, Watchdog осцилляторы Watchdog таймері үшін және қалпына келтіру уақыты үшін қолданылады. Алдын ала бағдарламаланған калибрлеу мәні туралы қосымша ақпаратты бөлімді қараңыз «Кали- байт байламы »150 бетте.
Сондай-ақ, ішкі осцилляторды CKSEL сақтандырғыштарын «6.4» -ге жазу арқылы 0011 МГц жиілігін қамтамасыз ететін етіп орнатуға болады. Кесте 6-6 төменде. Бұл параметр ATtiny15 сыйысымдылық режимі деп аталады және ATtiny6.4 сияқты 15 МГц жиіліктегі калибрленген сағат көзін қамтамасыз етуге арналған. ATtiny15 сыйысымдылық режимінде PLL Таймер / Санағыш6.4 үшін 25.6 МГц перифериялық сағаттық сигнал беру үшін 1 МГц жиіліктегі ішкі осцилляторды қолданады (қараңыз) “8 биттік таймер / есептегіш1 ATtiny15 режимі »95-бетте). Осы жұмыс режимінде 6.4 МГц жиілік сигналы әрқашан төртке бөлініп, 1.6 МГц жүйелік сағатты қамтамасыз ететіндігін ескеріңіз.
Кесте 6-6. Ішкі калибрленген RC осцилляторының жұмыс режимдері
CKSEL[3:0] | Номиналды жиілік |
0010(1) | 8.0 МГц |
0011(2) | 6.4 МГц |
Құрылғы осы параметр таңдалған күйінде жеткізіледі.
Бұл параметр ATtiny15 үйлесімділік режимін таңдайды, мұнда жүйелік сағат төртке бөлінеді, нәтижесінде 1.6 МГц жиілік пайда болады.
Сағат көзі ретінде калибрленген 8 МГц ішкі осциллятор таңдалғанда, іске қосу уақыты SUT сақтандырғыштарымен көрсетілгендей анықталады. Кесте 6-7 төменде.
Кесте 6-7. Ішкі калибрленген RC осциллятор сағатының іске қосылу уақыты
SUT[1:0] | Іске қосылу уақыты | Қалпына келтіруден кейінгі қосымша кідіріс (VCC = 5.0 В) | Ұсынылатын пайдалану |
00 | 6 CK | 14CK(1) | BOD қосылды |
01 | 6 CK | 14CK + 4 мс | Қуат жылдам көтеріледі |
10(2) | 6 CK | 14CK + 64 мс | Баяу күш |
11 | Резервтелген |
1. Егер RSTDISBL сақтандырғышы бағдарламаланған болса, бағдарламалау режимін енгізуді қамтамасыз ету үшін осы іске қосу уақыты 14CK + 4 мс дейін ұлғайтылады.
2. Құрылғы осы параметр таңдалған күйінде жеткізіледі.
ATtiny15 үйлесімділік режимінде іске қосу уақыты көрсетілгендей SUT сақтандырғыштарымен анықталады Кесте 6-8 төменде.
Кесте 6-8. Ішкі калибрленген RC осциллятор сағатының іске қосылу уақыты (ATtiny15 режимінде)
SUT[1:0] | Іске қосылу уақыты | Қалпына келтіруден кейінгі қосымша кідіріс (VCC = 5.0 В) | Ұсынылатын пайдалану |
00 | 6 CK | 14CK + 64 мс | |
01 | 6 CK | 14CK + 64 мс | |
10 | 6 CK | 14CK + 4 мс | |
11 | 1 CK | 14CK(1) |
Ескертпе: RSTDISBL сақтандырғышы бағдарламаланған болса, бағдарламалау режимін енгізу мүмкіндігін қамтамасыз ету үшін бұл іске қосу уақыты 14CK + 4 мс дейін артады.
Қорытындылай келе, ATtiny15 үйлесімділік режимі туралы қосымша ақпаратты бөлімдерден табуға болады “B порт (PB5: PB0)” қосулы 2 бет, «ATtiny15 сыйысымдылық режиміндегі ішкі PLL» бетте 24, “ATtiny8 режиміндегі 1 биттік таймер / есептегіш15” қосулы 95 бет, 140-беттегі «DebugWIRE шектеулері», 150-беттегі «калибрлеу байттары» және кестеде «Clock Prescaler 33-беттегі »таңдаңыз.
128 кГц ішкі осциллятор
128 кГц ішкі осциллятор 128 кГц жиілікті қамтамасыз ететін төмен қуатты осциллятор болып табылады. Жиілік номиналды 3В және 25°C. Бұл сағатты CKSEL сақтандырғыштарын «0100» мәніне бағдарламалау арқылы жүйелік сағат ретінде таңдауға болады.
Осы сағат көзі таңдалғанда, іске қосу уақыты SUT сақтандырғыштарында көрсетілгендей анықталады Кесте 6-9.
Кесте 6-9. 128 кГц ішкі осциллятордың іске қосылу уақыты
SUT[1:0] | Іске қосылу уақыты | Қалпына келтірудің қосымша кідірісі | Ұсынылатын пайдалану |
00 | 6 CK | 14CK(1) | BOD қосылды |
01 | 6 CK | 14CK + 4 мс | Қуат жылдам көтеріледі |
10 | 6 CK | 14CK + 64 мс | Баяу күш |
11 | Резервтелген |
Ескертпе: RSTDISBL сақтандырғышы бағдарламаланған болса, бағдарламалау режимін енгізу мүмкіндігін қамтамасыз ету үшін бұл іске қосу уақыты 14CK + 4 мс дейін артады.
Төмен жиілікті кристалды осциллятор
Құрылғы үшін сағат көзі ретінде 32.768 кГц сағаттар кристалын пайдалану үшін төмен жиілікті кристалды осцилляторды CKSEL сақтандырғыштарын '0110' күйіне қою арқылы таңдау керек. Кристалды суретте көрсетілгендей етіп қосу керек 6-5-сурет. 32.768 кГц крисалға сәйкес келетін сыйымдылықты табу үшін өндірушінің деректер кестесіне жүгініңіз.
Бұл осциллятор таңдалғанда, іске қосу уақыты көрсетілгендей SUT сақтандырғыштарымен анықталады Кесте 6-10.
Кесте 6-10. Төмен жиілікті кристалдық осциллятор сағатын таңдау үшін іске қосу уақыттары
SUT[1:0] | Қуатты сөндіруден бастап іске қосу уақыты | Қалпына келтіруден кейінгі қосымша кідіріс (VCC = 5.0 В) | Ұсынылатын пайдалану |
00 | 1K (1024) CK(1) | 4 мс | Қуат немесе BOD жылдам өседі |
01 | 1K (1024) CK(1) | 64 мс | Баяу күш |
10 | 32K (32768) CK | 64 мс | Іске қосу кезінде тұрақты жиілік |
11 | Резервтелген |
Ескертпе: Бұл опцияларды іске қосу кезінде жиілік тұрақтылығы маңызды болмаса ғана пайдалану керек.
Төмен жиілікті кристалды осциллятор ішкі жүктеме сыйымдылығын қамтамасыз етеді, қараңыз Кесте 6-11 әр TOSC түйреуішінде.
Кесте 6-11. Төмен жиілікті кристалдық осциллятордың сыйымдылығы
Құрылғы | 32 кГц Osc. Түрі | Қақпақ (Xtal1 / Tosc1) | Қақпақ (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Жүйелік Оскар. | 16 пФ | 6 пФ |
Хрустальды осциллятор / керамикалық резонатор
XTAL1 және XTAL2 - сәйкесінше инверттеудің кіріс және шығысы ampсуретте көрсетілгендей микросхема осцилляторы ретінде пайдалануға конфигурацияланатын тіреуіш 6-5-сурет. Кварц кристалы немесе керамикалық резонатор қолданылуы мүмкін.
C1 және C2 әрқашан кристалдар мен резонаторлар үшін бірдей болуы керек. Конденсаторлардың оңтайлы мәні пайдаланылатын кристалға немесе резонаторға, адасу сыйымдылығының мөлшеріне және қоршаған ортаның электромагниттік шуына байланысты. Кристаллдармен пайдалану үшін конденсаторларды таңдау бойынша кейбір бастапқы нұсқаулар берілген Кесте 6-12 төменде. Керамикалық резонаторлар үшін өндіруші берген конденсатор мәндерін пайдалану керек.
Кесте 6-12. Кристалды осциллятордың жұмыс режимдері
CKSEL[3:1] | Жиілік ауқымы (МГц) | Кристалдармен пайдалануға арналған C1 және C2 конденсаторларына арналған ұсынылған диапазон (pF) |
100(1) | 0.4 – 0.9 | – |
101 | 0.9 – 3.0 | 12 – 22 |
110 | 3.0 – 8.0 | 12 – 22 |
111 | 8.0 – | 12 – 22 |
Ескертпелер: Бұл опцияны кристалдармен емес, тек керамикалық резонаторлармен пайдалану керек.
Осциллятор үш түрлі режимде жұмыс істей алады, олардың әрқайсысы белгілі бір жиілік диапазонында оңтайландырылған. Жұмыс режимі CKSEL [3: 1] сақтандырғыштарымен көрсетілгендей таңдалады Кесте 6-12.
CKSEL0 сақтандырғышы SUT-пен бірге [1: 0] сақтандырғыштар іске қосу уақытын көрсетілгендей таңдайды Кесте 6-13.
Кесте 6-13. Кристалды осциллятор сағатын таңдау үшін іске қосу уақыттары
CKSEL0 | SUT[1:0] | Іске қосылу уақыты | Қалпына келтірудің қосымша кідірісі | Ұсынылатын пайдалану |
0 | 00 | 258 CK(1) | 14CK + 4 мс | Керамикалық резонатор, тез көтерілетін қуат |
0 | 01 | 258 CK(1) | 14CK + 64 мс | Керамикалық резонатор, қуаты баяу көтеріліп келеді |
0 | 10 | 1K (1024) CK(2) | 14CK | BOD қосылған керамикалық резонатор |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 мс | Керамикалық резонатор, тез көтерілетін қуат |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 мс | Керамикалық резонатор, қуаты баяу көтеріліп келеді |
1 | 01 | 16K (16384) CK | 14CK | BOD қосылған, кристалды осциллятор |
1 | 10 | 16K (16384) CK | 14CK + 4 мс | Кристалды осциллятор, тез көтерілетін қуат |
1 | 11 | 16K (16384) CK | 14CK + 64 мс | Қуаты баяу көтеріліп келе жатқан кристалды осциллятор |
Ескертпелер
Бұл опциялар құрылғының максималды жиілігіне жақын жұмыс істемеген кезде ғана қолданылуы керек, және егер іске қосу кезінде жиілік тұрақтылығы бағдарлама үшін маңызды болмаса. Бұл опциялар кристалдарға сәйкес келмейді.
Бұл опциялар керамикалық резонаторлармен пайдалануға арналған және іске қосу кезінде жиіліктің тұрақтылығын қамтамасыз етеді. Сондай-ақ, оларды құрылғының максималды жиілігіне жақын жұмыс істемеген кезде кристалдармен бірге қолдануға болады, ал егер іске қосу кезінде жиіліктің тұрақтылығы қолдану үшін маңызды болмаса.
Әдепкі сағат көзі
Құрылғы CKSEL = “0010”, SUT = “10” және CKDIV8 бағдарламаланған күйде жеткізіледі. Сондықтан әдепкі сағат көзі параметрі ең ұзақ іске қосу уақытымен 8 МГц жиілікте жұмыс істейтін Ішкі RC осцилляторы және жүйелік сағаттың бастапқы масштабтауы 8, нәтижесінде 1.0 МГц жүйелік сағат болады. Бұл әдепкі параметр барлық пайдаланушылардың жүйедегі немесе жоғары дыбысты пайдаланып қалаған сағат көзі параметрін жасай алатынын қамтамасыз етеді.tage Бағдарламашы.
Жүйелік сағатты алдын ала есептеу құралы
ATtiny25 / 45/85 жүйелік сағатын орнату арқылы бөлуге болады «CLKPR - алдын-ала сағаттық регистр» 32-бетте. Бұл мүмкіндікті өңдеу қуатына талап аз болған кезде қуат тұтынуды азайту үшін пайдалануға болады. Мұны барлық сағат көзі опцияларымен пайдалануға болады және ол орталық процессордың және барлық синхронды перифериялық құрылғылардың тактілік жиілігіне әсер етеді. clkI/O, clkADC, clkCPU және clkFLASH мынада көрсетілгендей коэффициентке бөлінеді. 6-беттегі 15-33-кесте.
Ауысу уақыты
Prescaler параметрлері арасында ауысу кезінде System Clock Prescaler сағат жүйесінде ешқандай ақау болмауын және аралық жиіліктің алдыңғы параметрге сәйкес келетін сағат жиілігінен де, жаңа параметрге сәйкес келетін жиіліктен де жоғары болмауын қамтамасыз етеді.
Прескалайзерді іске асыратын толқындық есептегіш бөлінбеген сағаттың жиілігінде жұмыс істейді, бұл процессордың тактілік жиілігінен жылдамырақ болуы мүмкін. Демек, prescaler-дің күйін анықтау мүмкін емес - тіпті оқылатын болса да, және бір сағаттық дивизиядан екіншісіне ауысудың нақты уақытын дәл болжау мүмкін емес.
CLKPS мәндері жазылған кезден бастап жаңа сағат жиілігі белсенді болғанға дейін T1 + T2 мен T1 + 2 * T2 аралығында болады. Бұл аралықта 2 белсенді сағат жиектері шығарылады. Мұнда T1 - алдыңғы сағаттық кезең, ал T2 - бұл прескалайзердің жаңа параметріне сәйкес келетін кезең.
Сағат шығыс буфері
Құрылғы CLKO түйреуішінде жүйелік сағатты шығара алады (XTAL2 штифті ретінде пайдаланылмаған кезде). Шығаруды қосу үшін CKOUT сақтандырғышын бағдарламалау керек. Бұл режим чип сағаты жүйенің басқа тізбектерін қозғау үшін қолданылған кезде қолайлы. Қалпына келтіру кезінде сағат шықпайтынын және сақтандырғыш бағдарламаланған кезде енгізу-шығару түйреуішінің қалыпты жұмысы жоққа шығарылатынын ескеріңіз. Ішкі RC осцилляторы, WDT осцилляторы, PLL және сыртқы сағатты (CLKI) CLKO-да сағат шыққан кезде таңдауға болады. CLKO-да сағат шығысы үшін кристалды осцилляторларды (XTAL1, XTAL2) пайдалану мүмкін емес. Егер System Clock Prescaler қолданылса, онда бөлінген жүйелік сағат шығады.
Тіркелудің сипаттамасы
OSCCAL - Осцилляторды калибрлеу тізілімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | ОСКАЛ |
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Биттер 7: 0 - CAL [7: 0]: Осцилляторды калибрлеу мәні
Осцилляторды калибрлеу регистрі осциллятор жиілігінен процестің өзгеруін жою үшін калибрленген ішкі RC осцилляторын кесу үшін қолданылады. Чипті қалпына келтіру кезінде алдын ала бағдарламаланған калибрлеу мәні автоматты түрде осы регистрге жазылады, бұл зауытта калибрленген жиілікті береді. 21-беттегі 2-164-кесте. Қолданбалы бағдарлама осциллятор жиілігін өзгерту үшін осы регистрді жаза алады. Осцилляторды көрсетілгендей жиіліктерге дейін калибрлеуге болады 21-беттегі 2-164-кесте. Осы ауқымнан тыс калибрлеуге кепілдік берілмейді.
Бұл осциллятор EEPROM және Flash жазбаға кіру уақытын белгілеу үшін пайдаланылатынын ескеріңіз, және бұл жазу уақытына сәйкесінше әсер етіледі. Егер EEPROM немесе Flash жазылған болса, 8.8 МГц-ден артық калибрлемеңіз. Әйтпесе, EEPROM немесе Flash жазу сәтсіз болуы мүмкін.
CAL7 биті осциллятор үшін жұмыс ауқымын анықтайды. Бұл битті 0-ге қою ең төменгі жиілік диапазонын, ал осы битті 1-ге қою ең жоғары жиілік диапазонын береді. Екі жиілік диапазоны қабаттасады, басқаша айтқанда OSCCAL = 0x7F параметрі OSCCAL = 0x80-ге қарағанда жоғары жиілікті береді.
CAL [6: 0] биттері таңдалған диапазондағы жиілікті реттеу үшін қолданылады. 0x00 параметрі осы диапазонда ең төменгі жиілікті, ал 0x7F параметрі диапазонда ең жоғары жиілікті береді.
MCU-дің тұрақты жұмысын қамтамасыз ету үшін калибрлеу мәнін аздап өзгерту керек. Бір циклдан екінші циклға дейінгі жиіліктің 2% -дан жоғары өзгеруі алдын-ала анықталмаған әрекетке әкелуі мүмкін. OSCCAL өзгерістері әр калибрлеу үшін 0x20 аспауы керек. Мұндай жиіліктің өзгеруі кезінде MCU қалпына келтіруде сақталуын қамтамасыз ету қажет
Кесте 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 битін өзгерту үшін CLKPCE битін логикаға сәйкес жазу керек. CLKPCE биті CLKPR-дегі басқа биттер бір уақытта нөлге жазылған кезде ғана жаңартылады. CLKPCE жазылғаннан кейін немесе CLKPS биттері жазылғаннан кейін төрт циклмен аппараттық құралдармен тазаланады. Осы уақыттың ішінде CLKPCE битін қайта жазу уақытты ұзартпайды және CLKPCE битін өшірмейді.
Биттер 6: 4 - Резерв: Бөлінген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler 3 - 0 биттерін таңдаңыз
Бұл биттер таңдалған сағат көзі мен ішкі жүйелік сағат арасындағы бөлу коэффициентін анықтайды. Бұл биттерді қолдану уақытына сәйкес етіп, сағат жиілігін өзгерту үшін жазуға болады. Бөлгіш негізгі сағат кірісін MCU-ға бөлген кезде, бөлу коэффициенті қолданылған кезде барлық синхронды перифериялық құрылғылардың жылдамдығы төмендейді. Бөлу коэффициенттері берілген Кесте 6-15.
Сағат жиілігінің кездейсоқ өзгеруін болдырмау үшін CLKPS биттерін өзгерту үшін арнайы жазу процедурасын орындау қажет:
Clock Prescaler Change Enable (CLKPCE) битін бірге, ал CLKPR-дегі барлық басқа биттерді нөлге жазыңыз.
Төрт цикл ішінде CLKPCE-ге нөл жазып, қажетті мәнді CLKPS-ке жазыңыз.
Жазу процедурасы үзілмегеніне көз жеткізу үшін алдын-ала өлшегіштің параметрін өзгерткен кезде үзілістерді өшіру керек.
CKDIV8 сақтандырғышы CLKPS биттерінің бастапқы мәнін анықтайды. CKDIV8 бағдарламаланбаған болса, CLKPS биттері «0000» мәніне қалпына келтіріледі. Егер CKDIV8 бағдарламаланса, CLKPS биттері іске қосу кезінде сегіз бөлу коэффициентін беретін «0011» мәніне қалпына келтіріледі. Бұл мүмкіндікті таңдалған сағат көзінің ағымдағы жұмыс жағдайында құрылғының максималды жиілігінен жоғары жиілігі болса, пайдалану керек. CKDIV8 сақтандырғыш параметріне қарамастан CLKPS биттеріне кез келген мәнді жазуға болатындығын ескеріңіз. Қолданбалы бағдарламалық құрал жеткілікті бөлу коэффициентінің болуын қамтамасыз етуі керек
таңдалған сағат көзі қазіргі жұмыс жағдайында құрылғының максималды жиілігінен жоғары жиілікке ие болса, таңдалады. Құрылғы бағдарламаланған CKDIV8 сақтандырғышымен жеткізіледі.
Кесте 6-15. Clock Prescaler таңдаңыз
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Сағаттың бөліну факторы |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 2 |
0 | 0 | 1 | 0 | 4 |
0 | 0 | 1 | 1 | 8 |
0 | 1 | 0 | 0 | 16 |
0 | 1 | 0 | 1 | 32 |
0 | 1 | 1 | 0 | 64 |
0 | 1 | 1 | 1 | 128 |
1 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 1 | Резервтелген |
1 | 0 | 1 | 0 | Резервтелген |
1 | 0 | 1 | 1 | Резервтелген |
1 | 1 | 0 | 0 | Резервтелген |
1 | 1 | 0 | 1 | Резервтелген |
1 | 1 | 1 | 0 | Резервтелген |
1 | 1 | 1 | 1 | Резервтелген |
Ескертпе: Алдын ала масштабтау құрылғысы ATtiny15 үйлесімділік режимінде өшірілген және CLKPR-ге жазу да, CKDIV8 сақтандырғышын бағдарламалау да жүйелік сағатқа әсер етпейді (ол әрқашан 1.6 МГц болады).
Қуатты басқару және ұйқы режимі
Кодтың тиімділігі мен өнімділіктің жоғары өнімділігі AVR микроконтроллерлерін қуаты төмен қосымшалар үшін тамаша таңдау етеді. Сонымен қатар, ұйқы режимі қосымшаның MCU-да пайдаланылмаған модульдерді өшіруге мүмкіндік береді, осылайша қуатты үнемдейді. AVR әр түрлі ұйқы режимдерін ұсынады, бұл пайдаланушыға тұтыну қуатын қосымшаға сәйкес келтіруге мүмкіндік береді.
Ұйқы режимі
6-беттегі 1-23-сурет ATtiny25 / 45/85-те әртүрлі сағаттық жүйелер мен олардың таралуын ұсынады. Сурет тиісті ұйқы режимін таңдауда пайдалы. Кесте 7-1 әр түрлі ұйқы режимін және олардың ояну көздерін көрсетеді.
Кесте 7-1. Әртүрлі ұйқы режимдеріндегі белсенді сағат домендері және ояту көздері
Белсенді сағат домендері | Осцилляторлар | Ояну көздері | ||||||||||
Ұйқы режимі | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Негізгі сағат көзі қосылды | INT0 және түйреуішті өзгерту | SPM / EEPROM
Дайын |
USI іске қосу жағдайы |
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 үшін тек деңгейдегі үзіліс.
Үш ұйқы режимінің кез-келгеніне кіру үшін, MCUCR-дегі SE биті қисынға сәйкес жазылып, SLEEP нұсқауы орындалуы керек. MCUCR регистріндегі SM [1: 0] биттері SLEEP нұсқаулығымен ұйқы режимінің қайсысын қосатындығын таңдайды (Күту, ADC шуды азайту немесе өшіру). Қараңыз Кесте 7-2 түйіндеме үшін.
Егер қосылған үзіліс MCU ұйқы режимінде болса, MCU оянады. Содан кейін MCU іске қосылу уақытына қосымша төрт циклге тоқтатылады, үзіліс тәртібін орындайды және SLEEP нұсқаулығынан орындауды жалғастырады. Тізілімнің мазмұны File және құрылғы ұйқыдан оянғанда SRAM өзгермейді. Егер ұйқы режимінде қалпына келтіру орын алса, MCU оянады және Векторды қалпына келтіру функциясын орындайды.
Ескертпе: егер деңгейдің іске қосылған үзілуі ояту үшін пайдаланылса, өзгертілген деңгей MCU-ны ояту үшін (және MCU үзілістердің қызмет көрсету тәртібіне кіруі үшін) біраз уақыт ұсталуы керек. Қараңыз “Сыртқы үзілістер” 49-бетте мәліметтер үшін.
Күту режимі
SM[1:0] биттері 00-ге жазылғанда, SLEEP нұсқауы MCU-ны күту режиміне енгізеді, процессорды тоқтатады, бірақ аналогтық компаратор, ADC, USI, Timer/Counter, Watchdog және үзу жүйесіне жұмысын жалғастыруға мүмкіндік береді. жеу. Бұл ұйқы режимі негізінен clkCPU және clkFLASH жұмысын тоқтатады, сонымен бірге басқа сағаттардың жұмыс істеуіне мүмкіндік береді.
Күту режимі MCU-ға сыртқы іске қосылған үзілістерден, сондай-ақ ішкі таймерлерден оятуға мүмкіндік береді. Егер аналогтық компаратордың үзілісінен ояту қажет болмаса, аналогтық компараторды ACD битін орнату арқылы қуаттандыруға болады «ACSR - аналогты компараторды басқару және күй регистрі» бетте 120. Бұл күту режимінде қуат тұтынуды азайтады. Егер ADC қосылса, түрлендіру осы режим енгізілген кезде автоматты түрде басталады.
ADC шуды азайту режимі
SM[1:0] биттері 01-ге жазылғанда, SLEEP нұсқауы MCU-ны ADC шуды азайту режиміне енгізеді, процессорды тоқтатады, бірақ 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 бағдарламалық жасақтамасын өшіру
Қоңыр детекторды (BOD) BODLEVEL сақтандырғыштары қосқанда (қараңыз) 20-беттегі 4-148-кесте), Басқарма жеткізілім көлемін белсенді түрде бақылайдыtage ұйқы кезінде. Кейбір құрылғыларда қуатты өшіру ұйқы режимінде бағдарламалық құрал арқылы BOD өшіру арқылы қуатты үнемдеуге болады. Ұйқы режимінің қуат тұтынуы содан кейін BOD сақтандырғыштармен жаһандық түрде өшірілген кездегідей деңгейде болады.
Егер BOD бағдарламалық құрал арқылы өшірілсе, BOD функциясы ұйқы режиміне кіргеннен кейін бірден өшіріледі. Ұйқыдан оянғаннан кейін BOD автоматты түрде қайта қосылады. Бұл ұйқы кезеңінде VCC деңгейі төмендеген жағдайда қауіпсіз жұмысты қамтамасыз етеді.
BOD ажыратылған кезде ұйқы режимінен ояну уақыты RESET қалпына келтірілгенге дейін болады. Пайдаланушы ұйқыдан ояну уақытын қолмен конфигурациялауы керек, осылайша өткізгіш сілтемесі басталатын уақытқа ие болады және MCU кодты орындауды жалғастырмас бұрын BOD дұрыс жұмыс істейді. Кестедегі SUT [1: 0] және CKSEL [3: 0] сақтандырғыштарын қараңыз 149 беттегі “Сақтандырғыш төмен байт”
BOD өшіруді MCU басқару регистрінің BODS (BOD Sleep) биті басқарады, қараңыз «MCUCR - MCU бақылауы Тіркелу »37-бетте берілген. Осы битті біреуіне жазу BOD-ді өшіреді, ал нөлді жазу BOD-ді белсенді етеді. Әдепкі параметр нөлге тең, яғни BOD белсенді.
BODS битіне жазу уақыт реттілігі және қосу битімен бақыланады, қараңыз «MCUCR - MCU Control Regis- тер »37-бетте.
Шектеулер
BOD функциясын өшіру функциясы келесі құрылғыларда ғана орындалған:
ATtiny25, E нұсқасы және жаңасы
ATtiny45, D нұсқасы және жаңасы
ATtiny85, С нұсқасы және жаңасы
Түзетулер құрылғы пакетінде белгіленген және келесідей орналасуы мүмкін:
8P3 және 8S2 пакеттерінің төменгі жағы
20M1 пакетінің жоғарғы жағы
Қуатты азайту тізілімі
Қуатты азайту регистрі (PRR), қараңыз «PRR - қуатты азайту регистрі» 38-бетте, жеке перифериялық құрылғыларға сағатты тоқтату арқылы қуат тұтынуды азайту әдісін ұсынады. Периферияның ағымдағы күйі қатып қалған және енгізу-шығару регистрлері оқылмайды және жазылмайды. Перифериялық құрылғы сағатты тоқтату кезінде пайдаланатын ресурстар бос қалады, сондықтан периферия көп жағдайда сағатты тоқтатқанға дейін өшірілуі керек. PRR-де битті тазарту арқылы жүзеге асырылатын модульді ояту модульді сөндіруге дейінгі күйге келтіреді.
Модульді өшіру жалпы қуат шығынын едәуір азайту үшін күту режимінде және белсенді режимде қолданыла алады. Барлық басқа ұйқы режимдерінде сағат тоқтатылған. Қараңыз «Енгізу-шығару модульдерінің қоректік тогы» 177 бетте мысалыamples.
Қуатты тұтынуды барынша азайту
AVR басқарылатын жүйеде қуат тұтынуды минимизациялауға тырысқанда бірнеше мәселелерді ескеру қажет. Жалпы, ұйқы режимін мүмкіндігінше пайдалану керек, ал ұйқы режимін құрылғының функциялары мүмкіндігінше аз жұмыс істейтін етіп таңдау керек. Қажет емес барлық функцияларды өшіру керек. Атап айтқанда, қуаттың ең аз тұтынылуына қол жеткізу үшін келесі модульдер ерекше назарға алынуы мүмкін.
Аналогты сандық түрлендіргіш
Егер қосылса, ADC барлық ұйқы режимдерінде қосылады. Қуатты үнемдеу үшін кез-келген ұйқы режиміне кірмес бұрын ADC өшірілуі керек. ADC өшірілгенде және қайта қосылған кезде келесі түрлендіру кеңейтілген түрлендіру болады. Қараңыз «Аналогты цифрлық түрлендіргіш» 122 бетте ADC жұмысы туралы толық ақпарат алу үшін.
Аналогтық компаратор
Күту режиміне кіргенде, пайдаланылмаса, аналогтық компараторды өшіру керек. ADC шуды азайту режиміне кіргенде, аналогтық компараторды өшіру керек. Басқа ұйқы режимдерінде Аналогтық салыстыру құралы автоматты түрде ажыратылады. Дегенмен, егер аналогтық компаратор Ішкі томды пайдалану үшін орнатылған болсаtage Кіріс ретінде сілтеме, барлық ұйқы режимдерінде Аналогтық компараторды өшіру керек. Әйтпесе, Ішкі томtage Анықтама ұйқы режиміне тәуелсіз қосылады. сілтемесін қараңыз 119-беттегі «Аналогтық компаратор» Аналогтық компараторды қалай теңшеу керектігі туралы толық ақпарат алу үшін
Қоңыр түсті детектор
Егер қосымшада қоңыр түсті детектор қажет болмаса, бұл модульді өшіру керек. Егер қоңыр түсті детектор BODLEVEL сақтандырғыштарымен қосылса, ол барлық ұйқы режимдерінде қосылады, демек, әрдайым қуат алады. Тереңірек ұйқы режимдерінде бұл жалпы ағымдағы тұтынуға айтарлықтай ықпал етеді. Қараңыз «Қоңыр түсті Detec- туралы »41-бетте көрсетілген және «Бағдарламалық жасақтама BOD өшіру» бетте 35 Қоңыр детекторды баптау туралы егжей-тегжейлі ақпарат алу үшін.
Ішкі томtage Сілтеме
Ішкі томtage Анықтама Қоңыр шығуды анықтау, аналогтық салыстыру немесе ADC қажет болғанда қосылады. Бұл модульдер жоғарыдағы бөлімдерде сипатталғандай өшірілсе, ішкі томtage сілтеме өшіріледі және ол қуатты тұтынбайды. Қайта қосылғанда, пайдаланушы шығыс пайдаланбас бұрын сілтемені іске қосуға рұқсат беруі керек. Анықтама ұйқы режимінде қосылып тұрса, шығысты бірден пайдалануға болады. қараңыз «Ішкі томtage Анықтама» 42-бетте іске қосу уақыты туралы толық ақпарат алу үшін.
Күзет таймері
Егер бақылаушы таймері қосымшада қажет болмаса, бұл модульді өшіру керек. Егер қарауыл таймері қосылса, ол барлық ұйқы режимдерінде қосылады, демек, әрдайым қуат алады. Тереңірек ұйқы режимдерінде бұл жалпы ағымдағы тұтынуға айтарлықтай ықпал етеді. Қараңыз 42-беттегі “Күзетші таймер” Watchdog таймерін қалай теңшеу туралы егжей-тегжейлі ақпарат алу үшін.
Порт түйреуіштері
Ұйқы режиміне кірген кезде барлық порт түйреуіштері ең аз қуатты пайдалану үшін конфигурациялануы керек. Ең бастысы, ешқандай түйреуіштердің резистивті жүктемелерді қозғамауын қамтамасыз ету. Енгізу/шығару сағаты (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 | BODS | PUD | SE | SM1 | SM0 | БОДС | ISC01 | ISC00 | MCUCR |
Оқу/жазу | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит 7 - МҮШЕЛЕР: ҰЙҚЫ Ұйқы
BOD функциясын өшіру функциясы кейбір құрылғыларда ғана бар. Қараңыз 36-беттегі «шектеулер».
Ұйқы кезінде BOD-ді ажырату үшін (қараңыз) 7-беттегі 1-34-кестеBODS биті логикалық түрде жазылуы керек. Бұл MCUCR ішіндегі BODSE уақытының реттілігі және қосу битімен бақыланады. Біріншіден, BODS және BODSE екеуі де біреуіне қойылуы керек. Екіншіден, төрт цикл ішінде BODS бірге, ал BODSE нөлге теңестірілуі керек. BODS биті орнатылғаннан кейін үш сағаттық циклда белсенді болады. Нақты ұйқы режимінде BOD өшіру үшін BODS белсенді болған кезде ұйқы туралы нұсқаулық орындалуы керек. BODS биті үш сағат циклынан кейін автоматты түрде тазаланады.
Ұйықтайтын BOD енгізілмеген құрылғыларда бұл бит қолданылмайды және әрдайым нөлге тең болады.
5 бит - SE: ұйқы режимін қосу
SLEEP нұсқауы орындалған кезде MCU ұйқы режиміне өтуі үшін SE биті логикалық біріне жазылуы керек. Бағдарламалаушының мақсаты болмаса, MCU ұйқы режиміне кірмеу үшін SLEEP нұсқаулығын орындау алдында бірден Sleep Enable (SE) битін бір битке жазып, оянғаннан кейін оны дереу тазалау ұсынылады.
4: 3 биттер - SM [1: 0]: ұйқы режимі 1 және 0 биттерді таңдаңыз
Бұл биттер көрсетілгендей үш ұйқы режимінің бірін таңдайды Кесте 7-2.
Кесте 7-2. Ұйқы режимін таңдаңыз
SM1 | SM0 | Ұйқы режимі |
0 | 0 | Бос |
0 | 1 | ADC шуды азайту |
1 | 0 | Өшіру |
1 | 1 | Резервтелген |
2 бит - BODSE: BOD ұйқы режимін қосу
BOD функциясын өшіру функциясы кейбір құрылғыларда ғана бар. Қараңыз 36-беттегі «шектеулер».
BODSE биті BODS бит сипаттамасында түсіндірілгендей, BODS басқару битін орнатуға мүмкіндік береді. BOD өшіру уақыты реттілігімен бақыланады.
Бұл бит BOD өшірілмеген бағдарламалық жасақтамада қолданылмаған және сол құрылғыларда нөл ретінде оқылатын болады.
PRR - қуатты азайту регистрі
Қуатты азайту регистрі перифериялық сағат сигналдарын өшіруге мүмкіндік беру арқылы қуат шығынын азайту әдісін ұсынады.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | 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 қалпына келтіру
Қалпына келтіру кезінде барлық енгізу-шығару регистрлері бастапқы мәндеріне қойылады және бағдарлама Reset Vecor бағдарламасынан басталады. Reset Vector-да орналастырылған нұсқаулық RJMP - Relative Jump - қайта қалпына келтіру процедурасына нұсқау болуы керек. Егер бағдарлама ешқашан үзіліс көзін қоспаса, үзу векторлары қолданылмайды және бұл жерлерде кәдімгі бағдарлама кодын орналастыруға болады. Электр схемасы 8-1-сурет қалпына келтіру логикасын көрсетеді. Қалпына келтіру схемасының электрлік параметрлері келтірілген «Жүйе және қалпына келтіру сипаттамалары» бетте 165.
Сурет 8-1 Логиканы қалпына келтіру
AVR енгізу-шығару порттары қалпына келтіру көзі белсенді болған кезде бірден бастапқы қалпына келеді. Бұл үшін кез-келген сағат көзі жұмыс істемеуі керек.
Барлық қалпына келтіру көздері белсенді емес болғаннан кейін, ішкі қалпына келтіруді созып, кешіктіру есептегіші шақырылады. Бұл қалыпты жұмыс басталғанға дейін қуаттың тұрақты деңгейіне жетуге мүмкіндік береді. Кідіріс есептегішінің тайм-периодын пайдаланушы SUT және CKSEL сақтандырғыштары арқылы анықтайды. Кешіктіру кезеңіне арналған әр түрлі таңдаулар көрсетілген «Сағат Дереккөздер »25 бетте.
Дереккөздерді қалпына келтіру
ATtiny25 / 45/85 қалпына келтірудің төрт көзі бар:
Қосылғанда қалпына келтіру. Жабдық көлемі жеткенде MCU қалпына келтіріледіtage Қуатты қосулы қалпына келтіру шегінен (VPOT) төмен.
Сыртқы қалпына келтіру. RESET түйреуішінде минималды импульстің ұзындығынан төмен деңгей болған кезде MCU қалпына келтіріледі.
Күзетшіні қалпына келтіру. Бақылау таймері мерзімі аяқталғанда және қарауыл қосулы болғанда MCU қалпына келтіріледі.
Қоңыр түсті қалпына келтіру. Жабдық көлемі жеткенде MCU қалпына келтіріледіtage VCC Қоңыр шығуды қалпына келтіру шегінен (VBOT) төмен және Қоңыр шығу детекторы қосылған.
Қуатты қалпына келтіру
Қуатты қалпына келтіру (POR) импульсы чипте анықтау схемасы арқылы жасалады. Анықтау деңгейі анықталған «Sys- температура және қалпына келтіру »165 бетте. POR VCC анықтау деңгейінен төмен болған сайын іске қосылады. POR тізбегі іске қосуды қалпына келтіруді іске қосу үшін, сондай-ақ жабдықтау көлемінің ақаулығын анықтау үшін пайдаланылуы мүмкін.tage.
Қуатты қосу кезінде қалпына келтіру (POR) тізбегі құрылғыны қосулы күйден қалпына келтіруді қамтамасыз етеді. Қосылғанда қалпына келтіру шегіне жету томtage кідіріс санауышын шақырады, ол VCC көтерілгеннен кейін құрылғының RESET режимінде қанша уақыт сақталатынын анықтайды. RESET сигналы VCC анықтау деңгейінен төмендеген кезде ешбір кідіріссіз қайтадан іске қосылады.
8-2-сурет. MCU іске қосу, RESET VCC-ге байланысты
ІШКІ ҚАЛПЫНА ҚОСУ
8-3-сурет. MCU іске қосу, RESET сыртқы кеңейтілген
Сыртқы қалпына келтіру
Сыртқы қалпына келтіру мүмкіндігі қосылған болса, RESET түйреуішіндегі төмен деңгей арқылы жасалады. Импульстің минималды енінен ұзағырақ қалпына келтіріңіз (қараңыз) «Жүйе және қалпына келтіру сипаттамалары» бетте 165) тіпті сағат жұмыс істемесе де, қалпына келтіруді жасайды. Қысқа импульстар қалпына келтіруді жасауға кепілдік бермейді. Қолданылатын сигнал Қалпына келтіру шегіне жеткендеtage – VRST – оның оң жиегінде, кідіріс санауышы Күту уақыты аяқталғаннан кейін MCU іске қосады.
8-4-сурет. Жұмыс кезінде сыртқы қалпына келтіру
Қоңыр түсті анықтау
ATtiny25/45/85 құрылғысында жұмыс кезінде VCC деңгейін тіркелген триггер деңгейімен салыстыру арқылы бақылауға арналған On-chip Brown Detection (BOD) схемасы бар. BOD үшін іске қосу деңгейін BODLEVEL сақтандырғыштары арқылы таңдауға болады. Триггер деңгейінде ұштықсыз қоңыр шығуды анықтауды қамтамасыз ету үшін гистерезис бар. Анықтау деңгейіндегі гистерезис VBOT+ = VBOT + VHYST/2 және VBOT- = VBOT – VHYST/2 ретінде түсіндірілуі керек.
BOD қосылған кезде және VCC триггер деңгейінен төмен мәнге дейін төмендейді (VBOT- in 8-5-сурет), Қоңыр күйді қалпына келтіру дереу іске қосылады. VCC триггер деңгейінен жоғарылағанда (VBOT+ in 8-5-сурет), кідіріс санауышы tTOUT күту уақыты аяқталғаннан кейін MCU-ны іске қосады.
BOD тізбегі тек VCC төмендеуін анықтайды, егер томtage берілген tBOD шамасынан ұзағырақ триггер деңгейінен төмен тұрады «Жүйе және қалпына келтіру сипаттамалары» бетте 165.
Күзетшіні қалпына келтіру
Watchdog уақыты біткен кезде ол бір CK цикл ұзақтығының қысқа қалпына келтіру импульсін жасайды. Бұл импульстің құлау жиегінде кешіктіру таймері tTOUT күту уақытын санай бастайды. қараңыз 42-беттегі “Күзетші таймер” қарауыл таймерінің жұмысы туралы толық ақпарат алу үшін.
Тtage Анықтамалық сигналдарды қосу және іске қосу уақыты
Томtage сілтемеде оны пайдалану тәсіліне әсер етуі мүмкін іске қосу уақыты бар. Іске қосу уақыты берілген «Жүйе және қалпына келтіру сипаттамалары» бетте 165. Қуатты үнемдеу үшін сілтеме әрдайым қосыла бермейді. Анықтама келесі жағдайларда қосылады:
BOD қосулы болған кезде (BODLEVEL [2: 0] сақтандырғыш биттерін бағдарламалау арқылы).
Жолақ сілтемесі Аналогтық компараторға қосылған кезде (ACSR-де ACBG битін орнату арқылы).
ADC қосылған кезде.
Осылайша, BOD қосылмаған кезде, ACBG битін орнатқаннан немесе ADC қосқаннан кейін, пайдаланушы әрдайым сілтеме аналогты компаратордан немесе ADC-дан шығудан бұрын іске қосылуға рұқсат беруі керек. Қуатты азайту режимінде қуаттың тұтынылуын азайту үшін пайдаланушы өшіру режиміне кірмес бұрын анықтаманың өшірілгеніне көз жеткізу үшін жоғарыдағы үш шартты болдырмауы мүмкін.
Күзет таймері
Watchdog таймері 128 кГц жылдамдықпен жұмыс істейтін чипті осциллятордан жұмыс істейді. Watchdog Timer алдын-ала өлшегішті басқару арқылы Watchdog Reset интервалын көрсетілгендей етіп реттеуге болады. 8-беттегі 3-46-кесте. WDR - Watchdog Reset - нұсқаулық Watchdog таймерін қалпына келтіреді. Watchdog Timer өшірілгенде және чипті қалпына келтіру кезінде қалпына келтіріледі. Қалпына келтіру кезеңін анықтау үшін он түрлі сағаттық цикл кезеңдерін таңдауға болады. Егер қалпына келтіру кезеңі басқа Watchdog қалпына келтірусіз аяқталса, ATtiny25 / 45/85 ысырады және Reset Vector-дан орындайды. Watchdog қалпына келтіру туралы уақыт туралы толық ақпаратты мына жерден қараңыз 8-беттегі 3-46-кесте.
Watchdog Timer-ді қалпына келтірудің орнына үзіліс жасау үшін конфигурациялауға болады. Бұл қуатты өшіру үшін оятуды қолданған кезде өте пайдалы болуы мүмкін.
Watchdog-тің байқаусызда өшірілуіне немесе уақыттың аяқталу мерзімінің кездейсоқ өзгеруіне жол бермеу үшін WDTON сақтандырғышы арқылы екі түрлі қауіпсіздік деңгейі таңдалған. Кесте 8-1 қараңыз «Конвенцияны өзгертудің уақыт бойынша реттілігі қарауыл таймінің фигурасы »43-бетте мәліметтер үшін.
Кесте 8-1. WDT конфигурациясы WDTON сақтандырғыш параметрлерінің функциясы ретінде
WDTON | Қауіпсіздік деңгейі | WDT бастапқы күйі | WDT-ді қалай өшіруге болады | Уақытты қалай ауыстыруға болады |
Бағдарламаланбаған | 1 | Өшірілген | Уақыттық реттілік | Ешқандай шектеулер жоқ |
Бағдарламаланған | 2 | Қосылған | Әрқашан қосулы | Уақыттық реттілік |
8-7-сурет. Күзет таймері
Күзетші таймерінің конфигурациясын өзгертудің уақыттық реттілігі
Конфигурацияны өзгерту кезегі екі қауіпсіздік деңгейі арасында аздап ерекшеленеді. Әр деңгей үшін бөлек процедуралар сипатталған.
Қауіпсіздік деңгейі 1: Бұл режимде Watchdog таймері бастапқыда өшіріледі, бірақ WDE битін біреуіне шектеусіз жазу арқылы қосуға болады. Қосылған Watchdog таймерін өшірген кезде уақытты реттілік қажет. Қосылған Watchdog таймерін өшіру үшін келесі процедураны орындау қажет:
Сол әрекетте WDCE және WDE-ге логикасын жазыңыз. WDE битінің алдыңғы мәнінен гөрі WDE-ге логикалық жазу керек.
Келесі төрт цикл ішінде, сол әрекетте WDE және WDP биттерін қалағаныңызша жазыңыз, бірақ WDCE биті өшірілді.
Қауіпсіздік деңгейі 2: Бұл режимде Watchdog таймері әрқашан қосылады және WDE биті әрқашан бір ретінде оқиды. Watchdog тайм-ауты кезеңін өзгерту кезінде уақытты реттілік қажет. Watchdog тайм-аутын өзгерту үшін келесі процедураны орындау қажет:
Сол әрекетте WDCE және WDE-ге логикалық жазыңыз. WDE әрдайым орнатылған болса да, WDE уақыты реттілігін бастау үшін біреуіне жазылуы керек.
Келесі төрт цикл ішінде, сол әрекетте WDP биттерін қалағаныңызша жазыңыз, бірақ WDCE биті өшіріліп. WDE битіне жазылған мән маңызды емес.
Код Example
Келесі код мысалыample WDT өшіру үшін бір жинақ пен бір C функциясын көрсетеді. Бұрынғыample бұл функцияларды орындау кезінде үзілістер болмайтындай етіп үзілістер бақыланады (мысалы, ғаламдық үзілістерді өшіру арқылы) деп болжайды.
Жинау коды Example(1) |
WDT_off:
wdr ; MCUSR-де WDRF өшіріңіз ldi r16, (0< MCUSR шығарылды, r16 ; WDCE және WDE-ге логикалық жазыңыз ; Байқаусызда Watchdog қалпына келтірілуіне жол бермеу үшін ескі прескалер параметрін сақтаңыз r16, WDTCR ori r16, (1< шығыс WDTCR, r16 ; WDT өшіріңіз ldi r16, (0< шығыс WDTCR, r16 рет |
C коды Example(1) |
WDT_off (жарамсыз)
{ _WDR (); /* MCUSR ішіндегі WDRF файлын тазалау */ 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 | БОРФ | EXTRF | PORF | MCUSR |
Оқу/жазу | R | R | R | R | R/W | R/W | R/W | R/W |
Бастапқы мән 0 0 0 0 бит сипаттамасын қараңыз
Биттер 7: 4 - Резерв: Бөлінген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
3 бит - WDRF: қарауылдың қалпына келтіру жалаушасы
Бұл бит Watchdog қалпына келтірілсе, орнатылады. Бит қалпына келтіруді қалпына келтіру арқылы немесе жалаушаға логикалық нөл жазу арқылы қалпына келтіріледі.
2 бит - BORF: қалпына келтіру жалаушасы
Бұл бит қоңырауды қалпына келтірген жағдайда орнатылады. Бит қалпына келтіруді қалпына келтіру арқылы немесе жалаушаға логикалық нөл жазу арқылы қалпына келтіріледі.
1 бит - EXTRF: Сыртқы қалпына келтіру жалаушасы
Сыртқы қалпына келтіру пайда болса, бұл бит орнатылады. Бит қалпына келтіру арқылы қалпына келтіріледі немесе жалаушаға логикалық нөл жазу арқылы қалпына келтіріледі.
Бит 0 - PORF: Қуатты қалпына келтіру жалаушасы
Бұл бит қуат қосуды қалпына келтірсе орнатылады. Бит тек логикалық нөлге жалаушаға жазу арқылы қалпына келтіріледі.
Қалпына келтіру шарттарын анықтау үшін қалпына келтіру жалаушаларын пайдалану үшін пайдаланушы бағдарламада MCUSR мүмкіндігінше ерте оқып, содан кейін қалпына келтіруі керек. Егер реестр басқа қалпына келтірілмес бұрын тазаланса, қалпына келтіру жалаушаларын зерттеу арқылы қалпына келтірудің көзін табуға болады.
WDTCR - қарауыл таймерін басқару регистрі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Оқу/жазу | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
7 бит - WDIF: қарауылдың күту уақытының үзілуі
Бұл бит Watchdog Timer-де тайм-аут пайда болған кезде және Watchdog Timer үзіліске теңшелген кезде орнатылады. WDIF тиісті үзілісті өңдеу векторын орындау кезінде аппараттық құралдармен жойылады. Сонымен қатар, WDIF жалаушаға логикалық жазу арқылы тазартылады. SREG және WDIE ішіндегі I-бит орнатылған кезде, Watchdog тайм-аут үзілісі орындалады.
6-разряд - WDIE: қарауыл уақытының үзілуін қосыңыз
Бұл бит біреуіне жазылса, WDE өшіріліп, күй регистріндегі I-разряд орнатылған кезде, қарауылдағы уақыттың үзілуі қосылады. Бұл режимде тиісті үзіліс қалпына келтірудің орнына орындалады, егер қарауыл таймерінде күту уақыты орын алса.
Егер WDE орнатылса, уақыт аяқталған кезде WDIE автоматты түрде аппараттық құралдармен тазаланады. Бұл үзілісті пайдалану кезінде Watchdog қалпына келтіру қауіпсіздігін сақтау үшін пайдалы. WDIE биті жойылғаннан кейін келесі тайм-аут қалпына келтіреді. Watchdog қалпына келтірмеу үшін WDIE әр үзілістен кейін орнатылуы керек.
Кесте 8-2. Watchdog таймер конфигурациясы
WDE | WDIE | Күзетші таймер күйі | Тайм-ауттағы әрекет |
0 | 0 | Тоқтады | Жоқ |
0 | 1 | Жүгіру | Үзу |
1 | 0 | Жүгіру | Қалпына келтіру |
1 | 1 | Жүгіру | Үзу |
4 бит - WDCE: қарауыл итін өзгертуді қосу
Бұл бит WDE биті логикалық нөлге жазылған кезде қойылуы керек. Әйтпесе, қарауыл иесі өшірілмейді. Біреуіне жазылғаннан кейін, жабдық төрт циклдік циклдан кейін осы битті өшіреді. Watchdog өшіру процедурасы үшін WDE битінің сипаттамасынан қараңыз. Бұл бит алдын-ала өлшегіш биттерін өзгерту кезінде де орнатылуы керек. Қараңыз «Уақыттық тізбектер қарауыл таймерінің конфигурациясын өзгертуге арналған »бетте 43.
3 бит - WDE: қарауыл итін қосу
WDE логикамен жазылған кезде Watchdog Timer қосылады, ал WDE нөлдік логикамен жазылса, Watchdog Timer функциясы өшіріледі. WDE битін WDCE битінің логикалық деңгейі болған жағдайда ғана тазалауға болады. Қосылған Watchdog таймерін өшіру үшін келесі процедураны орындау қажет:
Сол әрекетте WDCE және WDE-ге логикасын жазыңыз. Логика WDE-ге жазылуы керек, бірақ ол өшіру әрекеті басталғанға дейін орнатылған.
Келесі төрт цикл ішінде WDE-ге 0 логикасын жазыңыз. Бұл Күзетшіні өшіреді.
Қауіпсіздік 2 деңгейінде жоғарыда сипатталған алгоритммен де Watchdog таймерін өшіру мүмкін емес. Қараңыз “Күзетші таймерінің конфигурациясын өзгертудің уақыттық реттілігі”, 43-бет.
1-қауіпсіздік деңгейінде WDE-ді MCUSR-де WDRF қайта анықтайды. Қараңыз 44-беттегі «MCUSR - MCU мәртебесінің тіркелімі» WDRF сипаттамасы үшін. Бұл WDRF орнатылған кезде WDE әрқашан орнатылатындығын білдіреді. WDE-ді тазарту үшін WDRF-ті жоғарыда сипатталған процедурамен Watchdog өшірмес бұрын тазалау керек. Бұл функция ақаулық тудыратын жағдайлар кезінде бірнеше қалпына келтіруді және істен шыққаннан кейін қауіпсіз іске қосуды қамтамасыз етеді.
Ескертпе: Егер бақылау таймері қолданбада пайдаланылмайтын болса, құрылғыны инициализациялау кезінде бақылаушыны өшіру процедурасынан өту маңызды. Егер Watchdog кездейсоқ қосылса, мысалыampЕгер көрсеткіш қашып кетсе немесе қоңыр түспесе, құрылғы қалпына келтіріледі, бұл өз кезегінде күзетшіге жаңа қалпына келтіруге әкеледі. Бұл жағдайды болдырмау үшін, бағдарламалық жасақтама инициализация процедурасында әрқашан WDRF жалаушасы мен WDE басқару битін өшіруі керек.
5, 2: 0 биттері - WDP [3: 0]: қарауыл таймерінің пресцалері 3, 2, 1 және 0
WDP [3: 0] биттері Watchdog Timer қосылып тұрған кезде алдын ала қарауды анықтайды. Әр түрлі алдын-ала өлшеу мәндері және оларға сәйкес келетін күту кезеңдері көрсетілген Кесте 8-3.
Кесте 8-3. Watchdog Timer алдын ала масштабты таңдау
WDP3 | WDP2 | WDP1 | WDP0 | WDT осциллятор циклдарының саны | VCC кезінде әдеттегі күту уақыты = 5.0 В |
0 | 0 | 0 | 0 | 2K (2048) циклдары | 16 мс |
0 | 0 | 0 | 1 | 4K (4096) циклдары | 32 мс |
0 | 0 | 1 | 0 | 8K (8192) циклдары | 64 мс |
0 | 0 | 1 | 1 | 16K (16384) циклдары | 0.125 с |
0 | 1 | 0 | 0 | 32K (32764) циклдары | 0.25 с |
0 | 1 | 0 | 1 | 64K (65536) циклдары | 0.5 с |
0 | 1 | 1 | 0 | 128K (131072) циклдары | 1.0 с |
0 | 1 | 1 | 1 | 256K (262144) циклдары | 2.0 с |
1 | 0 | 0 | 0 | 512K (524288) циклдары | 4.0 с |
1 | 0 | 0 | 1 | 1024K (1048576) циклдары | 8.0 с |
Кесте 8-3. Watchdog таймерін алдын ала таңдау (жалғасы)
WDP3 | WDP2 | WDP1 | WDP0 | WDT осциллятор циклдарының саны | VCC кезінде әдеттегі күту уақыты = 5.0 В |
1 | 0 | 1 | 0 | Резервтелген(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Ескертпе: 1. Таңдалған болса, 0b1010 төмен жарамды параметрлердің бірі пайдаланылады.
Үзілістер
Бұл бөлімде үзіліспен жұмыс істеу ерекшеліктері сипатталады ATtiny25 / 45/85. AVR үзілістерінің жалпы түсініктемесі үшін мына сілтемені қараңыз 12-беттегі «Қалпына келтіру және өңдеуді тоқтату».
ATtiny25 / 45/85 үзіліс векторлары
ATtiny25 / 45/85 үзіліс векторлары сипатталған Кесте 9-1төменде.
Кесте 9-1. Векторларды қалпына келтіру және үзу
Векторлық № | Бағдарлама мекен-жайы | Дереккөз | Үзілістің анықтамасы |
1 | 0x0000 | RESET | Сыртқы түйреуіш, қалпына келтіруді қалпына келтіру, қоңыр түсті қалпына келтіру, күзетшіні қалпына келтіру |
2 | 0x0001 | INT0 | Сыртқы үзіліске сұраныс 0 |
3 | 0x0002 | PCINT0 | Ұзартуды өзгерту туралы сұрау 0 |
4 | 0x0003 | TIMER1_COMPA | Таймер / Counter1 матчты салыстырыңыз A |
5 | 0x0004 | TIMER1_OVF | Таймер / есептегіш1 толып кетті |
6 | 0x0005 | TIMER0_OVF | Таймер / есептегіш0 толып кетті |
7 | 0x0006 | EE_RDY | EEPROM дайын |
8 | 0x0007 | ANA_COMP | Аналогтық компаратор |
9 | 0x0008 | ADC | ADC конверсиясы аяқталды |
10 | 0x0009 | TIMER1_COMPB | Таймер / есептегіш1 Салыстыру В |
11 | 0х000А | TIMER0_COMPA | Таймер / Counter0 матчты салыстырыңыз A |
12 | 0x000B | TIMER0_COMPB | Таймер / есептегіш0 Салыстыру В |
13 | 0х000С | WDT | Күзетші тайм-аут |
14 | 0x000D | USI_START | USI БАСТАУ |
15 | 0x000E | USI_OVF | USI толып кетті |
Егер бағдарлама ешқашан үзіліс көзін қоспаса, үзіліс векторлары қолданылмайды және бұл жерлерде кәдімгі бағдарлама кодын орналастыруға болады.
ATtiny25/45/85 үзіліс векторлық адрестерге арналған әдеттегі және жалпы баптау ex бағдарламасында көрсетілгенampтөменде.
Жинау коды Example | ||
.org 0x0000 | Келесі мекенжайды орнатыңыз | мәлімдеме |
rjmp ҚАЛПЫНА КЕЛТІРУ | ; Мекен-жайы 0x0000 | |
rjmp INT0_ISR | ; Мекен-жайы 0x0001 | |
rjmp PCINT0_ISR | ; Мекен-жайы 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Мекен-жайы 0x0003 | |
rjmp TIM1_OVF_ISR | ; Мекен-жайы 0x0004 | |
rjmp TIM0_OVF_ISR | ; Мекен-жайы 0x0005 | |
rjmp EE_RDY_ISR | ; Мекен-жайы 0x0006 | |
rjmp ANA_COMP_ISR | ; Мекен-жайы 0x0007 | |
rjmp ADC_ISR | ; Мекен-жайы 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Мекен-жайы 0x0009 | |
rjmp TIM0_COMPA_ISR | ; 0x000A мекен-жайы | |
rjmp TIM0_COMPB_ISR | ; 0x000B мекен-жайы | |
rjmp WDT_ISR | ; 0x000С мекен-жайы | |
rjmp USI_START_ISR | ; 0x000D мекен-жайы | |
rjmp USI_OVF_ISR | ; 0x000E мекен-жайы | |
ҚАЛЫПТАСТЫРУ: | ; Бағдарламаның негізгі басталуы | |
; 0x000F мекен-жайы | ||
… |
Ескерту: қараңыз «Код мысалыamples »6 -бетте.
Сыртқы үзілістер
Сыртқы үзілістерді INT0 түйреуіші немесе кез келген PCINT [5: 0] түйреуіштері іске қосады. Егер қосылса, INT0 немесе PCINT [5: 0] түйреуіштері шығыс ретінде конфигурацияланған болса да, үзілістер басталатынын ескеріңіз. Бұл функция бағдарламалық жасақтаманың үзілісін жасау тәсілін ұсынады. PIN кодын өзгерту PCIT [5: 0] қосулы болса, PCI іске қосады. PCMSK регистрінің басқару элементі, бұл түйреуіштер түйреуіштің өзгеруіне ықпал етеді. PCINT-тегі түйреуіштің өзгеруі [5: 0] асинхронды түрде анықталады. Бұл үзілістерді бөлімді ұйқы режимінен басқа ұйқы режимінен ояту үшін пайдалануға болатындығын білдіреді.
INT0 үзілістерінің құлауымен немесе көтерілу жиегімен немесе төмен деңгеймен қозғалуы мүмкін. Бұл MCUR бақылау тізілімінің сипаттамасында көрсетілгендей орнатылған - MCUCR. INT0 үзілісі қосылып, деңгей іске қосылатын етіп реттелгенде, түйреуіш төмен болғанша үзіліс іске қосылады. INT0-де құлаған немесе көтерілген жиектердегі үзілістерді тану үшін сипатталған енгізу-шығару сағатын болуын қажет ететіндігін ескеріңіз «Сағат жүйелері және олардың таралуы» 23 бет.
Төмен деңгейдегі үзіліс
INT0 деңгейіндегі төмен деңгейдегі үзіліс асинхронды түрде анықталады. Бұл үзілісті күту режимінен басқа ұйқы режимінен бөлуге болатындығын білдіреді. Күту режимінен басқа барлық енгізу-шығару сағаттары тоқтатылады.
Қуатты өшіруден ояту үшін деңгей іске қосылған үзіліс пайдаланылса, MCU деңгей үзілуін іске қосу үшін оятуды аяқтауы үшін қажетті деңгей жеткілікті ұзақ сақталуы керек екенін ескеріңіз. Егер деңгей Іске қосу уақыты аяқталғанға дейін жоғалса, MCU әлі де оянады, бірақ үзіліс жасалмайды. Іске қосу уақыты бөлімінде сипатталғандай SUT және CKSEL сақтандырғыштарымен анықталады «Жүйелік сағат және сағат параметрлері» бетте 23.
Егер үзіліс түйреуішіндегі төменгі деңгей құрылғы оянғанға дейін жойылса, онда бағдарламаның орындалуы үзіліс қызметіне ауыспайды, бірақ SLEEP пәрменінен кейінгі нұсқаулықтан басталады.
Үзіліс уақытын өзгерту
Бұрынғыampтүйреуішті ауыстыру үзілісінің уақыты көрсетілген 9-1-сурет.
Тіркелудің сипаттамасы
MCUCR - MCU бақылау тізілімі
Сыртқы үзілістерді басқару регистрі үзілістерді басқаруға арналған бақылау биттерін қамтиды.
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | БОДС | ISC01 | ISC00 | MCUCR |
Оқу/жазу | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биттер 1: 0 - ISC0 [1: 0]: Үзіліс сезімін басқару 0 бит 1 және бит 0
SREG I-жалаушасы және сәйкесінше үзіліс маскасы орнатылған болса, сыртқы үзіліс 0 сыртқы түйреуіш INT0 арқылы іске қосылады. Үзілісті белсендіретін сыртқы INT0 түйреуішінің деңгейі мен шеттері анықталды Кесте 9-2. INT0 түйреуішіндегі мән - sampшеттерін анықтамас бұрын жүргізді. Егер жиек немесе ауысу үзілісі таңдалса, бір сағаттық периодтан көп уақытқа созылатын импульстер үзіліс тудырады. Қысқа импульстар үзіліс жасауға кепілдік бермейді. Егер төмен деңгейлі үзіліс таңдалса, үзіліс жасау үшін төмендегі деңгей ағымдағы орындалатын нұсқаулық аяқталғанша ұсталуы керек.
Кесте 9-2. Interrupt 0 Sense Control
ISC01 | ISC00 | Сипаттама |
0 | 0 | INT0 деңгейінің төмендігі үзіліс сұрауын тудырады. |
0 | 1 | INT0 кез-келген логикалық өзгеріс үзіліс сұрауын тудырады. |
1 | 0 | INT0-нің құлау шегі үзіліс сұрауын тудырады. |
1 | 1 | INT0-тің жоғары жиегі үзіліс сұрауын тудырады. |
GIMSK - жалпы үзілістерге арналған маска тіркелімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | ГИМСК |
Оқу/жазу | R | R/W | R/W | R | R | R | R | R | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит 7, 4: 0 - Резерв: Резервтелген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
Бит 6 - INT0: Сыртқы үзіліске өтініш 0 Қосу
INT0 биті орнатылғанда (бір) және күй регистріндегі I разрядта (SREG) орнатылғанда, сыртқы түйреуіштің үзілуі қосылады. MCU бақылау тізіліміндегі (MCUCR) Interrupt Sense Control0 биттері 1/0 (ISUC01 және ISC00) сыртқы үзіліс INT0 түйреуішінің көтерілген және / немесе құлап жатқан жиегінде немесе деңгей сезінгенде іске қосылатынын анықтайды. Пинтегі белсенділік INT0 шығыс ретінде конфигурацияланған болса да, үзіліс сұрауын тудырады. Сыртқы үзілістің 0 сұранысының сәйкес үзілісі INT0 үзіліс векторынан орындалады.
5 бит - PCIE: түйреуішті өзгерту үзілісін қосу
PCIE биті (бір) орнатылған кезде және күй регистріндегі (SREG) I-бит орнатылған кезде (бір), түйреуішті өзгерту үзілісі қосылады. Кез келген қосылған PCINT [5: 0] түйреуішіндегі кез келген өзгеріс үзілісті тудырады. Ұзартуды өзгертуге арналған сұраныстың тиісті үзілісі PCI үзіліс векторынан орындалады. PCINT [5: 0] түйреуіштерін PCMSK0 регистрі жеке қосады.
GIFR - жалпы үзілістер туының тіркелімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0х3А | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Оқу/жазу | R | R/W | R/W | R | R | R | R | R | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит 7, 4: 0 - Резерв: Резервтелген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
6 бит - INTF0: Сыртқы үзіліс жалауы 0
INT0 түйреуішіндегі жиек немесе логикалық өзгеріс үзіліс сұрауын тудырған кезде, INTF0 орнатылады (бір). Егер SREG-дегі I-разряд және GIMSK-тегі INT0-бит (бір) орнатылса, MCU сәйкес Векторға үзіліс жасайды. Үзіліс күнделікті орындалған кезде жалауша өшіріледі. Сонымен қатар, жалаушаны оған логикалық жазу арқылы тазартуға болады. Бұл жалауша әрдайым INT0 деңгей үзілісі ретінде конфигурацияланған кезде жойылады.
5-разряд - PCIF: түйреуішті өзгерту үзілісі жалаушасы
Кез-келген PCINT [5: 0] түйреуішіндегі логикалық өзгеріс үзіліс сұрауын тудырған кезде, PCIF орнатылады (бір). Егер SREG-дегі I-разряд және GIMSK-дегі PCIE биті орнатылса (бір), онда MCU сәйкес үзіліс векторына өтеді. Үзіліс режимі орындалған кезде жалауша өшіріледі. Сонымен қатар, жалаушаны оған логикалық жазу арқылы тазартуға болады.
PCMSK - түйреуішті өзгерту маскасының тіркелімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Оқу/жазу | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биттер 7: 6 - Резерв: Бөлінген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
Биттер 5: 0 - PCINT [5: 0]: түйреуішті өзгерту маскасы 5: 0
Әрбір PCINT [5: 0] биті тиісті енгізу-шығару пинінде істікшені өзгерту үзілісі қосылып тұрғанын таңдайды. Егер PCINT [5: 0] орнатылса және GIMSK ішіндегі PCIE биті орнатылса, тиісті енгізу-шығару пинінде істікшені өзгерту үзілісі қосылады. Егер PCINT [5: 0] өшірілсе, тиісті енгізу-шығару түйрегішіндегі істікшені өзгерту үзілісі ажыратылады.
Енгізу/шығару порттары
Кіріспе
Барлық AVR порттары жалпы сандық енгізу/шығару порттары ретінде пайдаланылғанда шынайы Оқу-Өзгерту-Жазу мүмкіндігіне ие. Бұл бір порт істікшелісінің бағытын SBI және CBI нұсқауларымен кез келген басқа істікшінің бағытын байқаусызда өзгертпестен өзгертуге болатынын білдіреді. Дәл осы жағдай дискінің мәнін өзгерту (шығыс ретінде конфигурацияланса) немесе тартылатын резисторларды қосу/өшіру (егер кіріс ретінде конфигурацияланса) кезінде қолданылады. Әрбір шығыс буферінде жоғары раковина және көз мүмкіндігі бар симметриялық жетек сипаттамалары бар. PIN драйвері LED дисплейлерін тікелей басқаруға жеткілікті күшті. Барлық порт түйреуіштерінде қоректендіру көлемі бар жеке таңдалатын тартылатын резисторлар барtage инвариантты қарсылық. Барлық енгізу/шығару түйреуіштерінде көрсетілгендей VCC және Жерге арналған қорғаныс диодтары бар 10-1-сурет. қараңыз «Электрлік сипаттамалар» 161-бетте параметрлердің толық тізімі үшін.
10-1-сурет. Енгізу/шығару істіктерінің эквиваленттік схемасы
Бұл бөлімдегі барлық регистрлер мен биттік сілтемелер жалпы түрде жазылған. Кіші әріп «x» порттың нөмірленетін әрпін, ал кіші әріп «n» разряд нөмірін білдіреді. Бірақ бағдарламада регистрді немесе бит анықтамаларын қолданған кезде дәл форманы қолдану қажет. Мысалыample, PORTB3 бит үшін. B портында 3, мұнда әдетте PORTxn ретінде құжатталған. Физикалық енгізу -шығару регистрлері мен биттердің орналасуы тізімге енгізілген «Тіркеу сипаттамасы» қосулы 64 бет.
Әрбір порт үшін үш енгізу-шығару жадының мекен-жайы, әрқайсысы мәліметтер регистрі үшін - PORTx, деректерді бағыттау регистрі - DDRx, ал портты енгізу түйреуіштері - PINx үшін бөлінген. Порт енгізу түйреуіштерінің енгізу-шығару орны тек оқуға арналған, ал деректер регистрі мен мәліметтер бағытының тіркелімі оқылады / жазылады. Алайда, логикалық кодты PINx регистрінде битке жазу деректер тізіліміндегі сәйкес биттің ауысуына әкеледі. Сонымен қатар, MCUCR ішіндегі Pull-up Disable - PUD биті орнатылған кезде барлық порттардағы барлық түйреуіштер үшін тарту функциясын ажыратады.
I / O портын General Digital I / O ретінде пайдалану сипатталған “Жалпы цифрлық енгізу-шығару порттары” бетте 53. Көптеген порттық түйреуіштер құрылғыдағы перифериялық функциялар үшін балама функциялармен мультиплекстелген. Әрбір балама функция порттың түйреуішіне қалай әсер етеді “Альтернативті порт функциялары” бетте 57. Баламалы функцияларды толық сипаттау үшін модульдің жеке бөлімдерін қараңыз.
Кейбір порт түйреуіштерінің балама функциясын қосу порттағы басқа түйреуіштердің жалпы сандық енгізу-шығару ретінде қолданылуына әсер етпейтінін ескеріңіз.
Жалпы цифрлық енгізу / шығару сияқты порттар
Порттар екі бағытты енгізу-шығару порттары болып табылады, олар міндетті емес ішкі тартқыштары бар. 10-2-сурет бір енгізу-шығару порты істікшесінің функционалды сипаттамасын көрсетеді, мұнда жалпы Pxn деп аталады.
10-2-сурет. Жалпы сандық енгізу/шығару(1)
Штырды конфигурациялау
Әр порт түйреуіші үш регистр биттерінен тұрады: DDxn, PORTxn және PINxn. Көрсетілгендей «Тіркеу сипаттамасы» қосулы 64 бет, DDxn биттеріне DDRx I / O мекен-жайы бойынша, PORTxn биттеріне PORTx I / O мекен-жайы бойынша, ал PINxn биттеріне PINx I / O мекен-жайы бойынша қол жеткізуге болады.
DDRx регистріндегі DDxn биті осы істікшенің бағытын таңдайды. Егер DDxn логикалық түрде жазылған болса, Pxn шығыс штыры ретінде конфигурацияланған. Егер DDxn логикалық нөлмен жазылса, Pxn кіріс штифті ретінде конфигурацияланған.
Егер түйреуіш түйреуіш ретінде конфигурацияланған кезде PORTxn логикалық түрде жазылса, тартқыш резистор іске қосылады. Тартылатын резисторды өшіру үшін PORTxn логикалық нөл деп жазылуы керек немесе түйреуішті істікшеге теңшеу керек. Порт түйреуіштері қалпына келтіру шарты іске қосылған кезде, егер ешқандай сағаттар жұмыс істемесе де, үш рет көрсетіледі.
Егер PINT шығыс штыры ретінде конфигурацияланған кезде PORTxn логикалық түрде жазылса, порт штыры жоғары (бір) басқарылады. Егер PINX шығыс штыры ретінде конфигурацияланған кезде PORTxn логикалық нөл деп жазылса, порт штифті төмен (нөл) басқарылады.
Істікті қосу / өшіру
PINxn-ге логиканы жазу DDRxn мәніне тәуелсіз PORTxn мәнін ауыстырады. SBI нұсқауын порттағы бір битті ауыстыру үшін қолдануға болатындығын ескеріңіз.
Кіріс пен шығыс арасында ауысу
Үш күй ({DDxn, PORTxn} = 0b00) мен шығыс жоғары ({DDxn, PORTxn} = 0b11) арасында ауысқанда, тарту мүмкіндігі қосылған {DDxn, PORTxn} = 0b01) немесе шығыс төмен аралық күй. ({DDxn, PORTxn} = 0b10) орын алуы керек. Әдетте, тартуды қосу режимі толығымен қолайлы, өйткені жоғары кедергісі бар орта күшті жоғары драйвер мен тарту арасындағы айырмашылықты байқамайды. Егер олай болмаса, MCUCR тізіліміндегі PUD биті барлық порттардағы барлық тартылуларды өшіретін етіп орнатуға болады.
Төмен және төмен шығыспен кіріс арасында ауысу бірдей проблеманы тудырады. Пайдаланушы аралық қадам ретінде үш күйді ({DDxn, PORTxn} = 0b00) немесе нәтиженің жоғары күйін ({DDxn, PORTxn} = 0b10) қолдануы керек.
Кесте 10-1 пин мәні үшін басқару сигналдарын қорытындылайды.
10-1-кесте. Порт пин конфигурациялары
DDxn | PORTxn | PUD
(MCUCR-де) |
енгізу/шығару | Тарту | Түсініктеме |
0 | 0 | X | Енгізу | Жоқ | Үш күй (Hi-Z) |
0 | 1 | 0 | Енгізу | Иә | Pxn, егер ext болса, ток көзі болады. төмен тартты. |
0 | 1 | 1 | Енгізу | Жоқ | Үш күй (Hi-Z) |
1 | 0 | X | Шығару | Жоқ | Шығысы төмен (раковина) |
1 | 1 | X | Шығару | Жоқ | Шығарылым жоғары (қайнар көз) |
Негізгі мәнді оқу
DDxn мәліметтер дирекциясы битінің параметріне тәуелсіз, порт түйреуішін PINxn регистрінің биті арқылы оқуға болады. Көрсетілгендей 10-2-сурет, PINxn регистрінің биті және алдыңғы ілмек синхронизаторды құрайды. Бұл физикалық түйреуіш ішкі сағаттың шетіне жақын мәнді өзгертетін болса, метастұралдылықты болдырмау үшін қажет, бірақ ол сонымен қатар кідірісті енгізеді. 10-3-сурет сыртқы қолданылатын пин мәнін оқу кезінде синхрондау уақытының диаграммасын көрсетеді. Максималды және ең аз таралу кешігулері сәйкесінше tpd,max және tpd,min деп белгіленеді.
Жүйелік сағаттардың бірінші құлаған жиегінен көп ұзамай басталатын сағаттық кезеңді қарастырайық. Ілмек сағат аз болған кезде жабылады, ал жоғары болған кезде мөлдір болады, бұл «SYNC LATCH» сигналының көлеңкеленген аймағында көрсетілген. Жүйе сағаты азайған кезде сигнал мәні бекітіледі. Ол PINxn регистріне сағат тілінің оң жағында қосылады. Tpd, max және tpd, min екі көрсеткісінде көрсетілгендей, түйреуіштегі сигналдың бір рет ауысуы бекіту уақытына байланысты ½ мен 1½ жүйенің сағаттық кезеңі аралығында кешіктіріледі.
Бағдарламалық жасақтаманың тағайындалған пин мәнін оқып шыққан кезде nop нұсқауы көрсетілгендей енгізілуі керек 10-4-сурет. Шығарылған нұсқаулық «SYNC LATCH» сигналын сағат тілінің оң жағына қояды. Бұл жағдайда синхронизатор арқылы tpd кідірісі бір жүйелік сағат кезеңі болады.
Келесі код мысалыample порты B портының 0 және 1 жоғары, 2 және 3 төменгі нүктелерін орнату жолын көрсетеді және 4-тен 5-ке дейінгі порт түйреуіштерін 4-ші порт істікшесіне тағайындалған тартпа арқылы кіріс ретінде анықтау. Алынған пин мәндері қайтадан оқылады, бірақ бұрын талқыланғандай, кейбір түйреуіштерге жақында тағайындалған мәнді қайта оқу мүмкіндігі үшін nop нұсқауы қамтылған.
Жинау коды Example(1) |
…
; Тартуларды анықтаңыз және шығыстарды жоғары орнатыңыз ; Порт түйреуіштерінің бағыттарын анықтаңыз ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) шығыс PORTB,r16 шығыс DDRB,r17 ; Синхрондау үшін nop енгізіңіз жоқ ; Порт түйреуіштерін оқу r16, PINB ішінде … |
Ескертпе: Құрастыру бағдарламасы үшін екі уақытша регистр 0, 1 және 4 түйреуіштерге тартылулардың орнатылу уақытын азайту үшін, бағыт биттері дұрыс орнатылғанша, 2 және 3 биттерді төмен және 0 және қайта анықтайтын биттерді анықтағанша пайдаланылады. 1 күшті жоғары драйверлер ретінде.
C коды Example |
unsigned char i;
… /* Тартуларды анықтаңыз және шығыстарды жоғары орнатыңыз */ /* Порт түйреуіштері үшін бағыттарды анықтау */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Синхрондау үшін нөлді енгізіңіз*/ _NOP (); /* Порт түйреуіштерін оқу */ i = PINB; … |
Сандық кірісті қосу және ұйқы режимі
Көрсетілгендей 10-2-сурет, цифрлық кіріс сигналы cl болуы мүмкінampШмитт-триггердің кірісінде жерге қосылады. Суретте SLEEP деп белгіленген сигнал кейбір кіріс сигналдары қалқымалы күйде қалса немесе аналогтық сигнал деңгейі VCC/2 мәніне жақын болса, жоғары қуат тұтынуды болдырмау үшін қуатты өшіру режимінде MCU ұйқы контроллері арқылы орнатылады.
SLEEP сыртқы үзіліс түйреуіштері ретінде қосылған порт түйреуіштері үшін алынып тасталды. Егер сыртқы үзіліс сұрауы қосылмаған болса, SLEEP осы түйреуіштер үшін де белсенді. SLEEP-де сипатталғандай басқа әр түрлі балама функциялар жойылады “Альтернативті порт функциялары” бетте 57.
Егер сыртқы үзіліс қосылмаған кезде «Өсу жиегіндегі үзіліс, құлау жиегі немесе түйреуіштегі кез келген логикалық өзгеріс» ретінде конфигурацияланған асинхронды сыртқы үзу істікшелісінде логикалық жоғары деңгей («бір») болса, сәйкес сыртқы үзу жалауы пайда болады. cl ретінде жоғарыда аталған Ұйқы режимінен қайта бастаған кезде орнатыладыampосы ұйқы режимінде қажет логикалық өзгеріс пайда болады.
Байланыстырылмаған түйреуіштер
Егер кейбір түйреуіштер пайдаланылмаған болса, онда бұл түйреуіштердің белгіленген деңгейге ие болуын қамтамасыз ету ұсынылады. Сандық кірістердің көпшілігі жоғарыда сипатталғандай терең ұйқы режимдерінде ажыратылған болса да, цифрлық кірістер қосылған барлық басқа режимдерде ағымдық шығынды азайту үшін қалқымалы кірулерден аулақ болу керек (Қалпына келтіру, Белсенді режим және Күту режимі).
Пайдаланылмаған түйреуіштің анықталған деңгейін қамтамасыз етудің ең қарапайым әдісі ішкі тартуды қосу болып табылады. Бұл жағдайда қалпына келтіру кезінде тарту өшіріледі. Қалпына келтіру кезінде төмен қуат тұтыну маңызды болса, сыртқы тартуды немесе тартуды пайдалану ұсынылады. Пайдаланылмаған түйреуіштерді VCC немесе GND-ге тікелей қосу ұсынылмайды, себебі істік кездейсоқ шығыс ретінде конфигурацияланса, бұл шамадан тыс токтарды тудыруы мүмкін.
Қосымша порт функциялары
Көптеген порт түйреуіштері жалпы цифрлық енгізу-шығару функцияларынан басқа, баламалы функцияларға ие. 10-5-сурет порт түйреуішінің басқару сигналдарының қалай жеңілдетілгендігін көрсетеді 10-2-сурет функцияларын ауыстырып тастауға болады. Ажырататын сигналдар барлық порт түйреуіштерінде болмауы мүмкін, бірақ бұл сурет AVR микроконтроллерлер тобындағы барлық порт түйреуіштеріне қолданылатын жалпы сипаттама ретінде қызмет етеді.
Кесте 10-2. Баламалы функциялар үшін қайта анықтау сигналдарының жалпы сипаттамасы
Сигнал атауы | Толық аты-жөні | Сипаттама |
PUOE | Тартуды болдырмау Қосу | Егер бұл сигнал орнатылса, тарту мүмкіндігі PUOV сигналымен басқарылады. Егер бұл сигнал өшірілсе, тартқыш қашан қосылады
{DDxn, PORTxn, PUD} = 0b010. |
ПУОВ | Мәнді қайтарып алу | Егер PUOE орнатылса, DDxn, PORTxn және PUD регистрі биттерінің параметріне қарамастан, PUOV орнатылған / тазаланған кезде тартқыш қосылады / ажыратылады. |
DDOE | Деректер бағытын қайта анықтауды қосу | Егер бұл сигнал орнатылған болса, шығыс драйверін қосу DDOV сигналымен басқарылады. Егер бұл сигнал өшірілсе, шығыс драйвері DDxn регистрінің битімен қосылады. |
ДДОВ | Деректер бағыты мәнді қайта анықтайды | Егер DDOE орнатылған болса, DDxn регистрінің битінің орнатылуына қарамастан DDOV орнатылған / өшірілген кезде шығыс драйвері қосылады / өшіріледі. |
PVOE | Порт мәнін қайта анықтауды қосу | Егер бұл сигнал орнатылса және шығыс драйвері қосылса, порт мәні PVOV сигналымен басқарылады. Егер PVOE тазаланса және шығыс драйвері қосылса, порт мәні PORTxn регистрінің битімен басқарылады. |
ПВОВ | Порт мәні мәнді қайта анықтайды | Егер PVOE орнатылса, PORTxn регистрінің битінің орнатылуына қарамастан порт мәні PVOV мәніне орнатылады. |
PTOE | Портты ауыстырып қосу функциясын қосу | Егер PTOE орнатылған болса, онда PORTxn регистрінің биті инверттеледі. |
DIEOE | Сандық кіріс функциясын қайта қосу функциясын қосу | Егер бұл бит орнатылса, Сандық кірісті қосу DIEOV сигналымен басқарылады. Егер бұл сигнал өшірілсе, сандық кірісті қосу MCU күйімен анықталады (Қалыпты режим, ұйқы режимі). |
ДИЕОВ | Сандық енгізу мәнді қайта анықтайды | Егер DIEOE орнатылған болса, MCU күйіне (Қалыпты режим, ұйқы режимі) қарамастан, DIEOV орнатылған / тазаланған кезде Сандық енгізу қосылады / өшіріледі. |
DI | Сандық енгізу | Бұл балама функцияларға арналған сандық енгізу. Суретте сигнал schmitt-триггердің шығуымен, бірақ синхронизатордың алдында қосылған. Егер сандық енгізу сағат көзі ретінде пайдаланылмаса, баламалы функциясы бар модуль өзінің синхронизаторын қолданады. |
AIO | Аналогтық кіріс / шығыс | Бұл баламалы функцияларға / одан аналогтық енгізу / шығару. Сигнал алаңға тікелей қосылады және оны екі жақты қолдануға болады. |
Келесі ішкі бөлімдерде әр порттың балама функциялары қысқаша сипатталады және басым сигналдарды балама функциямен байланыстырады. Қосымша мәліметтер алу үшін функцияның балама сипаттамасын қараңыз.
B портының баламалы функциялары
Баламалы функциясы бар B портының штыры көрсетілген Кесте 10-3.
10-3-кесте. B портының балама функциялары
Порт пин | Балама функция |
PB5 | ![]() ҚАЛПЫНА КЕЛТІРУ: Түйреуді ысыру dW: debugWIRE I / O ADC0: ADC Input Channel 0 PCINT5: түйреуіштің өзгеруі, 5 көзі |
PB4 | XTAL2: кристалды осциллятордың шығысы CLKO: жүйелік сағат шығысы ADC2: ADC кіріс арнасы 2
OC1B: Timer / Counter1 салыстырыңыз M M шығысының шығысы PCINT4: түйреуіштің өзгеруі 0, көзі 4 |
PB3 | XTAL1: Кристалды осциллятор кірісі CLKI: Сыртқы сағат кірісі ADC3: ADC кіріс арнасы 3
OC1B: қосымша таймер / есептегіш1 салыстырыңыз M сәйкестігі шығысы PCINT3: түйреуіштің өзгеруі 0, дерек көзі 3 |
PB2 | SCK: ADC1 сериялық сағат енгізу: ADC кіріс каналы 1
T0: Timer / Counter0 сағат көзі USCK: USI сағаты (үш сымды режим) SCL: USI сағаты (екі сымды режим) INT0: сыртқы үзіліс 0 енгізу PCINT2: түйреуіштің өзгеруі 0, көзі 2 |
PB1 | MISO: SPI негізгі деректерді енгізу / құлдық деректерді шығару AIN1: аналогты компаратор, негативті енгізу OC0B: таймер / есептегіш0 салыстыру матч B шығысы OC1A: таймер / есептегіш1 нәтижені салыстыру нәтижесі DO: USI деректерін шығару (үш сымды режим) PCINT1: түйреуіштің өзгеруі 0, дереккөз 1 |
PB0 | MOSI :: SPI деректерді шығару / құлдық деректерін енгізу AIN0: аналогты компаратор, позитивті енгізу
OC0A: Таймер/Санақ0 A сәйкестігін салыстыру шығысы OC1A: қосымша таймер / есептегіш1 нәтижесін салыстырыңыз DI: USI деректерін енгізу (үш сымды режим) SDA: USI деректерін енгізу (екі сымды режим) AREF: сыртқы аналогтық анықтама PCINT0: түйреуішті өзгерту 0, көзі 0 |
Порт B, бит 5 - RESET / dW / ADC0 / PCINT5
ҚАЛПЫНА КЕЛТІРУ: Сыртқы қалпына келтіру кірісі төмен және RSTDISBL сақтандырғышын бағдарламаламай (“1”) қосылады. Ұстау RESET пин ретінде пайдаланылған кезде тартқыш іске қосылады және шығыс драйвері мен сандық кіріс өшіріледі.
dW: DebugWIRE Enable (DWEN) Сақтандырғыш бағдарламаланған және Lock биттері бағдарламаланбаған кезде, мақсатты құрылғыдағы debugWIRE жүйесі іске қосылады. RESET портының түйреуіші сыммен ЖӘНЕ (ашық дренажды) екі бағытты енгізу-шығару пині ретінде конфигурацияланған және тарту мен эмулятор арасындағы байланыс шлюзі болады.
ADC0: Аналогты сандық түрлендіргіш, 0-арна.
PCINT5: түйреуішті өзгерту үзілісі көзі 5.
Порт B, бит 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: чиптік сағаттық осциллятор штифті 2. Ішкі калибрленген RC осцилляторынан және сыртқы сағаттардан басқа чиптің барлық көздері үшін сағаттық пин ретінде қолданылады. Сағат штыры ретінде қолданған кезде, штырды енгізу-шығару штыры ретінде қолдануға болмайды. Ішкі калибрленетін RC осцилляторын немесе сыртқы сағатты чиптің сағат көзі ретінде пайдалану кезінде PB4 кәдімгі енгізу-шығару істікшесі ретінде қызмет етеді.
CLKO: Бөлінген жүйелік сағатты PB4 істікшесінде шығаруға болады. Бөлінген жүйелік сағат, егер CKOUT сақтандырғышы PORTB4 және DDB4 параметрлеріне қарамастан бағдарламаланған болса, шығады. Ол сондай-ақ қалпына келтіру кезінде шығарылады.
ADC2: Аналогты сандық түрлендіргіш, 2-арна.
OC1B: Output Compare Match шығысы: PB4 штифті шығыс ретінде (DDB1 жиынтығы) конфигурацияланған кезде Timer / Counter4 Compare M M салыстыру үшін сыртқы шығыс ретінде қызмет ете алады. OC1B штыры сонымен қатар PWM режимінің таймерінің шығыс штифті болып табылады.
PCINT4: түйреуішті өзгерту үзілісі көзі 4.
Порт B, бит 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: чиптік сағат осцилляторының штыры 1. Ішкі калибрленген RC осцилляторынан басқа чиптің барлық көздері үшін қолданылады. Сағаттық түйреуіш ретінде пайдаланған кезде, штырды енгізу-шығару штыры ретінде қолдануға болмайды.
CLKI: Сыртқы сағат көзінен сағат енгізу, қараңыз «Сыртқы сағат» 26-бетте.
ADC3: Аналогты сандық түрлендіргіш, 3-арна.
OC1B: Inverted Output Compare Match шығысы: PB3 түйреуіші шығыс ретінде конфигурацияланған кезде (DDB1 жиынтығы) Timer / Counter3 Compare M M салыстыру үшін сыртқы шығыс ретінде қызмет ете алады. OC1B штыры сонымен қатар PWM режимінің таймер функциясы үшін төңкерілген шығыс штифті болып табылады.
PCINT3: түйреуішті өзгерту үзілісі көзі 3.
Порт B, бит 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Master Clock шығысы, SPI арнасы үшін Slave Clock кіріс пині. SPI құл ретінде қосылған кезде, бұл түйреуіш DDB2 параметріне қарамастан кіріс ретінде конфигурацияланған. Егер SPI мастер ретінде қосылса, онда бұл істікшенің деректер бағыты DDPB2 арқылы басқарылады. SPI-ді штепсельді кіріс деп мәжбүрлеген кезде, тартқышты PORTB2 биті басқара алады.
ADC1: Аналогты сандық түрлендіргіш, 1-арна.
T0: Таймер / Counter0 санауыш көзі.
USCK: үш сымды режим Әмбебап сериялық интерфейс сағаты.
SCL: Екі сымды режим USI үшін екі сымды режим үшін сериялық сағат.
INT0: сыртқы үзіліс көзі 0.
PCINT2: түйреуішті өзгерту үзілісі көзі 2.
Порт B, бит 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Master Data input, SPI арнасы үшін Slave Data output pin. SPI мастер ретінде қосылғанда, бұл түйреуіш DDB1 параметріне қарамастан кіріс ретінде конфигурацияланған. SPI құл ретінде қосылғанда, бұл түйреуіштің деректер бағыты DDB1 арқылы басқарылады. SPI-ді кіріс ретінде мәжбүрлеген кезде, тартқышты PORTB1 биті басқара алады.
AIN1: аналогтық компаратордың теріс кірісі. Сандық порт функциясы Аналогтық компаратордың жұмысына кедергі келтірмеу үшін порт түйреуішін ішкі тартқыш өшірілген күйде кіріс ретінде теңшеңіз.
OC0B: Шығарманы салыстыру сәйкестігі. PB1 түйреуіші Таймер / Санағыш0 Салыстыру В үшін сыртқы шығыс ретінде қызмет ете алады. PB1 штыры осы функцияны орындау үшін шығыс (DDB1 жиынтығы (бір)) ретінде конфигурациялануы керек. OC0B штифті сонымен қатар PWM режимінің таймерінің шығыс штифті болып табылады.
OC1A: Output Compare Match шығысы: PB1 штыры шығыс ретінде (DDB1 жиынтығы) конфигурацияланған кезде Timer / Counter1 Compare M M салыстыруы үшін сыртқы шығыс ретінде қызмет ете алады. OC1A штыры сонымен қатар PWM режимінің таймерінің шығыс штифті болып табылады.
DO: үш сымды режим Әмбебап сериялық интерфейс Деректерді шығару. Үш сымды режим Деректер шығысы PORTB1 мәнін жоққа шығарады және DDB1 деректер биті (бір) орнатылған кезде ол портқа жеткізіледі. PORTB1 бағыты енгізілген болса және PORTB1 орнатылған болса (PORTBXNUMX) тартуды қосады.
PCINT1: түйреуішті өзгерту үзілісі көзі 1.
Порт B, бит 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Master деректерін шығару, SPI арнасы үшін Slave деректерін енгізу. SPI құл ретінде қосылғанда, бұл түйреуіш DDB0 параметріне қарамастан кіріс ретінде конфигурацияланған. SPI мастер ретінде қосылғанда, бұл істікшенің деректер бағыты DDB0 арқылы басқарылады. Тығыздағыш SPI-ді кіріс болуға мәжбүр еткен кезде, тартқышты PORTB0 биті басқара алады.
AIN0: Аналогтық компаратордың оң кірісі. Сандық порт функциясы Аналогтық компаратордың жұмысына кедергі келтірмеу үшін порт түйреуішін ішкі тартқыш өшірілген күйде кіріс ретінде теңшеңіз.
OC0A: Шығарымды салыстыру сәйкестігі. PB0 түйреуіші шығыс ретінде конфигурацияланған кезде Timer / Counter0 Compare A Match сәйкестігі үшін сыртқы шығыс ретінде қызмет ете алады (DDB0 жиынтығы (бір)). OC0A штифті PWM режимінің таймерінің шығыс штифті болып табылады.
OC1A: Inverted Output Compare Match шығысы: PB0 штыры Timer / Counter1 Compare M M сәйкестігі үшін шығыс ретінде конфигурацияланған кезде сыртқы шығыс ретінде қызмет ете алады (DDB0 жиынтығы). OC1A түйреуі PWM режимінің таймерінің функциясы үшін төңкерілген шығыс штифті болып табылады.
SDA: Интерфейстің екі сымды режимі.
AREF: ADC үшін сыртқы аналогтық анықтама. Істік сыртқы сілтеме немесе ішкі көлем ретінде пайдаланылғанда, тарту және шығару драйвері PB0 құрылғысында өшіріледі.tage AREF істікшесіндегі сыртқы конденсаторы бар сілтеме.
DI: USI үш сымды режимінде деректерді енгізу. USI үш сымды режимі қалыпты порт функцияларын жоққа шығармайды, сондықтан DI функциясы үшін кіріс ретінде конфигурацияланған болуы керек.
PCINT0: түйреуішті өзгерту үзілісі көзі 0.
Кесте 10-4 және Кесте 10-5 B портының баламалы функцияларын көрсетілген сигналдармен байланыстыру 10-5 сурет 58 бет.
Кесте 10-4. PB ішіндегі балама функциялар үшін сигналдарды қайта анықтау[5:3]
Сигнал атауы | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
ПУОВ | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
ДДОВ | Wire Transmit | 0 | 0 |
PVOE | 0 | OC1B қосу | ![]() OC1B қосу |
ПВОВ | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
ДИЕОВ | ADC0D | ADC2D | ADC3D |
DI | PCINT5 енгізу | PCINT4 енгізу | PCINT3 енгізу |
AIO | RESET кірісі, ADC0 кірісі | ADC2 енгізу | ADC3 енгізу |
Ескертпе: сақтандырғыш «0» болғанда (бағдарламаланған).
Кесте 10-5. PB ішіндегі балама функциялар үшін сигналдарды қайта анықтау[2:0]
Сигнал атауы | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
ПУОВ | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
ДДОВ | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | OC0B қосу + OC1A қосу + USI_THREE_WIRE | ![]() OC0A қосу + OC1A қосу + (USI_TWO_WIRE DDB0) |
ПВОВ | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
ДИЕОВ | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
PCINT2 енгізу |
PCINT1 енгізу | DI / SDA / PCINT0 енгізу |
AIO | ADC1 енгізу | Аналогтық компаратордың теріс кірісі | Аналогтық компаратордың оң кірісі |
Тіркелудің сипаттамасы
MCUCR - MCU бақылау тізілімі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | БОДС | ISC01 | ISC00 | MCUCR |
Оқу/жазу | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 бит - PUD: тартуды өшіру
Бұл бит біреуіне жазылса, DDxn және PORTxn регистрлері тартуға мүмкіндік беретін етіп ({DDxn, PORTxn} = 0b01) конфигурацияланған болса да, енгізу-шығару порттарындағы тартқыштар өшіріледі. Қараңыз 54-беттегі “түйреуішті конфигурациялау” осы функция туралы толығырақ ақпарат алу үшін.
PORTB - порт портының деректерін тіркеу
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | Порт |
Оқу/жазу | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - порт портының мәліметтерін бағыттау регистрі
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Оқу/жазу | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - B портының енгізу түйреуіштерінің мекен-жайы
Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Оқу/жазу | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Бастапқы мән | 0 | 0 | Жоқ | Жоқ | Жоқ | Жоқ | Жоқ | Жоқ |
PWM бар 8 биттік таймер / есептегіш 0
Ерекше өзгешеліктері
Екі тәуелсіз шығыс өлшем бірлігі
Екі буферлік шығыс регистрлерін салыстырыңыз
Салыстыру матчында таймерді өшіру (автоматты түрде қайта жүктеу)
Ақаулықсыз, фазаның дұрыс импульстік ені модуляторы (PWM)
PWM айнымалы кезеңі
Жиілік генераторы
Үш тәуелсіз үзіліс көзі (TOV0, OCF0A және OCF0B)
Біттіview
Timer / Counter0 - екі тәуелсіз шығыс салыстыру қондырғысы бар және PWM қолдауымен 8-биттік Timer / Counter модулі. Бұл бағдарламаны дәл орындау уақытын (оқиғаларды басқару) және толқындарды қалыптастыруға мүмкіндік береді.
8-разрядты таймер / есептегіштің оңайлатылған блок-схемасы көрсетілген 11-1-сурет. Енгізу-шығару түйреуіштерін нақты орналастыру туралы сілтемені қараңыз «Pinout ATtiny25 / 45/85» 2 бетте. Орталық енгізу мүмкіндігі бар енгізу-шығару регистрлері, оның ішінде енгізу-шығару биттері мен енгізу-шығару түйректері қарамен көрсетілген. Құрылғыға арналған енгізу-шығару регистрі және бит орындары тізімде көрсетілген 77-беттегі «Тіркелудің сипаттамасы».
Таймер/санауыш (TCNT0) және шығысты салыстыру регистрлері (OCR0A және OCR0B) 8 разрядты регистрлер болып табылады. Үзуді сұрау (суретте қысқартылған Int.Req.) сигналдарының барлығы Timer Interrupt Flag Register (TIFR) тізілімінде көрінеді. Барлық үзілістер Timer Interrupt Mask Register (TIMSK) арқылы жеке маскаланады. TIFR және TIMSK суретте көрсетілмеген.
Таймерді/есептегішті іштей, алдын ала шкала арқылы немесе T0 істікшесіндегі сыртқы сағат көзі арқылы анықтауға болады. Clock Select логикалық блогы оның мәнін арттыру (немесе азайту) үшін таймер/санауыштың қай сағат көзі мен жиегін пайдаланатынын басқарады. Сағат көзі таңдалмаған кезде таймер/есептегіш белсенді емес. Clock Select логикасының шығысы таймер сағаты (clkT0) деп аталады.
Екі буферлі шығыс салыстыру регистрлері (OCR0A және OCR0B) барлық уақытта Timer / Counter мәнімен салыстырылады. Салыстыру нәтижесін Waveform Generator пайдалана отырып, PWM немесе айнымалы жиіліктің шығуын салыстыру түйреуіштерінде шығарады (OC0A және OC0B). 69-беттегі «Шығаруды салыстыру бірлігі» бөлімін қараңыз. толық ақпарат алу үшін. Сәйкестікті салыстыру оқиғасы шығыс салыстыру үзілісі сұранысын жасау үшін пайдаланылатын салыстыру жалаушасын (OCF0A немесе OCF0B) орнатады.
Анықтамалар
Бұл бөлімдегі көптеген регистрлік және биттік сілтемелер жалпы түрде жазылған. «N» кіші регистрі Таймер / Санағыш нөмірін ауыстырады, бұл жағдайда 0. «Х» кіші регистр Шығарманы салыстыру бірлігін алмастырады, бұл жағдайда А бірлігін салыстырыңыз немесе В бірлігін салыстырыңыз. Алайда регистрді немесе битті қолданғанда анықтайды бағдарламада нақты форма қолданылуы керек, яғни TCNT0 Timer / Counter0 есептегіш мәніне қол жеткізу үшін және т.б.
Анықтамалары Кесте 11-1 сонымен қатар бүкіл құжатта кең қолданылады.
Кесте 11-1. Анықтамалар
Тұрақты | Сипаттама |
ТӨМЕН | Есептегіш 0x00 болғанда BOTTOM-ге жетеді |
МАКС | Есептегіш 0xFF (ондық 255) болғанда максимумға жетеді |
ТОП | Есептегіш санау ретіндегі ең үлкен мәнге тең болғанда ТОП-қа жетеді. TOP мәнін 0xFF (MAX) тіркелген мәні немесе OCR0A тізілімінде сақталатын мән ретінде тағайындауға болады. Тапсырма жұмыс режиміне байланысты |
Таймер / қарсы есептегіш және сағат көздері
Таймерді / есептегішті ішкі немесе сыртқы сағат көзі арқылы басқаруға болады. Сағат көзі Clock Select логикасы бойынша таңдалады, оны Clock Select (c) биттерімен басқарылатын Timer / Counter0 басқару регистрінде (TCCR0B) таңдайды.
Prescaler көмегімен ішкі сағат көзі
Таймер/Санақ0 жүйелік сағатпен тікелей сағатталуы мүмкін (CS0[2:0] = 1 орнату арқылы). Бұл жүйенің тактілік жиілігіне (fCLK_I/O) тең максималды таймер/есептеуіш тактілік жиілігі бар ең жылдам жұмысты қамтамасыз етеді. Немесе алдын ала масштабтағыштың төрт түртуінің бірін сағат көзі ретінде пайдалануға болады. Алдын ала масштабталған сағаттың жиілігі бар
Prescaler қалпына келтіру
Алдын ала есептегіш еркін жұмыс істейді, яғни ол Timer/Counter0 Clock Select логикасына тәуелсіз жұмыс істейді. Алдын ала есептегішке таймер/есептегіш сағатын таңдау әсер етпейтіндіктен, алдын ала есептегіш күйі алдын ала есептелген сағат қолданылатын жағдайларға әсер етеді. Бір бұрынғыampАлдын ала өлшеу артефакты - бұл таймер/есептегішті алдын ала есептегіш қосқан және сағаты (6> CS0 [2: 0]> 1). Таймер қосылғаннан бастап бірінші санауға дейінгі жүйелік сағат циклдерінің саны 1 -ден N+1 -ге дейін болуы мүмкін, бұл кезде N алдын ала есептегіш бөлгішке тең (8, 64, 256 немесе 1024).
Бағдарламаны орындауға таймер / есептегішті синхрондау үшін Prescaler Reset функциясын қолдануға болады.
Сыртқы сағат көзі
T0 істікшесіне қолданылатын сыртқы сағат көзі таймер/есептегіш сағат (clkT0) ретінде пайдаланылуы мүмкін. T0 істікшесі sampтүйін синхрондау логикасы бойынша жүйелік сағаттың әр циклін бір рет басқарады. Синхронды (сampLED) сигнал беріледі
шеткі детектор арқылы. 11-2-сурет T0 синхрондауының және жиек детекторының логикасының функционалды эквивалентті құрылымдық диаграммасын көрсетеді. Регистрлердің тактілері ішкі жүйелік сағаттың оң шетінде орналасқан (clkI/O). Ішкі жүйелік сағаттың жоғары кезеңінде ысырма мөлдір болады.
Жиек детекторы анықтайтын әрбір оң (CS0[0:2] = 0) немесе теріс (CS7[0:2] = 0) үшін бір clkT6 импульсін жасайды.
OCR0x регистрлері импульстің енін модуляциялаудың кез-келген режимін қолданған кезде екі буферлі болады. Салыстыру (CTC) режиміндегі қалыпты және анық таймер үшін қос буферлеу өшірілген. Қосарланған буфер OCR0x салыстыру регистрлерінің жаңаруын санақ тізбегінің жоғарғы немесе төменгі жағына синхрондайды. Синхрондау тақ ұзындығы симметриялы емес PWM импульстарының пайда болуына жол бермейді, осылайша шығуды ақысыз етеді.
OCR0x регистріне кіру күрделі болып көрінуі мүмкін, бірақ олай емес. Қос буферлеу қосылған кезде, процессор OCR0x буферлік регистріне қол жеткізе алады, ал егер қос буферлеу өшірілген болса, процессор OCR0x-қа тікелей қатынаса алады.
Шығаруды күштеп салыстыру
PWM емес толқын формасының генерациялау режимдерінде компаратордың сәйкестік нәтижесін Force Output Compare (FOC0x) разрядына біреуін жазу арқылы мәжбүрлеуге болады. Салыстыруды мәжбүрлеу OCF0x жалаушасын орнатпайды немесе таймерді қайта жүктемейді / өшірмейді, бірақ OC0x пині нақты салыстыру сәйкес келгендей жаңарады (COM0x [1: 0] бит параметрлері OC0x пинінің орнатылған-орнатылмағанын анықтайды немесе ауыстырылған).
Матчты бұғаттауды TCNT0 жазуымен салыстырыңыз
TCNT0 регистріне барлық CPU жазу операциялары келесі таймердің сағат циклында орын алатын кез-келген салыстыру матчын бұғаттайды, тіпті таймер тоқтаған кезде де. Бұл мүмкіндік OCR0x-ті TCNT0 мәніне теңестіруге мүмкіндік береді, таймер / есептегіш сағаты қосулы кезде үзіліс тудырмайды.
Шығаруды салыстыру қондырғысын пайдалану
TCNT0-ді кез-келген жұмыс режимінде жазу барлық таймердің бір цикл циклына арналған барлық салыстыру матчтарын блоктайтын болғандықтан, шығыс салыстыру қондырғысын пайдалану кезінде TCNT0-ті өзгерту кезінде таймер / есептегіштің жұмыс істеп тұрғанына немесе жұмыс істемейтіндігіне тәуелсіз тәуекелдер бар. Егер TCNT0-ге жазылған мән OCR0x мәніне тең болса, салыстыру сәйкес келмейді, нәтижесінде толқын формасы дұрыс түзілмейді. Сол сияқты, санауыш кері санау кезінде TCNT0 мәнін BOTTOM-ге тең етіп жазбаңыз.
OC0x қондырғысы порттың істікшесінің шығуы үшін мәліметтер бағытының регистрін орнатпас бұрын орындалуы керек. OC0x мәнін орнатудың ең қарапайым тәсілі - Force Output Compare (FOC0x) строб биттерін Қалыпты режимде қолдану. OC0x регистрлері Waveform Generation режимдерін ауыстырған кезде де өз мәндерін сақтайды.
COM0x [1: 0] биттері салыстыру мәнімен бірге екі рет буферленбейтінін ескеріңіз. COM0x [1: 0] биттерін өзгерту дереу күшіне енеді.
Сәйкестіктің шығыс бөлігін салыстырыңыз
Шығару режимін салыстыру (COM0x [1: 0]) биттері екі функциядан тұрады. Толқын формасының генераторы COM0x [1: 0] биттерін келесі салыстыру матчында шығыс салыстыру (OC0x) күйін анықтау үшін қолданады. Сондай-ақ, COM0x [1: 0] биттері OC0x пин шығыс көзін басқарады. 11-6-сурет COM0x [1: 0] биттік параметрі әсер ететін логиканың оңайлатылған схемасын көрсетеді. Суреттегі енгізу-шығару регистрлері, енгізу-шығару биттері және енгізу-шығару түйректері қарамен көрсетілген. COM0x [1: 0] биттері әсер ететін жалпы енгізу-шығару портының регистрлерінің (DDR және PORT) бөліктері ғана көрсетілген. OC0x күйіне сілтеме жасағанда, сілтеме OC0x пиніне емес, ішкі OC0x регистріне арналған. Егер жүйені қалпына келтіру орын алса, OC0x регистрі «0» қалпына келеді.
OC0A / OC0B енгізу-шығару пиніне қосылған кезде COM0A [1: 0] / COM0B [1: 0] биттерінің қызметі WGM0 [2: 0] биттік параметріне байланысты. Кесте 11-2 WGM0 [1: 0] биттері қалыпты немесе CTC режиміне орнатылған кезде COM0x [2: 0] биттік функцияны көрсетеді (PWM емес).
Кесте 11-2. Шығыс режимін, PWM емес режимді салыстырыңыз
COM0A1 COM0B1 | COM0A0 COM0B0 | Сипаттама |
0 | 0 | OC0A / OC0B ажыратылған қалыпты порт жұмысы. |
0 | 1 | OC0A / OC0B-ді салыстыру матчына қосыңыз |
1 | 0 | Салыстыру матчында OC0A / OC0B өшіріңіз |
1 | 1 | OC0A / OC0B параметрін Compare Match параметріне қойыңыз |
Кесте 11-3 WGM0 [1: 0] биттері жылдам PWM режиміне орнатылған кезде COM0x [2: 0] биттік функциясын көрсетеді.
Кесте 11-3. Шығу режимін, жылдам PWM режимін салыстырыңыз(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Сипаттама |
0 | 0 | OC0A / OC0B ажыратылған қалыпты порт жұмысы. |
0 | 1 | Резервтелген |
1 | 0 | Салыстыру матчында OC0A / OC0B өшіріп, OC0A / OC0B мәнін BOTTOM күйіне қойыңыз (инвертировкалық емес режим) |
1 | 1 | OC0A / OC0B-ді Compare Match параметріне қойыңыз, OC0A / OC0B-ді BOTTOM (төңкеру режимінде) өшіріңіз |
Ескертпе: OCR0A немесе OCR0B TOP мәніне тең және COM0A1/COM0B1 орнатылған кезде ерекше жағдай орын алады. Бұл жағдайда салыстыру сәйкестігі еленбейді, бірақ орнату немесе тазалау ТӨМЕНДЕ орындалады. Қараңыз «Жылдам PWM режимі» 73-бетте толығырақ ақпарат алу үшін.
Кесте 11-4 WGM0 [1: 0] биттері фазалық түзету режимін орнатқан кезде COM0x [2: 0] биттік функциясын көрсетеді.
Кесте 11-4. Шығу режимін, фазаны дұрыс PWM режимін салыстырыңыз(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Сипаттама |
0 | 0 | OC0A / OC0B ажыратылған қалыпты порт жұмысы. |
0 | 1 | Резервтелген |
1 | 0 | Санау кезінде салыстыру матчында OC0A / OC0B өшіріңіз. Санау кезінде кері салыстыру кезінде OC0A / OC0B мәнін салыстырыңыз. |
1 | 1 | Есептеу кезінде OC0A / OC0B параметрін Compare Match параметріне қойыңыз. Сәйкестікті сәйкестендіру кезінде OC0A / OC0B өшіріңіз. |
Ескертпе: 1. Ерекше жағдай OCR0A немесе OCR0B TOP мәніне тең болғанда және COM0A1/COM0B1 орнатылғанда орын алады. Бұл жағдайда Салыстыру сәйкестігі еленбейді, бірақ орнату немесе тазалау ТОП-та орындалады. Қараңыз «Фазаны дұрыс түзету режимі» 74-бетте толығырақ ақпарат алу үшін.
Биттер 3: 2 - Резерв: Бөлінген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
Биттер 1: 0 - WGM0 [1: 0]: толқын формасын қалыптастыру режимі
TCCR02B регистрінде табылған WGM0 битімен бірге бұл биттер есептегіштің санау ретін, есептегіштің максималды (TOP) мәні үшін көзді және толқын формасының генерациясының қандай түрін қолдануды басқарады, қараңыз Кесте 11-5. Таймер / санауыш қондырғысы қолдайтын жұмыс режимдері: қалыпты режим (санауыш), салыстыру бойынша сәйкестендіруді өшіру таймері (CTC) режимі және импульстің енін модуляциялаудың (PWM) екі түрі (қараңыз) «Жұмыс режимі» 71-бетте).
Кесте 11-5. Толқын пішінін құру режимінің бит сипаттамасы
Режим | WGM 02 | WGM 01 | WGM 00 | Таймер / есептегіш жұмыс режимі | ТОП | OCRx-ті жаңарту | TOV жалаушасы орнатылды |
0 | 0 | 0 | 0 | Қалыпты | 0xFF | Дереу | МАКС(1) |
1 | 0 | 0 | 1 | PWM, дұрыс фаза | 0xFF | ТОП | ТӨМЕН(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Дереу | МАКС(1) |
3 | 0 | 1 | 1 | Жылдам PWM | 0xFF | ТӨМЕН(2) | МАКС(1) |
4 | 1 | 0 | 0 | Резервтелген | – | – | – |
5 | 1 | 0 | 1 | PWM, дұрыс фаза | OCRA | ТОП | ТӨМЕН(2) |
6 | 1 | 1 | 0 | Резервтелген | – | – | – |
7 | 1 | 1 | 1 | Жылдам PWM | OCRA | ТӨМЕН(2) | ТОП |
7-разряд - FOC0A: күштің шығуын салыстырыңыз
FOC0A биті тек WGM биттері PWM емес режимді көрсеткен кезде ғана жұмыс істейді.
Алайда, болашақ құрылғылармен үйлесімділікті қамтамасыз ету үшін, PWM режимінде жұмыс істеген кезде TCCR0B жазылған кезде бұл битті нөлге теңестіру керек. FOC0A битіне логикалық жазған кезде, Waveform Generation блогына жедел салыстыру матчі мәжбүр болады. OC0A шығысы оның COM0A [1: 0] бит параметрлеріне сәйкес өзгертіледі. FOC0A биті строб ретінде орындалғанын ескеріңіз. Сондықтан COM0A биттеріндегі мән [1: 0] мәжбүрлі салыстырудың әсерін анықтайды.
FOC0A сызбасы ешқандай үзіліс тудырмайды және CTC режиміндегі таймерді OCR0A-ны TOP ретінде пайдаланып өшірмейді. FOC0A биті әрқашан нөл ретінде оқылады.
6-разряд - FOC0B: B шығысын күштеп салыстырыңыз
FOC0B биті WGM биттері PWM емес режимді көрсеткен кезде ғана белсенді болады.
Алайда, болашақ құрылғылармен үйлесімділікті қамтамасыз ету үшін, PWM режимінде жұмыс істеген кезде TCCR0B жазылған кезде бұл битті нөлге теңестіру керек. FOC0B битіне логикалық жазған кезде, Waveform Generation қондырғысы үшін бірден Compare Match мәжбүрлейді. OC0B шығысы оның COM0B [1: 0] бит параметрлеріне сәйкес өзгертіледі. FOC0B биті строб ретінде орындалғанын ескеріңіз. Сондықтан COM0B биттеріндегі мән [1: 0] мәжбүрлі салыстырудың әсерін анықтайды.
FOC0B сызбасы ешқандай үзіліс жасамайды және CTC режиміндегі таймерді OCR0B-ді TOP ретінде пайдаланып өшірмейді.
FOC0B биті әрқашан нөл ретінде оқылады.
Биттер 5: 4 - Резерв: Бөлінген биттер
Бұл биттер ATtiny25 / 45/85-те сақталған биттер болып табылады және әрқашан нөл ретінде оқылады.
Бит 3 - WGM02: толқын формасын қалыптастыру режимі
Сипаттамасын қараңыз «TCCR0A - таймер / қарсы бақылау регистрі А» 77 бетте.
Биттер 2: 0 - CS0 [2: 0]: Сағат таңдаңыз
Clock Select үш биті таймер / есептегіш қолданатын сағат көзін таңдайды.
Кесте 11-6. Clock Select Bit Description
CS02 | CS01 | CS00 | Сипаттама |
0 | 0 | 0 | Сағат көзі жоқ (таймер / санауыш тоқтады) |
0 | 0 | 1 | clkI/O/(алдын ала масштабтау жоқ) |
0 | 1 | 0 | clkI/O/8 (алдын ала масштабтағыштан) |
0 | 1 | 1 | clkI/O/64 (алдын ала масштабтағыштан) |
1 | 0 | 0 | clkI/O/256 (алдын ала масштабтағыштан) |
1 | 0 | 1 | clkI/O/1024 (алдын ала масштабтағыштан) |
1 | 1 | 0 | T0 түйреуішіндегі сыртқы сағат көзі. Құлап бара жатқан сағат. |
1 | 1 | 1 | T0 түйреуішіндегі сыртқы сағат көзі. Көтеріліп жатқан жиек. |
Егер Timer / Counter0 үшін сыртқы түйреуіш режимдері қолданылса, T0 түйреуішіндегі ауысулар есептегішті сағаттық режимге айналдырады, тіпті егер ол шығыс ретінде конфигурацияланған болса. Бұл функция есептеуді бағдарламалық басқаруға мүмкіндік береді.
Есептегіш және салыстыру бірліктері
Timer / Counter1 жалпы жұмысы асинхронды режимде сипатталады және синхронды режимдегі жұмыс тек осы екі режим арасында айырмашылықтар болған жағдайда ғана айтылады. 12-2-сурет Timer / Counter 1 синхрондау регистрінің блок-схемасын және регистрлер арасындағы синхрондаудың кешігуін көрсетеді. Сағаттың барлық егжей-тегжейлері суретте көрсетілмегенін ескеріңіз. Timer / Counter1 регистрінің мәндері есептегіштің жұмысына әсер етпес бұрын кірісті синхрондаудың кідірісін тудыратын ішкі синхрондау регистрлері арқылы өтеді. TCCR1, GTCCR, OCR1A, OCR1B және OCR1C регистрлерін реестрді жазғаннан кейін бірден оқуға болады. Кері және кері синхронизацияға байланысты кері оқылған мәндер Timer / Counter1 (TCNT1) регистрі мен жалаушалары (OCF1A, OCF1B және TOV1) үшін кешіктіріледі.
Timer / Counter1-де жоғары ажыратымдылық және жоғары дәлдікті қолдану мүмкіндігі бар. Сондай-ақ, ол 8 МГц (немесе төмен жылдамдық режимінде 64 МГц) дейінгі жылдамдықты қолданатын екі дәл, жоғары жылдамдықты, 32-биттік импульстік модуляторларды қолдай алады. Бұл режимде Timer / Counter1 және шығыс салыстыру регистрлері қайталанбайтын және төңкерілген шығысымен қабаттаспайтын қосарланған жеке PWM ретінде қызмет етеді. Қараңыз 86 бет осы функция туралы толық сипаттама алу үшін. Сол сияқты, алдын-ала өлшеудің жоғары мүмкіндіктері бұл құрылғыны жылдамдығы төмен функциялар үшін немесе сирек кездесетін әрекеттері бар дәл уақыт функциялары үшін пайдалы етеді.
12-2-сурет. Таймер/есептегіш 1 Синхрондау тізілімінің блок диаграммасы.
Таймер / есептегіш1 және алдын-ала өлшегіш асинхронды режимде алдын-ала өлшегіш жылдамдығы 64 МГц (немесе төмен жылдамдық режимінде 32 МГц) PCK сағаттарында жұмыс істеп тұрған кезде кез-келген сағат көзінен процессорды басқаруға мүмкіндік береді.
Жүйелік сағат жиілігі PCK жиілігінің үштен бірінен төмен болуы керек екенін ескеріңіз. Синхрондау тетігі асинхронды таймер / есептегіш1 жүйелік сағат жоғары болған кезде PCK-нің кем дегенде екі шетін қажет етеді. Егер жүйелік сағаттың жиілігі тым жоғары болса, бұл деректердің немесе басқару мәндерінің жоғалуы қаупі бар.
Келесісі 12-3-сурет Timer / Counter1 блок-схемасын көрсетеді.
Кесте 12-1. Compare Mode 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 және Quantization, Gain және Offset қателіктерін қосқанда) | VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC сағаты = 1 МГц |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц Шуды азайту режимі |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC сағаты = 1 МГц Шуды азайту режимі |
2.5 | LSB | ||||
Интегралды сызықтық емес (INL) (теңестірілгеннен кейін дәлдік және калибрлеу) | VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц |
1 | LSB | |||
Дифференциалды сызықтық емес (DNL) | VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц |
0.5 | LSB | |||
Қате табу | VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц |
2.5 | LSB | |||
Офсеттік қате | VREF = 4V, VCC = 4V,
ADC сағаты = 200 кГц |
1.5 | LSB | |||
Конверсия уақыты | Тегін жүгіру конверсиясы | 14 | 280 | мк | ||
Сағат жиілігі | 50 | 1000 | кГц | |||
VIN | Кіріс көлеміtage | GND | VREF | V | ||
Өткізу қабілеттілігін енгізу | 38.4 | кГц | ||||
AREF | Сыртқы анықтамалық томtage | 2.0 | VCC | V | ||
VINT | Ішкі томtage Сілтеме | 1.0 | 1.1 | 1.2 | V | |
Ішкі 2.56В анықтама (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | кОм | ||||
ЖАҢбыр | Аналогты кіріс кедергісі | 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 кГц |
10.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
20.0 | LSB | ||||
Интегралды Сызықтық емес (INL) (Есептен кейінгі дәлдік және өсу калибрлеу) | Табыс = 1x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
4.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
10.0 | LSB | ||||
Қате табу | Табыс = 1x | 10.0 | LSB | |||
Табыс = 20x | 15.0 | LSB | ||||
Офсеттік қате | Табыс = 1x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
3.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
4.0 | LSB | ||||
Конверсия уақыты | Тегін жүгіру конверсиясы | 70 | 280 | мк | ||
Сағат жиілігі | 50 | 200 | кГц | |||
VIN | Кіріс көлеміtage | GND | VCC | V | ||
VDIFF | Кіріс дифференциалы көлеміtage | VREF/пайда | V | |||
Өткізу қабілеттілігін енгізу | 4 | кГц | ||||
AREF | Сыртқы анықтамалық томtage | 2.0 | VCC – 1.0 | V | ||
VINT | Ішкі томtage Сілтеме | 1.0 | 1.1 | 1.2 | V | |
Ішкі 2.56В анықтама (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | Анықтамалық кіріс кедергісі | 32 | кОм | |||
ЖАҢбыр | Аналогты кіріс кедергісі | 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 кГц |
8.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
8.0 | LSB | ||||
Интегралды Сызықтық емес (INL) (Есептен кейінгі дәлдік және өсу калибрлеу) | Табыс = 1x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
4.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
5.0 | LSB | ||||
Қате табу | Табыс = 1x | 4.0 | LSB | |||
Табыс = 20x | 5.0 | LSB | ||||
Офсеттік қате | Табыс = 1x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
3.0 | LSB | |||
Табыс = 20x
VREF = 4V, VCC = 5V ADC сағаты = 50 - 200 кГц |
4.0 | LSB | ||||
Конверсия уақыты | Тегін жүгіру конверсиясы | 70 | 280 | мк | ||
Сағат жиілігі | 50 | 200 | кГц | |||
VIN | Кіріс көлеміtage | GND | VCC | V | ||
VDIFF | Кіріс дифференциалы көлеміtage | VREF/пайда | V | |||
Өткізу қабілеттілігін енгізу | 4 | кГц | ||||
AREF | Сыртқы анықтамалық томtage | 2.0 | VCC – 1.0 | V | ||
VINT | Ішкі томtage Сілтеме | 1.0 | 1.1 | 1.2 | V | |
Ішкі 2.56В анықтама (1) | VCC > 3.0 В | 2.3 | 2.56 | 2.8 | V | |
RREF | Анықтамалық кіріс кедергісі | 32 | кОм | |||
ЖАҢбыр | Аналогты кіріс кедергісі | 100 | MΩ | |||
ADC айырбастау нәтижесі | -512 | 511 | LSB |
Нұсқаулық жиынтығы
Мнемотехника | Операндтар | Сипаттама | Операция | Жалаулар | # Сағаттар |
АРИФМЕТИКА ЖӘНЕ ЛОГИКАЛЫҚ НҰСҚАУЛАР | |||||
ҚОСУ | Rd, Rr | Екі тізілім қосыңыз | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Екі тіркелімді алып жүріңіз | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Word бағдарламасына бірден қосыңыз | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Екі регистрді алып тастаңыз | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
МЕН ЖОҒАРЫ БОЛДЫМ | Рд, Қ | Регистрден тұрақты алып тастаңыз | Рд ← Рд – К | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Екі регистрді алып тастаңыз | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Рд, Қ | Reg-тен Carry Constant алып тастаңыз. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Word-тан дереу алып тастаңыз | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
ЖӘНЕ | Rd, Rr | Логикалық және регистрлер | Rd ← Rd ∙ Rr | Z, N, V | 1 |
АНДИ | Рд, Қ | Логикалық ЖӘНЕ Тіркелу және тұрақты | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Логикалық Немесе регистрлер | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Рд, Қ | Логикалық Немесе Тіркелу және Тұрақты | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Эксклюзивті Немесе Регистрлер | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Бірінің толықтырушысы | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Екінің толықтауышы | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Тіркеуге бит (тер) орнатыңыз | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Тіркеуден биттерді өшіріңіз | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Көбейту | Rd ← Rd + 1 | Z, N, V | 1 |
ДЕК | Rd | Азаю | Rd ← Rd − 1 | Z, N, V | 1 |
ТСТ | Rd | Нөл немесе минус үшін тест | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Тіркелуді тазарту | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Тіркелуді орнатыңыз | Rd ← 0xFF | Жоқ | 1 |
ФИЛИАЛ НҰСҚАУЛАРЫ | |||||
RJMP | k | Салыстырмалы секіру | ДК ← ДК + k + 1 | Жоқ | 2 |
IJMP | Жанама өту (Z) | ДК ← З | Жоқ | 2 | |
Шақыру | k | Салыстырмалы қосалқы шақыру | ДК ← ДК + k + 1 | Жоқ | 3 |
МЕН ТЕЛЕФОН СОҒЫМЫН | Жанама қоңырау (Z) | ДК ← З | Жоқ | 3 | |
RET | Бағдарламаны қайтару | ДК ← СТЕК | Жоқ | 4 | |
RETI | Үзілісті қайтару | ДК ← СТЕК | I | 4 | |
CPSE | Rd, Rr | Салыстырыңыз, тең болса өткізіп жіберіңіз | егер (Rd = Rr) PC ← PC + 2 немесе 3 | Жоқ | 1/2/3 |
CP | Rd, Rr | Салыстыру | Rd − Rr | Z, N, V, C, H | 1 |
КТК | Rd, Rr | Carry-мен салыстырыңыз | Rd − Rr − C | Z, N, V, C, H | 1 |
ТБИ | Rd, K | Тіркелуді тез арада салыстырыңыз | Rd − K | Z, N, V, C, H | 1 |
SBRC | Рр, б | Тіркелуде бит жойылса, өткізіп жіберіңіз | егер (Rr(b)=0) PC ← PC + 2 немесе 3 | Жоқ | 1/2/3 |
SBRS | Рр, б | Тіркелудегі бит орнатылған болса өткізіп жіберіңіз | егер (Rr(b)=1) PC ← PC + 2 немесе 3 | Жоқ | 1/2/3 |
SBIC | P, b | Егер I / O Тіркеу тазартылған болса, өткізіп жіберіңіз | егер (P(b)=0) PC ← PC + 2 немесе 3 | Жоқ | 1/2/3 |
SBIS | P, b | I / O регистрінде бит орнатылған болса, өткізіп жіберіңіз | егер (P(b)=1) PC ← PC + 2 немесе 3 | Жоқ | 1/2/3 |
BRBS | с, к | Егер күй жалаушасы орнатылса | егер (SREG(s) = 1), онда PC←PC+k + 1 | Жоқ | 1/2 |
BRBC | с, к | Күй жалауы жойылған болса, филиал | егер (SREG(s) = 0), онда PC←PC+k + 1 | Жоқ | 1/2 |
BREQ | k | Тең болса филиал | егер (Z = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRNE | k | Тең болмаса филиал | егер (Z = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRCS | k | Тасымалдау керек болса, филиал | егер (C = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRCC | k | Егер тасымалдау керек болса, филиал | егер (C = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRSH | k | Егер бірдей немесе жоғары болса, филиал | егер (C = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRLO | k | Төменірек болса, филиал | егер (C = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRMI | k | Минус болса филиал | егер (N = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRPL | k | Плюс болса, филиал | егер (N = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRGE | k | Үлкен немесе тең болса, қол қойылады | егер (N ⊕ V= 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRLT | k | Нөлден аз болса, қол қойылған филиал | егер (N ⊕ V= 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRHS | k | Жартылай көтеретін флаг | егер (H = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRHC | k | Жартылай көтеретін жалауша тазартылған болса, филиал | егер (H = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRTS | k | Егер T жалаушасы орнатылған болса, филиал | егер (T = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRTC | k | Егер T жалағы жойылса, филиал | егер (T = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRVS | k | Егер толып кететін жалауша орнатылса | егер (V = 1) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
BRVC | k | Толып кететін жалауша жойылса, филиал | егер (V = 0) болса, онда PC ← PC + k + 1 | Жоқ | 1/2 |
БРИ | k | Егер үзіліс қосылса, филиал | егер ( I = 1) болса, онда ДК ← ДК + k + 1 | Жоқ | 1/2 |
КӨК | k | Егер үзіліс ажыратылса, филиал | егер ( I = 0) болса, онда ДК ← ДК + k + 1 | Жоқ | 1/2 |
BIT және BIT-TEST НҰСҚАУЛАРЫ | |||||
SBI | P, b | Енгізу-шығару регистрінде бит орнатыңыз | I/O(P,b) ← 1 | Жоқ | 2 |
CBI | P, b | Енгізу-шығару тіркеліміндегі битті өшіру | I/O(P,b) ← 0 | Жоқ | 2 |
LSL | Rd | Логикалық солға жылжу | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Логикалық оңға жылжу | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
РӨЛІ | Rd | Тасымалдау арқылы солға бұру | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Тасымалдау арқылы бұрылу | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Арифметикалық жылжу оңға | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Мнемотехника | Операндтар | Сипаттама | Операция | Жалаулар | # Сағаттар |
SWAP | Rd | Нибблаларды ауыстыру | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Жоқ | 1 |
BSET | s | Жалаулар жиынтығы | SREG(лар) ← 1 | SREG (-лер) | 1 |
BCLR | s | Жалауша ашық | SREG(лар) ← 0 | SREG (-лер) | 1 |
BST | Рр, б | Бит дүкені Тіркелуден бастап Т | T ← Rr(b) | T | 1 |
BLD | Рд, б | Т-дан Тіркелуге дейінгі биттік жүктеме | Рд(б) ← Т | Жоқ | 1 |
ӘКК | Тасымалдауды орнатыңыз | C ← 1 | C | 1 | |
CLC | Тасымалдау | C ← 0 | C | 1 | |
СЕН | Теріс жалауша орнатыңыз | N ← 1 | N | 1 | |
CLN | Теріс жалаушаны өшіру | N ← 0 | N | 1 | |
АЭА | Нөлдік жалаушаны орнатыңыз | Z ← 1 | Z | 1 | |
CLZ | Нөлдік жалаушаны өшіру | Z ← 0 | Z | 1 | |
SEI | Ғаламдық үзу қосу | Мен ← 1 | I | 1 | |
CLI | Жаһандық үзілісті өшіру | Мен ← 0 | I | 1 | |
SES | Қол қойылған сынақ жалаушасын орнатыңыз | S ← 1 | S | 1 | |
CLS | Қол қойылған тест жалаушасын алып тастаңыз | S ← 0 | S | 1 | |
SEV | Twos Complement Overflow орнатыңыз. | V ← 1 | V | 1 | |
CLV | Қосарланған толып кетуді тазалаңыз | V ← 0 | V | 1 | |
ОРНАТУ | SREG ішіне T орнатыңыз | T ← 1 | T | 1 | |
CLT | SREG ішіндегі T өшіріңіз | T ← 0 | T | 1 | |
SEH | SREG ішіндегі жартылай тасымалдау жалаушасын орнатыңыз | H ← 1 | H | 1 | |
CLH | SREG ішіндегі жартылай тасымалдау жалаушасын тазарту | H ← 0 | H | 1 | |
ДЕРЕКТЕРДІ АУЫРУ НҰСҚАУЛАРЫ | |||||
MOV | Rd, Rr | Регистрлер арасында жылжу | Rd ← Rr | Жоқ | 1 |
MOVW | Rd, Rr | Word сөзін көшіру | Rd+1:Rd ← Rr+1:Rr | Жоқ | 1 |
LDI | Рд, Қ | Дереу жүктеңіз | Rd ← K | Жоқ | 1 |
LD | Рд, X | Жанама жүктеу | Rd ← (X) | Жоқ | 2 |
LD | Rd, X + | Жанама және кейінгі Inc жүктеу. | Rd ← (X), X ← X + 1 | Жоқ | 2 |
LD | Rd, - X | Жанама және желтоқсанға дейінгі жүктеме. | X ← X – 1, Rd ← (X) | Жоқ | 2 |
LD | Рд, Ы | Жанама жүктеу | Rd ← (Y) | Жоқ | 2 |
LD | Rd, Y + | Жанама және кейінгі Inc жүктеу. | Rd ← (Y), Y ← Y + 1 | Жоқ | 2 |
LD | Rd, - Y | Жанама және желтоқсанға дейінгі жүктеме. | Y ← Y – 1, Rd ← (Y) | Жоқ | 2 |
LDD | Rd, Y + q | Ауыстырумен жанама түрде жүктеңіз | Rd ← (Y + q) | Жоқ | 2 |
LD | Рд, З | Жанама жүктеу | Rd ← (Z) | Жоқ | 2 |
LD | Rd, Z + | Жанама және кейінгі Inc жүктеу. | Rd ← (Z), Z ← Z+1 | Жоқ | 2 |
LD | Рд, -З | Жанама және желтоқсанға дейінгі жүктеме. | Z ← Z – 1, Rd ← (Z) | Жоқ | 2 |
LDD | Rd, Z + q | Ауыстырумен жанама түрде жүктеңіз | Rd ← (Z + q) | Жоқ | 2 |
LDS | Рд, к | SRAM-ден Direct жүктеңіз | Rd ← (k) | Жоқ | 2 |
ST | X, Rr | Жанама түрде сақтау | (X) ← Rr | Жоқ | 2 |
ST | X +, Rr | Жанама және пост-Inc дүкенін сақтау. | (X) ← Rr, X ← X + 1 | Жоқ | 2 |
ST | - X, Rr | Жанама және алдын-ала сақтау. | X ← X – 1, (X) ← Rr | Жоқ | 2 |
ST | Y, Rr | Жанама түрде сақтау | (Y) ← Rr | Жоқ | 2 |
ST | Y +, Rr | Жанама және пост-Inc дүкенін сақтау. | (Y) ← Rr, Y ← Y + 1 | Жоқ | 2 |
ST | - Y, Rr | Жанама және алдын-ала сақтау. | Y ← Y – 1, (Y) ← Rr | Жоқ | 2 |
ЖЖБИ | Y + q, Rr | Ауыстырумен жанама сақтау | (Y + q) ← Rr | Жоқ | 2 |
ST | Z, Rr | Жанама түрде сақтау | (Z) ← Rr | Жоқ | 2 |
ST | Z +, Rr | Жанама және пост-Inc дүкенін сақтау. | (Z) ← Rr, Z ← Z + 1 | Жоқ | 2 |
ST | -Z, Rr | Жанама және алдын-ала сақтау. | Z ← Z – 1, (Z) ← Rr | Жоқ | 2 |
ЖЖБИ | Z + q, Rr | Ауыстырумен жанама сақтау | (Z + q) ← Rr | Жоқ | 2 |
STS | k, Rr | SRAM-ге тікелей сақтау | (k) ← Rr | Жоқ | 2 |
LPM | Бағдарлама жадын жүктеңіз | R0 ← (Z) | Жоқ | 3 | |
LPM | Рд, З | Бағдарлама жадын жүктеңіз | Rd ← (Z) | Жоқ | 3 |
LPM | Rd, Z + | Бағдарлама жадын және Post-Inc жүктеу | Rd ← (Z), Z ← Z+1 | Жоқ | 3 |
SPM | Бағдарлама жадын сақтау | (z) ← R1:R0 | Жоқ | ||
IN | Рд, П | Портта | Rd ← P | Жоқ | 1 |
OUT | P, Rr | Порттан шығу | P ← Rr | Жоқ | 1 |
БАСЫҢЫЗ | Rr | Тіркеуді стекке басыңыз | СТЕК ← Rr | Жоқ | 2 |
POP | Rd | Stack-тен эстрадалық тіркелу | Rd ← СТАК | Жоқ | 2 |
MCU БАҚЫЛАУ НҰСҚАУЛАРЫ | |||||
ЖОҚ | Операция жоқ | Жоқ | 1 | ||
ҰЙҚЫ | Ұйқы | (ұйқы функциясы үшін арнайы төмендеуді қараңыз) | Жоқ | 1 | |
WDR | Күзетшіні қалпына келтіру | (WDR / таймер үшін нақты төмендеуді қараңыз) | Жоқ | 1 | |
BREAK | Үзіліс |
Жылдамдық (МГц) (1) | Жабдықтау көлеміtage (V) | Температура диапазоны | Пакет (2) | Тапсырыс коды (3) |
10 | 1.8 – 5.5 | Өнеркәсіптік
(-40 ° C бастап + 85 ° C) (4) |
8P3 | ATtiny45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | ATtiny45V-10XU ATtiny45V-10XUR | |||
20M1 | ATtiny45V-10MU ATtiny45V-10MUR | |||
20 | 2.7 – 5.5 | Өнеркәсіптік
(-40 ° C бастап + 85 ° C) (4) |
8P3 | ATtiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
Ескертпелер: 1. Жылдамдықпен қамтамасыз ету көлемі үшінtage, бөлімді қараңыз 21.3 «Жылдамдық» 163 бетте.
Барлық пакеттерде Pb жоқ, галогенсіз және толық жасыл және олар қауіпті заттарды шектеу жөніндегі Еуропалық директиваға (RoHS) сәйкес келеді.
Код көрсеткіштері
H: NiPdAu қорғасын мәресі
U: күңгірт қалайы
R: таспа және катушка
Бұл құрылғыларды вафли түрінде де жеткізуге болады. Тапсырыс туралы егжей-тегжейлі ақпарат пен минималды көлем үшін жергілікті Atmel сату кеңсесіне хабарласыңыз.
Эррата
25. Еррата
Осы бөлімдегі қайта қарау хатында ATtiny25 құрылғысын қайта қарау туралы айтылады.
Аян D - F
Белгілі қателіктер жоқ.
Аян B - C
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
Төменгі тактілік жиіліктерде және/немесе төмен жабдықтау көлемінде EEPROM оқуға әрекеттенуtage жарамсыз деректерге әкелуі мүмкін.
Мәселені түзету / уақытша шешім
Сағат жиілігі 1 МГц-тен төмен болғанда және қуат көлемін беру кезінде EEPROM қолданбаңызtage 2 В төмен. Егер жұмыс жиілігін 1 МГц-тен жоғары көтеру мүмкін болмаса, онда жеткізу көлеміtage 2 В жоғары болуы керек. Сол сияқты, егер жабдықтау томtage 2 В-тан жоғары көтеру мүмкін емес, жұмыс жиілігі 1 МГц-тен жоғары болуы керек.
Бұл функция температураға тәуелді екендігі белгілі, бірақ ол сипатталмаған. Нұсқаулық тек бөлме температурасы үшін берілген.
Аян
S емесampЖарық диодты индикатор.
45. Еррата
Осы бөлімдегі қайта қарау хатында ATtiny45 құрылғысын қайта қарау туралы айтылады.
Аян F - G
Белгілі қателіктер жоқ
Аян D - E
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
Төменгі тактілік жиіліктерде және/немесе төмен жабдықтау көлемінде EEPROM оқуға әрекеттенуtage жарамсыз деректерге әкелуі мүмкін.
Мәселені түзету / уақытша шешім
Сағат жиілігі 1 МГц-тен төмен болғанда және қуат көлемін беру кезінде EEPROM қолданбаңызtage 2 В төмен. Егер жұмыс жиілігін 1 МГц-тен жоғары көтеру мүмкін болмаса, онда жеткізу көлеміtage 2 В жоғары болуы керек. Сол сияқты, егер жабдықтау томtage 2 В-тан жоғары көтеру мүмкін емес, жұмыс жиілігі 1 МГц-тен жоғары болуы керек.
Бұл функция температураға тәуелді екендігі белгілі, бірақ ол сипатталмаған. Нұсқаулық тек бөлме температурасы үшін берілген.
Аян B - C
PLL құлыпталмайды
Бағдарлама кодынан оқылатын EEPROM Lock Bit Mode 3 режимінде жұмыс істемейді
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
OC1B- XOC1B жүйесінде Timer Counter 1 PWM шығысы дұрыс жұмыс істемейді
PLL құлыпталмайды
6.0 МГц-ден төмен жиілікте болған кезде PLL құлыпталмайды
Мәселені түзету / уақытша шешім
PLL-ді қолданған кезде 6.0 МГц немесе одан жоғары жылдамдықта жұмыс жасаңыз.
Бағдарлама кодынан оқылатын EEPROM Lock Bit Mode 3 режимінде жұмыс істемейді
Жады құлыптау биттері LB2 және LB1 3 режиміне бағдарламаланған кезде, EEPROM оқу бағдарлама кодынан жұмыс істемейді.
Мәселені түзету / айналасында жұмыс істеу
Бағдарлама кодын EEPROM-дан оқу қажет болған кезде, битті қорғау режимін 3 орнатпаңыз.
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
Төменгі тактілік жиіліктерде және/немесе төмен жабдықтау көлемінде EEPROM оқуға әрекеттенуtage жарамсыз деректерге әкелуі мүмкін.
Мәселені түзету / уақытша шешім
Сағат жиілігі 1 МГц-тен төмен болғанда және қуат көлемін беру кезінде EEPROM қолданбаңызtage 2 В төмен. Егер жұмыс жиілігін 1 МГц-тен жоғары көтеру мүмкін болмаса, онда жеткізу көлеміtage 2 В жоғары болуы керек. Сол сияқты, егер жабдықтау томtage 2 В-тан жоғары көтеру мүмкін емес, жұмыс жиілігі 1 МГц-тен жоғары болуы керек.
Бұл функция температураға тәуелді екендігі белгілі, бірақ ол сипатталмаған. Нұсқаулық тек бөлме температурасы үшін берілген.
Timer Counter 1 OC1B - XOC1B құрылғысындағы PWM шығысы дұрыс жұмыс істемейді
Таймер Counter1 PWM OC1B-XOC1B шығысы дұрыс жұмыс істемейді. COM1B1 және COM1B0 басқару биттері COM1A1 және COM1A0 сәйкес режимде болған жағдайда ғана, OC1B-XOC1B шығысы дұрыс жұмыс істейді.
Мәселені түзету / айналасында жұмыс істеу
Жалғыз шешім - COM1A [1: 0] және COM1B [1: 0] басқару биттерінде бірдей басқару параметрін қолдану, мәліметтер парағындағы 14-4 кестені қараңыз. Мәселе Tiny45 айнымалы D үшін шешілді.
Аян
Төмен қуат тұтыну
Үзілістерге бір рет қадам басқанда, DebugWIRE байланысын жоғалтады
PLL құлыпталмайды
Бағдарлама кодынан оқылатын EEPROM Lock Bit Mode 3 режимінде жұмыс істемейді
EEPROM оқуы төмен жабдықтау көлемі кезінде сәтсіз болуы мүмкінtage / төмен тактілік жиілік
Төмен қуат тұтыну
Үш жағдай электр қуатын аз тұтынуға әкеледі. Бұлар:
Сыртқы сағат сақтандырғыштар арқылы таңдалады, бірақ I / O PORT әлі де шығыс ретінде қосулы.
EEPROM қуатты өшірмес бұрын оқылады.
VCC 4.5 вольт немесе одан жоғары.
Жауапкершіліктен бас тарту: Бұл құжаттағы ақпарат Atmel өнімдеріне қатысты берілген. Осы құжатпен немесе Atmel өнімдерін сатуға байланысты қандай да бір зияткерлік меншік құқығына тікелей немесе жанама түрде ешқандай лицензия берілмейді. АТМЕЛДЕ ОРНАЛҒАН САТУ ШАРТТАРЫ МЕН АТМЕЛІНДЕ БЕРІЛГЕНДЕН БАСҚА WEBSITE, ATMEL ЕШҚАНДАЙ ЖАУАПКЕРШІЛІКТІ ҚОЙМАЙДЫ ЖӘНЕ ОНЫҢ ӨНІМДЕРІНЕ ҚАТЫСТЫ КЕЗ КЕЛГЕН АЙҚЫН, ЖАСАУ НЕМЕСЕ ЗАҢДЫ КЕПІЛДІКТЕРДЕН БАС ТАРТПАЙДЫ, БІРАҚ ШЕКТЕУЛЕГЕН КЕПІЛДІКТЕРДІ, ФЕРМАНТТАРДЫҢ, МЕМЛЕКЕТТІК КЕРЕКТЕРДІҢ, САУДА КӘСІПТІКТЕРІНІҢ ЖАНА КЕПІЛДІГІ. АТМЕЛ ЕШҚАНДА ДА КЕЗ КЕЛГЕН ТІКЕЛЕЙ, ЖАНА, НӘТИЖЕЛЕРДІ, ЖАЗАЛАУДЫ, АРНАЙЫ НЕМЕСЕ ЖАҒДАЙ ЗАЛДАР ҮШІН (соның iшiнде, шектеусiз, кәсiпкерлiк мекеменiң шығыны мен пайдасы үшiн, кәсiпкерлiк мекеменiң қызметiнiң зияны үшiн) жауап бермейдi. БҰЛ ҚҰЖАТ, ЕТМЕЛГЕ ОСЫНДАЙ ЗИЯНДАР БОЛУ МҮМКІНДІГІ ТУРАЛЫ ЕСКЕРТПЕН ДА.
Atmel осы құжат мазмұнының дәлдігі мен толықтығына қатысты ешқандай мәлімдеме немесе кепілдік бермейді және кез келген уақытта ескертусіз техникалық сипаттамалар мен өнім сипаттамаларына өзгертулер енгізу құқығын өзіне қалдырады. Atmel осы құжаттағы ақпаратты жаңартуға ешқандай міндеттеме алмайды. Арнайы өзгеше көзделмесе, Atmel өнімдері автомобиль қолданбаларына жарамайды және пайдаланылмауы керек. Atmel өнімдері өмірді қолдауға немесе қолдауға арналған қолданбаларда құрамдас бөліктер ретінде пайдалануға арналмаған, рұқсат етілмеген немесе кепілдік берілмейді.