8/2/4K Bayt Sistemdaxili Proqramlaşdırıla bilən Flaşla Atmel 8-bit AVR Mikronəzarətçi
Xüsusiyyətlər
- Yüksək Performanslı, Aşağı Güclü AVR® 8-Bit Mikronəzarətçi
- Qabaqcıl RISC Memarlığı
- 120 Güclü Təlimat - Ən Tək Saat Cycle İcrası
- 32 x 8 Ümumi Məqsədli İş Qeydləri
- Tamamilə Statik Əməliyyat
- Uçucu olmayan Proqram və Məlumat Xatirələri
- 2/4 / 8K Bayt Sistem İçində Proqramlaşdırılan Proqram Yaddaş Flaşı
- Dözümlülük: 10,000 Yazma/Silmə Döngüsü
- 128/256/512 Bayt Sistemdə Proqramlaşdırıla bilən EEPROM
- Dözümlülük: 100,000 Yazma/Silmə Döngüsü
- 128/256/512 bayt Daxili SRAM
- Özünü Proqramlaşdırma Flash Proqramı və EEPROM Məlumat Təhlükəsizliyi üçün Proqramlaşdırma Kilidi
Periferik Xüsusiyyətlər
- Prescaler və iki PWM Kanalı ilə 8 bitli Taymer / Sayğac
- Ayrı Prescaler ilə 8-bit Yüksək Sürət Taymeri / Sayğac
- Ayrı Çıxış Müqayisəsi Qeydləri ilə 2 Yüksək Frekanslı PWM Çıxışları
- Proqramlaşdırılan Ölü Saat Generatoru
- USI - Başlanğıc Vəziyyəti Dedektoru ilə Universal Serial İnterfeysi
- 10 bitlik ADC
4 Tək Sonlu Kanallar
Proqramlaşdırıla bilən 2 Fərqli ADC Kanal Cütlüyü (1x, 20x)
Temperaturun ölçülməsi
Ayrı-ayrı çipli Osilatorlu proqramlaşdırıla bilən gözətçi timer
Çipli Analog Komparator
Xüsusi mikrokontrolör xüsusiyyətləri
debugWIRE On-chip Debug System
SPI Limanı vasitəsilə Sistemdə Proqramlaşdırıla bilər
Xarici və daxili kəsmə mənbələri
Aşağı Güc Boşluğu, ADC Səs Azaltma və Gücün aşağı salınması rejimləri
İnkişaf etmiş Açıq Sıfırlama Devri
Proqramlaşdırıla bilən qəhvəyi aşkarlama dövrəsi
Daxili Kalibrli Osilator
I / O və Paketlər
Altı Proqramlaşdırıla bilən I / O Xətti
8-pinli PDIP, 8-pinli SOIC, 20-pad QFN / MLF və 8-pinli TSSOP (yalnız ATtiny45 / V)
Əməliyyat Voltage
- ATtiny1.8V / 5.5V / 25V üçün 45 - 85V
- ATtiny2.7 / 5.5/25 üçün 45 - 85V
Sürət dərəcəsi
- 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
Sənaye Temperatur Aralığı
Aşağı enerji istehlakı
Aktiv rejim:
1 MHz, 1.8V: 300 µA
Açma rejimi:
Pin Konfiqurasiyaları
Pinout ATtiny25 / 45/85
Pin təsvirləri
VCC: Supply voltage.
GND: Yer.
Port B (PB5:PB0): Port B daxili çəkilmə rezistorları olan 6 bitlik iki istiqamətli I/O portudur (hər bit üçün seçilir). Port B çıxış tamponları həm yüksək sink, həm də mənbə qabiliyyəti ilə simmetrik sürücü xüsusiyyətlərinə malikdir. Giriş kimi, kənardan aşağı çəkilmiş Port B sancaqları, açılan rezistorlar işə salındıqda cərəyan mənbəyi olacaq. Port B sancaqları, hətta saat işləməsə belə, sıfırlama şərti aktiv olduqda üçlü ifadə edilir.
Port B ayrıca ATtiny25 / 45/85-in sadalanan kimi müxtəlif xüsusiyyətlərinin funksiyalarını yerinə yetirir
ATtiny25-də, proqramlaşdırıla bilən I / O portları PB3 və PB4 (sancaqlar 2 və 3) ATtiny15 ilə geriyə doğru uyğunluğu dəstəkləmək üçün ATtiny15 Uyumluluk Modu ilə dəyişdirilir.
RESET: Girişi sıfırlayın. Bu sancaqda minimum impuls uzunluğundan daha uzun müddətə aşağı səviyyə, hətta saat işləməsə və sıfırlama pininin söndürülməməsi şərti ilə sıfırlama yaradacaq. Minimum nəbz uzunluğu verilmişdir Cədvəl 21-4 səhifə 165. Daha qısa paxlalıların sıfırlanması üçün zəmanət verilmir.
Sıfırlama pimi (zəif) I / O pimi kimi də istifadə edilə bilər.
Bitdiview
ATtiny25 / 45/85, AVR gücləndirilmiş RISC arxitekturasına əsaslanan az güclü CMOS 8 bit mikrokontrolordur. ATtiny25 / 45/85 tək bir saat dövründə güclü təlimatları yerinə yetirməklə sistem dizayneri işləmə sürətinə qarşı enerji istehlakını optimallaşdırmağa imkan verən MHz başına 1 MIPS-ə yaxınlaşan nəticələr əldə edir.
Blok diaqram
AVR nüvəsi zəngin bir təlimat dəstini 32 ümumi təyinatlı iş registri ilə birləşdirir. Bütün 32 reyestrlər birbaşa Aritmetik Məntiq Vahidi (ALU) ilə əlaqələndirilir və bu, iki saatlıq bir dövriyyədə bir tək təlimatda əldə olunmasına imkan verir. Nəticədə yaradılan arxitektura daha effektiv koddur, eyni zamanda ənənəvi CISC mikrokontrolörlərindən on qat daha sürətli nəticə əldə edir.
ATtiny25 / 45/85 aşağıdakı xüsusiyyətləri təmin edir: 2/4 / 8K bayt Sistemdə Proqramlaşdırıla bilən Flaş, 128/256/512 bayt EEPROM, 128/256/256 bayt SRAM, 6 ümumi təyinatlı I / O sətir, 32 ümumi məqsədli işləmə qeydləri, müqayisə rejimləri ilə bir 8 bitlik Taymer / Sayğac, bir 8 bit yüksək sürətli Taymer / Sayğac, Universal Serial İnterfeys, Daxili və Xarici kəsilmələr, 4 kanallı, 10 bitlik ADC, daxili ilə proqramlaşdırıla bilən bir İzləmə Timer Osilator və üç proqram seçilə bilən güc qənaət rejimi. SRAM, Timer / Counter, ADC, Analog Comparator və Interrupt sisteminin işləməsinə davam edərkən boş rejim rejimi CPU-nu dayandırır. Açma rejimi qeyd müddəti qənaət edir və növbəti Çıxış və ya Təchizat Sıfırlanmasına qədər bütün çip funksiyalarını ləğv edir. ADC Səs Azaltma rejimi, ADC dönüşümləri zamanı keçid səsini minimuma endirmək üçün CPU və ADC xaricindəki bütün I / O modullarını dayandırır.
Cihaz, Atmel-in yüksək sıxlıqlı, dəyişkən olmayan yaddaş texnologiyasından istifadə etməklə istehsal olunur. On-chip ISP Flash, proqram yaddaşının bir SPI serial interfeysi vasitəsi ilə, ənənəvi dəyişkən olmayan yaddaş proqramçısı və ya AVR nüvəsində işləyən On-chip açılış kodu ilə yenidən sistemləşdirilməsinə imkan verir.
ATtiny25 / 45/85 AVR, C proqramı, Makro Assemblers, Program Debugger / Simulator və Qiymətləndirmə dəstləri daxil olmaqla tam bir proqram və sistem inkişaf vasitələri dəsti ilə dəstəklənir.
Resurslar haqqında
Hərtərəfli inkişaf alətləri dəsti, tətbiq qeydləri və məlumat cədvəlləri yükləmək üçün mövcuddur http://www.atmel.com/avr.
Kod Çıxışamples
Bu sənəddə sadə bir kod varampcihazın müxtəlif hissələrindən necə istifadə olunacağını qısaca göstərən les. Bu kodlar, məsələnamples hissənin xüsusi başlıq olduğunu düşünürük file tərtib edilməzdən əvvəl daxil edilir. Unutmayın ki, bütün C tərtibatçılarının başlıqlarında bit tərifləri yoxdur files və C -də kəsilmə işlənməsi kompilyatordan asılıdır. Ətraflı məlumat üçün C tərtibçisi sənədləri ilə təsdiq edin.
Genişləndirilmiş I / O xəritəsində yerləşən I / O Qeydləri üçün “IN”, “OUT”, “SBIS”, “SBIC”, “CBI” və “SBI” təlimatları genişləndirilmiş I-yə giriş imkanı verən təlimatlarla əvəz edilməlidir. / O. Tipik olaraq, bu, "SBRS", "SBRC", "SBR" və "CBR" ilə birləşən "LDS" və "STS" deməkdir. Bütün AVR cihazlarında genişləndirilmiş I / O xəritəsi daxil olmadığını unutmayın.
Kapasitiv Toxunma Sensoru
Atmel QTouch Library Atmel AVR mikrokontrollerlərində toxunuşa həssas interfeyslər üçün sadə istifadə həllini təqdim edir. QTouch Kitabxanasına QTouch® və QMatrix® əldə etmə üsulları üçün dəstək daxildir.
QTouch Kitabxanasını bağlayaraq və toxunma kanallarını və sensorlarını təyin etmək üçün kitabxananın Tətbiq Proqramı İnterfeysindən (API) istifadə edərək toxunma hissi hər hansı bir tətbiqə asanlıqla əlavə olunur. Tətbiq daha sonra kanal məlumatlarını almaq və toxunma sensorunun vəziyyətini təyin etmək üçün API çağırır.
QTouch Kitabxanası pulsuzdur və Atmel -dən yükləyə bilərsiniz webSayt. Daha çox məlumat və tətbiqin təfərrüatları üçün, Atmel -də də mövcud olan QTouch Kitabxana İstifadəçi Bələdçisinə baxın websayt.
Məlumatların saxlanması
Etibarlılıq Kvalifikasiya nəticələri, proqnozlaşdırılan məlumatların saxlanması uğursuzluq dərəcəsinin 1 ° C-də 20 il ərzində və ya 85 ° C-də 100 il ərzində 25 PPM-dən çox az olduğunu göstərir.
AVR CPU Nüvəsi
Giriş
Bu bölmə ümumiyyətlə AVR əsas memarlığı haqqında danışır. CPU nüvəsinin əsas funksiyası proqramın düzgün yerinə yetirilməsini təmin etməkdir. Bu səbəbdən CPU yaddaşlara çatmağı, hesablamalar aparmağı, ətraf mühitə nəzarət etməyi və kəsilmələri idarə etməyi bacarmalıdır.
Memarlıq bitdiview
Performansı və paralelliyi artırmaq üçün AVR, Harvard arxitekturasından istifadə edir - proqram və məlumatlar üçün ayrı xatirələr və avtobuslar. Proqram yaddaşındakı təlimatlar bir səviyyəli boru kəməri ilə icra olunur. Bir təlimat icra olunarkən, növbəti təlimat Proqramın yaddaşından alınır. Bu konsepsiya təlimatların hər saat dövründə yerinə yetirilməsini təmin edir. Proqram yaddaşı Sistem daxilində yenidən proqramlaşdırıla bilən bir yaddaşdır.
Sürətli giriş Qeydiyyatı File 32 x 8 bitlik ümumi təyinatlı iş registrlərindən ibarətdir ki, bu da tək saat dövriyyəsinə giriş vaxtıdır. Bu, bir dövrəli Arifmetik Məntiq Vahidinin (ALU) işləməsinə imkan verir. Tipik ALU əməliyyatında Registrdən iki operand çıxarılır File, əməliyyat icra olunur və nəticə yenidən Reyestrdə saxlanılır File- bir saat dövründə.
32 registrdən altısı, Data Space adresləşdirmə üçün üç 16 bitli dolayı adres qeyd göstəricisi kimi istifadə edilə bilər - bu da səmərəli ünvan hesablamalarını təmin edir. Bu ünvan göstəricilərindən biri də Flash Proqram yaddaşında cədvəlləri axtarmaq üçün ünvan göstəricisi kimi istifadə edilə bilər. Bu əlavə edilmiş funksiya qeydləri bu hissədə daha sonra təsvir olunan 16 bitlik X, Y və Z qeydləridir.
ALU qeydlər arasında və ya sabit və qeyd arasında hesab və məntiq əməliyyatlarını dəstəkləyir. Vahid qeyd əməliyyatları ALU-da da həyata keçirilə bilər. Aritmetik əməliyyatdan sonra əməliyyatın nəticəsi barədə məlumatları əks etdirmək üçün Status Qeydiyyatı yenilənir.
Proqram axını, bütün ünvan sahəsini birbaşa həll edə bilən şərti və qeyd-şərtsiz atlama və çağırış təlimatları ilə təmin edilir. Əksər AVR təlimatlarının tək bir 16 bitlik söz formatı var, eyni zamanda 32 bitlik təlimatlar da var.
Kesintiler və alt proqram çağırışları zamanı, qaytarma ünvanı Program Counter (PC) Stack-da saxlanılır. Yığın ümumi SRAM-da səmərəli şəkildə yerləşdirilir və nəticədə Yığın ölçüsü yalnız ümumi SRAM ölçüsü və SRAM istifadəsi ilə məhdudlaşır. Bütün istifadəçi proqramları Sıfırla rutinində SP-ni işə salmalıdır (alt prosedurlar və ya kəsilmələr yerinə yetirilmədən əvvəl). Stack Pointer (SP) I / O boşluğunda oxunur / yazılır. SRAM məlumatlarına AVR arxitekturasında dəstəklənən beş fərqli ünvan rejimi vasitəsilə asanlıqla daxil olmaq mümkündür.
AVR arxitekturasındakı yaddaş boşluqlarının hamısı xətti və müntəzəm yaddaş xəritələridir.
Çevik bir müdaxilə modulu, Status Qeydində əlavə bir Qlobal Müdaxilə Enable biti ilə giriş / çıxma sahəsindəki nəzarət qeydlərinə sahibdir. Bütün kəsilmələrin kəsilmə vektoru cədvəlində ayrıca bir kəsmə vektoru var. Kesintiler, Interrupt Vector mövqeyinə uyğun olaraq prioritetə sahibdirlər. Interrupt Vector ünvanı nə qədər az olsa, prioritet o qədər yüksəkdir.
G/Ç yaddaşında, Control Registers, SPI və digər I/O funksiyaları kimi CPU ətraf funksiyaları üçün 64 ünvan var. G/Ç yaddaşına birbaşa və ya Qeydçidən sonrakı Məlumat Məkanı yerləri kimi daxil olmaq olar File, 0x20 - 0x5F.
ALU - Aritmetik Məntiq Vahidi
Yüksək performanslı AVR ALU, 32 ümumi təyinatlı iş registri ilə birbaşa əlaqədə işləyir. Bir saat dövrü ərzində ümumi təyinatlı registrlər arasında və ya qeydiyyatdan keçidlə analoq arasında hesab əməliyyatları yerinə yetirilir. ALU əməliyyatları üç əsas kateqoriyaya bölünür - hesab, məntiqi və bit funksiyaları. Memarlığın bəzi tətbiqləri həm imzalı / imzasız vurma həm də kəsr formatını dəstəkləyən güclü bir çarpan təmin edir. Ətraflı təsvir üçün "Təlimat dəsti" bölməsinə baxın.
Status Qeydiyyatı
Status Reyestrində ən son icra olunan arifmetik təlimatın nəticəsi haqqında məlumat var. Bu məlumatlar şərti əməliyyatlar yerinə yetirmək üçün proqram axınının dəyişdirilməsi üçün istifadə edilə bilər. Status Qeydiyyatının, Təlimat dəsti istinadında göstərildiyi kimi bütün ALU əməliyyatlarından sonra yeniləndiyini unutmayın. Bu, bir çox hallarda xüsusi müqayisə təlimatlarının istifadəsi ehtiyacını aradan qaldıracaq və nəticədə daha sürətli və daha yığcam bir kod alınacaqdır.
Status Qeydiyyatı bir müdaxilə qaydasına daxil olarkən avtomatik olaraq saxlanılmır və fasilədən qayıdarkən bərpa olunur. Bu proqram tərəfindən idarə olunmalıdır.
SREG - AVR Status Qeydiyyatı
AVR Status Qeydiyyatı - SREG - aşağıdakı kimi müəyyən edilir:
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Global Interrupt Enable
Kesintilerin aktivləşdirilməsi üçün Global Interrupt Enable bit qurulmalıdır. Fərdi müdaxilə imkan nəzarəti daha sonra ayrı nəzarət registrlərində aparılır. Qlobal Interrupt Enable Qeydiyyatı silinirsə, kəsilmələrin heç biri fərdi interrupt imkan parametrlərindən asılı olaraq aktivləşdirilmir. I-bit bir kəsilmə baş verdikdən sonra hardware ilə təmizlənir və sonrakı kəsilmələri təmin etmək üçün RETI təlimatı ilə təyin olunur. I-bit, təlimat dəsti istinadında təsvir edildiyi kimi SEI və CLI təlimatları ilə tətbiqetmə tərəfindən qurula və silinə bilər.
Bit 6 - T: Bit Kopyalama Yığıncağı
Bit Copy təlimatları BLD (Bit LoaD) və BST (Bit Store) T-biti işlədilən bit üçün mənbə və ya təyinat olaraq istifadə edir. Qeydiyyatdan bir az qeyd File BST təlimatı ilə T -yə, T -də isə bir az da Registrdəki bir reyestrdə kopyalana bilər. File BLD təlimatı ilə.
Bit 5 - H: Yarım Daşıma Bayrağı
Half Carry Flag H, bəzi arifmetik əməliyyatlarda Half Carry-i göstərir. Half Carry, BCD hesabında faydalıdır. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Bit 4 – S: İşarə Biti, S = N ⊕ V
S-bit hər zaman müstəsna və ya Neqativ Bayraq N və İkisinin Tamamlayıcı Taşma Bayrağı V arasındadır. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Bit 3 - V: İkisinin tamamlayıcı daşqın bayrağı
The Two's Complete Overflow Flag V, ikisinin tamamlayıcı hesabını dəstəkləyir. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Bit 2 - N: Mənfi Bayraq
Mənfi Bayraq N hesab və ya məntiq əməliyyatında mənfi nəticəni göstərir. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Bit 1 - Z: Sıfır Bayraq
Sıfır Bayraq Z hesab və ya məntiq əməliyyatında sıfır nəticəni göstərir. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Bit 0 - C: Bayrağı daşıyın
Daşıma Bayrağı C hesab və ya məntiq əməliyyatında bir daşıyıcı olduğunu göstərir. Ətraflı məlumat üçün "Təlimat dəstinin təsviri" nə baxın.
Ümumi Məqsədli Qeydiyyat File
Qeydiyyat File AVR Enhanced RISC təlimat dəsti üçün optimallaşdırılmışdır. Lazımi performansa və elastikliyə nail olmaq üçün aşağıdakı giriş/çıxış sxemləri Reyestr tərəfindən dəstəklənir File:
Bir 8-bit çıxış operand və bir 8-bit nəticə giriş
İki 8-bit çıxışı operand və bir 8-bit nəticə girişi
İki 8-bit çıxışı operand və bir 16-bit nəticə girişi
Bir 16-bit çıxış operand və bir 16-bit nəticə giriş
Şəkil 4-2 CPU-da 32 ümumi təyinatlı iş registrinin quruluşunu göstərir.
Göründüyü kimi Şəkil 4-2, hər bir reyestrə eyni zamanda istifadəçi Məlumat Məkanının ilk 32 yerində xəritələndirərək bir Məlumat yaddaş ünvanı da verilir. SRAM yerləri olaraq fiziki olaraq tətbiq edilməsə də, bu yaddaş təşkilatı qeydlərə daxil olmaqda böyük rahatlıq təmin edir, çünki X-, Y- və Z-pointer qeydləri hər hansı bir reyestri indeksləşdirmək üçün qurula bilər. file.Registrdə işləyən təlimatların əksəriyyəti File bütün qeydlərə birbaşa çıxışı var və əksəriyyəti ayrı dövr təlimatlarıdır.
X-qeyd, Y-qeyd və Z-qeyd
R26..R31 qeydlərinin ümumi təyinatlı istifadəsinə bəzi əlavə funksiyaları vardır. Bu qeydlər məlumat sahəsinin dolayı ünvanlanması üçün 16 bit ünvan göstəriciləridir. Üç dolayı ünvan qeydləri X, Y və Z-də təsvir edildiyi kimi təyin olunur Şəkil 4-3.
Fərqli ünvanlama rejimlərində bu qeyd registrləri sabit yerdəyişmə, avtomatik artım və avtomatik azalma kimi funksiyalara malikdir (ətraflı məlumat üçün təlimat dəstinə istinad edin).
Yığın göstəricisi
Yığın əsasən müvəqqəti məlumatların saxlanması, yerli dəyişənlərin saxlanılması və fasilələr və alt proqram çağırışlarından sonra qayıdış ünvanlarının saxlanılması üçün istifadə olunur. Yığın İşarə Qeydiyyatı həmişə Yığın yuxarı hissəsini göstərir. Yığıncağın daha yüksək yaddaş yerlərindən aşağı yaddaş yerlərinə qədər böyüdükcə tətbiq olunduğunu unutmayın. Bu, Stack PUSH əmrinin Stack İşaretçisini azaltdığını nəzərdə tutur.
Stack Pointer, Subroutine və Interrupt Stacks-in yerləşdiyi data SRAM Stack sahəsini göstərir. Məlumat altındakı SRAM-dəki bu Yığın boşluğu, hər hansı bir alt proqram çağırışları yerinə yetirilmədən və ya müdaxilələr aktivləşdirilmədən əvvəl proqram tərəfindən müəyyənləşdirilməlidir. Yığın İşarəni 0x60-dan yuxarı nöqtəyə ayarlanmalıdır. Yığıncının göstəricisi PUSH əmri ilə yığının üzərinə itələdikdə bir azaldılır və qayıdış ünvanı alt proqram çağırışı və ya kəsilmə ilə yığına basdıqda iki azalır. Stack Pointer, POP əmri ilə Stack-dən atıldıqda bir artırılır və RET alt proqramından qayıdarkən və ya RETI interruptından qayıdarkən Stack-dən məlumatlar atıldıqda, iki dəfə artırılır.
AVR Stack Pointer, I / O boşluğunda iki 8-bit qeydiyyatçı kimi həyata keçirilir. Həqiqətən istifadə olunan bitlərin sayı tətbiqdən asılıdır. AVR arxitekturasının bəzi tətbiqlərindəki məlumat sahəsinin o qədər az olduğunu unutmayın ki, yalnız SPL lazımdır. Bu vəziyyətdə SPH Qeydiyyatı mövcud olmayacaqdır.
SPH və SPL - Yığın Pointer Qeydiyyatı
bit | 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 | ||
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
İlkin Dəyər | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Təlimatın icrası vaxtı
Bu bölmə təlimatın icrası üçün ümumi giriş vaxtı anlayışlarını təsvir edir. AVR CPU birbaşa çip üçün seçilmiş saat mənbəyindən yaradılan clkCPU CPU saatı tərəfindən idarə olunur. Daxili saat bölməsindən istifadə edilmir.
Şəkil 4-4 Harvard memarlığı və sürətli giriş Qeydiyyatı tərəfindən təmin edilən paralel təlimatların alınmasını və təlimat icra edilməsini göstərir File anlayış Bu, xərc başına funksiyalar, saatlar başına funksiyalar və güc vahidi üzrə funksiyalar üçün uyğun unikal nəticələrlə MHz başına 1 MIPS-ə qədər əldə etmək üçün əsas boru kəməri konsepsiyasıdır.
Şəkil 4-5. Tək Dövrlü ALU Əməliyyatı
Sıfırlayın və İdarəetməni dayandırın
AVR müxtəlif müdaxilə mənbələri təqdim edir. Bu kəsilmələr və ayrıca Reset Vector hər birinin Proqram yaddaşında ayrı bir Proqram Vektoru var. Bütün kəsilmələrə, fasiləni təmin etmək üçün Status Qeydiyyatındakı Qlobal Interrupt Enable bit ilə birlikdə bir məntiqi yazılmalı fərdi aktivləşdirmə bitləri verilir.
Proqramın yaddaş sahəsindəki ən aşağı ünvanlar, Varsayılan olaraq Sıfırla və Müdaxilə Vektorları olaraq təyin olunur. Vektorların tam siyahısı göstərilir Səhifə 48-də “kəsilmələr”. Siyahı fərqli kəsilmələrin prioritet səviyyələrini də müəyyənləşdirir. Ünvan nə qədər aşağı olarsa, prioritet səviyyəsidir. RESET ən yüksək prioritetə malikdir, sonrakı isə INT0 - Xarici Interrupt Request 0.
Bir kəsilmə baş verdikdə, Qlobal Interrupt Enable I-bit təmizlənir və bütün kəsilmələr aradan qaldırılır. İstifadəçi proqramı iç içə kəsilmələri təmin etmək üçün I-bitə məntiq yaza bilər. Bütün aktiv kəsilmələr daha sonra cari kəsmə rejimini kəsə bilər. I-bit avtomatik olaraq Interrupt from Return təlimatı - RETI yerinə yetirildikdə qurulur.
Əsasən iki növ kəsilmə var. Birinci növü Müdaxilə Bayrağını təyin edən bir hadisə tetikler. Bu kəsilmələr üçün, proqram sayğacı fasilə işləmə qaydasını yerinə yetirmək üçün faktiki Müdaxilə Vektoru ilə vektorlanır və aparat müvafiq Müdaxilə bayrağını təmizləyir. Müdaxilə bayraqları, təmizlənəcək bayraq bit mövqelərinə bir məntiq yazaraq da silinə bilər. Müvafiq kəsmə aktivləşdirmə biti təmizlənərkən bir kəsilmə şərti baş verərsə, kəsmə aktivləşdirilənə və ya proqram təminatı ilə bayraq silinənə qədər Müdaxilə Bayrağı qurulacaq və xatırlanacaq. Eynilə, Qlobal Interrupt Enable biti təmizlənərkən bir və ya daha çox kəsilmə şərtləri baş verərsə, müvafiq Interrupt Flag (lər) qurulacaq və Global Interrupt Enable bit qurulana qədər xatırlanacaq və sonra prioritet qaydada icra ediləcəkdir.
İkinci növ müdaxilə müdaxilə vəziyyəti mövcud olduğu müddətdə tetikler. Bu kəsilmələrdə, əslində, Interrupt Bayraqları yoxdur. Müdaxilə təmin edilmədən kəsilmə vəziyyəti yox olarsa, kəsilmə baş verməyəcəkdir.
AVR kəsilmədən çıxdıqda, hər zaman əsas proqrama qayıdacaq və gözləyən hər hansı bir fasilə verilmədən əvvəl bir təlimat daha yerinə yetirəcəkdir.
Qeyd edək ki, Status Qeydiyyatı bir müdaxilə qaydasına daxil olarkən avtomatik olaraq saxlanılmır və ya bir müdaxilə qaydasından qayıdarkən bərpa olunmur. Bu proqram tərəfindən idarə olunmalıdır.
Kesintiləri aradan qaldırmaq üçün CLI təlimatını istifadə edərkən, fasilələr dərhal aradan qalxacaq. CLI təlimatı ilə eyni vaxtda baş versə də, CLI təlimatından sonra heç bir fasilə icra edilməyəcək. Aşağıdakı example, vaxtlı EEPROM yazma ardıcıllığı zamanı kəsilmələrin qarşısını almaq üçün bunun necə istifadə oluna biləcəyini göstərir.
Montaj Kodu Example |
r16, SREG-də; SREG dəyərini saxla
cli; vaxtlı ardıcıllıq zamanı kəsmələri söndürün sbi EECR, EEMPE; EEPROM yazmağa başlayın sbi EECR, EEPE SREG çıxışı, r16 ; SREG dəyərini bərpa edin (I-bit) |
C Kodu Example |
char cSREG;
cSREG = SREG; /* SREG dəyərini saxla */ /* vaxtlı ardıcıllıq zamanı kəsmələri söndürün */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* SREG dəyərini bərpa edin (I-bit) */ |
Fasilələri aktivləşdirmək üçün SEI təlimatından istifadə edərkən, SEI-dən sonrakı təlimat, bu nümunədə göstərildiyi kimi, hər hansı bir dayandırılan kəsilmədən əvvəl yerinə yetiriləcəkdir.ample.
Montaj Kodu Example |
sei ; Qlobal Kesinti Aktivləşdirin
yatmaq; fasilə gözləyir, yuxuya gir ; qeyd: gözləmədən əvvəl yuxuya girəcəkdir ; kəsmək |
C Kodu Example |
_SEI(); /* Qlobal Kesinti Aktivləşdirin */
_SLEEP(); /* yuxuya girin, fasilə gözləyir */ / * qeyd: gözləyən hər hansı bir fasilədən əvvəl yuxuya girəcəkdir * / |
Cavab vaxtını kəsin
Bütün aktiv AVR fasilələri üçün kəsilmə icraatı minimum dörd saat dövrüdür. Dörd saat dövründən sonra faktiki kəsilmə işləmə qaydası üçün Proqramın vektor ünvanı yerinə yetirilir. Bu dörd saat dövrü ərzində Proqram Sayğacı Yığının üzərinə sıxılır. Vektor normal olaraq kəsilmə rejiminə keçiddir və bu sıçrayış üç saat dövrü alır. Çox dövrəli təlimatın icrası zamanı bir kəsilmə baş verirsə, bu təlimat kəsilmədən əvvəl tamamlanır. MCU yuxu rejimində olduqda bir kəsilmə baş verərsə, kəsilmənin icra reaksiya müddəti dörd saat dövrü ilə artır. Bu artım seçilmiş yuxu rejimindən başlanğıc vaxtına əlavə olaraq gəlir.
Müdaxilə rutinindən qayıdış dörd saat dövrü alır. Bu dörd saat dövrü ərzində Proqram Sayğacı (iki bayt) Yığından geri atılır, Yığın İşarəsi iki artırılır və SREG-də I-bit qurulur.
AVR xatirələri
Bu bölmə ATtiny25 / 45/85-dəki fərqli xatirələri təsvir edir. AVR arxitekturası iki əsas yaddaş boşluğuna malikdir: Məlumat yaddaşı və Proqram yaddaş sahəsi. Bundan əlavə, ATtiny25 / 45/85 məlumatların saxlanması üçün EEPROM Yaddaşına malikdir. Hər üç yaddaş sahəsi xətti və müntəzəmdir.
Sistemdə yenidən proqramlaşdırıla bilən Flash Proqram Yaddaş
ATtiny25 / 45/85, proqramın saxlanması üçün 2/4 / 8K baytlıq sistem daxilində yenidən proqramlaşdırıla bilən Flash yaddaş ehtiva edir. Bütün AVR təlimatlarının genişliyi 16 və ya 32 bit olduğundan, Flash 1024/2048/4096 x 16 olaraq təşkil edilmişdir.
Flash yaddaş ən azı 10,000 yazma / silmə dövrü dözümlülüyə malikdir. ATtiny25 / 45/85 Proqram Sayğacı (PC) 10/11/12 bit genişlikdədir, beləliklə 1024/2048/4096 Proqramın yaddaş yerlərinə müraciət edir. “Yaddaş Proqramı- qarışıq ”səhifə 147 SPI pinlərindən istifadə edərək Flash məlumatlarının serial yüklənməsi ilə bağlı ətraflı bir təsvir ehtiva edir.
Daimi cədvəllər Proqramın yaddaş ünvanı daxilində bölünə bilər (bax: LPM - Yükləmə Proqramı yaddaşının təlimatı təsvirinə).
Şəkil 5-1. Proqram yaddaş xəritəsi
SRAM Məlumat Yaddaş
Şəkil 5-2 ATtiny25 / 45/85 SRAM Yaddaşının necə təşkil olunduğunu göstərir.
Aşağı 224/352/607 Məlumat yaddaşı yerləri həm Qeydiyyata aiddir File, I/O yaddaşı və daxili məlumatlar SRAM. İlk 32 yer Qeydiyyata müraciət edir File, sonrakı 64 yer standart G/Ç yaddaşı və son 128/256/512 yerlər daxili məlumat SRAM -a müraciət edir.
Məlumat yaddaşı örtüyü üçün beş fərqli ünvan rejimi: Birbaşa, Yerdəyişmə ilə Dolayı, Dolayı, Öncədən azalma ilə birbaşa və Sonradan artımla Dolayı. Qeydiyyatda File, R26 -dan R31 -ə qədər olan qeydlər dolayı ünvan göstərici qeydlərinə malikdir.
Birbaşa müraciət bütün məlumat sahəsinə çatır.
Köçürmə ilə Dolayı rejim Y- və ya Z- qeydləri ilə verilən əsas ünvandan 63 ünvan yerinə çatır.
Avtomatik əvvəlcədən azaltma və artım sonrası dolayı ünvanlama rejimlərindən istifadə edildikdə, X, Y və Z ünvan qeydləri azaldılır və ya artırılır.
ATtiny32/64/128 -də 256 ümumi təyinatlı iş reyestri, 512 G/Ç Qeydiyyatı və 25/45/85 bayt daxili məlumat SRAM -a bütün bu ünvanlama rejimləri vasitəsilə daxil olmaq mümkündür. Qeydiyyat File ilə təsvir edilmişdir “Gen- eral Məqsəd Qeydiyyatı File"Səhifə 10 -da.
Şəkil 5-2. Məlumat Yaddaş Xəritəsi
Məlumat Yaddaşına Giriş Vaxt
Bu bölmə daxili yaddaşa giriş üçün ümumi giriş vaxtı anlayışlarını təsvir edir. Daxili məlumatların SRAM-a girişi aşağıda təsvir olunduğu kimi iki clkCPU dövründə həyata keçirilir Şəkil 5-3.
Şəkil 5-3. On-chip Data SRAM Access Cycles EEPROM Məlumat Yaddaş
ATtiny25 / 45/85, 128/256/512 bayt məlumat EEPROM yaddaşını ehtiva edir. Tək baytların oxunub yazıla biləcəyi ayrı bir məlumat sahəsi kimi təşkil edilmişdir. EEPROM ən azı 100,000 yazma / silmə dövrü dözümlülüyə malikdir. EEPROM ilə CPU arasındakı giriş, EEPROM Ünvan Qeydləri, EEPROM Məlumat Qeydiyyatı və EEPROM Nəzarət Reyestri göstərilməklə aşağıda təsvir edilmişdir. Ətraflı məlumat üçün baxın “Serial Yükləmə” səhifə 151.
EEPROM Oxuma / Yazma Giriş
EEPROM Giriş Qeydləri giriş / çıxma məkanında əldə edilə bilər.
EEPROM üçün yazma vaxtları verilmişdir Cədvəl 5-1 səhifə 21. Özünü təyinetmə funksiyası isə istifadəçi proqramına növbəti baytın nə vaxt yazıla biləcəyini aşkar etməyə imkan verir. Əgər istifadəçi kodunda EEPROM yazan təlimatlar varsa, bəzi ehtiyat tədbirləri görülməlidir. Çox süzülmüş enerji təchizatında VCC-nin yavaş-yavaş yüksəlməsi və ya azalması ehtimalı var
Güc açma/endirmə. Bu, cihazın bir müddət həcmdə işləməsinə səbəb olurtage istifadə olunan saat tezliyi üçün minimum olaraq göstəriləndən aşağıdır. Görmək “EEPROM Korrupsiyasının qarşısının alınması” səhifə 19 bu vəziyyətlərdə problemlərin qarşısını almaq üçün ətraflı məlumat üçün.
İstəmədən EEPROM yazmalarının qarşısını almaq üçün müəyyən bir yazma proseduruna əməl edilməlidir. Baxın “Atom Bayt Proqramlaşdırma ”səhifə 17 və “Bölünmüş Bayt Proqramlaşdırma” səhifə 17 bu barədə ətraflı məlumat üçün.
EEPROM oxunduqda, növbəti təlimat yerinə yetirilmədən əvvəl CPU dörd saat dövrü ərzində dayandırılır. EEPROM yazıldıqda, növbəti təlimat yerinə yetirilmədən əvvəl CPU iki saat dövrü dayandırılır.
Atom Baytı Proqramlaşdırma
Atom Bayt Proqramlaşdırmasından istifadə etmək ən sadə rejimdir. EEPROM-a bir bayt yazarkən istifadəçi ünvanı EEAR Qeydiyyatına, məlumatları EEDR Qeydinə yazmalıdır. EEPMn bitləri sıfırsa, EEPE yazmaq (EEMPE yazıldıqdan sonra dörd dövr ərzində) silmə / yazma əməliyyatına səbəb olacaqdır. Həm silmə, həm də yazma dövrü bir əməliyyatda aparılır və ümumi proqramlaşdırma müddəti verilir Cədvəl 5-1 səhifə 21. EEPE biti silmə və yazma əməliyyatları başa çatana qədər müəyyən qalır. Cihaz proqramlaşdırma ilə məşğul olsa da, başqa bir EEPROM əməliyyatı etmək mümkün deyil.
Bölmə Bayt Proqramlaşdırma
Silmək və yazmaq dövrünü iki fərqli əməliyyata bölmək mümkündür. Sistem, müəyyən bir müddət ərzində qısa giriş müddəti tələb edərsə faydalı ola bilər (adətən, enerji təchizatı həcmitage düşür). Əldə etmək üçün- tagBu üsula görə, yazma əməliyyatından əvvəl yazılacaq yerlərin silinməsi tələb olunur. Ancaq silmək və yazmaq əməliyyatları bölündüyü üçün sistem vaxt kritik əməliyyatları etməyə icazə verdikdə (adətən Power-updan sonra) silmə əməliyyatlarını etmək mümkündür.
Sil
Bir baytı silmək üçün ünvan EEAR-a yazılmalıdır. EEPMn bitləri 0b01-dirsə, EEPE-nin yazılması (EEMPE yazıldıqdan sonra dörd dövr ərzində) yalnız silmə əməliyyatına səbəb olacaq (proqramlaşdırma müddəti Cədvəl 5-1 səhifə 21). EEPE biti silmə əməliyyatı tamamlanana qədər təyin olunmuş vəziyyətdə qalır. Cihaz proqramlaşdırma ilə məşğul olarkən, başqa bir EEPROM əməliyyatı etmək mümkün deyil.
yaz
Bir yer yazmaq üçün istifadəçi ünvanı EEAR-a, məlumatları EEDR-ə yazmalıdır. EEPMn bitləri 0b10 olduqda, EEPE-nin yazılması (EEMPE yazıldıqdan sonra dörd dövr ərzində) yalnız yazma əməliyyatına səbəb olacaq (proqram müddəti verilir Cədvəl 5-1 səhifə 21). EEPE biti yazma əməliyyatı başa çatana qədər təyin olunmuş vəziyyətdə qalır. Yazılacaq yer yazılmadan əvvəl silinməyibsə, saxlanılan məlumatlar itirilmiş hesab edilməlidir. Cihaz proqramlaşdırma ilə məşğul olsa da, başqa bir EEPROM əməliyyatı etmək mümkün deyil.
Kalibr olunmuş Osilatör, EEPROM-un giriş vaxtını təyin etmək üçün istifadə olunur. Osilatör tezliyinin təsvir olunan tələblər daxilində olduğundan əmin olun “OSCCAL - Osilatör Kalibrləmə Qeydiyyatı” səhifə 31.
Aşağıdakı kod examples EEPROM silmək, yazmaq və ya atom yazmaq üçün bir montaj və bir C funksiyası göstərir. Keçmişamples, fasilələrin nəzarət edildiyini (məsələn, qlobal fasilələri aradan qaldıraraq) güman edir ki, bu funksiyaların icrası zamanı heç bir fasilə yaranmasın.
Montaj Kodu Example |
EEPROM_yaz:
; Əvvəlki yazının tamamlanmasını gözləyin sbic EECR, EEPE rjmp EEPROM_yazın ; Proqramlaşdırma rejimini qurun ldi r16, (0<<EEPM1)|(0<<EEPM0) EECR çıxışı, r16 ; Ünvan qeydində (r18: r17) ünvanı qurun EEARH, r18 çıxdı EEARL, r17 ; Məlumat qeydinə məlumat yazın (r19) EEDR çıxışı, r19 ; EEMPE-ə məntiqi birini yazın sbi EECR, EEMPE ; EEPE quraraq eeprom yazmağa başlayın sbi EECR, EEPE ret |
C Kodu Example |
etibarsız EEPROM_write(imzasız char ucAddress, unsigned char ucData)
{ /* Əvvəlki yazının tamamlanmasını gözləyin */ while(EECR & (1< ; /* Proqramlaşdırma rejimini təyin edin */ EECR = (0 < / * Ünvan və məlumat qeydlərini qurun * / EEAR = ucAddress; EEDR = ucData; /* EEMPE-yə məntiqi birini yazın */ EECR | = (1 < / * EEPE ayarlayaraq eeprom yazmağa başlayın * / EECR | = (1 < } |
Növbəti kod examples EEPROM oxumaq üçün montaj və C funksiyalarını göstərir. Keçmişamples, fasilələrin bu funksiyaların icrası zamanı heç bir kəsilmənin baş verməməsi üçün nəzarət edildiyini düşünür.
Montaj Kodu Example |
EEPROM_ oxu:
; Əvvəlki yazının tamamlanmasını gözləyin sbic EECR, EEPE rjmp EEPROM_read ; Ünvan qeydində (r18: r17) ünvanı qurun EEARH, r18 çıxdı EEARL, r17 ; EERE yazaraq oxumağa başlayın sbi EECR, EERE ; Məlumat qeydindən məlumatları oxuyun r16,EEDR-də ret |
C Kodu Example |
imzasız simvol EEPROM_read(imzasız simvol ucAddress)
{ / * Əvvəlki yazının tamamlanmasını gözləyin * / isə (EECR & (1 < ; / * Ünvan qeydini qurun * / EEAR = ucAddress; /* EERE yazaraq eeprom oxumağa başlayın */ EECR | = (1 < / * Məlumat reyestrindən məlumatların qaytarılması * / qayıtmaq EEDR; } |
EEPROM Korrupsiyasının qarşısının alınması
Aşağı VCC dövrlərində EEPROM məlumatları zədələnə bilər, çünki təchizatı həcmitage CPU və EEPROM -un düzgün işləməsi üçün çox aşağıdır. Bu məsələlər EEPROM istifadə edən lövhə səviyyəli sistemlərlə eynidir və eyni dizayn həlləri tətbiq olunmalıdır.
Bir EEPROM məlumat korrupsiyasına iki vəziyyət səbəb ola bilərtage çox aşağıdır. Birincisi, EEPROM -a müntəzəm yazma ardıcıllığı minimum həcm tələb edirtage düzgün işləmək. İkincisi, təchizat həcmi olduqda CPU özü təlimatları səhv yerinə yetirə bilərtage çox aşağıdır.
Bu dizayn tövsiyəsinə əməl etməklə EEPROM məlumatlarının korlanmasının qarşısını asanlıqla almaq olar:
Enerji təchizatı həcmi kifayət qədər olmadıqda AVR RESET -i aktiv (aşağı) saxlayıntage. Daxili Qəhvəyi Dedektörü (BOD) işə salmaqla bunu etmək olar. Daxili BOD -un aşkarlanma səviyyəsi uyğun gəlmirsə
lazımi aşkarlama səviyyəsində, xarici aşağı VCC sıfırlama mühafizə sxemi istifadə edilə bilər. Yazma əməliyyatı davam edərkən sıfırlama baş verərsə, enerji təchizatı voltage kifayətdir.
I / O Yaddaş
ATtiny25 / 45/85-in I / O boşluğu tərifi göstərilir “Qeydin xülasəsi” səhifə 200.
Bütün ATtiny25 / 45/85 I / Os və ətraf mühit qurğuları I / O boşluğuna yerləşdirilir. Bütün G / Ç yerlərinə LD / LDS / LDD və ST / STS / STD təlimatları daxil olmaqla 32 ümumi təyinatlı iş registri ilə G / Ç boşluğu arasında məlumat ötürülməsi ilə əldə edilə bilər. 0x00 - 0x1F ünvan aralığındakı I / O Qeydləri SBI və CBI təlimatları istifadə edərək birbaşa bit əldə edilə bilər. Bu qeydlərdə, tək bitlərin dəyəri SBIS və SBIC təlimatlarını istifadə edərək yoxlanıla bilər. Daha ətraflı məlumat üçün təlimat dəsti hissəsinə baxın. I / O xüsusi IN və OUT əmrlərindən istifadə edərkən 0x00 - 0x3F I / O adresləri istifadə olunmalıdır. LD və ST təlimatlarından istifadə edərək I / O Qeydlərini məlumat sahəsi kimi ünvanlayarkən bu ünvanlara 0x20 əlavə edilməlidir.
Gələcək cihazlarla uyğunluq üçün ayrılmış bitlər əldə edildikdə sıfıra yazılmalıdır. Rezervləşdirilmiş I / O yaddaş yaddaşları heç vaxt yazılmamalıdır.
Bəzi Status Bayraqları onlara məntiqi bir yazaraq silinir. Qeyd edək ki, CBI və SBI təlimatları yalnız göstərilən bit üzərində işləyəcək və bu səbəbdən bu cür Status Bayraqlarını olan qeydlərdə istifadə edilə bilər. CBI və SBI təlimatları yalnız 0x00 - 0x1F qeydləri ilə işləyir.
G / Ç və Ətraf İdarəetmə Qeydləri sonrakı hissələrdə izah olunur.
Qeydiyyatın təsviri
EEARH - EEPROM Ünvan Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | QULAQ 8 | QULAQ |
Oxu/Yaz | R | R | R | R | R | R | R | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bitlər 7: 1 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər gələcək istifadə üçün qorunur və həmişə sıfır olaraq oxunacaqdır.
Bit 0 - EEAR8: EEPROM Ünvan
Bu, ATtiny85'in ən əhəmiyyətli EEPROM adres bitidir. Daha az EEPROM, yəni ATtiny25 / ATtiny45 olan cihazlarda bu bit qorunur və həmişə sıfır oxunacaqdır. EEPROM Ünvan Register-in (EEAR) başlanğıc dəyəri təyin olunmamışdır və bu səbəbdən EEPROM-a çatmadan əvvəl müvafiq dəyər yazılmalıdır.
EEARL - EEPROM Ünvan Qeydiyyatı
bit
0x1E | QULAQ 7 | QULAQ 6 | QULAQ 5 | QULAQ 4 | QULAQ 3 | QULAQ 2 | QULAQ 1 | QULAQ 0 | QULAQ |
Arxa / Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | X | X | X | X | X | X | X | X |
Bit 7 - EEAR7: EEPROM Ünvanı
Bu, ATtiny45'in ən əhəmiyyətli EEPROM ünvan bitidir. Daha az EEPROM, yəni ATtiny25 olan cihazlarda bu bit qorunur və həmişə sıfır oxunacaqdır. EEPROM Ünvan Qeydiyyatının (EEAR) başlanğıc dəyəri təyin olunmamışdır və bu səbəbdən EEPROM-a çatmadan əvvəl müvafiq bir dəyər yazılmalıdır.
Bitlər 6: 0 - EEAR [6: 0]: EEPROM Ünvan
Bunlar EEPROM Ünvan Qeydinin (aşağı) bitləridir. EEPROM məlumat baytları 0… (128/256 / 512-1) aralığında xətti olaraq ünvanlanır. EEAR-ın başlanğıc dəyəri təyin olunmamışdır və bu səbəbdən EEPROM-a daxil olmaqdan əvvəl müvafiq dəyər yazılmalıdır.
EEDR - EEPROM Məlumat Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EEPROM yazma əməliyyatı üçün EEDR Qeydiyyatı, EEAR Qeydiyyatı tərəfindən verilən ünvanda EEPROM-a yazılacaq məlumatları ehtiva edir. EEPROM oxuma əməliyyatı üçün EEDR, oxunan məlumatları ehtiva edir
EEPROM tərəfindən EEAR tərəfindən verilən ünvanda.
5.5.4 EECR - EEPROM Nəzarət Reyestri |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | EERIE | EEMPE | EEPE | EERE | EECR | |
R R R / W oxuyun / yazın | R/W | R/W | R/W | R/W | R/W | ||||
İlkin dəyər 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: Ayrılmış Bit
Bu bit gələcək istifadə üçün qorunur və ATtiny0 / 25/45-də həmişə 85 olaraq oxunacaqdır. Gələcək AVR cihazları ilə uyğunluq üçün həmişə bu biti sıfıra yazın. Oxuduqdan sonra bu biti maskalayın.
Bit 6 - Res: Ayrılmış Bit
Bu bit ATtiny25 / 45/85-də qorunur və həmişə sıfır olaraq oxunacaqdır.
Bitlər 5: 4 - EEPM [1: 0]: EEPROM Proqramlaşdırma Modu Bitlər
EEPROM Proqramlaşdırma rejimi bitləri ayarı, EEPE yazarkən hansı proqram fəaliyyətinin başlanacağını təyin edir. Bir atom əməliyyatında məlumatları proqramlaşdırmaq (köhnə dəyəri silmək və yeni dəyəri proqramlaşdırmaq) və ya Sil və Yaz əməliyyatlarını iki fərqli əməliyyatda bölmək mümkündür. Fərqli rejimlər üçün Proqramlaşdırma vaxtları göstərilir Cədvəl 5-1. EEPE qurulsa da, EEPMn-ə hər hansı bir yazmaq laqeyd qalacaq. Sıfırlama zamanı EEPROM proqramlaşdırma ilə məşğul olmadıqca EEPMn bitləri 0b00-a sıfırlanacaq.
Cədvəl 5-1. EEPROM rejimi bitləri
EEPM1 | EEPM0 | Proqramlaşdırma vaxtı | Əməliyyat |
0 | 0 | 3.4 ms | Bir əməliyyatda silin və yazın (Atom Əməliyyatı) |
0 | 1 | 1.8 ms | Yalnız silin |
1 | 0 | 1.8 ms | Yalnız yaz |
1 | 1 | – | Gələcək istifadə üçün qorunur |
Bit 3 - EERIE: EEPROM Ready Interrupt Enable
SREG-də I-bit qurulubsa EERIE yazmaq EEPROM Ready Interrupt-a imkan verir. EERIE-nin sıfıra yazılması kəsilməni aradan qaldırır. EEPROM Ready Interrupt dəyişkən olmayan yaddaş proqramlaşdırmaya hazır olduqda daimi bir fasilə yaradır.
Bit 2 - EEMPE: EEPROM Master Proqramını Aktivləşdirin
EEMPE biti, birinə EEPE yazmağın təsir edib etməyəcəyini müəyyənləşdirir.
EEMPE qurulduqda, dörd saat dövrü içərisində EEPE ayarı seçilən ünvanda EEPROM-u proqramlaşdıracaqdır. EEMPE sıfırsa, EEPE parametrinin təsiri olmayacaq. EEMPE proqram təminatı ilə birinə yazıldıqda, dörd saat dövrü bitdikdən sonra bit biti sıfıra endirir.
Bit 1 - EEPE: EEPROM Proqramı Aktivləşdirin
EEPROM Proqramı Siqnalı Enable EEPE, EEPROM-a proqramlaşdırma imkan siqnaldır. EEPE yazıldıqda, EEPROM, EEPMn bit parametrlərinə uyğun olaraq proqramlaşdırılacaqdır. EEMPE biti EEPE-yə yazılmadan əvvəl birinə yazılmalıdır, əks halda heç bir EEPROM yazısı baş vermir. Yazmaq üçün giriş vaxtı keçdikdə, EEPE biti hardware ilə təmizlənir. EEPE qurulduqda, növbəti təlimat yerinə yetirilmədən əvvəl CPU iki dövr dayandırılır.
Bit 0 - EERE: EEPROM Read Enable
EEPROM Read Enable Signal - EERE - EEPROM-un oxunuşudur. EEAR Qeydiyyatında düzgün ünvan qurulduqda, EEPROM oxumasını tetiklemek üçün birinə EERE biti yazılmalıdır. EEPROM oxuma girişi bir təlimat alır və tələb olunan məlumatlar dərhal əldə edilə bilər. EEPROM oxunduqda, növbəti təlimat yerinə yetirilmədən əvvəl CPU dörd dövr dayandırılır. İstifadəçi oxuma əməliyyatına başlamazdan əvvəl EEPE bitini soruşmalıdır. Bir yazma əməliyyatı davam edirsə, nə EEPROM oxumaq, nə də EEAR Qeydiyyatını dəyişdirmək mümkündür.
Sistem Saatı və Saat Seçimləri
Saat sistemləri və onların paylanması
CPU saatı
CPU saatı sistemin AVR nüvəsinin işləməsi ilə əlaqəli hissələrinə yönləndirilir. Məsələnampbu tipli modullar Ümumi Məqsəd Reyestridir File, Status Qeydiyyatı və Stack Pointer tutan Məlumat yaddaşı. CPU saatının dayandırılması, nüvənin ümumi əməliyyatlar və hesablamalar aparmasına mane olur.
G / Ç Saatı - clkI / O
G / Ç saatı Timer / Counter kimi I / O modullarının əksəriyyəti tərəfindən istifadə olunur. G / Ç saatı Xarici Müdaxilə modulu tərəfindən də istifadə olunur, lakin bəzi xarici fasilələrin asinxronik məntiqlə aşkar edildiyini və G / Ç saatı dayandırılsa belə belə fasilələrin aşkarlanmasına imkan yaratdığını unutmayın.
Flash Saat - clkFLASH
Flash saat Flash interfeysinin işinə nəzarət edir. Flash saat ümumiyyətlə CPU saatı ilə eyni vaxtda aktivdir.
ADC Saatı - clkADC
ADC xüsusi bir saat domeni ilə təmin edilmişdir. Bu, rəqəmsal dövrənin yaratdığı səs-küyü azaltmaq üçün CPU və G / Ç saatlarını dayandırmağa imkan verir. Bu, daha dəqiq ADC dönüşüm nəticələri verir.
Sürətli Periferik Saat Nəsli üçün Daxili PLL - clkPCK
ATtiny25 / 45/85-dəki daxili PLL, bir qaynaq girişindən 8 qat vurulan bir saat tezliyi yaradır. Varsayılan olaraq, PLL daxili, 8.0 MHz RC osilatörün çıxışını mənbə kimi istifadə edir. Alternativ olaraq, PLLCSR-in bit LSM-i ayarlanarsa, PLL, RC osilatorun ikiyə bölən çıxışını istifadə edəcəkdir. Beləliklə, PLL-nin çıxışı, sürətli periferik saat 64 MHz-dir. Sürətli periferik saat və ya bundan əvvəlcədən hazırlanmış bir saat, Timer / Counter1 üçün saat mənbəyi və ya sistem saatı olaraq seçilə bilər. Görmək Şəkil 6-2. LSM of PLLCSR təyin edildikdə sürətli periferik saatın tezliyi ikiyə bölünür, nəticədə 32 MHz takt tezliyi əldə edilir. Qeyd edək ki, PLLCLK sistem saatı kimi istifadə edilərsə, LSM təyin edilə bilməz.
Şəkil 6-2. PCK Saat Sistemi.
PLL RC osilatorda kilidlənir və RC osilatorun OSCCAL reyestri vasitəsilə tənzimlənməsi sürətli periferik saatı eyni zamanda tənzimləyəcəkdir. Bununla birlikdə, RC osilatoru 8 MHz-dən yüksək bir frekansa aparılsa da, sürətli periferik saat tezliyi 85 MHz-də doyur (ən pis halda) və maksimum frekansda salınır. Qeyd etmək lazımdır ki, bu vəziyyətdə PLL artıq RC osilatör saatı ilə kilidlənmir. Bu səbəbdən PLL-nin düzgün iş aralığında qalması üçün OSCCAL tənzimləmələrinin 8 MHz-dən yüksək bir tezlikə aparılmaması tövsiyə olunur.
Daxili PLL aşağıdakı hallarda aktivləşdirilir:
PLLCSR qeydindəki PLLE biti qurulur.
CKSEL sigortası '0001' olaraq proqramlaşdırılmışdır.
CKSEL sigortası '0011' olaraq proqramlaşdırılmışdır.
PLLCSR bit PLOCK PLL kilidləndikdə təyin edilir. Həm daxili RC osilatoru, həm də PLL enerjinin kəsilməsi və gözləmə rejimində söndürülür.
ATtiny15 uyğunluq rejimində daxili PLL
ATtiny25 / 45/85, ATtiny15 istifadəçiləri üçün bir köç cihazı olduğundan, arxa tərəfdəki uyğunluq üçün bir ATtiny15 uyğunluq rejimi mövcuddur. ATtiny15 uyğunluq rejimi CKSEL sigortalarını '0011' səviyyəsinə proqramlaşdıraraq seçilir.
ATtiny15 uyğunluq rejimində daxili RC osilatorun tezliyi 6.4 MHz-ə qədər kalibr olunur və PLL-nin vurma əmsalı 4x-ə ayarlanır. Görmək Şəkil 6-3. Bu tənzimləmələrlə saat sistemi ATtiny15-ə uyğundur və nəticədə sürətli periferik saat 25.6 MHz (ATtiny15-də olduğu kimi) bir tezlikə sahibdir.
Şəkil 6-3. ATtiny15 Uyğunluq Rejimində PCK Saat Sistemi.
Saat mənbələri
Cihaz aşağıda göstərildiyi kimi Flash Fuse bitləri ilə seçilən aşağıdakı saat mənbəyi seçimlərinə malikdir. Seçilmiş mənbədən saat AVR saat generatoruna daxil edilir və müvafiq modullara yönləndirilir.
Cədvəl 6-1. Cihaz Saatı Seçimləri seçin
Cihaz Clocking Seçimi | CKSEL[3:0](1) |
Xarici Saat (bax səhifə 26) | 0000 |
Yüksək Frekanslı PLL Saatı (bax səhifə 26) | 0001 |
Kalibrlənmiş daxili osilator (bax səhifə 27) | 0010(2) |
Kalibrlənmiş daxili osilator (bax səhifə 27) | 0011(3) |
Daxili 128 kHz Osilatör (bax səhifə 28) | 0100 |
Aşağı Frekanslı Kristal Osilator (bax səhifə 29) | 0110 |
Kristal Osilator / Seramik Rezonator (bax səhifə 29) | 1000 - 1111 |
Qorunur | 0101, 0111 |
Bütün qoruyucular üçün “1” proqramlaşdırılmamış, “0” isə proqramlaşdırılmış deməkdir.
Cihaz seçilmiş bu seçim ilə göndərilir.
Bu sistem saatının dördə bölünməsi və 15 MHz saat tezliyi ilə nəticələndiyi ATtiny1.6 Uyumluluk Modu seçəcəkdir. Daha çox inormasiya üçün baxın “Kalibrlənmiş daxili osilator” səhifə 27.
Hər saat seçimi üçün müxtəlif seçimlər aşağıdakı hissələrdə verilmişdir. CPU Power-down-dan oyandıqda, seçilmiş saat mənbəyi işə salınma müddətini təyin etmək üçün istifadə olunur və təlimatın icrası başlamazdan əvvəl sabit Osilator işləməsini təmin edir. CPU sıfırlamadan başladıqda, normal işə başlamazdan əvvəl gücün sabit bir səviyyəyə çatmasına imkan verən əlavə bir gecikmə var. Watchdog Osilatör, başlanğıc vaxtının bu real vaxt hissəsini təyin etmək üçün istifadə olunur. Hər taym-out üçün istifadə olunan WDT Osilator dövrlərinin sayı göstərilir Cədvəl 6-2.
Cədvəl 6-2. Watchdog Osilator Cicles sayı
Tip vaxt aşımı | Dövrlərin sayı |
4 ms | 512 |
64 ms | 8K (8,192) |
Xarici Saat
Cihazı xarici saat mənbəyindən idarə etmək üçün CLKI göstərildiyi kimi idarə olunmalıdır Şəkil 6-4. Cihazı xarici saatda işlətmək üçün CKSEL Sigortaları “00” olaraq proqramlaşdırılmış olmalıdır.
Şəkil 6-4. Xarici Saat Sürücü Konfiqurasiyası
Bu saat mənbəyi seçildikdə, başlanğıc vaxtları göstərildiyi kimi SUT Sigortaları tərəfindən müəyyən edilir Cədvəl 6-3.
Cədvəl 6-3. Xarici Saat Seçimi üçün Başlama Vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə | Tövsiyə olunan İstifadə |
00 | 6 CK | 14CK | BOD aktivdir |
01 | 6 CK | 14CK + 4 ms | Sürətlə yüksələn güc |
10 | 6 CK | 14CK + 64 ms | Güc yavaşca yüksəlir |
11 | Qorunur |
Xarici bir saat tətbiq edərkən, MCU-nun sabit işləməsini təmin etmək üçün tətbiq olunan saat tezliyində ani dəyişikliklərin qarşısını almaq lazımdır. Bir saat dövründən digərinə bir% 2-dən çox tezlik dəyişməsi gözlənilməz davranışa səbəb ola bilər. Saat tezliyindəki bu cür dəyişikliklər zamanı MCU-nun Sıfırda saxlanmasını təmin etmək tələb olunur.
Sistem Clock Presale'nin hələ də sabit işləməsini təmin edərkən daxili saat tezliyinin işləmə vaxtı dəyişikliklərini həyata keçirmək üçün istifadə edilə biləcəyini unutmayın. Baxın “Sistem Clock Prescaler” səhifə 31 ətraflı məlumat üçün.
Yüksək Frekanslı PLL Saatı
Periferik Timer / Counter64 istifadəsi və sistem saat mənbəyi üçün RC Osilatora kilidlənmiş, nominal olaraq 1 MHz saat hızı təmin edən daxili bir PLL var. Bir sistem saatı mənbəyi olaraq seçildikdə, CKSEL sigortalarını '0001' ə qədər proqramlaşdıraraq, göstərildiyi kimi dördə bölünür. Cədvəl 6-4.
Cədvəl 6-4. Yüksək Tezlikli PLL Saatının İş Rejimləri
CKSEL[3:0] | Nominal Tezlik |
0001 | 16 MHz |
Bu saat mənbəyi seçildikdə, başlanğıc vaxtları göstərildiyi kimi SUT sigortaları tərəfindən müəyyən edilir Cədvəl 6-5.
Cədvəl 6-5. Yüksək Tezlikli PLL Saatı üçün Başlama Vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Yandırılma Sıfırlanmasından Əlavə Gecikmə (VCC = 5.0V) | Tövsiyə olunan istifadə |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | BOD aktivdir |
Cədvəl 6-5. Yüksək Tezlikli PLL Saatı üçün Başlama Vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Yandırılma Sıfırlanmasından Əlavə Gecikmə (VCC = 5.0V) | Tövsiyə olunan istifadə |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Sürətlə yüksələn güc |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Güc yavaşca yüksəlir |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Güc yavaşca yüksəlir |
Kalibrlənmiş daxili osilator
Varsayılan olaraq, Daxili RC Osilatörü təxminən 8.0 MHz saat təmin edir. Cild olsa datage və temperaturdan asılı olaraq, bu saat istifadəçi tərəfindən çox dəqiq bir şəkildə kalibr edilə bilər. Görmək “Kalibrlənmiş Daxili RC Osilatör Accu- irqçilik ”adlı səhifə 164-də və “Daxili Osilator Hızı” səhifə 192 daha ətraflı məlumat üçün. Cihaz CKDIV8 Sigortası proqramlaşdırılmış şəkildə göndərilir. Görmək “Sistem Clock Prescaler” səhifə 31 ətraflı məlumat üçün.
Bu saat, göstərildiyi kimi CKSEL Sigortalarını proqramlaşdıraraq sistem saatı olaraq seçilə bilər Səhifədəki cədvəl 6-6
27. Seçildiyi təqdirdə xarici komponent olmadan işləyəcəkdir. Sıfırlama zamanı aparat əvvəlcədən proqramlaşdırılmış kalibrləmə dəyərini OSCCAL Qeydiyyatına yükləyir və bununla da RC Osilatorunu avtomatik olaraq kalibrləyir. Bu kalibrləmə dəqiqliyi Fabrika kalibrlənməsi olaraq göstərilir Cədvəl 21-2 səhifə 164.
SW-dən OSCCAL qeydini dəyişdirərək baxın “OSCCAL - Osilatör Kalibrləmə Qeydiyyatı” səhifə 31, zavod kalibrindən istifadə etməklə müqayisədə daha yüksək bir kalibrləmə dəqiqliyi əldə etmək mümkündür. Bu kalibrləmə dəqiqliyi İstifadəçi kalibrlənməsi olaraq göstərilir Cədvəl 21-2 səhifə 164.
Bu Osilatör çip saatı kimi istifadə edildikdə, Watchdog Osilatoru hələ Watchdog Timer və Reset Time-out üçün istifadə ediləcəkdir. Əvvəlcədən proqramlaşdırılmış kalibrləmə dəyəri haqqında daha çox məlumat üçün bölməyə baxın “Kali- bration Bytes ”səhifə 150-də.
Daxili osilator, CKSEL sigortalarını “6.4” ə yazaraq göstərildiyi kimi 0011 MHz saat təmin etmək üçün də qurula bilər. Cədvəl 6-6 aşağıda. Bu parametr ATtiny15 Uyumluluk Modu olaraq qəbul edilir və ATtiny6.4-də olduğu kimi 15 MHz-də kalibrlənmiş saat mənbəyi təmin etmək üçün nəzərdə tutulub. ATtiny15 Uyumluluk Rejimində PLL, Timer / Counter6.4 üçün 25.6 MHz periferik saat siqnalı yaratmaq üçün 1 MHz-də işləyən daxili osilatordan istifadə edir (bax “8-bit Timer / Counter1 in ATtiny15 Modu ”səhifə 95-də). Qeyd edək ki, bu iş rejimində 6.4 MHz saat siqnalı həmişə dördə bölünür və 1.6 MHz sistem saatı təmin edir.
Cədvəl 6-6. Daxili kalibrlənmiş RC osilatorun iş rejimləri
CKSEL[3:0] | Nominal Tezlik |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Cihaz seçilmiş bu seçim ilə göndərilir.
Bu ayar, sistem saatının dördə bölündüyü və 15 MHz saat tezliyi ilə nəticələndiyi ATtiny1.6 Uyumluluk Modu seçəcəkdir.
Saat mənbəyi olaraq kalibrlənmiş 8 MHz daxili osilator seçildikdə, başlanğıc vaxtları SUT Sigortaları tərəfindən göstərildiyi kimi təyin olunur. Cədvəl 6-7 aşağıda.
Cədvəl 6-7. Daxili kalibrlənmiş RC osilator saatı üçün işə salınma vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə (VCC = 5.0V) | Tövsiyə olunan İstifadə |
00 | 6 CK | 14CK(1) | BOD aktivdir |
01 | 6 CK | 14CK + 4 ms | Sürətlə yüksələn güc |
10(2) | 6 CK | 14CK + 64 ms | Güc yavaşca yüksəlir |
11 | Qorunur |
1. RSTDISBL sigortası proqramlaşdırılmışsa, bu işə salma müddəti 14CK + 4 ms-ə qədər artırılaraq proqramlaşdırma rejiminə daxil ola bilərsiniz.
2. Cihaz seçilmiş bu seçim ilə göndərilir.
ATtiny15 Uyumluluk Rejimində başlama vaxtları göstərildiyi kimi SUT sigortaları ilə təyin olunur Cədvəl 6-8 aşağıda.
Cədvəl 6-8. Daxili kalibrlənmiş RC osilator saatı üçün işə salınma vaxtları (ATtiny15 rejimində)
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə (VCC = 5.0V) | Tövsiyə olunan İstifadə |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Qeyd: RSTDISBL qoruyucu proqramlaşdırılıbsa, proqramlaşdırma rejiminə daxil olmaq üçün bu işə salınma vaxtı 14CK + 4 ms-ə qədər artırılacaq.
Xülasə olaraq, ATtiny15 Uyumluluk Modu haqqında daha çox məlumat bölmələrdə tapıla bilər “Port B (PB5: PB0)” açıqdır səhifə 2, “ATtiny15 Uyumluluk Rejimində Daxili PLL” səhifə 24, “ATtiny8 rejimində 1 bit Timer / Counter15” açıqdır səhifə 95, "DebugWIRE məhdudiyyətləri" səhifə 140, “Kalibrləmə baytları” səhifə 150 və cədvəldə “Saat Prescaler Seçin ”səhifə 33-də.
Daxili 128 kHz Osilatör
128 kHz daxili osilator 128 kHz tezliyi təmin edən aşağı güclü Osilatordur. Tezlik 3V və 25°C-də nominaldır. Bu saat CKSEL qoruyucularını “0100” olaraq proqramlaşdırmaqla sistem saatı kimi seçilə bilər.
Bu saat mənbəyi seçildikdə, başlanğıc vaxtları göstərildiyi kimi SUT Sigortaları tərəfindən müəyyən edilir Cədvəl 6-9.
Cədvəl 6-9. 128 kHz daxili osilator üçün işə salınma vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə | Tövsiyə olunan İstifadə |
00 | 6 CK | 14CK(1) | BOD aktivdir |
01 | 6 CK | 14CK + 4 ms | Sürətlə yüksələn güc |
10 | 6 CK | 14CK + 64 ms | Güc yavaşca yüksəlir |
11 | Qorunur |
Qeyd: RSTDISBL qoruyucu proqramlaşdırılıbsa, proqramlaşdırma rejiminə daxil olmaq üçün bu işə salınma vaxtı 14CK + 4 ms-ə qədər artırılacaq.
Aşağı Frekanslı Kristal Osilator
Cihaz üçün saat mənbəyi olaraq 32.768 kHz saat kristalından istifadə etmək üçün, CKSEL sigortalarını '0110' olaraq təyin edərək aşağı tezlikli Kristal Osilator seçilməlidir. Kristal göstərildiyi kimi birləşdirilməlidir Şəkil 6-5. 32.768 kHz kristal üçün uyğun yük tutumunu tapmaq üçün istehsalçının məlumat səhifəsinə müraciət edin.
Bu osilator seçildikdə, başlanğıc vaxtları göstərildiyi kimi SUT sigortaları tərəfindən müəyyən edilir Cədvəl 6-10.
Cədvəl 6-10. Aşağı Tezlikli Kristal Osilator Saatının Seçilməsi üçün Başlama Vaxtları
SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə (VCC = 5.0V) | Tövsiyə olunan istifadə |
00 | 1K (1024) CK(1) | 4 ms | Sürətlə yüksələn güc və ya BOD effektivdir |
01 | 1K (1024) CK(1) | 64 ms | Güc yavaşca yüksəlir |
10 | 32K (32768) CK | 64 ms | Başlanğıcda sabit tezlik |
11 | Qorunur |
Qeyd: Bu seçimlərdən yalnız işə salınma zamanı tezliyin sabitliyi vacib olmadıqda istifadə edilməlidir.
Aşağı tezlikli Kristal Osilator daxili yük tutumu təmin edir, bax Cədvəl 6-11 hər TOSC pinində.
Cədvəl 6-11. Aşağı Tezlikli Kristal Osilatorun tutumu
Cihaz | 32 kHz Osc. Yazın | Qapaq (Xtal1 / Tosc1) | Qapaq (Xtal2 / Tosc2) |
AT 25/45/85 | Sistem Osc. | 16 pF | 6 pF |
Kristal Osilator / Seramik Rezonator
XTAL1 və XTAL2 sırasıyla bir ters çevrilmənin giriş və çıxışıdır ampgöstərildiyi kimi bir çipli osilatör olaraq istifadə üçün konfiqurasiya edilə bilən lifier Şəkil 6-5. Ya bir kvars kristalı, ya da bir keramika rezonatoru istifadə edilə bilər.
C1 və C2 həmişə həm kristallar, həm də rezonatorlar üçün bərabər olmalıdır. Kondansatörlərin optimal dəyəri istifadə olunan kristal və ya rezonatordan, boş tutumun miqdarından və ətraf mühitin elektromaqnit səs-küyündən asılıdır. Kristallarla istifadə üçün kondansatörlərin seçilməsi üçün bəzi ilkin təlimatlar verilmişdir Cədvəl 6-12 aşağıda. Seramik rezonatorlar üçün istehsalçı tərəfindən verilən kondansatör dəyərlərindən istifadə edilməlidir.
Cədvəl 6-12. Kristal Osilatorun İş Rejimləri
CKSEL[3:1] | Tezlik aralığı (MHz) | Kristallarla istifadə üçün C1 və C2 kondansatörləri üçün tövsiyə olunan sıra (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 |
Qeydlər: Bu seçim kristallarla deyil, yalnız keramika rezonatorları ilə istifadə edilməlidir.
Osilatör, hər biri müəyyən bir tezlik diapazonu üçün optimize edilmiş üç fərqli rejimdə işləyə bilər. İşləmə rejimi CKSEL [3: 1] qoruyucuları tərəfindən göstərildiyi kimi seçilir Cədvəl 6-12.
CKSEL0 Sigortası SUT ilə birlikdə [1: 0] Sigortalar başlanğıc vaxtlarını göstərildiyi kimi seçirlər Cədvəl 6-13.
Cədvəl 6-13. Kristal Osilator Saatının Seçilməsi üçün Başlama Vaxtları
CKSEL0 | SUT[1:0] | Açma vaxtından başlanğıc vaxtı | Sıfırlamadan əlavə gecikmə | Tövsiyə olunan İstifadə |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Seramik rezonator, sürətlə yüksələn güc |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Seramik rezonator, yavaş-yavaş yüksələn güc |
0 | 10 | 1K (1024) CK(2) | 14CK | Seramik rezonator, BOD aktivdir |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Seramik rezonator, sürətlə yüksələn güc |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Seramik rezonator, yavaş-yavaş yüksələn güc |
1 | 01 | 16K (16384) CK | 14CK | Kristal Osilator, BOD aktivdir |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Kristal Osilatör, sürətlə yüksələn güc |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Kristal Osilatör, yavaş-yavaş yüksələn güc |
Qeydlər
Bu seçimlər yalnız cihazın maksimum tezliyinə yaxın işləmədikdə və yalnız başlanğıcdakı tezlik sabitliyi tətbiq üçün vacib olmadıqda istifadə olunmalıdır. Bu seçimlər kristallar üçün uyğun deyil.
Bu seçimlər keramika rezonatorları ilə istifadə üçün nəzərdə tutulmuşdur və işə salınarkən tezlik sabitliyini təmin edəcəkdir. Cihazın maksimum tezliyinə yaxın işləmədikdə və işə salınarkən tezlik dayanıqlığı tətbiqetmə üçün vacib deyilsə, bunlar kristallarla da istifadə edilə bilər.
Varsayılan Saat mənbəyi
Cihaz CKSEL = “0010”, SUT = “10” və CKDIV8 ilə proqramlaşdırılmışdır. Varsayılan saat mənbəyi quruluşu, 8 MHz-də işləyən Daxili RC Osilatörüdür ki, ən uzun başlanğıc müddəti və 8 MHz sistem saatı ilə nəticələnən ilkin sistem saatı 1.0-dir. Bu standart parametr, bütün istifadəçilərin Sistem daxilində və ya Yüksək həcmdən istifadə edərək istədikləri saat mənbəyi ayarını edə bilmələrini təmin edirtage Proqramçı.
Sistem Saatı Prescaler
ATtiny25 / 45/85 sistem saatı ayarı ilə bölünə bilər “CLKPR - Saat Öncədən Qeydiyyat Qeydiyyatı” səhifə 32. Bu xüsusiyyət emal gücü tələbi aşağı olduqda enerji istehlakını azaltmaq üçün istifadə edilə bilər. Bu, bütün saat mənbəyi seçimləri ilə istifadə edilə bilər və bu, CPU və bütün sinxron periferiyaların saat tezliyinə təsir edəcəkdir. clkI/O, clkADC, clkCPU və clkFLASH aşağıda göstərildiyi kimi bir faktora bölünür. Cədvəl 6-15 səhifə 33.
Dəyişmə vaxtı
Prescaler parametrləri arasında keçid edildikdə, System Clock Prescaler, saat sistemində heç bir arızanın meydana gəlməməsini və heç bir ara tezlikin nə əvvəlki parametrə uyğun saat tezliyindən, nə də yeni ayara uyğun saat tezliyindən yüksək olmamasını təmin edir.
Prescaler tətbiq edən dalğalanma sayğacı bölünməmiş saatın tezliyində işləyir, bu da CPU-un saat tezliyindən daha sürətli ola bilər. Beləliklə, prescalatorun vəziyyətini təyin etmək mümkün deyil - oxunaqlı olsa da və bir saat bölməsindən digərinə keçid üçün dəqiq vaxt dəqiq proqnozlaşdırıla bilməz.
CLKPS dəyərləri yazıldığı andan etibarən yeni saat tezliyi aktiv olmamışdan əvvəl T1 + T2 ilə T1 + 2 * T2 arasındadır. Bu intervalda 2 aktiv saat kənarı istehsal olunur. Burada T1 əvvəlki saat dövrüdür və T2 yeni prescalator parametrinə uyğun dövrdür.
Saat Çıxış Tamponu
Cihaz CLKO pinindəki sistem saatını çıxara bilər (XTAL2 pin kimi istifadə olunmadıqda). Çıxışı təmin etmək üçün CKOUT Sigortası proqramlaşdırılmış olmalıdır. Bu rejim, çip saatı sistemdəki digər dövrələri idarə etmək üçün istifadə edildikdə uygundur. Sıfırlama zamanı saat çıxmayacağını və sigorta proqramlandıqda G / Ç pininin normal işinin ləğv olunacağını unutmayın. Daxili RC Osilatör, WDT Osilatör, PLL və xarici saat (CLKI) saat CLKO-da çıxdıqda seçilə bilər. Kristal osilatorlar (XTAL1, XTAL2) CLKO-da saat çıxışı üçün istifadə edilə bilməz. Sistem Clock Prescaler istifadə olunursa, çıxan bölünmüş sistem saatıdır.
Qeydiyyatın təsviri
OSCCAL - Osilator Kalibrləmə Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Bitlər 7: 0 - CAL [7: 0]: Osilator Kalibrləmə Dəyəri
Osilator Kalibrləmə Qeydiyyatı, osilator tezliyindən proses dəyişikliklərini çıxarmaq üçün Kalibrlənmiş Daxili RC Osilatoru kəsmək üçün istifadə olunur. Çipin sıfırlanması zamanı əvvəlcədən proqramlaşdırılmış bir kalibrləmə dəyəri avtomatik olaraq bu reyestrə yazılır və fabrikdə göstərildiyi kimi kalibrlənmiş tezlik verilir. Cədvəl 21-2 səhifə 164. Tətbiq proqramı, osilatorun tezliyini dəyişdirmək üçün bu qeydiyyatı yaza bilər. Osilatör, göstərildiyi kimi frekanslara qədər kalibr edilə bilər Cədvəl 21-2 səhifə 164. Bu aralığın xaricində kalibrləmə təmin edilmir.
Bu osilatorun EEPROM və Flash yazma girişlərini təyin etmək üçün istifadə olunduğunu və bu yazma müddətlərinin müvafiq olaraq təsir edəcəyini unutmayın. EEPROM və ya Flash yazılıbsa, 8.8 MHz-dən çox kalibrləmə. Əks təqdirdə, EEPROM və ya Flash yazmaq uğursuz ola bilər.
CAL7 biti osilatorun işləmə müddətini təyin edir. Bu bitin 0-a qoyulması ən aşağı tezlik aralığını verir, bu bitin 1-ə qoyulması ən yüksək tezlik aralığını verir. İki tezlik aralığı üst-üstə düşür, başqa sözlə OSCCAL = 0x7F ayarı OSCCAL = 0x80-dən daha yüksək tezlik verir.
CAL [6: 0] bitləri, seçilmiş aralıqdakı tezliyi tənzimləmək üçün istifadə olunur. 0x00 bir ayar bu aralığın ən aşağı frekansını, 0x7F ayarı isə aralığın ən yüksək tezliyini verir.
MCU-nun sabit işləməsini təmin etmək üçün kalibrləmə dəyəri kiçik dəyişdirilməlidir. Bir dövrdən digərinə nisbəti% 2-dən çox olan bir dəyişiklik gözlənilməz davranışa səbəb ola bilər. OSCCAL-də dəyişikliklər hər kalibrləmə üçün 0x20-dən çox olmamalıdır. Saat tezliyindəki bu cür dəyişikliklər zamanı MCU-nun Sıfırlama vəziyyətində saxlanılmasını təmin etmək tələb olunur
Cədvəl 6-14. Daxili RC Osilator Tezlik Aralığı
OSCCAL dəyəri | Nominal Tezliyə Hörmətlə Tipik Ən Aşağı Tezlik | Nominal Tezliyə Hörmətlə Tipik Ən Yüksək Tezlik |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Saat Öncədən Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Oxu/Yaz | R/W | R | R | R | R/W | R/W | R/W | R/W |
İlkin dəyər 0 0 0 0 Bit Təsvirinə baxın
Bit 7 - CLKPCE: Saat Prescaler Dəyişdirmə Aktivləşdirilir
CLKPCE bitinin CLKPS bitlərinin dəyişdirilməsini təmin etmək üçün məntiqə uyğun olaraq yazılmalıdır. CLKPCE biti yalnız CLKPR-dəki digər bitlər eyni vaxtda sıfıra yazıldıqda yenilənir. CLKPCE, yazıldıqdan sonra və ya CLKPS bitləri yazıldıqdan sonra dörd dövr donanımla təmizlənir. CLKPCE bitinin bu zaman aşımı müddətində yenidən yazılması nə vaxt bitmə müddətini uzadır, nə də CLKPCE bitini silir.
Bitlər 6: 4 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bitlər 3: 0 - CLKPS [3: 0]: Saat Prescaler Bitləri 3 - 0 seçin
Bu bitlər seçilmiş saat mənbəyi ilə daxili sistem saatı arasında bölmə faktorunu təyin edir. Bu bitlər tətbiq tələblərinə uyğun olaraq saat tezliyini dəyişmək üçün işləmə müddəti yazıla bilər. Bölücü əsas saat girişini MCU-ya böldükdə, bölmə faktorundan istifadə edildikdə bütün sinxron ətraf mühitlərin sürəti azalır. Bölmə amilləri verilmişdir Cədvəl 6-15.
Saat tezliyinin istəmədən dəyişməməsi üçün CLKPS bitlərini dəyişdirmək üçün xüsusi bir yazma proseduruna əməl edilməlidir:
Clock Prescaler Change Enable (CLKPCE) bitini birinə və CLKPR-dəki bütün bitləri sıfıra yazın.
Dörd dövr ərzində CLKPCE-ə sıfır yazarkən CLKPS-ə istədiyiniz dəyəri yazın.
Yazma prosedurunun dayandırılmadığından əmin olmaq üçün prescaler parametrini dəyişdirərkən kəsilmələr aradan qaldırılmalıdır.
CKDIV8 Fuse CLKPS bitlərinin ilkin dəyərini təyin edir. CKDIV8 proqramlaşdırılmamışsa, CLKPS bitləri "0000"-a sıfırlanacaq. CKDIV8 proqramlaşdırılıbsa, CLKPS bitləri işə salındıqda səkkiz bölgü əmsalı verərək “0011”ə sıfırlanır. Seçilmiş saat mənbəyi hazırkı iş şəraitində cihazın maksimum tezliyindən daha yüksək tezlikə malik olduqda bu funksiyadan istifadə edilməlidir. Qeyd edək ki, CKDIV8 Fuse parametrindən asılı olmayaraq CLKPS bitlərinə istənilən dəyər yazıla bilər. Tətbiq proqramı kifayət qədər bölgü faktorunun olmasını təmin etməlidir
seçilmiş saat mənbəyinin hazırkı iş şəraitində cihazın maksimum tezliyindən daha yüksək bir tezlikə sahib olması halında seçilir. Cihaz CKDIV8 Sigortası proqramlaşdırılmış şəkildə göndərilir.
Cədvəl 6-15. Saat Ölçəyicisini Seçin
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Saat Bölmə Faktoru |
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 | Qorunur |
1 | 0 | 1 | 0 | Qorunur |
1 | 0 | 1 | 1 | Qorunur |
1 | 1 | 0 | 0 | Qorunur |
1 | 1 | 0 | 1 | Qorunur |
1 | 1 | 1 | 0 | Qorunur |
1 | 1 | 1 | 1 | Qorunur |
Qeyd: Preskaler ATtiny15 uyğunluq rejimində deaktiv edilib və nə CLKPR-ə yazmaq, nə də CKDIV8 qoruyucu proqramlaşdırma sistem saatına heç bir təsir göstərmir (həmişə 1.6 MHz olacaq).
Güc İdarəetmə və Yuxu Modu
Yüksək performans və sənayedə aparıcı kod səmərəliliyi AVR mikrokontrolçularını aşağı güc tətbiqləri üçün ideal seçim edir. Bundan əlavə, yuxu rejimləri tətbiqetmənin MCU-da istifadə olunmayan modulları bağlamasına imkan verir və bununla da enerjiyə qənaət edir. AVR, istifadəçinin enerji istehlakını tətbiqetmənin tələblərinə uyğunlaşdırmasına imkan verən müxtəlif yuxu rejimlərini təmin edir.
Yuxu Modu
6-cü səhifədəki şəkil 1-23 müxtəlif saat sistemlərini və onların paylanmasını ATtiny25 / 45/85-də təqdim edir. Rəqəm uyğun bir yuxu rejiminin seçilməsində faydalıdır. Cədvəl 7-1 fərqli yuxu rejimlərini və onların oyanma mənbələrini göstərir.
Cədvəl 7-1. Fərqli Yuxu Rejimlərində Aktiv Saat Domenləri və Oyanma Mənbələri
Aktiv Saat Domenləri | Osilatorlar | Uyanma mənbələri | ||||||||||
Yuxu rejimi | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Əsas saat mənbəyi aktivdir | INT0 və pin dəyişdirmə | SPM / EEPROM
Hazır |
USI Vəziyyəti |
ADC | Digər I/O | Gözətçi iti kəsmək |
Boş | X | X | X | X | X | X | X | X | X | X | ||
ADC Səs Azaldılması | X | X | X(1) | X | X | X | X | |||||
Açılır | X(1) | X | X |
Qeyd: INT0 üçün yalnız səviyyəli kəsmə.
Üç yuxu rejimindən hər hansı birinə girmək üçün MCUCR-dəki SE biti məntiqə uyğun yazılmalı və bir SLEEP təlimatı yerinə yetirilməlidir. MCUCR Qeydiyyatındakı SM [1: 0] bitləri SLEEP təlimatı ilə hansı yuxu rejiminin (Boş, ADC Səs Azaldılması və ya aşağı salınması) aktivləşdiriləcəyini seçir. Görmək Cədvəl 7-2 xülasə üçün.
MCU yuxu rejimində olarkən aktiv bir kəsmə baş verərsə, MCU oyanır. Daha sonra MCU, başlanğıc vaxtına əlavə olaraq dörd dövr üçün dayandırılır, ara vermə rejimini yerinə yetirir və SLEEP-dən sonra verilən təlimatdan icra etməyə davam edir. Reyestrin məzmunu File və cihaz yuxudan oyandıqda SRAM dəyişməzdir. Yuxu rejimində bir sıfırlama baş verərsə, MCU oyanır və Reset Vektorundan işləyir.
Qeyd: oyanma üçün bir səviyyəli tetiklenen kəsmə istifadə edilərsə, MCU-nu oyatmaq (və MCU-nun kəsmə xidməti rejiminə daxil olması üçün) dəyişdirilmiş səviyyə bir müddət saxlanmalıdır. Görmək “Xarici kəsilmələr” səhifə 49 ətraflı məlumat üçün.
Boş rejim
SM[1:0] bitləri 00-a yazıldıqda, SLEEP təlimatı MCU-nu Boş rejimə daxil edir, CPU-nu dayandırır, lakin Analoq Müqayisəli, ADC, USI, Taymer/Sayğac, Gözətçi iti və kəsmə sisteminə işləməyə davam etməyə imkan verir. yemək. Bu yuxu rejimi əsasən clkCPU və clkFLASH-ı dayandırır, digər saatların işləməsinə icazə verir.
Bekleme rejimi, MCU-nun xarici tetiklenen fasilələrdən və Timer Overflow kimi daxili olanlardan oyanmasına imkan verir. Analog Müqayisələndiricinin kəsilməsindən oyanma tələb olunmursa, Analog Komparator ACD bitini quraşdıraraq gücləndirilə bilər. “ACSR - Analog Müqayisələndirici Nəzarət və Status Qeydiyyatı” səhifə 120. Bu, Bekleme rejimində enerji istehlakını azaldacaq. ADC aktivdirsə, bu rejim daxil edildikdə bir dönüşüm avtomatik olaraq başlayır.
ADC Səs Azaltma Modu
SM[1:0] bitləri 01-ə yazıldıqda, YUXU təlimatı MCU-nu ADC Səs-küyün Azaldılması rejiminə daxil edir, CPU-nu dayandırır, lakin ADC, xarici kəsilmələr və Gözətçi itinin işləməyə davam etməsinə icazə verir (əgər aktivdirsə). Bu yuxu rejimi clkI/O, clkCPU və clkFLASH-ı dayandırır və digər saatların işləməsinə icazə verir.
Bu, ADC üçün səs-küy mühitini yaxşılaşdırır və daha yüksək ölçülü ölçmələrə imkan verir. ADC aktivdirsə, bu rejim daxil edildikdə bir dönüşüm avtomatik olaraq başlayır. ADC Dönüşüm Tam interrupt forması xaricində yalnız Xarici Sıfırlama, Gözətçi Yenidən Sıfırlama, Qəhvəyi bir Sıfırlama, SPM / EEPROM hazır fasilə, INT0 xarici səviyyəli kəsilmə və ya bir pin dəyişdirmə müdaxiləsi MCU'yu ADC Səs Azaltma ilə oyandıra bilər rejimi.
Açma rejimi
SM [1: 0] bitləri 10-a yazıldıqda, SLEEP təlimatı MCU-nu Açma rejiminə keçir. Bu rejimdə Osilator dayandırılır, xarici müdaxilələr zamanı USI vəziyyətin aşkarlanmasına başlayır və Watchdog işləməyə davam edir (aktivdirsə). Yalnız Xarici Sıfırlama, Gözləmə İti Sıfırlama, Qəhvəyi Sıfırlama, USI başlanğıc şərtinin kəsilməsi, INT0-da xarici səviyyənin kəsilməsi və ya pin dəyişdirmə müdaxiləsi MCU-nu oyandıra bilər. Bu yuxu rejimi yaradılan bütün saatları dayandırır və yalnız asenkron modulların işinə imkan verir.
Proqram BOD aradan buraxın
Brown-Out Detector (BOD) BODLEVEL qoruyucuları ilə işə salındıqda (bax Cədvəl 20-4 səhifə 148), BOD tədarük həcmini fəal şəkildə izləyirtage yuxu zamanı. Bəzi cihazlarda, Power-Down yuxu rejimində proqram təminatı ilə BOD-u söndürməklə enerjiyə qənaət etmək mümkündür. Yuxu rejiminin enerji istehlakı, BOD -un qoruyucular tərəfindən qlobal olaraq söndürüldüyü ilə eyni səviyyədə olacaq.
BOD proqram tərəfindən söndürülübsə, BOD funksiyası yuxu rejiminə daxil olduqdan dərhal sonra söndürülür. Yuxudan oyandıqdan sonra BOD avtomatik olaraq yenidən aktivləşdirilir. Bu, yuxu dövründə VCC səviyyəsinin aşağı düşdüyü halda təhlükəsiz əməliyyatı təmin edir.
BOD aradan qaldırıldıqda, yuxu rejimindən oyanma vaxtı RESET-dən oyanma ilə eyni olacaq. İstifadəçi, oyanma vaxtlarını əl ilə tənzimləməlidir ki, bandgap referansının başlamağa vaxtı olsun və MCU kodun icrasına davam etmədən əvvəl BOD düzgün işləsin. Cədvəldəki SUT [1: 0] və CKSEL [3: 0] qoruyucu bitlərinə baxın “Fuse Low Byte” səhifə 149
BOD aradan qaldırılması MCU Control Qeydiyyatının BODS (BOD Sleep) biti tərəfindən idarə olunur, bax “MCUCR - MCU Nəzarəti Qeydiyyatdan keçin ”səhifə 37-də. Bu biti birinə yazmaq BOD-u Gücdən Söndürmə rejimində söndürür, sıfır yazmaq BOD-u aktiv saxlayır. Varsayılan ayar sıfırdır, yəni BOD aktivdir.
BODS bitinə yazmaq vaxtlı bir ardıcıllıqla və aktivləşdirmə biti ilə idarə olunur, bax “MCUCR - MCU Control Regis- ter ”səhifə 37-də.
Məhdudiyyətlər
BOD aradan buraxma funksiyası yalnız aşağıdakı cihazlarda tətbiq edilmişdir:
ATtiny25, versiya E və daha yenisi
ATtiny45, versiya D və daha yenisi
ATtiny85, versiya C və daha yenisi
Düzəlişlər cihaz paketində qeyd olunur və aşağıdakı kimi yerləşdirilə bilər:
8P3 və 8S2 paketlərinin alt tərəfi
Paketin yuxarı tərəfi 20M1
Enerji Azaltma Qeydiyyatı
Enerji Azaltma Qeydiyyatı (PRR), bax “PRR - Güc Azaldılması Qeydiyyatı” səhifə 38, saatı ayrı-ayrı ətraf mühitlərə dayandıraraq enerji istehlakını azaltmaq üçün bir metod təqdim edir. Ətraf mühitin mövcud vəziyyəti dondurulub və I / O qeydləri oxuna və ya yazıla bilməz. Saatı dayandırarkən periferik tərəfindən istifadə olunan mənbələr işğal altında qalacaq, buna görə də periferik əksər hallarda saatı dayandırmadan əvvəl söndürülməlidir. PRR-də biti təmizləməklə edilən bir modulu oyatmaq, modulu söndürmədən əvvəlki vəziyyətə gətirir.
Modulun bağlanması, ümumi enerji istehlakını əhəmiyyətli dərəcədə azaltmaq üçün Bekleme rejimində və Aktiv rejimdə istifadə edilə bilər. Bütün digər yuxu rejimlərində saat artıq dayandırılıb. Görmək “G / Ç modullarının təchizatı axını” səhifə 177 məsələnamples.
Enerji istehlakının minimuma endirilməsi
AVR nəzarətli bir sistemdə enerji istehlakını minimuma endirməyə çalışarkən nəzərə alınacaq bir neçə məsələ var. Ümumiyyətlə, yuxu rejimlərindən mümkün qədər çox istifadə edilməli və yuxu rejimi seçilməlidir ki, cihazın funksiyaları mümkün qədər az olsun. Lazım olmayan bütün funksiyalar aradan qaldırılmalıdır. Xüsusilə, mümkün olan ən aşağı enerji istehlakına nail olmağa çalışarkən aşağıdakı modullara xüsusi diqqət yetirilməlidir.
Analoqdan rəqəmsal çevirici
Aktiv edildikdə, ADC bütün yuxu rejimlərində aktiv olacaqdır. Gücdən qənaət etmək üçün istənilən yuxu rejiminə girmədən əvvəl ADC söndürülməlidir. ADC söndürüldükdə və yenidən açıldıqda, növbəti dönüşüm genişləndirilmiş bir dönüşüm olacaqdır. Baxın “Analoqdan Rəqəmsal çeviriciyə” səhifə 122 ADC əməliyyatı haqqında ətraflı məlumat üçün.
Analoq müqayisəli
Boş rejimə girərkən, Analog Comparator istifadə edilmədikdə deaktiv edilməlidir. ADC Səs Azaldılması rejiminə girərkən, Analog Müqayisəsi deaktiv edilməlidir. Digər yuxu rejimlərində Analog Comparator avtomatik olaraq deaktiv edilir. Ancaq Analog Müqayisə Daxili Cilddən istifadə etmək üçün qurulubsatage Giriş kimi istinad, Analog Comparator bütün yuxu rejimlərində deaktiv edilməlidir. Əks halda, Daxili Cildtage Referans yuxu rejimindən asılı olmayaraq aktiv ediləcək. Baxın “Analog Komparator” səhifə 119 Analoq müqayisəni necə quracağınız barədə ətraflı məlumat üçün.
Qəhvəyi detektor
Tətbiqdə Qəhvəyi Dedektor lazım deyilsə, bu modul söndürülməlidir. Brown-Out Detector BODLEVEL Sigortaları tərəfindən işə salınarsa, bütün yuxu rejimlərində aktiv olacaq və bu səbəbdən daima enerji sərf edir. Daha dərin yuxu rejimlərində bu, ümumi cari istehlaka əhəmiyyətli dərəcədə kömək edəcəkdir. Görmək "Qəhvəyi rəngli Detek- tion ”səhifə 41-də və “Software BOD Disable” səhifə 35 Brown-out Detector-un necə qurulacağına dair ətraflı məlumat üçün.
Daxili cildtage İstinad
Daxili cildtage Qəhvəyi Boşaltma, Analog Müqayisə və ya ADC tərəfindən lazım olduqda İstinad aktiv ediləcək. Bu modullar yuxarıdakı bölmələrdə göstərildiyi kimi əlil olarsa, daxili cildtage istinad əlil olacaq və enerji istehlak etməyəcək. Yenidən açıldıqda, istifadəçi çıxışdan istifadə etməzdən əvvəl istinadın başlamasına icazə verməlidir. Referans yuxu rejimində saxlanılırsa, çıxış dərhal istifadə edilə bilər. Baxın “Daxili cildtage İstinad ”, səhifə 42 başlanğıc vaxtı haqqında ətraflı məlumat üçün.
Gözətçi Taymeri
Tətbiqdə Watchdog Timer lazım deyilsə, bu modul söndürülməlidir. Gözətçi Timer aktiv edilərsə, bütün yuxu rejimlərində işə salınacaq və bu səbəbdən daima güc istehlak edər. Daha dərin yuxu rejimlərində bu, ümumi cari istehlaka əhəmiyyətli dərəcədə kömək edəcəkdir. Baxın “Gözətçi Timer” səhifə 42 Watchdog Timer-in necə qurulacağı barədə ətraflı məlumat üçün.
Port sancaqları
Yuxu rejiminə daxil olarkən bütün port pinləri minimum gücdən istifadə etmək üçün konfiqurasiya edilməlidir. Ən başlıcası, heç bir sancaqların müqavimətli yükləri idarə etməməsini təmin etməkdir. Həm Giriş/Çıxış saatının (clkI/O) həm də ADC saatının (clkADC) dayandırıldığı yuxu rejimlərində cihazın giriş buferləri söndürüləcək. Bu, heç bir enerji istehlak edilməməsini təmin edir
lazım olmadıqda giriş məntiqi ilə. Bəzi hallarda giriş məntiqi oyanma şərtlərini aşkarlamaq üçün lazımdır və
sonra aktiv olacaq. Bölməyə baxın “Rəqəmsal girişin aktivləşdirilməsi və yuxu rejimləri” səhifə 57 hansı sancaqların aktiv edildiyi haqqında ətraflı məlumat üçün. Əgər giriş buferi işə salınıbsa və giriş siqnalı üzən qalırsa və ya VCC/2-yə yaxın analoq siqnal səviyyəsinə malikdirsə, giriş buferi həddindən artıq gücdən istifadə edəcək.
Analoq giriş pinləri üçün rəqəmsal giriş buferi hər zaman söndürülməlidir. Giriş pinində VCC/2-yə yaxın analoq siqnal səviyyəsi hətta aktiv rejimdə də əhəmiyyətli cərəyana səbəb ola bilər. Rəqəmsal giriş buferləri Rəqəmsal Girişin Disable Registerinə (DIDR0) yazmaqla deaktiv edilə bilər. istinad edin “DIDR0 - Rəqəmsal Giriş Qeydiyyatını 0 aradan qaldırın” səhifə 121 ətraflı məlumat üçün.
Qeydiyyatın təsviri
MCUCR - MCU Nəzarət Reyestri
MCU Nəzarət Reyestri gücün idarə edilməsi üçün nəzarət bitlərini ehtiva edir.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Oxu/Yaz | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD Yuxu
BOD aradan buraxma funksiyası yalnız bəzi cihazlarda mövcuddur. Görmək “Məhdudiyyətlər” səhifə 36.
BOD-u yuxu zamanı aradan qaldırmaq üçün (bax Cədvəl 7-1 səhifə 34) BODS bit məntiqlə yazılmalıdır. Bu zamanlanmış bir ardıcıllıqla və MCUCR-də BODSE imkan biti ilə idarə olunur. Əvvəlcə həm BODS, həm də BODSE birinə qoyulmalıdır. İkincisi, dörd saat dövrü ərzində BODS birinə, BODSE isə sıfıra ayarlanmalıdır. BODS biti qurulduqdan sonra üç saat dövrü aktivdir. Həqiqi yuxu rejimi üçün BOD-u söndürmək üçün BODS aktiv olduqda yuxu təlimatı yerinə yetirilməlidir. BODS biti üç saat dövründən sonra avtomatik olaraq silinir.
Sleeping BOD tətbiq olunmayan cihazlarda bu bit istifadə olunmur və həmişə sıfır oxuyacaqdır.
Bit 5 - SE: Sleep Enable
SLEEP təlimatı yerinə yetirildikdə MCU-nun yuxu rejiminə keçməsi üçün SE biti məntiqə yazılmalıdır. Proqramçının məqsədi olmadığı təqdirdə MCU-nun yuxu rejiminə girməsinin qarşısını almaq üçün SLEEP təlimatının icrasından dərhal əvvəl Yuxu Aktivləşdirici (SE) bitini birinə yazmaq və oyandıqdan dərhal sonra onu təmizləmək tövsiyə olunur.
Bitlər 4: 3 - SM [1: 0]: Yuxu rejimi Bits 1 və 0 seçin
Bu bitlər göstərildiyi kimi mövcud üç yuxu rejimi arasında seçim edir Cədvəl 7-2.
Cədvəl 7-2. Yuxu rejimi seçin
SM1 | SM0 | Yuxu rejimi |
0 | 0 | Boş |
0 | 1 | ADC Səs Azaldılması |
1 | 0 | Açılır |
1 | 1 | Qorunur |
Bit 2 - BODSE: BOD Sleep Enable
BOD aradan buraxma funksiyası yalnız bəzi cihazlarda mövcuddur. Görmək “Məhdudiyyətlər” səhifə 36.
BODSE bit, BODS bit təsvirində izah edildiyi kimi BODS nəzarət bitinin ayarlanmasına imkan verir. BOD aradan qaldırılması vaxtlı bir ardıcıllıqla idarə olunur.
Bu bit proqram BOD deaktiv edilmədiyi cihazlarda istifadə edilmir və bu cihazlarda sıfır olaraq oxunacaqdır.
PRR - Güc Azaldılması Qeydiyyatı
Güc Azaldılması Qeydiyyatı, periferik saat siqnallarının əlil olmasına imkan verərək enerji istehlakını azaltmaq üçün bir metod təqdim edir.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Oxu/Yaz | R | R | R | R | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlər 7: 4 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bit 3 - PRTIM1: Güc Azaltma Zamanlayıcısı / Sayaç1
Bu bitə bir məntiq yazmaq Timer / Counter1 modulunu bağlayır. Timer / Counter1 işə salındıqda, əməliyyat bağlanmadan əvvəlki kimi davam edəcəkdir.
Bit 2 - PRTIM0: Güc Azaltma Zamanlayıcısı / Sayaç0
Bu bitə bir məntiq yazmaq Timer / Counter0 modulunu bağlayır. Timer / Counter0 işə salındıqda, əməliyyat bağlanmadan əvvəlki kimi davam edəcəkdir.
Bit 1 - PRUSI: Güc Azaldılması USI
Bu bitə bir məntiq yazmaq, saatı modula dayandıraraq USI-nı bağlayır. USI-ni yenidən oyandırarkən, düzgün işləməsini təmin etmək üçün USI yenidən işə salınmalıdır.
Bit 0 - PRADC: Güc Azaldılması ADC
Bu bitə bir məntiq yazmaq ADC-ni bağlayır. Bağlanmadan əvvəl ADC söndürülməlidir. Qeyd edək ki, ADC saatı analog müqayisənin bəzi hissələri tərəfindən də istifadə olunur, yəni bu bit yüksək olduqda analoq müqayisədən istifadə edilə bilməz.
Sistem Nəzarəti və Sıfırlama
AVR sıfırlanır
Sıfırlama zamanı bütün I / O Qeydləri ilkin dəyərlərinə uyğunlaşdırılır və proqram Reset Vector-dan işə başlayır. Sıfırlama Vektorunda yerləşdirilən təlimat sıfırlama işləmə qaydalarına dair RJMP - Nisbi Atlama - təlimatı olmalıdır. Proqram heç vaxt kəsmə mənbəyini təmin etmirsə, Müdaxilə Vektorları istifadə olunmur və bu yerlərə müntəzəm proqram kodu yerləşdirilə bilər. Dövrə diaqramı Şəkil 8-1 sıfırlama məntiqini göstərir. Sıfırlama dövrəsinin elektrik parametrləri verilmişdir “Sistem və Sıfırlama Xüsusiyyətləri” səhifə 165.
Şəkil 8-1 Məntiqi Sıfırlayın
Sıfırlama mənbəyi aktiv olduqda AVR-nin I / O portları dərhal ilkin vəziyyətinə qaytarılır. Bunun üçün hər hansı bir saat mənbəyinin işləməsi tələb olunmur.
Bütün sıfırlama mənbələri hərəkətsiz olduqdan sonra, daxili sıfırlama uzanaraq gecikmə sayğacı çağırılır. Bu, normal əməliyyat başlamazdan əvvəl gücün sabit bir səviyyəyə çatmasına imkan verir. Gecikmə sayğacının vaxt bitmə müddəti istifadəçi tərəfindən SUT və CKSEL Qoruyucuları vasitəsilə müəyyən edilir. Gecikmə dövrü üçün fərqli seçimlər təqdim olunur “Saat Mənbələr ”səhifə 25-də.
Mənbələri sıfırlayın
ATtiny25 / 45/85 dörd sıfırlama mənbəyinə malikdir:
Gücün sıfırlanması. Təchizat həcmi olduqda MCU sıfırlanırtage Power-on Reset həddi (VPOT) altındadır.
Xarici sıfırlama RESET pinində minimum nəbz uzunluğundan daha uzun bir müddət olduqda MCU sıfırlanır.
Gözətçi sıfırlama. Gözətçi Timer müddəti bitdikdə və Gözətçi aktiv edildikdə MCU sıfırlanır.
Qəhvəyi rəngli sıfırlama. Təchizat həcmi olduqda MCU sıfırlanırtage VCC Qəhvəyi Sıfırlama Həddindən (VBOT) aşağıdır və Qəhvəyi Çıxış Detektoru aktivdir.
Açıq sıfırlama
Açma-sıfırlama (POR) nəbzi bir çipdə aşkarlama dövrəsi tərəfindən yaradılır. Algılama səviyyəsi “Sistem- tem və sıfırlama xüsusiyyətləri ”səhifə 165-də. VCC aşkarlama səviyyəsindən aşağı olduqda POR aktivləşdirilir. POR dövrəsi işəsalma sıfırlamasını işə salmaq, həmçinin təchizatındakı nasazlığı aşkar etmək üçün istifadə edilə bilər.tage.
Güc Açma Sıfırlama (POR) dövrəsi, cihazın Açılışdan sıfırlanmasını təmin edir. Güc Açma Sıfırlama eşik cildinə çatmaqtage, VCC yüksəldikdən sonra cihazın RESET rejimində nə qədər müddət saxlanılacağını təyin edən gecikmə sayğacını işə salır. VCC aşkarlama səviyyəsindən aşağı düşdükdə RESET siqnalı heç bir gecikmə olmadan yenidən aktivləşdirilir.
Şəkil 8-2. MCU işə salınması, RESET VCC ilə bağlıdır
DAXİLİ RESET
Şəkil 8-3. MCU işə salınması, RESET Extended Extended
Xarici sıfırlama
Xarici Sıfırlama effektiv olduğu təqdirdə RESET pinindəki aşağı səviyyə ilə yaranır. Zərbələri minimum nəbz genişliyindən daha uzun müddətə sıfırlayın (bax “Sistem və Sıfırlama Xüsusiyyətləri” səhifə 165) saat işləməsə də sıfırlama yaradacaq. Qısa impulsların sıfırlanmasına zəmanət verilmir. Tətbiq olunan siqnal Sıfırlama Eşiği Cildinə çatdıqdatage – VRST – müsbət kənarında, gecikmə sayğacı Taym-aut müddəti bitdikdən sonra MCU-nu işə salır.
Şəkil 8-4. Əməliyyat zamanı xarici sıfırlama
Qəhvəyi təyini
ATtiny25/45/85, sabit tətik səviyyəsi ilə müqayisə edərək əməliyyat zamanı VCC səviyyəsini izləmək üçün On-chip Brown-out Detection (BOD) sxeminə malikdir. BOD üçün tətik səviyyəsi BODLEVEL qoruyucuları tərəfindən seçilə bilər. Tətik səviyyəsi sünbülsüz Qəhvəyi Çıxış Təsbitini təmin etmək üçün histerezise malikdir. Aşkarlama səviyyəsindəki histerezis VBOT+ = VBOT + VHYST/2 və VBOT- = VBOT – VHYST/2 kimi şərh edilməlidir.
BOD işə salındıqda və VCC tətik səviyyəsindən aşağı dəyərə qədər azaldıqda (VBOT-də) Şəkil 8-5), Qəhvəyi Sıfırlama dərhal aktivləşdirilir. VCC trigger səviyyəsindən yuxarı qalxdıqda (VBOT+ in Şəkil 8-5), gecikmə sayğacı tTOUT vaxtı bitdikdən sonra MCU-nu işə salır.
BOD sxemi yalnız voltage, verilən tBOD-dan daha uzun müddət tətik səviyyəsindən aşağıda qalır “Sistem və Sıfırlama Xüsusiyyətləri” səhifə 165.
Gözətçi itinin sıfırlanması
Gözətçi iti vaxtı bitdikdə, bir CK dövrü müddətində qısa bir sıfırlama nəbzi yaradacaq. Bu impulsun enən kənarında gecikmə taymeri tTOUT Time-out müddətini saymağa başlayır. istinad edin “Gözətçi Timer” səhifə 42 Watchdog Timer-in istismarı barədə ətraflı məlumat üçün.
Cildtage Referans Siqnalları və İşə Başlama vaxtını aktivləşdirir
Cildtage istinadının istifadə edilmə üsulunu təsir edə biləcək bir başlanğıc vaxtı var. İşə başlama vaxtı verilir “Sistem və Sıfırlama Xüsusiyyətləri” səhifə 165. Enerjiyə qənaət etmək üçün istinad həmişə açıq deyil. İstinad aşağıdakı vəziyyətlərdədir:
BOD aktiv olduqda (BODLEVEL [2: 0] Sigorta Bitlərini proqramlaşdıraraq).
Bandgap referansı Analog müqayisəyə qoşulduqda (ACSR-də ACBG bitini təyin edərək).
ADC aktiv olduqda.
Beləliklə, BOD aktiv edilmədikdə, ACBG bitini qurduqdan və ya ADC-ni işə saldıqdan sonra istifadəçi hər zaman Analog Müqayisələndiricidən və ya ADC-dən çıxışdan əvvəl istinadın başlanmasına icazə verməlidir. Gücün aşağı salınması rejimində enerji sərfiyyatını azaltmaq üçün istifadəçi söndürmə rejiminə keçmədən əvvəl istinadın söndürülməsini təmin etmək üçün yuxarıdakı üç şərtdən qaçınmaq olar.
Gözətçi Taymeri
Watchdog Timer, 128 kHz-də işləyən bir çipli Osilatördən saatlaşdırılır. Watchdog Timer prescaler-i idarə edərək, Watchdog Reset intervalında göstərildiyi kimi düzəldilə bilər. Cədvəl 8-3 səhifə 46. WDR - Watchdog Reset - təlimat Watchdog Timer'i sıfırlayır. Watchdog Timer deaktiv edildikdə və Chip Reset baş verdikdə yenidən qurulur. Sıfırlama müddətini təyin etmək üçün on fərqli saat dövrü seçilə bilər. Sıfırlama müddəti başqa bir Watchdog Sıfırlama olmadan bitərsə, ATtiny25 / 45/85 sıfırlayır və Sıfırlama Vektorundan həyata keçirir. Nəzarətçi Sıfırlama ilə əlaqədar vaxt təfərrüatları üçün baxın Cədvəl 8-3 səhifə 46.
Watchdog Timer, sıfırlama əvəzinə bir fasilə yaratmaq üçün də konfiqurasiya edilə bilər. Powerd-dən oyanmaq üçün Watchdog istifadə edərkən bu çox faydalı ola bilər.
Watchdog-un istəmədən dayandırılmasını və ya vaxtın istənilmədən dəyişməsini qarşısını almaq üçün, WDTON sigortası tərəfindən göstərildiyi kimi iki fərqli təhlükəsizlik səviyyəsi seçilir. Cədvəl 8-1 istinad edin “Dəyişdirmə üçün vaxtlı ardıcıllıqlar Gözətçi Timerinin fiqurasiyası ”səhifə 43-də ətraflı məlumat üçün.
Cədvəl 8-1. WDT Konfiqurasiyası WDTON-un Sigorta Parametrlərinin funksiyası kimi
WDTON | Təhlükəsizlik Səviyyəsi | WDT Başlanğıc Vəziyyəti | WDT-ni necə söndürmək olar | Vaxtı necə dəyişdirmək olar |
Proqramlaşdırılmamışdır | 1 | Əlil | Müddətli ardıcıllıq | Heç bir məhdudiyyət yoxdur |
Proqramlaşdırılmış | 2 | Aktivdir | Həmişə aktivdir | Müddətli ardıcıllıq |
Şəkil 8-7. Gözətçi Taymeri
Nəzarətçi Taymerinin Konfiqurasiyasını Dəyişdirmək üçün Müddətli Ardıcıllıqlar
Konfiqurasiyanın dəyişdirilməsi ardıcıllığı iki təhlükəsizlik səviyyəsi arasında bir qədər fərqlənir. Hər səviyyə üçün ayrıca prosedurlar təsvir olunur.
Təhlükəsizlik Səviyyəsi 1: Bu rejimdə Gözətçi Taymeri əvvəlcə söndürülür, lakin heç bir məhdudiyyət olmadan WDE bitini birinə yazmaqla aktivləşdirilə bilər. Aktivləşdirilmiş Gözətçi Taymerini söndürərkən vaxtlı ardıcıllıq tələb olunur. Aktivləşdirilmiş Gözətçi Taymerini söndürmək üçün aşağıdakı prosedura əməl edilməlidir:
Eyni əməliyyatda WDCE və WDE-yə bir məntiq yazın. WDE bitinin əvvəlki dəyərindən az olan bir məntiq WDE-yə yazılmalıdır.
Növbəti dörd saat dövrü ərzində, eyni əməliyyatda WDE və WDP bitlərini istədiyiniz kimi yazın, lakin WDCE biti təmizləndi.
Təhlükəsizlik səviyyəsi 2: Bu rejimdə Gözətçi Taymeri həmişə aktivdir və WDE biti həmişə bir kimi oxunacaq. Watchdog Taym-aut müddətini dəyişdirərkən vaxtlı ardıcıllıq tələb olunur. Watchdog Taym-autunu dəyişdirmək üçün aşağıdakı prosedura əməl edilməlidir:
Eyni əməliyyatda məntiqi birini WDCE və WDE-yə yazın. WDE hər zaman qurulsa da, vaxtı ardıcıllıqla başlamaq üçün WDE birinə yazılmalıdır.
Növbəti dörd saat dövrü ərzində, eyni əməliyyatda WDP bitlərini istədiyiniz kimi yazın, lakin WDCE biti təmizləndikdə. WDE bitinə yazılan dəyər əhəmiyyətsizdir.
Kod Çıxışample
Aşağıdakı kod example, WDT -ni söndürmək üçün bir montaj və bir C funksiyasını göstərir. Keçmişample, bu funksiyaların icrası zamanı heç bir kəsilmənin baş verməməsi üçün fasilələrin idarə olunduğunu (məsələn, qlobal miqyasda kəsilmələri aradan qaldıraraq) güman edir.
Montaj Kodu Example(1) |
WDT_off:
wdr ; MCUSR-də WDRF silin ldi r16, (0< MCUSR-dən, r16 ; Məntiqi birini WDCE və WDE-yə yazın ; İstəmədən Watchdog Sıfırlanmasının qarşısını almaq üçün köhnə prescalator ayarını saxlayın r16-da, WDTCR ori r16, (1< WDTCR çıxışı, r16 ; WDT söndürün ldi r16, (0< WDTCR çıxışı, r16 ret |
C Kodu Example(1) |
etibarsız WDT_off (etibarsız)
{ _WDR (); /* MCUSR-də WDRF-i təmizləyin */ MCUSR = 0x00 /* WDCE və WDE-yə məntiqi birini yazın */ WDTCR |= (1< / * WDT söndürün * / WDTCR = 0x00; } |
Qeyd: 1. Baxın "Kod Examples ”səhifəsində 6.
Qeydiyyatın təsviri
MCUSR - MCU Status Qeydiyyatı
MCU Status Qeydiyyatı, hansı sıfırlama mənbəyinin MCU sıfırlanmasına səbəb olduğu barədə məlumat verir.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Oxu/Yaz | R | R | R | R | R/W | R/W | R/W | R/W |
İlkin dəyər 0 0 0 0 Bit Təsvirinə baxın
Bitlər 7: 4 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bit 3 - WDRF: Gözətçi itinin sıfırlanması
Bu bit nəzarətçi sıfırlama baş verərsə təyin edilir. Bit bir Açılış Sıfırlama ilə və ya bayrağa bir məntiq sıfır yazaraq sıfırlanır.
Bit 2 - BORF: Qəhvəyi rəngli sıfırlama bayrağı
Qəhvəyi bir sıfırlama baş verərsə, bu bit müəyyən edilir. Bit bir Açılış Sıfırlama ilə və ya bayrağa bir məntiq sıfır yazaraq sıfırlanır.
Bit 1 - EXTRF: Xarici Sıfırlama Bayrağı
Xarici sıfırlama baş verərsə, bu bit müəyyən edilir. Bit bir Açılış Sıfırlama ilə və ya bayrağa bir məntiq sıfır yazaraq sıfırlanır.
Bit 0 - PORF: Açıq Sıfırlama Bayrağı
Açıq Sıfırlama baş verərsə, bu bit müəyyən edilir. Bit yalnız bayrağa bir məntiq sıfır yazaraq sıfırlanır.
Bir sıfırlama vəziyyətini təyin etmək üçün Reset Flags-dan istifadə etmək üçün istifadəçi MCUSR-i oxumalı və sonra proqramda mümkün qədər tez sıfırlamalıdır. Başqa bir sıfırlama başlamazdan əvvəl qeyd silinərsə, Reset Bayraqlarını Sıfırlayaraq yenidən qurma mənbəyi tapıla bilər.
WDTCR - Gözətçi Timer Nəzarət Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Oxu/Yaz | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: Gözətçi Timeout Interrupt Flag
Bu bit Watchdog Timer-də bir vaxt bitmə baş verdikdə və Watchdog Timer fasilə üçün konfiqurasiya edildikdə qurulur. Müvafiq kəsmə işləmə vektoru yerinə yetirildikdə WDIF hardware ilə təmizlənir. Alternativ olaraq, WDIF bayrağa bir məntiq yazaraq silinir. SREG və WDIE-də I-bit qurulduqda, Watchdog Time-out Interrupt yerinə yetirilir.
Bit 6 - WDIE: Gözətçi Zaman Aşma müdaxiləsini aktivləşdirin
Bu bit birinə yazıldıqda, WDE silinir və Status Qeydiyyatındakı I-bit qurulursa, İzləmə vaxtı bitmə müdaxiləsi aktivləşdirilir. Bu rejimdə, Watchdog Timer-də bir fasilə baş verərsə, sıfırlama yerinə müvafiq fasilə icra olunur.
WDE qurulubsa, vaxt qurtardıqda WDIE avtomatik olaraq hardware ilə təmizlənir. Bu fasilə istifadə edərkən Watchdog Reset təhlükəsizliyini qorumaq üçün faydalıdır. WDIE biti təmizləndikdən sonra növbəti zaman aşımı sıfırlama əmələ gətirəcəkdir. Nəzarətçi sıfırlamamaq üçün hər kəsildikdən sonra WDIE qurulmalıdır.
Cədvəl 8-2. Gözətçi Taymer Konfiqurasiyası
WDE | WDIE | Gözətçi Timer Dövlət | Vaxt bitmə əməliyyatı |
0 | 0 | Dayandı | Heç biri |
0 | 1 | Qaçış | kəsmək |
1 | 0 | Qaçış | Sıfırlayın |
1 | 1 | Qaçış | kəsmək |
Bit 4 - WDCE: Gözətçi Dəyişikliyini Aktivləşdirin
Bu bit WDE bit məntiq sıfırına yazıldıqda təyin olunmalıdır. Əks təqdirdə, Gözətçi köməyi dayandırılmayacaq. Birinə yazıldıqdan sonra, dörd saat dövründən sonra aparat bu biti təmizləyəcək. Bir Watchdog söndürmə proseduru üçün WDE bitinin təsvirinə baxın. Prescaler bitlərini dəyişdirərkən bu bit də təyin olunmalıdır. Görmək “Müddətli Ardıcıllıqlar Gözətçi Taymerinin Konfiqurasiyasını Dəyişdirmək üçün ”səhifə 43.
Bit 3 - WDE: Watchdog Enable
WDE məntiqlə yazıldıqda, Watchdog Timer işə salınır və WDE sıfır məntiqlə yazılırsa, Watchdog Timer funksiyası söndürülür. WDE yalnız WDCE bitində məntiq səviyyəsinə sahib olduqda silinə bilər. Aktivləşdirilmiş Watchdog Timer-i deaktiv etmək üçün aşağıdakı prosedura əməl edilməlidir:
Eyni əməliyyatda WDCE və WDE-yə bir məntiq yazın. Disable əməliyyatı başlamazdan əvvəl birinə qoyulmasına baxmayaraq bir məntiq WDE-yə yazılmalıdır.
Növbəti dörd saat dövrü ərzində WDE-yə bir məntiq 0 yazın. Bu Gözətçi itkisini aradan qaldırır.
Təhlükəsizlik səviyyəsi 2-də, yuxarıda göstərilən alqoritmlə belə, Watchdog Timer-i söndürmək mümkün deyil. Görmək “Gözətçi Timerinin Konfiqurasiyasını Dəyişdirmək üçün Müddətli Sıra” səhifə 43.
1-ci təhlükəsizlik səviyyəsində WDE MCUSR-də WDRF tərəfindən ləğv edilir. Görmək “MCUSR - MCU Status Qeydiyyatı” səhifə 44 WDRF təsviri üçün. Bu, WDRF qurulduqda WDE-nin həmişə qurulduğu mənasını verir. WDE-ni təmizləmək üçün yuxarıda göstərilən prosedurla Watchdog'u ləğv etmədən əvvəl WDRF təmizlənməlidir. Bu xüsusiyyət, uğursuzluğa səbəb olan şərtlər zamanı birdən çox sıfırlama və uğursuzluqdan sonra etibarlı bir başlanğıc təmin edir.
Qeyd: Gözətçi taymeri tətbiqdə istifadə edilməyəcəksə, cihazın işə salınmasında gözətçi itinin söndürülməsi prosedurundan keçmək vacibdir. Watchdog təsadüfən işə salınıbsa, məsələnampqaçan bir göstərici və ya qəhvəyi vəziyyətdə olduqda cihaz sıfırlanacaq və bu da yeni bir gözətçi sıfırlamasına səbəb olacaq. Bu vəziyyətin qarşısını almaq üçün proqram təminatı hər zaman WDRF bayrağını və WDE nəzarət bitini başlatma qaydasında silməlidir.
Bits 5, 2: 0 - WDP [3: 0]: Gözətçi Timer Prescaler 3, 2, 1 və 0
WDP [3: 0] bitləri Watchdog Timer aktiv olduqda Watchdog Timer-in əvvəlcədən ölçülməsini təyin edir. Fərqli əvvəlcədən ölçmə dəyərləri və bunlara uyğun Müddət Aşma Dövrləri göstərilir Cədvəl 8-3.
Cədvəl 8-3. Gözətçi Taymer Öncədən Seçin
WDP3 | WDP2 | WDP1 | WDP0 | WDT Osilator Dövrlərinin Sayı | VCC-də tipik fasilə = 5.0V |
0 | 0 | 0 | 0 | 2K (2048) dövrü | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) dövrü | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) dövrü | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) dövrü | 0.125 s |
0 | 1 | 0 | 0 | 32K (32764) dövrü | 0.25 s |
0 | 1 | 0 | 1 | 64K (65536) dövrü | 0.5 s |
0 | 1 | 1 | 0 | 128K (131072) dövrü | 1.0 s |
0 | 1 | 1 | 1 | 256K (262144) dövrü | 2.0 s |
1 | 0 | 0 | 0 | 512K (524288) dövrü | 4.0 s |
1 | 0 | 0 | 1 | 1024K (1048576) dövrü | 8.0 s |
Cədvəl 8-3. Gözətçi Taymerinin Öncədən Seçimi (davamı var)
WDP3 | WDP2 | WDP1 | WDP0 | WDT Osilator Dövrlərinin Sayı | VCC-də tipik fasilə = 5.0V |
1 | 0 | 1 | 0 | Qorunur(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Qeyd: 1. Əgər seçilərsə, 0b1010-dan aşağı olan etibarlı parametrlərdən biri istifadə olunacaq.
Fasilələr
Bu bölmə ATtiny25 / 45/85-də göstərildiyi kimi kəsilmə işlənməsinin xüsusiyyətlərini təsvir edir. AVR müdaxiləsi ilə əlaqəli ümumi bir məlumat üçün müraciət edin "İdarəetməni yenidən qurun və dayandırın" səhifə 12.
ATtiny25 / 45/85-də müdaxilə edən vektorlar
ATtiny25 / 45/85-in kəsmə vektorları təsvir edilmişdir Cədvəl 9-1aşağıda.
Cədvəl 9-1. Vektorları sıfırlayın və kəsin
Vektor nömrəsi | Proqramın ünvanı | Mənbə | Kəsmə tərifi |
1 | 0x0000 | RESET | Xarici pin, açma sıfırlama, qəhvəyi sıfırlama, gözətçi sıfırlama |
2 | 0x0001 | INT0 | Xarici kəsilmə istəyi 0 |
3 | 0x0002 | PCINT0 | Pin dəyişdirmə müdaxiləsi 0 |
4 | 0x0003 | TIMER1_COMPA | Taymer / Sayaç1 Qarşılaşmanı müqayisə edin A |
5 | 0x0004 | TIMER1_OVF | Timer / Counter1 Taşması |
6 | 0x0005 | TIMER0_OVF | Timer / Counter0 Taşması |
7 | 0x0006 | EE_RDY | EEPROM hazırdır |
8 | 0x0007 | ANA_COMP | Analoq müqayisəli |
9 | 0x0008 | ADC | ADC Konversiyası Tamamlandı |
10 | 0x0009 | TIMER1_COMPB | Taymer / Sayaç1 Qarşılaşmanı müqayisə edin B |
11 | 0x000A | TIMER0_COMPA | Taymer / Sayaç0 Qarşılaşmanı müqayisə edin A |
12 | 0x000B | TIMER0_COMPB | Taymer / Sayaç0 Qarşılaşmanı müqayisə edin B |
13 | 0x000C | WDT | Gözətçi vaxtı bitdi |
14 | 0x000D | USI_START | USI BAŞLAYIN |
15 | 0x000E | USI_OVF | USI daşması |
Proqram heç vaxt kəsmə mənbəyini təmin etmirsə, Müdaxilə Vektorları istifadə olunmur və bu yerlərə müntəzəm proqram kodu yerləşdirilə bilər.
ATtiny25/45/85 -də kəsilmə vektor ünvanları üçün tipik və ümumi quruluş ex proqramında göstərilmişdirampaşağıda.
Montaj Kodu Example | ||
.org 0x0000 | ; Növbəti ünvanı təyin edin | bəyanat |
rjmp SIFIRLA | ; Ünvan 0x0000 | |
rjmp INT0_ISR | ; Ünvan 0x0001 | |
rjmp PCINT0_ISR | ; Ünvan 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Ünvan 0x0003 | |
rjmp TIM1_OVF_ISR | ; Ünvan 0x0004 | |
rjmp TIM0_OVF_ISR | ; Ünvan 0x0005 | |
rjmp EE_RDY_ISR | ; Ünvan 0x0006 | |
rjmp ANA_COMP_ISR | ; Ünvan 0x0007 | |
rjmp ADC_ISR | ; Ünvan 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Ünvan 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Ünvan 0x000A | |
rjmp TIM0_COMPB_ISR | ; Ünvan 0x000B | |
rjmp WDT_ISR | ; Ünvan 0x000C | |
rjmp USI_START_ISR | ; Ünvan 0x000D | |
rjmp USI_OVF_ISR | ; Ünvan 0x000E | |
YAZIN: | ; Əsas proqram başlayır | |
; Ünvan 0x000F | ||
… |
Qeyd: Bax "Kod Examples ”səhifəsində 6.
Xarici fasilələr
Xarici Kesintiler, INT0 pin və ya PCINT [5: 0] sancaqlar tərəfindən tetiklenir. Diqqət yetirin ki, aktiv olduqda, INT0 və ya PCINT [5: 0] sancaqları çıxış kimi konfiqurasiya olunsa da, kəsilmələr başlayacaq. Bu xüsusiyyət bir proqram fasiləsi yaratmaq üçün bir yol təqdim edir. Pin dəyişdirmə PCIT [5: 0] pin dəyişdirildikdə PCI tetikler. Pinsin dəyişdirilməsinin kəsilməsinə səbəb olan sancaqlar olan PCMSK Qeyd nəzarəti. PCINT-də pin dəyişdirmə kəsintiləri [5: 0] asenkron olaraq aşkar edilir. Bu, bu fasilələrin boşluq rejimindən başqa yuxu rejimlərindən də hissənin oyanması üçün istifadə edilə biləcəyini nəzərdə tutur.
INT0 kəsilmələri düşən və ya yüksələn bir kənar və ya aşağı səviyyədən baş verə bilər. Bu, MCU Nəzarət Reyestri - MCUCR üçün spesifikasiyada göstərildiyi kimi qurulur. INT0 müdaxiləsi aktivləşdirildikdə və səviyyə tetiklendiği kimi konfiqurasiya edildikdə, pin aşağı tutulduğu müddətdə kəsilmə başlayacaq. INT0-da düşən və ya yüksələn kənar kəsilmələrin tanınması ilə izah olunan I / O saatının olmasını tələb etdiyini unutmayın “Saat sistemləri və onların paylanması” mövzusunda səhifə 23.
Aşağı səviyyəli fasilə
INT0-da aşağı səviyyəli bir fasilə asenkron olaraq aşkar edilir. Bu, bu kəsilmənin boş rejimdən başqa yuxu rejimlərindən də hissənin oyanması üçün istifadə edilə biləcəyini nəzərdə tutur. I / O saatı, Bekleme rejimi xaricində bütün yuxu rejimlərində dayandırılır.
Nəzərə alın ki, enerjinin söndürülməsindən oyanmaq üçün səviyyəli tetiklenen kəsilmə istifadə edilərsə, MCU-nun səviyyə kəsilməsini işə salmaq üçün oyanışı tamamlaması üçün tələb olunan səviyyə kifayət qədər uzun müddət saxlanılmalıdır. Səviyyə Başlanğıc Vaxtının bitməsindən əvvəl yox olarsa, MCU yenə də oyanacaq, lakin heç bir fasilə yaranmayacaq. Başlanğıc vaxtı SUT və CKSEL qoruyucuları ilə təsvir olunduğu kimi müəyyən edilir “Sistem Saatı və Saat Seçimləri” səhifə 23.
Cihaz oyanmadan müdaxilə pimindəki aşağı səviyyə çıxarılsa, proqramın icrası fasilə xidmətinin rutininə yönəldilməyəcək, ancaq SLEEP əmrindən sonra verilən təlimatdan davam edəcəkdir.
Pin dəyişdirmə müddəti
Keçmişamppin dəyişikliyinin kəsilmə vaxtı göstərilir Şəkil 9-1.
Qeydiyyatın təsviri
MCUCR - MCU Nəzarət Reyestri
Xarici Qəsilmə Nəzarət Reyestri A kəsilmə hissi nəzarəti üçün nəzarət bitlərini ehtiva edir.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Oxu/Yaz | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlər 1: 0 - ISC0 [1: 0]: Səs Nəzarətini 0 Bit 1 və Bit 0 kəsin
Xarici Interrupt 0, SREG I-bayrağı və müvafiq müdaxilə maskası təyin edildiyi təqdirdə xarici pin INT0 tərəfindən aktivləşdirilir. Xarici INT0 pimindəki kəsilməni aktivləşdirən səviyyə və kənarlar Cədvəl 9-2. INT0 pinindəki dəyər s -dirampkənarları aşkar etməzdən əvvəl açdı. Kenar və ya keçid kəsilməsi seçilsə, bir saatlıq müddətdən çox davam edən impulslar bir fasilə yaradır. Daha qısa impulsların kəsilməsini təmin etməyəcək. Aşağı səviyyəli kəsilmə seçilərsə, aşağı səviyyəni kəsmək üçün hazırda icra olunan təlimat başa çatana qədər saxlamaq lazımdır.
Cədvəl 9-2. Interrupt 0 Sense Control
ISC01 | ISC00 | Təsvir |
0 | 0 | INT0 səviyyəsinin aşağı olması kəsilmə istəyi yaradır. |
0 | 1 | INT0-da hər hansı bir məntiqi dəyişiklik kəsilmə istəyi yaradır. |
1 | 0 | INT0-nin düşən kənarı bir kəsilmə istəyi yaradır. |
1 | 1 | INT0-nin yüksələn kənarı bir kəsilmə istəyi yaradır. |
GIMSK - Ümumi Müdaxilə Maskası Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
Oxu/Yaz | R | R/W | R/W | R | R | R | R | R | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlər 7, 4: 0 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bit 6 - INT0: Xarici Kesme İstəyi 0 Aktivləşdirin
INT0 bit (bir) və Status Qeydiyyatda (SREG) I-bit (bir) təyin edildikdə, xarici pin kəsilməsi aktivləşdirilir. MCU Nəzarət Reyestrindəki (MCUCR) Interrupt Sense Control0 bitləri 1/0 (ISC01 və ISC00), xarici interruptın INT0 pininin yüksəldilən və / və ya düşən kənarında aktivləşdirilib-edilmədiyini və ya səviyyə hiss olunur. Pimdəki aktivlik, INT0 bir çıxış olaraq konfiqurasiya olunsa da, bir kəsilmə tələbinə səbəb olacaqdır. Xarici Interrupt Request 0-un müvafiq kəsilməsi INT0 Interrupt Vector-dan yerinə yetirilir.
Bit 5 - PCIE: Pin dəyişdirmə müdaxiləsini aktivləşdirin
PCIE biti (bir) və Status Qeydiyyatındakı (SREG) I-bit qurulduqda (bir), pin dəyişdirmə müdaxiləsi aktivləşdirilir. Hər hansı bir aktiv PCINT [5: 0] pinindəki hər hansı bir dəyişiklik fasiləyə səbəb olacaqdır. Pin Change Interrupt Request-in müvafiq kəsilməsi PCI Interrupt Vector-dan yerinə yetirilir. PCINT [5: 0] sancaqları PCMSK0 Qeydiyyatı ilə fərdi olaraq aktivləşdirilir.
GIFR - Ümumi Müdaxilə Bayrağı Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Oxu/Yaz | R | R/W | R/W | R | R | R | R | R | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlər 7, 4: 0 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bit 6 - INTF0: Xarici kəsmə bayrağı 0
INT0 pimindəki kənar və ya məntiq dəyişikliyi bir kəsilmə tələbini başlatdıqda, INTF0 (bir) olur. SREG-də I-bit və GIMSK-də INT0 bit (bir) təyin olunarsa, MCU müvafiq Müdaxilə Vektoruna sıçrayacaqdır. Müdaxilə rutini icra edildikdə bayraq silinir. Alternativ olaraq, bayraq ona məntiqi bir yazaraq silinə bilər. Bu bayraq həmişə INT0 səviyyə kəsilməsi kimi konfiqurasiya edildikdə silinir.
Bit 5 - PCIF: Pin dəyişdirmə müdaxiləsi bayrağı
Hər hansı bir PCINT [5: 0] pinindəki məntiq dəyişikliyi bir kəsilmə tələbini başlatdıqda, PCIF (bir) vəziyyətinə gəlir. SREG-də I-bit və GIMSK-də PCIE biti qoyulursa (bir), MCU müvafiq Müdaxilə Vektoruna sıçrayacaqdır. Müdaxilə rutini icra edildikdə bayraq silinir. Alternativ olaraq, bayraq ona məntiqi bir yazaraq silinə bilər.
PCMSK - Dəyişdirmə Maska Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Oxu/Yaz | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitlər 7: 6 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bits 5: 0 - PCINT [5: 0]: Pin Change Enable Mask 5: 0
Hər bir PCINT [5: 0] bit, müvafiq I / O pinində pin dəyişdirmə kəsilməsinin aktiv olub-olmadığını seçir. PCINT [5: 0] qurulubsa və GIMSK-də PCIE biti quraşdırılıbsa, müvafiq I / O pinində pin dəyişdirmə müdaxiləsi aktivləşdirilir. PCINT [5: 0] təmizlənərsə, müvafiq I / O pinindəki pin dəyişdirmə müdaxiləsi deaktiv edilmişdir.
I/O Portları
Giriş
Bütün AVR portları ümumi rəqəmsal I/O portları kimi istifadə edildikdə əsl Read-Modify-Write funksiyasına malikdir. Bu o deməkdir ki, SBI və CBI təlimatları ilə hər hansı digər pin istiqamətini istəmədən dəyişdirmədən bir liman pininin istiqaməti dəyişdirilə bilər. Eyni şey, sürücü dəyərinin dəyişdirilməsi (çıxış olaraq konfiqurasiya edildikdə) və ya çəkmə dirənçlərinin aktivləşdirilməsi/söndürülməsi (giriş olaraq konfiqurasiya edildikdə) üçün də keçərlidir. Hər bir çıxış tamponu həm yüksək lavabo, həm də qaynaq qabiliyyəti ilə simmetrik sürücü xüsusiyyətlərinə malikdir. Pin sürücüsü, LED ekranlarını birbaşa idarə etmək üçün kifayət qədər güclüdür. Bütün port sancaqlarında fərdi olaraq seçilə bilən bir təchizat həcmli çəkmə rezistorları vartage invariant müqavimət. Bütün I/O sancaqlarında göstərildiyi kimi həm VCC, həm də Torpaq üçün qoruyucu diodlar var Şəkil 10-1. istinad edin “Elektrik Xüsusiyyətləri” səhifə 161 parametrlərin tam siyahısı üçün.
Şəkil 10-1. I/O Pin Ekvivalent Sxematik
Bu hissədəki bütün qeydlər və bit istinadları ümumi formada yazılmışdır. Kiçik hərf “x” limanın nömrələnmə hərfini, kiçik hərf “n” isə bit nömrəsini təmsil edir. Bununla birlikdə, bir proqramda qeyd və ya bit təriflərindən istifadə edərkən dəqiq forma istifadə edilməlidir. Məsələnample, PORTB3 bit üçün. 3 portu B, burada ümumiyyətlə PORTxn olaraq sənədləşdirilmişdir. Fiziki I/O Qeydləri və bit yerləri siyahıda verilmişdir "Qeydiyyatdan keçin" səhifə 64.
Hər bir port üçün üç I / O yaddaş ünvanı yeri, hər biri Məlumat Qeydləri üçün - PORTx, Məlumat İstiqamətləri Qeydiyyatı - DDRx və Port Giriş Pinsləri - PINx üçün ayrılmışdır. Port Giriş Pins I / O yeri yalnız oxunur, Data Qeydiyyatı və Data Direction Registri isə oxunur / yazılır. Bununla birlikdə, bir məntiqin PINx tənzimləyicisinə bir qədər yazılması, Data Reyestrində müvafiq bitdə keçidlə nəticələnəcəkdir. Bundan əlavə, MCUCR-dəki Pull-up Disable - PUD bit, quraşdırıldıqda bütün limanlardakı bütün sancaqlar üçün çəkmə funksiyasını deaktiv edir.
I / O portunun General Digital I / O kimi istifadəsi təsvir edilmişdir “Ümumi Rəqəmsal G / Ç kimi portlar” səhifə 53. Əksər port sancaqları cihazdakı periferik xüsusiyyətlər üçün alternativ funksiyalarla çoxaldılır. Hər bir alternativ funksiyanın port sancağı ilə necə əlaqəli olduğu təsvir edilmişdir “Alternativ Port Funksiyaları” səhifə 57. Alternativ funksiyaların tam təsviri üçün fərdi modul bölmələrinə baxın.
Bəzi port sancaqlarının alternativ funksiyasını aktivləşdirməyin, portdakı digər sancaqların ümumi rəqəmsal I / O kimi istifadəsinə təsir göstərmədiyini unutmayın.
Ümumi Rəqəmsal G / Ç kimi limanlar
Limanlar, isteğe bağlı daxili açılan iki tərəfli I / O limandır. Şəkil 10-2 burada ümumiyyətlə Pxn adlanan bir G / Ç-port pininin funksional təsvirini göstərir.
Şəkil 10-2. Ümumi Rəqəmsal I/O(1)
Pini Konfiqurasiya
Hər bir port pimi üç qeyd bitindən ibarətdir: DDxn, PORTxn və PINxn. Göstərildiyi kimi "Qeydiyyatdan keçin" səhifə 64, DDxn bitlərinə DDRx I / O adresində, PORTxn bitlərinə PORTx I / O adresində və PINxn bitlərinə PINx I / O adresində daxil olur.
DDRx Qeydiyyatındakı DDxn bit bu pinin istiqamətini seçir. DDxn məntiqlə yazılırsa, Pxn çıxış pimi kimi konfiqurasiya olunur. DDxn məntiq sıfır yazılırsa, Pxn giriş pimi kimi konfiqurasiya olunur.
PIN giriş pimi kimi konfiqurasiya edildikdə PORTxn məntiqi yazılırsa, çəkmə müqaviməti aktivləşdirilir. Çəkmə müqavimətini söndürmək üçün PORTxn məntiq sıfır yazılmalı və ya pin çıxış pimi kimi konfiqurasiya edilməlidir. Sıfırlama vəziyyəti aktiv olduqda, heç bir saat işləməsə də, port sancaqları üç dəfə göstərilir.
PIN çıxış pimi kimi konfiqurasiya edildikdə PORTxn məntiqlə yazılırsa, port pimi yüksək sürülür (bir). PIN çıxış pin kimi konfiqurasiya edildikdə PORTxn məntiq sıfır yazılırsa, port sancağı aşağı (sıfır) sürülür.
Pini dəyişir
PINxn-ə bir məntiq yazmaq, DDRxn dəyərindən asılı olmayaraq PORTxn dəyərini dəyişdirir. Qeyd edək ki, SBI təlimatı bir portdakı bir biti dəyişdirmək üçün istifadə edilə bilər.
Giriş və Çıxış arasında keçid
Üç vəziyyət ({DDxn, PORTxn} = 0b00) və yüksək çıxış ({DDxn, PORTxn} = 0b11) arasında keçid edərkən, ya açılan aktiv {DDxn, PORTxn} = 0b01) və ya çıxış aşağı olan aralıq vəziyyət ({DDxn, PORTxn} = 0b10) baş verməlidir. Normalda, yuxarı çəkmə aktivləşdirilən vəziyyət tam məqbuldur, çünki yüksək impedantlı mühit güclü yüksək sürücü ilə pull-up arasındakı fərqi hiss etməyəcək. Əgər belə deyilsə, MCUCR Reyestrindəki PUD biti bütün portlarda bütün pull-upları söndürmək üçün təyin edilə bilər.
Pull-up və output low ilə giriş arasında keçid eyni problemi yaradır. İstifadəçi aralıq addım olaraq üç dövləti ({DDxn, PORTxn} = 0b00) və ya yüksək çıxış vəziyyətini ({DDxn, PORTxn} = 0b10) istifadə etməlidir.
Cədvəl 10-1 pin dəyəri üçün nəzarət siqnallarını ümumiləşdirir.
Cədvəl 10-1. Port Pin Konfiqurasiyaları
DDxn | PORTxn | PUD
(MCUCR ilə) |
I/O | Yuxarı çəkmə | Şərh |
0 | 0 | X | Giriş | yox | Üçqat vəziyyət (Hi-Z) |
0 | 1 | 0 | Giriş | Bəli | Pxn əlavə olduqda cari mənbə verəcəkdir. aşağı çəkdi. |
0 | 1 | 1 | Giriş | yox | Üçqat vəziyyət (Hi-Z) |
1 | 0 | X | Çıxış | yox | Çıxış aşağı (lavabo) |
1 | 1 | X | Çıxış | yox | Çıxış yüksək (Mənbə) |
Pin dəyərinin oxunması
Data Direction bit DDxn ayarlarından asılı olmayaraq, port pinini PINxn Qeydiyyat bitindən oxumaq olar. Göstərildiyi kimi Şəkil 10-2, PINxn Qeyd biti və əvvəlki mandal sinxronizator təşkil edir. Fiziki pin daxili saatın kənarındakı dəyəri dəyişdirsə, metastabilitədən qaçınmaq üçün lazımdır, eyni zamanda bir gecikmə meydana gətirir. Şəkil 10-3 xaricdən tətbiq olunan pin dəyərini oxuyarkən sinxronizasiyanın vaxt diaqramını göstərir. Maksimum və minimum yayılma gecikmələri müvafiq olaraq tpd,max və tpd,min ilə işarələnir.
Sistem saatının ilk düşən kənarından az sonra başlayan saat müddətini düşünün. Mandal saat az olduqda bağlanır və “SYNC LATCH” siqnalının gölgeli bölgəsində göstərildiyi kimi saat yüksək olduqda şəffaf olur. Sistem saatı azaldıqda siqnal dəyəri kilidlənir. Ardınca gələn müsbət saat kənarında PINxn Qeydiyyatına daxil edilir. İki ox, tpd, max və tpd, min ilə göstərildiyi kimi, pin üzərində tək bir siqnal keçidi təsdiq vaxtından asılı olaraq ½ və 1½ sistem saat dövrü arasında təxirə salınacaqdır.
Bir proqram tərəfindən təyin olunmuş pin dəyəri geri oxuduqda, göstərilən qaydada bir nop təlimatı daxil edilməlidir Şəkil 10-4. Çıxış təlimatı saatın müsbət kənarında "SYNC LATCH" siqnalını təyin edir. Bu vəziyyətdə sinxronlaşdırıcı vasitəsilə gecikmə tpd bir sistem saat dövrüdür.
Aşağıdakı kod example port B sancaqlarının 0 və 1 yüksək, 2 və 3 aşağı təyin edilməsini və 4-dən 5-ə qədər port pinlərinin giriş kimi təyin edilməsini göstərir. əvvəllər müzakirə edildiyi kimi, bəzi pinlərə bu yaxınlarda təyin edilmiş dəyəri geri oxuya bilmək üçün nop təlimatı daxil edilmişdir.
Montaj Kodu Example(1) |
…
; Pull-upları müəyyənləşdirin və çıxışları yüksək təyin edin ; Port sancaqları üçün istiqamətləri müəyyənləşdirin ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) PORTB, r16 çıxışı DDRB, r17 çıxışı ; Sinxronizasiya üçün nop daxil edin yox ; Port sancaqlarını oxuyun r16, PINB-də … |
Qeyd: Quraşdırma proqramı üçün, istiqamət bitləri düzgün qurulana qədər 0, 1 və 4-cü pinlərdə çəkilmələrin təyin edilməsi vaxtı minimuma endirmək üçün iki müvəqqəti registr istifadə olunur, bit 2 və 3-ü aşağı kimi təyin edir və bitləri 0 və yenidən təyin edir. 1 güclü yüksək sürücülər kimi.
C Kodu Example |
imzasız char i;
… /* Pull-upları təyin edin və çıxışları yüksək təyin edin */ /* Port sancaqları üçün istiqamətləri müəyyənləşdirin */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Sinxronizasiya üçün nop daxil edin*/ _NOP (); /* Port sancaqlarını oxuyun */ i = PINB; … |
Rəqəmsal giriş effektiv və yuxu rejimləri
Göründüyü kimi Şəkil 10-2, rəqəmsal giriş siqnalı cl ola bilərampschmitt-triggerin girişində yerə ed. Şəkildə YUXU ilə işarələnmiş siqnal, bəzi giriş siqnalları üzən qaldıqda və ya VCC/2-yə yaxın analoq siqnal səviyyəsinə malik olduqda yüksək enerji sərfiyyatının qarşısını almaq üçün Enerjinin söndürülməsi rejimində MCU Yuxu Nəzarətçisi tərəfindən təyin edilir.
Xarici kəsmə sancaqları kimi aktivləşdirilmiş port sancaqları üçün SLEEP ləğv edildi. Xarici kəsilmə istəyi aktiv deyilsə, SLEEP bu sancaqlar üçün də aktivdir. SLEEP də təsvir edildiyi kimi digər alternativ funksiyalar tərəfindən ləğv edilir “Alternativ Port Funksiyaları” səhifə 57.
Xarici kəsmə aktiv edilmədiyi halda “Yüksəlmiş kənarda kəsmə, enən kənarda kəsmə və ya sancaqda hər hansı məntiq dəyişikliyi” kimi konfiqurasiya edilmiş asinxron xarici kəsmə pinində yüksək məntiq səviyyəsi (“bir”) varsa, müvafiq Xarici Kəsmə Bayrağı olacaq. yuxarıda qeyd olunan Yuxu rejimindən davam edərkən clampBu yuxu rejiminə girmək istədiyiniz məntiq dəyişikliyini yaradır.
Qoşulmamış sancaqlar
Bəzi sancaqlar istifadə edilmirsə, bu sancaqların müəyyən bir səviyyəyə sahib olmasını təmin etmək tövsiyə olunur. Rəqəmsal girişlərin əksəriyyəti yuxarıda göstərildiyi kimi dərin yuxu rejimlərində söndürülsə də, rəqəmsal girişlərin aktivləşdirildiyi bütün digər rejimlərdə (Reset, Active mode və Boş rejim) cari istehlakı azaltmaq üçün üzən girişlərdən qaçınmaq lazımdır.
İstifadə edilməmiş sancağın müəyyən edilmiş səviyyəsini təmin etmək üçün ən sadə üsul daxili çəkilməni aktivləşdirməkdir. Bu halda, sıfırlama zamanı pull-up söndürüləcək. Sıfırlama zamanı aşağı enerji istehlakı vacibdirsə, xarici pull-up və ya açılan istifadə etmək tövsiyə olunur. İstifadə edilməmiş sancaqların birbaşa VCC və ya GND-yə qoşulması tövsiyə edilmir, çünki pin təsadüfən çıxış kimi konfiqurasiya olunarsa, bu, həddindən artıq cərəyanlara səbəb ola bilər.
Alternativ Port Funksiyaları
Əksər port sancaqları ümumi rəqəmsal I / Os olmaqla yanaşı alternativ funksiyalara malikdir. Şəkil 10-5 port pin nəzarətinin necə sadələşdirildiyini göstərən siqnalları göstərir Şəkil 10-2 alternativ funksiyalar tərəfindən ləğv edilə bilər. Üstünlük siqnalları bütün port sancaqlarında olmaya bilər, lakin rəqəm AVR mikrokontroller ailəsindəki bütün port sancaqlarına tətbiq olunan ümumi bir təsvir kimi xidmət edir.
Cədvəl 10-2. Alternativ Funksiyalar üçün Siqnalların ləğv edilməsinin ümumi təsviri
Siqnal Adı | Tam adı | Təsvir |
PUOE | Pull-up ləğv etmək imkan verir | Bu siqnal quraşdırılıbsa, çəkmə imkanı PUOV siqnalı ilə idarə olunur. Bu siqnal təmizlənərsə, çəkmə vaxtı aktivləşdirilir
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Dəyəri yıxın | PUOE qurulubsa, DDxn, PORTxn və PUD Qeyd bitlərinin ayarından asılı olmayaraq PUOV qurulduqda / təmizləndikdə çəkmə aktivləşdirilir / söndürülür. |
DDOE | Veri İstiqamətini ləğv edin | Bu siqnal qoyulubsa, Çıxış Sürücüsü Enable DDOV siqnalı ilə idarə olunur. Bu siqnal təmizlənərsə, Çıxış sürücüsü DDxn Qeyd biti ilə aktivləşdirilir. |
DDOV | Data Direction Dəyəri Yuxarıda | DDOE qurulubsa, DDxn Qeydiyyat bitinin ayarından asılı olmayaraq DDOV qurulduqda / təmizləndikdə Çıxış Sürücüsü aktivdir / söndürülür. |
PVOE | Port Dəyəri Yuxarıdan Aktivləşdirin | Bu siqnal quraşdırılıb və Çıxış Sürücüsü işə salındıqda, port dəyəri PVOV siqnalı ilə idarə olunur. PVOE təmizlənərsə və Çıxış Sürücüsü işə salınarsa, port Dəyəri PORTxn Qeyd etmə biti tərəfindən idarə olunur. |
PVOV | Port Dəyəri Dəyəri Yoxlayır | PVOE qurulursa, PORTxn Qeyd bitinin ayarından asılı olmayaraq port dəyəri PVOV olaraq təyin edilir. |
PTOE | Port Keçidini Yenidən Əvvələ Aktivləşdirin | PTOE qurulubsa, PORTxn Qeyd biti tərs çevrilir. |
DIEOE | Rəqəmsal giriş effekti ləğv etməyi aktivləşdirin | Bu bit quraşdırılıbsa, Rəqəmsal Giriş Enable, DIEOV siqnalı ilə idarə olunur. Bu siqnal təmizlənərsə, Rəqəmsal Giriş Enable MCU vəziyyəti ilə təyin olunur (Normal rejim, yuxu rejimi). |
DIEOV | Rəqəmsal Giriş Dəyəri Yeniləmə dəyərini aktivləşdirin | DIEOE qurulubsa, MCU vəziyyətindən (Normal rejim, yuxu rejimi) asılı olmayaraq DIEOV qurulduqda / təmizləndikdə Rəqəmsal Giriş effektivdir / söndürülür. |
DI | Rəqəmsal giriş | Bu, alternativ funksiyalar üçün Rəqəmsal Girişdir. Şəkildə siqnal schmitt-trigger-in çıxışı ilə əlaqələndirilir, lakin sinxronizatordan əvvəl. Rəqəmsal giriş saat mənbəyi kimi istifadə edilmədikdə, alternativ funksiyalı modul öz sinxronizatorundan istifadə edəcəkdir. |
AIO | Analoq Giriş / Çıxış | Bu, alternativ funksiyalardan Analog Giriş / Çıxışdır. Siqnal birbaşa yastığa bağlanır və iki tərəfli istifadə edilə bilər. |
Aşağıdakı bölmələr qısa olaraq hər bir port üçün alternativ funksiyaları təsvir edir və üstün siqnalları alternativ funksiyaya aid edir. Əlavə məlumat üçün alternativ funksiya təsvirinə baxın.
Port B-nin alternativ funksiyaları
Alternativ funksiyalı Port B sancaqları göstərilir Cədvəl 10-3.
Cədvəl 10-3. Port B Sancaqları Alternativ Funksiyaları
Port Pin | Alternativ Funksiya |
PB5 | ![]() RESET: Pini sıfırlayın dW: debugWIRE I / O ADC0: ADC Giriş Kanalı 0 PCINT5: Pin dəyişdirmə müdaxiləsi, Mənbə 5 |
PB4 | XTAL2: Kristal Osilator Çıxışı CLKO: Sistem Saatı Çıxışı ADC2: ADC Giriş Kanalı 2
OC1B: Timer / Counter1 ilə müqayisə et B match B Çıxış PCINT4: Pin Change Interrupt 0, Source 4 |
PB3 | XTAL1: Kristal Osilator Girişi CLKI: Xarici Saat Girişi ADC3: ADC Giriş Kanalı 3
OC1B: Tamamlayıcı Timer / Counter1 Müqayisə et B B Çıxışı Çıxış PCINT3: Pin Dəyişdirmə Kesintisi 0, Mənbə 3 |
PB2 | SCK: Serial Saat Girişi ADC1: ADC Giriş Kanalı 1
T0: Timer / Counter0 Clock Source USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) INT0: Xarici Interrupt 0 Giriş PCINT2: Pin Change Interrupt 0, Source 2 |
PB1 | MISO: SPI Master Data Input / Slave Data Output AIN1: Analog Comparator, Negative Input OC0B: Timer / Counter0 Match B Output OC1A: Timer / Counter1 müqayisə et Çıxışı DO: USI Data Output (Three Tel Mode) PCINT1: Pin Change Interrupt 0, Mənbə 1 |
PB0 | MOSI :: SPI Master Data Output / Slave Data Input AIN0: Analog Komparator, Müsbət Giriş
OC0A: Taymer/Counter0 Müqayisə A uyğunluğu çıxışı OC1A: Tamamlayıcı Timer / Counter1 Müqayisə et Çıxış DI: USI Məlumat Girişi (Üç Tel Modu) SDA: USI Məlumat Girişi (İki Tel Modu) AREF: Xarici Analoq Referans PCINT0: Pin Dəyişdirmə Kesintisi 0, Mənbə 0 |
Port B, Bit 5 - RESET / dW / ADC0 / PCINT5
RESET: Xarici Sıfırlama girişi azdır və RSTDISBL Sigortasının proqramlaşdırılmaması ("1") ilə aktivləşdirilir. Pullup aktivləşdirilir və pin RESET pin kimi istifadə edildikdə çıxış sürücüsü və rəqəmsal giriş söndürülür.
dW: debugWIRE Enable (DWEN) Sigortası proqramlandıqda və Lock bitləri proqramlaşdırılmadıqda, hədəf cihaz daxilində debugWIRE sistemi aktivləşdirilir. RESET port pimi, çəkmə qabiliyyəti aktivləşdirilmiş telli VƏ (açıq drenajlı) iki istiqamətli G / Ç pimi kimi konfiqurasiya olunur və hədəflə emulator arasında rabitə qapısı olur.
ADC0: Analoqdan Rəqəmə çevirici, Kanal 0.
PCINT5: Pin dəyişdirmə müdaxiləsi mənbəyi 5.
Port B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pin 2. Daxili kalibrləmə RC Osilatör və xarici saat xaricindəki bütün çip saat mənbələri üçün saat pimi olaraq istifadə olunur. Bir saat sancağı kimi istifadə edildikdə, pin I / O pin kimi istifadə edilə bilməz. Daxili kalibrlənə bilən RC Osilatordan və ya Xarici saatdan bir Chip saat mənbəyi kimi istifadə edildikdə, PB4 adi bir I / O pimi kimi xidmət edir.
CLKO: Devid edilmiş sistem saatı PB4 pinində çıxa bilər. Bölünmüş sistem saatı, PORTB4 və DDB4 parametrlərindən asılı olmayaraq CKOUT Sigortası proqramlaşdırılmışsa çıxacaq. Sıfırlama zamanı da çıxacaq.
ADC2: Analoqdan Rəqəmə çevirici, Kanal 2.
OC1B: Çıxışla müqayisə et uyğunluğu: PB4 pimi, çıxış kimi (DDB1 dəsti) konfiqurasiya edildikdə Timer / Counter4 Compare B match B üçün xarici çıxış rolunu oynaya bilər. OC1B pimi eyni zamanda PWM rejimi timer funksiyası üçün çıxış pinidir.
PCINT4: Pin dəyişdirmə müdaxiləsi mənbəyi 4.
Port B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Oscillator pin 1. Daxili kalibrləmə RC osilatoru xaricindəki bütün çipli saat mənbələri üçün istifadə olunur. Bir saat sancağı kimi istifadə edildikdə, pin G / Ç pin kimi istifadə edilə bilməz.
CLKI: Xarici saat mənbəyindən Saat Girişi, bax “Xarici Saat” səhifə 26.
ADC3: Analoqdan Rəqəmə çevirici, Kanal 3.
OC1B: Tərs Çıxış Müqayisəsi Çıxışını Müqayisə et: PB3 pimi Çıxış kimi konfiqurasiya edildikdə (DDB1 dəsti) Zamanlayıcı / Sayaç3 Müqayisə et B uyğunluğu üçün xarici çıxış rolunu oynaya bilər. OC1B pimi eyni zamanda PWM rejimi taymeri funksiyası üçün ters çevrilmiş çıxış pinidir.
PCINT3: Pin dəyişdirmə müdaxiləsi mənbəyi 3.
Port B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Master Clock çıxışı, SPI kanalı üçün Slave Clock giriş pimi. SPI bir kölə olaraq aktivləşdirildikdə, bu pin DDB2 parametrindən asılı olmayaraq giriş kimi konfiqurasiya olunur. SPI Master kimi işə salındıqda, bu pinin məlumat istiqaməti DDPB2 tərəfindən idarə olunur. PIN SPI tərəfindən bir giriş olmağa məcbur edildikdə, çəkilmə hələ də PORTB2 bit tərəfindən idarə oluna bilər.
ADC1: Analoqdan Rəqəmə çevirici, Kanal 1.
T0: Timer / Counter0 sayğac mənbəyi.
USCK: Üç telli rejim Universal Serial İnterfeys Saatı.
SCL: USI İki telli rejim üçün iki telli rejim Serial Saat.
INT0: Xarici kəsmə mənbəyi 0.
PCINT2: Pin dəyişdirmə müdaxiləsi mənbəyi 2.
Port B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Master Data input, SPI kanalı üçün Slave Data output pin. SPI Master kimi işə salındıqda, bu pin DDB1 parametrindən asılı olmayaraq giriş kimi konfiqurasiya olunur. SPI bir kölə kimi işə salındıqda, bu pinin məlumat istiqaməti DDB1 tərəfindən idarə olunur. PIN SPI tərəfindən bir giriş olmağa məcbur edildikdə, çəkilmə hələ də PORTB1 bit tərəfindən idarə edilə bilər.
AIN1: Analog Komparator Mənfi Giriş. Rəqəmsal port funksiyasının Analog Komparatorun işinə müdaxilə etməməsi üçün daxili açılan söndürülmüş vəziyyətdə port pinini giriş kimi konfiqurasiya edin.
OC0B: Çıxışla müqayisə edin. PB1 pin Timer / Counter0 Compare Match B üçün xarici çıxış rolunu oynaya bilər. PB1 pin bu funksiyanı yerinə yetirmək üçün bir çıxış (DDB1 dəsti (bir)) kimi konfiqurasiya edilməlidir. OC0B pimi eyni zamanda PWM rejimi timer funksiyası üçün çıxış pinidir.
OC1A: Çıxışla müqayisə et uyğunluğu çıxışı: PB1 pimi, çıxış olaraq (DDB1 dəsti) konfiqurasiya edildikdə Timer / Counter1 Compare Match B üçün xarici çıxış rolunu oynaya bilər. OC1A pimi eyni zamanda PWM rejimi timer funksiyası üçün çıxış pinidir.
DO: Üç telli rejim Universal Serial Interface Data output. Üç telli rejim Məlumat çıxışı PORTB1 dəyərini ləğv edir və DDB1 məlumat istiqaməti təyin olunduqda porta aparılır (bir). İstiqamət daxil olduqda və PORTB1 təyin olunduqda (bir), PORTB1 hələ də çəkilməyə imkan verir.
PCINT1: Pin dəyişdirmə müdaxiləsi mənbəyi 1.
Port B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Master Data çıxışı, SPI kanalı üçün Slave Data input. SPI bir kölə kimi işə salındıqda, bu pin DDB0 parametrindən asılı olmayaraq giriş kimi konfiqurasiya olunur. SPI Master kimi işə salındıqda, bu pinin məlumat istiqaməti DDB0 tərəfindən idarə olunur. PIN SPI tərəfindən bir giriş olmağa məcbur edildikdə, çəkilmə hələ də PORTB0 bit tərəfindən idarə edilə bilər.
AIN0: Analog müqayisəli müsbət giriş. Rəqəmsal port funksiyasının Analog Komparatorun işinə müdaxilə etməsinin qarşısını almaq üçün daxili açılan söndürülmüş vəziyyətdə port pinini giriş kimi konfiqurasiya edin.
OC0A: Çıxışla müqayisə edin. PB0 pimi, bir çıxış olaraq konfiqurasiya edildikdə (DDB0 dəsti (bir)) Timer / Counter0 Compare A Match üçün xarici çıxış rolunu oynaya bilər. OC0A pimi eyni zamanda PWM rejimi timer funksiyası üçün çıxış pinidir.
OC1A: Tərs Çıxış Müqayisəsi Çıxışını Müqayisə et: PB0 pimi Çıxış (DDB1 dəsti) olaraq konfiqurasiya edildikdə Taymer / Sayaç0 Müqayisə et B uyğunluğu üçün xarici çıxış rolunu oynaya bilər. OC1A pimi eyni zamanda PWM rejimi timer funksiyası üçün tərs çıxış pindir.
SDA: İki telli rejim Serial Interface Data.
AREF: ADC üçün Xarici Analog Referansı. Pin xarici istinad və ya Daxili Vol kimi istifadə edildikdə PB0 -da çəkmə və çıxış sürücüsü deaktiv edilirtage AREF pinindəki xarici kondansatörə istinad.
DI: USI Üç telli rejimdə məlumat girişi. USI Üç telli rejim normal port funksiyalarını ləğv etmir, buna görə pin DI funksiyası üçün giriş kimi konfiqurasiya edilməlidir.
PCINT0: Pin dəyişdirmə müdaxiləsi mənbəyi 0.
Cədvəl 10-4 və Cədvəl 10-5 Port B-nin alternativ funksiyalarını burada göstərilən üstünlük siqnalları ilə əlaqələndirin Şəkil 10-5 səhifə 58.
Cədvəl 10-4. PB-də Alternativ Funksiyalar üçün Siqnalların ləğv edilməsi[5:3]
Siqnal Adı | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | tel ötürücü | 0 | 0 |
PVOE | 0 | OC1B Aktivləşdirin | ![]() OC1B Aktivləşdirin |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | PCINT5 Giriş | PCINT4 Giriş | PCINT3 Giriş |
AIO | RESET Giriş, ADC0 Giriş | ADC2 Giriş | ADC3 Giriş |
Qeyd: Sigorta “0” olduqda (proqramlaşdırılmışdır).
Cədvəl 10-5. PB-də Alternativ Funksiyalar üçün Siqnalların ləğv edilməsi[2:0]
Siqnal Adı | 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 | OC0B Enable + OC1A Enable + USI_THREE_WIRE | ![]() OC0A Enable + OC1A Enable + (USI_TWO_WIRE) DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
PCINT2 Giriş |
PCINT1 Giriş | DI / SDA / PCINT0 Giriş |
AIO | ADC1 Giriş | Analoq müqayisəli mənfi giriş | Analog müqayisəli müsbət giriş |
Qeydiyyatın təsviri
MCUCR - MCU Nəzarət Reyestri
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Oxu/Yaz | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: Pull-up Disable
Bu bit birinə yazıldıqda, DDxn və PORTxn qeydləri açılanları aktivləşdirmək üçün konfiqurasiya olunsa da, I / O portlarındakı açılanlar əlil olur ({DDxn, PORTxn} = 0b01). Görmək "Pimi Konfiqurasiya" səhifə 54 bu xüsusiyyət haqqında daha ətraflı məlumat üçün.
PORTB - Port B Məlumat Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Oxu/Yaz | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Port B Məlumat İstiqamətləri Qeydiyyatı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Oxu/Yaz | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Port B Giriş Pins Ünvanı
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PİNB5 | PİNB4 | PİNB3 | PİNB2 | PİNB1 | PİNB0 | PİNB |
Oxu/Yaz | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
İlkin Dəyər | 0 | 0 | Yoxdur | Yoxdur | Yoxdur | Yoxdur | Yoxdur | Yoxdur |
PWM ilə 8 bit Timer / Counter0
Xüsusiyyətlər
İki Müstəqil Çıxış müqayisə vahidi
Cüt Buferli Çıxış Qeydləri Müqayisə Edin
Qarşılaşmanı müqayisə edən zamanlayıcıyı silin (avtomatik yenidən yükləmə)
Arızsız, Faza Düzgün Nəbz Genişliyi Modulatoru (PWM)
Dəyişən PWM Dövrü
Tezlik Generatoru
Üç müstəqil bağlama mənbəyi (TOV0, OCF0A və OCF0B)
Bitdiview
Timer / Counter0, iki müstəqil Çıxış Müqayisə Vahidi olan və PWM dəstəyi ilə ümumi təyinatlı 8 bitlik Taymer / Sayaç moduludur. Proqramın dəqiq icrası vaxtını (hadisə idarəçiliyi) və dalğa yaratma imkanı verir.
8 bitlik Taymer / Sayğacın sadələşdirilmiş blok diaqramı göstərilir Şəkil 11-1. G / Ç pinlərinin həqiqi yerləşdirilməsi üçün müraciət edin “ATtiny25 / 45/85 Pinout” səhifə 2. I / O bitləri və I / O sancaqları daxil olmaqla CPU-a daxil olan giriş-çıxarma qeydləri qalın şəkildə göstərilmişdir. Cihaza məxsus I / O Qeydiyyatı və bit yerləri “Qeydin təsviri” səhifə 77.
Taymer/Sayğac (TCNT0) və Çıxış Müqayisə Registrləri (OCR0A və OCR0B) 8 bitlik registrlərdir. Kəsinti sorğusu (şəkildə Int.Req. olaraq qısaldılmışdır) siqnallarının hamısı Timer Interrupt Flag Register-də (TIFR) görünür. Bütün fasilələr fərdi olaraq Taymer Kəsmə Maska Reyestrində (TIMSK) maskalanır. TIFR və TIMSK şəkildə göstərilməyib.
Taymer/Sayğac daxili olaraq, preskaler vasitəsilə və ya T0 pinindəki xarici saat mənbəyi ilə saatlana bilər. Clock Select məntiq bloku Taymer/Sayğacın dəyərini artırmaq (və ya azaltmaq) üçün hansı saat mənbəyi və kənarından istifadə etdiyinə nəzarət edir. Heç bir saat mənbəyi seçilmədikdə Taymer/Sayğac qeyri-aktivdir. Saat Seçmə məntiqindən çıxış taymer saatı (clkT0) adlanır.
İkiqat buferli Çıxış Müqayisəsi Qeydləri (OCR0A və OCR0B) hər zaman Timer / Counter dəyəri ilə müqayisə olunur. Müqayisənin nəticəsi Waveform Generator tərəfindən Çıxış Müqayisəsi pinlərində (OC0A və OC0B) bir PWM və ya dəyişkən frekans çıxışı yaratmaq üçün istifadə edilə bilər. Baxın “Çıxış müqayisə vahidi”, səhifə 69. ətraflı məlumat üçün. Müqayisə et müqayisəsi hadisəsi, Çıxış Müqayisəsi müdaxiləsi istəyi yaratmaq üçün istifadə edilə bilən Müqayisə Bayrağını da (OCF0A və ya OCF0B) təyin edəcəkdir.
Təriflər
Bu hissədəki bir çox qeyd və bit istinadları ümumi formada yazılmışdır. Alt bir “n” hərfi Taymer / Sayğac nömrəsini əvəz edir, bu halda 0. Çıxış Müqayisə Vahidini “x” kiçik hərflə əvəzləyir, bu halda A vahidi müqayisə edin və ya vahidi müqayisə edin. Lakin qeyd və ya bit istifadə edərkən bir proqramda dəqiq formadan istifadə olunmalıdır, yəni Timer / Counter0 sayğac dəyərinə və s. daxil olmaq üçün TCNT0.
İn tərifləri Cədvəl 11-1 sənəd boyunca geniş istifadə olunur.
Cədvəl 11-1. Təriflər
Daimi | Təsvir |
AŞAĞI | Sayaç 0x00 olduqda AŞAĞA çatır |
MAX | Sayğac 0xFF (ondalık 255) olduqda maksimuma çatır |
TOP | Sayğac sayma sırasındakı ən yüksək dəyərə bərabər olduqda TOP-ya çatır. TOP dəyəri sabit 0xFF (MAX) və ya OCR0A Qeydiyyatında saxlanılan dəyər olaraq təyin edilə bilər. Tapşırıq iş rejimindən asılıdır |
Taymer / Sayğac Prescaler və Saat Mənbələri
Taymer / sayğac daxili və ya xarici saat mənbəyi ilə saatlaşdırıla bilər. Saat mənbəyi, Timer / Counter0 Control Qeydiyyatında (TCCR0B) yerləşən Clock Select (c) bitləri tərəfindən idarə olunan Clock Select məntiqi ilə seçilir.
Prescaler ilə daxili saat mənbəyi
Taymer/Counter0 birbaşa sistem saatı ilə təyin oluna bilər (CS0[2:0] = 1 təyin etməklə). Bu, sistemin saat tezliyinə (fCLK_I/O) bərabər olan maksimum taymer/əks saat tezliyi ilə ən sürətli əməliyyatı təmin edir. Alternativ olaraq, preskalerdən gələn dörd krandan biri saat mənbəyi kimi istifadə edilə bilər. Əvvəlcədən hazırlanmış saatın hər ikisinin tezliyi var
Öncədən Sıfırlama
Prescaler sərbəst işləyir, yəni Timer/Counter0 -in Clock Select məntiqindən asılı olmayaraq işləyir. Əvvəlcədən hesablayıcıya taymer/sayğac saatı seçimi təsir etmədiyi üçün əvvəlcədən hesablanmış vəziyyətin əvvəlcədən hesablanmış saatın istifadə edildiyi vəziyyətlərə təsiri olacaq. Bir keçmişampprescaling artefact le, taymer/sayğacın prescaler tərəfindən işə salınması və saata salınmasıdır (6> CS0 [2: 0]> 1). Taymeri işə saldıqdan ilk hesablamaya qədər sistem saatı dövrlərinin sayı 1 -dən N+1 -ə qədər ola bilər, burada N prescalal bölücüyə bərabərdir (8, 64, 256 və ya 1024).
Proqramın icrası üçün Taymeri / Sayğacın sinxronlaşdırılması üçün Prescaler Reset istifadə etmək mümkündür.
Xarici saat mənbəyi
T0 pininə tətbiq olunan xarici saat mənbəyi taymer/sayıcı saat (clkT0) kimi istifadə edilə bilər. T0 pin s-diramppin sinxronizasiya məntiqi ilə hər sistem saatına bir dəfə rəhbərlik etdi. Sinxronlaşdırılmış (sampled) siqnalı ötürülür
kənar detektor vasitəsilə. Şəkil 11-2 T0 sinxronizasiyasının və kənar detektor məntiqinin funksional ekvivalent blok diaqramını göstərir. Registrlər daxili sistem saatının (clkI/O) müsbət kənarında taktlaşdırılır. Daxili sistem saatının yüksək dövründə kilid şəffafdır.
Kənar detektoru aşkar etdiyi hər bir müsbət (CS0[0:2] = 0) və ya mənfi (CS7[0:2] = 0) kənar üçün bir clkT6 impuls yaradır.
OCR0x Qeydləri Pulse Enid Modulation (PWM) rejimlərindən hər hansı birini istifadə edərkən ikiqat buferlidir. Müqayisədə normal və Clear Timer (CTC) iş rejimləri üçün ikiqat buferləmə söndürülür. İkiqat bufer OCR0x Müqayisə Qeydlərinin yenilənməsini sayma ardıcıllığının yuxarı və ya alt hissəsinə sinxronlaşdırır. Sinxronizasiya tək uzunluqlu, qeyri-simmetrik PWM impulslarının meydana gəlməsini maneə törədir və nəticədə çıxışı axınsız edir.
OCR0x Qeydiyyatdan keçmə mürəkkəb görünə bilər, amma bu belə deyil. İkiqat buferləşdirmə aktivləşdirildikdə, CPU OCR0x Tampon Qeydiyyatına giriş imkanı əldə edir və cüt tamponlama aradan qaldırıldıqda CPU birbaşa OCR0x-a daxil olacaq.
Zəruri Çıxış Müqayisəsi
PWM olmayan dalğa forması yaratmaq rejimlərində, müqayisənin eşleme çıxışı Force Çıxış Müqayisəsi (FOC0x) bitinə bir yazaraq məcbur edilə bilər. Qarşılaşdırılmış uyğunluğu məcbur etmək OCF0x bayrağını təyin etməyəcək və ya zamanlayıcıyı yenidən yükləməyəcək / təmizləməyəcək, lakin OC0x pimi həqiqi bir Müqayisə Eşleme meydana gəlmiş kimi güncellənəcək (COM0x [1: 0] bit parametrləri OC0x pininin təyin edilib-edilmədiyini təyin edir və ya dəyişdirilmiş).
TCNT0 Yazaraq Match Bloklamasını müqayisə edin
TCNT0 Qeydiyyatdakı bütün CPU yazma əməliyyatları, taymer dayandırıldıqda belə növbəti taymer saat dövründə baş verən hər hansı bir Müqayisə Eşlemesini bloklayacaq. Bu xüsusiyyət OCR0x-in Timer / Counter saatı işə salındıqda fasilə vermədən TCNT0 ilə eyni qiymətə başlanmasına imkan verir.
Çıxış müqayisə vahidindən istifadə
Hər hansı bir iş rejimində TCNT0 yazmaq bir taymer saat dövrü üçün bütün müqayisə matçlarını bloklayacağından, zamanlayıcı / sayğacın işləməsindən asılı olmayaraq Çıxış müqayisə vahidindən istifadə edilərkən TCNT0 dəyişdirilərkən risklər mövcuddur. TCNT0-a yazılan dəyər OCR0x dəyərinə bərabər olarsa, Müqayisəni Müqayisə buraxılacaq və nəticədə səhv dalğa forması yaranır. Eynilə, sayğac aşağı sayarkən TCNT0 dəyərini AŞAĞA bərabər yazmayın.
OC0x-in qurulması, port pininin çıxması üçün Data Direction Registrini qurmadan əvvəl həyata keçirilməlidir. OC0x dəyərinin qurulmasının ən asan yolu, Normal rejimdə Zəruri Çıxış Müqayisəsi (FOC0x) strob bitlərindən istifadə etməkdir. OC0x Qeydiyyatçıları Waveform Generation rejimləri arasında dəyişkən belə dəyərlərini qoruyurlar.
COM0x [1: 0] bitlərinin müqayisə dəyəri ilə birlikdə cüt tamponlu olmadığına diqqət yetirin. COM0x [1: 0] bitlərinin dəyişdirilməsi dərhal qüvvəyə minəcəkdir.
Maç Çıxış Vahidini müqayisə edin
Çıxış rejimini müqayisə et (COM0x [1: 0]) bitlərinin iki funksiyası var. Dalğa Forması İstehsalçısı, növbəti Müqayisəli Maçda Çıxış Müqayisəsi (OC0x) vəziyyətini təyin etmək üçün COM1x [0: 0] bitlərindən istifadə edir. Ayrıca, COM0x [1: 0] bitləri OC0x pin çıxış mənbəyini idarə edir. Şəkil 11-6 COM0x [1: 0] bit parametrindən təsirlənən məntiqin sadələşdirilmiş sxemini göstərir. Şəkildəki I / O Qeydləri, I / O bitləri və I / O sancaqları qalın şəkildə göstərilmişdir. Yalnız ümumi I / O Port Nəzarət Reyestrlərinin (DDR və PORT) COM0x [1: 0] bitlərindən təsirlənən hissələri göstərilir. OC0x vəziyyətinə istinad edərkən, istinad OC0x pimi deyil, daxili OC0x Qeydiyyatı üçündür. Sistem sıfırlanması baş verərsə, OC0x Qeydiyyatı “0” vəziyyətinə gətirilir.
OC0A / OC0B I / O pininə qoşulduqda, COM0A [1: 0] / COM0B [1: 0] bitlərinin funksiyası WGM0 [2: 0] bit parametrindən asılıdır. Cədvəl 11-2 WGM0 [1: 0] bitləri normal və ya CTC rejiminə (PWM olmayan) qurulduqda COM0x [2: 0] bit funksiyasını göstərir.
Cədvəl 11-2. Çıxış rejimini, qeyri-PWM rejimini müqayisə edin
COM0A1 COM0B1 | COM0A0 COM0B0 | Təsvir |
0 | 0 | Normal port əməliyyatı, OC0A / OC0B əlaqəsi kəsildi. |
0 | 1 | Uyğunluğu müqayisə et OC0A / OC0B-yə keçid edin |
1 | 0 | Müqayisə et müqayisəsində OC0A / OC0B silin |
1 | 1 | Müqayisə et müqayisəsində OC0A / OC0B seçin |
Cədvəl 11-3 WGM0 [1: 0] bitləri sürətli PWM rejiminə qurduqda COM0x [2: 0] bit funksiyasını göstərir.
Cədvəl 11-3. Çıxış rejimini, sürətli PWM rejimini müqayisə edin(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Təsvir |
0 | 0 | Normal port əməliyyatı, OC0A / OC0B əlaqəsi kəsildi. |
0 | 1 | Qorunur |
1 | 0 | Uyğunluğu müqayisə edərkən OC0A / OC0B-ni silin, BOTTOM-da OC0A / OC0B ayarlayın (tərs çevirmə rejimi) |
1 | 1 | Uyğunluğu müqayisə edərkən OC0A / OC0B ayarlayın, BOTTOM-da OC0A / OC0B silin (tərs rejim) |
Qeyd: OCR0A və ya OCR0B TOP-a bərabər olduqda və COM0A1/COM0B1 təyin edildikdə xüsusi hal baş verir. Bu halda, müqayisə uyğunluğu nəzərə alınmır, lakin təyin və ya silmə BOTTOM-da edilir. Görmək “Sürətli PWM rejimi” səhifə 73 ətraflı məlumat üçün.
Cədvəl 11-4 WGM0 [1: 0] bitləri düzgün PWM rejiminə uyğunlaşdırıldıqda COM0x [2: 0] bit funksiyasını göstərir.
Cədvəl 11-4. Çıxış rejimini, Faza Düzgün PWM rejimini müqayisə edin(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Təsvir |
0 | 0 | Normal port əməliyyatı, OC0A / OC0B əlaqəsi kəsildi. |
0 | 1 | Qorunur |
1 | 0 | Hesablama apararkən müqayisə et müqayisəsində OC0A / OC0B silin. Aşağı sayarkən müqayisə et müqayisədə OC0A / OC0B seçin. |
1 | 1 | Hesablama apararkən müqayisə et müqayisəsində OC0A / OC0B seçin. Aşağı sayarkən müqayisə et müqayisədə OC0A / OC0B silin. |
Qeyd: 1. OCR0A və ya OCR0B TOP-a bərabər olduqda və COM0A1/COM0B1 təyin edildikdə xüsusi hal baş verir. Bu halda, Müqayisə Uyğunluğuna məhəl qoyulmur, lakin təyin və ya silmə TOP-da edilir. Görmək “Mərhələ Düzgün PWM Modu” səhifə 74 ətraflı məlumat üçün.
Bitlər 3: 2 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bitlər 1: 0 - WGM0 [1: 0]: Dalğa Forması Yaratma Modu
TCCR02B Qeydində tapılmış WGM0 biti ilə birlikdə bu bitlər sayğacın sayma ardıcıllığını, maksimum (TOP) sayğac dəyərinin mənbəyini və istifadə ediləcəyi dalğa forması nəslinin növünə nəzarət edir. Cədvəl 11-5. Taymer / sayğac vahidi tərəfindən dəstəklənən iş rejimi bunlardır: Normal rejim (sayğac), Müqayisə et (CTC) rejimində Zamanlayıcıyı Sil və iki növ Nəbz Genişliyi Modulyasiyası (PWM) rejimi (bax) “İş rejimi” səhifə 71).
Cədvəl 11-5. Dalğa Formasının Yaradılması Rejimi Bit Təsviri
Rejim | WGM 02 | WGM 01 | WGM 00 | İşləmə vaxtı / sayğac | TOP | OCRx-in yeniləməsi | TOV Bayrağı ayarlandı |
0 | 0 | 0 | 0 | Normal | 0xFF | Dərhal | MAX(1) |
1 | 0 | 0 | 1 | PWM, Faza Doğru | 0xFF | TOP | AŞAĞI(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Dərhal | MAX(1) |
3 | 0 | 1 | 1 | Sürətli PWM | 0xFF | AŞAĞI(2) | MAX(1) |
4 | 1 | 0 | 0 | Qorunur | – | – | – |
5 | 1 | 0 | 1 | PWM, Faza Doğru | OCRA | TOP | AŞAĞI(2) |
6 | 1 | 1 | 0 | Qorunur | – | – | – |
7 | 1 | 1 | 1 | Sürətli PWM | OCRA | AŞAĞI(2) | TOP |
Bit 7 - FOC0A: Məcburi Çıxışı A ilə müqayisə edin
FOC0A biti yalnız WGM bitləri PWM olmayan bir rejim təyin etdikdə aktivdir.
Bununla birlikdə, gələcək cihazlarla uyğunluğu təmin etmək üçün, PWM rejimində işləyərkən TCCR0B yazıldığında bu bit sıfıra ayarlanmalıdır. FOC0A bitinə məntiqi birini yazarkən dərhal Müqayisə Maçını Dalğa Forması Nəsil vahidinə məcbur etmək lazımdır. OC0A çıxışı COM0A [1: 0] bit ayarına görə dəyişdirilir. FOC0A bitinin strobe kimi tətbiq olunduğunu unutmayın. Buna görə məcburi müqayisənin təsirini təyin edən COM0A [1: 0] bitlərində mövcud olan dəyərdir.
FOC0A strobu heç bir kəsilmə yaratmayacaq və OCR0A-nı TOP olaraq istifadə edərək CTC rejimində vaxtı silməyəcəkdir. FOC0A biti hər zaman sıfır olaraq oxunur.
Bit 6 - FOC0B: Məcburi Çıxışı B ilə müqayisə edin
FOC0B biti yalnız WGM bitləri PWM olmayan bir rejim təyin etdikdə aktivdir.
Lakin gələcək cihazlarla uyğunluğu təmin etmək üçün PWM rejimində işləyərkən TCCR0B yazıldıqda bu bit sıfıra qoyulmalıdır. FOC0B bitinə məntiqi birini yazarkən dərhal Müqayisə Edinmə Uyğunluğu Dalğa Forması Nəsil vahidində məcbur edilir. OC0B çıxışı COM0B [1: 0] bit ayarına uyğun olaraq dəyişdirilir. FOC0B bitinin strobe kimi tətbiq olunduğunu unutmayın. Buna görə məcburi müqayisənin təsirini təyin edən COM0B [1: 0] bitlərində mövcud olan dəyərdir.
FOC0B strobu heç bir kəsilmə yaratmayacaq və OCR0B'u TOP olaraq istifadə edərək CTC rejimində zamanlayıcıyı silməyəcəkdir.
FOC0B biti həmişə sıfır olaraq oxunur.
Bitlər 5: 4 - Res: Ehtiyat Edilmiş Bitlər
Bu bitlər ATtiny25 / 45/85-də ayrılmış bitlərdir və həmişə sıfır olaraq oxunacaqdır.
Bit 3 - WGM02: Dalğa Forması Yaratma Modu
Təsvirinə baxın “TCCR0A - Taymer / Sayğac Nəzarət Qeydiyyatı A” səhifə 77.
Bitlər 2: 0 - CS0 [2: 0]: Saat seç
Saat seçmə üç bit, Taymer / Sayğac tərəfindən istifadə ediləcək saat mənbəyini seçir.
Cədvəl 11-6. Saat Seç Bit Təsviri
CS02 | CS01 | CS00 | Təsvir |
0 | 0 | 0 | Saat mənbəyi yoxdur (Taymer / Sayğac dayandı) |
0 | 0 | 1 | clkI/O/(Ön ölçmə yoxdur) |
0 | 1 | 0 | clkI/O/8 (Ön miqyaslayıcıdan) |
0 | 1 | 1 | clkI/O/64 (Ön miqyaslayıcıdan) |
1 | 0 | 0 | clkI/O/256 (Ön miqyaslayıcıdan) |
1 | 0 | 1 | clkI/O/1024 (Ön miqyaslayıcıdan) |
1 | 1 | 0 | Xarici saat mənbəyi T0 pinində. Düşən kənarda saat. |
1 | 1 | 1 | Xarici saat mənbəyi T0 pinində. Yüksələn kənarda saat. |
Timer / Counter0 üçün xarici pin rejimlərindən istifadə olunursa, pin bir çıxış olaraq konfiqurasiya olunsa da, T0 pinindəki keçidlər sayğacı saatlaşdırır. Bu xüsusiyyət sayma proqramına nəzarət etməyə imkan verir.
Sayğac və vahidləri müqayisə edin
Timer / Counter1 ümumi əməliyyatı asenkron rejimdə təsvir edilir və sinxron rejimdə əməliyyat yalnız bu iki rejim arasında fərq olduqda qeyd olunur. Şəkil 12-2 Timer / Counter 1 sinxronizasiya reyestrinin blok diaqramını və qeydlər arasındakı sinxronizasiya gecikmələrini göstərir. Bütün saat təfərrüatlarının şəkildə göstərilmədiyini unutmayın. Timer / Counter1 qeyd dəyərləri, sayğac əməliyyatına təsir etməzdən əvvəl giriş sinxronizasiya gecikməsinə səbəb olan daxili sinxronizasiya qeydlərindən keçir. TCCR1, GTCCR, OCR1A, OCR1B və OCR1C qeydləri reyestri yazdıqdan dərhal sonra oxuya bilər. Geri oxunan dəyərlər giriş və çıxış sinxronizasiyası səbəbindən Timer / Counter1 (TCNT1) qeydiyyatı və bayraqları (OCF1A, OCF1B və TOV1) üçün təxirə salınır.
Timer / Counter1, yüksək qətnamə və aşağı prescaling imkanları ilə yüksək dəqiqlik istifadə edir. 8 MHz-ə (və ya Aşağı Sürət rejimində 64 MHz) qədər olan sürətlərdən istifadə edərək iki dəqiq, yüksək sürətli, 32 bitlik Nəbz Genişliyi Modulatorlarını da dəstəkləyə bilər. Bu rejimdə Timer / Counter1 və çıxış müqayisə registrləri üst-üstə düşməyən tərs və tərs çıxışı olan ikili müstəqil PWMs kimi xidmət edir. Baxın səhifə 86 bu funksiya haqqında ətraflı məlumat üçün. Eynilə, yüksək prescaling imkanları bu bölməni daha az sürət funksiyaları və ya nadir görülən hərəkətlərlə dəqiq zamanlama funksiyaları üçün faydalı edir.
Şəkil 12-2. Taymer/Sayğac 1 Sinxronizasiya Qeydiyyatının Blok Diaqramı.
Timer / Counter1 və prescaler əvvəlcədən asenkron rejimdə sürətli 64 MHz (və ya aşağı sürət rejimində 32 MHz) PCK saatı ilə işləyərkən CPU-nu istənilən saat mənbəyindən işə salmağa imkan verir.
Sistem saat tezliyinin PCK tezliyinin üçdə birindən aşağı olması lazım olduğunu unutmayın. Asenkron Timer / Counter1 sinxronizasiya mexanizmi sistem saatı yüksək olduqda PCK-nin ən azı iki kənarına ehtiyac duyur. Sistem saatının tezliyi çoxdursa, məlumatların və ya nəzarət dəyərlərinin itirilməsi risklidir.
Aşağıdakılar Şəkil 12-3 Timer / Counter1 üçün blok diaqramını göstərir.
Cədvəl 12-1. PWM rejimində müqayisə rejimi seçin
COM1x1 | COM1x0 | Çıxış müqayisə sancaqlar üzərində təsiri |
0 | 0 | OC1x bağlı deyil. OC1x bağlı deyil. |
0 | 1 | OC1x müqayisə matçında təmizləndi. TCNT1 = 00 $ olduqda ayarlayın. OC1x müqayisə matçına qoyuldu. TCNT1 = 00 $ olduqda silindi. |
1 | 0 | OC1x müqayisə matçında silindi. TCNT1 = 00 $ olduqda ayarlayın. OC1x bağlı deyil. |
1 | 1 | OC1x oyunu müqayisə edin. TCNT1 = 00 $ olduqda silindi. OC1x bağlı deyil. |
ADC xüsusiyyətləri
Cədvəl 21-8. ADC Xüsusiyyətləri, Tək Uçlu Kanallar. TA = -40°C ilə +85°C arasında
Simvol | Parametr | Vəziyyət | Min | Tip | Maks | Vahidlər |
Qətnamə | 10 | Bitlər | ||||
Mütləq dəqiqlik (INL, DNL və Quantization, Qazanc və Ofset səhvləri daxil olmaqla) | VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC saatı = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz Səs azaltma rejimi |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC saatı = 1 MHz Səs azaltma rejimi |
2.5 | LSB | ||||
İnteqral Qeyri-Lineerlik (INL) (Ofsetdən sonra dəqiqlik və qazanma kalibrlənməsi) | VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz |
1 | LSB | |||
Diferensial qeyri-xətti (DNL) | VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz |
0.5 | LSB | |||
Qazanma xətası | VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz |
2.5 | LSB | |||
Ofset xətası | VREF = 4V, VCC = 4V,
ADC saatı = 200 kHz |
1.5 | LSB | |||
Konversiya vaxtı | Pulsuz Çalışan Konversiya | 14 | 280 | .s | ||
Saat tezliyi | 50 | 1000 | kHz | |||
VIN | Giriş həcmitage | GND | VREF | V | ||
Bant genişliyini daxil edin | 38.4 | kHz | ||||
AREF | Xarici İstinad Cildtage | 2.0 | VCC | V | ||
VINT | Daxili cildtage İstinad | 1.0 | 1.1 | 1.2 | V | |
Daxili 2.56V İstinad (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | 32 | kΩ | ||||
YAĞIŞ | Analog Giriş Müqaviməti | 100 | MΩ | |||
ADC Çıxışı | 0 | 1023 | LSB |
Qeyd: 1. Dəyərlər yalnız təlimatlardır.
Cədvəl 21-9. ADC Xüsusiyyətləri, Diferensial Kanallar (Unipolar Mode). TA = -40°C ilə +85°C arasında
Simvol | Parametr | Vəziyyət | Min | Tip | Maks | Vahidlər |
Qətnamə | Qazanc = 1x | 10 | Bitlər | |||
Qazanc = 20x | 10 | Bitlər | ||||
Mütləq dəqiqlik (INL, DNL və. Daxil olmaqla)
Kəmiyyət, qazanc və ofset səhvləri) |
Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
10.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
20.0 | LSB | ||||
İnteqral Qeyri-Lineerlik (INL) (Ofsetdən Sonra Qazanma və Qazanma Kalibrlənməsi) | Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
4.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
10.0 | LSB | ||||
Qazanma xətası | Qazanc = 1x | 10.0 | LSB | |||
Qazanc = 20x | 15.0 | LSB | ||||
Ofset xətası | Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
3.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
4.0 | LSB | ||||
Konversiya vaxtı | Pulsuz Çalışan Konversiya | 70 | 280 | .s | ||
Saat tezliyi | 50 | 200 | kHz | |||
VIN | Giriş həcmitage | GND | VCC | V | ||
VDIFF | Giriş Diferensialı Voltage | VREF/Qazanc | V | |||
Bant genişliyini daxil edin | 4 | kHz | ||||
AREF | Xarici İstinad Cildtage | 2.0 | VCC - 1.0 | V | ||
VINT | Daxili cildtage İstinad | 1.0 | 1.1 | 1.2 | V | |
Daxili 2.56V İstinad (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | İstinad Giriş Müqaviməti | 32 | kΩ | |||
YAĞIŞ | Analog Giriş Müqaviməti | 100 | MΩ | |||
ADC Dönüşüm Çıxışı | 0 | 1023 | LSB |
Qeyd: Dəyərlər yalnız təlimatlardır.
Cədvəl 21-10. ADC Xüsusiyyətləri, Diferensial Kanallar (Bipolar Mode). TA = -40°C ilə +85°C arasında
Simvol | Parametr | Vəziyyət | Min | Tip | Maks | Vahidlər |
Qətnamə | Qazanc = 1x | 10 | Bitlər | |||
Qazanc = 20x | 10 | Bitlər | ||||
Mütləq dəqiqlik (INL, DNL və. Daxil olmaqla)
Kəmiyyət, qazanc və ofset səhvləri) |
Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
8.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
8.0 | LSB | ||||
İnteqral Qeyri-Lineerlik (INL) (Ofsetdən Sonra Qazanma və Qazanma Kalibrlənməsi) | Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
4.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
5.0 | LSB | ||||
Qazanma xətası | Qazanc = 1x | 4.0 | LSB | |||
Qazanc = 20x | 5.0 | LSB | ||||
Ofset xətası | Qazanc = 1x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
3.0 | LSB | |||
Qazanc = 20x
VREF = 4V, VCC = 5V ADC saatı = 50 - 200 kHz |
4.0 | LSB | ||||
Konversiya vaxtı | Pulsuz Çalışan Konversiya | 70 | 280 | .s | ||
Saat tezliyi | 50 | 200 | kHz | |||
VIN | Giriş həcmitage | GND | VCC | V | ||
VDIFF | Giriş Diferensialı Voltage | VREF/Qazanc | V | |||
Bant genişliyini daxil edin | 4 | kHz | ||||
AREF | Xarici İstinad Cildtage | 2.0 | VCC - 1.0 | V | ||
VINT | Daxili cildtage İstinad | 1.0 | 1.1 | 1.2 | V | |
Daxili 2.56V İstinad (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
REF | İstinad Giriş Müqaviməti | 32 | kΩ | |||
YAĞIŞ | Analog Giriş Müqaviməti | 100 | MΩ | |||
ADC Dönüşüm Çıxışı | -512 | 511 | LSB |
Təlimat Xülasəsi
Mnemonika | Əməliyyatlar | Təsvir | Əməliyyat | Bayraqlar | # Saatlar |
ARİFMETİK VƏ MƏNTİQ TƏLİMATLARI | |||||
ƏLAVƏ EDİN | Rd, Rr | İki Reyestr əlavə edin | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | İki Qeyd aparın ilə əlavə edin | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | RDL, K | Sözə dərhal əlavə edin | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | İki Qeyd dəftəri çıxartın | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
MƏN YUXARI GETDİM | Rd, K. | Qeyddən Sabit çıxart | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | İki qeyd aparmağı ilə çıxartın | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K. | Reg-dən Carry Constant ilə çıxartın. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | RDL, K | Sözdən dərhal çıxart | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
VƏ | Rd, Rr | Məntiqi və qeydlər | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K. | Məntiqi və qeydiyyatdan keçin və sabitdir | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Məntiqi və ya Qeydlər | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K. | Məntiqi VƏ Qeydiyyatdan keçin və Daimi | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Eksklüziv və ya Qeydlər | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Biri tamamlayır | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
YOX | Rd | İkinin tamamlayıcısı | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Qeydiyyatdan Bit (lər) seçin | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Qeydiyyatdan Bitləri ləğv edin | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Artırma | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Azalma | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Sıfır və ya Eksi üçün test | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Qeydiyyatı silin | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Qeydiyyatı seçin | Rd ← 0xFF | Heç biri | 1 |
ŞUBƏ TƏLİMATLARI | |||||
RJMP | k | Nisbi atlama | PC ← PC + k + 1 | Heç biri | 2 |
IJMP | Dolayı keçid (Z) | PC ← Z | Heç biri | 2 | |
ZƏNG EDİN | k | Nisbi Subroutine Zəngi | PC ← PC + k + 1 | Heç biri | 3 |
ICALL | Dolayı zəng (Z) | PC ← Z | Heç biri | 3 | |
RET | Subroutine qayıt | PC ← STAK | Heç biri | 4 | |
ŞƏBƏKƏLƏR | Fasilə qayıt | PC ← STAK | I | 4 | |
CPSE | Rd, Rr | Müqayisə et, bərabərdirsə keç | əgər (Rd = Rr) PC ← PC + 2 və ya 3 | Heç biri | 1/2/3 |
CP | Rd, Rr | Müqayisə et | Rd - Rr | Z, N, V, C, H | 1 |
CPC | Rd, Rr | Daşıma ilə müqayisə edin | Rd − Rr − C | Z, N, V, C, H | 1 |
CPI | Rd, K | Qeydiyyatı Dərhal ilə müqayisə edin | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, b | Qeydiyyatdan Bit bitibsə atlayın | əgər (Rr(b)=0) PC ← PC + 2 və ya 3 | Heç biri | 1/2/3 |
SBRS | Rr, b | Qeyddə Bit qurulubsa atlayın | əgər (Rr(b)=1) PC ← PC + 2 və ya 3 | Heç biri | 1/2/3 |
SBIC | P, b | I / O Qeydində Bit qeyd edildiyi təqdirdə silin | əgər (P(b)=0) PC ← PC + 2 və ya 3 | Heç biri | 1/2/3 |
SBIS | P, b | I / O Qeydində Bit qurulubsa atlayın | əgər (P(b)=1) PC ← PC + 2 və ya 3 | Heç biri | 1/2/3 |
BRBS | s, k | Status Bayrağı qurulubsa filial | əgər (SREG(lər) = 1), onda PC←PC+k + 1 | Heç biri | 1/2 |
BRBC | s, k | Status Bayrağı Silinirsə Şöbə | əgər (SREG(lər) = 0), onda PC←PC+k + 1 | Heç biri | 1/2 |
BREQ | k | Bərabərdirsə filial | əgər (Z = 1) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRNE | k | Bərabər deyilsə filial | əgər (Z = 0) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRCS | k | Daşıma dəsti varsa filial | əgər (C = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRCC | k | Daşıma halında Şöbə təmizləndi | əgər (C = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRSH | k | Eyni və ya daha yüksəkdirsə filial | əgər (C = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRLO | k | Aşağı olduqda filial | əgər (C = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRMI | k | Minus varsa filial | əgər (N = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRPL | k | Artıq filial | əgər (N = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRGE | k | Daha böyük və ya bərabərdirsə, budaq imzalanır | əgər (N ⊕ V= 0) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRLT | k | Sıfırdan Azsa, İmza | əgər (N ⊕ V= 1) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRHS | k | Yarım Daşıma Bayraq Dəsti Şöbəsi | əgər (H = 1) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRHC | k | Şöbə Yarım Daşıma Bayrağı silindi | əgər (H = 0) olarsa, onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRTS | k | T Bayrağı qurulmuşsa filial | əgər (T = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRTC | k | T Bayrağı Silinirsə Şöbə | əgər (T = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRVS | k | Taşma Bayrağı Ayarlanırsa filial | əgər (V = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BRVC | k | Taşma Bayrağı Silinirsə Şöbə | əgər (V = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BİREY | k | Əgər müdaxilə aktivdirsə filial | əgər ( I = 1) onda PC ← PC + k + 1 | Heç biri | 1/2 |
GƏLİN | k | Şöbə müdaxilə edərsə əlildir | əgər ( I = 0) onda PC ← PC + k + 1 | Heç biri | 1/2 |
BIT VƏ BIT-TEST TƏLİMATLARI | |||||
SBI | P, b | I / O Qeydində Bit seçin | I/O(P,b) ← 1 | Heç biri | 2 |
CBI | P, b | I / O Qeydində Biti silin | I/O(P,b) ← 0 | Heç biri | 2 |
LSL | Rd | Məntiqi sola sürüşdürün | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Məntiqi sürüşmə sağa | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
ROLU | Rd | Daşıma yolu ilə sola dönün | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Taşıma yolu ilə sağa dönün | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmetik Dəyişmə Sağ | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonika | Əməliyyatlar | Təsvir | Əməliyyat | Bayraqlar | # Saatlar |
SWAP | Rd | Nibbles dəyişdirin | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Heç biri | 1 |
BSET | s | Bayraq dəsti | SREG(lər) ← 1 | SREG (lər) | 1 |
BCLR | s | Bayraq silin | SREG(lər) ← 0 | SREG (lər) | 1 |
BST | Rr, b | Bit Mağaza Qeydiyyatdan T-ə | T ← Rr(b) | T | 1 |
BLD | Rd, b | T-dən Qeydiyyata bit yükü | Rd(b) ← T | Heç biri | 1 |
SEC | Daşımağı təyin edin | C ← 1 | C | 1 | |
CLC | Daşımağı təmizləyin | C ← 0 | C | 1 | |
SEN | Mənfi Bayraq qurun | N ← 1 | N | 1 | |
CLN | Mənfi Bayrağı silin | N ← 0 | N | 1 | |
XİZ | Sıfır Bayraq seçin | Z ← 1 | Z | 1 | |
CLZ | Sıfır Bayrağı silin | Z ← 0 | Z | 1 | |
SEI | Qlobal Kesinti Aktivləşdirin | mən ← 1 | I | 1 | |
CLI | Qlobal kəsməni söndürün | mən ← 0 | I | 1 | |
SES | İmzalı Test Bayrağını qurun | S ← 1 | S | 1 | |
CLS | İmzalanmış test bayrağını silin | S ← 0 | S | 1 | |
SEV | İkiqat tamamlayıcı daşqını seçin. | V ← 1 | V | 1 | |
CLV | İkiqat tamamlayıcı daşqını silin | V ← 0 | V | 1 | |
SET | SREG-də T seçin | T ← 1 | T | 1 | |
CLT | SREG-də T silin | T ← 0 | T | 1 | |
SEH | SREG-də Yarım Daşıma Bayrağını qurun | H ← 1 | H | 1 | |
CLH | SREG-də Yarım Daşıma Bayrağını silin | H ← 0 | H | 1 | |
VERİ VERİŞİ TƏLİMATLARI | |||||
MOV | Rd, Rr | Qeydlər arasında keçin | Rd ← Rr | Heç biri | 1 |
MOVW | Rd, Rr | Word qeydini kopyalayın | Rd+1:Rd ← Rr+1:Rr | Heç biri | 1 |
LDI | Rd, K. | Dərhal yükləyin | Rd ← K | Heç biri | 1 |
LD | Rd, X | Dolayı yükləyin | Rd ← (X) | Heç biri | 2 |
LD | Rd, X + | Dolayı və Post-Inc yükləyin. | Rd ← (X), X ← X + 1 | Heç biri | 2 |
LD | Rd, - X | Dolayı və Dekabrdan əvvəl yükləyin. | X ← X – 1, Rd ← (X) | Heç biri | 2 |
LD | Rd, Y | Dolayı yükləyin | Rd ← (Y) | Heç biri | 2 |
LD | Rd, Y + | Dolayı və Post-Inc yükləyin. | Rd ← (Y), Y ← Y + 1 | Heç biri | 2 |
LD | Rd, - Y | Dolayı və Dekabrdan əvvəl yükləyin. | Y ← Y – 1, Rd ← (Y) | Heç biri | 2 |
LDD | Rd, Y + q | Yer dəyişdirmə ilə dolayı yükləyin | Rd ← (Y + q) | Heç biri | 2 |
LD | Rd, Z | Dolayı yükləyin | Rd ← (Z) | Heç biri | 2 |
LD | Rd, Z + | Dolayı və Post-Inc yükləyin. | Rd ← (Z), Z ← Z+1 | Heç biri | 2 |
LD | Rd, -Z | Dolayı və Dekabrdan əvvəl yükləyin. | Z ← Z – 1, Rd ← (Z) | Heç biri | 2 |
LDD | Rd, Z + q | Yer dəyişdirmə ilə dolayı yükləyin | Rd ← (Z + q) | Heç biri | 2 |
LDS | Rd, k | SRAM-dan birbaşa yükləyin | Rd ← (k) | Heç biri | 2 |
ST | X, Rr | Dolayı olaraq saxlayın | (X) ← Rr | Heç biri | 2 |
ST | X +, Rr | Mağaza Dolayı və Post-Inc. | (X) ← Rr, X ← X + 1 | Heç biri | 2 |
ST | - X, Rr | Dolayı və Dekabr Öncəsi Mağaza. | X ← X – 1, (X) ← Rr | Heç biri | 2 |
ST | Y, Rr | Dolayı olaraq saxlayın | (Y) ← Rr | Heç biri | 2 |
ST | Y +, Rr | Mağaza Dolayı və Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Heç biri | 2 |
ST | - Y, Rr | Dolayı və Dekabr Öncəsi Mağaza. | Y ← Y – 1, (Y) ← Rr | Heç biri | 2 |
STD | Y + q, Rr | Dolayı yerdəyişmə ilə saxlayın | (Y + q) ← Rr | Heç biri | 2 |
ST | Z, Rr | Dolayı olaraq saxlayın | (Z) ← Rr | Heç biri | 2 |
ST | Z +, Rr | Mağaza Dolayı və Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Heç biri | 2 |
ST | -Z, Rr | Dolayı və Dekabr Öncəsi Mağaza. | Z ← Z – 1, (Z) ← Rr | Heç biri | 2 |
STD | Z + q, Rr | Dolayı yerdəyişmə ilə saxlayın | (Z + q) ← Rr | Heç biri | 2 |
STS | k, Rr | SRAM-a birbaşa saxlayın | (k) ← Rr | Heç biri | 2 |
LPM | Proqram Yaddaşını yükləyin | R0 ← (Z) | Heç biri | 3 | |
LPM | Rd, Z | Proqram Yaddaşını yükləyin | Rd ← (Z) | Heç biri | 3 |
LPM | Rd, Z + | Yük Proqramı Yaddaş və Post-Inc | Rd ← (Z), Z ← Z+1 | Heç biri | 3 |
SPM | Mağaza Proqram Yaddaşını | (z) ← R1:R0 | Heç biri | ||
IN | Rd, P. | Limanda | Rd ← P | Heç biri | 1 |
OUT | P, Rr | Liman çıxdı | P ← Rr | Heç biri | 1 |
İTƏNİN | Rr | Yığıncaqda qeydiyyatdan keçin | STACK ← Rr | Heç biri | 2 |
POP | Rd | Yığından Pop Qeydiyyatı | Rd ← STACK | Heç biri | 2 |
MCU NƏZARƏTİ TƏLİMATLARI | |||||
XEYR | Əməliyyat yoxdur | Heç biri | 1 | ||
YUXU | yatmaq | (yuxu funksiyası üçün xüsusi enmə göstəricilərinə baxın) | Heç biri | 1 | |
WDR | Gözətçi itinin sıfırlanması | (WDR / Timer üçün xüsusi enmə göstəricilərinə baxın) | Heç biri | 1 | |
BREAK | Fasilə |
Sürət (MHz) (1) | Təchizat həcmitage (V) | Temperatur Aralığı | Paket (2) | Sifariş kodu (3) |
10 | 1.8 - 5.5 | Sənaye
(-40 ° C - + 85 ° C) (4) |
8P3 | ATtiny45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | ATtiny45V-10XU ATtiny45V-10XUR | |||
20M1 | ATtiny45V-10MU ATtiny45V-10MUR | |||
20 | 2.7 - 5.5 | Sənaye
(-40 ° C - + 85 ° C) (4) |
8P3 | ATtiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
Qeydlər: 1. Sürət və təchizat həcmi üçüntage, bölməyə baxın 21.3 “Sürət” səhifə 163.
Bütün paketlər Pb-dən azad, halidsiz və tamamilə yaşıldır və Təhlükəli Maddələrin Məhdudlaşdırılmasına dair Avropa Direktivinə (RoHS) uyğundur.
Kod göstəriciləri
H: NiPdAu qurğuşun finiş
U: mat qalay
R: lent və makara
Bu cihazlar gofret şəklində də təmin edilə bilər. Ətraflı sifariş məlumatı və minimum miqdar üçün yerli Atmel satış ofisinizlə əlaqə saxlayın.
Səhv
Səhv ATtiny25
Bu hissədəki reviziya məktubu ATtiny25 cihazının revizyonuna aiddir.
Rev D - F
Məlum səhv yoxdur.
Rev B - C
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
Aşağı saat tezliklərində və/və ya aşağı təchizat həcmində EEPROM oxumağa çalışırıqtage etibarsız məlumatlarla nəticələnə bilər.
Problem düzeltme / keçid
Saat tezliyi 1 MHz -dən aşağı olduqda və həcmi təchiz edərkən EEPROM -dan istifadə etməyintage 2V -dən aşağıdır. Əməliyyat tezliyi 1 MHz-dən yuxarı qaldırıla bilməzsə, təchizat həcmitage 2V -dən çox olmalıdır. Eynilə, əgər təchizat həcmitage 2V -dən yuxarı qaldırıla bilməz, sonra işləmə tezliyi 1MHz -dən çox olmalıdır.
Bu xüsusiyyətin temperaturdan asılı olduğu bilinir, lakin xarakterizə olunmamışdır. Təlimatlar yalnız otaq temperaturu üçün verilir.
Rev A.
S deyilamprəhbərlik etdi.
Səhv ATtiny45
Bu hissədəki reviziya məktubu ATtiny45 cihazının revizyonuna aiddir.
Rev F - G
Məlum səhv yoxdur
Rev D - E
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
Aşağı saat tezliklərində və/və ya aşağı təchizat həcmində EEPROM oxumağa çalışırıqtage etibarsız məlumatlarla nəticələnə bilər.
Problem düzeltme / keçid
Saat tezliyi 1 MHz -dən aşağı olduqda və həcmi təchiz edərkən EEPROM -dan istifadə etməyintage 2V -dən aşağıdır. Əməliyyat tezliyi 1 MHz-dən yuxarı qaldırıla bilməzsə, təchizat həcmitage 2V -dən çox olmalıdır. Eynilə, əgər təchizat həcmitage 2V -dən yuxarı qaldırıla bilməz, sonra işləmə tezliyi 1MHz -dən çox olmalıdır.
Bu xüsusiyyətin temperaturdan asılı olduğu bilinir, lakin xarakterizə olunmamışdır. Təlimatlar yalnız otaq temperaturu üçün verilir.
Rev B - C
PLL kilidlənmir
Tətbiq kodundan oxunan EEPROM, Lock Bit Mode 3-də işləmir
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
Timer Counter 1 OC1B- XOC1B-də PWM çıxışı düzgün işləmir
PLL kilidlənmir
6.0 MHz-dən aşağı tezliklərdə olduqda, PLL kilidlənməyəcəkdir
Problem həll / həll yolu
PLL istifadə edərkən, 6.0 MHz və ya daha yüksək sürətdə çalışın.
Tətbiq kodundan oxunan EEPROM, Lock Bit Mode 3-də işləmir
Yaddaş kilidi bitləri LB2 və LB1 3 rejiminə programlandıqda, EEPROM oxu tətbiq kodundan işləmir.
Problem düzəlt / ətrafında çalış
Tətbiq kodunun EEPROM-dan oxuması lazım olduqda, Bit Bitdən Qoruma Modu 3-i ayarlamayın.
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
Aşağı saat tezliklərində və/və ya aşağı təchizat həcmində EEPROM oxumağa çalışırıqtage etibarsız məlumatlarla nəticələnə bilər.
Problem düzeltme / keçid
Saat tezliyi 1 MHz -dən aşağı olduqda və həcmi təchiz edərkən EEPROM -dan istifadə etməyintage 2V -dən aşağıdır. Əməliyyat tezliyi 1 MHz-dən yuxarı qaldırıla bilməzsə, təchizat həcmitage 2V -dən çox olmalıdır. Eynilə, əgər təchizat həcmitage 2V -dən yuxarı qaldırıla bilməz, sonra işləmə tezliyi 1MHz -dən çox olmalıdır.
Bu xüsusiyyətin temperaturdan asılı olduğu bilinir, lakin xarakterizə olunmamışdır. Təlimatlar yalnız otaq temperaturu üçün verilir.
Timer Counter 1 OC1B - XOC1B-də PWM çıxışı düzgün işləmir
Timer Counter1 PWM çıxışı OC1B-XOC1B düzgün işləmir. Yalnız nəzarət bitlərinin COM1B1 və COM1B0 sırasıyla COM1A1 və COM1A0 ilə eyni rejimdə olması halında OC1B-XOC1B çıxışı düzgün işləyir.
Problem düzəlt / ətrafında çalış
Yeganə həll yolu COM1A [1: 0] və COM1B [1: 0] nəzarət bitlərində eyni idarəetmə parametrlərindən istifadə etməkdir, məlumat vərəqəsindəki cədvəl 14-4-ə baxın. Problem Tiny45 rev D üçün düzəldildi.
Rev A.
Çox yüksək güc aşağı enerji istehlakı
DebugWIRE kəsilmələrə tək addım atanda ünsiyyəti itirir
PLL kilidlənmir
Tətbiq kodundan oxunan EEPROM, Lock Bit Mode 3-də işləmir
EEPROM oxuması aşağı təchizat həcmində uğursuz ola bilərtage / aşağı saat tezliyi
Çox yüksək güc aşağı enerji istehlakı
Üç vəziyyət, çox yüksək güc aşağı enerji istehlakına səbəb olacaq. Bunlar:
Xarici bir saat qoruyucular tərəfindən seçilir, lakin I / O PORT hələ bir çıxış olaraq aktivdir.
EEPROM gücə girmədən əvvəl oxunur.
VCC 4.5 volt və ya daha yüksəkdir.
İmtina: Bu sənəddəki məlumat Atmel məhsulları ilə əlaqədar verilir. Bu sənədlə və ya Atmel məhsullarının satışı ilə bağlı hər hansı əqli mülkiyyət hüququna açıq və ya nəzərdə tutulan heç bir lisenziya verilmir. ATMEL-DƏ YERLƏŞDİRİLƏN SATIŞ ŞƏRT VƏ ŞƏRTLƏRİNDƏ GÖSTƏRİLƏNLƏR İSTİSNA WEBSİTE, ATMEL HİÇ BİR MƏSULİYYƏTİ ÖZÜNƏ VERMİR VƏ MƏHSULLARINA BAĞLI HƏR AÇIQ, DÜZEYİ VƏ YA QANUNİ ZƏMANƏTDƏN İDDAR ETMİR, MƏHSULLARININ, MƏHSULLARININ, MƏHSULLARININ, MƏHSULLARININ, MƏHSULLARIN YÜZLƏ ZƏMANƏTİNİN, MƏHSULLARININ, MƏHSULLARININ, MƏHSULLARININ MƏHDUDLANMASI. HEÇ BİR HALDA ATMEL HƏR BİRBAŞA, DOLAYI, NƏTİCƏLİ, CƏZA, XÜSUSİ və ya təsadüfi ZƏRƏ (O cümlədən, Məhdudiyyət Olmadan, İTKİ VƏ MƏNFƏT, MƏLUMAT İSTİFADƏSİ, İSTİFADƏ EDİLMƏSİ) ÜÇÜN MƏSULİYYƏT OLMAYIR. BU SƏNƏD, ATMELƏ BELƏ ZƏRƏRLƏRİN MÜMKÜNLƏRİNDƏN XƏBƏRDARLIQ OLUNSA BELƏ.
Atmel bu sənədin məzmununun dəqiqliyi və ya tamlığı ilə bağlı heç bir ifadə və ya zəmanət vermir və istənilən vaxt xəbərdarlıq etmədən spesifikasiyalara və məhsulların təsvirlərinə dəyişiklik etmək hüququnu özündə saxlayır. Atmel buradakı məlumatı yeniləmək üçün heç bir öhdəlik götürmür. Xüsusi olaraq başqa cür nəzərdə tutulmayıbsa, Atmel məhsulları avtomobil tətbiqləri üçün uyğun deyil və istifadə edilməməlidir. Atmel məhsulları həyatı dəstəkləmək və ya saxlamaq üçün nəzərdə tutulmuş proqramlarda komponentlər kimi istifadə üçün nəzərdə tutulmayıb, icazə verilmir və ya zəmanət verilmir.