Kidhibiti Kidogo cha Atmel 8-bit AVR chenye Baiti 2/4/8K Ndani ya Mfumo Mmweko Unaoweza Kupangwa
Vipengele
- Utendaji wa Juu, Kidhibiti Kidogo cha AVR® cha 8-Bit
- Usanifu wa hali ya juu wa RISC
- Maagizo 120 yenye nguvu - Utekelezaji wa Mzunguko wa Saa Moja
- 32 x 8 Madaftari ya Kazi ya Kusudi la Jumla
- Uendeshaji kamili wa tuli
- Programu zisizo za tete na Kumbukumbu za Takwimu
- 2/4 / 8K Baiti za Kiwango cha Kumbukumbu cha Programu ya ndani ya Mfumo
- Uvumilivu: Mizunguko 10,000 ya Kuandika/Futa
- 128/256/512 Baiti Katika Mpangilio wa Mfumo EEPROM
- Uvumilivu: Mizunguko 100,000 ya Kuandika/Futa
- 128/256/512 Baiti ya ndani ya SRAM
- Kufunga programu kwa Programu ya Kiwango cha Kujipanga na Usalama wa Takwimu za EEPROM
Makala ya pembeni
- 8-bit Timer / Counter na Prescaler na Njia mbili za PWM
- 8-bit High Speed Timer / Counter na Prescaler Tenga
- 2 High Frequency PWM Matokeo na Pato Tofauti Linganisha Rejista
- Mpangilio wa Wakati wa Kufa uliopangwa
- USI - Universal Interface Serial na Kichunguzi cha Hali
- 10-bit ADC
Njia 4 Zilizomalizika Moja
Jozi mbili tofauti za Kituo cha ADC na Faida inayoweza kusanidiwa (2x, 1x)
Kipimo cha Joto
Kipindi cha mwangalizi wa programu inayoweza kupangwa na Oscillator tofauti ya On-chip
Kilinganisho cha Analog ya On-chip
Vipengele maalum vya Microcontroller
debugWIRE On-chip Utatuzi wa Mfumo
In-System inayoweza kupangwa kupitia Bandari ya SPI
Vyanzo vya kukatiza vya nje na vya ndani
Ubora wa Nguvu ya Chini, Kupunguza Sauti ya ADC, na Njia za Kupunguza Nguvu
Nguvu iliyoimarishwa ya Upyaji Mzunguko
Mzunguko wa Kugundua Kahawia uliopangwa
Oscillator ya ndani iliyosabishwa
I / O na Vifurushi
Mistari sita ya I / O inayopangwa
8-pin PDIP, 8-pin SOIC, 20-pedi QFN / MLF, na 8-pin TSSOP (tu ATtiny45 / V)
Uendeshaji Voltage
- 1.8 - 5.5V ya ATtiny25V / 45V / 85V
- 2.7 - 5.5V ya ATTiny25 / 45/85
Kasi ya Daraja
- ATTiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
Viwango vya Joto la Viwanda
Matumizi ya Nguvu ya Chini
Njia inayotumika:
MHz 1, 1.8V: 300 µA
Njia ya Kupunguza Nguvu:
Usanidi wa Pini
Pinout ATtiny25 / 45/85
Maelezo ya Pini
VCC: Ugavi juzuutage.
GND: Ardhi.
Mlango B (PB5:PB0): Mlango B ni mlango wa I/O wenye mielekeo 6-bit yenye vipingamizi vya ndani vya kuvuta (kilichochaguliwa kwa kila biti). Vibafa vya pato la Port B vina sifa linganifu za kiendeshi zenye sinki la juu na uwezo wa chanzo. Kama pembejeo, pini za Port B ambazo zimevutwa chini nje zitatoka kwa sasa ikiwa vipinga vya kuvuta juu vimewashwa. Pini za Bandari B hutajwa mara tatu hali ya kuweka upya inapotumika, hata kama saa haifanyi kazi.
Bandari B pia inafanya kazi za huduma anuwai za ATtiny25 / 45/85 kama ilivyoorodheshwa
Kwenye ATtiny25, bandari za I / O zinazopangwa PB3 na PB4 (pini 2 na 3) hubadilishwa katika Njia ya Utangamano ya ATtiny15 kwa kusaidia utangamano wa nyuma na ATtiny15.
WEKA UPYA: Weka upya ingizo. Kiwango cha chini kwenye pini hii kwa muda mrefu zaidi ya urefu wa chini zaidi wa mpigo kitaleta uwekaji upya, hata kama saa haifanyi kazi na mradi tu pini ya kuweka upya haijazimwa. Urefu wa chini wa mapigo hupewa Jedwali 21-4 kwenye ukurasa wa 165. Kunde fupi hazihakikishiwi kutengeneza upya.
Pini ya kuweka upya inaweza pia kutumika kama pini (dhaifu) ya I / O.
Zaidiview
ATtiny25 / 45/85 ni nguvu ndogo ya nguvu ya CMOS 8-bit kulingana na usanifu wa RISC ulioboreshwa wa AVR. Kwa kutekeleza maagizo yenye nguvu katika mzunguko wa saa moja, ATtiny25 / 45/85 inafanikisha pembejeo inayokaribia MIP 1 kwa MHz ikiruhusu mbuni wa mfumo kuboresha matumizi ya nguvu dhidi ya kasi ya usindikaji.
Mchoro wa Zuia
Msingi wa AVR unachanganya maagizo tajiri yaliyowekwa na madaftari 32 ya jumla ya kazi. Rejista zote 32 zimeunganishwa moja kwa moja na Kitengo cha Mantiki cha Hesabu (ALU), ikiruhusu rejista mbili huru kupatikana katika mafundisho moja yaliyotekelezwa kwa mzunguko wa saa moja. Usanifu unaosababishwa ni bora zaidi kwa msimbo wakati unafanikiwa kupitia hadi mara kumi kwa kasi kuliko wadhibiti wa kawaida wa CISC.
ATtiny25 / 45/85 hutoa huduma zifuatazo: 2/4 / 8K ka za In-System inayoweza kupangiliwa Flash, 128/256/512 baiti EEPROM, 128/256/256 byte SRAM, 6 general purpose I / O lines, 32 general madaftari ya kufanya kazi ya kusudi, Timer / Counter moja ya 8-bit na njia za kulinganisha, Timer / Counter moja ya kasi ya 8-bit, Interface Universal Serial, Usumbufu wa ndani na wa nje, kituo cha 4, ADC ya 10-bit, kipima muda kinachotazamwa Oscillator, na programu tatu zinazochagua njia za kuokoa nguvu. Njia ya uvivu inasimamisha CPU wakati inaruhusu SRAM, Timer / Counter, ADC, Analog Comparator, na mfumo wa Kukatiza kuendelea kufanya kazi. Njia ya kupunguza nguvu inaokoa yaliyomo kwenye rejista, ikizima kazi zote za chip hadi Usumbufu unaofuata au Kuweka upya vifaa. Njia ya Kupunguza Kelele ya ADC inasimamisha CPU na moduli zote za I / O isipokuwa ADC, ili kupunguza kelele wakati wa ubadilishaji wa ADC.
Kifaa hicho kimetengenezwa kwa kutumia teknolojia ya kumbukumbu isiyo na msimamo wa Atmel. Kiwango cha On-chip ISP kinaruhusu kumbukumbu ya Programu kupangiliwa tena ndani ya Mfumo kupitia kiolesura cha serial cha SPI, na programu ya kumbukumbu isiyo ya kawaida au kwa nambari ya boot ya On-chip inayofanya kazi kwenye msingi wa AVR.
ATtiny25 / 45/85 AVR inasaidiwa na vifaa kamili vya programu na vifaa vya kukuza mfumo ikiwa ni pamoja na: C Com-pilers, Macro Assemblers, Program Debugger / Simulators na Tathmini ya vifaa.
Kuhusu Rasilimali
Seti kamili ya zana za maendeleo, maelezo ya maombi na hati za data zinapatikana kwa kupakuliwa kwenye http://www.atmel.com/avr.
Nambari Exampchini
Nyaraka hizi zina nambari rahisi ya zamaniamples zinazoonyesha kwa ufupi jinsi ya kutumia sehemu anuwai za kifaa. Nambari hizi za zamaniamples kudhani kwamba sehemu maalum kichwa file imejumuishwa kabla ya mkusanyiko. Kumbuka kuwa sio wauzaji wote wa mkusanyaji wa C wanaojumuisha ufafanuzi kidogo kwenye kichwa files na usumbufu wa utunzaji katika C unategemea mkusanyaji. Tafadhali thibitisha na nyaraka za mkusanyaji wa C kwa maelezo zaidi.
Kwa Rejista za I / O ziko kwenye ramani ya I / O iliyopanuliwa, "IN", "OUT", "SBIS", "SBIC", "CBI", na maagizo ya "SBI" lazima ibadilishwe na maagizo ambayo huruhusu upatikanaji wa kupanuliwa kwa I / O. Kawaida, hii inamaanisha "LDS" na "STS" pamoja na "SBRS", "SBRC", "SBR", na "CBR". Kumbuka kuwa sio vifaa vyote vya AVR vinajumuisha ramani ya I / O iliyopanuliwa.
Uwezo wa Kuhisi Mguso
Maktaba ya Atmel QTouch hutoa suluhisho rahisi kutumia kwa miingiliano nyeti ya kugusa kwenye vidhibiti vidogo vya Atmel AVR. Maktaba ya QTouch inajumuisha usaidizi wa mbinu za kupata za QTouch® na QMatrix®.
Kugusa kugusa kunaongezwa kwa urahisi kwa programu yoyote kwa kuunganisha Maktaba ya QTouch na kutumia Programu ya Maombi- ming Interface (API) ya maktaba kufafanua njia za kugusa na sensorer. Maombi basi huita API kupata habari za kituo na kuamua hali ya sensorer ya kugusa.
Maktaba ya QTouch ni bure na inaweza kupakuliwa kutoka Atmel webtovuti. Kwa habari zaidi na maelezo ya utekelezaji, rejea Mwongozo wa Mtumiaji wa Maktaba ya QTouch - pia inapatikana kutoka Atmel webtovuti.
Uhifadhi wa Data
Matokeo ya sifa ya kuegemea yanaonyesha kuwa kiwango cha kutofaulu kwa utunzaji wa data ni chini ya 1 PPM zaidi ya miaka 20 kwa 85 ° C au miaka 100 kwa 25 ° C.
Msingi wa CPU ya AVR
Utangulizi
Sehemu hii inazungumzia usanifu wa msingi wa AVR kwa ujumla. Kazi kuu ya msingi wa CPU ni kuhakikisha utekelezaji wa programu sahihi. Kwa hivyo CPU lazima iweze kufikia kumbukumbu, kufanya mahesabu, kudhibiti vifaa vya juu, na kushughulikia usumbufu.
Usanifu Juuview
Ili kuongeza utendaji na ulinganifu, AVR hutumia usanifu wa Harvard - na kumbukumbu tofauti na mabasi kwa mpango na data. Maagizo kwenye kumbukumbu ya Programu hutekelezwa na bomba moja ya kiwango. Wakati mafundisho moja yanatekelezwa, maagizo yanayofuata huchukuliwa mapema kutoka kwa kumbukumbu ya Programu. Dhana hii inawezesha maagizo kutekelezwa katika kila mzunguko wa saa. Kumbukumbu ya Programu ni kumbukumbu ya ndani ya Mfumo inayoweza kupangwa tena.
Rejista ya upatikanaji wa haraka File ina rejista za kazi za madhumuni ya jumla ya 32 x 8-bit na muda wa ufikiaji wa mzunguko wa saa moja. Hii inaruhusu uendeshaji wa Kitengo cha Mantiki ya Hesabu (ALU) ya mzunguko mmoja. Katika operesheni ya kawaida ya ALU, operesheni mbili hutolewa kutoka kwa Daftari File, operesheni hiyo inatekelezwa, na matokeo huhifadhiwa tena kwenye Rejista File- katika mzunguko wa saa moja.
Saraka sita kati ya 32 zinaweza kutumiwa kama viashiria vitatu vya rejista ya anwani isiyo ya moja kwa moja ya 16-bit kwa kushughulikia Data Space - kuwezesha mahesabu ya anwani yenye ufanisi. Moja ya viashiria hivi vya anwani pia inaweza kutumika kama kiboreshaji cha anwani kwa kutazama meza kwenye kumbukumbu ya Programu ya Flash. Hizi rejista za kazi zilizoongezwa ni 16-bit X-, Y-, na Z-rejista, zilizoelezewa baadaye katika sehemu hii.
ALU inasaidia shughuli za hesabu na mantiki kati ya sajili au kati ya sajili na rejista. Shughuli za kujiandikisha moja pia zinaweza kutekelezwa katika ALU. Baada ya operesheni ya hesabu, Sajili ya Hali inasasishwa ili kuonyesha habari juu ya matokeo ya operesheni hiyo.
Mtiririko wa programu hutolewa na kuruka kwa masharti na bila masharti na maagizo ya simu, inayoweza kushughulikia moja kwa moja nafasi nzima ya anwani. Maagizo mengi ya AVR yana muundo mmoja wa neno 16-bit, lakini pia kuna maagizo 32-bit.
Wakati wa kukatiza na kupiga simu chini, Anwani ya kurudi ya Programu ya Kukabiliana (PC) imehifadhiwa kwenye Stack. Stack imetengwa kwa ufanisi katika data ya jumla ya SRAM, na kwa hivyo saizi ya Stack imepunguzwa tu na jumla ya ukubwa wa SRAM na matumizi ya SRAM. Programu zote za watumiaji lazima zianze SP katika utaratibu wa Upya (kabla ya njia ndogo au usumbufu kutekelezwa). Kiashiria cha Stack (SP) kinasomwa / kuandika kupatikana katika nafasi ya I / O. Takwimu SRAM inaweza kupatikana kwa urahisi kupitia njia tano tofauti za kushughulikia zinazoungwa mkono katika usanifu wa AVR.
Nafasi za kumbukumbu katika usanifu wa AVR zote ni ramani za kumbukumbu na za kawaida.
Moduli ya usumbufu inayoweza kubadilika ina rejista zake za kudhibiti katika nafasi ya I / O na Uingiliaji wa ziada wa Global Wezesha kidogo katika Sajili ya Hali. Usumbufu wote una Vector tofauti ya Kukatiza kwenye jedwali la Vector la Kukatiza. Usumbufu una kipaumbele kwa mujibu wa nafasi yao ya Verritor ya Vector. Chini anwani ya Vector ya Kukatiza, kipaumbele kinaongezeka.
Nafasi ya kumbukumbu ya I / O ina anwani 64 za kazi za pembeni za CPU kama Rejista za Kudhibiti, SPI, na kazi zingine za I / O. Kumbukumbu ya I / O inaweza kupatikana moja kwa moja, au kama maeneo ya Nafasi ya Data kufuatia yale ya Msajili File, 0x20 - 0x5F.
ALU - Kitengo cha Mantiki ya Hesabu
Utendaji wa juu wa AVR ALU hufanya kazi kwa uhusiano wa moja kwa moja na rejista zote 32 za jumla za kazi. Katika mzunguko wa saa moja, shughuli za hesabu kati ya sajili za jumla au kati ya rejista na mara moja hufanywa. Shughuli za ALU zimegawanywa katika kategoria kuu tatu - hesabu, mantiki, na kazi ndogo. Utekelezaji mwingine wa usanifu pia hutoa kiongezaji chenye nguvu kinachounga mkono kuzidisha saini / kutosainiwa na muundo wa sehemu. Tazama sehemu ya "Mafunzo ya Maagizo" kwa maelezo ya kina.
Sajili ya Hali
Sajili ya Hali ina habari juu ya matokeo ya maagizo ya hesabu yaliyotekelezwa hivi karibuni. Habari hii inaweza kutumika kwa kubadilisha mtiririko wa programu ili kufanya shughuli za masharti. Kumbuka kuwa Sajili ya Hali inasasishwa baada ya shughuli zote za ALU, kama ilivyoainishwa katika Rejeleo la Kuweka Maagizo. Hii mara nyingi itaondoa hitaji la kutumia maagizo ya kulinganisha ya kujitolea, na kusababisha nambari ya haraka na thabiti zaidi.
Rejista ya Hali haihifadhiwa kiotomatiki wakati wa kuingia kawaida ya usumbufu na kurejeshwa wakati wa kurudi kutoka kwa usumbufu. Hii lazima ishughulikiwe na programu.
SREG - Usajili wa Hali ya AVR
Rejista ya Hali ya AVR - SREG - inafafanuliwa kama:
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Kidogo cha 7 - I: Usumbufu wa Ulimwenguni Wezesha
Kitufe cha Wezesha Usumbufu Ulimwenguni lazima kiwekwe kwa usumbufu kuwezeshwa. Usumbufu wa mtu binafsi huwezesha kudhibiti kisha hufanywa katika rejista tofauti za udhibiti. Ikiwa Daftari la Wezesha Usumbufu Ulimwenguni litafutwa, hakuna usumbufu wowote unaowezeshwa bila kutegemea mipangilio ya kuwezesha ya mtu binafsi. I-bit husafishwa na vifaa baada ya kutokea kwa usumbufu, na imewekwa na maagizo ya RETI kuwezesha usumbufu unaofuata. I-bit pia inaweza kuwekwa na kusafishwa na programu na maagizo ya SEI na CLI, kama ilivyoelezewa katika rejeleo lililowekwa la maagizo.
Kidogo 6 - T: Hifadhi ya Nakala ya Bit
Maagizo ya Nakala ya Biti BLD (Bit LoaD) na BST (Bit Store) hutumia T-bit kama chanzo au marudio kwa kitendakazi. Kidogo kutoka kwa rejista katika Rejista File inaweza kunakiliwa kwa T na maagizo ya BST, na kidogo katika T inaweza kunakiliwa kidogo kwenye rejista katika Rejista File na maagizo ya BLD.
Kidogo 5 - H: Nusu Kubeba Bendera
Nusu ya kubeba Bendera H inaonyesha Nusu ya Kubeba katika shughuli zingine za hesabu. Nusu ya Kubeba ni muhimu katika hesabu ya BCD. Tazama "Maelezo ya Maagizo ya Maagizo" kwa habari ya kina.
Bit 4 – S: Sign Bit, S = N ⊕ V
S-bit daima ni ya kipekee au kati ya Bendera Hasi N na Bendera ya Wawili inayosaidia kufurika V. Tazama "Maelezo ya Maagizo" kwa habari ya kina.
Kidogo 3 - V: Sauti ya Kufurika ya Wawili
Bendera ya Kufurika ya Wawili V inaunga mkono hesabu inayosaidia mbili. Tazama "Maelezo ya Maagizo ya Maagizo" kwa habari ya kina.
Kidogo 2 - N: Bendera Hasi
Bendera hasi N inaonyesha matokeo mabaya katika operesheni ya hesabu au mantiki. Tazama "Maelezo ya Maagizo ya Maagizo" kwa habari ya kina.
Kidogo 1 - Z: Zero Bendera
Bendera ya Zero Z inaonyesha matokeo ya sifuri katika operesheni ya hesabu au mantiki. Tazama "Maelezo ya Maagizo ya Maagizo" kwa habari ya kina.
Kidogo 0 - C: Beba Bendera
Bendera ya Kubeba C inaonyesha kubeba katika operesheni ya hesabu au mantiki. Tazama "Maelezo ya Maagizo ya Maagizo" kwa habari ya kina.
Daftari la Kusudi la Jumla File
Daftari File imeboreshwa kwa seti ya maagizo ya RISC iliyoimarishwa ya AVR. Ili kufanikisha utaftaji unaohitajika na kubadilika, mipango ifuatayo ya pembejeo / pato inasaidiwa na Rejista File:
Operesheni moja ya pato 8-bit na pembejeo moja ya matokeo ya 8-bit
Operesheni mbili za pato la 8-bit na pembejeo moja ya matokeo ya 8-bit
Operesheni mbili za pato la 8-bit na pembejeo moja ya matokeo ya 16-bit
Operesheni moja ya pato 16-bit na pembejeo moja ya matokeo ya 16-bit
Kielelezo 4-2 inaonyesha muundo wa madaftari 32 ya jumla ya kazi katika CPU.
Kama inavyoonyeshwa katika Kielelezo 4-2, kila rejista imepewa anwani ya kumbukumbu ya Takwimu, ikiweka ramani moja kwa moja katika maeneo 32 ya kwanza ya Nafasi ya Takwimu ya mtumiaji. Ingawa haitekelezwi kama maeneo ya SRAM, shirika hili la kumbukumbu hutoa kubadilika sana kwa upatikanaji wa rejista, kwani rejista za X-, Y- na Z-pointer zinaweza kuweka orodha yoyote ya sajili katika file.Maelekezo mengi yanayofanya kazi kwenye Daftari File kuwa na ufikiaji wa moja kwa moja kwa rejista zote, na nyingi ni maagizo ya mzunguko wa singeli.
Rejista ya X, Y-rejista, na Z-rejista
Rejista R26..R31 zina kazi zingine zilizoongezwa kwa matumizi yao ya jumla. Rejista hizi ni viashiria vya anwani 16-bit kwa kushughulikia moja kwa moja nafasi ya data. Anwani tatu za moja kwa moja husajili X, Y, na Z hufafanuliwa kama ilivyoelezewa katika Kielelezo 4-3.
Katika njia tofauti za kuhutubia, rejista hizi za anwani zina kazi kama uhamishaji uliowekwa, nyongeza ya kiatomati, na upunguzaji wa kiatomati (angalia rejea iliyowekwa ya maelezo kwa maelezo).
Kiashiria cha Stack
Stack hutumika sana kuhifadhi data za muda mfupi, kuhifadhi vigeu vya ndani na kuhifadhi anwani za kurudi baada ya kukatizwa na kupiga simu kwa njia ndogo. Daftari la Kiashiria cha Stack daima huelekeza juu ya Stack. Kumbuka kuwa Stack inatekelezwa kama inakua kutoka kwa kumbukumbu za juu hadi sehemu za kumbukumbu. Hii inamaanisha kuwa Amri ya Stack PUSH inapunguza Kiashiria cha Stack.
Kiashiria cha Stack huelekeza eneo la data la SRAM Stack ambapo Subroutine na Sterrupt Stacks ziko. Nafasi hii ya Stack katika data ya SRAM lazima ifafanuliwe na programu kabla ya simu yoyote ya subroutine itekelezwe au kupasuka kuwezeshwa. Kiashiria cha Stack lazima kiwekewe alama juu ya 0x60. Kiashiria cha Stack kinapunguzwa na moja wakati data inasukumwa kwenye Stack na maagizo ya PUSH, na hupunguzwa na mbili wakati anwani ya kurudi inasukumwa kwenye Stack na simu ya chini au kukatiza. Kiashiria cha Stack kinaongezwa na moja wakati data imeangaziwa kutoka kwa Stack na maagizo ya POP, na inaongezewa na mbili wakati data imetolewa kutoka kwa Stack na kurudi kutoka kwa subroutine RET au kurudi kutoka kukatiza RETI.
Kiashiria cha Rafu ya AVR kinatekelezwa kama rejista mbili za 8-bit katika nafasi ya I / O. Idadi ya bits zinazotumiwa ni tegemezi ya utekelezaji. Kumbuka kuwa nafasi ya data katika utekelezaji wa usanifu wa AVR ni ndogo sana kwamba ni SPL tu inahitajika. Katika kesi hii, Sajili ya SPH haitakuwapo.
SPH na SPL - Daftari la Stack Pointer
Kidogo | 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 | ||
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Thamani ya Awali | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Muda wa Utekelezaji wa Maagizo
Sehemu hii inaelezea dhana za jumla za muda wa ufikiaji kwa utekelezaji wa maagizo. CPU ya AVR inaendeshwa na saa ya CPU clkCPU, inayotolewa moja kwa moja kutoka kwa chanzo cha saa kilichochaguliwa kwa ajili ya chip. Hakuna mgawanyiko wa saa wa ndani unaotumika.
Kielelezo 4-4 inaonyesha matabaka yanayofanana na maagizo na utekelezaji wa maagizo uliowezeshwa na usanifu wa Harvard na Rejista ya ufikiaji wa haraka File dhana. Hii ndio dhana ya msingi ya bomba kupata hadi 1 MIPS kwa MHz na matokeo ya kipekee yanayolingana ya kazi kwa gharama, kazi kwa saa, na kazi kwa kila kitengo cha nguvu.
Kielelezo 4-5. Operesheni ya ALU ya Mzunguko Mmoja
Weka upya na Usumbufu Ushughulikiaji
AVR hutoa vyanzo kadhaa vya usumbufu. Vikwazo hivi na Vector tofauti ya Rudisha kila moja ina Vector ya Programu tofauti katika nafasi ya kumbukumbu ya Programu. Usumbufu wote unapewa kuwezesha biti ambazo zinapaswa kuandikwa mantiki moja pamoja na Usumbufu wa Ulimwenguni Wezesha kidogo katika Sajili ya Hali ili kuwezesha usumbufu.
Anwani za chini kabisa katika nafasi ya kumbukumbu ya Programu hufafanuliwa kama chaguo-msingi kama Rudisha na Kukatiza Vectors. Orodha kamili ya vectors imeonyeshwa katika "Usumbufu" kwenye ukurasa wa 48. Orodha pia huamua viwango vya kipaumbele vya usumbufu tofauti. Anwani ya chini zaidi ni kiwango cha kipaumbele. Rudisha ina kipaumbele cha juu zaidi, na inayofuata ni INT0 - Ombi la Kukatizwa kwa nje 0.
Usumbufu unapotokea, Usumbufu wa Ulimwenguni Wezesha I-bit unafutwa na usumbufu wote umezimwa. Mtumiaji wa laini anaweza kuandika mantiki moja kwa I-bit kuwezesha usumbufu wa kiota. Usumbufu wote uliowezeshwa unaweza kukatisha utaratibu wa sasa wa kukatiza. I-bit imewekwa kiatomati wakati Kurudi kutoka kwa maagizo ya Kukatiza - RETI - kutekelezwa.
Kimsingi kuna aina mbili za usumbufu. Aina ya kwanza inasababishwa na tukio ambalo linaweka Bendera ya Kukatiza. Kwa usumbufu huu, Kaunta ya Programu imeonyeshwa kwa Vector halisi ya Usumbufu ili kutekeleza utaratibu wa kushughulikia usumbufu, na vifaa husafisha Bendera inayofanana ya Kukatiza. Bendera za kukatiza pia zinaweza kusafishwa kwa kuandika moja ya mantiki kwa nafasi za bendera zitakazosafishwa. Ikiwa hali ya usumbufu itatokea wakati kitufe kinacholingana cha kuwezesha kinasafishwa, Bendera ya Kukatiza itawekwa na kukumbukwa hadi usumbufu utakapowezeshwa, au bendera itafutwa na programu. Vivyo hivyo, ikiwa hali moja au zaidi ya usumbufu itatokea wakati kitufe cha Wezesha Usumbufu Ulimwenguni kikiwa kimefutwa, Bendera (s) zinazofanana zitasanidiwa na kukumbukwa mpaka kitengo cha Wezesha Usumbufu Ulimwenguni kimewekwa, na kisha itatekelezwa kwa amri ya kipaumbele.
Aina ya pili ya usumbufu itasababisha mradi hali ya usumbufu iko. Usumbufu huu sio lazima uwe na Bendera za Kukatiza. Ikiwa hali ya usumbufu itatoweka kabla ya usumbufu kuwezeshwa, usumbufu hautasababishwa.
Wakati AVR inatoka kwa usumbufu, itarudi kwenye programu kuu kila wakati na kutekeleza maagizo mengine zaidi kabla ya usumbufu wowote unaosubiri kutumiwa.
Kumbuka kuwa Sajili ya Hali haihifadhiwa kiotomatiki wakati wa kuingia kwa utaratibu wa usumbufu, wala kurejeshwa wakati wa kurudi kutoka kwa utaratibu wa usumbufu. Hii lazima ishughulikiwe na programu.
Unapotumia maagizo ya CLI kuzuia usumbufu, vipingamizi vitalemazwa mara moja. Hakuna usumbufu utakaotekelezwa baada ya maagizo ya CLI, hata ikiwa inatokea wakati huo huo na maagizo ya CLI. Mfuatayoample inaonyesha jinsi hii inaweza kutumika kuzuia usumbufu wakati wa mpangilio wa uandishi wa EEPROM.
Kanuni ya Mkutano Example |
katika r16, SREG; kuhifadhi thamani ya SREG
cli ; zima kukatizwa wakati wa mlolongo ulioratibiwa sbi EECR, EEMPE; anza kuandika EEPROM sbi EECR, EEPE nje ya SREG, r16; rejesha thamani ya SREG (I-bit) |
C Kanuni Example |
char cSREG;
cSREG = SREG; /* Hifadhi thamani ya SREG */ /* zima kukatiza wakati wa mlolongo ulioratibiwa */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* kurejesha thamani ya SREG (I-bit) */ |
Unapotumia maagizo ya SEI kuwezesha kukatizwa, maagizo yafuatayo ya SEI yatatekelezwa kabla ya kukatizwa kwa wakati wowote, kama inavyoonyeshwa katika ex huyuample.
Kanuni ya Mkutano Example |
sei; weka Washa Ukatizaji Ulimwenguni
kulala; kuingia katika usingizi, kusubiri kwa usumbufu ; kumbuka: itaingia kulala kabla ya kusubiri ; kukatiza |
C Kanuni Example |
_SEI(); /* weka Ukatizaji Ulimwenguni Wezesha */
_LALA(); /* ingiza usingizi, ukisubiri usumbufu */ / * kumbuka: itaingia kulala kabla ya usumbufu wowote unaosubiri * / |
Usumbufu Muda wa Majibu
Jibu la utekelezaji wa usumbufu kwa usumbufu wote wa kuwezeshwa wa AVR ni kiwango cha chini cha mzunguko wa saa nne. Baada ya mizunguko minne ya saa Anuani ya Vector ya Programu kwa utaratibu halisi wa utunzaji wa usumbufu unatekelezwa. Katika kipindi hiki cha mzunguko wa saa nne, Counter ya Programu inasukumwa kwenye Stack. Vector kawaida ni kuruka kwa utaratibu wa kukatiza, na kuruka huku kunachukua mizunguko ya saa tatu. Ikiwa usumbufu unatokea wakati wa utekelezaji wa maagizo ya mizunguko mingi, maagizo haya yamekamilika kabla ya usumbufu kutumiwa. Usumbufu ukitokea wakati MCU iko kwenye hali ya kulala, wakati wa kujibu usumbufu wa utekelezaji unaongezwa na mizunguko minne ya saa. Ongezeko hili linakuja kwa kuongeza wakati wa kuanza kutoka kwa hali ya kulala iliyochaguliwa.
Kurudi kutoka kwa utaratibu wa kushughulikia usumbufu huchukua mizunguko minne ya saa. Wakati wa mizunguko hii ya saa nne, Counter ya Programu (ka mbili) imeibuka kutoka Stack, Kiashiria cha Stack kinaongezwa na mbili, na I-bit katika SREG imewekwa.
Kumbukumbu za AVR
Sehemu hii inaelezea kumbukumbu tofauti kwenye ATtiny25 / 45/85. Usanifu wa AVR una nafasi mbili kuu za kumbukumbu, kumbukumbu ya Takwimu na nafasi ya kumbukumbu ya Programu. Kwa kuongeza, ATtiny25 / 45/85 ina kumbukumbu ya EEPROM ya kuhifadhi data. Nafasi zote tatu za kumbukumbu ni sawa na ya kawaida.
Kumbukumbu ya Programu ya Kiwango cha ndani ya Mfumo
ATtiny25 / 45/85 ina 2/4 / 8K baiti On-chip In-System Reprogrammable Flash memory for program stor- age. Kwa kuwa maagizo yote ya AVR yana urefu wa bits 16 au 32, Flash imepangwa kama 1024/2048/4096 x 16.
Kumbukumbu ya Flash ina uvumilivu wa angalau mizunguko 10,000 ya kuandika / kufuta. Kadi ya Programu ya ATtiny25 / 45/85 (10) ina urefu wa 11/12/1024, na hivyo kushughulikia maeneo ya kumbukumbu ya Programu ya 2048/4096/XNUMX. Programu ya Kumbukumbu- ming ”kwenye ukurasa wa 147 ina maelezo ya kina juu ya upakuaji wa serial data ya Flash kwa kutumia pini za SPI.
Jedwali la kawaida linaweza kugawanywa ndani ya nafasi nzima ya anwani ya kumbukumbu ya Programu (angalia maelezo ya maagizo ya kumbukumbu ya LPM - Load Program).
Kielelezo 5-1. Ramani ya Kumbukumbu ya Programu
Kumbukumbu ya Takwimu ya SRAM
Kielelezo 5-2 inaonyesha jinsi Kumbukumbu ya SRAM ya ATtiny25 / 45/85 imepangwa.
Sehemu za chini za kumbukumbu za Takwimu 224/352/607 hushughulikia Sajili zote mbili File, kumbukumbu ya I / O na data ya ndani SRAM. Maeneo 32 ya kwanza yanashughulikia Sajili File, maeneo 64 yafuatayo kumbukumbu ya kawaida ya I / O, na maeneo ya mwisho ya 128/256/512 yanashughulikia data ya ndani ya SRAM.
Njia tano tofauti za kushughulikia kifuniko cha kumbukumbu ya Takwimu: Moja kwa moja, Moja kwa moja na Uhamishaji, Moja kwa moja, Indi-rect na Pre-kupungua, na isiyo ya moja kwa moja na nyongeza ya Post. Katika Daftari File, husajili R26 hadi R31 ikiwa na rejista za kielekezi za kushughulikia zisizo za moja kwa moja.
Kuhutubia moja kwa moja hufikia nafasi nzima ya data.
Njia isiyo ya moja kwa moja na Uhamishaji hufikia maeneo ya anwani 63 kutoka kwa anwani ya msingi iliyotolewa na rejista ya Y- au Z.
Unapotumia njia za kuandikisha zisizo za moja kwa moja na upunguzaji wa moja kwa moja na nyongeza ya baada ya hapo, anwani husajili X, Y, na Z hupunguzwa au kuongezeka.
Madaftari 32 ya jumla ya kazi, Sajili 64 za I / O, na kaunti za 128/256/512 za data ya ndani SRAM katika ATtiny25 / 45/85 zote zinaweza kupatikana kupitia njia hizi zote za kushughulikia. Daftari File imeelezewa katika "Mwa- Daftari la Kusudi la eral File”Kwenye ukurasa wa 10.
Kielelezo 5-2. Ramani ya Kumbukumbu ya Data
Ufikiaji wa Kumbukumbu ya Data Nyakati
Sehemu hii inaelezea dhana za jumla za muda wa ufikiaji kwa ufikiaji wa kumbukumbu ya ndani. Ufikiaji wa data wa ndani wa SRAM unafanywa katika mizunguko miwili ya clkCPU kama ilivyofafanuliwa katika Kielelezo 5-3.
Kielelezo 5-3. Mizunguko ya Ufikiaji wa Data ya SRAM kwenye Chip Kumbukumbu ya Takwimu ya EEPROM
ATtiny25 / 45/85 ina baiti 128/256/512 za data ya kumbukumbu ya EEPROM. Imepangwa kama nafasi tofauti ya data, ambayo ka moja zinaweza kusoma na kuandikwa. EEPROM ina uvumilivu wa angalau mizunguko 100,000 ya kuandika / kufuta. Ufikiaji kati ya EEPROM na CPU umeelezewa katika yafuatayo, ikitaja Sajili za Anwani za EEPROM, Rejista ya Takwimu ya EEPROM, na Rejista ya Udhibiti ya EEPROM. Kwa maelezo tazama "Upakuaji wa serial" kwenye ukurasa wa 151.
Usomaji wa EEPROM Soma / Andika
Rejista za Ufikiaji wa EEPROM zinapatikana katika nafasi ya I / O.
Nyakati za ufikiaji wa kuandika kwa EEPROM zimetolewa katika Jedwali 5-1 kwenye ukurasa wa 21. Kitendaji cha kujiwekea wakati, hata hivyo, huruhusu programu ya mtumiaji kutambua wakati byte inayofuata inaweza kuandikwa. Ikiwa msimbo wa mtumiaji una maagizo yanayoandika EEPROM, tahadhari fulani lazima zichukuliwe. Katika vifaa vya umeme vilivyochujwa sana, VCC ina uwezekano wa kupanda au kushuka polepole
Nguvu-juu / chini. Hii inasababisha kifaa kwa muda fulani kukimbia kwa voltagni chini kuliko ilivyobainishwa kama kiwango cha chini zaidi cha masafa ya saa inayotumika. Tazama "Kuzuia Rushwa ya EEPROM" kwenye ukurasa wa 19 kwa maelezo juu ya jinsi ya kuepuka shida katika hali hizi.
Ili kuzuia EEPROM isiyo ya kukusudia inaandika, utaratibu maalum wa kuandika lazima ufuatwe. Rejea “Atomiki Byte Programming ”kwenye ukurasa wa 17 na "Split Byte Programming" kwenye ukurasa wa 17 kwa maelezo juu ya hili.
Wakati EEPROM inasomwa, CPU imesimamishwa kwa mizunguko ya saa nne kabla ya maagizo yafuatayo kutekelezwa. Wakati EEPROM imeandikwa, CPU imesimamishwa kwa mizunguko miwili ya saa kabla ya maagizo yafuatayo kutekelezwa.
Programu ya Byte ya Atomiki
Kutumia Programu ya Atomic Byte ni njia rahisi zaidi. Wakati wa kuandika barua kwa EEPROM, mtumiaji lazima aandike anwani kwenye Rejista ya EEAR na data kwenye Rejista ya EEDR. Ikiwa bits za EEPMn ni sifuri, kuandika EEPE (ndani ya mizunguko minne baada ya EEMPE kuandikwa) itasababisha ufanyaji wa kufuta / kuandika. Mzunguko wa kufuta na kuandika unafanywa katika operesheni moja na wakati wote wa programu umepewa ndani Jedwali 5-1 kwenye ukurasa wa 21. Kidogo cha EEPE kinabaki kuweka hadi shughuli za kufuta na kuandika zikamilike. Wakati kifaa kiko busy na programu, haiwezekani kufanya shughuli zingine za EEPROM.
Kugawanya Programu ya Byte
Inawezekana kugawanya kufuta na kuandika mzunguko katika shughuli mbili tofauti. Hii inaweza kuwa na manufaa ikiwa mfumo unahitaji muda mfupi wa ufikiaji kwa kipindi fulani cha wakati (kawaida ikiwa voltage huanguka). Ili kuchukua faida- tage ya njia hii, inahitajika kwamba maeneo ambayo yataandikwa yatafutwa kabla ya operesheni ya uandishi. Lakini kwa kuwa shughuli za kufuta na kuandika zimegawanyika, inawezekana kufanya shughuli za kufuta wakati mfumo unaruhusu kufanya shughuli muhimu za wakati (kawaida baada ya Nguvu-nguvu).
Futa
Ili kufuta Byte, anwani lazima iandikwe kwa EEAR. Ikiwa bits za EEPMn ni 0b01, kuandika EEPE (ndani ya mizunguko minne baada ya EEMPE kuandikwa) itasababisha operesheni ya kufuta tu (wakati wa programu umepewa Jedwali 5-1 kuendelea ukurasa wa 21). Kidogo cha EEPE kinabaki kuweka hadi operesheni ya kufuta ikamilike. Wakati kifaa kiko busy na programu, haiwezekani kufanya shughuli zingine za EEPROM.
Andika
Kuandika mahali, mtumiaji lazima aandike anwani kwenye EEAR na data kwenye EEDR. Ikiwa bits za EEPMn ni 0b10, kuandika EEPE (ndani ya mizunguko minne baada ya EEMPE kuandikwa) itasababisha operesheni ya uandishi tu (muda wa programu umepewa katika Jedwali 5-1 kwenye ukurasa wa 21). Kidogo cha EEPE kinabaki kuweka hadi shughuli ya uandishi ikamilike. Ikiwa eneo la kuandikwa halijafutwa kabla ya kuandika, data iliyohifadhiwa lazima izingatiwe kuwa imepotea. Wakati kifaa kiko busy na programu, haiwezekani kufanya shughuli zingine za EEPROM.
Oscillator iliyosawazishwa hutumiwa kwa muda ambao EEPROM inafikia. Hakikisha mzunguko wa Oscillator uko ndani ya mahitaji yaliyoelezewa katika "OSCCAL - Daftari la Upimaji wa Oscillator" kwenye ukurasa wa 31.
Nambari ifuatayo examples kuonyesha mkutano mmoja na kazi moja ya C kwa kufuta, kuandika, au kuandika kwa atomiki ya EEPROM. Mzeeamples kudhani kuwa usumbufu unadhibitiwa (kwa mfano, kwa kuzuia usumbufu ulimwenguni) ili usumbufu wowote usitokee wakati wa utekelezaji wa kazi hizi.
Kanuni ya Mkutano Example |
Andika EEPROM:
; Subiri kukamilika kwa maandishi ya awali sbic EECR, EEPE rjmp EEPROM_andika ; Weka hali ya Programu ldi r16, (0<<EEPM1)|(0<<EEPM0) nje EECR, r16 ; Weka anwani (r18: r17) katika rejista ya anwani nje EEARH, r18 nje EEARL, r17 ; Andika data (r19) kwa sajili ya data nje EDR, r19 ; Andika mantiki moja kwa EEMPE sbi EECR,EEMPE ; Anza eeprom kuandika kwa kuweka EEPE sbi EECR,EEPE ret |
C Kanuni Example |
EEPROM_write batili (char ucAddress ambayo haijasainiwa, char ucData ambayo haijasainiwa)
{ /* Subiri kukamilika kwa maandishi yaliyotangulia */ while(EECR & (1< ; /* Weka hali ya Kupanga */ EECR = (0 < / * Sanidi anwani na daftari za data * / EEAR = uc anwani. EEDR = ucData; /* Andika moja ya kimantiki kwa EEMPE */ EECR | = (1 < / * Anza eeprom kuandika kwa kuweka EEPE * / EECR | = (1 < } |
Nambari inayofuata examples show mkutano na C kazi kwa kusoma EEPROM. Mzeeamples kudhani kuwa usumbufu unadhibitiwa ili hakuna usumbufu utakaotokea wakati wa utekelezaji wa kazi hizi.
Kanuni ya Mkutano Example |
Soma_EEPROM:
; Subiri kukamilika kwa maandishi ya awali sbic EECR, EEPE rjmp EEPROM_soma ; Weka anwani (r18: r17) katika rejista ya anwani nje EEARH, r18 nje EEARL, r17 ; Anza kusoma kwa kuandika kwa HAPA sbi EECR,EERE ; Soma data kutoka kwa rejista ya data katika r16,EEDR ret |
C Kanuni Example |
herufi ambayo haijatiwa sahihi EEPROM_read(char ucAddress ambayo haijatiwa sahihi)
{ / * Subiri kukamilika kwa maandishi ya awali * / wakati (EECR & (1 < ; / * Weka rejista ya anwani * / EEAR = ucAdress; /* Anza eeprom kusoma kwa kuandika EERE */ EECR | = (1 < / * Rudisha data kutoka kwa rejista ya data * / kurudi EEDR; } |
Kuzuia Ufisadi wa EEPROM
Katika vipindi vya VCC ya chini, data ya EEPROM inaweza kuharibika kwa sababu ujazo wa usambazajitage iko chini sana kwa CPU na EEPROM kufanya kazi vizuri. Maswala haya ni sawa na mifumo ya kiwango cha bodi inayotumia EEPROM, na suluhisho sawa za muundo zinapaswa kutumiwa.
Rushwa ya data ya EEPROM inaweza kusababishwa na hali mbili wakati voltage iko chini sana. Kwanza, mlolongo wa kawaida wa kuandika kwa EEPROM unahitaji kiwango cha chini cha voltage kufanya kazi kwa usahihi. Pili, CPU yenyewe inaweza kutekeleza maagizo vibaya, ikiwa usambazaji voltage iko chini sana.
Rushwa ya data ya EEPROM inaweza kuepukwa kwa urahisi kwa kufuata pendekezo hili la muundo:
Weka AVR RESET iweze (chini) wakati wa vipindi vya kutosha vya umeme voltage. Hii inaweza kufanywa kwa kuwezesha Detector ya nje ya Kahawia (BOD). Ikiwa kiwango cha kugundua cha BOD ya ndani hailingani na
kiwango cha ugunduzi kinachohitajika, saketi ya nje ya ulinzi ya kuweka upya VCC inaweza kutumika. Iwapo uwekaji upya utafanyika wakati utendakazi wa uandishi unaendelea, utendakazi wa uandishi utakamilika mradi tu ugavi wa umeme ujazotage inatosha.
Kumbukumbu ya I / O
Ufafanuzi wa nafasi ya I / O ya ATtiny25 / 45/85 umeonyeshwa katika "Sajili Muhtasari" kwenye ukurasa wa 200.
Vitu vyote vya ATtiny25 / 45/85 I / Os na vifaa vinawekwa kwenye nafasi ya I / O. Maeneo yote ya I / O yanaweza kupatikana kwa LD / LDS / LDD na maagizo ya ST / STS / STD, kuhamisha data kati ya rejista 32 za kusudi la jumla na nafasi ya I / O. Sajili za I / O ndani ya anuwai ya anwani 0x00 - 0x1F zinapatikana moja kwa moja kwa kutumia maagizo ya SBI na CBI. Katika rejista hizi, thamani ya bits moja inaweza kuchunguzwa kwa kutumia maagizo ya SBIS na SBIC. Rejea sehemu iliyowekwa ya maagizo kwa maelezo zaidi. Wakati wa kutumia amri maalum za I / O NDANI na OUT, anwani za I / O 0x00 - 0x3F lazima zitumike. Wakati wa kushughulikia Sajili za I / O kama nafasi ya data kwa kutumia maagizo ya LD na ST, 0x20 lazima iongezwe kwenye anwani hizi.
Kwa utangamano na vifaa vya baadaye, bits zilizohifadhiwa zinapaswa kuandikwa hadi sifuri ikiwa zinapatikana. Anwani za kumbukumbu za I / O zilizohifadhiwa hazipaswi kuandikwa kamwe.
Baadhi ya Bendera za Hali husafishwa kwa kuwaandikia moja ya kimantiki. Kumbuka kuwa maagizo ya IWC na SBI yatatekelezwa kwa kiwango kidogo tu, na kwa hivyo inaweza kutumika kwenye rejista zilizo na Bendera kama hizo. Maagizo ya CBI na SBI hufanya kazi na rejista 0x00 hadi 0x1F tu.
Rejista za Udhibiti wa I / O na Pembeni zinaelezewa katika sehemu za baadaye.
Sajili Maelezo
EEARH - Usajili wa Anwani ya EEPROM
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | SIKU8 | EEARH |
Soma/Andika | R | R | R | R | R | R | R | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Biti 7: 1 - Res: Vipindi vilivyohifadhiwa
Biti hizi zimehifadhiwa kwa matumizi ya baadaye na zitasoma kila wakati kama sifuri.
Biti 0 - EEAR8: Anwani ya EEPROM
Hii ndio anwani muhimu zaidi ya EEPROM ya ATtiny85. Katika vifaa vilivyo na EEPROM kidogo, yaani ATtiny25 / ATtiny45, kidogo hii imehifadhiwa na itasoma sifuri kila wakati. Thamani ya awali ya Usajili wa Anwani ya EEPROM (EEAR) haijafafanuliwa na kwa hivyo thamani sahihi lazima iandikwe kabla ya EEPROM kupatikana.
EEARL - Sajili ya Anwani ya EEPROM
Kidogo
0x1E | SIKU7 | SIKU6 | SIKU5 | SIKU4 | SIKU3 | SIKU2 | SIKU1 | SIKU0 | SIKU |
Nyuma / Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | X | X | X | X | X | X | X | X |
Kidogo cha 7 - EEAR7: Anwani ya EEPROM
Hii ndio anwani muhimu zaidi ya EEPROM ya ATtiny45. Katika vifaa vilivyo na EEPROM kidogo, yaani ATtiny25, kidogo hii imehifadhiwa na itasoma sifuri kila wakati. Thamani ya awali ya Rejista ya Anwani ya EEPROM (EEAR) haijafafanuliwa na dhamana inayofaa lazima iandikwe kabla ya EEPROM kupatikana.
Biti 6: 0 - EEAR [6: 0]: Anwani ya EEPROM
Hizi ndizo bits (za chini) za Sajili ya Anwani ya EEPROM. Baiti za data za EEPROM zinashughulikiwa kwa usawa katika masafa 0… (128/256 / 512-1). Thamani ya awali ya EEAR haijafafanuliwa na thamani sahihi lazima iwe imeandikwa kabla ya EEPROM kupatikana.
EEDR - Usajili wa Takwimu wa EEPROM
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | 7. EEDRXNUMX | 6. EEDRXNUMX | 5. EEDRXNUMX | 4. EEDRXNUMX | 3. EEDRXNUMX | 2. EEDRXNUMX | 1. EEDRXNUMX | 0. EEDRXNUMX | EDR |
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Kwa shughuli ya uandishi wa EEPROM Rejista ya EEDR ina data ya kuandikiwa EEPROM kwenye anwani iliyotolewa na Rejista ya EEAR. Kwa operesheni ya kusoma ya EEPROM, EEDR ina data iliyosomwa kutoka kwa
EEPROM kwenye anwani iliyotolewa na EEAR.
5.5.4 EECR - Rejista ya Udhibiti wa EEPROM |
|||||||||
Kiwango cha 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | EERIE | EEMPE | EEPE | HAPA | EECR | |
Soma / Andika R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Thamani ya awali 0 0 X | X | 0 | 0 | X | 0 |
Kidogo 7 - Res: Bit iliyohifadhiwa
Kidogo hiki kimetengwa kwa matumizi ya baadaye na kitasoma kila wakati kama 0 katika ATtiny25 / 45/85. Kwa utangamano na vifaa vya AVR vya baadaye, kila wakati andika kidogo hadi sifuri. Baada ya kusoma, funika kidogo.
Kidogo 6 - Res: Bit iliyohifadhiwa
Kidogo hiki kimehifadhiwa katika ATtiny25 / 45/85 na itasoma kila wakati kama sifuri.
Viti 5: 4 - EEPM [1: 0]: Vipindi vya Mfumo wa Usanidi wa EEPROM
Mipangilio ya mipangilio ya mipangilio ya EEPROM inafafanua ni hatua gani ya programu ambayo itasababishwa wakati wa kuandika EEPE. Inawezekana kupanga data katika operesheni moja ya atomiki (futa thamani ya zamani na upange thamani mpya) au kugawanya shughuli za Kufuta na Kuandika katika shughuli mbili tofauti. Nyakati za programu kwa njia tofauti zinaonyeshwa katika Jedwali 5-1. Wakati EEPE imewekwa, maandishi yoyote kwa EEPMn yatapuuzwa. Wakati wa kuweka upya, bits za EEPMn zitawekwa upya hadi 0b00 isipokuwa EEPROM iko kwenye programu nyingi.
Jedwali 5-1. Biti za Modi ya EEPROM
EEPM1 | EEPM0 | Muda wa Programu | Uendeshaji |
0 | 0 | 3.4 ms | Futa na Andika kwa operesheni moja (Operesheni ya Atomiki) |
0 | 1 | 1.8 ms | Futa tu |
1 | 0 | 1.8 ms | Andika tu |
1 | 1 | – | Imehifadhiwa kwa matumizi ya baadaye |
Kidogo 3 - EERIE: Usumbufu wa Tayari wa EEPROM Wezesha
Kuandika EERIE kwa moja kunawezesha Usumbufu wa Tayari wa EEPROM ikiwa I-bit katika SREG imewekwa. Kuandika EERIE hadi sifuri huondoa usumbufu. Usumbufu wa Tayari wa EEPROM hutengeneza usumbufu wa mara kwa mara wakati kumbukumbu isiyo-tete iko tayari kwa programu.
Kidogo 2 - EEMPE: Programu ya Mwalimu wa EEPROM Wezesha
Kidogo cha EEMPE huamua ikiwa kuandika EEPE kwa moja itakuwa na athari au la.
Wakati EEMPE imewekwa, kuweka EEPE ndani ya mizunguko minne ya saa itapanga EEPROM kwenye anwani iliyochaguliwa. Ikiwa EEMPE ni sifuri, kuweka EEPE hakutakuwa na athari. Wakati EEMPE imeandikwa kwa moja na programu, vifaa husafisha kidogo hadi sifuri baada ya mizunguko ya saa nne.
Kidogo 1 - EEPE: Programu ya EEPROM Wezesha
Programu ya EEPROM Wezesha Ishara EEPE ni programu inayowezesha ishara kwa EEPROM. Wakati EEPE imeandikwa, EEPROM itasanidiwa kulingana na mipangilio ya bits ya EEPMn. Kidogo cha EEMPE lazima kiandikwe kwa mtu kabla ya moja ya kimantiki kuandikiwa EEPE, vinginevyo hakuna maandishi ya EEPROM yanayofanyika. Wakati wakati wa kufikia kuandika umepita, kidogo ya EEPE inafutwa na vifaa. Wakati EEPE imewekwa, CPU imesimamishwa kwa mizunguko miwili kabla ya maagizo yafuatayo kutekelezwa.
Kidogo 0 - HAPA: Soma EEPROM Wezesha
Soma EEPROM Wezesha Ishara - EERE - ndio strobe iliyosomwa kwa EEPROM. Anwani sahihi itakapowekwa kwenye Rejista ya EEAR, kitufe cha EERE lazima kiandikwe kwa moja ili kusababisha kusoma kwa EEPROM. Ufikiaji wa kusoma wa EEPROM huchukua maagizo moja, na data iliyoombwa inapatikana mara moja. Wakati EEPROM inasomwa, CPU imesimamishwa kwa mizunguko minne kabla ya maagizo yafuatayo kutekelezwa. Mtumiaji anapaswa kupiga kura ya EEPE kabla ya kuanza shughuli ya kusoma. Ikiwa operesheni ya uandishi inaendelea, haiwezekani kusoma EEPROM, wala kubadilisha Rejista ya EEAR.
Mfumo wa Saa na Saa za Mfumo
Mifumo ya Saa na Usambazaji wao
Saa ya CPU
Saa ya CPU hupelekwa kwa sehemu za mfumo unaohusika na utendaji wa msingi wa AVR. Kutamples ya moduli hizo ni Rejista ya Kusudi la Jumla File, Sajili ya Hali na kumbukumbu ya Takwimu inayoshikilia Kiashiria cha Stack. Kusitisha saa ya CPU kunazuia msingi kutekeleza shughuli za jumla na mahesabu.
Saa ya I / O - clkI / O
Saa ya I / O hutumiwa na moduli nyingi za I / O, kama Timer / Counter. Saa ya I / O pia hutumiwa na moduli ya Usumbufu wa nje, lakini kumbuka kuwa kukatizwa kwa nje hugunduliwa na mantiki ya kupendeza, ikiruhusu usumbufu kama huo kugunduliwa hata kama saa ya I / O imesimamishwa.
Kiwango cha Saa - clkFLASH
Saa ya Flash inadhibiti utendaji wa kiolesura cha Flash. Saa ya Flash kawaida hufanya kazi wakati huo huo na saa ya CPU.
Saa ya ADC - clkADC
ADC hutolewa kwa kikoa cha saa kilichojitolea. Hii inaruhusu kusimamisha saa za CPU na I / O ili kupunguza kelele inayotokana na mizunguko ya dijiti. Hii inatoa matokeo sahihi zaidi ya uongofu wa ADC.
PLL ya ndani ya Uzalishaji wa Saa ya Pembeni ya Haraka - clkPCK
PLL ya ndani katika ATtiny25 / 45/85 inazalisha masafa ya saa ambayo ni 8x iliyozidishwa kutoka kwa pembejeo la chanzo. Kwa chaguo-msingi, PLL hutumia pato la oscillator ya ndani, 8.0 MHz RC kama chanzo. Vinginevyo, ikiwa LSM kidogo ya PLLCSR imewekwa PLL itatumia pato la oscillator ya RC iliyogawanywa na mbili. Kwa hivyo pato la PLL, saa ya pembeni ya haraka ni 64 MHz. Saa ya pembeni ya haraka, au saa iliyochaguliwa kutoka hapo, inaweza kuchaguliwa kama chanzo cha saa ya Timer / Counter1 au kama saa ya mfumo. Tazama Kielelezo 6-2. Mzunguko wa saa ya pembeni ya haraka hugawanywa na mbili wakati LSM ya PLLCSR imewekwa, na kusababisha mzunguko wa saa wa 32 MHz. Kumbuka, kwamba LSM haiwezi kuwekwa ikiwa PLLCLK inatumika kama saa ya mfumo.
Kielelezo 6-2. Mfumo wa Kufunga wa PCK.
PLL imefungwa kwenye oscillator ya RC na kurekebisha oscillator ya RC kupitia rejista ya OSCCAL itarekebisha saa ya pembeni haraka wakati huo huo. Walakini, hata kama oscillator ya RC itachukuliwa kwa masafa ya juu kuliko 8 MHz, masafa ya saa ya pembeni hujaa kwa 85 MHz (hali mbaya zaidi) na inabaki ikizunguka kwa kiwango cha juu cha uhuru. Ikumbukwe kwamba PLL katika kesi hii haijafungwa tena na saa ya oscillator ya RC. Kwa hivyo, inashauriwa usichukue marekebisho ya OSCCAL kwa masafa ya juu kuliko 8 MHz ili kuweka PLL katika safu sahihi ya uendeshaji.
PLL ya ndani imewezeshwa wakati:
PLLE kidogo kwenye rejista ya PLLCSR imewekwa.
Fuse ya CKSEL imewekwa kwa '0001'.
Fuse ya CKSEL imewekwa kwa '0011'.
PLLCSR bit PLOCK huwekwa wakati PLL imefungwa. Kisisitizo cha ndani cha RC na PLL huzimwa katika hali ya chini ya umeme na hali tuli za kulala.
PLL ya ndani katika Njia ya Utangamano ya ATtiny15
Kwa kuwa ATtiny25 / 45/85 ni kifaa cha uhamiaji kwa watumiaji wa ATtiny15 kuna hali ya utangamano wa ATtiny15 ya utangamano wa wadi ya nyuma. Modi ya utangamano wa ATtiny15 imechaguliwa kwa kupanga programu ya fuksi za CKSEL kuwa '0011'.
Katika hali ya utangamano wa ATtiny15 mzunguko wa oscillator ya ndani ya RC imesimamishwa hadi 6.4 MHz na sababu ya kuzidisha ya PLL imewekwa kwa 4x. Tazama Kielelezo 6-3. Pamoja na marekebisho haya mfumo wa saa unaendana na ATtiny15 na saa inayosababisha pembeni ina mzunguko wa 25.6 MHz (sawa na ATtiny15).
Kielelezo 6-3. Mfumo wa Kufunga wa PCK katika Njia ya Upatanifu ya ATtiny15.
Vyanzo vya Saa
Kifaa kina chaguzi zifuatazo za chanzo, zinazochaguliwa na bits Fuse Fuse kama inavyoonyeshwa hapa chini. Saa kutoka kwa chanzo kilichochaguliwa ni pembejeo kwa jenereta ya saa ya AVR, na kupelekwa kwa moduli zinazofaa.
Jedwali 6-1. Chaguo za Kufunga Kifaa Chagua
Chaguo la Kufunga Kifaa | CKSEL[3:0](1) |
Saa ya Nje (tazama ukurasa wa 26) | 0000 |
Mzunguko wa Juu wa PLL Saa (tazama ukurasa wa 26) | 0001 |
Imesimamishwa Oscillator ya ndani (tazama ukurasa wa 27) | 0010(2) |
Imesimamishwa Oscillator ya ndani (tazama ukurasa wa 27) | 0011(3) |
Oscillator ya ndani ya 128 kHz (tazama ukurasa wa 28) | 0100 |
Mzunguko wa chini wa Crystal Oscillator (tazama ukurasa wa 29) | 0110 |
Kioo Oscillator / Resonator ya Kauri (tazama ukurasa wa 29) | 1000 - 1111 |
Imehifadhiwa | 0101, 0111 |
Kwa fyuzi zote "1" inamaanisha kutopangwa wakati "0" inamaanisha iliyowekwa.
Kifaa kinasafirishwa na chaguo hili limechaguliwa.
Hii itachagua Njia ya Utangamano ya ATtiny15, ambapo saa ya mfumo imegawanywa na nne, na kusababisha frequency ya saa 1.6 MHz. Kwa kuongezeka zaidi, ona "Iliyokadiriwa Oscillator ya ndani" kwenye ukurasa wa 27.
Chaguzi anuwai kwa kila chaguo la saa hutolewa katika sehemu zifuatazo. Wakati CPU inapoamka kutoka kwa Power-down, chanzo cha saa kilichochaguliwa hutumiwa wakati wa kuanza, kuhakikisha utendaji thabiti wa Oscillator kabla ya utekelezaji wa maagizo kuanza. Wakati CPU inapoanza kutoka upya, kuna ucheleweshaji wa ziada unaoruhusu nguvu kufikia kiwango thabiti kabla ya kuanza operesheni ya kawaida. Oscillator ya mwangalizi hutumiwa kwa kuweka wakati wa sehemu hii ya wakati halisi wa wakati wa kuanza. Idadi ya mizunguko ya Oscillator ya WDT inayotumika kwa kila muda wa kumaliza imeonyeshwa katika Jedwali 6-2.
Jedwali 6-2. Idadi ya Mizunguko ya Oscillator ya Walinzi
Aina ya Muda wa Kuisha | Idadi ya Mizunguko |
4 ms | 512 |
64 ms | 8K (8,192) |
Saa ya Nje
Ili kuendesha kifaa kutoka chanzo cha nje cha saa, CLKI inapaswa kuendeshwa kama inavyoonyeshwa katika Kielelezo 6-4. Ili kuendesha kifaa kwa saa ya nje, Fuse za CKSEL lazima ziwekwe "00".
Kielelezo 6-4. Usanidi wa Hifadhi ya Saa ya Nje
Wakati chanzo hiki cha saa kinachaguliwa, nyakati za kuanza zinaamuliwa na Futa za SUT kama inavyoonyeshwa katika Jedwali 6-3.
Jedwali 6-3. Saa za Kuanzisha kwa Uteuzi wa Saa ya Nje
SUT[1:0] | Muda wa Kuanza kutoka kwa Power-down | Ucheleweshaji wa Ziada kutoka kwa Upya | Matumizi Iliyopendekezwa |
00 | 6 CK | 14CK | BOD imewezeshwa |
01 | 6 CK | 14CK + 4 ms | Nguvu inayoongezeka haraka |
10 | 6 CK | 14CK + 64 ms | Kupanda polepole kwa nguvu |
11 | Imehifadhiwa |
Wakati wa kutumia saa ya nje, inahitajika kuzuia mabadiliko ya ghafla katika mzunguko wa saa uliowekwa ili kuhakikisha utendaji thabiti wa MCU. Tofauti ya masafa ya zaidi ya 2% kutoka kwa saa moja hadi nyingine inaweza kusababisha tabia isiyotabirika. Inahitajika kuhakikisha kuwa MCU imewekwa katika Rudisha wakati wa mabadiliko kama haya katika mzunguko wa saa.
Kumbuka kuwa Saa ya Uuzaji wa Saa inaweza kutumika kutekeleza mabadiliko ya wakati wa kukimbia wa masafa ya saa ya ndani wakati bado inahakikisha utendaji thabiti. Rejea "Mwekaji wa Saa ya Mfumo" kwenye ukurasa wa 31 kwa maelezo.
Mzunguko wa Juu wa PLL Saa
Kuna PLL ya ndani ambayo hutoa jina la kiwango cha saa 64 MHz lililofungwa kwa RC Oscillator kwa matumizi ya Timer Peripheral / Counter1 na chanzo cha saa ya mfumo. Unapochaguliwa kama chanzo cha saa ya mfumo, kwa kuandaa CKSEL fuse kwa '0001', imegawanywa na nne kama inavyoonyeshwa kwenye Jedwali 6-4.
Jedwali 6-4. Njia za Uendeshaji za Saa ya Marudio ya Juu ya PLL
CKSEL[3:0] | Frequency ya nomino |
0001 | 16 MHz |
Wakati chanzo hiki cha saa kinachaguliwa, nyakati za kuanza zinaamuliwa na fyuzi za SUT kama inavyoonekana katika Jedwali 6-5.
Jedwali 6-5. Saa za Kuanzisha kwa Saa ya Marudio ya Juu ya PLL
SUT[1:0] | Muda wa Kuanza kutoka kwa Power Down | Ucheleweshaji wa Ziada kutoka kwa Uwekaji Upya wa Nishati (VCC = 5.0V) | Matumizi yaliyopendekezwa |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | BOD imewezeshwa |
Jedwali 6-5. Saa za Kuanzisha kwa Saa ya Marudio ya Juu ya PLL
SUT[1:0] | Muda wa Kuanza kutoka kwa Power Down | Ucheleweshaji wa Ziada kutoka kwa Uwekaji Upya wa Nishati (VCC = 5.0V) | Matumizi yaliyopendekezwa |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Nguvu inayoongezeka haraka |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Kupanda polepole kwa nguvu |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Kupanda polepole kwa nguvu |
Imesimamishwa Oscillator ya ndani
Kwa chaguo-msingi, RC Oscillator ya ndani hutoa saa takriban 8.0 MHz. Ingawa voltage na tegemezi ya joto, saa hii inaweza kusawazishwa kwa usahihi na mtumiaji. Tazama "Iliyokadiriwa ndani ya RC Oscillator Accu racy ”kwenye ukurasa wa 164 na "Kasi ya ndani ya Oscillator" kwenye ukurasa wa 192 kwa maelezo zaidi. Kifaa hicho kinasafirishwa na Fuse ya CKDIV8 iliyowekwa. Tazama "Mwekaji wa Saa ya Mfumo" kwenye ukurasa wa 31 kwa maelezo zaidi.
Saa hii inaweza kuchaguliwa kama saa ya mfumo kwa kupanga Fuses za CKSEL kama inavyoonekana katika Jedwali 6-6 kwenye ukurasa
27. Ikiwa imechaguliwa, itafanya kazi bila vifaa vya nje. Wakati wa kuweka upya, vifaa vinapakia thamani ya upangiaji uliopangwa tayari kwenye Rejista ya OSCCAL na kwa hivyo huweka RC Oscillator moja kwa moja. Usahihi wa usawa huu umeonyeshwa kama usawazishaji wa Kiwanda katika Jedwali 21-2 kwenye ukurasa wa 164.
Kwa kubadilisha rejista ya OSCCAL kutoka SW, ona "OSCCAL - Daftari la Upimaji wa Oscillator" kwenye ukurasa wa 31, inawezekana kupata usahihi wa juu zaidi wa calibration kuliko kwa kutumia usawazishaji wa kiwanda. Usahihi wa usawa huu umeonyeshwa kama upimaji wa Mtumiaji katika Jedwali 21-2 kwenye ukurasa wa 164.
Wakati Oscillator hii inatumiwa kama saa ya chip, Oscillator ya Watazamaji bado itatumika kwa Kipima saa cha Kuangalia na kwa Kuweka tena Muda. Kwa habari zaidi juu ya dhamana ya usanidi uliopangwa tayari, angalia sehemu "Cali- bration Bytes ”kwenye ukurasa wa 150.
Oscillator ya ndani pia inaweza kuwekwa ili kutoa saa 6.4 MHz kwa kuandika fyuzi za CKSEL kwa "0011", kama inavyoonekana katika Jedwali 6-6 chini. Mpangilio huu umerejelewa kama Njia ya Utangamano ya ATtiny15 na inakusudiwa kutoa chanzo cha saa iliyosawazishwa saa 6.4 MHz, kama ilivyo kwa ATtiny15. Katika Hali ya Utangamano ya ATtiny15 PLL hutumia oscillator ya ndani inayoendesha 6.4 MHz kutoa ishara ya saa ya pembeni ya 25.6 MHz kwa Timer / Counter1 (tazama "8-bit Timer / Counter1 ndani Njia ya ATtiny15 ”kwenye ukurasa 95). Kumbuka kuwa katika hali hii ya operesheni ishara ya saa 6.4 MHz imegawanywa kila wakati na nne, ikitoa saa ya mfumo wa 1.6 MHz.
Jedwali 6-6. Njia za Uendeshaji za Oscillator za RC Zilizosawazishwa za Ndani
CKSEL[3:0] | Frequency ya nomino |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Kifaa kinasafirishwa na chaguo hili limechaguliwa.
Mpangilio huu utachagua Hali ya Utangamano ya ATtiny15, ambapo saa ya mfumo imegawanywa na nne, na kusababisha masafa ya saa 1.6 MHz.
Wakati oscillator ya ndani ya MHz 8 imechaguliwa kama chanzo cha saa nyakati za kuanza zinaamuliwa na Futa za SUT kama inavyoonekana katika Jedwali 6-7 chini.
Jedwali 6-7. Saa za Kuanza kwa Saa ya Kiosilata ya RC Iliyorekebishwa ndani
SUT[1:0] | Muda wa Kuanza kutoka kwa Power-down | Ucheleweshaji wa Ziada kutoka kwa Kuweka Upya (VCC = 5.0V) | Matumizi Iliyopendekezwa |
00 | 6 CK | 14CK(1) | BOD imewezeshwa |
01 | 6 CK | 14CK + 4 ms | Nguvu inayoongezeka haraka |
10(2) | 6 CK | 14CK + 64 ms | Kupanda polepole kwa nguvu |
11 | Imehifadhiwa |
1. Ikiwa fyuzi ya RSTDISBL imewekwa, wakati huu wa kuanza utaongezwa hadi 14CK + 4 ms ili kuhakikisha kuwa hali ya programu inaweza kuingizwa.
2. Kifaa kinasafirishwa na chaguo hili limechaguliwa.
Katika nyakati za kuanza kwa Utaratibu wa Utangamano wa ATtiny15 zimedhamiriwa na fyuzi za SUT kama inavyoonyeshwa katika Jedwali 6-8 chini.
Jedwali 6-8. Saa za Kuanza kwa Saa ya Kisisitio ya Ndani Iliyodhibitiwa ya RC (katika Hali ya ATtiny15)
SUT[1:0] | Muda wa Kuanza kutoka kwa Power-down | Ucheleweshaji wa Ziada kutoka kwa Kuweka Upya (VCC = 5.0V) | Matumizi Iliyopendekezwa |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Kumbuka: Ikiwa fuse ya RSTDISBL imeratibiwa, muda huu wa kuanza utaongezwa hadi 14CK + 4 ms ili kuhakikisha hali ya programu inaweza kuingizwa.
Kwa muhtasari, habari zaidi juu ya Njia ya Utangamano ya ATtiny15 inaweza kupatikana katika sehemu "Port B (PB5: PB0)" imewashwa ukurasa wa 2, "PLL ya ndani katika Njia ya Utangamano ya ATtiny15" kwenye ukurasa wa 24, "8-bit Timer / Counter1 katika ATtiny15 Mode" imewashwa ukurasa wa 95, "Vizuizi vya utatuzi" kwenye ukurasa wa 140, "Baiti za Ulinganishaji" kwenye ukurasa wa 150 na katika meza “Daktari wa saa Chagua ”kwenye ukurasa wa 33.
Oscillator ya ndani ya 128 kHz
Oscillator ya ndani ya 128 kHz ni Oscillator yenye nguvu ya chini inayotoa saa ya 128 kHz. Masafa ni ya kawaida kwa 3V na 25 ° C. Saa hii inaweza kuchaguliwa kama saa ya mfumo kwa kutayarisha Fuse za CKSEL hadi "0100".
Wakati chanzo hiki cha saa kinachaguliwa, nyakati za kuanza zinaamuliwa na Futa za SUT kama inavyoonyeshwa katika Jedwali 6-9.
Jedwali 6-9. Saa za Kuanzisha Kiosilata cha Ndani cha 128 kHz
SUT[1:0] | Muda wa Kuanza kutoka kwa Power-down | Ucheleweshaji wa Ziada kutoka kwa Upya | Matumizi Iliyopendekezwa |
00 | 6 CK | 14CK(1) | BOD imewezeshwa |
01 | 6 CK | 14CK + 4 ms | Nguvu inayoongezeka haraka |
10 | 6 CK | 14CK + 64 ms | Kupanda polepole kwa nguvu |
11 | Imehifadhiwa |
Kumbuka: Ikiwa fuse ya RSTDISBL imeratibiwa, muda huu wa kuanza utaongezwa hadi 14CK + 4 ms ili kuhakikisha hali ya programu inaweza kuingizwa.
Mzunguko wa chini wa Crystal Oscillator
Kutumia kioo cha kutazama 32.768 kHz kama chanzo cha saa cha kifaa, Crystal Oscillator ya chini-chini lazima ichaguliwe kwa kuweka fyuzi za CKSEL ziwe '0110'. Kioo kinapaswa kuunganishwa kama inavyoonyeshwa katika Kielelezo 6-5. Ili kupata uwezo wa kubeba mzigo kwa kilio cha 32.768 kHz, tafadhali wasiliana na hati ya mtengenezaji.
Wakati oscillator hii imechaguliwa, nyakati za kuanza zinaamuliwa na fyuzi za SUT kama inavyoonyeshwa katika Jedwali 6-10.
Jedwali 6-10. Saa za Kuanzisha kwa Uteuzi wa Saa ya Kiosilata cha Masafa ya Chini
SUT[1:0] | Muda wa Kuanza kutoka kwa Power Down | Ucheleweshaji wa Ziada kutoka kwa Kuweka Upya (VCC = 5.0V) | Matumizi yaliyopendekezwa |
00 | 1K (1024) CK(1) | 4 ms | Nguvu inayokua haraka au BOD imewezeshwa |
01 | 1K (1024) CK(1) | 64 ms | Kupanda polepole kwa nguvu |
10 | 32K (32768) CK | 64 ms | Mzunguko thabiti wakati wa kuanza |
11 | Imehifadhiwa |
Kumbuka: Chaguo hizi zinapaswa kutumika tu ikiwa uthabiti wa mzunguko wakati wa kuanza sio muhimu.
Crystal Oscillator ya chini-chini hutoa uwezo wa ndani wa mzigo, ona Jedwali 6-11 katika kila pini ya TOSC.
Jedwali 6-11. Uwezo wa Oscillator ya Kioo ya Kiwango cha Chini
Kifaa | KHz 32 Osc. Andika | Sura (Xtal1 / Tosc1) | Sura (Xtal2 / Tosc2) |
Mchanganyiko25 / 45/85 | Mfumo Osc. | pF 16 | pF 6 |
Kioo Oscillator / Resonator ya Kauri
XTAL1 na XTAL2 ni pembejeo na pato, mtawaliwa, ya ubadilishaji amplifier ambayo inaweza kusanidiwa kutumiwa kama On-chip Oscillator, kama inavyoonekana katika Kielelezo 6-5. Ila kioo cha quartz au resonator ya kauri inaweza kutumika.
C1 na C2 zinapaswa kuwa sawa kila wakati kwa fuwele na resonators. Thamani mojawapo ya capacitors inategemea kioo au resonator katika matumizi, kiasi cha capacitance kupotea, na kelele ya sumakuumeme ya mazingira. Baadhi ya miongozo ya awali ya kuchagua capacitors kwa matumizi na fuwele imetolewa Jedwali 6-12 chini. Kwa resonators za kauri, maadili ya capacitor yaliyotolewa na mtengenezaji yanapaswa kutumiwa.
Jedwali 6-12. Njia za Uendeshaji za Crystal Oscillator
CKSEL[3:1] | Mzunguko wa Mzunguko (MHz) | Upeo uliopendekezwa wa Capacitors C1 na C2 ya Matumizi ya Fuwele (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 |
Vidokezo: Chaguo hili haipaswi kutumiwa na fuwele, tu na resonators za kauri.
Oscillator inaweza kufanya kazi kwa njia tatu tofauti, kila moja imeboreshwa kwa masafa maalum. Hali ya uendeshaji imechaguliwa na fuses CKSEL [3: 1] kama inavyoonekana katika Jedwali 6-12.
Fuse ya CKSEL0 pamoja na SUT [1: 0] Fuse huchagua nyakati za kuanza kama inavyoonyeshwa katika Jedwali 6-13.
Jedwali 6-13. Nyakati za Kuanza kwa Uteuzi wa Saa ya Kiosisi ya Kiosisi
CKSEL0 | SUT[1:0] | Muda wa Kuanza kutoka kwa Power-down | Ucheleweshaji wa Ziada kutoka kwa Upya | Matumizi Iliyopendekezwa |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Resonator ya kauri, nguvu inayoongezeka haraka |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Kauri resonator, polepole kuongezeka kwa nguvu |
0 | 10 | 1K (1024) CK(2) | 14CK | Resonator ya kauri, BOD imewezeshwa |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Resonator ya kauri, nguvu inayoongezeka haraka |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Kauri resonator, polepole kuongezeka kwa nguvu |
1 | 01 | 16K (16384) CK | 14CK | Crystal Oscillator, BOD imewezeshwa |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Crystal Oscillator, nguvu inayoongezeka haraka |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Crystal Oscillator, polepole kuongezeka kwa nguvu |
Vidokezo
Chaguzi hizi zinapaswa kutumiwa tu wakati haifanyi kazi karibu na kiwango cha juu cha kifaa, na ikiwa tu utulivu wa masafa wakati wa kuanza sio muhimu kwa programu. Chaguzi hizi hazifaa kwa fuwele.
Chaguzi hizi zinalenga kutumiwa na resonators za kauri na itahakikisha utulivu wa masafa wakati wa kuanza. Pia zinaweza kutumiwa na fuwele wakati hazifanyi kazi karibu na kiwango cha juu cha kifaa, na ikiwa uwezo wa masafa mwanzoni sio muhimu kwa programu.
Chanzo Cha Saa Mbadala
Kifaa kinasafirishwa na CKSEL = "0010", SUT = "10", na CKDIV8 imewekwa. Mpangilio wa chanzo cha saa kwa hiyo ni Kidhibiti cha Ndani cha RC kinachoendesha saa 8 MHz chenye muda mrefu zaidi wa kuanza na saa ya awali ya mfumo wa 8, na kusababisha saa ya mfumo 1.0 MHz. Mpangilio huu chaguomsingi unahakikisha kuwa watumiaji wote wanaweza kutengeneza mipangilio ya chanzo cha saa wanayotaka kutumia Mfumo-Mfumo au High-voltage Programu.
Muuza Saa ya Mfumo
Saa ya mfumo wa ATtiny25 / 45/85 inaweza kugawanywa kwa kuweka "CLKPR - Sajili ya Saa ya Saa" kwenye ukurasa wa 32. Kipengele hiki kinaweza kutumika kupunguza matumizi ya nishati wakati mahitaji ya nishati ya kuchakata ni ya chini. Hii inaweza kutumika na chaguzi zote za chanzo cha saa, na itaathiri mzunguko wa saa ya CPU na vifaa vyote vya pembeni vinavyosawazishwa. clkI/O, clkADC, clkCPU, na clkFLASH zimegawanywa kwa kipengele kama inavyoonyeshwa katika Jedwali 6-15 kwenye ukurasa wa 33.
Kubadilisha Wakati
Unapobadilisha kati ya mipangilio ya wauzaji, System Clock Prescaler inahakikisha kuwa hakuna glitches inayotokea katika mfumo wa saa na kwamba hakuna masafa ya kati yaliyo juu kuliko hali ya saa inayolingana na mpangilio wa awali, wala mzunguko wa saa unaolingana na mpangilio mpya.
Kaunta iliyokolea ambayo hutumia mchungaji huendesha kwa masafa ya saa isiyogawanyika, ambayo inaweza kuwa haraka kuliko mzunguko wa saa ya CPU. Kwa hivyo, haiwezekani kuamua hali ya daktari wa mapema - hata ikiwa ingesomeka, na wakati halisi inachukua kubadili kutoka kwa mgawanyiko wa saa moja hadi nyingine hauwezi kutabiriwa.
Kuanzia wakati maadili ya CLKPS yameandikwa, inachukua kati ya T1 + T2 na T1 + 2 * T2 kabla ya fremu ya saa mpya kufanya kazi. Katika kipindi hiki, kingo 2 za saa zinazotumika hutengenezwa. Hapa, T1 ni kipindi cha saa iliyopita, na T2 ni kipindi kinacholingana na mpangilio mpya wa daktari.
Bafu ya Pato la Saa
Kifaa kinaweza kutoa saa ya mfumo kwenye pini ya CLKO (wakati haitumiki kama pini ya XTAL2). Ili kuwezesha pato, Fuse ya CKOUT inapaswa kusanidiwa. Njia hii inafaa wakati saa ya chip inatumiwa kuendesha nyaya zingine kwenye mfumo. Kumbuka kuwa saa haitatolewa wakati wa kuweka upya na kwamba operesheni ya kawaida ya pini ya I / O itafunikwa wakati fuse imewekwa. RC Oscillator ya ndani, WDT Oscillator, PLL, na saa ya nje (CLKI) inaweza kuchaguliwa wakati saa inapotolewa kwenye CLKO. Crystal oscillators (XTAL1, XTAL2) haiwezi kutumika kwa pato la saa kwenye CLKO. Ikiwa Prescaler ya Saa ya Mfumo inatumiwa, ni saa ya mfumo iliyogawanywa ambayo ni pato.
Sajili Maelezo
OSCCAL - Daftari la Upimaji wa Oscillator
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Biti 7: 0 - CAL [7: 0]: Thamani ya Upimaji wa Oscillator
Rejista ya Upimaji wa Oscillator hutumiwa kupunguza kipimo cha ndani cha "RC Oscillator" ili kuondoa njia za mchakato kutoka kwa masafa ya oscillator. Thamani ya upangiaji uliopangwa mapema imeandikwa kiatomati kwa rejista hii wakati wa kuweka upya chip, ikitoa mzunguko wa sanifu wa Kiwanda kama ilivyoainishwa Jedwali 21-2 kwenye ukurasa wa 164. Programu ya programu inaweza kuandika rejista hii kubadilisha mzunguko wa oscillator. Oscillator inaweza kuzingatiwa kwa masafa kama ilivyoainishwa katika Jedwali 21-2 kwenye ukurasa wa 164. Upimaji nje ya fungu hilo haujahakikishiwa.
Kumbuka kuwa oscillator hii hutumiwa kupata ufikiaji wa EEPROM na Flash, na nyakati hizi za kuandika zitaathiriwa ipasavyo. Ikiwa EEPROM au Flash imeandikwa, usizingatie zaidi ya 8.8 MHz. Vinginevyo, EEPROM au Flash kuandika inaweza kushindwa.
Kidogo cha CAL7 huamua anuwai ya operesheni kwa oscillator. Kuweka kidogo hii kuwa 0 kunatoa masafa ya chini kabisa, kuweka kidogo hadi 1 kunatoa masafa ya juu kabisa. Masafa mawili ya mzunguko yanaingiliana, kwa maneno mengine mpangilio wa OSCCAL = 0x7F hutoa masafa ya juu kuliko OSCCAL = 0x80.
Vipande vya CAL [6: 0] hutumiwa kurekebisha masafa ndani ya anuwai iliyochaguliwa. Mpangilio wa 0x00 hutoa frequency ya chini kabisa katika anuwai hiyo, na mpangilio wa 0x7F hutoa masafa ya juu zaidi katika anuwai hiyo.
Ili kuhakikisha utendaji thabiti wa MCU thamani ya upimaji inapaswa kubadilishwa kwa kiwango kidogo. Tofauti ya masafa ya zaidi ya 2% kutoka mzunguko mmoja hadi mwingine inaweza kusababisha tabia isiyotabirika. Mabadiliko katika OSCCAL hayapaswi kuzidi 0x20 kwa kila hesabu. Inahitajika kuhakikisha kuwa MCU imewekwa katika Rudisha wakati wa mabadiliko kama haya katika mzunguko wa saa
Jedwali 6-14. Masafa ya Masafa ya Marudio ya RC ya Ndani
Thamani ya OSCCAL | Mzunguko wa kawaida wa chini kabisa na Heshima ya Mzunguko wa Jina | Mzunguko wa kawaida wa Juu zaidi na Heshima ya Mzunguko wa Jina |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Sajili ya Sajili ya Saa
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Soma/Andika | R/W | R | R | R | R/W | R/W | R/W | R/W |
Thamani ya awali 0 0 0 0 Angalia Maelezo kidogo
Kidogo cha 7 - CLKPCE: Kubadilisha Prescaler ya Saa Wezesha
Kidogo cha CLKPCE lazima kiandikwe kwa mantiki moja kuwezesha mabadiliko ya bits za CLKPS. Kidogo cha CLKPCE kinasasishwa tu wakati bits zingine katika CLKPR zimeandikwa sawa kwa sifuri. CLKPCE inafutwa na vifaa mizunguko minne baada ya kuandikwa au wakati bits za CLKPS zimeandikwa. Kuandika tena CLKPCE ndani ya kipindi hiki cha kumaliza muda hakuongezei muda wa kumaliza muda, wala kuondoa wazi CLKPCE.
Biti 6: 4 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Biti 3: 0 - CLKPS [3: 0]: Mtunza Saa Chagua Biti 3 - 0
Biti hizi hufafanua mgawanyiko kati ya chanzo cha saa iliyochaguliwa na saa ya mfumo wa ndani. Biti hizi zinaweza kuandikwa wakati wa kukimbia kutofautiana masafa ya saa ili kukidhi mahitaji ya programu. Mgawanyiko unapogawanya pembejeo la saa kuu kwa MCU, kasi ya vifaa vyote vya upatanishi hupunguzwa wakati sababu ya mgawanyiko inatumiwa. Sababu za mgawanyiko hutolewa ndani Jedwali 6-15.
Ili kuepusha mabadiliko yasiyokusudiwa ya masafa ya saa, utaratibu maalum wa kuandika lazima ufuatwe ili kubadilisha bits za CLKPS:
Andika Kitufe cha Kubadilisha Msaidizi wa Saa (CLKPCE) kidogo kwa bits moja na nyingine zote kwenye CLKPR hadi sifuri.
Ndani ya mizunguko minne, andika thamani inayotakiwa kwa CLKPS huku ukiandika sifuri kwa CLKPCE.
Usumbufu lazima uzimwe wakati wa kubadilisha mpangilio wa daktari ili kuhakikisha utaratibu wa kuandika hauingiliwi.
Fuse ya CKDIV8 huamua thamani ya awali ya biti za CLKPS. Ikiwa CKDIV8 haijapangwa, biti za CLKPS zitawekwa upya hadi "0000". Ikiwa CKDIV8 imeratibiwa, biti za CLKPS zitawekwa upya hadi "0011", ikitoa kipengele cha mgawanyiko cha nane wakati wa kuanza. Kipengele hiki kinapaswa kutumika ikiwa chanzo cha saa kilichochaguliwa kina masafa ya juu kuliko masafa ya juu ya kifaa katika hali ya sasa ya kufanya kazi. Kumbuka kuwa thamani yoyote inaweza kuandikwa kwa biti za CLKPS bila kujali mpangilio wa CKDIV8 Fuse. Programu ya Maombi lazima ihakikishe kuwa kigezo cha kutosha cha mgawanyiko ni
iliyochaguliwa ikiwa chanzo cha saa kilichochaguliwa kina masafa ya juu kuliko kiwango cha juu cha kifaa katika hali ya sasa ya utendaji. Kifaa hicho kinasafirishwa na Fuse ya CKDIV8 iliyowekwa.
Jedwali 6-15. Saa Prescaler Chagua
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Sababu ya Idara ya Saa |
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 | Imehifadhiwa |
1 | 0 | 1 | 0 | Imehifadhiwa |
1 | 0 | 1 | 1 | Imehifadhiwa |
1 | 1 | 0 | 0 | Imehifadhiwa |
1 | 1 | 0 | 1 | Imehifadhiwa |
1 | 1 | 1 | 0 | Imehifadhiwa |
1 | 1 | 1 | 1 | Imehifadhiwa |
Kumbuka: Kipimaji cha kupima awali kimezimwa katika hali ya uoanifu ya ATtiny15 na wala kuandika kwa CLKPR, wala kutayarisha fuse ya CKDIV8 hakuna athari kwenye saa ya mfumo (ambayo itakuwa 1.6 MHz kila wakati).
Usimamizi wa Nguvu na Njia za Kulala
Utendaji wa hali ya juu na ufanisi wa kuongoza kwa tasnia hufanya watawala wa AVR kuwa chaguo bora kwa matumizi ya nguvu ndogo. Kwa kuongezea, njia za kulala zinawezesha programu kuzima moduli ambazo hazitumiki katika MCU, na hivyo kuokoa nguvu. AVR hutoa njia anuwai za kulala kumruhusu mtumiaji kubadilisha matumizi ya nguvu kulingana na mahitaji ya programu.
Njia za Kulala
Kielelezo 6-1 kwenye ukurasa wa 23 inatoa mifumo tofauti ya saa na usambazaji wao katika ATtiny25 / 45/85. Takwimu ni muhimu katika kuchagua hali sahihi ya kulala. Jedwali 7-1 inaonyesha njia tofauti za kulala na vyanzo vyao vya kuamka.
Jedwali 7-1. Vikoa vya Saa Inayotumika na Vyanzo vya Kuamka katika Njia tofauti za Kulala
Vikoa Vya Saa | Oscillators | Vyanzo vya Kuamsha | ||||||||||
Hali ya Kulala | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Chanzo kuu cha Saa Kimewezeshwa | INT0 na Mabadiliko ya Pini | SPM / EEPROM
Tayari |
Hali ya Kuanza ya USI |
ADC | Nyingine I/O | Mlinzi Katiza |
Bila kufanya kitu | X | X | X | X | X | X | X | X | X | X | ||
Kupunguza Kelele za ADC | X | X | X(1) | X | X | X | X | |||||
Kupunguza nguvu | X(1) | X | X |
Kumbuka: Kwa INT0, usumbufu wa kiwango pekee.
Kuingiza yoyote ya njia tatu za kulala, SE kidogo katika MCUCR lazima iandikwe kwa mantiki moja na maagizo ya KULALA lazima yatekelezwe. Vipande vya SM [1: 0] katika Usajili wa MCUCR huchagua ni hali gani ya kulala (Idle, Kupunguza Sauti ya ADC au Kupunguza Nguvu) itakayoamilishwa na maagizo ya KULALA. Tazama Jedwali 7-2 kwa muhtasari.
Ikiwa usumbufu uliowezeshwa unatokea wakati MCU iko katika hali ya kulala, MCU inaamka. MCU inasimamishwa kwa mizunguko minne pamoja na wakati wa kuanza, hufanya utaratibu wa kukatiza, na kuanza kutekeleza kutoka kwa maagizo kufuatia KULALA. Yaliyomo kwenye Rejista File na SRAM haibadilishwa wakati kifaa kinaamka kutoka usingizini. Ikiwa kuweka upya kunatokea wakati wa hali ya kulala, MCU inaamka na kutekeleza kutoka kwa Rudisha Vector.
Kumbuka: ikiwa kiwango kilichoanzishwa kitatumika kuamsha kiwango kilichobadilishwa lazima kishikiliwe kwa muda ili kuamsha MCU (na ili MCU iingie katika utaratibu wa huduma ya kukatiza). Tazama "Usumbufu wa nje" kwenye ukurasa wa 49 kwa maelezo.
Njia Ya Uvivu
Biti za SM[1:0] zinapoandikwa kwa 00, maagizo ya KULALA hufanya MCU iingie katika hali ya Kutofanya kitu, ikisimamisha CPU lakini ikiruhusu Kilinganishi cha Analogi, ADC, USI, Timer/Counter, Watchdog, na mfumo wa kukatiza kuendelea kufanya kazi- kupiga. Hali hii ya usingizi kimsingi husimamisha clkCPU na clkFLASH, huku ikiruhusu saa nyingine kufanya kazi.
Njia ya uvivu inawezesha MCU kuamka kutoka kwa usumbufu wa nje na vile vile vya ndani kama Kufurika kwa Timer. Ikiwa kuamka kutoka kwa kukatiza kwa kulinganisha kwa Analog hakuhitajiki, Kilinganisha cha Analog inaweza kuwekewa nguvu kwa kuweka kidogo ACD "ACSR - Usajili wa Udhibiti wa Sawa na Analog ya Analog" kwenye ukurasa wa 120. Hii itapunguza matumizi ya nguvu katika hali ya Uvivu. Ikiwa ADC imewezeshwa, ubadilishaji huanza moja kwa moja wakati hali hii imeingizwa.
Njia ya Kupunguza Kelele ya ADC
Biti za SM[1:0] zinapoandikwa kwa 01, maagizo ya KULALA huifanya MCU kuingia katika modi ya Kupunguza Kelele ya ADC, kusimamisha CPU lakini kuruhusu ADC, kukatizwa kwa nje na Kilinzi kuendelea kufanya kazi (ikiwashwa). Hali hii ya usingizi husitisha clkI/O, clkCPU, na clkFLASH, huku ikiruhusu saa nyingine kufanya kazi.
Hii inaboresha mazingira ya kelele kwa ADC, kuwezesha vipimo vya azimio kubwa. Ikiwa ADC imewezeshwa, ubadilishaji huanza moja kwa moja wakati hali hii imeingizwa. Mbali na aina ya ADC Conversion Kamili ikatishe, Rudisha nje ya nje, Rudisha Waangalizi, Rudisha nje ya Kahawia, SPM / EEPROM kukatiza tayari, kiwango cha nje kukatiza INT0 au kukatiza mabadiliko ya pini kunaweza kuamsha MCU kutoka Kupunguza Kelele ya ADC mode.
Njia ya kupunguza nguvu
Wakati bits za SM [1: 0] zimeandikwa kwa 10, maagizo ya KULALA hufanya MCU kuingiza hali ya Kupunguza Nguvu. Katika hali hii, Oscillator imesimamishwa, wakati wa kukatiza nje, kugundua hali ya USI na Mtazamaji anaendelea kufanya kazi (ikiwa imewezeshwa). Rudisha nje ya nje tu, Rudisha Waangalizi, Rudisha nje ya Kahawia, USI kuanza hali kukatiza, kiwango cha nje kukatiza kwenye INT0 au usumbufu wa mabadiliko ya pini unaweza kuamsha MCU. Hali hii ya kulala husimamisha saa zote zinazozalishwa, ikiruhusu utendaji wa moduli za kupendeza tu.
Programu BOD Lemaza
Wakati Kigunduzi cha Kahawia (BOD) kinapowezeshwa na fyuzi za BODLEVEL (tazama Jedwali 20-4 kwenye ukurasa wa 148), BOD inafuatilia kikamilifu usambazaji voltage wakati wa kulala. Katika vifaa vingine inawezekana kuokoa nguvu kwa kutenganisha BOD na programu katika hali ya kulala ya Power-Down. Matumizi ya nguvu ya hali ya kulala basi itakuwa katika kiwango sawa na wakati BOD inalemazwa ulimwenguni na fyuzi.
Ikiwa BOD imezimwa na programu, kazi ya BOD imezimwa mara baada ya kuingia mode ya usingizi. Baada ya kuamka kutoka usingizini, BOD huwashwa tena kiotomatiki. Hii inahakikisha operesheni salama ikiwa kiwango cha VCC kimeshuka wakati wa kipindi cha kulala.
Wakati BOD imelemazwa, wakati wa kuamka kutoka kwa hali ya kulala utakuwa sawa na ule wa kuamka kutoka RESET. Mtumiaji lazima asanidi nyakati za kuamka kwa mikono ili kumbukumbu ya bandgap iwe na wakati wa kuanza na BOD inafanya kazi kwa usahihi kabla ya MCU kuendelea kutekeleza nambari. Tazama SUT [1: 0] na CKSEL [3: 0] fuse bits kwenye meza "Fuse Low Byte" kwenye ukurasa wa 149
Ulemavu wa BOD unadhibitiwa na BODS (BOD Sleep) kidogo ya Usajili wa Udhibiti wa MCU, tazama “Udhibiti wa MCUCR - MCU Jisajili ”kwenye ukurasa wa 37. Kuandika kidogo hii kuzima BOD kwa Power-Down, wakati kuandika sifuri kunafanya BOD iwe hai. Mpangilio chaguomsingi ni sifuri, yaani BOD inafanya kazi.
Kuandika kwa BODS kidogo hudhibitiwa na mlolongo wa wakati uliowekwa na kuwezesha kidogo, tazama "Usajili wa MCUCR - MCU- ter ”kwenye ukurasa wa 37.
Mapungufu
Utendaji wa afya ya BOD imetekelezwa katika vifaa vifuatavyo, tu:
ATtiny25, marekebisho E, na zaidi
ATtiny45, marekebisho D, na mpya zaidi
ATtiny85, marekebisho C, na zaidi
Marekebisho yamewekwa alama kwenye kifurushi cha kifaa na inaweza kupatikana kama ifuatavyo:
Upande wa chini wa vifurushi 8P3 na 8S2
Upande wa juu wa kifurushi 20M1
Rejista ya Kupunguza Umeme
Rejista ya Kupunguza Umeme (PRR), tazama "PRR - Daftari ya Kupunguza Umeme" kwenye ukurasa wa 38, hutoa njia ya kupunguza matumizi ya nguvu kwa kusimamisha saa kwa vifaa vya kibinafsi. Hali ya sasa ya pembeni imeganda na sajili za I / O haziwezi kusomwa au kuandikwa. Rasilimali zinazotumiwa na pembeni wakati wa kusimamisha saa zitabaki ulichukua, kwa hivyo pembeni inapaswa katika hali nyingi kuzimwa kabla ya kumaliza saa. Kuamsha moduli, ambayo hufanywa kwa kusafisha kidogo katika PRR, inaweka moduli katika hali ile ile kama kabla ya kuzima.
Kuzima kwa moduli kunaweza kutumika katika hali ya Uvivu na hali inayotumika kupunguza kwa kiasi kikubwa matumizi ya nguvu. Katika njia zingine zote za kulala, saa tayari imesimamishwa. Tazama "Ugavi wa sasa wa moduli za I / O" kwenye ukurasa wa 177 kwa mfanoampchini.
Kupunguza Matumizi ya Nguvu
Kuna masuala kadhaa ya kuzingatia wakati wa kujaribu kupunguza matumizi ya nguvu katika mfumo unaodhibitiwa wa AVR. Kwa jumla, njia za kulala zinapaswa kutumiwa iwezekanavyo, na hali ya kulala inapaswa kuchaguliwa ili kazi chache za kifaa zifanye kazi. Kazi zote ambazo hazihitajiki zinapaswa kuzimwa. Hasa, moduli zifuatazo zinaweza kuhitaji kuzingatiwa maalum wakati wa kujaribu kufikia matumizi ya chini kabisa ya nguvu.
Kigeuzi cha Analogi hadi Dijitali
Ikiwa imewezeshwa, ADC itawezeshwa kwa njia zote za kulala. Ili kuokoa nguvu, ADC inapaswa kuzimwa kabla ya kuingia katika hali yoyote ya kulala. Wakati ADC imezimwa na kuwashwa tena, ubadilishaji unaofuata utakuwa uongofu uliopanuliwa. Rejea "Analog to Digital Converter" kwenye ukurasa wa 122 kwa maelezo juu ya operesheni ya ADC.
Msaidizi wa Analog
Unapoingia kwenye hali ya Uvivu, Kilinganishaji cha Analog inapaswa kuzimwa ikiwa haitumiwi. Unapoingia katika hali ya Kupunguza Kelele ya ADC, Kilinganishaji cha Analog inapaswa kuzimwa. Katika njia zingine za kulala, Kilinganishaji cha Analog imelemazwa kiatomati. Walakini, ikiwa Msaidizi wa Analog amewekwa ili atumie Vol VoltagRejea kama pembejeo, Kilinganisha cha Analog inapaswa kuzimwa katika njia zote za kulala. Vinginevyo, Vol ya ndanitage Marejeleo yatawezeshwa, bila kutegemea hali ya kulala. Rejea "Msaidizi wa Analog" kwenye ukurasa wa 119 kwa maelezo juu ya jinsi ya kusanidi Kilinganisha cha Analog.
Kigunduzi cha kahawia
Ikiwa Kigunduzi cha Kahawia hahitajiki kwenye programu, moduli hii inapaswa kuzimwa. Ikiwa Kigunduzi cha Kahawia kimewezeshwa na Fuses za BODLEVEL, itawezeshwa kwa njia zote za kulala, na kwa hivyo, tumia nguvu kila wakati. Katika njia za kina za kulala, hii itachangia sana matumizi ya jumla ya sasa. Tazama "Utambuzi wa Kahawia tion ”kwenye ukurasa wa 41 na "Programu BOD Lemaza" kwenye ukurasa wa 35 kwa maelezo juu ya jinsi ya kusanidi Kigunduzi cha Kahawia.
Juzuu ya ndanitage Marejeo
Juzuu ya NdanitagMarejeleo yatawezeshwa inapohitajika na Ugunduzi wa Kahawia, Msaidizi wa Analog au ADC. Ikiwa moduli hizi zimelemazwa kama ilivyoelezwa katika sehemu zilizo hapo juu, vol ya ndanitagrejeleo litazimwa na halitatumia nguvu. Inapowashwa tena, mtumiaji lazima aruhusu rejea ianze kabla ya pato kutumiwa. Ikiwa kumbukumbu imewekwa katika hali ya kulala, pato linaweza kutumika mara moja. Rejea “Juzuu ya Ndanitage Marejeo ”kwenye ukurasa wa 42 kwa maelezo juu ya wakati wa kuanza.
Kipima saa cha Watchdog
Ikiwa Timer Timog haihitajiki katika programu, moduli hii inapaswa kuzimwa. Ikiwa Saa ya Waangalizi imewezeshwa, itawezeshwa kwa njia zote za kulala, na kwa hivyo, tumia nguvu kila wakati. Katika njia za kina za kulala, hii itachangia sana matumizi ya jumla ya sasa. Rejea "Saa ya Waangalizi" kwenye ukurasa wa 42 kwa maelezo juu ya jinsi ya kusanidi kipima muda cha mwangalizi.
Pini za Bandari
Unapoingiza hali ya usingizi, pini zote za mlango zinapaswa kusanidiwa ili kutumia nishati ya kiwango cha chini zaidi. Jambo muhimu zaidi ni basi kuhakikisha kwamba hakuna pini zinazoendesha mizigo ya kupinga. Katika hali za usingizi ambapo saa ya I/O (clkI/O) na saa ya ADC (clkADC) zimesimamishwa, vibafa vya ingizo vya kifaa vitazimwa. Hii inahakikisha kuwa hakuna nguvu zinazotumiwa
na mantiki ya pembejeo wakati hauhitajiki. Katika visa vingine, mantiki ya kuingiza inahitajika kwa kugundua hali za kuamka, na
basi itawezeshwa. Rejea sehemu "Ingizo la dijiti Wezesha na Njia za Kulala" kwenye ukurasa wa 57 kwa maelezo ambayo pini zimewezeshwa. Iwapo bafa ya ingizo imewashwa na mawimbi ya ingizo yakiachwa ikielea au kuwa na kiwango cha mawimbi ya analogi karibu na VCC/2, bafa ya ingizo itatumia nguvu nyingi.
Kwa pini za pembejeo za analogi, bafa ya pembejeo ya dijiti inapaswa kuzimwa kila wakati. Kiwango cha mawimbi ya analogi karibu na VCC/2 kwenye pini ya ingizo kinaweza kusababisha mkondo mkubwa hata katika hali amilifu. Viakio vya kidijitali vya ingizo vinaweza kuzimwa kwa kuandikia Sajili ya Kuzima Uingizaji wa Dijiti (DIDR0). Rejea "DIDR0 - Ingizo la Dijiti Lemaza Sajili 0" kwenye ukurasa wa 121 kwa maelezo.
Sajili Maelezo
MCUCR - Usajili wa Udhibiti wa MCU
Rejista ya Udhibiti wa MCU ina vifungu vya kudhibiti usimamizi wa nguvu.
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODI | PUD | SE | SM1 | SM0 | MWILI | ISC01 | ISC00 | MCUCR |
Soma/Andika | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Kidogo 7 - BODS: BOD Kulala
Utendaji wa afya ya BOD inapatikana katika vifaa vingine, tu. Tazama "Mapungufu" kwenye ukurasa wa 36.
Ili kulemaza BOD wakati wa kulala (tazama Jedwali 7-1 kwenye ukurasa wa 34) BODS kidogo lazima iandikwe kwa mantiki moja. Hii inadhibitiwa na mlolongo uliopangwa na kuwezesha kidogo, BODSE katika MCUCR. Kwanza, BODS na BODSE lazima ziwekwe moja. Pili, ndani ya mizunguko minne ya saa, BODS lazima iwekwe moja na BODSE lazima iwekwe sifuri. Kidogo cha BODS kinafanya kazi mzunguko wa saa tatu baada ya kuweka. Maagizo ya kulala lazima yatekelezwe wakati BODS inafanya kazi ili kuzima BOD kwa hali halisi ya kulala. Kidogo cha BODS husafishwa kiatomati baada ya mizunguko mitatu ya saa.
Katika vifaa ambavyo Kulala BOD haijatekelezwa kidogo hii haitumiki na itasoma sifuri kila wakati.
Kidogo 5 - SE: Kulala Wezesha
Biti ya SE lazima iandikwe kwa mantiki ya kwanza ili kufanya MCU iingie katika hali ya usingizi wakati maagizo ya SLEEP yanatekelezwa. Ili kuzuia MCU kuingia katika hali ya kulala isipokuwa iwe ni madhumuni ya mtayarishaji programu, inashauriwa kuandika kipengee cha Wezesha Kulala (SE) kwa moja kabla ya utekelezaji wa maagizo ya KULALA na kuifuta mara tu baada ya kuamka.
Biti 4: 3 - SM [1: 0]: Njia ya Kulala Chagua Bits 1 na 0
Biti hizi huchagua kati ya njia tatu za kulala zinazopatikana kama inavyoonekana katika Jedwali 7-2.
Jedwali 7-2. Chagua Njia ya Kulala
SM1 | SM0 | Hali ya Kulala |
0 | 0 | Bila kufanya kitu |
0 | 1 | Kupunguza Kelele za ADC |
1 | 0 | Kupunguza nguvu |
1 | 1 | Imehifadhiwa |
Kidogo 2 - BODSE: Kulala kwa BOD kuwezesha
Utendaji wa afya ya BOD inapatikana katika vifaa vingine, tu. Tazama "Mapungufu" kwenye ukurasa wa 36.
Kidogo cha BODSE huwezesha uwekaji wa udhibiti mdogo wa BODS, kama ilivyoelezwa kwenye maelezo ya BODS kidogo Ulemavu wa BOD unadhibitiwa na mlolongo uliopangwa.
Kidogo hiki hakitumiki katika vifaa ambapo programu BOD imezima haijatekelezwa na itasomwa kama sifuri katika vifaa hivyo.
PRR - Daftari ya Kupunguza Umeme
Rejista ya Kupunguza Umeme hutoa njia ya kupunguza matumizi ya nguvu kwa kuruhusu sigara za saa za pembeni kuzimwa.
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Soma/Andika | R | R | R | R | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7: 4 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Kidogo 3 - PRTIM1: Kipunguzo cha Kupunguza Nguvu / Kaunta1
Kuandika mantiki moja kwa hii kuzima moduli ya Timer / Counter1. Wakati wa Timer / Counter1 inavyowezeshwa, operesheni itaendelea kama kabla ya kuzima.
Kidogo 2 - PRTIM0: Kipunguzo cha Kupunguza Nguvu / Kaunta0
Kuandika mantiki moja kwa hii kuzima moduli ya Timer / Counter0. Wakati wa Timer / Counter0 inavyowezeshwa, operesheni itaendelea kama kabla ya kuzima.
Kidogo 1 - PRUSI: Kupunguza Nguvu USI
Kuandika mantiki kwa hii kidogo kunazima USI kwa kusimamisha saa kwa moduli. Wakati wa kuamka USI tena, USI inapaswa kuanza tena ili kuhakikisha operesheni inayofaa.
Kidogo 0 - PRADC: Kupunguza Umeme ADC
Kuandika mantiki kwa hii kidogo huifunga ADC. ADC lazima imelemazwa kabla ya kuzimwa. Kumbuka kuwa saa ya ADC pia inatumiwa na sehemu zingine za kulinganisha analog, ambayo inamaanisha kwamba kulinganisha analogue haiwezi kutumika wakati kidogo hii iko juu.
Udhibiti wa Mfumo na Upya
Kuweka upya AVR
Wakati wa kuweka upya, Sajili zote za I / O zimewekwa kwa maadili yao ya awali, na programu huanza kutekeleza kutoka kwa Rudisha Vecor. Maagizo yaliyowekwa kwenye Rudisha Vector lazima iwe RJMP - Rukia ya Ndugu - maagizo kwa utaratibu wa utunzaji wa upya. Ikiwa mpango hauwezeshi chanzo cha kukatiza, Vectors za Kukatiza hazitumiwi, na nambari ya programu ya kawaida inaweza kuwekwa katika maeneo haya. Mchoro wa mzunguko katika Kielelezo 8-1 inaonyesha mantiki ya kuweka upya. Vielelezo vya umeme vya mizunguko ya kuweka upya hutolewa ndani "Sifa za Mfumo na Upya" kwenye ukurasa wa 165.
Kielelezo 8-1 Weka upya Mantiki
Bandari za I / O za AVR zinawekwa upya mara moja kwa hali yao ya asili wakati chanzo cha kuweka upya kinafanyika. Hii haihitaji chanzo chochote cha saa kufanya kazi.
Baada ya vyanzo vyote vya kuweka upya kutotumika, kaunta ya kuchelewesha imeombwa, ikinyoosha kuweka upya ndani. Hii inaruhusu nguvu kufikia kiwango thabiti kabla ya operesheni ya kawaida kuanza. Muda wa kumaliza muda wa kaunta ya kuchelewesha hufafanuliwa na mtumiaji kupitia Futa za SUT na CKSEL. Chaguzi tofauti za kipindi cha kuchelewesha zinawasilishwa ndani “Saa Vyanzo ”kwenye ukurasa wa 25.
Weka upya Vyanzo
ATtiny25 / 45/85 ina vyanzo vinne vya kuweka upya:
Kuweka tena nguvu. MCU inawekwa upya wakati usambazaji voltage iko chini ya kiwango cha Kuweka Upya wa Kuwasha (VPOT).
Upya wa nje. MCU inarejeshwa wakati kiwango cha chini kinapatikana kwenye pini ya RESET kwa muda mrefu kuliko urefu wa kiwango cha chini cha kunde.
Rudisha Waangalizi. MCU inarejeshwa wakati kipindi cha Kipima saa cha Watazamaji kinamalizika na Mtazamaji amewezeshwa
Rudisha nje ya hudhurungi. MCU inawekwa upya wakati usambazaji voltage VCC iko chini ya kiwango cha Kuweka Upya kwa Brown-out (VBOT) na Kigunduzi cha Brown-out kimewashwa.
Kuweka tena nguvu
Pigo la Power-on Reset (POR) hutengenezwa na mzunguko wa kugundua wa On-chip. Kiwango cha kugundua kinafafanuliwa katika "Sys- tem na Rudisha Tabia ”kwenye ukurasa wa 165. POR huwashwa wakati wowote VCC iko chini ya kiwango cha ugunduzi. Mzunguko wa POR unaweza kutumika kuanzisha Uwekaji Upya wa Kuanzisha, na pia kugundua kutofaulu kwa usambazaji wa usambazaji.tage.
Mzunguko wa Power-on Reset (POR) unahakikisha kuwa kifaa kimewekwa upya kutoka kwa Power-on. Kufikia kizingiti cha Power-on Reset voltage huomba kaunta ya kuchelewa, ambayo huamua muda ambao kifaa kinawekwa katika UPYA baada ya VCC kupanda. Ishara ya RESET imewashwa tena, bila kuchelewa, wakati VCC inapungua chini ya kiwango cha kutambua.
Kielelezo 8-2. Anzisha MCU, WEKA UPYA Imefungwa kwa VCC
WEKA UPYA WA NDANI
Kielelezo 8-3. Kuanzisha MCU, WEKA UPYA Imepanuliwa Nje
Upya wa nje
Upyaji wa nje unatengenezwa na kiwango cha chini kwenye pini ya RESET ikiwa imewezeshwa. Weka mipigo mirefu zaidi ya upana wa kiwango cha chini cha kunde (tazama "Sifa za Mfumo na Upya" kwenye ukurasa wa 165) itazalisha upya, hata kama saa haifanyi kazi. Kunde fupi hazihakikishiwi kutengeneza upya. Wakati ishara inayotumika inafikia Upya wa Kizingiti Voltage – VRST – kwa ukingo wake chanya, kaunta ya kuchelewa huanzisha MCU baada ya Muda wa Kuisha kuisha.
Kielelezo 8-4. Upya wa Nje Wakati wa Uendeshaji
Ugunduzi wa kahawia
ATtiny25/45/85 ina mzunguko wa On-chip Brown-out Detection (BOD) kwa ajili ya kufuatilia kiwango cha VCC wakati wa operesheni kwa kulinganisha na kiwango cha trigger fasta. Kiwango cha kichochezi cha BOD kinaweza kuchaguliwa na Fusi za BODLEVEL. Kiwango cha kichochezi kina hysteresis ili kuhakikisha Utambuzi wa Brown-out bila spike. Msisimko kwenye kiwango cha ugunduzi unapaswa kufasiriwa kama VBOT+ = VBOT + VHYST/2 na VBOT- = VBOT – VHYST/2.
Wakati BOD imewashwa, na VCC hupungua hadi thamani chini ya kiwango cha kichochezi (VBOT-in Kielelezo 8-5), Uwekaji Upya wa Brown-out huwashwa mara moja. Wakati VCC inapoongezeka juu ya kiwango cha kichochezi (VBOT+ in Kielelezo 8-5), kaunta ya kuchelewa huanzisha MCU baada ya Muda wa Kuisha tTOUT kuisha.
Saketi ya BOD itagundua tu kushuka kwa VCC ikiwa voltage hukaa chini ya kiwango cha kichochezi kwa muda mrefu zaidi ya tBOD iliyotolewa "Sifa za Mfumo na Upya" kwenye ukurasa wa 165.
Rudisha Waangalizi
Wakati Mlinzi anapoisha, itatoa mpigo mfupi wa kuweka upya wa muda wa mzunguko wa CK. Kwenye ukingo unaoanguka wa mpigo huu, kipima muda kinaanza kuhesabu Muda wa Kuisha tTOUT. Rejea "Saa ya Waangalizi" kwenye ukurasa wa 42 kwa maelezo juu ya utendaji wa Saa ya Waangalizi.
Voltage Rejea Wezesha Ishara na Wakati wa Kuanza
Juzuutage kumbukumbu ina wakati wa kuanza ambayo inaweza kuathiri njia inapaswa kutumiwa. Wakati wa kuanza unapewa ndani "Sifa za Mfumo na Upya" kwenye ukurasa wa 165. Ili kuokoa nguvu, kumbukumbu haiwashwa kila wakati. Ufafanuzi umeendelea wakati wa hali zifuatazo:
Wakati BOD imewezeshwa (kwa kupanga BODLEVEL [2: 0] Fuse Bits).
Wakati rejeleo ya bandgap imeunganishwa na Kilinganishaji cha Analog (kwa kuweka ACBG kidogo katika ACSR).
Wakati ADC imewezeshwa.
Kwa hivyo, wakati BOD haijawezeshwa, baada ya kuweka ACBG kidogo au kuwezesha ADC, mtumiaji lazima kila wakati aruhusu rejea ianze kabla ya pato kutoka kwa Analog Comparator au ADC kutumiwa. Ili kupunguza mkusanyiko wa umeme katika hali ya kushuka-chini, mtumiaji anaweza kuepuka masharti matatu hapo juu ili kuhakikisha kuwa rejea imezimwa kabla ya kuingia katika hali ya Power-down.
Kipima saa cha Watchdog
Timer ya Watazamaji imefungwa kutoka kwa On-chip Oscillator ambayo inaendesha kwa 128 kHz. Kwa kudhibiti dalali ya Saa ya Waangalizi, muda wa Kuweka upya wa Waangalizi unaweza kubadilishwa kama inavyoonyeshwa katika Jedwali 8-3 kwenye ukurasa wa 46. WDR - Mtazamaji Rudisha - mafundisho huweka upya Kipima saa cha Waangalizi. Kipima muda cha mwangalizi pia huwekwa upya wakati imelemazwa na wakati Upyaji wa Chip unatokea. Vipindi kumi tofauti vya mzunguko wa saa vinaweza kuchaguliwa kuamua kipindi cha kuweka upya. Ikiwa muda wa kuweka upya unamalizika bila Upyaji mwingine wa Waangalizi, ATtiny25 / 45/85 huweka upya na kutekeleza kutoka kwa Vector Rudisha. Kwa maelezo ya muda kwenye Rudisha Waangalizi, rejea Jedwali 8-3 kwenye ukurasa wa 46.
Timer ya Watazamaji pia inaweza kusanidiwa ili kutengeneza usumbufu badala ya kuweka upya. Hii inaweza kusaidia sana wakati unatumia Kichungi kuamka kutoka kwa Power-down.
Ili kuzuia kulemaza kwa kukusudia kwa Mwangalizi au mabadiliko yasiyokusudiwa ya muda wa kumaliza muda, viwango viwili tofauti vya usalama huchaguliwa na fyuzi WDTON kama inavyoonekana katika Jedwali 8-1 Rejelea "Utaratibu Uliopangwa kwa Mabadiliko ya Mia- uundaji wa Saa ya Waangalizi ”kwenye ukurasa wa 43 kwa maelezo.
Jedwali 8-1. Usanidi wa WDT kama Kazi ya Mipangilio ya Fuse ya WDTON
WDTON | Kiwango cha Usalama | Jimbo la Awali la WDT | Jinsi ya Lemaza WDT | Jinsi ya Kubadilisha Muda wa Muda |
Haijapangiliwa | 1 | Imezimwa | Mlolongo uliopangwa | Hakuna vikwazo |
Imepangwa | 2 | Imewashwa | Imewezeshwa kila wakati | Mlolongo uliopangwa |
Kielelezo 8-7. Kipima saa cha Mlinzi
Utaratibu uliowekwa kwa Wakati wa Kubadilisha Usanidi wa Kipima muda cha Waangalizi
Mlolongo wa kubadilisha usanidi hutofautiana kidogo kati ya viwango viwili vya usalama. Taratibu tofauti zinaelezewa kwa kila ngazi.
Kiwango cha 1 cha Usalama: Katika hali hii, Kipima Muda cha Mlinzi hapo awali kimezimwa, lakini kinaweza kuwezeshwa kwa kuandika kidogo ya WDE kwa moja bila kizuizi chochote. Mfuatano ulioratibiwa unahitajika unapozima Kipima Muda kilichowezeshwa. Ili kuzima Kipima Muda kilichowezeshwa, utaratibu ufuatao lazima ufuatwe:
Katika operesheni hiyo hiyo, andika mantiki moja kwa WDCE na WDE. Mantiki lazima iandikwe kwa WDE kwa chini ya thamani ya awali ya WDE kidogo.
Ndani ya mizunguko minne ya saa, katika operesheni ile ile, andika WDE na WDP bits kama inavyotakiwa, lakini na WDCE imeondolewa.
Kiwango cha 2 cha Usalama: Katika hali hii, Kipima Muda cha Mlinzi huwashwa kila wakati, na sehemu ya WDE itasoma kama moja kila wakati. Mfuatano ulioratibiwa unahitajika wakati wa kubadilisha Muda wa Kuisha kwa Walinzi. Ili kubadilisha Muda wa Kuisha kwa Walinzi, utaratibu ufuatao lazima ufuatwe:
Katika operesheni hiyo hiyo, andika moja ya mantiki kwa WDCE na WDE. Ingawa WDE imewekwa kila wakati, WDE lazima iandikwe kwa moja ili kuanza mlolongo uliopangwa.
Ndani ya mizunguko minne ya saa, katika operesheni ile ile, andika vipande vya WDP kama inavyotakiwa, lakini na WDCE imeondolewa. Thamani iliyoandikwa kwa WDE kidogo haina maana.
Nambari Example
Nambari ifuatayo example inaonyesha mkutano mmoja na kazi moja ya C kwa kuzima WDT. Mzeeample kudhani kuwa usumbufu unadhibitiwa (kwa mfano, kwa kuzuia usumbufu ulimwenguni) ili usumbufu wowote usitokee wakati wa utekelezaji wa kazi hizi.
Kanuni ya Mkutano Example(1) |
WDT_off:
wdr ; Futa WDRF katika MCUSR ldi r16, (0< nje ya MCUSR, r16 ; Andika mantiki moja kwa WDCE na WDE ; Weka mpangilio wa zamani wa daktari ili kuzuia Upyaji wa Waangalizi bila kukusudia katika r16, WDTCR au r16, (1< nje WDTCR, r16 ; Zima WDT ldi r16, (0< nje WDTCR, r16 ret |
C Kanuni Example(1) |
utupu WDT_off(batili)
{ _WDR (); /* Futa WDRF katika MCUSR */ MCUSR = 0x00 /* Andika moja yenye mantiki kwa WDCE na WDE */ WDTCR |= (1< / * Zima WDT * / WDTCR = 0x00; } |
Kumbuka: 1. Tazama “Kanuni Examples ”kwenye ukurasa wa 6.
Sajili Maelezo
MCUSR - Usajili wa Hali ya MCU
Rejista ya Hali ya MCU hutoa habari juu ya chanzo kipi kimesababisha Upyaji wa MCU.
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Soma/Andika | R | R | R | R | R/W | R/W | R/W | R/W |
Thamani ya awali 0 0 0 0 Angalia Maelezo kidogo
Biti 7: 4 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Kidogo 3 - WDRF: Waangalizi Rudisha Bendera
Kidogo hiki kimewekwa ikiwa Mpangilio wa Waangalizi unatokea. Kidogo kinawekwa tena na Upyaji wa Power-on, au kwa kuandika alama ya mantiki kwa bendera.
Kidogo 2 - BORF: Bendera ya Rudisha nje ya Kahawia
Kidogo hiki kinawekwa ikiwa Upyaji wa Brown-out unatokea. Kidogo huwekwa upya na Upyaji wa Power-on, au kwa kuandika alama ya mantiki kwa bendera.
Kidogo 1 - EXTRF: Bendera ya Rudisha nje
Kidogo hiki kinawekwa ikiwa Upyaji wa nje unatokea. Kidogo huwekwa upya na Upyaji wa Power-on, au kwa kuandika alama ya mantiki kwa bendera.
Kidogo 0 - PORF: Rudisha Rudisha Bendera
Kidogo hiki kinawekwa ikiwa Upyaji wa Power-on unatokea. Kidogo huwekwa upya tu kwa kuandika alama ya mantiki kwa bendera.
Ili kutumia Bendera za Rudisha kutambua hali ya kuweka upya, mtumiaji anapaswa kusoma na kisha kuweka upya MCUSR mapema iwezekanavyo katika programu. Ikiwa rejista imefutwa kabla ya upya mwingine kutokea, chanzo cha kuweka upya kinaweza kupatikana kwa kuchunguza Bendera za Rudisha.
WDTCR - Daftari la Kudhibiti Timer ya Watazamaji
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Soma/Andika | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Kidogo cha 7 - WDIF: Bendera ya Kukatiza Muda wa Kukatiza
Kidogo hiki huwekwa wakati wa kumaliza muda unatokea kwenye Kipima muda cha Mwangalizi na Kipima muda cha Kuangalia kinasanidiwa kukatiza. WDIF inafutwa na vifaa wakati wa kutekeleza vector inayoshughulika ya kushughulikia. Vinginevyo, WDIF inafutwa kwa kuandika mantiki moja kwa bendera. Wakati I-bit katika SREG na WDIE imewekwa, Usumbufu wa Muda wa Watazamaji unatekelezwa.
Kidogo cha 6 - WDIE: Usumbufu wa Muda wa Watazamaji Wezesha
Kidogo hiki kikiandikiwa moja, WDE inafutwa, na I-bit kwenye Sajili ya Hali imewekwa, Kukatizwa kwa Watazamaji wa Muda wa Watazamaji kunawezeshwa. Katika hali hii usumbufu unaolingana unafanywa badala ya kuweka upya ikiwa muda wa muda katika kipindi cha Watazamaji unatokea.
Ikiwa WDE imewekwa, WDIE husafishwa kiatomati na vifaa wakati kumaliza muda kunatokea. Hii ni muhimu kwa kuweka usalama wa Mtazamaji Rudisha usalama wakati unatumia usumbufu. Baada ya kitambulisho cha WDIE kufutwa, wakati unaofuata utatoa usanidi upya. Ili kuzuia Upyaji wa Waangalizi, WDIE lazima iwekwe kila baada ya usumbufu.
Jedwali 8-2. Usanidi wa Kipima saa cha Watchdog
WDE | WDIE | Jimbo la Timer la Waangalizi | Hatua juu ya Muda wa Kuisha |
0 | 0 | Imesimamishwa | Hakuna |
0 | 1 | Kukimbia | Katiza |
1 | 0 | Kukimbia | Weka upya |
1 | 1 | Kukimbia | Katiza |
Kidogo 4 - WDCE: Mabadiliko ya Waangalizi Wezesha
Kidogo hiki lazima kiweke wakati WDE kidogo imeandikwa kwa mantiki sifuri. Vinginevyo, Mtazamaji hatazimwa. Mara baada ya kuandikiwa moja, vifaa vitaondoa kidogo baada ya mizunguko minne ya saa. Rejelea maelezo ya kipande cha WDE kwa utaratibu wa kuzima wa Waangalizi. Kidogo hiki lazima pia kiweke wakati wa kubadilisha biti za daktari. Tazama “Utaratibu Uliopangwa kwa Kubadilisha Usanidi wa Saa ya Waangalizi ”kwenye ukurasa wa 43.
Kidogo 3 - WDE: Mtazamaji Wezesha
Wakati WDE imeandikwa kwa mantiki moja, Timer ya Kuangalia inawezeshwa, na ikiwa WDE imeandikwa kwa mantiki sifuri, kazi ya Timd ya Watazamaji imezimwa. WDE inaweza kusafishwa tu ikiwa WDCE kidogo ina kiwango cha mantiki. Ili kulemaza kipima muda cha mwangalizi wa kuona, utaratibu ufuatao lazima ufuatwe
Katika operesheni hiyo hiyo, andika mantiki moja kwa WDCE na WDE. Mantiki lazima iandikwe kwa WDE ingawa imewekwa moja kabla ya operesheni ya kuzima kuanza.
Ndani ya mizunguko minne ya saa, andika mantiki 0 kwa WDE. Hii inalemaza Mtazamaji.
Katika kiwango cha 2 cha usalama, haiwezekani kulemaza kipima muda cha mwangalizi, hata na hesabu iliyoelezewa hapo juu. Tazama "Utaratibu Uliopangwa kwa Wakati wa Kubadilisha Usanidi wa Saa ya Waangalizi" kwenye ukurasa wa 43.
Katika kiwango cha usalama 1, WDE imeangaziwa na WDRF katika MCUSR. Tazama "MCUSR - Usajili wa Hali ya MCU" kwenye ukurasa wa 44 kwa maelezo ya WDRF. Hii inamaanisha kuwa WDE imewekwa kila wakati WDRF imewekwa. Ili kufuta WDE, WDRF lazima ifutwe kabla ya kulemaza Mtazamaji na utaratibu ulioelezwa hapo juu. Sifa hii inahakikisha usanidi mwingi wakati wa hali inayosababisha kutofaulu, na kuanza salama baada ya kutofaulu.
Kumbuka: Ikiwa kipima saa cha mlinzi hakitatumika katika programu, ni muhimu kupitia utaratibu wa kulemaza ulinzi katika uanzishaji wa kifaa. Ikiwa Watchdog imewezeshwa kwa bahati mbaya, kwa mfanoampkwa kutumia pointer iliyokimbia au hali ya hudhurungi, kifaa kitawekwa upya, ambayo itasababisha upya mpya wa mwangalizi. Ili kuepusha hali hii, programu ya programu inapaswa kusafisha kila siku bendera ya WDRF na udhibiti wa WDE kidogo katika utaratibu wa uanzishaji.
Vipindi 5, 2: 0 - WDP [3: 0]: Mwangalizi wa Vipima muda wa 3, 2, 1, na 0
Vipande vya WDP [3: 0] huamua Kiti cha saa cha Waangalizi kinasimamisha wakati kipima muda cha Watazamaji kimewezeshwa. Thamani tofauti za kukokotoa na vipindi vyao vya muda unaolingana vinaonyeshwa katika Jedwali 8-3.
Jedwali 8-3. Chagua Kipima Muda cha Kipima Muda
WDP3 | WDP2 | WDP1 | WDP0 | Idadi ya Mizunguko ya Oscillator ya WDT | Muda wa Kawaida wa Kuisha kwa VCC = 5.0V |
0 | 0 | 0 | 0 | Mzunguko wa 2K (2048) | 16 ms |
0 | 0 | 0 | 1 | Mzunguko wa 4K (4096) | 32 ms |
0 | 0 | 1 | 0 | Mzunguko wa 8K (8192) | 64 ms |
0 | 0 | 1 | 1 | Mzunguko wa 16K (16384) | 0.125 s |
0 | 1 | 0 | 0 | Mzunguko wa 32K (32764) | 0.25 s |
0 | 1 | 0 | 1 | Mzunguko wa 64K (65536) | 0.5 s |
0 | 1 | 1 | 0 | Mzunguko wa 128K (131072) | 1.0 s |
0 | 1 | 1 | 1 | Mzunguko wa 256K (262144) | 2.0 s |
1 | 0 | 0 | 0 | Mzunguko wa 512K (524288) | 4.0 s |
1 | 0 | 0 | 1 | Mzunguko wa 1024K (1048576) | 8.0 s |
Jedwali 8-3. Uteuzi wa Awali wa Kipima Muda cha Watchdog (Inaendelea)
WDP3 | WDP2 | WDP1 | WDP0 | Idadi ya Mizunguko ya Oscillator ya WDT | Muda wa Kawaida wa Kuisha kwa VCC = 5.0V |
1 | 0 | 1 | 0 | Imehifadhiwa(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Kumbuka: 1. Ikichaguliwa, mojawapo ya mipangilio halali iliyo chini ya 0b1010 itatumika.
Usumbufu
Sehemu hii inaelezea maelezo ya utunzaji wa usumbufu kama ilivyofanywa katika ATtiny25 / 45/85. Kwa ufafanuzi wa jumla wa utunzaji wa usumbufu wa AVR, rejea "Weka upya na Usumbufu Ushughulikiaji" kwenye ukurasa wa 12.
Kukatiza Vectors katika ATtiny25 / 45/85
Vipimo vya usumbufu vya ATtiny25 / 45/85 vimeelezewa katika Jedwali 9-1chini.
Jedwali 9-1. Weka upya na Ukatize Vekta
Vector Na. | Anwani ya Programu | Chanzo | Kukatisha Ufafanuzi |
1 | 0x0000 | WEKA UPYA | Pini ya nje, Rudisha Power, Rudisha Brown-out, Rudisha Waangalizi |
2 | 0x0001 | INT0 | Ombi la Kukatizwa kwa nje 0 |
3 | 0x0002 | PCINT0 | Siri Badilisha Ombi la Kukatiza 0 |
4 | 0x0003 | TIMER1_COMPA | Timer / Counter1 Linganisha Mechi A |
5 | 0x0004 | TIMER1_OVF | Timer / Counter1 Kufurika |
6 | 0x0005 | TIMER0_OVF | Timer / Counter0 Kufurika |
7 | 0x0006 | EE_RDY | EEPROM Tayari |
8 | 0x0007 | ANA_COMP | Msaidizi wa Analog |
9 | 0x0008 | ADC | Uongofu wa ADC Umekamilika |
10 | 0x0009 | TIMER1_COMPB | Timer / Counter1 Linganisha Mechi B |
11 | 0x000A | TIMER0_COMPA | Timer / Counter0 Linganisha Mechi A |
12 | 0x000B | TIMER0_COMPB | Timer / Counter0 Linganisha Mechi B |
13 | 0x000C | WDT | Muda wa Watazamaji umekwisha |
14 | 0x000D | USI_START | USI ANZA |
15 | 0x000E | USI_OVF | USI kufurika |
Ikiwa mpango hauwezeshi chanzo cha kukatiza, Vectors za Kukatiza hazitumiwi, na nambari ya programu ya kawaida inaweza kuwekwa katika maeneo haya.
Usanidi wa kawaida na wa jumla wa kusumbua anwani za vector katika ATtiny25 / 45/85 imeonyeshwa kwenye mpango wa zamaniample chini.
Kanuni ya Mkutano Example | ||
.org 0x0000 | Weka anwani ya inayofuata | kauli |
RJmp Rudisha | ; Anwani 0x0000 | |
rjmp INT0_ISR | ; Anwani 0x0001 | |
rjmp PCINT0_ISR | ; Anwani 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Anwani 0x0003 | |
rjmp TIM1_OVF_ISR | ; Anwani 0x0004 | |
rjmp TIM0_OVF_ISR | ; Anwani 0x0005 | |
rjmp EE_RDY_ISR | ; Anwani 0x0006 | |
rjmp ANA_COMP_ISR | ; Anwani 0x0007 | |
rjmp ADC_ISR | ; Anwani 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Anwani 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Anwani 0x000A | |
rjmp TIM0_COMPB_ISR | ; Anwani 0x000B | |
rjmp WDT_ISR | ; Anwani 0x000C | |
rjmp USI_START_ISR | ; Anwani 0x000D | |
rjmp USI_OVF_ISR | ; Anwani 0x000E | |
Rudi: | ; Programu kuu kuanza | |
; Anwani 0x000F | ||
… |
Kumbuka: Tazama “Kanuni Examples ”kwenye ukurasa wa 6.
Usumbufu wa nje
Usumbufu wa nje unasababishwa na pini ya INT0 au pini yoyote ya PCINT [5: 0]. Angalia kuwa, ikiwa imewezeshwa, usumbufu utasababisha hata kama pini za INT0 au PCINT [5: 0] zimesanidiwa kama matokeo. Kipengele hiki kinatoa njia ya kutengeneza programu kukatiza. Mabadiliko ya pini hukatisha PCI itasababisha ikiwa PCINT yoyote [5: 0] imewezeshwa kwa toggles. Udhibiti wa Usajili wa PCMSK ambayo pini zinachangia mabadiliko ya pini hukatizwa. Usumbufu wa mabadiliko ya pini kwenye PCINT [5: 0] hugunduliwa bila usawa. Hii inamaanisha kuwa usumbufu huu unaweza kutumika kuamka sehemu pia kutoka kwa njia za kulala zaidi ya hali ya Uvivu.
Usumbufu wa INT0 unaweza kusababishwa na kushuka au kuongezeka kwa makali au kiwango cha chini. Hii imewekwa kama inavyoonyeshwa katika vipimo vya Rejista ya Udhibiti wa MCU - MCUCR. Usumbufu wa INT0 utakapowezeshwa na kusanidiwa kama kiwango kilichochochewa, usumbufu utasababisha kwa muda mrefu kama pini inashikiliwa chini. Kumbuka kuwa utambuzi wa kushuka kwa kasi au kupanda kwa kasi kwenye INT0 inahitaji uwepo wa saa ya I / O, iliyoelezewa katika "Mifumo ya Saa na Usambazaji wao" kwenye ukurasa wa 23.
Kukatizwa kwa kiwango cha chini
Usumbufu wa kiwango cha chini kwenye INT0 hugunduliwa bila usawa. Hii inamaanisha kuwa usumbufu huu unaweza kutumika kuamsha sehemu pia kutoka kwa njia za kulala zaidi ya hali ya Uvivu. Saa ya I / O imesimamishwa katika njia zote za kulala isipokuwa hali ya Uvivu.
Kumbuka kwamba ikiwa kiwango kilichoanzishwa kitatumika kuamsha kutoka kwa Kuzima chini, ni lazima kiwango kinachohitajika kishikiliwe kwa muda wa kutosha ili MCU ikamilishe kuamsha ili kuamsha ukatizaji wa kiwango. Ikiwa kiwango kitatoweka kabla ya mwisho wa Muda wa Kuanzisha, MCU bado itaamka, lakini hakuna usumbufu utakaotolewa. Muda wa kuanza unafafanuliwa na Fuse za SUT na KCSEL kama ilivyofafanuliwa katika "Chaguzi za Mfumo wa Saa na Saa" kwenye ukurasa wa 23.
Ikiwa kiwango cha chini kwenye pini ya kukatiza kimeondolewa kabla ya kifaa kuamka basi utekelezaji wa programu hautaelekezwa kwa utaratibu wa usumbufu wa huduma lakini endelea kutoka kwa maagizo kufuatia amri ya SLEEP.
Pini Badilisha Muda wa Kukatiza
MzeeampWakati wa kukatika kwa mabadiliko ya pini unaonyeshwa katika Kielelezo 9-1.
Sajili Maelezo
MCUCR - Usajili wa Udhibiti wa MCU
Rejista ya Kudhibiti Usumbufu wa Nje ina vidhibiti vya kudhibiti usumbufu wa kudhibiti hisia.
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODI | PUD | SE | SM1 | SM0 | MWILI | ISC01 | ISC00 | MCUCR |
Soma/Andika | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 1: 0 - ISC0 [1: 0]: Kukatiza Udhibiti wa Hisia 0 Bit 1 na Bit 0
Usumbufu wa nje umeamilishwa na pini ya nje INT0 ikiwa SREG I-bendera na kinyago cha usumbufu kinacholingana kimewekwa. Kiwango na kingo kwenye pini ya nje ya INT0 ambayo inamsha usumbufu hufafanuliwa katika Jedwali 9-2. Thamani kwenye pini ya INT0 ni sampiliongozwa kabla ya kugundua kingo. Ikiwa kukatiza kwa makali au kugeuza kumechaguliwa, kunde ambazo zinadumu zaidi ya saa moja zitasumbua. Kunde fupi hazihakikishiwi kutengeneza usumbufu. Ikiwa usumbufu wa kiwango cha chini umechaguliwa, kiwango cha chini lazima kifanyike hadi kukamilika kwa maagizo ya sasa ya kutekeleza ili kukatiza.
Jedwali 9-2. Katiza 0 Udhibiti wa Hisia
ISC01 | ISC00 | Maelezo |
0 | 0 | Kiwango cha chini cha INT0 hutoa ombi la kukatiza. |
0 | 1 | Mabadiliko yoyote ya kimantiki kwenye INT0 hutoa ombi la kukatiza. |
1 | 0 | Makali ya kuanguka ya INT0 hutoa ombi la kukatiza. |
1 | 1 | Makali ya kupanda kwa INT0 hutoa ombi la kukatiza. |
GIMSK - Usajili wa jumla wa Kukatisha Mask
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
Soma/Andika | R | R/W | R/W | R | R | R | R | R | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7, 4: 0 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Kidogo cha 6 - INT0: Ombi la kukatizwa kwa nje 0 Wezesha
Wakati kitita cha INT0 kimewekwa (moja) na I-bit kwenye Sajili ya Hali (SREG) imewekwa (moja), usumbufu wa siri wa nje umewezeshwa. Usumbufu wa Udhibiti wa Hisia Shughuli kwenye pini itasababisha ombi la kusumbua hata ikiwa INT0 imesanidiwa kama pato. Usumbufu unaolingana wa Ombi la Kukatiza la nje 1 unatekelezwa kutoka kwa Vector ya Usumbufu wa INT0.
Kidogo 5 - PCIE: Kubadilisha Usumbufu wa Kubadilisha Wezesha
Wakati kidogo ya PCIE imewekwa (moja) na I-bit kwenye Sajili ya Hali (SREG) imewekwa (moja), usumbufu wa mabadiliko ya pini umewezeshwa. Mabadiliko yoyote kwenye pini yoyote iliyowezeshwa ya PCINT [5: 0] itasababisha usumbufu. Usumbufu unaolingana wa Ombi la Usumbufu wa Mabadiliko ya Pin unatekelezwa kutoka kwa Vector ya Usumbufu wa PCI. Pini [5: 0] pini zinawezeshwa kivyake na Usajili wa PCMSK0.
GIFR - Usajili wa Bendera ya Jumla ya Kukatisha
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | ZAWADI |
Soma/Andika | R | R/W | R/W | R | R | R | R | R | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7, 4: 0 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Kidogo cha 6 - INTF0: Bendera ya Usumbufu wa nje 0
Wakati badiliko au mantiki inabadilika kwenye pini ya INT0 inasababisha ombi la kusumbua, INTF0 inakuwa imewekwa (moja). Ikiwa I-bit katika SREG na INT0 kidogo kwenye GIMSK imewekwa (moja), MCU itaruka kwa Vector inayofanana ya Kukatiza. Bendera husafishwa wakati utaratibu wa usumbufu unatekelezwa. Vinginevyo, bendera inaweza kusafishwa kwa kuiandikia mantiki. Bendera hii husafishwa kila wakati INT0 inaposanidiwa kama usumbufu wa kiwango.
Kidogo 5 - PCIF: Pindua Badilisha Bendera ya Kukatiza
Wakati mabadiliko ya kimantiki kwenye pini yoyote ya PCINT [5: 0] inasababisha ombi la kusumbua, PCIF inakuwa imewekwa (moja). Ikiwa I-bit katika SREG na PCIE kidogo kwenye GIMSK imewekwa (moja), MCU itaruka kwa Vector inayofanana ya Kukatiza. Bendera husafishwa wakati utaratibu wa usumbufu unatekelezwa. Vinginevyo, bendera inaweza kusafishwa kwa kuiandikia mantiki.
PCMSK - Pin Change Mask Register
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Soma/Andika | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7: 6 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Bits 5: 0 - PCINT [5: 0]: Kubadilisha Pin Wezesha Mask 5: 0
Kila PCINT [5: 0] kidogo huchagua ikiwa usumbufu wa mabadiliko ya pini umewezeshwa kwenye pini inayolingana ya I / O. Ikiwa PCINT [5: 0] imewekwa na PCIe kidogo kwenye GIMSK imewekwa, usumbufu wa mabadiliko ya pini umewezeshwa kwenye pini inayolingana ya I / O. Ikiwa PCINT [5: 0] imesafishwa, ubadilishe pini usumbue kwenye pini inayolingana ya I / O imezimwa.
I/O Bandari
Utangulizi
Bandari zote za AVR zina utendaji wa kweli wa Soma-Badilisha-Andika wakati unatumiwa kama bandari za I / O za dijiti. Hii inamaanisha kuwa mwelekeo wa pini moja ya bandari inaweza kubadilishwa bila kubadilisha bila kukusudia mwelekeo wa pini nyingine yoyote na maagizo ya SBI na CBI. Vile vile hutumika wakati wa kubadilisha thamani ya gari (ikiwa imesanidiwa kama pato) au kuwezesha / kuzima vipinga-vuta (ikiwa imeundwa kama pembejeo). Kila bafa ya pato ina sifa za gari ya ulinganifu na kuzama kwa juu na uwezo wa chanzo. Dereva ya pini ina nguvu ya kutosha kuendesha maonyesho ya LED moja kwa moja. Pini zote za bandari zina kontena za kuvuta zinazochaguliwa na vol-ugavitage upinzani usiobadilika. Pini zote za I/O zina diodi za ulinzi kwa VCC na Ground kama ilivyoonyeshwa katika Kielelezo 10-1. Rejelea "Tabia za Umeme" kwenye ukurasa wa 161 kwa orodha kamili ya vigezo.
Kielelezo 10-1. I/O Pin Schematic Sawa
Rejista zote na marejeleo kidogo kwenye sehemu hii yameandikwa kwa jumla. Kesi ndogo "x" inawakilisha herufi ya nambari ya bandari, na herufi ndogo "n" inawakilisha nambari kidogo. Walakini, wakati wa kutumia rejista au kitambulisho kidogo katika programu, fomu sahihi lazima itumike. Kwa example, PORTB3 kwa kidogo. 3 katika Port B, hapa imeorodheshwa kwa jumla kama PORTxn. Rejista za I / O za mwili na maeneo ya bit yameorodheshwa katika "Sajili Maelezo" juu ya ukurasa wa 64.
Maeneo matatu ya anwani ya kumbukumbu ya I / O yametengwa kwa kila bandari, moja kila moja kwa Rejista ya Takwimu - PORTx, Sajili ya Uelekezaji wa Takwimu - DDRx, na Pini za Kuingiza Bandari - PINx. Sehemu ya I / O ya Pembejeo ya Bandari inasomwa tu, wakati Rejista ya Takwimu na Sajili ya Uelekezaji wa Takwimu husomwa / kuandika. Walakini, kuandika moja ya mantiki kidogo katika Usajili wa PINx, kutasababisha kugeuzwa kwa kiwango kinacholingana katika Rejista ya Takwimu. Kwa kuongezea, Kidude cha Kuvuta - PUD kidogo katika MCUCR inalemaza kazi ya kuvuta kwa pini zote kwenye bandari zote wakati imewekwa.
Kutumia bandari ya I / O kama General Digital I / O imeelezewa katika "Bandari kama General Digital I / O" kwenye ukurasa wa 53. Pini nyingi za bandari zimechanganywa na kazi mbadala za huduma za pembeni kwenye kifaa. Jinsi kila kazi mbadala inaingiliana na pini ya bandari ilivyoelezewa katika "Kazi Mbadala za Bandari" kwenye ukurasa wa 57. Rejea sehemu za moduli ya mtu binafsi kwa maelezo kamili ya kazi mbadala.
Kumbuka kuwa kuwezesha kazi mbadala ya baadhi ya pini za bandari hakuathiri matumizi ya pini zingine kwenye bandari kama I / O ya dijiti ya jumla.
Bandari kama General Digital I / O
Bandari ni bandari za mwelekeo wa I / O zenye mwelekeo wa kuvuta na hiari za ndani za hiari. Kielelezo 10-2 inaonyesha maelezo ya kazi ya pini moja ya I / O-bandari, hapa inayoitwa Pxn.
Kielelezo 10-2. Jumla ya Dijiti I/O(1)
Kusanidi Pin
Kila pini ya bandari ina bits tatu za usajili: DDxn, PORTxn, na PINxn. Kama inavyoonyeshwa katika "Sajili Maelezo" juu ya ukurasa wa 64, bits za DDxn zinapatikana kwa anwani ya DDRx I / O, bits PORTxn kwenye anwani ya PORTx I / O, na bits za PINxn kwenye anwani ya PINx I / O.
Kidogo cha DDxn katika Sajili ya DDRx huchagua mwelekeo wa pini hii. Ikiwa DDxn imeandikwa mantiki moja, Pxn imewekwa kama pini ya pato. Ikiwa DDxn imeandikwa zero mantiki, Pxn imewekwa kama pini ya kuingiza.
Ikiwa PORTxn imeandikwa mantiki moja wakati pini imesanidiwa kama pini ya kuingiza, kontena la kuvuta linaamilishwa. Ili kuzima kontena la kuvuta, PORTxn inapaswa kuandikwa mantiki sifuri au pini inapaswa kusanidiwa kama pini ya pato. Pini za bandari zimeelezewa mara tatu wakati hali ya kuweka upya inafanya kazi, hata kama hakuna saa zinazotumika.
Ikiwa PORTxn imeandikwa mantiki moja wakati pini imesanidiwa kama pini ya pato, pini ya bandari inaendeshwa juu (moja). Ikiwa PORTxn imeandikwa mantiki sifuri wakati pini imesanidiwa kama pini ya pato, pini ya bandari inaendeshwa chini (sifuri).
Kugeuza pini
Kuandika mantiki moja kwa PINxn kugeuza thamani ya PORTxn, huru kwa thamani ya DDRxn. Kumbuka kuwa maagizo ya SBI yanaweza kutumiwa kugeuza kidonge kimoja kwenye bandari.
Kubadilisha Kati ya Pembejeo na Pato
Wakati wa kubadilisha kati ya jimbo-tatu ({DDxn, PORTxn} = 0b00) na pato la juu ({DDxn, PORTxn} = 0b11), hali ya upatanishi yenye ama kuvuta-up kukiwashwa {DDxn, PORTxn} = 0b01) au kutoa chini ({DDxn, PORTxn} = 0b10) lazima kutokea. Kwa kawaida, hali ya kuwezeshwa kwa kuvuta-up inakubalika kikamilifu, kwa kuwa mazingira ya juu ya kizuizi haitaona tofauti kati ya dereva wa juu mwenye nguvu na kuvuta-up. Ikiwa sivyo, sehemu ya PUD kwenye Sajili ya MCUCR inaweza kuwekwa ili kuzima vivuta-juu vyote kwenye bandari zote.
Kubadilisha kati ya pembejeo na kuvuta na kutoa chini kunazalisha shida hiyo hiyo. Mtumiaji lazima atumie hali tatu ({DDxn, PORTxn} = 0b00) au hali ya juu ya pato ({DDxn, PORTxn} = 0b10) kama hatua ya kati.
Jedwali 10-1 muhtasari wa ishara za kudhibiti kwa thamani ya pini.
Jedwali 10-1. Mipangilio ya Pini ya Bandari
DDxn | PORTxn | PUD
(katika MCUCR) |
I/O | Vuta-juu | Maoni |
0 | 0 | X | Ingizo | Hapana | Jimbo tatu (Hi-Z) |
0 | 1 | 0 | Ingizo | Ndiyo | Pxn itatoa chanzo cha sasa ikiwa ext. vunjwa chini. |
0 | 1 | 1 | Ingizo | Hapana | Jimbo tatu (Hi-Z) |
1 | 0 | X | Pato | Hapana | Pato la Chini (Kuzama) |
1 | 1 | X | Pato | Hapana | Pato la Juu (Chanzo) |
Kusoma Thamani ya Pini
Kujitegemea kwa mpangilio wa Mwelekeo wa Takwimu kidogo DDxn, pini ya bandari inaweza kusomwa kupitia PINxn Daftari kidogo. Kama inavyoonyeshwa katika Kielelezo 10-2, Kidogo cha Daftari la PINxn na latch iliyotangulia hufanya kisawazishi. Hii inahitajika ili kuzuia kutoweka ikiwa pini ya mwili inabadilisha thamani karibu na ukingo wa saa ya ndani, lakini pia inaleta ucheleweshaji. Kielelezo 10-3 inaonyesha mchoro wa saa wa ulandanishi wakati wa kusoma thamani ya pini inayotumika nje. Ucheleweshaji wa juu na wa chini zaidi wa uenezi unaashiria tpd, max na tpd,min mtawalia.
Fikiria kipindi cha saa kinachoanza muda mfupi baada ya ukingo wa kwanza wa saa ya mfumo. Latch imefungwa wakati saa iko chini, na huenda kwa uwazi wakati saa iko juu, kama inavyoonyeshwa na mkoa wenye kivuli wa ishara ya "SYNC LATCH". Thamani ya ishara imefungwa wakati saa ya mfumo inakwenda chini. Imewekwa kwenye Jisajili ya PINxn kwenye kingo nzuri inayofuata ya saa. Kama inavyoonyeshwa na mishale miwili tpd, max na tpd, min, mabadiliko ya ishara moja kwenye pini yatacheleweshwa kati ya ½ na 1½ kipindi cha saa kulingana na wakati wa madai.
Wakati wa kusoma tena programu iliyopewa pini, maagizo ya nop lazima iingizwe kama inavyoonyeshwa katika Kielelezo 10-4. Maagizo ya nje huweka ishara ya "SYNC LATCH" kwenye ukingo mzuri wa saa. Katika kesi hii, kuchelewesha tpd kupitia kisawazishaji ni kipindi cha saa moja ya mfumo.
Nambari ifuatayo example inaonyesha jinsi ya kuweka pini za mlango B 0 na 1 juu, 2 na 3 chini, na kufafanua pini za mlango kutoka 4 hadi 5 kama ingizo na kuvuta juu kwa ajili ya pin 4 ya mlango. Nambari za pini zinazotokana zinasomwa tena, lakini kama ilivyojadiliwa hapo awali, maagizo ya nop yanajumuishwa ili kuweza kusoma tena thamani iliyotolewa hivi majuzi kwa baadhi ya pini.
Kanuni ya Mkutano Example(1) |
…
; Bainisha vivutio na uweke matokeo ya juu ; Bainisha maelekezo ya pini za mlango ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) nje ya PORTB,r16 nje ya DDRB,r17 ; Ingiza nop kwa ulandanishi hapana ; Soma pini za bandari katika r16,PINB … |
Kumbuka: Kwa programu ya kusanyiko, rejista mbili za muda hutumiwa kupunguza muda kutoka kwa kuvuta-ups zimewekwa kwenye pini 0, 1 na 4, mpaka bits za mwelekeo zimewekwa kwa usahihi, kufafanua bit 2 na 3 kama chini na kufafanua upya bits 0 na. 1 kama madereva wa juu wenye nguvu.
C Kanuni Example |
char i isiyotiwa saini;
… /* Bainisha vivutio na uweke matokeo ya juu */ /* Bainisha maelekezo ya pini za mlango */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Ingiza nop kwa maingiliano*/ _NOP (); /* Soma pini za bandari */ i = PINB; … |
Uingizaji wa Dijitali Wezesha na Njia za Kulala
Kama inavyoonyeshwa katika Kielelezo 10-2, ishara ya pembejeo ya dijiti inaweza kuwa clamped chini kwa ingizo la schmitt-trigger. Mawimbi yanayoashiria SLEEP katika mchoro, huwekwa na Kidhibiti cha Kulala cha MCU katika hali ya Kuzima chini ili kuepuka matumizi ya juu ya nishati ikiwa mawimbi fulani ya ingizo yanaachwa yakielea, au kuwa na kiwango cha mawimbi ya analogi karibu na VCC/2.
USINGIZI umezidiwa kwa pini za bandari zilizowezeshwa kama pini za kukatiza za nje. Ikiwa ombi la usumbufu wa nje halijawezeshwa, SLEEP inatumika pia kwa pini hizi. USINGIZI pia umezidiwa na kazi zingine mbadala kama ilivyoelezewa katika "Kazi Mbadala za Bandari" kwenye ukurasa wa 57.
Ikiwa kiwango cha juu cha mantiki ("moja") kipo kwenye pini ya kukatiza ya nje isiyolandanishwa iliyosanidiwa kama "Katiza kwenye Ukingo Unaoinuka, Ukingo Unaoanguka, au Mabadiliko Yoyote ya Kimantiki kwenye Pini" wakati ukatizaji wa nje haujawashwa, Bendera ya Kukatiza kwa Nje inayolingana weka wakati wa kuanza tena kutoka kwa hali ya Kulala iliyotajwa hapo juu, kama clamping katika hali hizi za kulala hutoa mabadiliko ya mantiki yaliyoombwa.
Pini ambazo hazijaunganishwa
Ikiwa pini zingine hazitumiki, inashauriwa kuhakikisha kuwa pini hizi zina kiwango kilichofafanuliwa. Ingawa pembejeo nyingi za dijiti zimelemazwa katika hali ya usingizi mzito kama ilivyoelezewa hapo juu, pembejeo zinazoelea zinapaswa kuepukwa ili kupunguza matumizi ya sasa katika njia zingine zote ambazo pembejeo za dijiti zinawezeshwa (Rudisha, Njia inayotumika na hali ya uvivu).
Njia rahisi zaidi ya kuhakikisha kiwango kilichobainishwa cha pini isiyotumika, ni kuwezesha uvutaji wa ndani. Katika kesi hii, kuvuta-up itazimwa wakati wa kuweka upya. Ikiwa matumizi ya chini ya nguvu wakati wa kuweka upya ni muhimu, inashauriwa kutumia kuvuta nje au kuvuta. Kuunganisha pini ambazo hazijatumika moja kwa moja kwenye VCC au GND haipendekezwi, kwa sababu hii inaweza kusababisha mikondo mingi ikiwa pini itasanidiwa kimakosa kama kitoleo.
Kazi Mbadala za Bandari
Pini nyingi za bandari zina kazi mbadala kwa kuongeza kuwa I / Os ya dijiti ya jumla. Kielelezo 10-5 inaonyesha jinsi pini ya kudhibiti bandari inaashiria kutoka kwa kilichorahisishwa Kielelezo 10-2 inaweza kuzidiwa na kazi mbadala. Ishara zinazodharau zinaweza zisiwepo kwenye pini zote za bandari, lakini takwimu hutumika kama maelezo ya jumla yanayotumika kwa pini zote za bandari katika familia ya AVR microcontroller.
Jedwali 10-2. Maelezo ya Jumla ya Ishara za Kubatilisha kwa Kazi Mbadala
Jina la Ishara | Jina Kamili | Maelezo |
PUOE | Kubatilisha Kivutio Wezesha | Ikiwa ishara hii imewekwa, kuwezesha kuvuta kunadhibitiwa na ishara ya PUOV. Ikiwa ishara hii imeondolewa, kuvuta kunawezeshwa lini
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Vuto la Kubadilisha Ubora | Ikiwa PUOE imewekwa, kuvuta kunawezeshwa / kulemazwa wakati PUOV imewekwa / kusafishwa, bila kujali mpangilio wa bits DDxn, PORTxn, na PUD Register. |
DDOE | Kubatilisha Mwongozo wa Data Wezesha | Ikiwa ishara hii imewekwa, Dereva ya Pato Wezesha inadhibitiwa na ishara ya DDOV. Ikiwa ishara hii imefutwa, dereva wa Pato huwezeshwa na Kidaftari cha DDxn kidogo. |
DDOV | Thamani ya Kupuuza Mwelekeo wa Data | Ikiwa DDOE imewekwa, Dereva ya Pato imewezeshwa / imezimwa wakati DDOV imewekwa / kusafishwa, bila kujali mpangilio wa DDxn Daftari kidogo. |
PVOE | Ubatilishaji wa Thamani ya Bandari Wezesha | Ikiwa ishara hii imewekwa na Dereva ya Pato imewezeshwa, thamani ya bandari inadhibitiwa na ishara ya PVOV. Ikiwa PVOE imefutwa, na Dereva ya Pato imewezeshwa, Thamani ya bandari inadhibitiwa na PORTxn Register kidogo. |
PVOV | Thamani ya Kupuuza Thamani ya Bandari | Ikiwa PVOE imewekwa, thamani ya bandari imewekwa kwa PVOV, bila kujali mpangilio wa PORTxn Register kidogo. |
PTOE | Kubatilisha ubadilishaji wa Bandari Wezesha | Ikiwa PTOE imewekwa, PORTxn Daftari kidogo imegeuzwa. |
DIEOE | Ingizo la Dijitali Washa Kupuuza Kuwasha | Ikiwa kipengee hiki kimewekwa, Uingizaji wa Dijitali umewezeshwa na ishara ya DIEOV. Ikiwa ishara hii imefutwa, Uingizaji wa Dijiti umewekwa na hali ya MCU (Njia ya kawaida, hali ya kulala). |
DIEOV | Ingizo la Dijitali Washa Thamani ya Kubatilisha | Ikiwa DIEOE imewekwa, Ingizo la Dijiti linawezeshwa / limelemazwa wakati DIEOV imewekwa / kusafishwa, bila kujali hali ya MCU (Hali ya kawaida, hali ya kulala). |
DI | Uingizaji wa dijiti | Hii ni Ingizo la Dijiti kwa kazi mbadala. Katika kielelezo, ishara imeunganishwa na pato la kichocheo cha schmitt lakini kabla ya kisawazishaji. Isipokuwa Uingizaji wa Dijiti unatumiwa kama chanzo cha saa, moduli iliyo na kazi mbadala itatumia kisawazishaji chake. |
AIO | Uingizaji / Pato la Analog | Huu ni Uingizaji / Pato la Analog kwenda / kutoka kwa kazi mbadala. Ishara imeunganishwa moja kwa moja kwenye pedi, na inaweza kutumika kwa mwelekeo-mmoja. |
Vifungu vifuatavyo vinaelezea kazi mbadala kwa kila bandari, na zinahusiana na ishara zinazotekelezwa na kazi mbadala. Rejea maelezo mbadala ya kazi kwa maelezo zaidi.
Kazi Mbadala za Bandari B
Pini za Port B zilizo na kazi mbadala zinaonyeshwa katika Jedwali 10-3.
Jedwali 10-3. Bandari B Pini Kazi Mbadala
Pini ya bandari | Kazi Mbadala |
PB5 | ![]() Rudisha: Rudisha Pin dW: debugWIRE I / O ADC0: Kituo cha Kuingiza ADC 0 PCINT5: Usumbufu wa Kubadilisha Pin, Chanzo 5 |
PB4 | XTAL2: Pato la Crystal Oscillator CLKO: Pato la Saa ya Mfumo ADC2: Kituo cha Kuingiza cha ADC 2
OC1B: Timer / Counter1 Linganisha Matokeo ya Mechi B PCINT4: Pin Change Interrupt 0, Chanzo 4 |
PB3 | XTAL1: Crystal Oscillator Ingizo CLKI: Ingizo la Saa ya Nje ADC3: ADC Input Channel 3
OC1B: Timer ya Kukamilisha / Counter1 Linganisha Matokeo ya Mechi B PCINT3: Kubadilisha Pin kuingiliwa 0, Chanzo 3 |
PB2 | SCK: Uingizaji wa Saa ya Saa ADC1: Kituo cha Kuingiza ADC 1
T0: Timer / Counter0 Clock Chanzo USCK: USI Clock (Njia tatu za waya) SCL: USI Clock (Njia mbili za waya) INT0: Usumbufu wa nje 0 Ingizo PCINT2: Kubadilisha Kubadilisha Usumbufu 0, Chanzo 2 |
PB1 | MISO: Pembejeo ya Takwimu ya SPI / Pato la Takwimu ya Watumwa AIN1: Kilinganisha Analog, Kuingiza Hasi OC0B: Timer / Counter0 Linganisha Mechi ya Pato la OC1A: Timer / Counter1 Linganisha Mechi ya Pato YA KUFANYA: Pato la Takwimu la USI (Njia tatu za waya) PCINT1: Kubadilisha Usumbufu wa Pini 0, Chanzo 1 |
PB0 | MOSI :: Pato la Takwimu la SPI / Uingizaji wa Takwimu za Watumwa AIN0: Kilinganisha Analog, Uingizaji Chanya
OC0A: Timer/Counter0 Linganisha Matokeo ya Mechi A OC1A: Nyongeza ya Timer / Counter1 Linganisha Mechi ya Pato la DI: Uingizaji wa Takwimu za USI (Njia Tatu za waya) SDA: Uingizaji wa Takwimu za USI (Njia Mbili za Waya) AREF: Marejeleo ya Analog ya Nje PCINT0: Kubadilisha Kubadilisha Usumbufu 0, Chanzo 0 |
Bandari B, Bit 5 - Rudisha / dW / ADC0 / PCINT5
PANGIA upya: Ingizo la Upyaji wa nje linafanya kazi chini na kuwezeshwa na unprogramming ("1") Fuse RSTDISBL. Pullup imeamilishwa na dereva wa pato na pembejeo ya dijiti imezimwa wakati pini inatumiwa kama pini ya RESET.
dW: Wakati Fuse ya debugWIRE Wezesha (DWEN) imewekwa na bits Lock hazifungwi, mfumo wa debugWIRE ulio ndani ya kifaa lengwa umeamilishwa. Pini ya bandari ya RESET imesanidiwa kama waya-NA (kufungua-kukimbia) pini ya mwelekeo wa I / O iliyo na kuvuta-kuwezeshwa na inakuwa lango la mawasiliano kati ya shabaha na emulator.
ADC0: Kigeuzi cha Analogi hadi Dijitali, Kituo cha 0.
PCINT5: Pindua Badilisha Chanzo cha kukatiza 5.
Bandari B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pin 2. Inatumika kama pini ya saa kwa vyanzo vyote vya saa ya chip isipokuwa calibrateble RC Oscillator ya ndani na saa ya nje. Inapotumiwa kama pini ya saa, pini haiwezi kutumika kama pini ya I / O. Unapotumia calcratator ya ndani ya RC Oscillator au saa ya nje kama vyanzo vya saa ya Chip, PB4 hutumika kama pini ya kawaida ya I / O.
CLKO: Saa ya mfumo inayotengwa inaweza kuwa pato kwenye pini PB4. Saa ya mfumo iliyogawanywa itakuwa pato ikiwa Fuse ya CKOUT imewekwa, bila kujali mipangilio ya PORTB4 na DDB4. Pia itakuwa pato wakati wa kuweka upya.
ADC2: Kigeuzi cha Analogi hadi Dijitali, Kituo cha 2.
OC1B: Pato Linganisha Pato la mechi: Pini ya PB4 inaweza kutumika kama pato la nje kwa Timer / Counter1 Linganisha Mechi B wakati imesanidiwa kama pato (seti ya DDB4). Pini ya OC1B pia ni pato la pato la kazi ya kipima muda cha hali ya PWM.
PCINT4: Pindua Badilisha Chanzo cha kukatiza 4.
Bandari B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Oscillator pin 1. Inatumika kwa vyanzo vyote vya saa ya chip isipokuwa calcrateble ya ndani ya RC oscillator. Inapotumiwa kama pini ya saa, pini haiwezi kutumika kama pini ya I / O.
CLKI: Ingizo la Saa kutoka chanzo cha nje cha saa, ona "Saa ya nje" kwenye ukurasa wa 26.
ADC3: Kigeuzi cha Analogi hadi Dijitali, Kituo cha 3.
OC1B: Pato lililobadilishwa Linganisha Pato la Mechi: Pini ya PB3 inaweza kutumika kama pato la nje kwa Timer / Counter1 Linganisha Mechi B wakati imesanidiwa kama pato (seti ya DDB3). Pini ya OC1B pia ni pini ya pato iliyogeuzwa kwa kazi ya kipima muda cha hali ya PWM.
PCINT3: Pindua Badilisha Chanzo cha kukatiza 3.
Bandari B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Pato la Saa ya Mwalimu, pini ya pembejeo ya Saa ya Mtumwa kwa kituo cha SPI. Wakati SPI imewezeshwa kama Mtumwa, pini hii imewekwa kama pembejeo bila kujali mpangilio wa DDB2. Wakati SPI imewezeshwa kama Mwalimu, mwelekeo wa data wa pini hii unadhibitiwa na DDPB2. Wakati pini inalazimishwa na SPI kuwa pembejeo, kuvuta bado kunaweza kudhibitiwa na PORTB2 kidogo.
ADC1: Kigeuzi cha Analogi hadi Dijitali, Kituo cha 1.
T0: Chanzo cha kukabiliana na Timer / Counter0.
USCK: Njia ya waya tatu Universal Universal Interface Clock.
SCL: Njia mbili-waya Njia ya Saa ya USI ya waya-waya mbili.
INT0: Chanzo cha usumbufu wa nje 0.
PCINT2: Pindua Badilisha Chanzo cha kukatiza 2.
Bandari B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Uingizaji wa Takwimu kuu, pini ya pato la Takwimu za watumwa kwa kituo cha SPI. Wakati SPI imewezeshwa kama Mwalimu, pini hii imesanidiwa kama pembejeo bila kujali mpangilio wa DDB1. Wakati SPI imewezeshwa kama Mtumwa, mwelekeo wa data wa pini hii unadhibitiwa na DDB1. Wakati pini inalazimishwa na SPI kuwa pembejeo, kuvuta bado kunaweza kudhibitiwa na kidogo PORTB1.
AIN1: Uingizaji hasi wa Kilinganisho cha Analog. Sanidi pini ya bandari kama pembejeo na kuvuta kwa ndani kuzimwa ili kuzuia kazi ya bandari ya dijiti kutokana na kuingiliana na kazi ya Kilinganisha cha Analog.
OC0B: Pato Linganisha Pato la Mechi. Pini ya PB1 inaweza kutumika kama pato la nje kwa Timer / Counter0 Linganisha Mechi B. Pini ya PB1 inapaswa kusanidiwa kama pato (seti ya DDB1 (moja)) kutumikia kazi hii. Pini ya OC0B pia ni pato la pato la kazi ya kipima muda cha hali ya PWM.
OC1A: Pato Linganisha Pato la Mechi: Pini ya PB1 inaweza kutumika kama pato la nje kwa Timer / Counter1 Linganisha Mechi B wakati imesanidiwa kama pato (seti ya DDB1). Pini ya OC1A pia ni pini ya pato kwa kazi ya kipima muda cha hali ya PWM.
Fanya: Njia ya waya-tatu Universal Universal Interface Data pato. Njia tatu za waya Pato la data linapita thamani ya PORTB1 na inaendeshwa kwa bandari wakati mwelekeo wa data kidogo DDB1 imewekwa (moja). PORTB1 bado inawezesha kuvuta, ikiwa mwelekeo ni pembejeo na PORTB1 imewekwa (moja).
PCINT1: Pindua Badilisha Chanzo cha kukatiza 1.
Bandari B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: Pato la Takwimu la SPI, Uingizaji wa Takwimu za Watumwa kwa kituo cha SPI. Wakati SPI imewezeshwa kama Mtumwa, pini hii imesanidiwa kama pembejeo bila kujali mpangilio wa DDB0. Wakati SPI imewezeshwa kama Mwalimu, mwelekeo wa data wa pini hii unadhibitiwa na DDB0. Wakati pini inalazimishwa na SPI kuwa pembejeo, kuvuta bado kunaweza kudhibitiwa na kidogo PORTB0.
AIN0: Ingizo zuri la kulinganisha kwa Analog. Sanidi pini ya bandari kama pembejeo na kuvuta kwa ndani kuzimwa ili kuepusha kazi ya bandari ya dijiti kuingiliana na kazi ya Kilinganisha cha Analog
OC0A: Pato Linganisha Pato la Mechi. Pini ya PB0 inaweza kutumika kama pato la nje kwa Timer / Counter0 Linganisha Mechi A wakati imesanidiwa kama pato (seti ya DDB0 (moja)). Pini ya OC0A pia ni pato la pato la kazi ya kipima muda cha hali ya PWM.
OC1A: Pato lililobadilishwa Linganisha Pato la Mechi: Pini ya PB0 inaweza kutumika kama pato la nje kwa Timer / Counter1 Linganisha Mechi B wakati imesanidiwa kama pato (seti ya DDB0). Pini ya OC1A pia ni pini ya pato iliyogeuzwa kwa kazi ya kipima muda cha hali ya PWM.
SDA: Takwimu mbili za waya za mfumo wa waya mbili.
AREF: Rejeleo la nje la Analog kwa ADC. Pullup na dereva wa pato ni walemavu kwenye PB0 wakati pini inatumiwa kama rejeleo la nje au Vol ya ndanitage Rejea na capacitor ya nje kwenye pini ya AREF.
DI: Uingizaji wa Takwimu katika hali ya waya tatu za USI. Njia ya waya-tatu ya USI haibadilishi kazi za kawaida za bandari, kwa hivyo pini lazima isanidiwe kama pembejeo kwa kazi ya DI.
PCINT0: Pindua Badilisha Chanzo cha kukatiza 0.
Jedwali 10-4 na Jedwali 10-5 ambatanisha kazi mbadala za Port B na ishara kuu zinazoonyeshwa kwenye Kielelezo 10-5 juu ukurasa wa 58.
Jedwali 10-4. Kubatilisha Ishara za Kazi Mbadala katika PB[5:3]
Jina la Ishara | PB5 / Rudisha / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | utatuziWire Kusambaza | 0 | 0 |
PVOE | 0 | Wezesha OC1B | ![]() Wezesha OC1B |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | Ingizo la PCINT5 | Ingizo la PCINT4 | Ingizo la PCINT3 |
AIO | Weka upya Ingizo, Uingizaji wa ADC0 | Uingizaji wa ADC2 | Uingizaji wa ADC3 |
Kumbuka: wakati Fuse ni "0" (Imepangwa).
Jedwali 10-5. Kubatilisha Ishara za Kazi Mbadala katika PB[2:0]
Jina la Ishara | 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 |
PUOV | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | Wezesha OC0B + OC1A Wezesha + USI_THREE_WIRE | ![]() Wezesha OC0A + OC1A Wezesha + (USI_TWO_WIRE DDB0) |
PVOV | 0 | OC0B + OC1A + FANYA | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
Ingizo la PCINT2 |
Ingizo la PCINT1 | Pembejeo ya DI / SDA / PCINT0 |
AIO | Uingizaji wa ADC1 | Uingizaji hasi wa Kilinganisho cha Analog | Ingizo zuri la kulinganisha kwa Analog |
Sajili Maelezo
MCUCR - Usajili wa Udhibiti wa MCU
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODI | PUD | SE | SM1 | SM0 | MWILI | ISC01 | ISC00 | MCUCR |
Soma/Andika | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Kidogo cha 6 - PUD: Kuvuta-Zima
Kidogo hiki kikiandikiwa mmoja, vivutio kwenye bandari za I / O vimezimwa hata kama Daftari za DDxn na PORTxn zimesanidiwa kuwezesha vuta nikuzi ({DDxn, PORTxn} = 0b01). Tazama "Kusanidi Pin" kwenye ukurasa wa 54 kwa maelezo zaidi kuhusu huduma hii.
PORTB - Usajili wa Takwimu ya Port B
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | BANDARI |
Soma/Andika | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Sajili ya Uelekezaji wa Takwimu ya Port B
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Soma/Andika | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Anwani ya Pembejeo ya Pembejeo ya Port B
Kidogo | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Soma/Andika | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Thamani ya Awali | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-bit Timer / Counter0 na PWM
Vipengele
Pato mbili za Kujitegemea Linganisha Vitengo
Pato la Bafa Mbili Linganisha Sajili
Futa kipima muda kwenye Mechi ya Linganisha (Upakiaji Kiotomatiki)
Glitch Bure, Awamu Moduli ya Upana wa Pulse (PWM)
Kipindi cha PWM kinachobadilika
Jenereta ya Mzunguko
Vyanzo vitatu vya Kukatiza kwa Uhuru (TOV0, OCF0A, na OCF0B)
Zaidiview
Timer / Counter0 ni madhumuni ya jumla moduli ya Timer / Counter ya jumla ya 8-bit, na Pato mbili za Kujilinganisha za Pato, na kwa msaada wa PWM Inaruhusu wakati sahihi wa utekelezaji wa programu (usimamizi wa hafla) na kizazi cha mawimbi.
Mchoro rahisi wa kizuizi cha Timer / Kaunta ya 8-bit imeonyeshwa katika Kielelezo 11-1. Kwa uwekaji halisi wa pini za I / O, rejelea "Pinout ATtiny25 / 45/85" kwenye ukurasa wa 2. Sajili za I / O zinazopatikana za CPU, pamoja na biti za I / O na pini za I / O, zinaonyeshwa kwa ujasiri. Sajili maalum ya I / O na maeneo ya bit yameorodheshwa kwenye "Sajili Maelezo" kwenye ukurasa wa 77.
Kipima Muda/Kihesabu (TCNT0) na Rejesta za Kulinganisha Matokeo (OCR0A na OCR0B) ni rejista za biti 8. Ishara za ombi la kukatiza (zilizofupishwa kwa Int.Req. katika mchoro) ishara zote zinaonekana kwenye Rejesta ya Bendera ya Kukatiza Kipima Muda (TIFR). Vikatizo vyote hufunikwa kibinafsi na Rejesta ya Mask ya Kukatiza Kipima Muda (TIMSK). TIFR na TIMSK hazijaonyeshwa kwenye takwimu.
Kipima Muda/Kihesabu kinaweza kuwashwa ndani, kupitia kihesabu cha awali, au kwa chanzo cha saa ya nje kwenye pini ya T0. Kizuizi cha mantiki cha Chagua Saa hudhibiti ni chanzo gani cha saa na ukingo wa Kipima Muda/Kihesabu kinatumia kuongeza (au kupunguza) thamani yake. Kipima muda/Kihesabu hakitumiki wakati hakuna chanzo cha saa kilichochaguliwa. Matokeo kutoka kwa mantiki ya Chagua Saa inajulikana kama saa ya saa (clkT0).
Pato la mara mbili la buffered Linganisha madaftari (OCR0A na OCR0B) inalinganishwa na thamani ya Timer / Counter wakati wote. Matokeo ya kulinganisha yanaweza kutumiwa na Jenereta ya Waveform kutengeneza PWM au pato la frequency tofauti kwenye pini za Linganisha Pato (OC0A na OC0B). Tazama "Kitengo cha Kulinganisha Pato" kwenye ukurasa wa 69. kwa maelezo. Tukio la Mechi ya Linganisha pia litaweka Bendera ya Linganisha (OCF0A au OCF0B) ambayo inaweza kutumiwa kutoa ombi la kulinganisha Pato.
Ufafanuzi
Marejeleo mengi na marejeleo kidogo katika sehemu hii yameandikwa kwa jumla. Kesi ndogo "n" inachukua nafasi ya Nambari ya Timer / Counter, katika kesi hii 0. Kesi ndogo "x" inachukua nafasi ya Kitengo cha Linganisha Pato, katika kesi hii Linganisha Kitengo A au Linganisha Kitengo B. Walakini, wakati wa kutumia rejista au kidogo inafafanua katika programu, fomu sahihi lazima itumike, yaani, TCNT0 kwa kupata thamani ya kukabiliana na Timer / Counter0 na kadhalika.
Ufafanuzi katika Jedwali 11-1 pia hutumiwa sana katika hati yote.
Jedwali 11-1. Ufafanuzi
Mara kwa mara | Maelezo |
CHINI | Kaunta hufikia CHINI wakati inakuwa 0x00 |
MAX | Kaunta hufikia kiwango cha juu cha MAX inapokuwa 0xFF (decimal 255) |
JUU | Kaunta hufikia TOP wakati inakuwa sawa na thamani ya juu kabisa katika mlolongo wa hesabu. Thamani ya TOP inaweza kupewa thamani ya kudumu 0xFF (MAX) au thamani iliyohifadhiwa kwenye Rejista ya OCR0A. Kazi hiyo inategemea hali ya operesheni |
Timer / Counter Prescaler na Vyanzo vya Saa
Timer / Counter inaweza kuwa na saa na chanzo cha ndani au cha nje. Chanzo cha saa huchaguliwa na mantiki ya Chagua Saa ambayo inadhibitiwa na Biti za Saa (c) zilizoko kwenye Sajili ya Kudhibiti Timer / Counter0 (TCCR0B).
Chanzo cha Saa ya Ndani na Prescaler
Timer/Counter0 inaweza kuwa na saa moja kwa moja na saa ya mfumo (kwa kuweka CS0[2:0] = 1). Hii hutoa utendakazi wa haraka zaidi, na masafa ya juu ya kipima saa/kaunta sawa na masafa ya saa ya mfumo (fCLK_I/O). Vinginevyo, moja ya bomba nne kutoka kwa prescaler inaweza kutumika kama chanzo cha saa. Saa iliyokadiriwa ina marudio ya aidha
Weka upya Prescaler
Daktari mkuu anaendesha bure, yaani inafanya kazi kwa uhuru wa mantiki ya Chagua Saa ya Timer / Counter0. Kwa kuwa daktari wa daktari hakuathiriwa na saa ya kuchagua saa / kaunta, hali ya mchungaji itakuwa na maana kwa hali ambazo saa iliyotumiwa hutumiwa. Mzee wa zamaniampkifaa cha kukadiri ni wakati kipima muda / kaunta inaruhusiwa na kuwekwa saa na daktari mkuu (6> CS0 [2: 0]> 1). Idadi ya mizunguko ya saa ya mfumo kutoka wakati kipima muda imewezeshwa kwa hesabu ya kwanza inaweza kuwa kutoka kwa 1 hadi N + 1 mizunguko ya saa, ambapo N sawa na msuluhishi mkuu (8, 64, 256, au 1024).
Inawezekana kutumia Mpangilio wa Prescaler kwa kusawazisha Timer / Counter ili kutekeleza programu.
Chanzo cha Saa ya nje
Chanzo cha saa ya nje kilichowekwa kwenye pini ya T0 kinaweza kutumika kama saa ya kipima saa/kaunta (clkT0). Pini ya T0 ni sampiliongozwa mara moja kila mzunguko wa saa ya mfumo na mantiki ya maingiliano ya pini. Zilizosawazishwa (sampled) ishara kisha hupitishwa
kupitia detector ya pembeni. Kielelezo 11-2 inaonyesha mchoro wa utendakazi sawa wa upatanishi wa T0 na mantiki ya kitambua makali. Rejesta zimefungwa kwenye ukingo mzuri wa saa ya mfumo wa ndani (clkI/O). Latch ni ya uwazi katika kipindi cha juu cha saa ya mfumo wa ndani.
Kigunduzi kingo hutengeneza mpigo mmoja wa clkT0 kwa kila ukingo chanya (CS0[2:0] = 7) au hasi (CS0[2:0] = 6) kinachotambua.
Rejista za OCR0x zimebadilishwa mara mbili wakati wa kutumia njia yoyote ya Upanaji wa Upanaji wa Pulse (PWM). Kwa njia za kawaida na wazi za Kipima muda cha Kulinganisha (CTC), bafa mara mbili imelemazwa. Kubwa mara mbili kunalinganisha sasisho la OCR0x Linganisha Rejista ama juu au chini ya mlolongo wa kuhesabu. Usawazishaji huzuia kutokea kwa vidonda vya PWM visivyo vya ulinganifu, na hivyo kufanya pato kuwa bila glitch.
Ufikiaji wa Usajili wa OCR0x unaweza kuonekana kuwa ngumu, lakini hii sio kesi. Wakati kubatiza mara mbili kuwezeshwa, CPU inaweza kufikia Rejista ya Bafa ya OCR0x, na ikiwa bafaji mbili imezimwa CPU itafikia OCR0x moja kwa moja.
Kulazimisha Pato kulinganisha
Katika njia zisizo za PWM za uzalishaji wa mawimbi, pato la mechi ya kulinganisha linaweza kulazimishwa kwa kuandika moja kwa Kikosi cha Kulinganisha Pato la Kikosi (FOC0x). Kulazimisha Linganisha Mechi haitaweka Bendera ya OCF0x au kupakia tena / kusafisha kipima muda, lakini pini ya OC0x itasasishwa kana kwamba kulinganisha halisi kumetokea (mipangilio ya bits COM0x [1: 0] inafafanua ikiwa pini ya OC0x imewekwa, imefutwa au kugeuzwa).
Linganisha Uzuiaji wa Mechi na TCNT0 Andika
Shughuli zote za uandishi wa CPU kwa Usajili wa TCNT0 zitazuia Mechi yoyote ya Linganisha inayotokea kwenye mzunguko wa saa inayofuata, hata wakati kipima wakati kimesimamishwa. Kipengele hiki kinaruhusu OCR0x kuanza kwa thamani sawa na TCNT0 bila kuchochea usumbufu wakati saa ya Timer / Counter imewezeshwa.
Kutumia Kitengo cha Linganisha Pato
Kwa kuwa kuandika TCNT0 kwa njia yoyote ya operesheni kutazuia Mechi zote za Linganisha kwa saa moja ya saa, kuna hatari zinazohusika wakati wa kubadilisha TCNT0 wakati wa kutumia Kitengo cha Linganisha Pato, bila kutegemea kama Timer / Counter inaendesha au la. Ikiwa thamani iliyoandikwa kwa TCNT0 ni sawa na thamani ya OCR0x, Mechi ya Linganisha itakosa, na kusababisha kizazi kisicho sahihi cha umbo la mawimbi. Vivyo hivyo, usiandike thamani ya TCNT0 sawa na BOTTOM wakati kaunta inahesabu chini.
Usanidi wa OC0x unapaswa kufanywa kabla ya kuweka Rejista ya Uelekezaji wa Takwimu kwa pini ya bandari itoe. Njia rahisi zaidi ya kuweka thamani ya OC0x ni kutumia vipande vya strobe strobe (FOC0x) katika hali ya Kawaida. Rejista za OC0x huweka maadili yao hata wakati wa kubadilisha kati ya njia za Uzalishaji wa Waveform.
Jihadharini kuwa bits COM0x [1: 0] hazijagawanywa mara mbili pamoja na thamani ya kulinganisha. Kubadilisha bits COM0x [1: 0] kutaanza mara moja.
Linganisha Kitengo cha Pato la Mechi
Njia ya kulinganisha Pato (COM0x [1: 0]) ina kazi mbili. Jenereta ya Waveform hutumia bits COM0x [1: 0] kwa kufafanua hali ya kulinganisha Pato (OC0x) katika Mechi inayofuata ya Linganisha. Pia, bits COM0x [1: 0] zinadhibiti chanzo cha pato la OC0x. Kielelezo 11-6 inaonyesha muundo rahisi wa mantiki iliyoathiriwa na mpangilio wa COM0x [1: 0]. Sajili za I / O, bits za I / O, na pini za I / O kwenye takwimu zinaonyeshwa kwa herufi nzito. Sehemu tu za Sajili za Udhibiti wa Bandari ya I / O (DDR na PORT) ambazo zinaathiriwa na bits COM0x [1: 0] zinaonyeshwa. Wakati wa kurejelea hali ya OC0x, kumbukumbu ni kwa Rejista ya OC0x ya ndani, sio pini ya OC0x. Ikiwa urekebishaji wa mfumo utatokea, Rejista ya OC0x imewekwa upya kuwa "0".
Wakati OC0A / OC0B imeunganishwa na pini ya I / O, kazi ya COM0A [1: 0] / COM0B [1: 0] bits hutegemea mipangilio ya WGM0 [2: 0]. Jedwali 11-2 inaonyesha utendaji kidogo wa COM0x [1: 0] wakati bits za WGM0 [2: 0] zimewekwa kwa hali ya kawaida au ya CTC (isiyo ya PWM).
Jedwali 11-2. Linganisha Modi ya Pato, Hali isiyo ya PWM
COM0A1 COM0B1 | COM0A0 COM0B0 | Maelezo |
0 | 0 | Operesheni ya kawaida ya bandari, OC0A / OC0B imekatika. |
0 | 1 | Geuza OC0A / OC0B kwenye Linganisha Mechi |
1 | 0 | Futa OC0A / OC0B kwenye Linganisha Mechi |
1 | 1 | Weka OC0A / OC0B kwenye Linganisha Mechi |
Jedwali 11-3 inaonyesha utendaji kidogo wa COM0x [1: 0] wakati bits za WGM0 [2: 0] zimewekwa kwa hali ya haraka ya PWM.
Jedwali 11-3. Linganisha Njia ya Kutoa, Njia ya PWM ya Haraka(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Maelezo |
0 | 0 | Operesheni ya kawaida ya bandari, OC0A / OC0B imekatika. |
0 | 1 | Imehifadhiwa |
1 | 0 | Futa OC0A / OC0B kwenye Linganisha Mechi, weka OC0A / OC0B kwenye BOTTOM (hali isiyo ya kubadilisha) |
1 | 1 | Weka OC0A / OC0B kwenye Linganisha Mechi, futa OC0A / OC0B kwenye BOTTOM (inverting mode) |
Kumbuka: Kesi maalum hutokea wakati OCR0A au OCR0B ni sawa na TOP na COM0A1/COM0B1 imewekwa. Katika kesi hii, ulinganisho unapuuzwa, lakini kuweka au wazi hufanywa chini. Tazama "Njia ya PWM ya haraka" kwenye ukurasa wa 73 kwa maelezo zaidi.
Jedwali 11-4 inaonyesha utendaji kidogo wa COM0x [1: 0] wakati bits za WGM0 [2: 0] zimewekwa ili kuunda hali sahihi ya PWM.
Jedwali 11-4. Linganisha Modi ya Pato, Hali Sahihi ya Awamu ya PWM(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Maelezo |
0 | 0 | Operesheni ya kawaida ya bandari, OC0A / OC0B imekatika. |
0 | 1 | Imehifadhiwa |
1 | 0 | Futa OC0A / OC0B kwenye Linganisha Mechi wakati wa kuhesabu juu. Weka OC0A / OC0B kwenye Linganisha Mechi wakati wa kuhesabu chini. |
1 | 1 | Weka OC0A / OC0B kwenye Linganisha Mechi wakati wa kuhesabu juu. Futa OC0A / OC0B kwenye Linganisha Mechi wakati wa kuhesabu chini. |
Kumbuka: 1. Kesi maalum hutokea wakati OCR0A au OCR0B ni sawa na TOP na COM0A1/COM0B1 imewekwa. Katika kesi hii, Mechi ya Kulinganisha haizingatiwi, lakini kuweka au kuweka wazi hufanywa TOP. Tazama "Njia sahihi ya PWM ya Awamu" kwenye ukurasa wa 74 kwa maelezo zaidi.
Biti 3: 2 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Viti 1: 0 - WGM0 [1: 0]: Njia ya Uzalishaji wa Waveform
Ikijumuishwa na kitita cha WGM02 kinachopatikana katika Rejista ya TCCR0B, bits hizi zinadhibiti mlolongo wa kuhesabu wa kaunta, chanzo cha kiwango cha juu (TOP) cha kaunta, na ni aina gani ya kizazi cha umbo la mawimbi kitakachotumiwa, angalia Jedwali 11-5. Njia za operesheni zinazoungwa mkono na kitengo cha Timer / Counter ni: Modi ya Kawaida (kaunta), Futa kipima muda juu ya hali ya Linganisha Mechi (CTC), na aina mbili za njia za Upanaji wa Upanaji wa Wigo (PWM) (tazama "Njia za Operesheni" kwenye ukurasa wa 71).
Jedwali 11-5. Maelezo Biti ya Njia ya Kizazi cha Waveform
Hali | WGM 02 | WGM 01 | WGM 00 | Njia ya Timer / Counter ya Uendeshaji | JUU | Sasisho la OCRx saa | Bendera ya TOV Imewekwa |
0 | 0 | 0 | 0 | Kawaida | 0xFF | Mara moja | MAX(1) |
1 | 0 | 0 | 1 | PWM, Awamu Sahihi | 0xFF | JUU | CHINI(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Mara moja | MAX(1) |
3 | 0 | 1 | 1 | haraka PWM | 0xFF | CHINI(2) | MAX(1) |
4 | 1 | 0 | 0 | Imehifadhiwa | – | – | – |
5 | 1 | 0 | 1 | PWM, Awamu Sahihi | OCRA | JUU | CHINI(2) |
6 | 1 | 1 | 0 | Imehifadhiwa | – | – | – |
7 | 1 | 1 | 1 | haraka PWM | OCRA | CHINI(2) | JUU |
Kidogo 7 - FOC0A: Pato la Kikosi Linganisha A
Kidogo cha FOC0A kinatumika tu wakati bits za WGM zinataja hali isiyo ya PWM.
Walakini, kwa kuhakikisha utangamano na vifaa vya siku za usoni, kidogo lazima iwekwe sifuri wakati TCCR0B imeandikwa wakati inafanya kazi katika hali ya PWM. Wakati wa kuandika moja ya kimantiki kwa FOC0A kidogo, Mechi ya kulinganisha mara moja inalazimishwa kwenye kitengo cha kizazi cha Waveform. Pato la OC0A hubadilishwa kulingana na mipangilio yake ya bits COM0A [1: 0]. Kumbuka kuwa kidogo FOC0A inatekelezwa kama strobe. Kwa hivyo ni thamani iliyopo kwenye bits COM0A [1: 0] ambayo huamua athari ya kulinganisha kwa kulazimishwa.
Strobe ya FOC0A haitoi usumbufu wowote, na haitaweka wazi kipima muda katika hali ya CTC kutumia OCR0A kama TOP. Kidogo cha FOC0A kinasomwa kila wakati kama sifuri.
Kidogo 6 - FOC0B: Pato la Kulinganisha Linganisha B
Kidogo cha FOC0B ni kazi tu wakati bits za WGM zinataja hali isiyo ya PWM.
Walakini, kwa kuhakikisha utangamano na vifaa vya siku za usoni, kidogo lazima iwekwe sifuri wakati TCCR0B imeandikwa wakati inafanya kazi katika hali ya PWM. Wakati wa kuandika moja ya kimantiki kwa FOC0B kidogo, Mechi ya kulinganisha mara moja inalazimishwa kwenye kitengo cha kizazi cha Waveform. Pato la OC0B limebadilishwa kulingana na mipangilio yake ya bits COM0B [1: 0]. Kumbuka kuwa kidogo FOC0B inatekelezwa kama strobe. Kwa hivyo ni thamani iliyopo kwenye bits COM0B [1: 0] ambayo huamua athari ya kulinganisha kwa kulazimishwa.
Strobe ya FOC0B haitoi usumbufu wowote, na haitaweka wazi kipima muda katika hali ya CTC kutumia OCR0B kama TOP.
Kidogo cha FOC0B kinasomwa kila wakati kama sifuri.
Biti 5: 4 - Res: Vipindi vilivyohifadhiwa
Biti hizi ni bits zilizohifadhiwa katika ATtiny25 / 45/85 na zitasoma kila wakati kama sifuri.
Kidogo 3 - WGM02: Njia ya Uzalishaji wa Waveform
Tazama maelezo katika "TCCR0A - Sajili ya Kudhibiti Timer / Counter A" kwenye ukurasa wa 77.
Viti 2: 0 - CS0 [2: 0]: Saa Chagua
Biti tatu za Chagua Saa chagua chanzo cha saa kitumiwe na Timer / Counter.
Jedwali 11-6. Saa Chagua Maelezo Biti
CS02 | CS01 | CS00 | Maelezo |
0 | 0 | 0 | Hakuna chanzo cha saa (Timer / Counter imesimamishwa) |
0 | 0 | 1 | clkI/O/(Hakuna kipimo) |
0 | 1 | 0 | clkI/O/8 (Kutoka kwa mchezaji wa awali) |
0 | 1 | 1 | clkI/O/64 (Kutoka kwa mchezaji wa awali) |
1 | 0 | 0 | clkI/O/256 (Kutoka kwa mchezaji wa awali) |
1 | 0 | 1 | clkI/O/1024 (Kutoka kwa mchezaji wa awali) |
1 | 1 | 0 | Chanzo cha saa ya nje kwenye pini ya T0. Saa juu ya makali ya kuanguka. |
1 | 1 | 1 | Chanzo cha saa ya nje kwenye pini ya T0. Saa kwenye makali inayoinuka. |
Ikiwa njia za pini za nje zinatumika kwa Timer / Counter0, mabadiliko kwenye pini ya T0 yatatengeneza kaunta hata kama pini imewekwa kama pato. Kipengele hiki kinaruhusu udhibiti wa programu ya kuhesabu.
Kukabiliana na Kulinganisha Vitengo
Operesheni ya jumla ya Timer / Counter1 imeelezewa katika hali ya kupendeza na operesheni katika hali ya maingiliano imetajwa tu ikiwa kuna tofauti kati ya njia hizi mbili. Kielelezo 12-2 inaonyesha Timer / Counter 1 sajili ya usawazishaji saji ya kuzuia na ucheleweshaji wa usawazishaji kati ya rejista. Kumbuka kuwa maelezo yote ya saa hayakuonyeshwa kwenye takwimu. Thamani za usajili wa Timer / Counter1 hupitia sajili za ndani za usawazishaji, ambazo husababisha kucheleweshwa kwa usawazishaji wa pembejeo, kabla ya kuathiri operesheni ya kaunta. Rejista TCCR1, GTCCR, OCR1A, OCR1B, na OCR1C zinaweza kusomwa mara tu baada ya kuandika rejista. Thamani za kusoma nyuma zimecheleweshwa kwa sajili ya Timer / Counter1 (TCNT1) na bendera (OCF1A, OCF1B, na TOV1), kwa sababu ya usawazishaji wa pembejeo na pato.
Timer / Counter1 ina azimio kubwa na utumiaji wa usahihi wa hali ya juu na nafasi za chini za kukazia. Inaweza pia kusaidia moduli mbili sahihi, za kasi, 8-bit Pulse Width Modulators kwa kutumia mwendo wa saa hadi 64 MHz (au 32 MHz katika Njia ya kasi ya chini). Katika hali hii, Timer / Counter1 na pato hulinganisha rejista hutumika kama PWM mbili za kusimama pekee na matokeo yasiyopindana yasiyopinduliwa na yaliyopinduliwa. Rejea ukurasa wa 86 kwa maelezo ya kina juu ya kazi hii. Vivyo hivyo, fursa kubwa za kukiri hufanya kitengo hiki kuwa muhimu kwa kazi za kasi ya chini au kazi halisi za muda na vitendo visivyo kawaida.
Kielelezo 12-2. Timer/Counter 1 Sajili ya Sajili ya Usawazishaji Mchoro wa Kuzuia.
Timer / Counter1 na prescaler huruhusu kuendesha CPU kutoka kwa chanzo chochote cha saa wakati daktari anafanya kazi kwa kasi ya 64 MHz (au 32 MHz katika Njia ya kasi ya chini) Saa ya PCK katika hali ya kupendeza.
Kumbuka kuwa mzunguko wa saa ya mfumo lazima iwe chini ya theluthi moja ya masafa ya PCK. Utaratibu wa maingiliano ya Timer / Counter1 ya kupendeza inahitaji angalau kingo mbili za PCK wakati saa ya mfumo iko juu. Ikiwa masafa ya saa ya mfumo ni ya juu sana, ni hatari kwamba data au udhibiti wa maadili unapotea.
Ifuatayo Kielelezo 12-3 inaonyesha mchoro wa kuzuia Timer / Counter1.
Jedwali 12-1. Linganisha Modi Chagua katika Modi ya PWM
COM1x1 | COM1x0 | Athari kwa Pini Linganisha Pini |
0 | 0 | OC1x haijaunganishwa. OC1x haijaunganishwa. |
0 | 1 | OC1x ilisafishwa kwa kulinganisha mechi. Weka wakatiTCNT1 = $ 00. OC1x imewekwa kwa kulinganisha mechi. Imefutwa wakati TCNT1 = $ 00. |
1 | 0 | OC1x ilisafishwa kwa kulinganisha mechi. Weka wakati TCNT1 = $ 00. OC1x haijaunganishwa. |
1 | 1 | OC1x Weka kwa kulinganisha mechi. Imefutwa wakati TCNT1 = $ 00. OC1x haijaunganishwa. |
Tabia za ADC
Jedwali 21-8. Sifa za ADC, Chaneli Zilizo na Mwisho Mmoja. TA = -40°C hadi +85°C
Alama | Kigezo | Hali | Dak | Chapa | Max | Vitengo |
Azimio | 10 | Bits | ||||
Usahihi kabisa (pamoja na INL, DNL, na hesabu, makosa na faida) | VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
Saa ya ADC = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz Njia ya Kupunguza Kelele |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
Saa ya ADC = 1 MHz Njia ya Kupunguza Kelele |
2.5 | LSB | ||||
Ujumuishaji usio sawa (INL) (Usahihi baada ya kukabiliana na kupata usawazishaji) | VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz |
1 | LSB | |||
Tofauti isiyo ya kawaida (DNL) | VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz |
0.5 | LSB | |||
Kupata Kosa | VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz |
2.5 | LSB | |||
Hitilafu ya Kukamilisha | VREF = 4V, VCC = 4V,
Saa ya ADC = 200 kHz |
1.5 | LSB | |||
Wakati wa Uongofu | Uongofu wa Mbio wa Bure | 14 | 280 | .s | ||
Utaratibu wa Saa | 50 | 1000 | kHz | |||
VIN | Uingizaji Voltage | GND | VREF | V | ||
Uingizaji wa Bandwidth | 38.4 | kHz | ||||
AREF | Rejeleo la nje Juztage | 2.0 | VCC | V | ||
VINT | Juzuu ya ndanitage Marejeo | 1.0 | 1.1 | 1.2 | V | |
Rejea ya ndani ya 2.56V (1) | VCC> 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | 32 | kΩ | ||||
MVUA | Upinzani wa Kuingiza Analog | 100 | MΩ | |||
Pato la ADC | 0 | 1023 | LSB |
Kumbuka: 1. Maadili ni miongozo pekee.
Jedwali 21-9. Sifa za ADC, Idhaa Tofauti (Njia ya Unipolar). TA = -40°C hadi +85°C
Alama | Kigezo | Hali | Dak | Chapa | Max | Vitengo |
Azimio | Faida = 1x | 10 | Bits | |||
Faida = 20x | 10 | Bits | ||||
Usahihi kabisa (pamoja na INL, DNL, na
Upimaji, Upataji na Makosa ya Kukamilisha) |
Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
10.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
20.0 | LSB | ||||
Jumuiya isiyo ya Linear (INL) (Usahihi baada ya Kukamilisha na Kupata Usawazishaji) | Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
4.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
10.0 | LSB | ||||
Kupata Kosa | Faida = 1x | 10.0 | LSB | |||
Faida = 20x | 15.0 | LSB | ||||
Hitilafu ya Kukamilisha | Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
3.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
4.0 | LSB | ||||
Wakati wa Uongofu | Uongofu wa Mbio wa Bure | 70 | 280 | .s | ||
Utaratibu wa Saa | 50 | 200 | kHz | |||
VIN | Uingizaji Voltage | GND | VCC | V | ||
VDIFF | Ingizo Tofauti Voltage | VREF/Faida | V | |||
Uingizaji wa Bandwidth | 4 | kHz | ||||
AREF | Rejeleo la nje Juztage | 2.0 | VCC - 1.0 | V | ||
VINT | Juzuu ya ndanitage Marejeo | 1.0 | 1.1 | 1.2 | V | |
Rejea ya ndani ya 2.56V (1) | VCC> 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | Upinzani wa Kuingiza Marejeo | 32 | kΩ | |||
MVUA | Upinzani wa Kuingiza Analog | 100 | MΩ | |||
Pato la Uongofu wa ADC | 0 | 1023 | LSB |
Kumbuka: Thamani ni miongozo pekee.
Jedwali 21-10. Sifa za ADC, Idhaa Tofauti (Njia ya Bipolar). TA = -40°C hadi +85°C
Alama | Kigezo | Hali | Dak | Chapa | Max | Vitengo |
Azimio | Faida = 1x | 10 | Bits | |||
Faida = 20x | 10 | Bits | ||||
Usahihi kabisa (pamoja na INL, DNL, na
Upimaji, Upataji na Makosa ya Kukamilisha) |
Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
8.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
8.0 | LSB | ||||
Jumuiya isiyo ya Linear (INL) (Usahihi baada ya Kukamilisha na Kupata Usawazishaji) | Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
4.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
5.0 | LSB | ||||
Kupata Kosa | Faida = 1x | 4.0 | LSB | |||
Faida = 20x | 5.0 | LSB | ||||
Hitilafu ya Kukamilisha | Faida = 1x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
3.0 | LSB | |||
Faida = 20x
VREF = 4V, VCC = 5V Saa ya ADC = 50 - 200 kHz |
4.0 | LSB | ||||
Wakati wa Uongofu | Uongofu wa Mbio wa Bure | 70 | 280 | .s | ||
Utaratibu wa Saa | 50 | 200 | kHz | |||
VIN | Uingizaji Voltage | GND | VCC | V | ||
VDIFF | Ingizo Tofauti Voltage | VREF/Faida | V | |||
Uingizaji wa Bandwidth | 4 | kHz | ||||
AREF | Rejeleo la nje Juztage | 2.0 | VCC - 1.0 | V | ||
VINT | Juzuu ya ndanitage Marejeo | 1.0 | 1.1 | 1.2 | V | |
Rejea ya ndani ya 2.56V (1) | VCC> 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | Upinzani wa Kuingiza Marejeo | 32 | kΩ | |||
MVUA | Upinzani wa Kuingiza Analog | 100 | MΩ | |||
Pato la Uongofu wa ADC | -512 | 511 | LSB |
Muhtasari wa Kuweka Maagizo
Mnemonics | Operesheni | Maelezo | Uendeshaji | Bendera | #Masaa |
MAELEKEZO YA SANAA NA LOGI | |||||
ONGEZA | Rd, Rr | Ongeza Sajili mbili | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Ongeza na Kubeba Sajili mbili | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Ongeza Mara Moja kwa Neno | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Ondoa Rejista mbili | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
NILIPANDA | Rd, K | Ondoa mara kwa mara kutoka kwa Sajili | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Ondoa na Kubeba Sajili mbili | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K | Ondoa na Carry Constant kutoka Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Ondoa Mara moja kutoka kwa Neno | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
NA | Rd, Rr | Mantiki NA Rejista | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K | Kimantiki NA Jisajili na Mara kwa mara | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Mantiki AU Rejista | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K | Mantiki AU Jisajili na Mara kwa mara | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Madaftari ya kipekee AU | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Msaidizi wa Mtu | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Nyongeza ya Mbili | Barabara ← 0x00 − Barabara | Z, C, N, V, H | 1 |
SBR | Rd, K | Weka Bit (s) katika Sajili | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Futa Bit (s) katika Sajili | Rd ← Rd ∙ (0xFF - K) | Z, N, V | 1 |
INC | Rd | Ongezeko | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Kuamua | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Mtihani wa Zero au Minus | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Futa Sajili | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Weka Sajili | Rd ← 0xFF | Hakuna | 1 |
MAELEKEZO YA TAWI | |||||
RJMP | k | Jamaa Rukia | Kompyuta ← Kompyuta + k + 1 | Hakuna | 2 |
IJMP | Rukia moja kwa moja kwa (Z) | Kompyuta ← Z | Hakuna | 2 | |
RIWAYA | k | Jamaa wa Subroutine | Kompyuta ← Kompyuta + k + 1 | Hakuna | 3 |
PIGA SIMU | Simu isiyo ya moja kwa moja kwa (Z) | Kompyuta ← Z | Hakuna | 3 | |
RET | Kurudi kwa Subroutine | Kompyuta ← STACK | Hakuna | 4 | |
RETI | Usumbufu Kurudi | Kompyuta ← STACK | I | 4 | |
CPSE | Rd, Rr | Linganisha, Ruka ikiwa Sawa | ikiwa (Rd = Rr) PC ← PC + 2 au 3 | Hakuna | 1/2/3 |
CP | Rd, Rr | Linganisha | Rd - Rr | Z, N, V, C, H | 1 |
CPC | Rd, Rr | Linganisha na Kubeba | Rd − Rr − C | Z, N, V, C, H | 1 |
CPI | Rd, K | Linganisha Sajili na Mara moja | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, b | Ruka ikiwa Kidogo katika Daftari Limesafishwa | ikiwa (Rr(b)=0) Kompyuta ← Kompyuta + 2 au 3 | Hakuna | 1/2/3 |
SBRS | Rr, b | Ruka ikiwa Kidogo kwenye Sajili imewekwa | ikiwa (Rr(b)=1) Kompyuta ← Kompyuta + 2 au 3 | Hakuna | 1/2/3 |
SBIC | P, b | Ruka ikiwa Kidogo katika Daftari la I / O Limesafishwa | ikiwa (P(b)=0) Kompyuta ← Kompyuta + 2 au 3 | Hakuna | 1/2/3 |
SBIS | P, b | Ruka ikiwa Kidogo katika Usajili wa I / O umewekwa | ikiwa (P(b)=1) Kompyuta ← Kompyuta + 2 au 3 | Hakuna | 1/2/3 |
BRBS | s, k | Tawi ikiwa Bendera ya Hali Imewekwa | ikiwa (SREG(s) = 1) basi PC←PC+k + 1 | Hakuna | 1/2 |
BRBC | s, k | Tawi ikiwa Bendera ya Hali imefutwa | ikiwa (SREG(s) = 0) basi PC←PC+k + 1 | Hakuna | 1/2 |
BREQ | k | Tawi ikiwa Sawa | ikiwa (Z = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRNE | k | Tawi ikiwa Sio Sawa | ikiwa (Z = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRCS | k | Tawi ikiwa Chukua Seti | ikiwa (C = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRCC | k | Tawi ikiwa Kubeba Kimesafishwa | ikiwa (C = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRSH | k | Tawi ikiwa Sawa au Juu | ikiwa (C = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRLO | k | Tawi ikiwa chini | ikiwa (C = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRMI | k | Tawi ikiwa Minus | ikiwa (N = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRPL | k | Tawi ikiwa Pamoja | ikiwa (N = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRGE | k | Tawi ikiwa Kubwa au Sawa, Imesainiwa | ikiwa (N ⊕ V= 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRLT | k | Tawi ikiwa Chini ya Zero, Imesainiwa | ikiwa (N ⊕ V= 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRHS | k | Tawi ikiwa Nusu Imebeba Seti ya Bendera | ikiwa (H = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRHC | k | Tawi ikiwa Nusu ya Kubeba Imesafishwa | ikiwa (H = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRTS | k | Tawi ikiwa T Bendera Imewekwa | ikiwa (T = 1) basi Kompyuta ← PC + k + 1 | Hakuna | 1/2 |
BRTC | k | Tawi ikiwa Bendera ya T Imefutwa | ikiwa (T = 0) basi Kompyuta ← PC + k + 1 | Hakuna | 1/2 |
BRVS | k | Tawi ikiwa Bendera ya Kufurika Imewekwa | ikiwa (V = 1) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
BRVC | k | Tawi ikiwa Bendera ya Kufurika imefutwa | ikiwa (V = 0) basi Kompyuta ← Kompyuta + k + 1 | Hakuna | 1/2 |
FUPI | k | Tawi ikiwa Usumbufu umewezeshwa | ikiwa ( I = 1) basi Kompyuta ← PC + k + 1 | Hakuna | 1/2 |
BRIDI | k | Tawi ikiwa Usumbufu Umezimwa | ikiwa ( I = 0) basi Kompyuta ← PC + k + 1 | Hakuna | 1/2 |
MAELEKEZO YA KIDOGO NA KIDOGO | |||||
SBI | P, b | Weka Bit katika Usajili wa I / O | I/O(P,b) ← 1 | Hakuna | 2 |
CBI | P, b | Futa Kidogo katika Usajili wa I / O | I/O(P,b) ← 0 | Hakuna | 2 |
LSL | Rd | Kimantiki Shift Kushoto | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Mantiki Shift Kulia | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
WAJIBU | Rd | Zungusha Kushoto Kupitia Kubeba | Rd(0)←C,Rd(n+1)←Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Zungusha Haki Kupitia Kubeba | Rd(7)←C,Rd(n)←Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Shift ya Hesabu Kulia | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonics | Operesheni | Maelezo | Uendeshaji | Bendera | #Masaa |
BADILISHANA | Rd | Badili Nibbles | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Hakuna | 1 |
BSET | s | Kuweka Bendera | SREG ← 1 | SREG (s) | 1 |
BCLR | s | Bendera wazi | SREG ← 0 | SREG (s) | 1 |
BST | Rr, b | Duka la Bit kutoka Daftari hadi T | T ← Rr(b) | T | 1 |
BLD | Rd, b | Mzigo mdogo kutoka T hadi Usajili | Rd(b) ← T | Hakuna | 1 |
SEC | Weka Kubeba | C ← 1 | C | 1 | |
CLC | Futa Kubeba | C ← 0 | C | 1 | |
SEN | Weka Bendera Hasi | N ← 1 | N | 1 | |
CLN | Futa Bendera Hasi | N ← 0 | N | 1 | |
SEZ | Weka Bendera ya Zero | Z ← 1 | Z | 1 | |
CLZ | Futa Bendera ya Zero | Z ← 0 | Z | 1 | |
SEI | Washa Ukatizaji Ulimwenguni | Mimi ← 1 | I | 1 | |
CLI | Usumbufu wa Ulimwenguni Lemaza | Mimi ← 0 | I | 1 | |
SES | Weka Bendera ya Jaribio Iliyosainiwa | S ← 1 | S | 1 | |
CLS | Futa Bendera ya Jaribio la Saini | S ← 0 | S | 1 | |
SEV | Weka Kufurika kwa Wawili. | V ← 1 | V | 1 | |
CLV | Futa Twos inayosaidia kufurika | V ← 0 | V | 1 | |
WEKA | Weka T katika SREG | T ← 1 | T | 1 | |
CLT | Futa T katika SREG | T ← 0 | T | 1 | |
SEH | Weka Nusu ya Beba Nusu katika SREG | H ← 1 | H | 1 | |
CHL | Futa Bendera ya Kubeba Nusu katika SREG | H ← 0 | H | 1 | |
MAELEKEZO YA KUHAMISHA DATA | |||||
MOV | Rd, Rr | Hoja kati ya Rejista | Rd ← Rr | Hakuna | 1 |
MOVW | Rd, Rr | Nakili Sajili Neno | Rd+1:Rd ← Rr+1:Rr | Hakuna | 1 |
LDI | Rd, K | Mzigo Mara | Rd ← K | Hakuna | 1 |
LD | Rd, X | Mzigo usio wa moja kwa moja | Rd ← (X) | Hakuna | 2 |
LD | Rd, X + | Mzigo wa moja kwa moja na Post-Inc. | Rd ← (X), X ← X + 1 | Hakuna | 2 |
LD | Rd, - X | Mzigo wa moja kwa moja na kabla ya Desemba. | X ← X – 1, Rd ← (X) | Hakuna | 2 |
LD | Rd, Y | Mzigo usio wa moja kwa moja | Rd ← (Y) | Hakuna | 2 |
LD | Rd, Y + | Mzigo wa moja kwa moja na Post-Inc. | Rd ← (Y), Y ← Y + 1 | Hakuna | 2 |
LD | Rd, - Y | Mzigo wa moja kwa moja na kabla ya Desemba. | Y ← Y – 1, Rd ← (Y) | Hakuna | 2 |
LDD | Rd, Y + q | Mzigo wa moja kwa moja na Uhamishaji | Rd ← (Y + q) | Hakuna | 2 |
LD | Rd, Z | Mzigo usio wa moja kwa moja | Rd ← (Z) | Hakuna | 2 |
LD | Rd, Z + | Mzigo wa moja kwa moja na Post-Inc. | Rd ← (Z), Z ← Z+1 | Hakuna | 2 |
LD | Rd, -Z | Mzigo wa moja kwa moja na kabla ya Desemba. | Z ← Z – 1, Rd ← (Z) | Hakuna | 2 |
LDD | Rd, Z + q | Mzigo wa moja kwa moja na Uhamishaji | Rd ← (Z + q) | Hakuna | 2 |
LDS | Rd, k | Pakia moja kwa moja kutoka SRAM | Rd ← (k) | Hakuna | 2 |
ST | X, Rr | Hifadhi moja kwa moja | (X) ← Rr | Hakuna | 2 |
ST | X +, Rr | Hifadhi isiyo ya moja kwa moja na Post-Inc. | (X) ← Rr, X ← X + 1 | Hakuna | 2 |
ST | - X, Rr | Hifadhi moja kwa moja na kabla ya Desemba. | X ← X – 1, (X) ← Rr | Hakuna | 2 |
ST | Y, Rr | Hifadhi moja kwa moja | (Y) ← Rr | Hakuna | 2 |
ST | Y +, Rr | Hifadhi isiyo ya moja kwa moja na Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Hakuna | 2 |
ST | - Y, Rr | Hifadhi moja kwa moja na kabla ya Desemba. | Y ← Y – 1, (Y) ← Rr | Hakuna | 2 |
STD | Y + q, Rr | Hifadhi moja kwa moja na Uhamishaji | (Y + q) ← Rr | Hakuna | 2 |
ST | Z, Rr | Hifadhi moja kwa moja | (Z) ← Rr | Hakuna | 2 |
ST | Z +, Rr | Hifadhi isiyo ya moja kwa moja na Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Hakuna | 2 |
ST | -Z, Rr | Hifadhi moja kwa moja na kabla ya Desemba. | Z ← Z – 1, (Z) ← Rr | Hakuna | 2 |
STD | Z + q, Rr | Hifadhi moja kwa moja na Uhamishaji | (Z + q) ← Rr | Hakuna | 2 |
STS | k, r | Hifadhi moja kwa moja kwa SRAM | (k) ← Rr | Hakuna | 2 |
LPM | Kumbukumbu ya Programu ya Mzigo | R0 ← (Z) | Hakuna | 3 | |
LPM | Rd, Z | Kumbukumbu ya Programu ya Mzigo | Rd ← (Z) | Hakuna | 3 |
LPM | Rd, Z + | Kumbukumbu ya Programu ya Mzigo na Post-Inc | Rd ← (Z), Z ← Z+1 | Hakuna | 3 |
SPM | Hifadhi Kumbukumbu ya Programu | (z) ← R1:R0 | Hakuna | ||
IN | Rd, Uk | Katika Bandari | Rd ← P | Hakuna | 1 |
NJE | P, Rr | Nje ya Bandari | P ← Rr | Hakuna | 1 |
SUKUMA | Rr | Sukuma Sajili kwenye Stack | STACK ← Rr | Hakuna | 2 |
POP | Rd | Sajili ya Pop kutoka Stack | Rd ← STACK | Hakuna | 2 |
Maagizo ya Udhibiti wa MCU | |||||
HAPANA | Hakuna Operesheni | Hakuna | 1 | ||
LALA | Kulala | (angalia maelezo maalum. ya kazi ya Kulala) | Hakuna | 1 | |
WDR | Rudisha Waangalizi | (angalia maelezo maalum. kwa WDR / Timer) | Hakuna | 1 | |
BREAK | Kuvunja |
Kasi (MHz) (1) | Ugavi Voltage (V) | Kiwango cha Joto | Kifurushi (2) | Nambari ya Kuagiza (3) |
10 | 1.8 - 5.5 | Viwandani
(-40 ° C hadi + 85 ° C) (4) |
8P3 | Mchanganyiko45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | Mchanganyiko45V-10XU Mchanganyiko45V-10XUR | |||
20M1 | Mchanganyiko45V-10MU ATTiny45V-10MUR | |||
20 | 2.7 - 5.5 | Viwandani
(-40 ° C hadi + 85 ° C) (4) |
8P3 | ATtiny45-20PU |
8S2 | Nywele45-20SU NYINYI45-20SUR
Wanyonge45-20SH Wazi45-20SHR |
|||
8X | Wanyonge45-20XU WAKATI45XUR | |||
20M1 | UCHAMBUZI45-20MU UCHUMI45-20MUR |
Vidokezo: 1. Kwa kasi dhidi ya usambazaji voltage, angalia sehemu 21.3 "Kasi" kwenye ukurasa wa 163.
Vifurushi vyote havina Pb-free, halide-free na kijani kibichi kabisa na vinatii maagizo ya Uropa ya Kizuizi cha Vitu vya Hatari (RoHS).
Viashiria vya kanuni
H: NiPdAu kumaliza kumaliza
U: bati la matte
R: mkanda na reel
Vifaa hivi pia vinaweza kutolewa kwa fomu ya kaki. Tafadhali wasiliana na ofisi yako ya mauzo ya Atmel ili upewe maelezo ya kina na kiwango cha chini.
Erratum
Errata ATtiny. 25
Barua ya marekebisho katika sehemu hii inahusu marekebisho ya kifaa cha ATtiny25.
Mch D - F
Hakuna makosa yanayojulikana.
Mch B - C
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Kujaribu kusoma EEPROM kwa masafa ya saa za chini na / au usambazaji mdogo voltage inaweza kusababisha data batili.
Kurekebisha Tatizo / Kufanya kazi
Usitumie EEPROM wakati mzunguko wa saa uko chini ya 1MHz na usambazaji voltage iko chini ya 2V. Ikiwa hali ya kufanya kazi haiwezi kupandishwa juu ya 1MHz basi usambazaji voltage inapaswa kuwa zaidi ya 2V. Vivyo hivyo, ikiwa usambazaji voltage haiwezi kuinuliwa juu ya 2V kisha frequency ya kufanya kazi inapaswa kuwa zaidi ya 1MHz.
Sifa hii inajulikana kuwa tegemezi ya joto lakini haijajulikana. Miongozo hutolewa kwa joto la kawaida, tu.
Mch
Sio sampkuongozwa.
Errata ATtiny. 45
Barua ya marekebisho katika sehemu hii inahusu marekebisho ya kifaa cha ATtiny45.
Mch F - G
Hakuna makosa yanayojulikana
Mch D - E
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Kujaribu kusoma EEPROM kwa masafa ya saa za chini na / au usambazaji mdogo voltage inaweza kusababisha data batili.
Kurekebisha Tatizo / Kufanya kazi
Usitumie EEPROM wakati mzunguko wa saa uko chini ya 1MHz na usambazaji voltage iko chini ya 2V. Ikiwa hali ya kufanya kazi haiwezi kupandishwa juu ya 1MHz basi usambazaji voltage inapaswa kuwa zaidi ya 2V. Vivyo hivyo, ikiwa usambazaji voltage haiwezi kuinuliwa juu ya 2V kisha frequency ya kufanya kazi inapaswa kuwa zaidi ya 1MHz.
Sifa hii inajulikana kuwa tegemezi ya joto lakini haijajulikana. Miongozo hutolewa kwa joto la kawaida, tu.
Mch B - C
PLL haifungi
Kusoma kwa EEPROM kutoka kwa nambari ya maombi haifanyi kazi katika Njia ya Lock Bit 3
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Timer Counter 1 Uzalishaji wa PWM kwenye OC1B- XOC1B haifanyi kazi kwa usahihi
PLL haifungi
Wakati wa masafa chini ya 6.0 MHz, PLL haitafungwa
Kurekebisha shida / Kufanya kazi
Unapotumia PLL, kimbia kwa 6.0 MHz au zaidi.
Kusoma kwa EEPROM kutoka kwa nambari ya maombi haifanyi kazi katika Njia ya Lock Bit 3
Wakati Bits Lock Lock LB2 na LB1 zimepangwa kwa hali ya 3, kusoma kwa EEPROM haifanyi kazi kutoka kwa nambari ya maombi.
Shida ya Kurekebisha / Kufanya kazi karibu
Usiweke Njia ya Ulinzi ya Kidogo ya 3 wakati nambari ya maombi inahitaji kusoma kutoka EEPROM.
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Kujaribu kusoma EEPROM kwa masafa ya saa za chini na / au usambazaji mdogo voltage inaweza kusababisha data batili.
Kurekebisha Tatizo / Kufanya kazi
Usitumie EEPROM wakati mzunguko wa saa uko chini ya 1MHz na usambazaji voltage iko chini ya 2V. Ikiwa hali ya kufanya kazi haiwezi kupandishwa juu ya 1MHz basi usambazaji voltage inapaswa kuwa zaidi ya 2V. Vivyo hivyo, ikiwa usambazaji voltage haiwezi kuinuliwa juu ya 2V kisha frequency ya kufanya kazi inapaswa kuwa zaidi ya 1MHz.
Sifa hii inajulikana kuwa tegemezi ya joto lakini haijajulikana. Miongozo hutolewa kwa joto la kawaida, tu.
Timer Counter 1 kizazi cha pato cha PWM kwenye OC1B - XOC1B haifanyi kazi kwa usahihi
Timer Counter1 PWM pato OC1B-XOC1B haifanyi kazi kwa usahihi. Ni kwa kesi tu wakati bits za kudhibiti, COM1B1 na COM1B0 ziko katika hali sawa na COM1A1 na COM1A0, mtawaliwa, OC1B-XOC1B out- put inafanya kazi kwa usahihi.
Shida ya Kurekebisha / Kufanya kazi karibu
Kazi pekee ya kufanya kazi ni kutumia mpangilio huo wa kudhibiti kwenye COM1A [1: 0] na COM1B [1: 0] bits bits, angalia jedwali 14- 4 kwenye karatasi ya data. Shida imerekebishwa kwa Tiny45 rev D.
Mch
Nguvu kubwa sana chini ya matumizi ya nguvu
DebugWIRE hupoteza mawasiliano wakati mmoja akiingia kwenye usumbufu
PLL haifungi
Kusoma kwa EEPROM kutoka kwa nambari ya maombi haifanyi kazi katika Njia ya Lock Bit 3
Kusoma kwa EEPROM kunaweza kufeli kwa usambazaji mdogo voltage / chini ya saa
Nguvu kubwa sana chini ya matumizi ya nguvu
Hali tatu zitasababisha matumizi makubwa ya nguvu chini. Hizi ni:
Saa ya nje imechaguliwa na fuses, lakini I / O PORT bado imewezeshwa kama pato.
EEPROM inasomwa kabla ya kuingia chini.
VCC ni volts 4.5 au zaidi.
Kanusho: Taarifa katika hati hii imetolewa kuhusiana na bidhaa za Atmel. Hakuna leseni, ya wazi au ya kudokezwa, kwa estoppel au vinginevyo, kwa haki yoyote ya uvumbuzi inatolewa na hati hii au kuhusiana na uuzaji wa bidhaa za Atmel. ISIPOKUWA JINSI ILIVYOKUWA IMEELEZWA KATIKA MASHARTI NA MASHARTI YA MAUZO YANAYOPO KWENYE ATMEL. WEBTOVUTI, ATMEL HAICHUKUI DHIMA YOYOTE NA IMEKANUSHA DHIMA YOYOTE WASI, ILIYOHUSIKA AU YA KISHERIA KUHUSIANA NA BIDHAA ZAKE IKIWEMO, LAKINI SI KIKOMO, UHAKIKA ULIOHUSISHWA WA UUZAJI, KUFAA KWA KUHUSIKA, KUHUSIANA. KWA MATUKIO HAKUNA ATMEL HAITAWAJIBIKA KWA UHARIBIFU WOWOTE WA MOJA KWA MOJA, WA MOJA KWA MOJA, WA KUTOKEA, ADHABU, MAALUM AU WA TUKIO (pamoja na, BILA KIKOMO, UHARIBIFU WA HASARA NA FAIDA, UKATILI WA BIASHARA, AU UPOTEVU WA UTUMIAJI WA TAARIFA) WARAKA HUU, HATA ATMEL IMESHAURIWA KUHUSU UWEZEKANO WA UHARIBIFU HUO.
Atmel haitoi uwakilishi au dhamana kuhusiana na usahihi au ukamilifu wa yaliyomo katika hati hii na inahifadhi haki ya kufanya mabadiliko ya vipimo na maelezo ya bidhaa wakati wowote bila taarifa. Atmel haitoi ahadi yoyote ya kusasisha maelezo yaliyomo humu. Isipokuwa ikiwa imetolewa vinginevyo, bidhaa za Atmel hazifai, na hazitatumika katika, programu za magari. Bidhaa za Atmel hazikusudiwa, hazijaidhinishwa, au hazijaidhinishwa kutumika kama vijenzi katika programu zinazokusudiwa kusaidia au kudumisha maisha.