8/2/4K Bayt Sistem İçi Programlanabilir Flaşlı Atmel 8-bit AVR Mikrodenetleyici
Özellikler
- Yüksek Performans, Düşük Güç AVR® 8-Bit Mikrodenetleyici
- Gelişmiş RISC Mimarisi
- 120 Güçlü Yönerge - En Tek Saat Çevrimi Yürütme
- 32 x 8 Genel Amaçlı Çalışma Kaydı
- Tamamen Statik Çalışma
- Uçucu Olmayan Program ve Veri Hafızaları
- 2/4 / 8K Byte Sistem İçi Programlanabilir Program Bellek Flaşı
- Dayanıklılık: 10,000 Yazma/Silme Döngüsü
- 128/256/512 Bayt Sistem İçi Programlanabilir EEPROM
- Dayanıklılık: 100,000 Yazma/Silme Döngüsü
- 128/256/512 Bayt Dahili SRAM
- Kendi Kendini Programlayan Flaş Programı ve EEPROM Veri Güvenliği için Programlama Kilidi
Çevresel Özellikler
- Ön Ölçekleyici ve İki PWM Kanalı ile 8-bit Zamanlayıcı / Sayaç
- Ayrı Ön Ölçekleyici ile 8-bit Yüksek Hızlı Zamanlayıcı / Sayaç
- Ayrı Çıkış Karşılaştırma Kayıtları ile 2 Yüksek Frekanslı PWM Çıkışı
- Programlanabilir Ölü Zaman Üreteci
- USI - Başlangıç Durumu Dedektörlü Evrensel Seri Arabirim
- 10-bit ADC
4 Tek Uçlu Kanal
Programlanabilir Kazançlı 2 Diferansiyel ADC Kanal Çifti (1x, 20x)
Sıcaklık Ölçümü
Ayrı Çip Üstü Osilatörlü Programlanabilir Watchdog Zamanlayıcısı
Çip üzerinde Analog Karşılaştırıcı
Özel Mikrodenetleyici Özellikleri
debugWIRE Çip Üzerinde Hata Ayıklama Sistemi
SPI Portu ile Sistem İçi Programlanabilir
Harici ve Dahili Kesinti Kaynakları
Düşük Güç Boşta, ADC Gürültü Azaltma ve Güç Kapatma Modları
Gelişmiş Güç Açma Sıfırlama Devresi
Programlanabilir Brown-out Algılama Devresi
Dahili Kalibre Osilatör
G / Ç ve Paketler
Altı Programlanabilir I / O Hattı
8-pin PDIP, 8-pin SOIC, 20-pad QFN / MLF ve 8-pin TSSOP (sadece ATtiny45 / V)
Çalışma Hacmitage
- ATtiny1.8V / 5.5V / 25V için 45 - 85V
- ATtiny2.7 / 5.5/25 için 45 - 85V
Hız seviyesi
- 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
Endüstriyel Sıcaklık Aralığı
Düşük Güç Tüketimi
Aktif Mod:
1 MHz, 1.8V: 300 µA
Güç Kapatma Modu:
Pin Yapılandırmaları
Pin çıkışı ATtiny25 / 45/85
Pin Açıklamaları
VCC: Tedarik hacmitage.
GND: Zemin.
B Bağlantı Noktası (PB5:PB0): B Bağlantı Noktası, dahili pull-up dirençleri (her bit için seçili) olan 6 bitlik çift yönlü bir G/Ç bağlantı noktasıdır. Port B çıkış arabellekleri, hem yüksek alıcı hem de kaynak kapasiteli simetrik sürücü özelliklerine sahiptir. Giriş olarak, harici olarak düşük çekilen Port B pimleri, yukarı çekme dirençleri etkinleştirilirse akım kaynağı olacaktır. Port B pinleri, saat çalışmıyor olsa bile bir sıfırlama koşulu aktif hale geldiğinde üç-durumludur.
Port B ayrıca listelenen ATtiny25 / 45 / 85'in çeşitli özel özelliklerinin işlevlerini de yerine getirir.
ATtiny25 üzerinde, programlanabilir I / O portları PB3 ve PB4 (pin 2 ve 3), ATtiny15 ile geriye dönük uyumluluğu desteklemek için ATtiny15 Uyumluluk Modunda değiştirilir.
RESET: Girişi sıfırlayın. Bu pimde minimum darbe uzunluğundan daha uzun süre düşük bir seviye, saat çalışmıyor olsa ve sıfırlama pimi devre dışı bırakılmamışsa bile bir sıfırlama oluşturur. Minimum darbe uzunluğu şu şekilde verilir: Tablo 21-4 165. sayfada. Daha kısa darbelerin bir sıfırlama oluşturması garanti edilmez.
Sıfırlama pimi, (zayıf) bir G / Ç pini olarak da kullanılabilir.
Üzerindeview
ATtiny25 / 45/85, AVR ile geliştirilmiş RISC mimarisine dayalı düşük güçlü bir CMOS 8-bit mikro denetleyicidir. ATtiny25 / 45/85, tek bir saat döngüsünde güçlü komutları yürüterek, MHz başına 1 MIPS'ye yaklaşan çıktılara ulaşır ve sistem tasarımcısının güç tüketimini işlem hızına göre optimize etmesine olanak tanır.
Blok Şeması
AVR çekirdeği, zengin bir komut setini 32 genel amaçlı çalışma kaydı ile birleştirir. 32 yazmacın tümü doğrudan Aritmetik Mantık Birimine (ALU) bağlanır ve iki bağımsız yazmacı, bir saat döngüsünde yürütülen tek bir komutta erişilmesine izin verir. Ortaya çıkan mimari, geleneksel CISC mikro denetleyicilerinden on kata kadar daha hızlı iş hacmine ulaşırken daha kod verimlidir.
ATtiny25 / 45/85 aşağıdaki özellikleri sağlar: 2/4 / 8K bayt Sistem İçi Programlanabilir Flaş, 128/256/512 bayt EEPROM, 128/256/256 bayt SRAM, 6 genel amaçlı G / Ç hattı, 32 genel amaçlı çalışma kayıtları, karşılaştırma modlu bir 8-bit Zamanlayıcı / Sayaç, bir 8-bit yüksek hızlı Zamanlayıcı / Sayaç, Evrensel Seri Arayüz, Dahili ve Harici Kesmeler, 4-kanallı, 10-bit ADC, dahili programlanabilir bir Watchdog Zamanlayıcısı Osilatör ve yazılımdan seçilebilir üç güç tasarrufu modu. Boşta modu, SRAM, Zamanlayıcı / Sayaç, ADC, Analog Karşılaştırıcı ve Kesme sisteminin çalışmaya devam etmesine izin verirken CPU'yu durdurur. Kapatma modu, yazmaç içeriklerini kaydederek bir sonraki Kesmeye veya Donanım Sıfırlamasına kadar tüm yonga işlevlerini devre dışı bırakır. ADC Gürültü Azaltma modu, ADC dönüşümleri sırasında anahtarlama gürültüsünü en aza indirmek için CPU'yu ve ADC dışındaki tüm G / Ç modüllerini durdurur.
Cihaz, Atmel'in yüksek yoğunluklu uçucu olmayan bellek teknolojisi kullanılarak üretilmiştir. Çip üzerindeki ISP Flash, Program belleğinin bir SPI seri arabirimi aracılığıyla, geleneksel bir geçici olmayan bellek programcısı veya AVR çekirdeği üzerinde çalışan bir Çip üzerinde önyükleme kodu ile Sistem İçi yeniden programlanmasını sağlar.
ATtiny25 / 45/85 AVR, aşağıdakileri içeren eksiksiz bir program ve sistem geliştirme araçları paketiyle desteklenir: C Birleştiriciler, Makro Birleştiriciler, Program Hata Ayıklayıcı / Simülatörler ve Değerlendirme kitleri.
Kaynaklar Hakkında
Kapsamlı bir geliştirme araçları seti, uygulama notları ve veri sayfaları şuradan indirilebilir: http://www.atmel.com/avr.
Kod Öramples
Bu belge, basit kod ex içerirampcihazın çeşitli parçalarının nasıl kullanılacağını kısaca gösteren dosyalar. Bu kodlar eskiamples, parçaya özel başlığın file derlemeden önce dahil edilir. Tüm C derleyici satıcılarının başlıkta bit tanımları içermediğini unutmayın. files ve C'de kesme işleme, derleyiciye bağlıdır. Daha fazla ayrıntı için lütfen C derleyici belgeleriyle onaylayın.
Genişletilmiş G / Ç haritasında bulunan G / Ç Kayıtları için, "GİRİŞ", "ÇIKIŞ", "SBIS", "SBIC", "CBI" ve "SBI" komutları, genişletilmiş I'e erişime izin veren talimatlarla değiştirilmelidir. /Ö. Tipik olarak bu, "SBRS", "SBRC", "SBR" ve "CBR" ile birlikte "LDS" ve "STS" anlamına gelir. Tüm AVR cihazlarının genişletilmiş bir G / Ç haritası içermediğini unutmayın.
Kapasitif Dokunmatik Algılama
Atmel QTouch Kitaplığı, Atmel AVR mikrodenetleyicilerindeki dokunmaya duyarlı arabirimler için kullanımı basit bir çözüm sunar. QTouch Kitaplığı, QTouch® ve QMatrix® edinme yöntemleri için destek içerir.
Dokunma algılama, QTouch Kitaplığı bağlanarak ve dokunmatik kanalları ve sensörleri tanımlamak için kitaplığın Uygulama Programlama Arayüzü (API) kullanılarak herhangi bir uygulamaya kolayca eklenebilir. Uygulama daha sonra kanal bilgilerini almak ve dokunmatik sensörün durumunu belirlemek için API'yi çağırır.
QTouch Kütüphanesi ücretsizdir ve Atmel'den indirilebilir. webalan. Uygulamaya ilişkin daha fazla bilgi ve ayrıntılar için, ayrıca Atmel'de bulunan QTouch Kitaplığı Kullanıcı Kılavuzuna bakın. webalan.
Veri Saklama
Güvenilirlik Yeterlilik sonuçları, öngörülen veri tutma başarısızlık oranının 1 ° C'de 20 yılda 85 PPM'den veya 100 ° C'de 25 yılda XNUMX PPM'den çok daha az olduğunu göstermektedir.
AVR CPU Çekirdeği
giriiş
Bu bölümde genel olarak AVR çekirdek mimarisi ele alınmaktadır. CPU çekirdeğinin ana işlevi, programın doğru yürütülmesini sağlamaktır. Bu nedenle CPU, hafızalara erişebilmeli, hesaplamalar yapabilmeli, çevre birimlerini kontrol edebilmeli ve kesintileri yönetebilmelidir.
Mimari Üzeriview
AVR, performansı ve paralelliği en üst düzeye çıkarmak için, program ve veriler için ayrı bellekler ve veri yolları olan bir Harvard mimarisi kullanır. Program belleğindeki talimatlar, tek seviyeli bir ardışık düzen ile yürütülür. Bir komut yürütülürken, sonraki komut Program belleğinden önceden getirilir. Bu konsept, komutların her saat döngüsünde yürütülmesini sağlar. Program belleği, Sistem İçi Yeniden Programlanabilir Flash bellektir.
Hızlı erişim Kayıt File tek bir saat döngüsü erişim süresine sahip 32 x 8 bitlik genel amaçlı çalışma kayıtları içerir. Bu, tek döngülü Aritmetik Mantık Birimi (ALU) işlemine izin verir. Tipik bir ALU işleminde, Kayıttan iki işlenen çıkarılır. File, işlem yürütülür ve sonuç Kayıt Defterinde saklanır. File- bir saat döngüsünde.
32 yazmaçtan altısı, Veri Alanı adresleme için 16 bitlik üç dolaylı adres yazmaç işaretçisi olarak kullanılabilir - verimli adres hesaplamaları sağlar. Bu adres işaretçilerinden biri, Flash Program belleğindeki arama tabloları için bir adres işaretçisi olarak da kullanılabilir. Bu eklenen işlev kayıtları, bu bölümde daha sonra açıklanacak olan 16 bit X-, Y- ve Z-yazmaçlarıdır.
ALU, kayıtlar arasında veya bir sabit ile bir kayıt arasında aritmetik ve mantık işlemlerini destekler. ALU'da tek kayıt işlemleri de yürütülebilir. Bir aritmetik işlemden sonra, Durum Kaydı işlemin sonucu hakkındaki bilgileri yansıtacak şekilde güncellenir.
Program akışı, tüm adres alanını doğrudan adresleyebilen koşullu ve koşulsuz atlama ve çağrı komutlarıyla sağlanır. Çoğu AVR talimatının tek bir 16 bitlik kelime biçimi vardır, ancak 32 bitlik talimatlar da vardır.
Kesintiler ve alt rutin çağrıları sırasında, dönüş adresi Program Sayacı (PC) Yığın üzerinde saklanır. Yığın, genel veri SRAM'ında etkin bir şekilde tahsis edilir ve sonuç olarak Yığın boyutu yalnızca toplam SRAM boyutu ve SRAM kullanımı ile sınırlıdır. Tüm kullanıcı programları SP'yi Sıfırlama rutininde başlatmalıdır (alt rutinler veya kesintiler yürütülmeden önce). Yığın İşaretçisi (SP), G / Ç alanında okuma / yazma erişimine sahiptir. Veri SRAM'ına, AVR mimarisinde desteklenen beş farklı adresleme modu aracılığıyla kolayca erişilebilir.
AVR mimarisindeki bellek alanlarının tümü doğrusal ve düzenli bellek haritalarıdır.
Esnek bir kesme modülünün, Durum Kaydında ek bir Global Kesme Etkinleştirme biti ile G / Ç alanında kendi kontrol kayıtları vardır. Tüm kesmeler, Kesme Vektörü tablosunda ayrı bir Kesme Vektörüne sahiptir. Kesmeler, Kesinti Vektörü konumlarına göre önceliğe sahiptir. Kesinti Vektör adresi ne kadar düşükse, öncelik o kadar yüksek olur.
G/Ç bellek alanı, Kontrol Kayıtları, SPI ve diğer G/Ç işlevleri gibi CPU çevresel işlevleri için 64 adres içerir. G/Ç belleğine doğrudan veya Kayıt Defterinin konumlarını takip eden Veri Alanı konumları olarak erişilebilir. File, 0x20 – 0x5F.
ALU - Aritmetik Mantık Birimi
Yüksek performanslı AVR ALU, 32 genel amaçlı çalışma kaydının tümü ile doğrudan bağlantılı olarak çalışır. Tek bir saat döngüsü içinde, genel amaçlı kayıtlar arasında veya bir kayıt ile bir anlık arasında aritmetik işlemler gerçekleştirilir. ALU işlemleri üç ana kategoriye ayrılır - aritmetik, mantıksal ve bit fonksiyonları. Mimarinin bazı uygulamaları ayrıca hem işaretli / işaretsiz çarpmayı hem de kesirli biçimi destekleyen güçlü bir çarpan sağlar. Ayrıntılı bir açıklama için "Yönerge Seti" bölümüne bakın.
Durum Kayıt
Durum Kaydı, en son yürütülen aritmetik talimatın sonucu hakkında bilgi içerir. Bu bilgiler, koşullu işlemleri gerçekleştirmek amacıyla program akışını değiştirmek için kullanılabilir. Komut Seti Referansında belirtildiği gibi, Durum Kaydının tüm ALU işlemlerinden sonra güncellendiğine dikkat edin. Bu, çoğu durumda, özel karşılaştırma talimatlarını kullanma ihtiyacını ortadan kaldırarak daha hızlı ve daha kompakt kod sağlar.
Durum Kaydı, bir kesme rutini girilirken otomatik olarak depolanmaz ve bir kesmeden dönüldüğünde geri yüklenir. Bu, yazılım tarafından ele alınmalıdır.
SREG - AVR Durum Kaydı
AVR Durum Kaydı - SREG - şu şekilde tanımlanır:
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Global Interrupt Etkinleştirme
Kesintilerin etkinleştirilmesi için Global Interrupt Enable bitinin ayarlanması gerekir. Bireysel kesme etkinleştirme kontrolü daha sonra ayrı kontrol kayıtlarında gerçekleştirilir. Global Interrupt Enable Register silinirse, kesmelerin hiçbiri bireysel kesme etkinleştirme ayarlarından bağımsız olarak etkinleştirilmez. I-bit, bir kesinti meydana geldikten sonra donanım tarafından temizlenir ve sonraki kesintileri etkinleştirmek için RETI komutu tarafından ayarlanır. I-bit ayrıca, komut seti referansında açıklandığı gibi SEI ve CLI komutlarıyla uygulama tarafından ayarlanabilir ve silinebilir.
Bit 6 - T: Bit Copy Storage
Bit Kopyalama talimatları BLD (Bit LoaD) ve BST (Bit STore), çalıştırılan bit için kaynak veya hedef olarak T-bitini kullanır. Kayıttaki bir kayıttan bir bit File BST komutuyla T'ye kopyalanabilir ve T'deki bir bit, Kayıttaki bir kayıttaki bir bit'e kopyalanabilir. File BLD komutu ile.
Bit 5 - H: Half Carry Flag
Yarım Taşıma İşareti H, bazı aritmetik işlemlerde Yarım Taşımayı gösterir. Half Carry, BCD aritmetiğinde kullanışlıdır. Ayrıntılı bilgi için “Yönerge Seti Açıklaması” na bakın.
Bit 4 – S: İşaret Biti, S = N ⊕ V
S-bit her zaman bir özeldir veya Negatif Bayrak N ile İkinin Kompleman Taşma İşareti V arasındadır. Ayrıntılı bilgi için "Komut Seti Açıklaması" na bakın.
Bit 3 - V: İkinin Tamamlayıcı Taşma İşareti
Two's Complement Overflow Flag V, ikinin tümleyen aritmetiğini destekler. Ayrıntılı bilgi için “Yönerge Seti Açıklaması” na bakın.
Bit 2 - N: Negatif Bayrak
Negatif Bayrak N, bir aritmetik veya mantık işleminde negatif bir sonucu gösterir. Ayrıntılı bilgi için “Yönerge Seti Açıklaması” na bakın.
Bit 1 - Z: Sıfır İşareti
Sıfır Bayrağı Z, bir aritmetik veya mantık işleminde sıfır sonucu gösterir. Ayrıntılı bilgi için “Yönerge Seti Açıklaması” na bakın.
Bit 0 - C: Taşıma İşareti
Taşıma İşareti C, bir aritmetik veya mantık işleminde bir taşımayı gösterir. Ayrıntılı bilgi için “Yönerge Seti Açıklaması” na bakın.
Genel Amaçlı Kayıt File
Kayıt File AVR Enhanced RISC komut seti için optimize edilmiştir. Gerekli performansı ve esnekliği elde etmek için, aşağıdaki giriş/çıkış şemaları Register tarafından desteklenmektedir. File:
Bir 8 bitlik çıkış işlenen ve bir 8 bitlik sonuç girişi
İki 8 bitlik çıkış işlenenleri ve bir 8 bitlik sonuç girişi
İki 8 bitlik çıkış işlenenleri ve bir 16 bitlik sonuç girişi
Bir 16 bitlik çıkış işlenen ve bir 16 bitlik sonuç girişi
Şekil 4-2 CPU'daki 32 genel amaçlı çalışma kaydının yapısını gösterir.
Gösterildiği gibi Şekil 4-2, her kaydediciye ayrıca bir Veri hafıza adresi atanır ve bunları doğrudan kullanıcı Veri Alanının ilk 32 konumuna eşler. Fiziksel olarak SRAM konumları olarak uygulanmamasına rağmen, bu bellek organizasyonu, X-, Y- ve Z-işaretçi kayıtları, herhangi bir kaydı indekslemek için ayarlanabildiğinden, kayıtların erişiminde büyük esneklik sağlar. file.Kayıt üzerinde çalışan talimatların çoğu File tüm kayıtlara doğrudan erişime sahiptir ve bunların çoğu tek döngülü komutlardır.
X kaydı, Y kaydı ve Z kaydı
R26..R31 kayıtları, genel amaçlı kullanımlarına bazı ek işlevlere sahiptir. Bu kayıtlar, veri alanının dolaylı adreslemesi için 16 bitlik adres işaretçileridir. Üç dolaylı adres kaydı X, Y ve Z, Şekil 4-3.
Farklı adresleme modlarında bu adres yazmaçlarının sabit yer değiştirme, otomatik artış ve otomatik azaltma gibi işlevleri vardır (ayrıntılar için komut seti referansına bakın).
Yığın İşaretçisi
Yığın esas olarak geçici verileri depolamak, yerel değişkenleri depolamak ve kesmelerden ve alt rutin çağrılardan sonra dönüş adreslerini depolamak için kullanılır. Yığın İşaretçi Kaydı her zaman Yığının üstünü gösterir. Yığın, daha yüksek bellek konumlarından daha düşük bellek konumlarına doğru büyürken uygulandığına dikkat edin. Bu, bir Yığın PUSH komutunun Yığın İşaretçisini azalttığı anlamına gelir.
Yığın İşaretçisi, Alt Yordam ve Kesme Yığınlarının bulunduğu veri SRAM Yığın alanını işaret eder. Veri SRAM'ındaki bu Yığın alanı, herhangi bir alt rutin çağrısı yürütülmeden veya kesmeler etkinleştirilmeden önce program tarafından tanımlanmalıdır. Yığın İşaretçisi 0x60'ın üzerini gösterecek şekilde ayarlanmalıdır. Yığın İşaretçisi, veriler Yığın üzerine PUSH komutu ile itildiğinde bir azaltılır ve geri dönüş adresi alt yordam çağrısı veya kesme ile Yığın üzerine itildiğinde iki azaltılır. Yığın İşaretçisi, POP komutu ile Yığından veri atıldığında bir artırılır ve alt yordam RET'den dönüş veya kesme RETI'den dönüş ile Yığından veri çıkarıldığında iki birim artar.
AVR Yığın İşaretçisi, G / Ç alanında iki 8 bitlik kayıt olarak uygulanır. Gerçekte kullanılan bit sayısı uygulamaya bağlıdır. AVR mimarisinin bazı uygulamalarındaki veri alanının o kadar küçük olduğuna ve sadece SPL'ye ihtiyaç duyulduğuna dikkat edin. Bu durumda, SPH Kaydı mevcut olmayacaktır.
SPH ve SPL - Yığın İşaretçi Kaydı
Biraz | 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 | ||
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Başlangıç Değeri | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Talimat Yürütme Zamanlaması
Bu bölüm, talimat yürütme için genel erişim zamanlaması kavramlarını açıklamaktadır. AVR CPU, doğrudan çip için seçilen saat kaynağından üretilen CPU saat clkCPU tarafından çalıştırılır. Dahili saat bölümü kullanılmaz.
Şekil 4-4 Harvard mimarisi ve hızlı erişim Register tarafından etkinleştirilen paralel talimat getirmelerini ve talimat yürütmelerini gösterir File kavram. Bu, maliyet başına işlevler, saat başına işlevler ve güç birimi başına işlevler için karşılık gelen benzersiz sonuçlarla MHz başına 1 MIPS'ye kadar elde etmek için temel boru hattı konseptidir.
Şekil 4-5. Tek Döngü ALU İşlemi
İşlemi Sıfırla ve Kes
AVR birkaç farklı kesme kaynağı sağlar. Bu kesintilerin ve ayrı Sıfırlama Vektörünün her biri, Program hafıza alanında ayrı bir Program Vektörüne sahiptir. Tüm kesmelere, kesmeyi etkinleştirmek için Durum Kaydında Global Kesme Etkinleştirme biti ile birlikte mantıksal bir olarak yazılması gereken bağımsız etkinleştirme bitleri atanır.
Program bellek alanındaki en düşük adresler varsayılan olarak Sıfırlama ve Kesme Vektörleri olarak tanımlanır. Vektörlerin tam listesi şu şekilde gösterilir: "Kesmeler" sayfa 48. Liste ayrıca farklı kesintilerin öncelik seviyelerini de belirler. Adres ne kadar düşükse öncelik seviyesi o kadar yüksektir. RESET en yüksek önceliğe sahiptir ve sonraki INT0 - Harici Kesme İsteği 0'dır.
Bir kesinti meydana geldiğinde, Global Interrupt Enable I-biti temizlenir ve tüm kesintiler devre dışı bırakılır. Kullanıcı yazılımı, iç içe kesmeleri etkinleştirmek için l-bit'e mantık bir yazabilir. Etkinleştirilen tüm kesintiler daha sonra mevcut kesinti rutinini kesintiye uğratabilir. I-bit, Kesmeden Dönüş komutu - RETI - yürütüldüğünde otomatik olarak ayarlanır.
Temel olarak iki tür kesinti vardır. İlk tür, Kesme Bayrağını ayarlayan bir olay tarafından tetiklenir. Bu kesintiler için, Program Sayacı, kesinti işleme yordamını yürütmek için gerçek Kesme Vektörüne yönlendirilir ve donanım ilgili Kesme Bayrağını temizler. Kesme Bayrakları, silinecek bayrak biti konumlarına bir mantıksal bir tane yazarak da silinebilir. Karşılık gelen kesme etkinleştirme biti temizlenirken bir kesme durumu oluşursa, Kesme İşareti ayarlanacak ve kesme etkinleştirilene veya bayrak yazılım tarafından silinene kadar hatırlanacaktır. Benzer şekilde, Global Kesme Etkinleştirme biti temizlenirken bir veya daha fazla kesme koşulu meydana gelirse, karşılık gelen Kesme Bayrakları ayarlanacak ve Global Kesme Etkinleştirme biti ayarlanana kadar hatırlanacak ve ardından öncelik sırasına göre yürütülecektir.
İkinci tür kesintiler, kesme durumu mevcut olduğu sürece tetiklenecektir. Bu kesintilerin zorunlu olarak Kesme Bayrakları yoktur. Kesme etkinleştirilmeden önce kesme koşulu kaybolursa, kesme tetiklenmeyecektir.
AVR bir kesmeden çıktığında, her zaman ana programa dönecek ve bekleyen herhangi bir kesinti sunulmadan önce bir komut daha yürütecektir.
Durum Kaydının bir kesme rutini girerken otomatik olarak kaydedilmediğini veya bir kesme rutininden dönerken geri yüklenmediğini unutmayın. Bu, yazılım tarafından ele alınmalıdır.
Kesintileri devre dışı bırakmak için CLI talimatını kullanırken, kesintiler hemen devre dışı bırakılır. CLI komutuyla aynı anda gerçekleşse bile, CLI komutundan sonra hiçbir kesme yürütülmeyecektir. Aşağıdaki eskiample, zamanlanmış EEPROM yazma sırası sırasında kesintileri önlemek için bunun nasıl kullanılabileceğini gösterir.
Montaj Kodu Example |
r16'da, SREG; SREG değerini sakla
cli; zamanlı sıra sırasında kesintileri devre dışı bırak sbi EECR, EEMPE; EEPROM yazmayı başlat sbi EECR, EEPE çıkış SREG, r16 ; SREG değerini geri yükle (I-bit) |
C Kodu Örnample |
karakter cSREG;
cSREG = SREG; /* SREG değerini sakla */ /* zamanlı sıralama sırasında kesintileri devre dışı bırak */ _CLI (); EEKR |= (1< EECR | = (1 < SREG = cSREG; /* SREG değerini geri yükle (I-bit) */ |
Kesintileri etkinleştirmek için SEI talimatını kullanırken, bu örnekte gösterildiği gibi, SEI'yi takip eden talimat bekleyen herhangi bir kesintiden önce yürütülecektir.ampley.
Montaj Kodu Example |
sei; Küresel Kesintiyi Etkinleştir'i ayarla
uyumak; uyku gir, kesinti bekleniyor ; not: herhangi bir beklemeden önce uykuya girecek ; kesinti (ler) |
C Kodu Örnample |
_SEI(); /* Global Interrupt Enable'ı ayarla */
_UYUMAK(); /* uykuya girin, kesinti bekleniyor */ / * not: herhangi bir bekleyen kesmeden önce uykuya girecek * / |
Kesinti Tepki Süresi
Etkinleştirilmiş tüm AVR kesintileri için kesme yürütme yanıtı minimum dört saat döngüsüdür. Dört saat döngüsünden sonra, gerçek kesme işleme rutini için Program Vektör adresi yürütülür. Bu dört saat döngüsü periyodu sırasında, Program Sayacı Yığın üzerine itilir. Vektör normalde kesme rutinine bir atlamadır ve bu atlama üç saat döngüsü alır. Çok döngülü bir komutun yürütülmesi sırasında bir kesme meydana gelirse, bu komut, kesme sunulmadan önce tamamlanır. MCU uyku modundayken bir kesinti meydana gelirse, kesinti yürütme yanıt süresi dört saat döngüsü artar. Bu artış, seçilen uyku modundan başlatma süresine ek olarak gelir.
Bir kesinti işleme rutininden bir dönüş, dört saat döngüsü alır. Bu dört saat döngüsü sırasında, Program Sayacı (iki bayt) Yığından geri çıkar, Yığın İşaretçisi iki artırılır ve SREG'deki I-biti ayarlanır.
AVR Anıları
Bu bölüm ATtiny25 / 45 / 85'teki farklı bellekleri açıklamaktadır. AVR mimarisinin iki ana bellek alanı vardır: Veri belleği ve Program bellek alanı. Ek olarak, ATtiny25 / 45/85, veri depolama için bir EEPROM Belleğine sahiptir. Her üç bellek alanı da doğrusal ve düzenlidir.
Sistem İçi Yeniden Programlanabilir Flash Program Belleği
ATtiny25 / 45/85, program depolaması için 2/4 / 8K bayt On-chip In-System Reprogrammable Flash bellek içerir. Tüm AVR talimatları 16 veya 32 bit genişliğinde olduğundan, Flash 1024/2048/4096 x 16 olarak düzenlenmiştir.
Flash bellek en az 10,000 yazma / silme döngüsüne sahiptir. ATtiny25 / 45/85 Program Sayacı (PC) 10/11/12 bit genişliğindedir, bu nedenle 1024/2048/4096 Program belleği konumlarını adresler. "Hafıza Programı- ming ”sayfa 147 SPI pinlerini kullanarak Flash veri seri indirmesi hakkında ayrıntılı bir açıklama içerir.
Sabit tablolar, Program belleği adres alanının tamamında tahsis edilebilir (LPM - Program belleği yükleme talimat açıklamasına bakın).
Şekil 5-1. Program Hafıza Haritası
SRAM Veri Belleği
Şekil 5-2 ATtiny25 / 45/85 SRAM Belleğinin nasıl düzenlendiğini gösterir.
Alttaki 224/352/607 Veri belleği konumları, hem Kayıt hem de File, G/Ç belleği ve dahili veri SRAM'ı. İlk 32 konum Kayıt File, sonraki 64 konum standart G/Ç belleğini ve son 128/256/512 konumu dahili veri SRAM'ını adresler.
Veri belleği kapağı için beş farklı adresleme modu: Doğrudan, Yer Değiştirme ile Dolaylı, Dolaylı, Ön azaltma ile Dolaylı ve Arttırma ile Dolaylı. Kayıtta File, R26 ila R31 arasındaki kayıtlar, dolaylı adresleme işaretçi kayıtlarına sahiptir.
Doğrudan adresleme tüm veri alanına ulaşır.
Yer Değiştirme ile Dolaylı modu, Y veya Z-yazmacı tarafından verilen temel adresten 63 adres konumuna ulaşır.
Otomatik ön azaltma ve artma sonrası kayıt dolaylı adresleme modları kullanıldığında, adres kayıtları X, Y ve Z azaltılır veya artırılır.
ATtiny32/64/128'teki 256 genel amaçlı çalışma kaydı, 512 G/Ç Kayıt ve 25/45/85 bayt dahili veri SRAM'ının tümüne tüm bu adresleme modları aracılığıyla erişilebilir. Kayıt File içinde tanımlanmıştır "Gen- eral Amaç Kayıt File” 10. sayfada.
Şekil 5-2. Veri Belleği Haritası
Veri Belleği Erişimi Kez
Bu bölümde, dahili bellek erişimi için genel erişim zamanlaması kavramları açıklanmaktadır. Dahili veri SRAM erişimi, içinde açıklandığı gibi iki clkCPU döngüsünde gerçekleştirilir. Şekil 5-3.
Şekil 5-3. Çip Üzerinde Veri SRAM Erişim Döngüleri EEPROM Veri Belleği
ATtiny25 / 45/85, 128/256/512 bayt veri EEPROM belleği içerir. Tek baytların okunup yazılabildiği ayrı bir veri alanı olarak düzenlenmiştir. EEPROM'un en az 100,000 yazma / silme döngüsü dayanıklılığı vardır. EEPROM ve CPU arasındaki erişim, EEPROM Adres Kayıtlarını, EEPROM Veri Kaydını ve EEPROM Kontrol Kaydını belirterek aşağıda açıklanmaktadır. Ayrıntılar için bkz. "Seri İndirme" sayfa 151.
EEPROM Okuma / Yazma Erişimi
EEPROM Erişim Kayıtlarına G / Ç alanında erişilebilir.
EEPROM için yazma erişim süreleri aşağıda verilmiştir. Tablo 5-1, sayfa 21. Bununla birlikte, otomatik zamanlama işlevi, kullanıcı yazılımının bir sonraki baytın ne zaman yazılabileceğini algılamasını sağlar. Kullanıcı kodu, EEPROM'u yazan talimatlar içeriyorsa, bazı önlemler alınmalıdır. Yoğun şekilde filtrelenmiş güç kaynaklarında, VCC'nin yavaş yavaş yükselmesi veya düşmesi olasıdır.
Güç yukarı/aşağı. Bu, cihazın belirli bir süre boyunca bir hacimde çalışmasına neden olur.tage kullanılan saat frekansı için minimum olarak belirtilenden daha düşük. Görmek "EEPROM Bozulmasının Önlenmesi" sayfa 19 Bu gibi durumlarda sorunlardan nasıl kaçınılacağına ilişkin ayrıntılar için.
İstenmeyen EEPROM yazmalarını önlemek için belirli bir yazma prosedürü izlenmelidir. Bakın "Atomik Bayt Programlama ”sayfa 17 Ve "Bölünmüş Bayt Programlama" sayfa 17 bununla ilgili ayrıntılar için.
EEPROM okunduğunda, sonraki komut yürütülmeden önce CPU dört saat döngüsü için durdurulur. EEPROM yazıldığında, sonraki komut yürütülmeden önce CPU iki saat döngüsü için durdurulur.
Atomik Bayt Programlama
Atomik Bayt Programlamayı kullanmak en basit moddur. EEPROM'a bir bayt yazarken, kullanıcı adresi EEAR Kaydına ve verileri EEDR Kaydına yazmalıdır. EEPMn bitleri sıfır ise, EEPE yazmak (EEMPE yazıldıktan sonraki dört döngü içinde) silme / yazma işlemini tetikleyecektir. Hem silme hem de yazma döngüsü tek bir işlemde yapılır ve toplam programlama süresi Tablo 5-1, sayfa 21. EEPE biti, silme ve yazma işlemleri tamamlanana kadar ayarlanmış olarak kalır. Cihaz programlama ile meşgulken, başka herhangi bir EEPROM işlemi yapmak mümkün değildir.
Bölünmüş Bayt Programlama
Silme ve yazma döngüsünü iki farklı işleme bölmek mümkündür. Bu, sistem sınırlı bir süre için kısa erişim süresi gerektiriyorsa (tipik olarak güç kaynağı vol.tage düşer). Avans almak için tagBu yöntemde yazma işleminden önce yazılacak yerlerin silinmiş olması gerekmektedir. Ancak silme ve yazma işlemleri bölünmüş olduğundan, sistem zaman açısından kritik işlemlerin yapılmasına izin verdiğinde (tipik olarak Açılıştan sonra) silme işlemlerini yapmak mümkündür.
Sil
Bir baytı silmek için adres EEAR'a yazılmalıdır. EEPMn bitleri 0b01 ise, EEPE'nin yazılması (EEMPE yazıldıktan sonraki dört döngü içinde) yalnızca silme işlemini tetikleyecektir (programlama süresi Tablo 5-1 sayfa 21). EEPE biti, silme işlemi tamamlanana kadar ayarlanmış olarak kalır. Cihaz programlama meşgulken, başka herhangi bir EEPROM işlemi yapmak mümkün değildir.
Yazmak
Bir konum yazmak için, kullanıcının adresi EEAR'a ve verileri EEDR'ye yazması gerekir. EEPMn bitleri 0b10 ise, EEPE'nin yazılması (EEMPE yazıldıktan sonraki dört döngü içinde) yalnızca yazma işlemini tetikleyecektir (programlama süresi Tablo 5-1, sayfa 21). EEPE biti, yazma işlemi tamamlanana kadar ayarlanmış olarak kalır. Yazılacak konum yazılmadan önce silinmemişse, saklanan veriler kayıp olarak değerlendirilmelidir. Cihaz programlama ile meşgulken, başka herhangi bir EEPROM işlemi yapmak mümkün değildir.
Kalibre edilmiş Osilatör, EEPROM erişimini zamanlamak için kullanılır. Osilatör frekansının aşağıda açıklanan gereksinimler dahilinde olduğundan emin olun. "OSCCAL - Osilatör Kalibrasyon Kaydı" sayfa 31.
Aşağıdaki kod examples, EEPROM'un silinmesi, yazılması veya atomik olarak yazılması için bir montaj ve bir C işlevi gösterir. Eskiamples, kesintilerin kontrol edildiğini (örneğin, kesintileri global olarak devre dışı bırakarak) ve böylece bu işlevlerin yürütülmesi sırasında hiçbir kesintinin olmayacağını varsayar.
Montaj Kodu Example |
EEPROM_yazma:
; Önceki yazmanın tamamlanmasını bekleyin sbik EECR,EEPE rjmp EEPROM_write ; Programlama modunu ayarlayın ldi r16, (0<<EEPM1)|(0<<EEPM0) EECR çıkışı, r16 ; Adres kaydında adresi (r18: r17) ayarlayın EEARH çıkışı, r18 dışarı EEARL, r17 ; Veri (r19) veri kaydına yaz EEDR çıkışı, r19 ; EEMPE'ye mantıksal bir tane yazın sbi EECR, EEMPE ; EEPE'yi ayarlayarak eeprom yazmaya başlayın sbi EECR,EEPE geri |
C Kodu Örnample |
geçersiz EEPROM_write(işaretsiz char ucAddress, unsigned char ucData)
{ /* Önceki yazma işleminin tamamlanmasını bekleyin */ while(EECR & (1< ; /* Programlama modunu ayarla */ EECR = (0 < / * Adres ve veri kayıtlarını ayarla * / EEAR = ucAddress; EEDR = ucVeri; /* Mantıksal olanı EEMPE'ye yaz */ EECR | = (1 < / * EEPE'yi ayarlayarak eeprom yazmayı başlat * / EECR | = (1 < } |
Bir sonraki kod examples, EEPROM'u okumak için montaj ve C işlevlerini gösterir. Eskiamples, bu işlevlerin yürütülmesi sırasında hiçbir kesinti oluşmayacak şekilde kesmelerin kontrol edildiğini varsayar.
Montaj Kodu Example |
EEPROM_oku:
; Önceki yazmanın tamamlanmasını bekleyin sbik EECR,EEPE rjmp EEPROM_read ; Adres kaydında adresi (r18: r17) ayarlayın EEARH çıkışı, r18 dışarı EEARL, r17 ; EERE yazarak eeprom okumaya başlayın sbi EECR, EERE ; Veri kaydındaki verileri oku r16'da,EEDR geri |
C Kodu Örnample |
imzasız karakter EEPROM_read(işaretsiz karakter ucAdresi)
{ / * Önceki yazmanın tamamlanmasını bekle * / süre (EECR & (1 < ; / * Adres kaydını ayarla * / EEAR = ucAddress; /* EERE yazarak eeprom okumasını başlat */ EECR | = (1 < / * Veri kütüğünden verileri döndür * / İade EEDR; } |
EEPROM Bozulmasının Önlenmesi
Düşük VCC dönemlerinde, besleme volümü nedeniyle EEPROM verileri bozulabilir.tage, CPU ve EEPROM'un düzgün çalışması için çok düşük. Bu sorunlar, EEPROM kullanan kart düzeyindeki sistemlerle aynıdır ve aynı tasarım çözümleri uygulanmalıdır.
Bir EEPROM veri bozulmasına, vol.tage çok düşük. İlk olarak, EEPROM'a düzenli bir yazma sırası minimum hacim gerektirir.tage doğru şekilde çalışmak için. İkinci olarak, eğer tedarik hacmi artarsa, CPU'nun kendisi talimatları yanlış yürütebilir.tage çok düşük.
EEPROM veri bozulması, bu tasarım önerisini takip ederek kolayca önlenebilir:
Güç kaynağının yetersiz olduğu dönemlerde AVR RESET'i aktif (düşük) tutun.tage. Bu, dahili Kararma Dedektörünü (BOD) etkinleştirerek yapılabilir. Dahili BOİ'nin algılama seviyesi,
gerekli algılama seviyesi, harici bir düşük VCC sıfırlama koruma devresi kullanılabilir. Bir yazma işlemi devam ederken bir sıfırlama gerçekleşirse, güç kaynağının vol.tage yeterlidir.
G / Ç Belleği
ATtiny25 / 45 / 85'in I / O alanı tanımı, "Özeti Kaydet" sayfa 200.
Tüm ATtiny25 / 45/85 I / O'lar ve çevre birimleri I / O alanına yerleştirilir. Tüm G / Ç konumlarına LD / LDS / LDD ve ST / STS / STD talimatları ile erişilebilir, 32 genel amaçlı çalışma kaydı ve G / Ç alanı arasında veri aktarılır. 0x00 - 0x1F adres aralığındaki G / Ç Kayıtlarına SBI ve CBI talimatları kullanılarak doğrudan bit erişilebilir. Bu kayıtlarda, tekli bitlerin değeri SBIS ve SBIC komutları kullanılarak kontrol edilebilir. Daha fazla ayrıntı için talimat seti bölümüne bakın. G / Ç'ye özel GİRİŞ ve ÇIKIŞ komutlarını kullanırken, G / Ç adresleri 0x00 - 0x3F kullanılmalıdır. G / Ç Kayıtlarını LD ve ST komutlarını kullanarak veri alanı olarak adreslerken, bu adreslere 0x20 eklenmelidir.
Gelecekteki cihazlarla uyumluluk için, ayrılmış bitler erişilirse sıfıra yazılmalıdır. Ayrılmış G / Ç bellek adresleri asla yazılmamalıdır.
Bazı Durum Bayrakları mantıksal bir tane yazılarak silinir. CBI ve SBI komutlarının yalnızca belirtilen bit üzerinde çalışacağını ve bu nedenle bu Durum Bayraklarını içeren kayıtlarda kullanılabileceğini unutmayın. CBI ve SBI talimatları yalnızca 0x00 - 0x1F kayıtları ile çalışır.
G / Ç ve Çevre Birimleri Kontrol Kayıtları sonraki bölümlerde açıklanmaktadır.
Kayıt Açıklaması
EEARH - EEPROM Adres Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EEAR8 | EARH |
Okuma/Yazma | R | R | R | R | R | R | R | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bit 7: 1 - Res: Ayrılmış Bitler
Bu bitler ileride kullanılmak üzere ayrılmıştır ve her zaman sıfır olarak okunacaktır.
Bit 0 - EEAR8: EEPROM Adresi
Bu, ATtiny85'in en önemli EEPROM adres bitidir. Daha az EEPROM, yani ATtiny25 / ATtiny45 olan cihazlarda bu bit ayrılmıştır ve her zaman sıfırı okuyacaktır. EEPROM Adres Kaydının (EEAR) başlangıç değeri tanımsızdır ve bu nedenle EEPROM'a erişilmeden önce uygun bir değer yazılmalıdır.
EEARL - EEPROM Adres Kaydı
Biraz
0x1E | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | EARL |
Arka / Yaz | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | X | X | X | X | X | X | X | X |
Bit 7 - EEAR7: EEPROM Adresi
Bu, ATtiny45'in en önemli EEPROM adres bitidir. Daha az EEPROM, yani ATtiny25 olan cihazlarda, bu bit ayrılmıştır ve her zaman sıfırı okuyacaktır. EEPROM Adres Kaydının (EEAR) başlangıç değeri tanımsızdır ve bu nedenle EEPROM'a erişilmeden önce uygun bir değer yazılmalıdır.
Bit 6: 0 - EEAR [6: 0]: EEPROM Adresi
Bunlar EEPROM Adres Kaydının (düşük) bitleridir. EEPROM veri baytları 0… (128/256 / 512-1) aralığında doğrusal olarak adreslenir. EEAR'ın başlangıç değeri tanımsızdır ve bu nedenle EEPROM'a erişilmeden önce uygun bir değer yazılmalıdır.
EEDR - EEPROM Veri Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EDR7 | EDR6 | EDR5 | EDR4 | EDR3 | EDR2 | EDR1 | EDR0 | EDR |
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EEPROM yazma işlemi için EEDR Kaydı, EEAR Kaydı tarafından verilen adreste EEPROM'a yazılacak verileri içerir. EEPROM okuma işlemi için, EEDR, cihazdan okunan verileri içerir.
EEAR tarafından verilen adreste EEPROM.
5.5.4 EECR - EEPROM Kontrol Kaydı |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | ÜRKÜTÜCÜ | EEMPE | EPE | EERE | EEKR | |
Oku / Yaz R R R / W | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | ||||
Başlangıç Değeri 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: Ayrılmış Bit
Bu bit ileride kullanılmak üzere ayrılmıştır ve ATtiny0 / 25 / 45'te her zaman 85 olarak okunacaktır. Gelecekteki AVR cihazlarıyla uyumluluk için bu biti her zaman sıfıra yazın. Okuduktan sonra, bu kısmı maskeleyin.
Bit 6 - Res: Ayrılmış Bit
Bu bit ATtiny25 / 45 / 85'de saklıdır ve her zaman sıfır olarak okunur.
Bit 5: 4 - EEPM [1: 0]: EEPROM Programlama Modu Bitleri
EEPROM Programlama modu bit ayarı, EEPE yazılırken hangi programlama eyleminin tetikleneceğini tanımlar. Verileri tek bir atomik işlemde programlamak (eski değeri silmek ve yeni değeri programlamak) veya Silme ve Yazma işlemlerini iki farklı işlemde bölmek mümkündür. Farklı modlar için Programlama süreleri aşağıda gösterilmiştir. Tablo 5-1. EEPE ayarlanırken, EEPMn'ye herhangi bir yazma işlemi göz ardı edilecektir. Sıfırlama sırasında, EEPROM programlama ile meşgul olmadığı sürece EEPMn bitleri 0b00'a sıfırlanacaktır.
Tablo 5-1. EEPROM Modu Bitleri
EEPM1 | EEPM0 | Programlama Zamanı | Operasyon |
0 | 0 | 3.4 ms | Tek işlemde Sil ve Yaz (Atomik İşlem) |
0 | 1 | 1.8 ms | Yalnızca Sil |
1 | 0 | 1.8 ms | Yalnızca Yazma |
1 | 1 | – | Gelecekteki kullanım için ayrılmıştır |
Bit 3 - EERIE: EEPROM Hazır Kesmeyi Etkinleştir
EERIE'yi birine yazmak, SREG'deki I-biti ayarlanmışsa EEPROM Hazır Kesmeyi etkinleştirir. EERIE'yi sıfıra yazmak, kesmeyi bozar. EEPROM Hazır Kesmesi, Uçucu olmayan bellek programlama için hazır olduğunda sabit bir kesinti üretir.
Bit 2 - EEMPE: EEPROM Master Program Etkinleştirme
EEMPE biti, birine EEPE yazmanın etkili olup olmayacağını belirler.
EEMPE ayarlandığında, EEPE'nin dört saat döngüsü içinde ayarlanması EEPROM'u seçilen adreste programlayacaktır. EEMPE sıfır ise, EEPE ayarının hiçbir etkisi olmayacaktır. EEMPE, yazılım tarafından bire yazıldığında, donanım, dört saat döngüsünden sonra biti sıfıra sıfırlar.
Bit 1 - EEPE: EEPROM Program Etkinleştirme
EEPROM Program Etkinleştirme Sinyali EEPE, EEPROM'a programlama etkinleştirme sinyalidir. EEPE yazıldığında, EEPROM, EEPMn bit ayarına göre programlanacaktır. EEMPE biti, mantıksal olanı EEPE'ye yazılmadan önce birine yazılmalıdır, aksi takdirde EEPROM yazımı gerçekleşmez. Yazma erişim süresi dolduğunda, EEPE biti donanım tarafından temizlenir. EEPE ayarlandığında, sonraki komut yürütülmeden önce CPU iki döngü için durdurulur.
Bit 0 - EERE: EEPROM Okuma Etkinleştir
EEPROM Okuma Etkinleştirme Sinyali - EERE - EEPROM'a okuma flaşıdır. EEAR Kaydında doğru adres ayarlandığında, EEPROM okumasını tetiklemek için EERE biti birine yazılmalıdır. EEPROM okuma erişimi bir talimat alır ve istenen veriler hemen kullanılabilir. EEPROM okunduğunda, sonraki komut yürütülmeden önce CPU dört döngü için durdurulur. Kullanıcı, okuma işlemine başlamadan önce EEPE bitini yoklamalıdır. Bir yazma işlemi devam ediyorsa, ne EEPROM'u okumak ne de EEAR Kaydını değiştirmek mümkün değildir.
Sistem Saati ve Saat Seçenekleri
Saat Sistemleri ve Dağıtımı
CPU Saat
CPU saati, sistemin AVR çekirdeğinin çalışmasıyla ilgili bölümlerine yönlendirilir. EskiampBu tür modüllerin dosyaları Genel Amaçlı Kayıt File, Durum Kaydı ve Yığın İşaretçisini tutan Veri belleği. CPU saatini durdurmak, çekirdeğin genel işlemleri ve hesaplamaları yapmasını engeller.
G / Ç Saati - clkI / O
G / Ç saati, Zamanlayıcı / Sayaç gibi G / Ç modüllerinin çoğu tarafından kullanılır. G / Ç saati, Harici Kesme modülü tarafından da kullanılır, ancak bazı harici kesmelerin eşzamansız mantık tarafından algılandığına ve G / Ç saati durdurulsa bile bu tür kesmelerin tespit edilmesine izin verdiğine dikkat edin.
Flaş Saat - clkFLASH
Flash saati, Flash arayüzünün çalışmasını kontrol eder. Flash saat, genellikle CPU saatiyle eşzamanlı olarak etkindir.
ADC Saati - clkADC
ADC, özel bir saat alanı ile sağlanır. Bu, dijital devre tarafından üretilen gürültüyü azaltmak için CPU ve G / Ç saatlerinin durdurulmasına izin verir. Bu, daha doğru ADC dönüştürme sonuçları verir.
Hızlı Çevresel Saat Üretimi için Dahili PLL - clkPCK
ATtiny25 / 45 / 85'teki dahili PLL, bir kaynak girişinden 8x çarpılan bir saat frekansı üretir. Varsayılan olarak, PLL kaynak olarak dahili 8.0 MHz RC osilatörün çıkışını kullanır. Alternatif olarak, PLLCSR'nin LSM biti ayarlanmışsa, PLL, ikiye bölünmüş RC osilatörünün çıkışını kullanacaktır. Böylece PLL'nin çıkışı, hızlı çevresel saat 64 MHz'dir. Hızlı çevresel saat veya bundan önceden ölçeklenen bir saat, Zamanlayıcı / Sayaç1 için saat kaynağı veya bir sistem saati olarak seçilebilir. Görmek Şekil 6-2. PLLCSR'nin LSM'si ayarlandığında, hızlı çevresel saatin frekansı ikiye bölünür ve 32 MHz'lik bir saat frekansı elde edilir. Sistem saati olarak PLLCLK kullanılıyorsa LSM'nin ayarlanamayacağını unutmayın.
Şekil 6-2. PCK Saatleme Sistemi.
PLL, RC osilatörüne kilitlenir ve RC osilatörünün OSCCAL yazmacı aracılığıyla ayarlanması, aynı zamanda hızlı çevresel saati ayarlayacaktır. Bununla birlikte, RC osilatörü 8 MHz'den daha yüksek bir frekansa alınsa bile, hızlı çevresel saat frekansı 85 MHz'de doyurur (en kötü durum) ve maksimum frekansta salınmaya devam eder. Bu durumda PLL'nin artık RC osilatör saati ile kilitli olmadığına dikkat edilmelidir. Bu nedenle, PLL'yi doğru çalışma aralığında tutmak için OSCCAL ayarlamalarının 8 MHz'den daha yüksek bir frekansa götürülmemesi önerilir.
Dahili PLL şu durumlarda etkinleştirilir:
PLLCSR yazmacındaki PLLE biti ayarlanmıştır.
CKSEL sigortası '0001' olarak programlanmıştır.
CKSEL sigortası '0011' olarak programlanmıştır.
PLLCSR biti PLOCK, PLL kilitlendiğinde ayarlanır. Hem dahili RC osilatörü hem de PLL, güç kapatma ve bekleme modunda uyku modlarında kapatılır.
ATtiny15 Uyumluluk Modunda Dahili PLL
ATtiny25 / 45/85, ATtiny15 kullanıcıları için bir geçiş cihazı olduğundan, geriye dönük uyumluluk için bir ATtiny15 uyumluluk modu vardır. ATtiny15 uyumluluk modu, CKSEL sigortalarını '0011' olarak programlayarak seçilir.
ATtiny15 uyumluluk modunda, dahili RC osilatörünün frekansı 6.4 MHz'e kadar kalibre edilir ve PLL'nin çarpma faktörü 4x'e ayarlanır. Görmek Şekil 6-3. Bu ayarlamalar ile saat ölçüm sistemi ATtiny15 uyumludur ve ortaya çıkan hızlı çevresel saat 25.6 MHz frekansa sahiptir (ATtiny15 ile aynı).
Şekil 6-3. ATtiny15 Uyumluluk Modunda PCK Saatleme Sistemi.
Saat Kaynakları
Cihaz, aşağıda gösterildiği gibi Flaş Sigorta bitleri ile seçilebilen aşağıdaki saat kaynağı seçeneklerine sahiptir. Seçilen kaynaktan gelen saat, AVR saat üretecine girilir ve uygun modüllere yönlendirilir.
Tablo 6-1. Cihaz Saatleme Seçenekleri Seçin
Cihaz Saat Ölçümü Seçeneği | CKSEL[3:0](1) |
Harici Saat (Görmek sayfa 26) | 0000 |
Yüksek Frekanslı PLL Saat (Görmek sayfa 26) | 0001 |
Kalibre Edilmiş Dahili Osilatör (Görmek sayfa 27) | 0010(2) |
Kalibre Edilmiş Dahili Osilatör (Görmek sayfa 27) | 0011(3) |
Dahili 128 kHz Osilatör (Görmek sayfa 28) | 0100 |
Düşük Frekanslı Kristal Osilatör (Görmek sayfa 29) | 0110 |
Kristal Osilatör / Seramik Rezonatör (Görmek sayfa 29) | 1000 – 1111 |
Rezerve | 0101, 0111 |
Tüm sigortalar için "1" programlanmamış anlamına gelirken "0" programlanmış anlamına gelir.
Cihaz, bu seçenek seçilerek gönderilir.
Bu, sistem saatinin dörde bölündüğü ve 15 MHz saat frekansı sağlayan ATtiny1.6 Uyumluluk Modunu seçecektir. Daha fazla bilgi için bkz. "Kalibre Edilmiş Dahili Osilatör" sayfa 27.
Her saat ölçüm seçeneği için çeşitli seçenekler aşağıdaki bölümlerde verilmiştir. CPU, Güç kapatmadan uyandığında, seçilen saat kaynağı başlatmayı zamanlamak için kullanılır ve komutun yürütülmesi başlamadan önce kararlı Osilatör çalışmasını sağlar. CPU sıfırlamadan başladığında, normal çalışmaya başlamadan önce gücün kararlı bir seviyeye ulaşmasına izin veren ek bir gecikme olur. Watchdog Osilatörü, başlatma süresinin bu gerçek zamanlı bölümünü zamanlamak için kullanılır. Her zaman aşımı için kullanılan WDT Osilatör döngülerinin sayısı, Tablo 6-2.
Tablo 6-2. Watchdog Osilatör Döngülerinin Sayısı
Tip Zaman Aşımı | Döngü Sayısı |
4 ms | 512 |
64 ms | 8 bin (8,192) |
Harici Saat
Cihazı harici bir saat kaynağından sürmek için, CLKI aşağıda gösterildiği gibi çalıştırılmalıdır. Şekil 6-4. Cihazı harici bir saatte çalıştırmak için CKSEL Sigortaları "00" olarak programlanmalıdır.
Şekil 6-4. Harici Saat Sürücüsü Yapılandırması
Bu saat kaynağı seçildiğinde, başlatma süreleri aşağıda gösterildiği gibi SUT Sigortaları tarafından belirlenir. Tablo 6-3.
Tablo 6-3. Harici Saat Seçimi için Başlangıç Zamanları
SUT[1:0] | Kapanmadan Başlatma Süresi | Sıfırlamadan itibaren Ek Gecikme | Önerilen Kullanım |
00 | 6 CK | 14CK | BOD etkinleştirildi |
01 | 6 CK | 14CK + 4 ms | Hızlı yükselen güç |
10 | 6 CK | 14CK + 64 ms | Yavaş yavaş yükselen güç |
11 | Rezerve |
Harici bir saat uygularken, MCU'nun kararlı çalışmasını sağlamak için uygulanan saat frekansında ani değişikliklerden kaçınmak gerekir. Bir saat döngüsünden diğerine% 2'den fazla bir frekans değişimi, öngörülemeyen davranışlara yol açabilir. Saat frekansındaki bu tür değişiklikler sırasında MCU'nun Sıfırlamada tutulmasını sağlamak gerekir.
Sistem Saati Ön Satışının, kararlı çalışmayı sağlarken dahili saat frekansının çalışma zamanı değişikliklerini uygulamak için kullanılabileceğini unutmayın. Bakın "Sistem Saati Ön Ölçekleyici" sayfa 31 Ayrıntılar için.
Yüksek Frekanslı PLL Saat
Çevresel Zamanlayıcı / Sayaç64 kullanımı ve sistem saat kaynağı için RC Osilatöre kilitlenmiş nominal olarak 1 MHz saat hızı sağlayan dahili bir PLL vardır. Bir sistem saat kaynağı olarak seçildiğinde, CKSEL sigortalarını '0001'e programlayarak, aşağıda gösterildiği gibi dörde bölünür. Tablo 6-4.
Tablo 6-4. Yüksek Frekanslı PLL Saat Çalışma Modları
CKSEL[3:0] | Nominal Frekans |
0001 | 16 MHz |
Bu saat kaynağı seçildiğinde, başlatma süreleri SUT sigortaları tarafından aşağıda gösterildiği gibi belirlenir. Tablo 6-5.
Tablo 6-5. Yüksek Frekanslı PLL Saati için Başlatma Süreleri
SUT[1:0] | Güç Kesintisinden Başlatma Süresi | Açılışta Sıfırlamadan Ek Gecikme (VCC = 5.0 V) | Önerilen kullanım |
00 | 14CK + 1K (1024)CK + 4 ms | 4 ms | BOD etkinleştirildi |
Tablo 6-5. Yüksek Frekanslı PLL Saati için Başlatma Süreleri
SUT[1:0] | Güç Kesintisinden Başlatma Süresi | Açılışta Sıfırlamadan Ek Gecikme (VCC = 5.0 V) | Önerilen kullanım |
01 | 14CK + 16K (16384)CK + 4 ms | 4 ms | Hızlı yükselen güç |
10 | 14CK + 1K (1024)CK + 64 ms | 4 ms | Yavaş yavaş yükselen güç |
11 | 14CK + 16K (16384)CK + 64 ms | 4 ms | Yavaş yavaş yükselen güç |
Kalibre Edilmiş Dahili Osilatör
Varsayılan olarak Dahili RC Osilatörü yaklaşık 8.0 MHz saat hızı sağlar. cilt olsatage ve sıcaklığa bağlı olarak, bu saat kullanıcı tarafından çok hassas bir şekilde kalibre edilebilir. Görmek "Kalibre edilmiş Dahili RC Osilatör Akü- müstehcen ”sayfa 164 Ve "Dahili Osilatör Hızı" sayfa 192 daha fazla ayrıntı için. Cihaz programlanmış CKDIV8 Sigortası ile gönderilir. Görmek "Sistem Saati Ön Ölçekleyici" sayfa 31 Daha detaylı bilgi için.
Bu saat, CKSEL Sigortalarını aşağıda gösterildiği gibi programlayarak sistem saati olarak seçilebilir. Tablo 6-6, sayfa
27. Seçilirse, hiçbir harici bileşen olmadan çalışacaktır. Sıfırlama sırasında, donanım önceden programlanmış kalibrasyon değerini OSCCAL Kaydı'na yükler ve böylece RC Osilatörünü otomatik olarak kalibre eder. Bu kalibrasyonun doğruluğu, Fabrika kalibrasyonu olarak gösterilir. Tablo 21-2, sayfa 164.
OSCCAL kaydını SW'den değiştirerek, bkz. "OSCCAL - Osilatör Kalibrasyon Kaydı" sayfa 31fabrika kalibrasyonuna göre daha yüksek bir kalibrasyon doğruluğu elde etmek mümkündür. Bu kalibrasyonun doğruluğu, Kullanıcı kalibrasyonu olarak gösterilir. Tablo 21-2, sayfa 164.
Bu Osilatör çip saati olarak kullanıldığında, Watchdog Osilatörü yine de Watchdog Timer ve Reset Time-out için kullanılacaktır. Önceden programlanmış kalibrasyon değeri hakkında daha fazla bilgi için, bölüme bakın. "Cali- bration Byte ”, sayfa 150.
Dahili osilatör, gösterildiği gibi CKSEL sigortalarını "6.4" e yazarak 0011 MHz saat sağlayacak şekilde de ayarlanabilir. Tablo 6-6 altında. Bu ayar ATtiny15 Uyumluluk Modu olarak adlandırılır ve ATtiny6.4'te olduğu gibi 15 MHz'de kalibre edilmiş bir saat kaynağı sağlaması amaçlanmıştır. ATtiny15 Uyumluluk Modunda PLL, Zamanlayıcı / Sayaç6.4 için 25.6 MHz çevresel saat sinyali üretmek üzere 1 MHz'de çalışan dahili osilatörü kullanır (bkz. "8-bit Zamanlayıcı / Sayaç1 girişi ATtiny15 Modu ”sayfa 95). Bu çalışma modunda 6.4 MHz saat sinyalinin her zaman dörde bölündüğünü ve 1.6 MHz sistem saati sağladığını unutmayın.
Tablo 6-6. Dahili Kalibrasyonlu RC Osilatör Çalışma Modları
CKSEL[3:0] | Nominal Frekans |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Cihaz, bu seçenek seçilerek gönderilir.
Bu ayar, sistem saatinin dörde bölünerek 15 MHz saat frekansı oluşturduğu ATtiny1.6 Uyumluluk Modu'nu seçecektir.
Saat kaynağı olarak kalibre edilmiş 8 MHz dahili osilatör seçildiğinde, başlatma süreleri SUT Sigortaları tarafından aşağıda gösterildiği gibi belirlenir. Tablo 6-7 altında.
Tablo 6-7. Dahili Kalibrasyonlu RC Osilatör Saati için Başlatma Süreleri
SUT[1:0] | Kapanmadan Başlatma Süresi | Sıfırlamadan Ek Gecikme (VCC = 5.0V) | Önerilen Kullanım |
00 | 6 CK | 14CK(1) | BOD etkinleştirildi |
01 | 6 CK | 14CK + 4 ms | Hızlı yükselen güç |
10(2) | 6 CK | 14CK + 64 ms | Yavaş yavaş yükselen güç |
11 | Rezerve |
1. RSTDISBL sigortası programlanmışsa, programlama moduna girilebilmesini sağlamak için bu başlatma süresi 14CK + 4 ms'ye yükseltilecektir.
2. Aygıt, bu seçenek seçilerek gönderilir.
ATtiny15 Uyumluluk Modunda başlatma süreleri, aşağıda gösterildiği gibi SUT sigortaları tarafından belirlenir. Tablo 6-8 altında.
Tablo 6-8. Dahili Kalibrasyonlu RC Osilatör Saati için Başlatma Süreleri (ATtiny15 Modunda)
SUT[1:0] | Kapanmadan Başlatma Süresi | Sıfırlamadan Ek Gecikme (VCC = 5.0V) | Önerilen Kullanım |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Not: RSTDISBL sigortası programlanırsa, programlama moduna girilebilmesi için bu başlama süresi 14CK + 4 ms'ye çıkarılacaktır.
Özet olarak, ATtiny15 Uyumluluk Modu hakkında daha fazla bilgi bölümlerde bulunabilir. "Port B (PB5: PB0)" sayfa 2, "ATtiny15 Uyumluluk Modunda Dahili PLL" sayfa 24, "ATtiny8 Modunda 1-bit Zamanlayıcı / Sayaç15" sayfa 95, "DebugWIRE sınırlamaları" sayfa 140, "Kalibrasyon Baytları" sayfa 150 ve masada "Saat Ön Ölçekleyici Seçin ”, sayfa 33.
Dahili 128 kHz Osilatör
128 kHz dahili Osilatör, 128 kHz'lik bir saat sağlayan düşük güçlü bir Osilatördür. Frekans 3V ve 25°C'de nominaldir. Bu saat, CKSEL Sigortalarını “0100” olarak programlayarak sistem saati olarak seçilebilir.
Bu saat kaynağı seçildiğinde, başlatma süreleri aşağıda gösterildiği gibi SUT Sigortaları tarafından belirlenir. Tablo 6-9.
Tablo 6-9. 128 kHz Dahili Osilatör için Başlatma Süreleri
SUT[1:0] | Kapanmadan Başlatma Süresi | Sıfırlamadan itibaren Ek Gecikme | Önerilen Kullanım |
00 | 6 CK | 14CK(1) | BOD etkinleştirildi |
01 | 6 CK | 14CK + 4 ms | Hızlı yükselen güç |
10 | 6 CK | 14CK + 64 ms | Yavaş yavaş yükselen güç |
11 | Rezerve |
Not: RSTDISBL sigortası programlanırsa, programlama moduna girilebilmesi için bu başlama süresi 14CK + 4 ms'ye çıkarılacaktır.
Düşük Frekanslı Kristal Osilatör
Cihazın saat kaynağı olarak 32.768 kHz'lik bir saat kristali kullanmak için, Düşük frekanslı Kristal Osilatör, CKSEL sigortaları '0110' olarak ayarlanarak seçilmelidir. Kristal gösterildiği gibi bağlanmalıdır Şekil 6-5. 32.768 kHz crysal için uygun yük kapasitansını bulmak için lütfen üreticinin veri sayfasına bakın.
Bu osilatör seçildiğinde, başlatma süreleri SUT sigortaları tarafından aşağıda gösterildiği gibi belirlenir. Tablo 6-10.
Tablo 6-10. Düşük Frekanslı Kristal Osilatör Saat Seçimi İçin Başlatma Süreleri
SUT[1:0] | Güç Kesintisinden Başlatma Süresi | Sıfırlamadan Ek Gecikme (VCC = 5.0V) | Önerilen kullanım |
00 | 1K (1024) ÇK(1) | 4 ms | Hızlı yükselen güç veya BOİ etkin |
01 | 1K (1024) ÇK(1) | 64 ms | Yavaş yavaş yükselen güç |
10 | 32K (32768) ÇK | 64 ms | Başlangıçta kararlı frekans |
11 | Rezerve |
Not: Bu seçenekler, yalnızca başlatma sırasındaki frekans kararlılığının önemli olmadığı durumlarda kullanılmalıdır.
Düşük frekanslı Kristal Osilatör, dahili bir yük kapasitesi sağlar, bkz. Tablo 6-11 her TOSC pininde.
Tablo 6-11. Düşük Frekanslı Kristal Osilatörün Kapasitansı
Cihaz | 32 kHz Osc. Tür | Kapak (Xtal1 / Tosc1) | Kapak (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Sistem Osc. | 16 pF | 6 pF |
Kristal Osilatör / Seramik Rezonatör
XTAL1 ve XTAL2, bir ters çevirme işleminin sırasıyla girişi ve çıkışıdır. ampŞekilde gösterildiği gibi bir Çip Üzerinde Osilatör olarak kullanılmak üzere yapılandırılabilen yükseltici Şekil 6-5. Ya bir kuvars kristali ya da bir seramik rezonatör kullanılabilir.
C1 ve C2 hem kristaller hem de rezonatörler için her zaman eşit olmalıdır. Kapasitörlerin optimum değeri, kullanılan kristal veya rezonatöre, kaçak kapasitans miktarına ve ortamın elektromanyetik gürültüsüne bağlıdır. Kristallerle kullanım için kapasitörlerin seçimine ilişkin bazı başlangıç yönergeleri şu bölümde verilmiştir: Tablo 6-12 altında. Seramik rezonatörler için üretici tarafından verilen kondansatör değerleri kullanılmalıdır.
Tablo 6-12. Kristal Osilatör Çalışma Modları
CKSEL[3:1] | Frekans Aralığı (MHz) | Kristallerle Kullanım için C1 ve C2 Kapasitörleri için Önerilen Aralık (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 |
Notlar: Bu seçenek kristallerle kullanılmamalı, yalnızca seramik rezonatörlerle kullanılmalıdır.
Osilatör, her biri belirli bir frekans aralığı için optimize edilmiş üç farklı modda çalışabilir. Çalışma modu, gösterildiği gibi CKSEL [3: 1] sigortaları tarafından seçilir. Tablo 6-12.
CKSEL0 Sigortası, SUT [1: 0] Sigortaları ile birlikte gösterildiği gibi başlatma sürelerini seçer. Tablo 6-13.
Tablo 6-13. Kristal Osilatör Saat Seçimi için Başlatma Süreleri
CKSEL0 | SUT[1:0] | Kapanmadan Başlatma Süresi | Sıfırlamadan itibaren Ek Gecikme | Önerilen Kullanım |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Seramik rezonatör, hızlı yükselen güç |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Seramik rezonatör, yavaşça yükselen güç |
0 | 10 | 1K (1024) ÇK(2) | 14CK | Seramik rezonatör, BOD etkin |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Seramik rezonatör, hızlı yükselen güç |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Seramik rezonatör, yavaşça yükselen güç |
1 | 01 | 16K (16384) ÇK | 14CK | Kristal Osilatör, BOİ etkin |
1 | 10 | 16K (16384) ÇK | 14CK + 4 ms | Kristal Osilatör, hızlı yükselen güç |
1 | 11 | 16K (16384) ÇK | 14CK + 64 ms | Kristal Osilatör, yavaşça yükselen güç |
Notlar
Bu seçenekler yalnızca cihazın maksimum frekansına yakın çalışmadığında ve yalnızca başlangıçtaki frekans kararlılığının uygulama için önemli olmadığı durumlarda kullanılmalıdır. Bu seçenekler kristaller için uygun değildir.
Bu seçeneklerin seramik rezonatörlerle kullanılması amaçlanmıştır ve başlangıçta frekans kararlılığı sağlayacaktır. Cihazın maksimum frekansına yakın çalışmadıklarında ve başlangıçtaki frekans kararlılığı uygulama için önemli değilse kristallerle de kullanılabilirler.
Varsayılan Saat Kaynağı
Cihaz CKSEL = “0010”, SUT = “10” ve CKDIV8 programlanmış olarak sevk edilir. Bu nedenle varsayılan saat kaynağı ayarı, en uzun başlatma süresiyle 8 MHz'de çalışan Dahili RC Osilatörü ve 8 MHz sistem saati ile sonuçlanan 1.0'lik bir başlangıç sistem saati ön ölçeklendirmesidir. Bu varsayılan ayar, tüm kullanıcıların bir Sistem İçi veya Yüksek Ses kullanarak istedikleri saat kaynağı ayarını yapabilmelerini sağlar.tage Programcı.
Sistem Saati Ön Ölçekleyici
ATtiny25 / 45/85 sistem saati, "CLKPR - Saat Ön Ölçek Kaydı" sayfa 32. Bu özellik, işlem gücü gereksinimi düşük olduğunda güç tüketimini azaltmak için kullanılabilir. Bu, tüm saat kaynağı seçenekleriyle kullanılabilir ve CPU'nun ve tüm senkronize çevre birimlerinin saat frekansını etkiler. clkI/O, clkADC, clkCPU ve clkFLASH, şekilde gösterildiği gibi bir faktöre bölünür. Tablo 6-15, sayfa 33.
Geçiş Zamanı
Ön ölçekleyici ayarları arasında geçiş yaparken, Sistem Saati Ön Ölçekleyici, saat sisteminde hiçbir aksaklık oluşmamasını ve hiçbir ara frekansın ne önceki ayara karşılık gelen saat frekansından ne de yeni ayara karşılık gelen saat frekansından daha yüksek olmamasını sağlar.
Ön ölçekleyiciyi uygulayan dalgalanma sayacı, bölünmemiş saatin frekansında çalışır ve bu, CPU'nun saat frekansından daha hızlı olabilir. Bu nedenle, ön ölçekleyicinin durumunu belirlemek mümkün değildir - okunabilir olsa bile ve bir saat bölümünden diğerine geçmek için gereken tam süre tam olarak tahmin edilemez.
CLKPS değerlerinin yazıldığı andan itibaren, yeni saat frekansı aktif hale gelmeden önce T1 + T2 ile T1 + 2 * T2 arasında zaman geçer. Bu aralıkta 2 aktif saat kenarı üretilir. Burada T1, önceki saat periyodudur ve T2, yeni ön ölçekleyici ayarına karşılık gelen periyottur.
Saat Çıkışı Arabelleği
Cihaz, sistem saatini CLKO pini üzerinden verebilir (XTAL2 pini olarak kullanılmadığında). Çıkışı etkinleştirmek için CKOUT Sigortası programlanmalıdır. Bu mod, çip saati sistemdeki diğer devreleri sürmek için kullanıldığında uygundur. Sıfırlama sırasında saatin çıkmayacağını ve sigorta programlandığında G / Ç pininin normal çalışmasının geçersiz kılınacağını unutmayın. Saat CLKO'da çıktığında dahili RC Osilatörü, WDT Osilatörü, PLL ve harici saat (CLKI) seçilebilir. Kristal osilatörler (XTAL1, XTAL2) CLKO'da saat çıkışı için kullanılamaz. Sistem Saati Ön Ölçekleyici kullanılıyorsa, çıktısı bölünmüş sistem saatidir.
Kayıt Açıklaması
OSCCAL - Osilatör Kalibrasyon Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir |
Bit 7: 0 - CAL [7: 0]: Osilatör Kalibrasyon Değeri
Osilatör Kalibrasyon Kaydı, işlem varyasyonlarını osilatör frekansından kaldırmak için Kalibre Edilmiş Dahili RC Osilatörünü kırpmak için kullanılır. Önceden programlanmış bir kalibrasyon değeri, çip sıfırlama sırasında bu kayda otomatik olarak yazılır ve burada belirtildiği gibi Fabrikada kalibre edilmiş frekansı verir. Tablo 21-2, sayfa 164. Uygulama yazılımı, osilatör frekansını değiştirmek için bu kaydı yazabilir. Osilatör, aşağıda belirtildiği gibi frekanslara kalibre edilebilir. Tablo 21-2, sayfa 164. Bu aralığın dışında kalibrasyon garanti edilmez.
Bu osilatörün EEPROM ve Flash yazma erişimlerini zamanlamak için kullanıldığını ve bu yazma sürelerinin buna göre etkileneceğini unutmayın. EEPROM veya Flash yazılırsa, 8.8 MHz'den fazla kalibre etmeyin. Aksi takdirde, EEPROM veya Flash yazma başarısız olabilir.
CAL7 biti, osilatör için çalışma aralığını belirler. Bu bitin 0'a ayarlanması en düşük frekans aralığını verirken, bu bitin 1'e ayarlanması en yüksek frekans aralığını verir. İki frekans aralığı örtüşüyor, başka bir deyişle OSCCAL = 0x7F ayarı, OSCCAL = 0x80'den daha yüksek bir frekans verir.
CAL [6: 0] bitleri, seçilen aralıktaki frekansı ayarlamak için kullanılır. 0x00 ayarı bu aralıktaki en düşük frekansı verir ve 0x7F ayarı aralıktaki en yüksek frekansı verir.
MCU'nun kararlı çalışmasını sağlamak için kalibrasyon değeri küçük olarak değiştirilmelidir. Bir döngüden diğerine% 2'den fazla bir sıklık değişimi, öngörülemeyen davranışlara yol açabilir. OSCCAL'deki değişiklikler her kalibrasyon için 0x20'yi geçmemelidir. Saat frekansındaki bu tür değişiklikler sırasında MCU'nun Sıfırlamada tutulmasını sağlamak gerekir.
Tablo 6-14. Dahili RC Osilatör Frekans Aralığı
OSCCAL Değeri | Nominal Frekansa Göre Tipik En Düşük Frekans | Nominal Frekansa Göre Tipik En Yüksek Frekans |
0x00 | %50 | %100 |
0x3F | %75 | %150 |
0x7F | %100 | %200 |
CLKPR - Saat Ön Ölçek Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Okuma/Yazma | Okunabilir/Yazılabilir | R | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir |
Başlangıç Değeri 0 0 0 0 Bkz. Bit Açıklama
Bit 7 - CLKPCE: Saat Ön Ölçekleyici Değişikliğini Etkinleştir
CLKPS bitlerinin değiştirilmesini sağlamak için CLKPCE biti mantık XNUMX'e yazılmalıdır. CLKPCE biti yalnızca CLKPR'deki diğer bitler aynı anda sıfıra yazıldığında güncellenir. CLKPCE, yazıldıktan dört döngü sonra veya CLKPS bitleri yazıldıktan sonra donanım tarafından temizlenir. Bu zaman aşımı süresi içinde CLKPCE bitini yeniden yazmak ne zaman aşımı süresini uzatır ne de CLKPCE bitini temizler.
Bit 6: 4 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 3: 0 - CLKPS [3: 0]: Saat Ön Ölçekleyici Bit Seçimi 3 - 0
Bu bitler, seçilen saat kaynağı ile dahili sistem saati arasındaki bölme faktörünü tanımlar. Bu bitler, uygulama gereksinimlerine uyacak şekilde saat frekansını değiştirmek için çalışma zamanı olarak yazılabilir. Bölücü, ana saat girişini MCU'ya böldüğünden, bir bölme faktörü kullanıldığında tüm senkronize çevre birimlerinin hızı azaltılır. Bölme faktörleri verilmiştir Tablo 6-15.
Saat frekansının yanlışlıkla değiştirilmesini önlemek için, CLKPS bitlerini değiştirmek için özel bir yazma prosedürü izlenmelidir:
Clock Prescaler Change Enable (CLKPCE) bitini bire ve CLKPR'deki diğer tüm bitleri sıfıra yazın.
Dört döngü içinde, CLKPCE'ye sıfır yazarken istenen değeri CLKPS'ye yazın.
Yazma prosedürünün kesintiye uğramamasını sağlamak için ön ölçekleyici ayarı değiştirilirken kesmeler devre dışı bırakılmalıdır.
CKDIV8 Sigortası, CLKPS bitlerinin başlangıç değerini belirler. CKDIV8 programlanmamışsa, CLKPS bitleri “0000” olarak sıfırlanacaktır. CKDIV8 programlanırsa, CLKPS bitleri başlangıçta sekiz bölme faktörü vererek "0011"e sıfırlanır. Bu özellik, seçilen saat kaynağının mevcut çalışma koşullarında cihazın maksimum frekansından daha yüksek bir frekansa sahip olması durumunda kullanılmalıdır. CKDIV8 Fuse ayarından bağımsız olarak CLKPS bitlerine herhangi bir değerin yazılabileceğine dikkat edin. Uygulama yazılımı, yeterli bir bölme faktörünün
seçilen saat kaynağının mevcut çalışma koşullarında cihazın maksimum frekansından daha yüksek bir frekansı varsa seçilir. Cihaz programlanmış CKDIV8 Sigortası ile gönderilir.
Tablo 6-15. Saat Ön Ölçekleyici Seçimi
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Saat Bölme Faktörü |
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 | Rezerve |
1 | 0 | 1 | 0 | Rezerve |
1 | 0 | 1 | 1 | Rezerve |
1 | 1 | 0 | 0 | Rezerve |
1 | 1 | 0 | 1 | Rezerve |
1 | 1 | 1 | 0 | Rezerve |
1 | 1 | 1 | 1 | Rezerve |
Not: Ön ölçekleyici, ATtiny15 uyumluluk modunda devre dışı bırakılır ve ne CLKPR'ye yazmanın ne de CKDIV8 sigortasının programlanmasının sistem saati (her zaman 1.6 MHz olacaktır) üzerinde herhangi bir etkisi yoktur.
Güç Yönetimi ve Uyku Modları
Yüksek performans ve endüstri lideri kod verimliliği, AVR mikro denetleyicilerini düşük güç uygulamaları için ideal bir seçim haline getirir. Ek olarak, uyku modları, uygulamanın MCU'daki kullanılmayan modülleri kapatmasına ve böylelikle güç tasarrufu yapmasına olanak tanır. AVR, kullanıcının güç tüketimini uygulamanın gereksinimlerine göre ayarlamasına olanak tanıyan çeşitli uyku modları sağlar.
Uyku Modları
Şekil 6-1, sayfa 23 farklı saat sistemlerini ve dağılımlarını ATtiny25 / 45 / 85'de sunar. Şekil, uygun bir uyku modunun seçilmesinde yardımcı olur. Tablo 7-1 farklı uyku modlarını ve uyanma kaynaklarını gösterir.
Tablo 7-1. Farklı Uyku Modlarında Aktif Saat Etki Alanları ve Uyandırma Kaynakları
Aktif Saat Etki Alanları | Osilatörler | Uyandırma Kaynakları | ||||||||||
Uyku Modu | clkCPU | clkFLAŞ | clkio | clkADC | clkPCK | Ana Saat Kaynağı Etkin | INT0 ve Pin Değişimi | SPM / EEPROM
Hazır |
USI Başlangıç Koşulu |
ADC | Diğer G/Ç | Bekçi köpeği Yarıda kesmek |
Boşta | X | X | X | X | X | X | X | X | X | X | ||
ADC Gürültü Azaltma | X | X | X(1) | X | X | X | X | |||||
Gücü kapat | X(1) | X | X |
Not: INT0 için sadece seviye kesmesi.
Üç uyku modundan herhangi birine girmek için, MCUCR'deki SE biti mantık 1'e yazılmalı ve bir SLEEP komutu yürütülmelidir. MCUCR Kaydındaki SM [0: XNUMX] bitleri, hangi uyku modunun (Boşta, ADC Gürültü Azaltma veya Güç Kapatma) SLEEP komutu ile etkinleştirileceğini seçer. Görmek Tablo 7-2 bir özet için.
MCU uyku modundayken etkin bir kesme meydana gelirse, MCU uyanır. MCU daha sonra başlatma süresine ek olarak dört döngü için durdurulur, kesme rutinini yürütür ve SLEEP'i izleyen talimattan yürütmeye devam eder. Kayıt içeriği File ve SRAM, cihaz uykudan uyandığında değişmez. Uyku modu sırasında bir sıfırlama meydana gelirse, MCU uyanır ve Sıfırlama Vektöründen yürütülür.
Not: uyandırma için seviye tetiklemeli bir kesme kullanılırsa, MCU'yu uyandırmak (ve MCU'nun kesme servis rutinine girmesi için) için değiştirilen seviyenin bir süre tutulması gerekir. Görmek "Harici Kesintiler" sayfa 49 Ayrıntılar için.
Bekleme modu
SM[1:0] bitleri 00'a yazıldığında, SLEEP komutu MCU'nun Boşta moda girmesini sağlar, CPU'yu durdurur, ancak Analog Karşılaştırıcı, ADC, USI, Zamanlayıcı/Sayaç, İzleyici ve kesme sisteminin çalışmaya devam etmesine izin verir. yemek Bu uyku modu temel olarak clkCPU ve clkFLASH'ı durdururken diğer saatlerin çalışmasına izin verir.
Boşta modu, MCU'nun harici tetiklenen kesintilerden ve Zamanlayıcı Taşması gibi dahili kesintilerden uyanmasını sağlar. Analog Karşılaştırıcı kesintisinden uyanmak gerekmiyorsa, Analog Karşılaştırıcı ACD bitini "ACSR - Analog Karşılaştırıcı Kontrolü ve Durum Kaydı" sayfa 120. Bu, Bekleme modunda güç tüketimini azaltacaktır. ADC etkinleştirilirse, bu moda girildiğinde bir dönüştürme otomatik olarak başlar.
ADC Gürültü Azaltma Modu
SM[1:0] bitleri 01'e yazıldığında, SLEEP komutu MCU'nun ADC Gürültü Azaltma moduna girmesini sağlayarak CPU'yu durdurur ancak ADC'nin, harici kesmelerin ve Watchdog'un (etkinleştirilmişse) çalışmaya devam etmesine izin verir. Bu uyku modu, diğer saatlerin çalışmasına izin verirken clkI/O, clkCPU ve clkFLASH'ı durdurur.
Bu, ADC için gürültü ortamını iyileştirerek daha yüksek çözünürlüklü ölçümler sağlar. ADC etkinleştirilirse, bu moda girildiğinde bir dönüştürme otomatik olarak başlar. ADC Dönüştürme Tamamlandı kesintisinin yanı sıra, yalnızca bir Harici Sıfırlama, bir Bekçi Uygulaması Sıfırlama, bir Brown-out Sıfırlama, bir SPM / EEPROM hazır kesintisi, INT0 üzerinde bir harici seviye kesmesi veya bir pin değiştirme kesintisi, MCU'yu ADC Gürültü Azaltımından uyandırabilir. modu.
Güç Kapatma Modu
SM [1: 0] bitleri 10'a yazıldığında, SLEEP komutu MCU'nun Güç kapama moduna girmesini sağlar. Bu modda, Osilatör durdurulurken harici kesintiler, USI başlatma koşulu tespiti ve Watchdog çalışmaya devam eder (etkinleştirilmişse). Yalnızca bir Harici Sıfırlama, bir Watchdog Sıfırlama, bir Brown-out Sıfırlama, USI başlatma koşulu kesintisi, INT0'da bir harici seviye kesmesi veya bir pin değiştirme kesintisi MCU'yu uyandırabilir. Bu uyku modu, üretilen tüm saatleri durdurarak yalnızca eşzamansız modüllerin çalışmasına izin verir.
Yazılım BOD Devre Dışı
Brown-out Detektörü (BOD), BODLEVEL sigortaları tarafından etkinleştirildiğinde (bkz. Tablo 20-4, sayfa 148), BOİ tedarik hacmini aktif olarak izliyortage uyku döneminde. Bazı cihazlarda, Güç Kapatma uyku modunda yazılımla BOD'yi devre dışı bırakarak güç tasarrufu yapmak mümkündür. Uyku modu güç tüketimi, BOD sigortalar tarafından global olarak devre dışı bırakıldığındaki ile aynı seviyede olacaktır.
BOD yazılım tarafından devre dışı bırakılırsa, BOD işlevi uyku moduna girdikten hemen sonra kapatılır. Uykudan uyandıktan sonra, BOD otomatik olarak tekrar etkinleştirilir. Bu, uyku süresi boyunca VCC seviyesinin düşmesi durumunda güvenli çalışmayı sağlar.
BOİ devre dışı bırakıldığında, uyku modundan uyanma süresi, RESET'ten uyanma ile aynı olacaktır. Kullanıcı, MCU kodu yürütmeye devam etmeden önce bant aralığı referansının başlaması için zamana sahip olacak ve BOD doğru çalışacak şekilde uyanma zamanlarını manuel olarak yapılandırmalıdır. Tablodaki SUT [1: 0] ve CKSEL [3: 0] sigorta bitlerine bakın "Sigorta Düşük Bayt" sayfa 149
BOD devre dışı bırakma, MCU Kontrol Kaydının BODS (BOD Uyku) biti tarafından kontrol edilir, bkz. "MCUCR - MCU Kontrolü Kayıt ”sayfa 37. Bu biti bire yazmak, Güç Kapatmada BOD'yi kapatır, sıfır yazmak ise BOD'yi aktif tutar. Varsayılan ayar sıfırdır, yani BOD etkin.
BODS bitine yazma, zamanlanmış bir sıra ve bir etkinleştirme biti tarafından kontrol edilir, bkz. "MCUCR - MCU Kontrol Kaydı- ter ”, sayfa 37.
Sınırlamalar
BOİ devre dışı bırakma işlevi yalnızca aşağıdaki cihazlarda uygulanmıştır:
ATtiny25, revizyon E ve daha yeni
ATtiny45, düzeltme D ve daha yeni
ATtiny85, revizyon C ve daha yeni
Revizyonlar cihaz paketinde işaretlenmiştir ve aşağıdaki gibi bulunabilir:
8P3 ve 8S2 paketlerinin alt tarafı
20M1 paketinin üst tarafı
Güç Azaltma Kaydı
Güç Azaltma Kaydı (PRR), bkz. "PRR - Güç Azaltma Kaydı" sayfa 38, saati ayrı çevre birimlerine durdurarak güç tüketimini azaltmak için bir yöntem sağlar. Çevre biriminin mevcut durumu dondurulur ve G / Ç kayıtları okunamaz veya yazılamaz. Çevre birimi tarafından saati durdururken kullanılan kaynaklar meşgul kalacaktır, bu nedenle çevre birimi çoğu durumda saati durdurmadan önce devre dışı bırakılmalıdır. PRR'deki biti temizleyerek yapılan bir modülü uyandırmak, modülü kapanmadan önceki duruma getirir.
Modül kapatma, genel güç tüketimini önemli ölçüde azaltmak için Bekleme modunda ve Etkin modda kullanılabilir. Diğer tüm uyku modlarında saat zaten durdurulmuştur. Görmek "G / Ç modüllerinin Besleme Akımı" sayfa 177 örneğinamples.
Güç Tüketimini En Aza İndirmek
AVR kontrollü bir sistemde güç tüketimini en aza indirmeye çalışırken dikkate alınması gereken birkaç konu vardır. Genel olarak, uyku modları olabildiğince kullanılmalı ve uyku modu, cihazın işlevlerinden mümkün olduğunca azının çalışacağı şekilde seçilmelidir. Gerekli olmayan tüm işlevler devre dışı bırakılmalıdır. Mümkün olan en düşük güç tüketimini elde etmeye çalışırken özellikle aşağıdaki modüller özel dikkat gerektirebilir.
Analogdan Dijitale Dönüştürücü
Etkinleştirilirse, ADC tüm uyku modlarında etkinleştirilecektir. Güçten tasarruf etmek için, herhangi bir uyku moduna girmeden önce ADC devre dışı bırakılmalıdır. ADC kapatılıp tekrar açıldığında, bir sonraki dönüşüm genişletilmiş bir dönüşüm olacaktır. Bakın "Analogdan Dijitale Dönüştürücü" sayfa 122 ADC işlemiyle ilgili ayrıntılar için.
Analog Karşılaştırıcı
Bekleme moduna girerken, kullanılmadığı takdirde Analog Karşılaştırıcı devre dışı bırakılmalıdır. ADC Gürültü Azaltma moduna girerken Analog Karşılaştırıcı devre dışı bırakılmalıdır. Diğer uyku modlarında Analog Karşılaştırıcı otomatik olarak devre dışı bırakılır. Ancak, Analog Karşılaştırıcı Dahili Vol.tage Giriş olarak referans, Analog Karşılaştırıcı tüm uyku modlarında devre dışı bırakılmalıdır. Aksi takdirde, Dahili Hacimtage Uyku modundan bağımsız olarak referans etkinleştirilecektir. bkz. "Analog Karşılaştırıcı" sayfa 119 Analog Karşılaştırıcının nasıl yapılandırılacağına ilişkin ayrıntılar için.
Brown-out Dedektörü
Uygulamada Brown-out Detector'a ihtiyaç duyulmuyorsa, bu modül kapatılmalıdır. Brown-out Detektörü, BODLEVEL Sigortaları tarafından etkinleştirilirse, tüm uyku modlarında etkinleştirilir ve bu nedenle her zaman güç tüketir. Daha derin uyku modlarında bu, toplam akım tüketimine önemli ölçüde katkıda bulunacaktır. Görmek "Brown-out Detec- "sayfa 41 Ve "Yazılım BOD Devre Dışı Bırakma" sayfa 35 Brown-out Dedektörünün nasıl yapılandırılacağına ilişkin ayrıntılar için.
Dahili Hacimtage Referans
Dahili Cilttage Referans, Brown-out Detection, Analog Comparator veya ADC tarafından ihtiyaç duyulduğunda etkinleştirilecektir. Bu modüller yukarıdaki bölümlerde açıklandığı gibi devre dışı bırakılırsa, dahili sestage referansı devre dışı bırakılacak ve güç tüketmeyecektir. Tekrar açıldığında, çıkış kullanılmadan önce kullanıcı referansın başlamasına izin vermelidir. Referans uyku modunda tutulursa çıkış hemen kullanılabilir. bkz. “İç Hacimtage Referans” sayfa 42 başlatma süresiyle ilgili ayrıntılar için.
Bekçi Zamanlayıcısı
Uygulamada Watchdog Timer gerekli değilse, bu modül kapatılmalıdır. Watchdog Timer etkinleştirilirse, tüm uyku modlarında etkinleştirilir ve bu nedenle her zaman güç tüketir. Daha derin uyku modlarında bu, toplam akım tüketimine önemli ölçüde katkıda bulunacaktır. Bakın "Watchdog Timer" sayfa 42 Watchdog Timer'ın nasıl yapılandırılacağına ilişkin ayrıntılar için.
Bağlantı Noktası Pimleri
Uyku moduna girerken, tüm port pinleri minimum güç kullanacak şekilde yapılandırılmalıdır. O halde en önemli şey, hiçbir pimin dirençli yükleri sürmemesini sağlamaktır. Hem G/Ç saatinin (clkI/O) hem de ADC saatinin (clkADC) durdurulduğu uyku modlarında, cihazın giriş arabellekleri devre dışı bırakılır. Bu, hiçbir gücün tüketilmemesini sağlar
ihtiyaç olmadığında giriş mantığı ile. Bazı durumlarda, uyanma koşullarını tespit etmek için giriş mantığı gereklidir ve
daha sonra etkinleştirilecektir. Bölüme bakın "Dijital Giriş Etkinleştirme ve Uyku Modları" sayfa 57 hangi pimlerin etkinleştirildiğine ilişkin ayrıntılar için. Giriş tamponu etkinleştirilirse ve giriş sinyali yüzer durumda bırakılırsa veya analog sinyal seviyesi VCC/2'ye yakınsa, giriş tamponu aşırı güç kullanır.
Analog giriş pinleri için, dijital giriş tamponu her zaman devre dışı bırakılmalıdır. Bir giriş pininde VCC/2'ye yakın bir analog sinyal seviyesi, aktif modda bile önemli miktarda akıma neden olabilir. Dijital giriş tamponları, Dijital Giriş Devre Dışı Bırakma Kaydına (DIDR0) yazılarak devre dışı bırakılabilir. bakın "DIDR0 - Dijital Giriş Devre Dışı Bırakma Kaydı 0" sayfa 121 Ayrıntılar için.
Kayıt Açıklaması
MCUCR - MCU Kontrol Kaydı
MCU Kontrol Kaydı, güç yönetimi için kontrol bitleri içerir.
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BOD'lar | PUD | SE | SM1 | SM0 | GÖVDE | ISC01 | ISC00 | MCUCR |
Okuma/Yazma | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD Uykusu
BOİ devre dışı bırakma işlevi yalnızca bazı cihazlarda mevcuttur. Görmek "Sınırlamalar" sayfa 36.
Uyku sırasında BOİ'yi devre dışı bırakmak için (bkz. Tablo 7-1, sayfa 34) BODS biti mantık XNUMX'e yazılmalıdır. Bu, zamanlanmış bir dizi ve MCUCR'de BODSE etkinleştirme biti tarafından kontrol edilir. İlk olarak, hem BODS hem de BODSE bire ayarlanmalıdır. İkinci olarak, dört saat döngüsü içinde BODS bire ayarlanmalı ve BODSE sıfıra ayarlanmalıdır. BODS biti, ayarlandıktan sonra üç saat döngüsü etkindir. Gerçek uyku modu için BOİ'yi kapatmak için BODS etkinken bir uyku talimatı yürütülmelidir. BODS biti, üç saat döngüsünden sonra otomatik olarak silinir.
Sleeping BOD'nin uygulanmadığı cihazlarda bu bit kullanılmaz ve her zaman sıfırı okuyacaktır.
Bit 5 - SE: Uyku Etkinleştirme
SLEEP komutu yürütüldüğünde MCU'nun uyku moduna geçmesini sağlamak için SE biti lojik XNUMX'e yazılmalıdır. Programlayıcının amacı dışında MCU'nun uyku moduna girmesini önlemek için, Uyku Etkinleştir (SE) bitinin SLEEP komutunun yürütülmesinden hemen önce bire yazılması ve uyandıktan hemen sonra silinmesi önerilir.
Bit 4: 3 - SM [1: 0]: Uyku Modu Bit 1 ve 0'ı seçin
Bu bitler, aşağıda gösterildiği gibi mevcut üç uyku modu arasında seçim yapar Tablo 7-2.
Tablo 7-2. Uyku Modu Seçimi
SM1 | SM0 | Uyku Modu |
0 | 0 | Boşta |
0 | 1 | ADC Gürültü Azaltma |
1 | 0 | Gücü kapat |
1 | 1 | Rezerve |
Bit 2 - BODSE: BOD Uyku Etkinleştirme
BOİ devre dışı bırakma işlevi yalnızca bazı cihazlarda mevcuttur. Görmek "Sınırlamalar" sayfa 36.
BODSE biti, BODS bit açıklamasında açıklandığı gibi BODS kontrol bitinin ayarlanmasını sağlar. BOİ devre dışı bırakma, zamanlanmış bir sırayla kontrol edilir.
Bu bit, BOD devre dışı bırakmanın uygulanmadığı cihazlarda kullanılmaz ve bu cihazlarda sıfır olarak okunur.
PRR - Güç Azaltma Kaydı
Güç Azaltma Kaydı, çevresel saat sinyallerinin devre dışı bırakılmasına izin vererek güç tüketimini azaltmak için bir yöntem sağlar.
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRIM1 | PRIM0 | PRUSİ | PRADC | PRR |
Okuma/Yazma | R | R | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 4 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 3 - PRTIM1: Güç Azaltma Zamanlayıcısı / Sayacı1
Bu bite mantıksal bir tane yazmak Timer / Counter1 modülünü kapatır. Zamanlayıcı / Sayaç1 etkinleştirildiğinde, işlem kapanmadan önceki gibi devam edecektir.
Bit 2 - PRTIM0: Güç Azaltma Zamanlayıcısı / Sayacı0
Bu bite mantıksal bir tane yazmak Timer / Counter0 modülünü kapatır. Zamanlayıcı / Sayaç0 etkinleştirildiğinde, işlem kapanmadan önceki gibi devam edecektir.
Bit 1 - PRUSI: Güç Azaltma USI
Bu bit'e mantıksal bir tane yazmak, saati modüle durdurarak USI'yi kapatır. USI tekrar uyandırıldığında, doğru çalışmayı sağlamak için USI yeniden başlatılmalıdır.
Bit 0 - PRADC: Güç Azaltma ADC
Bu parçaya mantıksal bir tane yazmak ADC'yi kapatır. ADC kapatılmadan önce devre dışı bırakılmalıdır. ADC saatinin analog karşılaştırıcının bazı kısımları tarafından da kullanıldığını unutmayın; bu, bu bit yüksek olduğunda analog karşılaştırıcının kullanılamayacağı anlamına gelir.
Sistem Kontrolü ve Sıfırlama
AVR'yi sıfırlama
Sıfırlama sırasında, tüm G / Ç Kayıtları başlangıç değerlerine ayarlanır ve program Sıfırlama Vektöründen yürütmeye başlar. Sıfırlama Vektörüne yerleştirilen talimat, sıfırlama işlem rutini için bir RJMP - Göreceli Atlama - talimatı olmalıdır. Program bir kesme kaynağını hiçbir zaman etkinleştirmezse, Kesme Vektörleri kullanılmaz ve bu konumlara normal program kodu yerleştirilebilir. Devre şeması Şekil 8-1 sıfırlama mantığını gösterir. Sıfırlama devresinin elektrik parametreleri aşağıda verilmiştir. "Sistem ve Sıfırlama Özellikleri" sayfa 165.
Şekil 8-1 Sıfırlama Mantığı
AVR'nin G / Ç bağlantı noktaları, bir sıfırlama kaynağı etkin olduğunda hemen başlangıç durumlarına sıfırlanır. Bu, herhangi bir saat kaynağının çalışmasını gerektirmez.
Tüm sıfırlama kaynakları devre dışı kaldıktan sonra, dahili sıfırlamayı uzatan bir gecikme sayacı çalıştırılır. Bu, gücün normal çalışma başlamadan önce sabit bir seviyeye ulaşmasını sağlar. Gecikme sayacının zaman aşımı süresi kullanıcı tarafından SUT ve CKSEL Sigortaları aracılığıyla belirlenir. Gecikme süresi için farklı seçimler, "Saat Kaynaklar ”, sayfa 25.
Kaynakları Sıfırla
ATtiny25 / 45 / 85'in dört sıfırlama kaynağı vardır:
Açılışta Sıfırlama. Besleme hacmi olduğunda MCU sıfırlanırtage Açılışta Sıfırlama eşiğinin (VPOT) altındadır.
Harici Sıfırlama. SIFIRLAMA piminde minimum darbe uzunluğundan daha uzun süre düşük bir seviye mevcut olduğunda MCU sıfırlanır.
Watchdog Sıfırlama. Bekçi Uygulaması Zamanlayıcısı süresi sona erdiğinde ve Bekçi uygulaması etkinleştirildiğinde MCU sıfırlanır.
Voltaj azalması Sıfırlama. Besleme hacmi olduğunda MCU sıfırlanırtage VCC, Karartma Sıfırlama eşiğinin (VBOT) altındadır ve Karartma Dedektörü etkinleştirilmiştir.
Açılışta Sıfırlama
Çip üzerinde algılama devresi tarafından bir Güç Açma Sıfırlama (POR) darbesi üretilir. Algılama seviyesi şurada tanımlanır: "Sys- tem ve Özellikleri Sıfırlama ”, sayfa 165. POR, VCC algılama seviyesinin altında olduğunda etkinleştirilir. POR devresi, Başlatma Sıfırlamasını tetiklemek ve ayrıca vol.tage.
Bir Açılış Sıfırlama (POR) devresi, cihazın Açılıştan itibaren sıfırlanmasını sağlar. Açılışta Sıfırlama eşiğine ulaşma voltage, VCC yükseldikten sonra cihazın ne kadar süre RESET'te tutulacağını belirleyen gecikme sayacını çağırır. VCC algılama seviyesinin altına düştüğünde RESET sinyali herhangi bir gecikme olmaksızın tekrar aktif hale gelir.
Şekil 8-2. MCU Başlangıç, VCC'ye Bağlı RESET
DAHİLİ SIFIRLAMA
Şekil 8-3. MCU Başlatma, RESET Harici Olarak Uzatıldı
Harici Sıfırlama
Etkinleştirilmişse, RESET pinindeki düşük bir seviye tarafından Harici Sıfırlama üretilir. Minimum darbe genişliğinden daha uzun darbeleri sıfırlayın (bkz. "Sistem ve Sıfırlama Özellikleri" sayfa 165) saat çalışmıyor olsa bile bir sıfırlama üretecektir. Daha kısa darbelerin bir sıfırlama oluşturması garanti edilmez. Uygulanan sinyal Reset Threshold Vol'a ulaştığındatage – VRST – pozitif ucunda, gecikme sayacı, Zaman aşımı süresi dolduktan sonra MCU'yu başlatır.
Şekil 8-4. Çalışma Sırasında Harici Sıfırlama
Brown-out Algılama
ATtiny25/45/85, çalışma sırasında VCC seviyesini sabit bir tetikleme seviyesiyle karşılaştırarak izlemek için bir Çip Üzerinde Kararma Tespiti (BOD) devresine sahiptir. BOD için tetikleme seviyesi BODLEVEL Sigortaları tarafından seçilebilir. Tetikleme seviyesi, ani artışsız Brown-out Tespiti sağlamak için bir histerezise sahiptir. Tespit seviyesindeki histerezis VBOT+ = VBOT + VHYST/2 ve VBOT- = VBOT – VHYST/2 olarak yorumlanmalıdır.
BOİ etkinleştirildiğinde ve VCC, tetikleme seviyesinin (VBOT- in) altındaki bir değere düştüğünde Şekil 8-5), Karartma Sıfırlaması hemen etkinleştirilir. VCC, tetikleme seviyesinin üzerine çıktığında (VBOT+ Şekil 8-5), gecikme sayacı, tTOUT Zaman aşımı süresi sona erdikten sonra MCU'yu başlatır.
BOİ devresi, yalnızca vol.tage, verilen tBOD'den daha uzun süre tetikleme seviyesinin altında kalır. "Sistem ve Sıfırlama Özellikleri" sayfa 165.
Watchdog Sıfırlama
Watchdog zaman aşımına uğradığında, bir CK döngü süresi için kısa bir sıfırlama darbesi üretecektir. Bu darbenin düşen kenarında, gecikme zamanlayıcısı Zaman aşımı süresini tTOUT saymaya başlar. bakın "Watchdog Timer" sayfa 42 Watchdog Timer'ın çalışmasıyla ilgili ayrıntılar için.
Cilttage Referans Etkinleştirme Sinyalleri ve Başlatma Süresi
cilttage referansın, nasıl kullanılacağını etkileyebilecek bir başlangıç süresi vardır. Başlatma süresi verilir "Sistem ve Sıfırlama Özellikleri" sayfa 165. Güçten tasarruf etmek için referans her zaman açık değildir. Referans aşağıdaki durumlarda açıktır:
BOD etkinleştirildiğinde (BODLEVEL [2: 0] Sigorta Bitlerini programlayarak).
Bant aralığı referansı Analog Karşılaştırıcıya bağlandığında (ACBG bitini ACSR'de ayarlayarak).
ADC etkinleştirildiğinde.
Bu nedenle, BOD etkinleştirilmediğinde, ACBG bitini ayarladıktan veya ADC'yi etkinleştirdikten sonra, kullanıcı her zaman Analog Karşılaştırıcıdan veya ADC'den çıkış kullanılmadan önce referansın başlamasına izin vermelidir. Güç kapatma modunda güç tüketimini azaltmak için, kullanıcı, Güç kapatma moduna girmeden önce referansın kapatıldığından emin olmak için yukarıdaki üç koşulu önleyebilir.
Bekçi Zamanlayıcısı
Watchdog Timer, 128 kHz'de çalışan bir Yonga Üstü Osilatörden saat hızına sahiptir. Watchdog Timer ön ölçekleyicisini kontrol ederek, Watchdog Sıfırlama aralığı aşağıda gösterildiği gibi ayarlanabilir. Tablo 8-3, sayfa 46. WDR - Watchdog Reset - talimatı, Watchdog Timer'ı sıfırlar. Watchdog Timer, devre dışı bırakıldığında ve Chip Reset gerçekleştiğinde de sıfırlanır. Sıfırlama süresini belirlemek için on farklı saat döngüsü periyodu seçilebilir. Sıfırlama süresi başka bir Watchdog Sıfırlaması olmadan sona ererse, ATtiny25 / 45/85 sıfırlanır ve Sıfırlama Vektöründen yürütülür. Watchdog Reset ile ilgili zamanlama ayrıntıları için bkz. Tablo 8-3, sayfa 46.
Watchdog Timer, sıfırlama yerine bir kesinti oluşturacak şekilde de yapılandırılabilir. Bu, Güç Kapatma modundan uyanmak için Bekçi köpeğini kullanırken çok yardımcı olabilir.
Watchdog'un kasıtsız olarak devre dışı bırakılmasını veya zaman aşımı süresinin kasıtsız olarak değiştirilmesini önlemek için, WDTON sigortası tarafından gösterildiği gibi iki farklı güvenlik seviyesi seçilir. Tablo 8-1 Başvurun "Konnektörü Değiştirmek için Zamanlanmış Diziler Watchdog Timer figürü ”sayfa 43 Ayrıntılar için.
Tablo 8-1. WDTON'un Sigorta Ayarlarının Bir İşlevi Olarak WDT Yapılandırması
WDTON | Güvenlik Seviyesi | WDT Başlangıç Durumu | WDT Nasıl Devre Dışı Bırakılır | Zaman Aşımı Nasıl Değiştirilir |
Programlanmamış | 1 | Engelli | Zamanlanmış sıra | Hiçbir sınırlama yok |
Programlanmış | 2 | Etkinleştirilmiş | Daima etkinleştirildi | Zamanlanmış sıra |
Şekil 8-7. Bekçi Zamanlayıcısı
Watchdog Zamanlayıcısının Yapılandırmasını Değiştirmek için Zamanlanmış Diziler
Yapılandırmayı değiştirme sırası, iki güvenlik seviyesi arasında biraz farklılık gösterir. Her seviye için ayrı prosedürler tanımlanmıştır.
Güvenlik Seviyesi 1: Bu modda, Watchdog Timer başlangıçta devre dışı bırakılır, ancak herhangi bir kısıtlama olmadan WDE biti bire yazılarak etkinleştirilebilir. Etkin bir Watchdog Timer'ı devre dışı bırakırken zamanlanmış bir dizi gereklidir. Etkin bir Watchdog Timer'ı devre dışı bırakmak için aşağıdaki prosedür izlenmelidir:
Aynı işlemde WDCE ve WDE'ye mantıksal bir tane yazın. WDE bitinin önceki değerine bakılmaksızın WDE'ye mantıksal bir yazılmalıdır.
Sonraki dört saat döngüsü içinde, aynı işlemde, WDE ve WDP bitlerini istediğiniz gibi yazın, ancak WDCE biti temizlendi.
Güvenlik Seviyesi 2: Bu modda, Watchdog Timer her zaman etkindir ve WDE biti her zaman bir olarak okunur. Watchdog Time-out periyodunu değiştirirken zamanlanmış bir sıra gereklidir. Watchdog Zaman Aşımı'nı değiştirmek için aşağıdaki prosedür izlenmelidir:
Aynı işlemde, WDCE ve WDE'ye mantıksal bir tane yazın. WDE her zaman ayarlanmış olsa bile, zamanlanmış diziyi başlatmak için WDE bire yazılmalıdır.
Sonraki dört saat döngüsü içinde, aynı işlemde, WDP bitlerini istediğiniz gibi yazın, ancak WDCE biti temizlendi. WDE bitine yazılan değer ilgisizdir.
Kod Örample
Aşağıdaki kod example, WDT'yi kapatmak için bir montaj ve bir C işlevini gösterir. Eskiample, kesmelerin kontrol edildiğini (örneğin, kesmeleri global olarak devre dışı bırakarak), bu işlevlerin yürütülmesi sırasında hiçbir kesintinin olmayacağını varsayar.
Montaj Kodu Example(1) |
WDT_kapalı:
wdr ; MCUSR'de WDRF'yi temizle ldi r16, (0< MCUSR çıkışı, r16 ; WDCE ve WDE'ye mantıksal bir tane yazın ; İstenmeyen Watchdog Sıfırlamasını önlemek için eski ön ölçekleyici ayarını koruyun r16'da, WDTCR veya r16, (1< WDTCR çıkışı, r16 ; WDT'yi kapatın ldi r16, (0< WDTCR çıkışı, r16 geri |
C Kodu Örnample(1) |
geçersiz WDT_off(geçersiz)
{ _WDR (); /* MCUSR'de WDRF'yi temizle */ MCUSR = 0x00 /* WDCE ve WDE'ye mantıksal olanı yaz */ WDTCR |= (1< / * WDT'yi kapat * / WDTCR = 0x00; } |
Not: 1. Bkz. “Kod Örn.amples” sayfa 6.
Kayıt Açıklaması
MCUSR - MCU Durum Kaydı
MCU Durum Kaydı, hangi sıfırlama kaynağının bir MCU Sıfırlamasına neden olduğu hakkında bilgi sağlar.
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | HARİCİ | PORF | MCUSR |
Okuma/Yazma | R | R | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir |
Başlangıç Değeri 0 0 0 0 Bkz. Bit Açıklama
Bit 7: 4 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 3 - WDRF: Watchdog Sıfırlama İşareti
Bu bit, bir Watchdog Sıfırlaması meydana gelirse ayarlanır. Bit, Güç Açma Sıfırlamasıyla veya bayrağa mantıksal sıfır yazarak sıfırlanır.
Bit 2 - BORF: Brown-out Sıfırlama İşareti
Bu bit, Brown-out Sıfırlama meydana gelirse ayarlanır. Bit, Güç Açma Sıfırlamasıyla veya bayrağa mantıksal sıfır yazarak sıfırlanır.
Bit 1 - EXTRF: Harici Sıfırlama İşareti
Bu bit, Harici Sıfırlama meydana gelirse ayarlanır. Bit, Güç Açma Sıfırlamasıyla veya bayrağa mantıksal sıfır yazarak sıfırlanır.
Bit 0 - PORF: Açılış Sıfırlama İşareti
Bu bit, bir Güç Açma Sıfırlaması gerçekleşirse ayarlanır. Bit, yalnızca bayrağa bir mantık sıfırı yazılarak sıfırlanır.
Bir sıfırlama koşulunu tanımlamak üzere Sıfırlama Bayraklarını kullanmak için, kullanıcı MCUSR'yi programda mümkün olduğunca erken okumalı ve sonra sıfırlamalıdır. Başka bir sıfırlama gerçekleşmeden önce kayıt silinirse, sıfırlamanın kaynağı Sıfırlama Bayrakları incelenerek bulunabilir.
WDTCR - Watchdog Zamanlayıcı Kontrol Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | Tüm-Doğum | WDP2 | WDP1 | WDP0 | WDTCR |
Okuma/Yazma | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: Watchdog Zaman Aşımı Kesinti İşareti
Bu bit, Watchdog Timer'da bir zaman aşımı meydana geldiğinde ve Watchdog Timer kesinti için konfigüre edildiğinde ayarlanır. WDIF, ilgili kesme işleme vektörü yürütülürken donanım tarafından temizlenir. Alternatif olarak, WDIF, bayrağa bir mantıksal yazı yazarak temizlenir. SREG ve WDIE'deki I-biti ayarlandığında, Watchdog Zaman Aşımı Kesmesi yürütülür.
Bit 6 - WDIE: Watchdog Timeout Interrupt Enable
Bu bit bire yazıldığında, WDE temizlenir ve Durum Kaydındaki I-biti ayarlandığında, Bekçi Uygulaması Zaman Aşımı Kesmesi etkinleştirilir. Bu modda, Bekçi Uygulaması Zamanlayıcısında bir zaman aşımı meydana gelirse, ilgili kesme sıfırlama yerine yürütülür.
WDE ayarlanmışsa, bir zaman aşımı oluştuğunda WDIE donanım tarafından otomatik olarak temizlenir. Bu, kesmeyi kullanırken Watchdog Reset güvenliğini korumak için kullanışlıdır. WDIE biti temizlendikten sonra, bir sonraki zaman aşımı bir sıfırlama oluşturacaktır. Watchdog Sıfırlamasından kaçınmak için, WDIE her kesmeden sonra ayarlanmalıdır.
Tablo 8-2. Watchdog Zamanlayıcı Yapılandırması
Tüm-Doğum | WDIE | Watchdog Zamanlayıcı Durumu | Zaman Aşımında Eylem |
0 | 0 | Durduruldu | Hiçbiri |
0 | 1 | Koşma | Yarıda kesmek |
1 | 0 | Koşma | Sıfırla |
1 | 1 | Koşma | Yarıda kesmek |
Bit 4 - WDCE: Watchdog Change Enable
Bu bit, WDE biti mantık sıfırına yazıldığında ayarlanmalıdır. Aksi takdirde, Watchdog devre dışı bırakılmayacaktır. Bir kez yazıldıktan sonra, donanım bu biti dört saat döngüsünden sonra temizleyecektir. Bir Watchdog devre dışı bırakma prosedürü için WDE bitinin açıklamasına bakın. Bu bit, ön ölçekleyici bitleri değiştirilirken de ayarlanmalıdır. Görmek "Zamanlanmış Diziler Bekçi Uygulaması Zamanlayıcısının Yapılandırmasını Değiştirmek İçin ”, sayfa 43.
Bit 3 - WDE: Watchdog Enable
WDE mantık bire yazıldığında, Bekçi Uygulaması Zamanlayıcısı etkinleştirilir ve WDE mantık sıfıra yazılırsa, İzleme Zamanlayıcısı işlevi devre dışı bırakılır. WDE yalnızca WDCE bitinin mantık düzeyi bir olması durumunda temizlenebilir. Etkinleştirilmiş bir Watchdog Timer'ı devre dışı bırakmak için aşağıdaki prosedür izlenmelidir:
Aynı işlemde WDCE ve WDE'ye mantıksal bir tane yazın. Devre dışı bırakma işlemi başlamadan önce bire ayarlanmış olsa bile, mantıksal bir WDE'ye yazılmalıdır.
Sonraki dört saat döngüsü içinde, WDE'ye 0 mantığı yazın. Bu, Watchdog'u devre dışı bırakır.
Güvenlik seviyesi 2'de, yukarıda açıklanan algoritma ile bile Bekçi Uygulaması Zamanlayıcısını devre dışı bırakmak mümkün değildir. Görmek "Watchdog Zamanlayıcısının Yapılandırmasını Değiştirmek için Zamanlanmış Sıralar" sayfa 43.
Güvenlik seviyesi 1'de, WDE, MCUSR'de WDRF tarafından geçersiz kılınır. Görmek "MCUSR - MCU Durum Kaydı" sayfa 44 WDRF açıklaması için. Bu, WDRF ayarlandığında WDE'nin her zaman ayarlandığı anlamına gelir. WDE'yi temizlemek için, yukarıda açıklanan prosedürle Watchdog devre dışı bırakılmadan önce WDRF'nin temizlenmesi gerekir. Bu özellik, arızaya neden olan koşullar sırasında birden fazla sıfırlama ve arızadan sonra güvenli bir başlatma sağlar.
Not: Uygulamada bekçi uygulaması zamanlayıcısı kullanılmayacaksa, cihazın başlatılması sırasında bir bekçi uygulaması devre dışı bırakma prosedüründen geçilmesi önemlidir. Watchdog yanlışlıkla etkinleştirilirse, örneğinampkaçak bir işaretçi veya kararma koşuluyla, cihaz sıfırlanacak ve bu da yeni bir watchdog sıfırlamasına yol açacaktır. Bu durumdan kaçınmak için uygulama yazılımı, başlatma rutininde her zaman WDRF bayrağını ve WDE kontrol bitini temizlemelidir.
Bit 5, 2: 0 - WDP [3: 0]: Watchdog Zamanlayıcı Ön Ölçekleyici 3, 2, 1 ve 0
WDP [3: 0] bitleri, Watchdog Timer etkinleştirildiğinde Watchdog Timer ön ölçeklendirmesini belirler. Farklı ön ölçekleme değerleri ve bunlara karşılık gelen Zaman Aşımı Süreleri aşağıda gösterilmiştir. Tablo 8-3.
Tablo 8-3. Watchdog Zamanlayıcı Ön Ölçek Seçimi
WDP3 | WDP2 | WDP1 | WDP0 | WDT Osilatör Döngüsü Sayısı | VCC'de Tipik Zaman Aşımı = 5.0V |
0 | 0 | 0 | 0 | 2K (2048) döngü | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) döngü | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) döngü | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) döngü | 0.125 saniye |
0 | 1 | 0 | 0 | 32K (32764) döngü | 0.25 saniye |
0 | 1 | 0 | 1 | 64K (65536) döngü | 0.5 saniye |
0 | 1 | 1 | 0 | 128K (131072) döngü | 1.0 saniye |
0 | 1 | 1 | 1 | 256K (262144) döngü | 2.0 saniye |
1 | 0 | 0 | 0 | 512K (524288) döngü | 4.0 saniye |
1 | 0 | 0 | 1 | 1024K (1048576) döngü | 8.0 saniye |
Tablo 8-3. Watchdog Timer Ön Ölçek Seçimi (Devam)
WDP3 | WDP2 | WDP1 | WDP0 | WDT Osilatör Döngüsü Sayısı | VCC'de Tipik Zaman Aşımı = 5.0V |
1 | 0 | 1 | 0 | Rezerve(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Not: 1. Seçilirse, 0b1010'un altındaki geçerli ayarlardan biri kullanılacaktır.
Kesmeler
Bu bölüm, ATtiny25 / 45 / 85'te gerçekleştirilen kesinti işlemenin özelliklerini açıklamaktadır. AVR kesinti işlemesinin genel bir açıklaması için, bkz. "Sıfırlama ve İşlemi Kes" sayfa 12.
ATtiny25 / 45 / 85'de Kesinti Vektörleri
ATtiny25 / 45 / 85'in kesinti vektörleri, Tablo 9-1altında.
Tablo 9-1. Vektörleri Sıfırla ve Kes
Vektör No. | Program Adresi | Kaynak | Kesinti Tanımı |
1 | 0x0000 | SIFIRLAMA | Harici Pin, Güç Açma Sıfırlama, Kahverengi Çıkış Sıfırlama, Bekçi Uygulaması Sıfırlama |
2 | 0x0001 | INT0 | Harici Kesme İsteği 0 |
3 | 0x0002 | PCINT0 | Pin Değiştirme Kesme İsteği 0 |
4 | 0x0003 | ZAMANLAYICI1_COMPA | Zamanlayıcı / Sayaç1 Maç A'yı Karşılaştır |
5 | 0x0004 | ZAMANLAYICI1_OVF | Zamanlayıcı / Sayaç 1 Taşması |
6 | 0x0005 | ZAMANLAYICI0_OVF | Zamanlayıcı / Sayaç 0 Taşması |
7 | 0x0006 | EE_RDY | EEPROM Hazır |
8 | 0x0007 | ANA_COMP | Analog Karşılaştırıcı |
9 | 0x0008 | ADC | ADC Dönüşümü Tamamlandı |
10 | 0x0009 | ZAMANLAYICI1_COMPB | Zamanlayıcı / Sayaç1 Maç B'yi Karşılaştır |
11 | 0x000A | ZAMANLAYICI0_COMPA | Zamanlayıcı / Sayaç0 Maç A'yı Karşılaştır |
12 | 0x000B | ZAMANLAYICI0_COMPB | Zamanlayıcı / Sayaç0 Maç B'yi Karşılaştır |
13 | 0x000C | WDT | Watchdog Zaman Aşımı |
14 | 0x000D | USI_BAŞLANGIÇ | USI BAŞLAT |
15 | 0x000E | ABDI_OVF | USI Taşması |
Program bir kesme kaynağını hiçbir zaman etkinleştirmezse, Kesme Vektörleri kullanılmaz ve bu konumlara normal program kodu yerleştirilebilir.
ATtiny25/45/85'teki kesme vektör adresleri için tipik ve genel bir kurulum, programda gösterilmektedir.ampAşağıda.
Montaj Kodu Example | ||
.org 0x0000 | ; Bir sonrakinin adresini ayarlayın | ifade |
rjmp SIFIRLA | ; Adres 0x0000 | |
rjmp INT0_ISR | ; Adres 0x0001 | |
rjmp PCINT0_ISR | ; Adres 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Adres 0x0003 | |
rjmp TIM1_OVF_ISR | ; Adres 0x0004 | |
rjmp TIM0_OVF_ISR | ; Adres 0x0005 | |
rjmp EE_RDY_ISR | ; Adres 0x0006 | |
rjmp ANA_COMP_ISR | ; Adres 0x0007 | |
rjmp ADC_ISR | ; Adres 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Adres 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Adres 0x000A | |
rjmp TIM0_COMPB_ISR | ; Adres 0x000B | |
rjmp WDT_ISR | ; Adres 0x000C | |
rjmp USI_BAŞLAT_ISR | ; Adres 0x000D | |
rjmp USI_OVF_ISR | ; Adres 0x000E | |
SIFIRLA: | ; Ana program başlangıcı | |
; Adres 0x000F | ||
… |
Not: Bkz. “Kod Örn.amples” sayfa 6.
Harici Kesmeler
Harici Kesmeler INT0 pini veya herhangi bir PCINT [5: 0] pini tarafından tetiklenir. Etkinleştirilirse, INT0 veya PCINT [5: 0] pinleri çıkış olarak yapılandırılsa bile kesintilerin tetikleneceğini gözlemleyin. Bu özellik, bir yazılım kesintisi oluşturmanın bir yolunu sağlar. Pin değiştirme kesintileri Herhangi bir etkin PCINT [5: 0] pin değişirse PCI tetiklenir. Pim değişim kesintilerine katkıda bulunan pimlerin PCMSK Kaydı kontrolü. PCINT [5: 0] üzerindeki pin değişim kesintileri asenkron olarak tespit edilir. Bu, bu kesintilerin parçayı Bekleme modu dışındaki uyku modlarından da uyandırmak için kullanılabileceği anlamına gelir.
INT0 kesintileri, düşen veya yükselen bir kenar veya düşük bir seviye tarafından tetiklenebilir. Bu, MCU Kontrol Kaydı - MCUCR spesifikasyonunda belirtildiği gibi ayarlanır. INT0 kesmesi etkinleştirildiğinde ve seviye tetiklenmiş olarak yapılandırıldığında, kesinti, pin düşük tutulduğu sürece tetiklenecektir. INT0 üzerindeki düşen veya yükselen kenar kesintilerinin tanınmasının, aşağıda açıklanan bir G / Ç saatinin varlığını gerektirdiğini unutmayın. "Saat Sistemleri ve Dağıtımı" sayfa 23.
Düşük Seviye Kesme
INT0'da düşük seviyeli bir kesinti eşzamansız olarak tespit edildi. Bu, bu kesintinin parçayı Bekleme modu dışındaki uyku modlarından da uyandırmak için kullanılabileceği anlamına gelir. G / Ç saati, Bekleme modu hariç tüm uyku modlarında durdurulur.
Güç kesintisinden uyandırma için seviye tetiklemeli bir kesme kullanılırsa, MCU'nun seviye kesmeyi tetiklemek üzere uyandırmayı tamamlaması için gereken seviyenin yeterince uzun süre tutulması gerektiğini unutmayın. Başlangıç Süresinin bitiminden önce seviye kaybolursa, MCU yine de uyanır, ancak herhangi bir kesinti oluşturulmaz. Başlatma süresi, SUT ve CKSEL Sigortaları tarafından aşağıda açıklandığı gibi tanımlanır. "Sistem Saati ve Saat Seçenekleri" sayfa 23.
Cihaz uyanmadan önce kesme pimindeki düşük seviye kaldırılırsa, program yürütme kesinti servis rutinine yönlendirilmez, SLEEP komutunu izleyen talimattan devam eder.
Pin Değiştirme Kesinti Zamanlaması
eski birampBir pin değiştirme kesintisinin zamanlaması le'de gösterilir. Şekil 9-1.
Kayıt Açıklaması
MCUCR - MCU Kontrol Kaydı
Harici Kesme Kontrol Kaydı A, kesme algılama kontrolü için kontrol bitleri içerir.
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BOD'lar | PUD | SE | SM1 | SM0 | GÖVDE | ISC01 | ISC00 | MCUCR |
Okuma/Yazma | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 1: 0 - ISC0 [1: 0]: Kesinti Algılama Kontrolü 0 Bit 1 ve Bit 0
SREG I-bayrağı ve ilgili kesinti maskesi ayarlanmışsa, Harici Kesme 0 harici pin INT0 tarafından etkinleştirilir. Kesmeyi etkinleştiren harici INT0 pimindeki seviye ve kenarlar, Tablo 9-2. INT0 pinindeki değer sampkenarları algılamadan önce yol açtı. Kenar veya geçiş kesme seçilirse, bir saat periyodundan daha uzun süren darbeler bir kesinti oluşturacaktır. Daha kısa darbelerin bir kesinti oluşturması garanti edilmez. Düşük seviyeli kesme seçilirse, bir kesme oluşturmak için o anda yürütülmekte olan talimat tamamlanana kadar düşük seviye tutulmalıdır.
Tablo 9-2. Kesinti 0 Algılama Kontrolü
ISC01 | ISC00 | Tanım |
0 | 0 | Düşük INT0 seviyesi bir kesme isteği oluşturur. |
0 | 1 | INT0 üzerindeki herhangi bir mantıksal değişiklik bir kesme isteği oluşturur. |
1 | 0 | INT0'ın düşen kenarı bir kesme isteği oluşturur. |
1 | 1 | INT0'ın yükselen kenarı bir kesme isteği oluşturur. |
GIMSK - Genel Kesinti Maskesi Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIE | – | – | – | – | – | GİMSK |
Okuma/Yazma | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | R | R | R | R | R | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 6 - INT0: Harici Kesme İsteği 0 Etkinleştir
INT0 biti ayarlandığında (bir) ve Durum Kaydındaki (SREG) I-biti ayarlandığında (bir), harici pin kesintisi etkinleştirilir. MCU Kontrol Kaydındaki (MCUCR) Kesme Algılama Kontrolü 0 bitleri 1/0 (ISC01 ve ISC00), harici kesmenin INT0 pininin yükselen ve / veya alçalan kenarında veya algılanan seviyede etkinleştirilip etkinleştirilmediğini tanımlar. Pin üzerindeki aktivite, INT0 bir çıkış olarak yapılandırılsa bile bir kesme talebine neden olacaktır. Harici Kesme İsteği 0'ın karşılık gelen kesmesi, INT0 Kesme Vektöründen yürütülür.
Bit 5 - PCIE: Pin Değiştirme Kesmeyi Etkinleştir
PCIE biti ayarlandığında (bir) ve Durum Kaydındaki (SREG) I-biti ayarlandığında (bir), pin değiştirme kesintisi etkinleştirilir. Etkinleştirilmiş herhangi bir PCINT [5: 0] pinindeki herhangi bir değişiklik kesintiye neden olacaktır. Pin Değişikliği Kesme İsteğinin karşılık gelen kesmesi, PCI Kesme Vektöründen yürütülür. PCINT [5: 0] pinleri, PCMSK0 Register tarafından ayrı ayrı etkinleştirilir.
GIFR - Genel Kesinti Bayrak Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PİF | – | – | – | – | – | GIFR |
Okuma/Yazma | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | R | R | R | R | R | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 6 - INTF0: Harici Kesme Bayrağı 0
INT0 pinindeki bir kenar veya mantık değişikliği bir kesme isteğini tetiklediğinde, INTF0 set (bir) olur. SREG'deki I-biti ve GIMSK'daki INT0 biti ayarlandıysa (bir), MCU ilgili Kesme Vektörüne atlayacaktır. Kesme rutini yürütüldüğünde bayrak silinir. Alternatif olarak, bayrak mantıksal bir tane yazılarak silinebilir. INT0 bir seviye kesmesi olarak konfigüre edildiğinde bu bayrak her zaman temizlenir.
Bit 5 - PCIF: Pin Değiştirme Kesinti İşareti
Herhangi bir PCINT [5: 0] pinindeki mantık değişikliği bir kesme isteğini tetiklediğinde, PCIF set (bir) olur. SREG'deki I-biti ve GIMSK'daki PCIE biti ayarlandıysa (bir), MCU ilgili Kesme Vektörüne atlayacaktır. Kesme rutini yürütüldüğünde bayrak silinir. Alternatif olarak, bayrak mantıksal bir tane yazılarak silinebilir.
PCMSK - Pin Değiştirme Maske Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Okuma/Yazma | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 6 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 5: 0 - PCINT [5: 0]: Pin Değiştirme Maskeyi Etkinleştir 5: 0
Her bir PCINT [5: 0] biti, ilgili I / O pininde pin değiştirme kesintisinin etkinleştirilip etkinleştirilmeyeceğini seçer. PCINT [5: 0] ayarlanmışsa ve GIMSK'deki PCIE biti ayarlanmışsa, ilgili I / O pininde pin değiştirme kesintisi etkinleştirilir. PCINT [5: 0] temizlenirse, ilgili I / O pinindeki pin değiştirme kesintisi devre dışı bırakılır.
G/Ç Bağlantı Noktaları
giriiş
Tüm AVR bağlantı noktaları, genel dijital G/Ç bağlantı noktaları olarak kullanıldığında gerçek Okuma-Değiştirme-Yazma işlevine sahiptir. Bu, bir port pininin yönünün, SBI ve CBI talimatları ile diğer pinlerin yönünü istemeden değiştirmeden değiştirilebileceği anlamına gelir. Aynısı, sürücü değerini değiştirirken (çıkış olarak yapılandırılmışsa) veya çekme dirençlerini etkinleştirirken/devre dışı bırakırken (giriş olarak yapılandırılmışsa) geçerlidir. Her çıkış arabelleği, hem yüksek havuz hem de kaynak özelliği ile simetrik sürücü özelliklerine sahiptir. Pin sürücüsü, LED ekranları doğrudan çalıştıracak kadar güçlüdür. Tüm port pinleri, besleme hacmi ile ayrı ayrı seçilebilen çekme dirençlerine sahiptir.tage değişmez direnç. Tüm I/O pinleri, içinde belirtildiği gibi hem VCC hem de Toprak için koruma diyotlarına sahiptir. Şekil 10-1. Başvurun "Elektrik Özellikleri" sayfa 161 parametrelerin tam listesi için.
Şekil 10-1. I/O Pin Eşdeğer Şeması
Bu bölümdeki tüm kayıtlar ve bit referansları genel formda yazılmıştır. Küçük harf "x" bağlantı noktasının numaralandırma harfini, küçük harf "n" ise bit numarasını temsil eder. Ancak, bir programda kayıt veya bit tanımlarını kullanırken, kesin form kullanılmalıdır. eski içinample, bit no için PORTB3. Port B'de 3, burada genellikle PORTxn olarak belgelenmiştir. Fiziksel G/Ç Kayıtları ve bit konumları şurada listelenmiştir: "Kayıt Açıklaması" sayfa 64.
Her bir bağlantı noktası için üç G / Ç bellek adresi konumu, her biri Veri Kaydı - PORTx, Veri Yönü Kaydı - DDRx ve Bağlantı Noktası Giriş Pimleri - PINx için tahsis edilmiştir. Bağlantı Noktası Giriş Pinleri G / Ç konumu salt okunurdur, Veri Kaydı ve Veri Yönü Kaydı ise okunur / yazılır. Bununla birlikte, PINx Kaydında bire bir mantık yazmak, Veri Kaydında karşılık gelen bitte bir geçişe neden olacaktır. Ek olarak, MCUCR'deki Pull-up Disable - PUD biti, ayarlandığında tüm portlardaki tüm pinler için pull-up fonksiyonunu devre dışı bırakır.
G / Ç bağlantı noktasını Genel Dijital G / Ç olarak kullanma, bkz. "Genel Dijital G / Ç Olarak Bağlantı Noktaları" sayfa 53. Çoğu bağlantı noktası pini, cihazdaki çevresel özellikler için alternatif işlevlerle çoklanır. Her bir alternatif işlevin bağlantı noktası pini ile nasıl etkileşime girdiği aşağıda açıklanmıştır. "Alternatif Bağlantı Noktası İşlevleri" sayfa 57. Alternatif işlevlerin tam açıklaması için ayrı modül bölümlerine bakın.
Bazı bağlantı noktası pimlerinin alternatif işlevini etkinleştirmenin, bağlantı noktasındaki diğer pimlerin genel dijital G / Ç olarak kullanımını etkilemediğini unutmayın.
Genel Dijital G / Ç olarak Bağlantı Noktaları
Bağlantı noktaları, isteğe bağlı dahili çekmeli çift yönlü G / Ç bağlantı noktalarıdır. Şekil 10-2 burada genel olarak Pxn olarak adlandırılan bir G / Ç-port pininin işlevsel bir açıklamasını gösterir.
Şekil 10-2. Genel Dijital G/Ç(1)
Pini Yapılandırma
Her bağlantı noktası pini üç yazmaç bitinden oluşur: DDxn, PORTxn ve PINxn. Da gösterildiği gibi "Kayıt Açıklaması" sayfa 64DDxn bitlerine DDRx I / O adresinde, PORTxn bitlerine PORTx I / O adresinde ve PINxn bitlerine PINx I / O adresinde erişilir.
DDRx Kaydındaki DDxn biti bu pinin yönünü seçer. DDxn mantık XNUMX olarak yazılırsa, Pxn bir çıkış pini olarak yapılandırılır. DDxn mantıksal sıfır olarak yazılırsa, Pxn bir giriş pini olarak yapılandırılır.
PORTxn, pin giriş pini olarak yapılandırıldığında mantıksal bir olarak yazılırsa, kaldırma direnci etkinleştirilir. Kaldırma direncini kapatmak için, PORTxn mantıksal sıfır olarak yazılmalı veya pinin bir çıkış pini olarak yapılandırılması gerekir. Hiçbir saat çalışmasa bile sıfırlama koşulu aktif hale geldiğinde port pinleri üç belirtilir.
PORTxn, pin bir çıkış pini olarak yapılandırıldığında mantıksal bir olarak yazılırsa, port pini yüksek (bir) sürülür. PORTxn, pim bir çıkış pini olarak yapılandırıldığında mantık sıfır olarak yazılırsa, port pini düşük (sıfır) sürülür.
Pini Değiştirme
PINxn'e mantıksal bir yazmak, DDRxn değerinden bağımsız olarak PORTxn değerini değiştirir. SBI komutunun bir bağlantı noktasında tek bir bit arasında geçiş yapmak için kullanılabileceğini unutmayın.
Giriş ve Çıkış Arasında Geçiş Yapma
Üç durumlu ({DDxn, PORTxn} = 0b00) ve yüksek çıkış ({DDxn, PORTxn} = 0b11) arasında geçiş yaparken, pull-up etkin {DDxn, PORTxn} = 0b01) veya düşük çıkışlı bir ara durum ({DDxn, PORTxn} = 0b10) oluşmalıdır. Yüksek empedanslı bir ortam, güçlü bir yüksek sürücü ve bir çekme arasındaki farkı fark etmeyeceğinden, normalde çekme etkin durumu tamamen kabul edilebilir. Durum böyle değilse, MCUCR Register'daki PUD biti, tüm bağlantı noktalarındaki tüm pull-up'ları devre dışı bırakacak şekilde ayarlanabilir.
Yukarı çekme ile giriş ve çıkış düşük arasında geçiş yapmak aynı sorunu oluşturur. Kullanıcı, ara adım olarak üç durumu ({DDxn, PORTxn} = 0b00) veya çıkış yüksek durumunu ({DDxn, PORTxn} = 0b10) kullanmalıdır.
Tablo 10-1 pin değeri için kontrol sinyallerini özetler.
Tablo 10-1. Bağlantı Noktası Pimi Yapılandırmaları
DDxn | PORTxn | PUD
(MCUCR'de) |
G/Ç | Çekme | Yorum |
0 | 0 | X | Giriş | HAYIR | Üç durumlu (Hi-Z) |
0 | 1 | 0 | Giriş | Evet | Eğer ext ise Pxn akımı kaynaklayacaktır. alçak çekti. |
0 | 1 | 1 | Giriş | HAYIR | Üç durumlu (Hi-Z) |
1 | 0 | X | Çıktı | HAYIR | Çıkış Düşük (Sink) |
1 | 1 | X | Çıktı | HAYIR | Çıkış Yüksek (Kaynak) |
Pin Değerinin Okunması
Veri Yönü biti DDxn ayarından bağımsız olarak, port pini PINxn Kayıt biti aracılığıyla okunabilir. Da gösterildiği gibi Şekil 10-2PINxn Register biti ve önceki mandal bir eşzamanlayıcı oluşturur. Bu, fiziksel pinin dahili saatin kenarına yakın değer değiştirmesi durumunda yarı kararlılığı önlemek için gereklidir, ancak aynı zamanda bir gecikme de getirir. Şekil 10-3 harici olarak uygulanan bir pin değerini okurken senkronizasyonun bir zamanlama diyagramını gösterir. Maksimum ve minimum yayılma gecikmeleri sırasıyla tpd,max ve tpd,min olarak gösterilir.
Sistem saatinin ilk düşen kenarından kısa bir süre sonra başlayan saat periyodunu düşünün. Mandal, saat düşük olduğunda kapanır ve "SYNC LATCH" sinyalinin gölgeli bölgesi ile gösterildiği gibi saat yüksek olduğunda şeffaflaşır. Sistem saati düştüğünde sinyal değeri kilitlenir. Sonraki pozitif saat kenarında PINxn Kaydına doğru zamanlanır. İki ok tpd, max ve tpd, min ile gösterildiği gibi, pin üzerindeki tek bir sinyal geçişi, onaylama zamanına bağlı olarak ½ ve 1½ sistem saati periyodu arasında geciktirilecektir.
Yazılım tarafından atanan bir pin değerini geri okurken, bir nop talimatı aşağıda belirtildiği gibi eklenmelidir. Şekil 10-4. Çıkış komutu, saatin pozitif kenarındaki "SYNC LATCH" sinyalini ayarlar. Bu durumda, senkronizörden geçen tpd gecikmesi bir sistem saati periyodudur.
Aşağıdaki kod example, port B pinlerinin 0 ve 1 yüksek, 2 ve 3 düşük olarak nasıl ayarlanacağını ve port pin 4'e atanmış bir pull-up ile 5 ila 4 arasındaki port pinlerinin giriş olarak nasıl tanımlanacağını gösterir. Ortaya çıkan pin değerleri tekrar okunur, ancak daha önce tartışıldığı gibi, bazı pinlere yakın zamanda atanan değeri geri okuyabilmek için bir nop komutu dahil edilmiştir.
Montaj Kodu Example(1) |
…
; Barfiksleri tanımlayın ve çıktıları yüksek ayarlayın ; Bağlantı noktası pimleri için yönergeleri tanımlayın ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) PORTB,r16 çıkışı çıkış DDRB,r17 ; Senkronizasyon için nop ekleyin hayır ; Bağlantı noktası pinlerini oku r16'da, PINB … |
Not: Montaj programı için, 0, 1 ve 4 pinlerinde pull-up'ların ayarlanmasından yön bitleri doğru şekilde ayarlanana kadar geçen süreyi en aza indirmek için iki geçici kayıt kullanılır, bit 2 ve 3 düşük olarak tanımlanır ve bit 0 ve yeniden tanımlanır 1 güçlü yüksek sürücüler olarak.
C Kodu Örnample |
imzasız karakter i;
… /* Çekmeleri tanımlayın ve çıkışları yüksek ayarlayın */ /* Port pinleri için yön tanımlayın */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Senkronizasyon için nop ekle*/ _NOP (); /* Port pinlerini oku */ i = PINB; … |
Dijital Giriş Etkinleştirme ve Uyku Modları
Gösterildiği gibi Şekil 10-2, dijital giriş sinyali cl olabilirampschmitt-tetikleyicinin girişinde toprağa ed. Şekilde SLEEP olarak gösterilen sinyal, bazı giriş sinyalleri dalgalı bırakılırsa veya VCC/2'ye yakın bir analog sinyal seviyesine sahipse yüksek güç tüketimini önlemek için MCU Uyku Denetleyicisi tarafından Güç kapatma modunda ayarlanır.
Harici kesme pimleri olarak etkinleştirilen bağlantı noktası pimleri için SLEEP geçersiz kılınır. Harici kesme talebi etkinleştirilmemişse, SLEEP bu pinler için de aktiftir. SLEEP ayrıca, aşağıda açıklandığı gibi çeşitli diğer alternatif işlevler tarafından geçersiz kılınır. "Alternatif Bağlantı Noktası İşlevleri" sayfa 57.
Harici kesme etkin değilken "Yükselen Kenarda Kesme, Düşen Kenarda Kesme veya Pimde Herhangi Bir Mantık Değişikliği" olarak yapılandırılmış eşzamansız bir harici kesme pininde bir mantık yüksek seviyesi ("bir") varsa, karşılık gelen Harici Kesme Bayrağı cl olarak yukarıda belirtilen Uyku modundan devam edildiğinde ayarlanmalıdır.ampbu uyku modunda olmak, istenen mantık değişikliğini üretir.
Bağlantısız Pinler
Bazı pinler kullanılmamışsa, bu pinlerin belirli bir seviyeye sahip olması önerilir. Dijital girişlerin çoğu yukarıda açıklandığı gibi derin uyku modlarında devre dışı bırakılsa bile, dijital girişlerin etkinleştirildiği diğer tüm modlarda akım tüketimini azaltmak için değişken girişlerden kaçınılmalıdır (Sıfırlama, Aktif mod ve Bekleme modu).
Kullanılmayan bir pimin tanımlanmış bir seviyesini sağlamanın en basit yöntemi, dahili çekmeyi etkinleştirmektir. Bu durumda, sıfırlama sırasında çekme devre dışı bırakılır. Sıfırlama sırasında düşük güç tüketimi önemliyse, harici çekme veya indirme kullanılması önerilir. Kullanılmayan pinlerin doğrudan VCC veya GND'ye bağlanması önerilmez, çünkü pin yanlışlıkla bir çıkış olarak yapılandırılırsa bu aşırı akımlara neden olabilir.
Alternatif Bağlantı Noktası İşlevleri
Çoğu port pininin genel dijital I / O'lara ek olarak alternatif işlevleri vardır. Şekil 10-5 port pin kontrolünün basitleştirilmiş cihazdan nasıl sinyal verdiğini gösterir. Şekil 10-2 alternatif işlevler tarafından geçersiz kılınabilir. Geçersiz kılan sinyaller, tüm bağlantı noktası pinlerinde bulunmayabilir, ancak şekil, AVR mikro denetleyici ailesindeki tüm bağlantı noktası pinlerine uygulanabilen genel bir açıklama görevi görür.
Tablo 10-2. Alternatif İşlevler İçin Geçersiz Kılan Sinyallerin Genel Açıklaması
Sinyal Adı | Ad Soyad | Tanım |
PUOE | Pull-up Geçersiz Kılma Etkinleştir | Bu sinyal ayarlanırsa, yukarı kaldırma etkinleştirmesi PUOV sinyali tarafından kontrol edilir. Bu sinyal silinirse, yukarı çekme işlemi etkinleştirilir.
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Çekme Geçersiz Kılma Değeri | PUOE ayarlanmışsa, DDxn, PORTxn ve PUD Register bitlerinin ayarına bakılmaksızın PUOV ayarlandığında / silindiğinde yukarı çekme etkinleştirilir / devre dışı bırakılır. |
DDOE | Veri Yönünü Geçersiz Kılma Etkinleştir | Bu sinyal ayarlanırsa, Çıkış Sürücüsü Etkin DDOV sinyali tarafından kontrol edilir. Bu sinyal silinirse, Çıkış sürücüsü DDxn Kayıt biti tarafından etkinleştirilir. |
DDOV | Veri Yönü Geçersiz Kılma Değeri | DDOE ayarlanmışsa, DDOV ayarlandığında / temizlendiğinde, DDxn Kayıt bitinin ayarına bakılmaksızın Çıkış Sürücüsü etkinleştirilir / devre dışı bırakılır. |
PVOE | Bağlantı Noktası Değeri Geçersiz Kılma Etkinleştir | Bu sinyal ayarlanırsa ve Çıkış Sürücüsü etkinleştirilirse, port değeri PVOV sinyali tarafından kontrol edilir. PVOE temizlenirse ve Çıkış Sürücüsü etkinleştirilirse, port Değeri PORTxn Kayıt biti tarafından kontrol edilir. |
PVOV | Bağlantı Noktası Değeri Geçersiz Kılma Değeri | PVOE ayarlanırsa, PORTxn Register bitinin ayarına bakılmaksızın port değeri PVOV olarak ayarlanır. |
PTO | Bağlantı Noktası Geçişi Geçersiz Kılma Etkinleştir | PTOE ayarlanmışsa, PORTxn Kaydı biti ters çevrilir. |
DİEOE | Dijital Giriş Etkinleştirmeyi Geçersiz Kıl Etkinleştir | Bu bit ayarlanmışsa, Dijital Giriş Etkinleştirme DIEOV sinyali tarafından kontrol edilir. Bu sinyal silinirse, Dijital Giriş Etkinleştirme MCU durumu (Normal mod, uyku modu) tarafından belirlenir. |
DİOV | Dijital Giriş Etkinleştirme Geçersiz Kılma Değeri | DIEOE ayarlanmışsa, DIEOV ayarlandığında / silindiğinde, MCU durumundan (Normal mod, uyku modu) bağımsız olarak Dijital Giriş etkinleştirilir / devre dışı bırakılır. |
DI | Dijital Giriş | Bu, alternatif işlevler için Dijital Giriştir. Şekilde, sinyal schmitt-tetikleyicinin çıkışına, ancak senkronizörden önce bağlanmıştır. Dijital Giriş bir saat kaynağı olarak kullanılmadıkça, alternatif işlevli modül kendi senkronizörünü kullanacaktır. |
Hepsi bir arada | Analog Giriş / Çıkış | Bu, alternatif işlevlere / işlevlerden Analog Giriş / Çıkış'tır. Sinyal doğrudan pede bağlanır ve çift yönlü olarak kullanılabilir. |
Aşağıdaki alt bölümler, her bağlantı noktası için alternatif işlevleri kısaca açıklar ve geçersiz kılma sinyallerini alternatif işlevle ilişkilendirir. Daha fazla ayrıntı için alternatif işlev açıklamasına bakın.
B Bağlantı Noktasının Alternatif İşlevleri
Alternatif işleve sahip Port B pimleri, Tablo 10-3.
Tablo 10-3. Port B Pimleri Alternatif İşlevler
Bağlantı Noktası Pin | Alternatif Fonksiyon |
PB5 | ![]() SIFIRLA: Pimi Sıfırla dW: hata ayıklama WIRE G / Ç ADC0: ADC Giriş Kanalı 0 PCINT5: Pin Değiştirme Kesmesi, Kaynak 5 |
PB4 | XTAL2: Kristal Osilatör Çıkışı CLKO: Sistem Saat Çıkışı ADC2: ADC Giriş Kanalı 2
OC1B: Zamanlayıcı / Sayaç1 Karşılaştır B Eşleştirme Çıkışı PCINT4: Pin Değiştirme Kesmesi 0, Kaynak 4 |
PB3 | XTAL1: Kristal Osilatör Girişi CLKI: Harici Saat Girişi ADC3: ADC Giriş Kanalı 3
OC1B: Tamamlayıcı Zamanlayıcı / Sayaç1 Karşılaştırma B Maç Çıkışı PCINT3: Pin Değiştirme Kesmesi 0, Kaynak 3 |
PB2 | SCK: Seri Saat Girişi ADC1: ADC Giriş Kanalı 1
T0: Zamanlayıcı / Sayaç0 Saat Kaynağı USCK: USI Saat (Üç Tel Modu) SCL: USI Saat (İki Tel Modu) INT0: Harici Kesme 0 Giriş PCINT2: Pin Değiştirme Kesmesi 0, Kaynak 2 |
PB1 | MISO: SPI Ana Veri Girişi / Bağımlı Veri Çıkışı AIN1: Analog Karşılaştırıcı, Negatif Giriş OC0B: Zamanlayıcı / Sayaç 0 Eşleşme B Çıkışı Karşılaştırma OC1A: Zamanlayıcı / Sayaç1 Karşılaşma A Çıkışı DO: USI Veri Çıkışı (Üç Kablo Modu) PCINT1: Pin Değiştirme Kesmesi 0, Kaynak 1 |
PB0 | MOSI :: SPI Ana Veri Çıkışı / Bağımlı Veri Girişi AIN0: Analog Karşılaştırıcı, Pozitif Giriş
OC0A: Zamanlayıcı/Sayaç0 Eşleştirme A çıkışını karşılaştırın OC1A: Tamamlayıcı Zamanlayıcı / Sayaç1 Karşılaştırma A Eşleştirme Çıkışı DI: USI Veri Girişi (Üç Kablolu Mod) SDA: USI Veri Girişi (İki Tel Modu) AREF: Harici Analog Referans PCINT0: Pin Değişim Kesmesi 0, Kaynak 0 |
Bağlantı Noktası B, Bit 5 - RESET / dW / ADC0 / PCINT5
SIFIRLAMA: Harici Sıfırlama girişi düşük aktiftir ve RSTDISBL Sigortasının programlanmasının kaldırılmasıyla ("1") etkinleştirilir. Pim RESET pini olarak kullanıldığında pullup etkinleştirilir ve çıkış sürücüsü ve dijital giriş devre dışı bırakılır.
dW: debugWIRE Enable (DWEN) Sigortası programlandığında ve Kilit bitleri programlanmadığında, hedef cihazdaki debugWIRE sistemi etkinleştirilir. RESET port pini, yukarı çekme etkinleştirilmiş bir kablolu VE (açık boşaltma) çift yönlü G / Ç pini olarak yapılandırılır ve hedef ile emülatör arasındaki iletişim ağ geçidi olur.
ADC0: Analogdan Dijitale Dönüştürücü, Kanal 0.
PCINT5: Pin Değiştirme Kesme kaynağı 5.
Bağlantı Noktası B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Çip Saat Osilatör pimi 2. Dahili kalibre edilebilir RC Osilatör ve harici saat hariç tüm çip saat kaynakları için saat pimi olarak kullanılır. Saat pimi olarak kullanıldığında, pim bir G / Ç pini olarak kullanılamaz. Dahili kalibre edilebilir RC Osilatör veya Harici saat bir Çip saat kaynağı olarak kullanıldığında, PB4 sıradan bir G / Ç pini görevi görür.
CLKO: Bölünen sistem saati PB4 pininden çıkarılabilir. Bölünmüş sistem saati, CKOUT Sigortası programlanmışsa, PORTB4 ve DDB4 ayarlarından bağımsız olarak çıkacaktır. Sıfırlama sırasında da çıkacaktır.
ADC2: Analogdan Dijitale Dönüştürücü, Kanal 2.
OC1B: Çıkış Karşılaştırma Maç çıkışı: PB4 pini, bir çıkış olarak yapılandırıldığında (DDB1 seti) Zamanlayıcı / Sayaç4 Karşılaştırma B'si için harici bir çıkış görevi görebilir. OC1B pini aynı zamanda PWM modu zamanlayıcı işlevi için çıkış pinidir.
PCINT4: Pin Değiştirme Kesme kaynağı 4.
Bağlantı Noktası B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Çip Saat Osilatör pimi 1. Dahili kalibre edilebilir RC osilatör dışındaki tüm çip saati kaynakları için kullanılır. Saat pimi olarak kullanıldığında, pim bir G / Ç pini olarak kullanılamaz.
CLKI: Harici bir saat kaynağından Saat Girişi, bkz. "Harici Saat" sayfa 26.
ADC3: Analogdan Dijitale Dönüştürücü, Kanal 3.
OC1B: Ters Çıkış Karşılaştırma Eşleşme çıkışı: PB3 pini, bir çıkış olarak yapılandırıldığında (DDB1 seti) Zamanlayıcı / Sayaç3 Karşılaştırma B'si için harici bir çıkış görevi görebilir. OC1B pini aynı zamanda PWM modu zamanlayıcı işlevi için ters çevrilmiş çıkış pinidir.
PCINT3: Pin Değiştirme Kesme kaynağı 3.
Bağlantı Noktası B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Ana Saat çıkışı, SPI kanalı için Bağımlı Saat giriş pini. SPI bir Slave olarak etkinleştirildiğinde, bu pin DDB2 ayarına bakılmaksızın bir giriş olarak yapılandırılır. SPI bir Master olarak etkinleştirildiğinde, bu pinin veri yönü DDPB2 tarafından kontrol edilir. Pim, SPI tarafından bir giriş olmaya zorlandığında, yukarı çekme yine de PORTB2 biti tarafından kontrol edilebilir.
ADC1: Analogdan Dijitale Dönüştürücü, Kanal 1.
T0: Zamanlayıcı / Sayaç0 sayaç kaynağı.
USCK: Üç telli mod Evrensel Seri Arabirim Saati.
SCL: USI İki telli mod için iki telli mod Seri Saat.
INT0: Harici Kesme kaynağı 0.
PCINT2: Pin Değiştirme Kesme kaynağı 2.
Bağlantı Noktası B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Ana Veri girişi, SPI kanalı için Bağımlı Veri çıkış pini. SPI bir Master olarak etkinleştirildiğinde, bu pin DDB1 ayarına bakılmaksızın bir giriş olarak yapılandırılır. SPI bir Slave olarak etkinleştirildiğinde, bu pinin veri yönü DDB1 tarafından kontrol edilir. Pim, SPI tarafından bir giriş olmaya zorlandığında, yukarı çekme yine de PORTB1 biti tarafından kontrol edilebilir.
AIN1: Analog Karşılaştırıcı Negatif Giriş. Dijital bağlantı noktası işlevinin Analog Karşılaştırıcının işlevini engellemesini önlemek için dahili çekme kapalıyken bağlantı noktası pimini giriş olarak yapılandırın.
OC0B: Çıktı Karşılaştırma Eşleştirme çıktısı. PB1 pini, Zamanlayıcı / Sayaç 0 Karşılaştırma Eşleşmesi B için harici bir çıkış görevi görebilir. PB1 pini, bu işleve hizmet etmek için bir çıkış (DDB1 set (bir)) olarak yapılandırılmalıdır. OC0B pini aynı zamanda PWM modu zamanlayıcı işlevi için çıkış pinidir.
OC1A: Çıkış Karşılaştırma Maç çıkışı: PB1 pini, bir çıkış olarak yapılandırıldığında (DDB1 seti) Zamanlayıcı / Sayaç1 Karşılaştırma B'si için harici bir çıkış görevi görebilir. OC1A pini aynı zamanda PWM modu zamanlayıcı işlevi için çıkış pinidir.
DO: Üç telli mod Evrensel Seri Arayüz Veri çıkışı. Üç telli mod Veri çıkışı PORTB1 değerini geçersiz kılar ve veri yönü biti DDB1 ayarlandığında (bir) porta sürülür. Yön girilirse ve PORTB1 ayarlanmışsa (bir) PORTB1 hala yukarı çekmeyi etkinleştirir.
PCINT1: Pin Değiştirme Kesme kaynağı 1.
Bağlantı Noktası B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Ana Veri çıkışı, SPI kanalı için Bağımlı Veri girişi. SPI bir Slave olarak etkinleştirildiğinde, bu pin DDB0 ayarına bakılmaksızın bir giriş olarak yapılandırılır. SPI bir Master olarak etkinleştirildiğinde, bu pinin veri yönü DDB0 tarafından kontrol edilir. Pim, SPI tarafından bir giriş olmaya zorlandığında, yukarı çekme yine de PORTB0 biti tarafından kontrol edilebilir.
AIN0: Analog Karşılaştırıcı Pozitif Giriş. Dijital bağlantı noktası işlevinin Analog Karşılaştırıcının işlevini engellemesini önlemek için dahili çekme kapalıyken bağlantı noktası pinini giriş olarak yapılandırın.
OC0A: Çıktı Karşılaştırma Eşleştirme çıktısı. PB0 pini, çıkış olarak yapılandırıldığında (DDB0 set (bir)) Zamanlayıcı / Sayaç 0 Karşılaştırma A için harici bir çıkış görevi görebilir. OC0A pini aynı zamanda PWM modu zamanlayıcı işlevi için çıkış pinidir.
OC1A: Ters Çıkış Karşılaştırma Eşleştirme çıkışı: PB0 pini, bir çıkış olarak yapılandırıldığında (DDB1 seti) Zamanlayıcı / Sayaç0 Karşılaştırma B'si için harici bir çıkış görevi görebilir. OC1A pini aynı zamanda PWM modu zamanlayıcı işlevi için ters çevrilmiş çıkış pinidir.
SDA: İki telli mod Seri Arayüz Verileri.
AREF: ADC için Harici Analog Referans. Pin harici referans veya Dahili Vol olarak kullanıldığında, çekme ve çıkış sürücüsü PB0'da devre dışı bırakılır.tage AREF pininde harici kapasitörlü referans.
DI: USI Üç telli modda Veri Girişi. USI Üç telli mod, normal bağlantı noktası işlevlerini geçersiz kılmaz, bu nedenle pin, DI işlevi için bir giriş olarak yapılandırılmalıdır.
PCINT0: Pin Değiştirme Kesme kaynağı 0.
Tablo 10-4 Ve Tablo 10-5 Bağlantı Noktası B'nin alternatif işlevlerini aşağıda gösterilen geçersiz kılma sinyalleri ile ilişkilendirin. Şekil 10-5 sayfa 58.
Tablo 10-4. PB[5:3]'te Alternatif İşlevler İçin Sinyalleri Geçersiz Kılma
Sinyal Adı | PB5 / SIFIRLA / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDİSK(1) • BEKLEME(1) | 0 | 0 |
DDOV | debugWire İletimi | 0 | 0 |
PVOE | 0 | OC1B Etkinleştir | ![]() OC1B Etkinleştir |
PVOV | 0 | OC1B | OC1B |
PTO | 0 | 0 | 0 |
DİEOE | ![]() RSTDİSK(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DİOV | ADC0D | ADC2D | ADC3D |
DI | PCINT5 Girişi | PCINT4 Girişi | PCINT3 Girişi |
Hepsi bir arada | RESET Girişi, ADC0 Girişi | ADC2 Girişi | ADC3 Girişi |
Not: Sigorta “0” (Programlanmış) olduğunda.
Tablo 10-5. PB[2:0]'te Alternatif İşlevler İçin Sinyalleri Geçersiz Kılma
Sinyal 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_İKİ_TEL | 0 | USI_İKİ_TEL |
PUOV | 0 | 0 | 0 |
DDOE | USI_İKİ_TEL | 0 | USI_İKİ_TEL |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_İKİ_TEL • DDB2 | OC0B Etkinleştir + OC1A Etkinleştir + USI_THREE_WIRE | ![]() OC0A Etkinleştir + OC1A Etkinleştir + (USI_TWO_WIRE (ÇDDB0) |
PVOV | 0 | OC0B + OC1A + YAP | ![]() OC0A + OC1A |
PTO | ABDITC | 0 | 0 |
DİEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DİOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
PCINT2 Girişi |
PCINT1 Girişi | DI / SDA / PCINT0 Girişi |
Hepsi bir arada | ADC1 Girişi | Analog Karşılaştırıcı Negatif Giriş | Analog Karşılaştırıcı Pozitif Giriş |
Kayıt Açıklaması
MCUCR - MCU Kontrol Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BOD'lar | PUD | SE | SM1 | SM0 | GÖVDE | ISC01 | ISC00 | MCUCR |
Okuma/Yazma | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: Çekmeyi Devre Dışı Bırak
Bu bit bire yazıldığında, DDxn ve PORTxn Kayıtları çekmeleri etkinleştirmek için yapılandırılsa bile G / Ç bağlantı noktalarındaki çekmeler devre dışı bırakılır ({DDxn, PORTxn} = 0b01). Görmek "Pimi Yapılandırma" sayfa 54 bu özellikle ilgili daha fazla ayrıntı için.
PORTB - Port B Veri Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Okuma/Yazma | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Port B Veri Yönü Kaydı
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Okuma/Yazma | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Bağlantı Noktası B Giriş Pinleri Adresi
Biraz | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PİMB5 | PİMB4 | PİMB3 | PİMB2 | PİMB1 | PİMB0 | PINB |
Okuma/Yazma | R | R | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | Okunabilir/Yazılabilir | |
Başlangıç Değeri | 0 | 0 | Yok | Yok | Yok | Yok | Yok | Yok |
8-bit Zamanlayıcı / Sayaç0 PWM ile
Özellikler
İki Bağımsız Çıkış Karşılaştırma Birimleri
Çift Tamponlu Çıktı Kayıtları Karşılaştır
Karşılaştırmada Zamanlayıcıyı Temizle (Otomatik Yeniden Yükleme)
Kusursuz, Faz Doğru Darbe Genişliği Modülatörü (PWM)
Değişken PWM Dönemi
Frekans Üreteci
Üç Bağımsız Kesme Kaynağı (TOV0, OCF0A ve OCF0B)
Üzerindeview
Timer / Counter0, iki bağımsız Çıkış Karşılaştırma Ünitesi ve PWM desteği ile genel amaçlı bir 8-bit Zamanlayıcı / Sayıcı modülüdür. Doğru program yürütme zamanlamasına (olay yönetimi) ve dalga üretimine izin verir.
8 bitlik Zamanlayıcı / Sayacın basitleştirilmiş bir blok şeması aşağıda gösterilmiştir. Şekil 11-1. G / Ç pimlerinin gerçek yerleşimi için bkz. "Pinout ATtiny25 / 45/85", sayfa 2. G / Ç bitleri ve G / Ç pimleri dahil olmak üzere CPU tarafından erişilebilen G / Ç Kayıtları kalın olarak gösterilmiştir. Cihaza özgü G / Ç Kaydı ve bit konumları, "Kayıt Açıklaması" sayfa 77.
Zamanlayıcı/Sayaç (TCNT0) ve Çıkış Karşılaştırma Kayıtları (OCR0A ve OCR0B) 8 bitlik kayıtlardır. Kesme talebi (şekilde Int.Req. olarak kısaltılmıştır) sinyallerinin tümü, Zamanlayıcı Kesme Bayrak Kaydı'nda (TIFR) görülebilir. Tüm kesmeler, Zamanlayıcı Kesme Maske Kaydı (TIMSK) ile ayrı ayrı maskelenir. TIFR ve TIMSK şekilde gösterilmemiştir.
Zamanlayıcı/Sayaç, dahili olarak, ön ölçekleyici aracılığıyla veya T0 pimindeki harici bir saat kaynağı tarafından saatlenebilir. Saat Seçimi mantık bloğu, Zamanlayıcı/Sayacı'nın değerini artırmak (veya azaltmak) için hangi saat kaynağını ve kenarını kullandığını kontrol eder. Zamanlayıcı/Sayaç, hiçbir saat kaynağı seçilmediğinde etkin değildir. Saat Seçimi mantığından gelen çıktı, zamanlayıcı saati (clkT0) olarak anılır.
Çift arabelleğe alınmış Çıkış Karşılaştırma Yazmaçları (OCR0A ve OCR0B) her zaman Zamanlayıcı / Sayaç değeriyle karşılaştırılır. Karşılaştırmanın sonucu, Dalga Biçimi Oluşturucu tarafından Çıkış Karşılaştırma pinlerinde (OC0A ve OC0B) bir PWM veya değişken frekans çıkışı oluşturmak için kullanılabilir. Bkz. "Çıktı Karşılaştırma Birimi", sayfa 69. detaylar için. Karşılaştırma Eşleştirme olayı ayrıca bir Çıktı Karşılaştırma kesme isteği oluşturmak için kullanılabilecek Karşılaştırma Bayrağını (OCF0A veya OCF0B) ayarlar.
Tanımlar
Bu bölümdeki birçok kayıt ve bit referansı genel formda yazılmıştır. Küçük bir "n" harfi, Zamanlayıcı / Sayaç numarasının yerini alır, bu durumda 0. Küçük bir "x", Çıktı Karşılaştırma Birimi'nin yerini alır, bu durumda Birim A'yı Karşılaştır veya Birim B'yi Karşılaştır. bir programda, kesin form kullanılmalıdır, yani Zamanlayıcı / Sayaç0 sayaç değerine erişmek için TCNT0 vb.
İçindeki tanımlar Tablo 11-1 belge boyunca da yaygın olarak kullanılmaktadır.
Tablo 11-1. Tanımlar
Devamlı | Tanım |
ALT | Sayaç 0x00 olduğunda BOTTOM'a ulaşır |
MAKSİMUM | Sayaç, 0xFF olduğunda (ondalık 255) MAXimum değerine ulaşır. |
TEPE | Sayaç, sayım dizisindeki en yüksek değere eşit olduğunda TOP'a ulaşır. TOP değeri sabit 0xFF (MAX) değeri veya OCR0A Register'da saklanan değer olarak atanabilir. Atama, çalışma moduna bağlıdır |
Zamanlayıcı / Sayaç Ön Ölçekleyici ve Saat Kaynakları
Zamanlayıcı / Sayaç, dahili veya harici bir saat kaynağı ile ölçülebilir. Saat kaynağı, Zamanlayıcı / Sayaç 0 Kontrol Kaydında (TCCR0B) bulunan Saat Seçimi (c) bitleri tarafından kontrol edilen Saat Seçim mantığı tarafından seçilir.
Ön Ölçeklendiricili Dahili Saat Kaynağı
Zamanlayıcı/Sayaç0, doğrudan sistem saati tarafından ayarlanabilir (CS0[2:0] = 1 ayarlanarak). Bu, sistem saat frekansına (fCLK_I/O) eşit bir maksimum zamanlayıcı/sayaç saat frekansı ile en hızlı işlemi sağlar. Alternatif olarak, ön ölçekleyiciden gelen dört vuruştan biri saat kaynağı olarak kullanılabilir. Önceden ölçeklendirilmiş saatin frekansı ya
Ön ölçekleyici Sıfırlama
Ön ölçekleyici serbest çalışır, yani Zamanlayıcı/Sayaç0'ın Saat Seçim mantığından bağımsız olarak çalışır. Ön ölçekleyici, zamanlayıcı/sayacın saat seçiminden etkilenmediği için, ön ölçekleyicinin durumunun, önceden ölçeklendirilmiş bir saatin kullanıldığı durumlar için etkileri olacaktır. Bir eskiampön ölçeklendirme yapaylığının bir örneği, zamanlayıcı/sayıcı etkinleştirildiğinde ve ön ölçekleyici (6 > CS0[2:0] > 1) tarafından saat ayarlandığında gerçekleşir. Zamanlayıcı etkinleştirildiğinden ilk sayımın gerçekleşmesine kadar olan sistem saati döngülerinin sayısı 1 ila N+1 sistem saati döngüleri arasında olabilir; burada N, ön ölçekleyici bölenine (8, 64, 256 veya 1024) eşittir.
Yürütmeyi programlamak için Zamanlayıcı / Sayacı senkronize etmek için Ön Ölçekleyici Sıfırlamasını kullanmak mümkündür.
Harici Saat Kaynağı
T0 pinine uygulanan harici bir saat kaynağı, zamanlayıcı/sayıcı saat (clkT0) olarak kullanılabilir. T0 pimi s'diramppin senkronizasyon mantığı ile her sistem saat döngüsünde bir kez yönlendirilir. senkronize (lerampled) sinyali daha sonra geçilir
kenar detektörü aracılığıyla. Şekil 11-2 T0 senkronizasyonu ve kenar dedektörü mantığının fonksiyonel eşdeğer blok diyagramını gösterir. Kayıtlar, dahili sistem saatinin (clkI/O) pozitif kenarında saatlenir. Mandal, dahili sistem saatinin yüksek döneminde şeffaftır.
Kenar dedektörü, algıladığı her pozitif (CS0[0:2] = 0) veya negatif (CS7[0:2] = 0) kenar için bir clkT6 darbesi üretir.
OCR0x Kayıtları, Darbe Genişliği Modülasyonu (PWM) modlarından herhangi biri kullanılırken çift arabelleğe alınır. Normal ve Karşılaştırmada Zamanlayıcıyı Temizle (CTC) çalışma modları için, çift ara belleğe alma devre dışı bırakılır. Çift arabellekleme, OCR0x Karşılaştırma Kayıtlarının güncellemesini sayma sırasının üstüne veya altına senkronize eder. Senkronizasyon, tek uzunluklu, simetrik olmayan PWM darbelerinin oluşumunu önler, böylece çıktıyı hatasız hale getirir.
OCR0x Kayıt erişimi karmaşık görünebilir, ancak durum bu değildir. Çift arabellekleme etkinleştirildiğinde, CPU'nun OCR0x Arabellek Kaydı'na erişimi vardır ve çift arabellekleme devre dışı bırakılırsa, CPU OCR0x'e doğrudan erişecektir.
Çıktı Karşılaştırmasını Zorla
PWM olmayan dalga biçimi oluşturma modlarında, karşılaştırıcının eşleşme çıkışı, Kuvvet Çıkışı Karşılaştırma (FOC0x) bitine bir tane yazarak zorlanabilir. Karşılaştırma Karşılaşmasını Zorlamak OCF0x İşaretini ayarlamaz veya zamanlayıcıyı yeniden yükleyip / temizlemeyecektir, ancak OC0x pini, gerçek bir Karşılaştırma Eşleşmesi oluşmuş gibi güncellenecektir (COM0x [1: 0] bit ayarları, OC0x pininin ayarlanıp ayarlanmadığını tanımlar, temizlenir veya değiştirildi).
TCNT0 Yazma ile Eşleşmeyi Engellemeyi Karşılaştır
TCNT0 Kaydına yapılan tüm CPU yazma işlemleri, zamanlayıcı durdurulsa bile bir sonraki zamanlayıcı saat döngüsünde meydana gelen herhangi bir Karşılaştırma Eşleşmesini bloke edecektir. Bu özellik, OCR0x'in Zamanlayıcı / Sayaç saati etkinleştirildiğinde bir kesinti tetiklemeden TCNT0 ile aynı değere başlatılmasına izin verir.
Çıktı Karşılaştırma Birimini Kullanma
Herhangi bir çalışma modunda TCNT0 yazılması, bir zamanlayıcı saat döngüsü için tüm Karşılaştırma Eşleşmelerini bloke edeceğinden, Zamanlayıcı / Sayacın çalışıp çalışmadığından bağımsız olarak, Çıkış Karşılaştırma Birimi kullanılırken TCNT0 değiştirilirken riskler vardır. TCNT0'a yazılan değer OCR0x değerine eşitse, Karşılaştırma Eşleşmesi gözden kaçacak ve yanlış dalga formu oluşumuna neden olacaktır. Benzer şekilde, sayaç aşağı doğru sayarken TCNT0 değerini BOTTOM'a eşit olarak yazmayın.
OC0x'in kurulumu, çıkılacak port pini için Veri Yönü Kaydını ayarlamadan önce yapılmalıdır. OC0x değerini ayarlamanın en kolay yolu, Normal modda Force Output Compar (FOC0x) strobe bitlerini kullanmaktır. OC0x Kayıtları, Dalga Formu Oluşturma modları arasında geçiş yaparken bile değerlerini korur.
COM0x [1: 0] bitlerinin karşılaştırma değeriyle birlikte çift arabelleğe alınmadığını unutmayın. COM0x [1: 0] bitlerinin değiştirilmesi hemen etkili olacaktır.
Eşleşen Çıktı Birimini Karşılaştır
Çıkış Karşılaştırma modu (COM0x [1: 0]) bitlerinin iki işlevi vardır. Dalga Biçimi Oluşturucu, bir sonraki Karşılaştırma Eşleşmesinde Çıkış Karşılaştırma (OC0x) durumunu tanımlamak için COM1x [0: 0] bitlerini kullanır. Ayrıca COM0x [1: 0] bitleri OC0x pin çıkış kaynağını kontrol eder. Şekil 11-6 COM0x [1: 0] bit ayarından etkilenen mantığın basitleştirilmiş bir şemasını gösterir. Şekildeki G / Ç Kayıtları, G / Ç bitleri ve G / Ç pimleri kalın olarak gösterilmiştir. Yalnızca genel G / Ç Bağlantı Noktası Kontrol Kayıtlarının (DDR ve PORT) COM0x [1: 0] bitlerinden etkilenen bölümleri gösterilir. OC0x durumuna atıfta bulunurken, referans OC0x pini değil, dahili OC0x Kaydı içindir. Bir sistem sıfırlaması meydana gelirse, OC0x Kaydı "0" olarak sıfırlanır.
OC0A / OC0B, I / O pinine bağlandığında, COM0A [1: 0] / COM0B [1: 0] bitlerinin işlevi WGM0 [2: 0] bit ayarına bağlıdır. Tablo 11-2 WGM0 [1: 0] bitleri normal veya CTC moduna (PWM olmayan) ayarlandığında COM0x [2: 0] bit işlevselliğini gösterir.
Tablo 11-2. Çıkış Modunu, PWM Olmayan Modu Karşılaştırın
COM0A1 COM0B1 | COM0A0 COM0B0 | Tanım |
0 | 0 | Normal bağlantı noktası çalışması, OC0A / OC0B bağlantısı kesildi. |
0 | 1 | Karşılaştırmada OC0A / OC0B'yi açın / kapatın |
1 | 0 | Karşılaştırmada OC0A / OC0B'yi Temizle |
1 | 1 | Karşılaştırma Maçında OC0A / OC0B'yi ayarlayın |
Tablo 11-3 WGM0 [1: 0] bitleri hızlı PWM moduna ayarlandığında COM0x [2: 0] bit işlevselliğini gösterir.
Tablo 11-3. Çıkış Modunu, Hızlı PWM Modunu Karşılaştırın(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Tanım |
0 | 0 | Normal bağlantı noktası çalışması, OC0A / OC0B bağlantısı kesildi. |
0 | 1 | Rezerve |
1 | 0 | Karşılaştırma Maçında OC0A / OC0B'yi temizleyin, OC0A / OC0B'yi BOTTOM'a ayarlayın (ters çevirmeyen mod) |
1 | 1 | Karşılaştırma Maçında OC0A / OC0B'yi ayarlayın, BOTTOM'da OC0A / OC0B'yi temizleyin (ters çevirme modu) |
Not: OCR0A veya OCR0B, TOP'a eşit olduğunda ve COM0A1/COM0B1 ayarlandığında özel bir durum oluşur. Bu durumda, karşılaştırma eşleşmesi göz ardı edilir, ancak set veya clear işlemi ALT'ta yapılır. Görmek "Hızlı PWM Modu" sayfa 73 Daha detaylı bilgi için.
Tablo 11-4 WGM0 [1: 0] bitleri faz doğru PWM moduna ayarlandığında COM0x [2: 0] bit işlevselliğini gösterir.
Tablo 11-4. Çıkış Modunu, Faz Düzeltmeli PWM Modunu Karşılaştırın(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Tanım |
0 | 0 | Normal bağlantı noktası çalışması, OC0A / OC0B bağlantısı kesildi. |
0 | 1 | Rezerve |
1 | 0 | Yukarı sayarken Karşılaştırma Maçında OC0A / OC0B'yi temizle. Aşağı sayım sırasında OC0A / OC0B'yi Karşılaştırma Maçına ayarlayın. |
1 | 1 | Yukarı sayarken OC0A / OC0B'yi Karşılaştırma Maçına ayarlayın. Aşağı sayarken Karşılaştırma Maçında OC0A / OC0B'yi temizleyin. |
Not: 1. OCR0A veya OCR0B, TOP'a eşit olduğunda ve COM0A1/COM0B1 ayarlandığında özel bir durum oluşur. Bu durumda, Karşılaştır Maç göz ardı edilir, ancak set veya temizleme TOP'da yapılır. Görmek "Faz Doğru PWM Modu" sayfa 74 Daha detaylı bilgi için.
Bit 3: 2 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 1: 0 - WGM0 [1: 0]: Dalga Biçimi Oluşturma Modu
TCCR02B Kaydında bulunan WGM0 biti ile birleştirildiğinde, bu bitler sayacın sayma sırasını, maksimum (TOP) sayaç değeri için kaynağı ve hangi tür dalga formu üretiminin kullanılacağını kontrol eder, bkz. Tablo 11-5. Zamanlayıcı / Sayaç birimi tarafından desteklenen çalışma modları şunlardır: Normal mod (sayaç), Karşılaştırma Eşleştirme (CTC) modunda Zamanlayıcıyı Temizle ve iki tür Darbe Genişliği Modülasyonu (PWM) modu (bkz. "Operasyon modları" 71. sayfada).
Tablo 11-5. Dalga Biçimi Oluşturma Modu Bit Açıklama
Mod | WGM 02 | WGM 01 | WGM 00 | Zamanlayıcı / Sayaç Çalışma Modu | TEPE | OCRx'in güncellenmesi | TOV Bayrak Ayarı |
0 | 0 | 0 | 0 | Normal | 0xFF | Hemen | MAKSİMUM(1) |
1 | 0 | 0 | 1 | PWM, Faz Doğru | 0xFF | TEPE | ALT(2) |
2 | 0 | 1 | 0 | CTC | OKR | Hemen | MAKSİMUM(1) |
3 | 0 | 1 | 1 | Hızlı PWM | 0xFF | ALT(2) | MAKSİMUM(1) |
4 | 1 | 0 | 0 | Rezerve | – | – | – |
5 | 1 | 0 | 1 | PWM, Faz Doğru | OKR | TEPE | ALT(2) |
6 | 1 | 1 | 0 | Rezerve | – | – | – |
7 | 1 | 1 | 1 | Hızlı PWM | OKR | ALT(2) | TEPE |
Bit 7 - FOC0A: Çıkışı Karşılaştırmaya Zorla A
FOC0A biti yalnızca WGM bitleri PWM dışı bir modu belirttiğinde etkindir.
Ancak, gelecekteki cihazlarla uyumluluğu sağlamak için, PWM modunda çalışırken TCCR0B yazıldığında bu bit sıfıra ayarlanmalıdır. FOC0A bitine mantıksal bir tane yazarken, Waveform Generation biriminde hemen bir Karşılaştırma Eşleşmesi zorlanır. OC0A çıkışı, COM0A [1: 0] bit ayarına göre değiştirilir. FOC0A bitinin bir flaş olarak uygulandığına dikkat edin. Bu nedenle, zorunlu karşılaştırmanın etkisini belirleyen COM0A [1: 0] bitlerinde bulunan değerdir.
Bir FOC0A strobe herhangi bir kesinti oluşturmayacağı gibi CTC modunda OCR0A'yı TOP olarak kullanarak zamanlayıcıyı temizlemeyecektir. FOC0A biti her zaman sıfır olarak okunur.
Bit 6 - FOC0B: Çıkışı Karşılaştırmaya Zorla B
FOC0B biti yalnızca WGM bitleri PWM dışı bir modu belirttiğinde etkindir.
Bununla birlikte, gelecekteki cihazlarla uyumluluğu sağlamak için, PWM modunda çalışırken TCCR0B yazıldığında bu bit sıfıra ayarlanmalıdır. FOC0B bitine mantıksal bir tane yazarken, Waveform Generation biriminde hemen bir Karşılaştırma Eşleşmesi zorlanır. OC0B çıkışı, COM0B [1: 0] bit ayarına göre değiştirilir. FOC0B bitinin bir strobe olarak uygulandığına dikkat edin. Bu nedenle, zorunlu karşılaştırmanın etkisini belirleyen COM0B [1: 0] bitlerinde bulunan değerdir.
Bir FOC0B strobe herhangi bir kesinti oluşturmayacaktır ve CTC modunda OCR0B'yi TOP olarak kullanarak zamanlayıcıyı temizlemeyecektir.
FOC0B biti her zaman sıfır olarak okunur.
Bit 5: 4 - Res: Ayrılmış Bitler
Bu bitler, ATtiny25 / 45 / 85'te ayrılmış bitlerdir ve her zaman sıfır olarak okunur.
Bit 3 - WGM02: Dalga Biçimi Oluşturma Modu
Açıklamasına bakın "TCCR0A - Zamanlayıcı / Sayaç Kontrol Kaydı A" sayfa 77.
Bit 2: 0 - CS0 [2: 0]: Saat Seçimi
Üç Saat Seçim biti, Zamanlayıcı / Sayaç tarafından kullanılacak saat kaynağını seçer.
Tablo 11-6. Saat Seçim Biti Açıklama
CS02 | CS01 | CS00 | Tanım |
0 | 0 | 0 | Saat kaynağı yok (Zamanlayıcı / Sayaç durdu) |
0 | 0 | 1 | clkI/O/(Ön ölçekleme yok) |
0 | 1 | 0 | clkI/O/8 (Ön ölçekleyiciden) |
0 | 1 | 1 | clkI/O/64 (Ön ölçekleyiciden) |
1 | 0 | 0 | clkI/O/256 (Ön ölçekleyiciden) |
1 | 0 | 1 | clkI/O/1024 (Ön ölçekleyiciden) |
1 | 1 | 0 | T0 pininde harici saat kaynağı. Düşen kenarda saat. |
1 | 1 | 1 | T0 pininde harici saat kaynağı. Yükselen kenarda saat. |
Timer / Counter0 için harici pin modları kullanılıyorsa, T0 pinindeki geçişler, pin bir çıkış olarak yapılandırılmış olsa bile sayacı saatleyecektir. Bu özellik yazılımın sayım kontrolüne izin verir.
Sayaç ve Karşılaştırma Birimleri
Zamanlayıcı / Sayaç1 genel işlemi eşzamansız modda açıklanmıştır ve senkron moddaki işlemden yalnızca bu iki mod arasında farklılıklar varsa bahsedilir. Şekil 12-2 Zamanlayıcı / Sayaç 1 senkronizasyon kaydı blok şemasını ve kayıtlar arasındaki senkronizasyon gecikmelerini gösterir. Tüm saat ağ geçidi ayrıntılarının şekilde gösterilmediğini unutmayın. Zamanlayıcı / Sayaç 1 kayıt değerleri, sayacın çalışmasını etkilemeden önce giriş senkronizasyon gecikmesine neden olan dahili senkronizasyon kayıtlarından geçer. TCCR1, GTCCR, OCR1A, OCR1B ve OCR1C kayıtları, kayıt yazıldıktan hemen sonra okunabilir. Zamanlayıcı / Sayaç1 (TCNT1) kaydı ve işaretler (OCF1A, OCF1B ve TOV1) için geri okuma değerleri, giriş ve çıkış senkronizasyonu nedeniyle geciktirilir.
Zamanlayıcı / Sayaç1, daha düşük ön ölçeklendirme fırsatları ile yüksek bir çözünürlük ve yüksek doğrulukta kullanım sunar. Ayrıca, 8 MHz'e (veya Düşük Hız Modunda 64 MHz) kadar saat hızlarını kullanan iki hassas, yüksek hızlı, 32-bit Darbe Genişlik Modülatörünü destekleyebilir. Bu modda, Timer / Counter1 ve çıkış karşılaştırma yazmaçları, üst üste binmeyen ters çevrilmemiş ve tersine çevrilmiş çıkışlara sahip ikili bağımsız PWM'ler olarak görev yapar. Bakın sayfa 86 Bu işlevle ilgili ayrıntılı bir açıklama için. Benzer şekilde, yüksek ön ölçekleme fırsatları, bu üniteyi daha düşük hızlı işlevler veya seyrek eylemlerle tam zamanlama işlevleri için yararlı hale getirir.
Şekil 12-2. Zamanlayıcı/Sayaç 1 Senkronizasyon Kayıt Blok Şeması.
Zamanlayıcı / Sayaç1 ve ön ölçekleyici, ön ölçekleyici asenkron modda hızlı 64 MHz (veya Düşük Hız Modunda 32 MHz) PCK saatinde çalışırken CPU'nun herhangi bir saat kaynağından çalıştırılmasına izin verir.
Sistem saat frekansının, PCK frekansının üçte birinden daha düşük olması gerektiğini unutmayın. Asenkron Zamanlayıcı / Sayaç 1'in senkronizasyon mekanizması, sistem saati yüksek olduğunda PCK'nın en az iki kenarına ihtiyaç duyar. Sistem saatinin frekansı çok yüksekse, veri veya kontrol değerlerinin kaybolması riski vardır.
Aşağıdaki Şekil 12-3 Zamanlayıcı / Sayaç1 için blok şemasını gösterir.
Tablo 12-1. PWM Modunda Mod Seçimini Karşılaştırın
COM1x1 | COM1x0 | Çıkış Karşılaştırma Pimleri Üzerindeki Etki |
0 | 0 | OC1x bağlı değil. OC1x bağlı değil. |
0 | 1 | OC1x karşılaştırma maçında temizlendi. TCNT1 = $ 00 olduğunda ayarlayın. OC1x karşılaştırma maçında ayarlandı. TCNT1 = 00 $ olduğunda temizlenir. |
1 | 0 | OC1x karşılaştırma maçında onaylandı. TCNT1 = 00 $ olduğunda ayarlayın. OC1x bağlı değil. |
1 | 1 | OC1x Karşılaştırma maçında ayarlayın. TCNT1 = 00 $ olduğunda temizlenir. OC1x bağlı değil. |
ADC Özellikleri
Tablo 21-8. ADC Özellikleri, Tek Uçlu Kanallar. TA = -40°C ila +85°C
Sembol | Parametre | Durum | Dakika | Tip | Maksimum | Birimler |
Çözünürlük | 10 | Parçalar | ||||
Mutlak doğruluk (INL, DNL ve Quantization, Gain ve Offset hataları dahil) | VREF = 4V, VCC = 4V,
ADC saati = 200 kHz |
2 | YSB | |||
VREF = 4V, VCC = 4V,
ADC saati = 1 MHz |
3 | YSB | ||||
VREF = 4V, VCC = 4V,
ADC saati = 200 kHz Gürültü Azaltma Modu |
1.5 | YSB | ||||
VREF = 4V, VCC = 4V,
ADC saati = 1 MHz Gürültü Azaltma Modu |
2.5 | YSB | ||||
İntegral Doğrusal Olmayanlık (INL) (Ofsetten sonra doğruluk ve kalibrasyon kazancı) | VREF = 4V, VCC = 4V,
ADC saati = 200 kHz |
1 | YSB | |||
Diferansiyel Doğrusal Olmayanlık (DNL) | VREF = 4V, VCC = 4V,
ADC saati = 200 kHz |
0.5 | YSB | |||
Hata Kazanç | VREF = 4V, VCC = 4V,
ADC saati = 200 kHz |
2.5 | YSB | |||
Ofset Hatası | VREF = 4V, VCC = 4V,
ADC saati = 200 kHz |
1.5 | YSB | |||
Dönüşüm Zamanı | Ücretsiz Koşu Dönüşümü | 14 | 280 | us | ||
Saat Frekansı | 50 | 1000 | kHz | |||
Şasi Numarası | Giriş Voltage | Yeraltı | VREF | V | ||
Giriş Bant Genişliği | 38.4 | kHz | ||||
AREF | Dış Referans Hacmitage | 2.0 | VCC | V | ||
VINT | Dahili Hacimtage Referans | 1.0 | 1.1 | 1.2 | V | |
Dahili 2.56V Referans (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kÊ | ||||
YAĞMUR | Analog Giriş Direnci | 100 | Ay | |||
ADC Çıkışı | 0 | 1023 | YSB |
Not: 1. Değerler yalnızca kılavuz niteliğindedir.
Tablo 21-9. ADC Özellikleri, Diferansiyel Kanallar (Tek Kutuplu Mod). TA = -40°C ila +85°C
Sembol | Parametre | Durum | Dakika | Tip | Maksimum | Birimler |
Çözünürlük | Kazanç = 1x | 10 | Parçalar | |||
Kazanç = 20x | 10 | Parçalar | ||||
Mutlak doğruluk (INL, DNL ve
Niceleme, Kazanç ve Ofset Hataları) |
Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
10.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
20.0 | YSB | ||||
İntegral Doğrusal Olmayanlık (INL) (Ofset ve Kazanç Kalibrasyonundan Sonra Doğruluk) | Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
4.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
10.0 | YSB | ||||
Hata Kazanç | Kazanç = 1x | 10.0 | YSB | |||
Kazanç = 20x | 15.0 | YSB | ||||
Ofset Hatası | Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
3.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
4.0 | YSB | ||||
Dönüşüm Zamanı | Ücretsiz Koşu Dönüşümü | 70 | 280 | us | ||
Saat Frekansı | 50 | 200 | kHz | |||
Şasi Numarası | Giriş Voltage | Yeraltı | VCC | V | ||
VDIFF | Giriş Diferansiyel Hacmitage | VREF/Kazanç | V | |||
Giriş Bant Genişliği | 4 | kHz | ||||
AREF | Dış Referans Hacmitage | 2.0 | VCC – 1.0 | V | ||
VINT | Dahili Hacimtage Referans | 1.0 | 1.1 | 1.2 | V | |
Dahili 2.56V Referans (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referans Giriş Direnci | 32 | kÊ | |||
YAĞMUR | Analog Giriş Direnci | 100 | Ay | |||
ADC Dönüşüm Çıktısı | 0 | 1023 | YSB |
Not: Değerler yalnızca kılavuz niteliğindedir.
Tablo 21-10. ADC Özellikleri, Diferansiyel Kanallar (Bipolar Mod). TA = -40°C ila +85°C
Sembol | Parametre | Durum | Dakika | Tip | Maksimum | Birimler |
Çözünürlük | Kazanç = 1x | 10 | Parçalar | |||
Kazanç = 20x | 10 | Parçalar | ||||
Mutlak doğruluk (INL, DNL ve
Niceleme, Kazanç ve Ofset Hataları) |
Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
8.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
8.0 | YSB | ||||
İntegral Doğrusal Olmayanlık (INL) (Ofset ve Kazanç Kalibrasyonundan Sonra Doğruluk) | Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
4.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
5.0 | YSB | ||||
Hata Kazanç | Kazanç = 1x | 4.0 | YSB | |||
Kazanç = 20x | 5.0 | YSB | ||||
Ofset Hatası | Kazanç = 1x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
3.0 | YSB | |||
Kazanç = 20x
VREF = 4V, VCC = 5V ADC saati = 50 - 200 kHz |
4.0 | YSB | ||||
Dönüşüm Zamanı | Ücretsiz Koşu Dönüşümü | 70 | 280 | us | ||
Saat Frekansı | 50 | 200 | kHz | |||
Şasi Numarası | Giriş Voltage | Yeraltı | VCC | V | ||
VDIFF | Giriş Diferansiyel Hacmitage | VREF/Kazanç | V | |||
Giriş Bant Genişliği | 4 | kHz | ||||
AREF | Dış Referans Hacmitage | 2.0 | VCC – 1.0 | V | ||
VINT | Dahili Hacimtage Referans | 1.0 | 1.1 | 1.2 | V | |
Dahili 2.56V Referans (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referans Giriş Direnci | 32 | kÊ | |||
YAĞMUR | Analog Giriş Direnci | 100 | Ay | |||
ADC Dönüşüm Çıktısı | -512 | 511 | YSB |
Yönerge Seti Özeti
Hafıza teknikleri | İşlenenler | Tanım | Operasyon | Bayraklar | #Saatler |
ARİTMETİK VE MANTIK TALİMATLARI | |||||
EKLEMEK | Sağ, Sağ | İki Kayıt Ekle | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Sağ, Sağ | Carry ile iki Kayıt ekleyin | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Hemen Word'e Ekle | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
ALT | Sağ, Sağ | İki Kayıt Çıkarın | Rd ← Rd – Rd | Z, C, N, V, H | 1 |
SUBİ | Yol, K | Kayıttan Sabit Çıkarma | Rd ← Rd – K | Z, C, N, V, H | 1 |
Küçük ve Orta Ölçekli İşletme (KKB) | Sağ, Sağ | Carry two Register ile Çıkarın | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Yol, K | Carry Constant ile Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Hemen Word'den Çıkar | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
VE | Sağ, Sağ | Mantıksal AND Kayıtları | Rd ← Rd ∙ Rr | Z, N, V | 1 |
VEDİ | Yol, K | Mantıksal VE Kayıt ve Sabit | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Sağ, Sağ | Mantıksal VEYA Kayıtlar | Rd ← Rd v Rr | Z, N, V | 1 |
ORİ | Yol, K | Mantıksal VEYA Kayıt ve Sabit | Rd ← Rd v K | Z, N, V | 1 |
EOR | Sağ, Sağ | Münhasır VEYA Kayıtlar | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
Bİlgİ | Rd | Birinin Tamamlayıcı | Rd ← 0xFF - Rd | Z, C, N, V | 1 |
NEG | Rd | İki'nin tamamlayıcısı | Rd ← 0x00 - Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Register'da Bit (ler) ayarlayın | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Kayıttaki Bitleri Temizle | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
ŞİRKET | Rd | Artış | Kd ← Kd + 1 | Z, N, V | 1 |
Aralık | Rd | azalma | Rd ← Rd - 1 | Z, N, V | 1 |
TST | Rd | Sıfır veya Eksi Testi | Rd ← Rd ∙ Rd | Z, N, V | 1 |
ÇÖZÜM | Rd | Temizle Kaydı | Kd ← Kd ⊕ Kd | Z, N, V | 1 |
SER | Rd | Kaydı Ayarla | Kd ← 0xFF | Hiçbiri | 1 |
ŞUBE TALİMATLARI | |||||
RJMP | k | Göreli Atlama | PC ← PC + k + 1 | Hiçbiri | 2 |
IJMP | (Z) 'ye Dolaylı Atlama | Bilgisayar ← Z | Hiçbiri | 2 | |
RCAALL | k | Bağıl Altyordam Çağrısı | PC ← PC + k + 1 | Hiçbiri | 3 |
ARARIM | (Z) için Dolaylı Çağrı | Bilgisayar ← Z | Hiçbiri | 3 | |
Geri dön | Altyordam İadesi | PC ← Yığın | Hiçbiri | 4 | |
RETİ | Dönüşü Kes | PC ← Yığın | I | 4 | |
CPSE | Rd, Rr | Karşılaştır, Eşitse Atla | eğer (Rd = Rr) PC ← PC + 2 veya 3 ise | Hiçbiri | 1/2/3 |
CP | Rd, Rr | Karşılaştırmak | Rd - Rr | Z, N, V, C, H | 1 |
ÇKP | Rd, Rr | Carry ile Karşılaştırın | Rd - Rr - C | Z, N, V, C, H | 1 |
Tüketici Fiyat Endeksi (TÜFE) | Rd, K | Hemen Kaydolun | Rd - K | Z, N, V, C, H | 1 |
SBRC | sağ, b | Kayıttaki Bit Silindiyse Atla | (Rr(b)=0) PC ← PC + 2 veya 3 ise | Hiçbiri | 1/2/3 |
SBR'ler | sağ, b | Register'daki Bit Ayarlandıysa Atla | (Rr(b)=1) PC ← PC + 2 veya 3 ise | Hiçbiri | 1/2/3 |
SBIC | Ç, b | G / Ç Kaydındaki Bit Temizlendiğinde Atla | (P(b)=0) PC ← PC + 2 veya 3 ise | Hiçbiri | 1/2/3 |
SBIS | Ç, b | G / Ç Kaydındaki Bit Ayarlandıysa Atla | (P(b)=1) PC ← PC + 2 veya 3 ise | Hiçbiri | 1/2/3 |
BRBS'ler | s, k | Durum İşareti Ayarlandıysa Dal | eğer (SREG(ler) = 1) ise PC←PC+k + 1 | Hiçbiri | 1/2 |
BRBC | s, k | Durum Bayrağı Temizlenirse Dallanma | eğer (SREG(ler) = 0) ise PC←PC+k + 1 | Hiçbiri | 1/2 |
BREK | k | Eşit ise dal | (Z = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRENE | k | Eşit Değilse Dal | (Z = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRCS | k | Carry Set ise Dal | (C = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRCC | k | Taşıma Temizlenirse Şube | (C = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRŞ | k | Aynı veya Daha Yüksek ise Dal | (C = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRLO | k | Daha Düşükse Dal | (C = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRMı | k | Dal eksi ise | (N = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRPL | k | Şube if Plus | (N = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRGE | k | Büyük veya Eşit ise Dallanma İmzalı | eğer (N ⊕ V= 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRLT | k | Sıfırdan Küçükse Dalma İmzalı | eğer (N ⊕ V= 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRHS | k | Yarım Taşıyıcı Bayraklıysa Dal | (H = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRHC | k | Yarım Taşıyıcı Bayrağı Temizlenirse Dal | (H = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRTS | k | T Bayrağı Ayarlanırsa Dal | (T = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRTC | k | Şube T Bayrağı Temizlenirse | (T = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRV'ler | k | Taşma İşareti Ayarlandıysa Dal | (V = 1) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRVC | k | Taşma İşareti Temizlenirse Dallanma | (V = 0) ise PC ← PC + k + 1 | Hiçbiri | 1/2 |
BRIE | k | Kesme Etkinse Dal | eğer ( ben = 1) o zaman PC ← PC + k + 1 | Hiçbiri | 1/2 |
KÖPRÜ | k | Kesme Devre Dışı Bırakılırsa Dallanma | eğer ( ben = 0) o zaman PC ← PC + k + 1 | Hiçbiri | 1/2 |
BIT AND BIT-TEST TALİMATLARI | |||||
SBI | P, b | G / Ç Kaydında Bit Ayarlama | G/Ç(P,b) ← 1 | Hiçbiri | 2 |
CBI | P, b | G / Ç Kaydında Biti Temizle | G/Ç(P,b) ← 0 | Hiçbiri | 2 |
Türkçe: LSL | Rd | Mantıksal Sola Kaydırma | Kd(n+1) ← Kd(n), Kd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Mantıksal Sağa Kaydırma | Kd(n) ← Kd(n+1), Kd(7) ← 0 | Z, C, N, V | 1 |
Rol | Rd | Carry ile Sola Döndür | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Taşıma Sırasında Sağa Döndür | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmetik Sağa Kaydırma | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Hafıza teknikleri | İşlenenler | Tanım | Operasyon | Bayraklar | #Saatler |
TAKAS | Rd | Nibbles'ı Değiştir | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Hiçbiri | 1 |
BSET | s | Bayrak Seti | SREG(ler) ← 1 | SREG (ler) | 1 |
BKLR | s | Temizle | SREG(ler) ← 0 | SREG (ler) | 1 |
BST | sağ, b | Kayıt'tan T'ye Bit Deposu | T ← Rr(b) | T | 1 |
BLD | yol, b | T'den Register'a bit yükü | Rd(b) ← T | Hiçbiri | 1 |
SEÇ | Carry Ayarla | C ← 1 | C | 1 | |
ÇK | Temizle Carry | C ← 0 | C | 1 | |
SEN | Negatif Bayrağı Ayarla | N ← 1 | N | 1 | |
CLN | Negatif İşareti Temizle | N ← 0 | N | 1 | |
SEZ | Sıfır Bayrağı Ayarla | Z ← 1 | Z | 1 | |
CLZ | Sıfır Bayrağını Temizle | Z ← 0 | Z | 1 | |
SEI | Küresel Kesinti Etkinleştirme | ben ← 1 | I | 1 | |
CLI | Global Kesinti Devre Dışı Bırakma | ben ← 0 | I | 1 | |
SES | İmzalı Test Bayrağı Ayarla | S ← 1 | S | 1 | |
CLS | İmzalı Test İşaretini Temizle | S ← 0 | S | 1 | |
SEV | İkili Kompleman Taşmasını Ayarlayın. | V ← 1 | V | 1 | |
CLV | İkili Kompleman Taşmasını Temizle | V ← 0 | V | 1 | |
AYARLAMAK | SREG'de T'yi ayarlayın | S ← 1 | T | 1 | |
ÇLT | SREG'de T'yi temizle | S ← 0 | T | 1 | |
GÖRMEK | SREG'de Yarım Taşıma İşareti Ayarla | H ← 1 | H | 1 | |
CLH | SREG'de Yarım Taşıma Bayrağını Temizle | H ← 0 | H | 1 | |
VERİ AKTARIM TALİMATLARI | |||||
MOV | Sağ, Sağ | Kayıtlar Arasında Taşı | Sağ ← Sağ | Hiçbiri | 1 |
HAREKETLİ | Sağ, Sağ | Kopyala Tescil Sözcüğü | Kd+1:Kd ← Rr+1:Rd | Hiçbiri | 1 |
LDI | Yol, K | Hemen Yükle | Cad ← K | Hiçbiri | 1 |
LD | rd, X | Dolaylı Yük | Kd ← (X) | Hiçbiri | 2 |
LD | Rd, X + | Dolaylı ve Post-Inc yükleyin. | Rd ← (X), X ← X + 1 | Hiçbiri | 2 |
LD | Rd, - X | Dolaylı ve Ön Aralık Yükleme | X ← X – 1, Rd ← (X) | Hiçbiri | 2 |
LD | Yol, Y | Dolaylı Yük | Kd ← (Y) | Hiçbiri | 2 |
LD | Rd, Y + | Dolaylı ve Post-Inc yükleyin. | Rd ← (Y), Y ← Y + 1 | Hiçbiri | 2 |
LD | Rd, - Y | Dolaylı ve Ön Aralık Yükleme | Y ← Y – 1, Rd ← (Y) | Hiçbiri | 2 |
LD | Rd, Y + q | Yer Değiştirme ile Dolaylı Yük | Rd ← (Y + q) | Hiçbiri | 2 |
LD | Yol, Z | Dolaylı Yük | Kd ← (Z) | Hiçbiri | 2 |
LD | Rd, Z + | Dolaylı ve Post-Inc yükleyin. | Rd ← (Z), Z ← Z+1 | Hiçbiri | 2 |
LD | Yol, -Z | Dolaylı ve Ön Aralık Yükleme | Z ← Z – 1, Rd ← (Z) | Hiçbiri | 2 |
LD | Rd, Z + q | Yer Değiştirme ile Dolaylı Yük | Rd ← (Z + q) | Hiçbiri | 2 |
İsa Mesih'in Son Zaman Azizleri | rd, k | SRAM'den Doğrudan Yükleme | Rd ← (k) | Hiçbiri | 2 |
ST | X, R | Dolaylı Mağaza | (X) ← Rr | Hiçbiri | 2 |
ST | X +, Rr | Dolaylı ve Post-Inc depolayın. | (X) ← Rr, X ← X + 1 | Hiçbiri | 2 |
ST | - X, Rr | Dolaylı ve Aralık Öncesi Depolayın. | X ← X – 1, (X) ← Rr | Hiçbiri | 2 |
ST | E, Rr | Dolaylı Mağaza | (Y) ← Hayır | Hiçbiri | 2 |
ST | Y +, Rr | Dolaylı ve Post-Inc depolayın. | (Y) ← Rr, Y ← Y + 1 | Hiçbiri | 2 |
ST | - Y, Rr | Dolaylı ve Aralık Öncesi Depolayın. | Y ← Y – 1, (Y) ← Rr | Hiçbiri | 2 |
Cinsel yolla bulaşan hastalık | Y + q, Rr | Deplasmanla Dolaylı Depolama | (Y + q) ← Rr | Hiçbiri | 2 |
ST | z, rr | Dolaylı Mağaza | (Z) ← Rr | Hiçbiri | 2 |
ST | Z +, Rr | Dolaylı ve Post-Inc depolayın. | (Z) ← Rr, Z ← Z + 1 | Hiçbiri | 2 |
ST | -Z, R | Dolaylı ve Aralık Öncesi Depolayın. | Z ← Z – 1, (Z) ← Rr | Hiçbiri | 2 |
Cinsel yolla bulaşan hastalık | Z + q, Rr | Deplasmanla Dolaylı Depolama | (Z + q) ← Rr | Hiçbiri | 2 |
STS | k, R | Doğrudan SRAM'de Depolama | (k) ← Rr | Hiçbiri | 2 |
LPM | Program Belleğini Yükle | R0 ← (Z) | Hiçbiri | 3 | |
LPM | Yol, Z | Program Belleğini Yükle | Kd ← (Z) | Hiçbiri | 3 |
LPM | Rd, Z + | Program Belleğini ve Post-Inc'i Yükle | Rd ← (Z), Z ← Z+1 | Hiçbiri | 3 |
SPM | Program Hafızasını Kaydet | (z) ← R1:R0 | Hiçbiri | ||
IN | Yol, P | Limanda | Rd ← P | Hiçbiri | 1 |
DIŞARI | P, R | Çıkış Limanı | P ← Rr | Hiçbiri | 1 |
İTMEK | Rr | Yığın Üzerinde Push Register | Yığın ← Rr | Hiçbiri | 2 |
POP | Rd | Yığından Pop Register | Rd ← Yığın | Hiçbiri | 2 |
MCU KONTROL TALİMATLARI | |||||
Hayır | Hiçbir İşlem Yok | Hiçbiri | 1 | ||
UYUMAK | Uyumak | (Uyku işlevi için özel açıklamalara bakın) | Hiçbiri | 1 | |
WDR | Watchdog Sıfırlama | (WDR / Zamanlayıcı için özel açıklamalara bakın) | Hiçbiri | 1 | |
KIRMAK | Kırmak |
Hız (MHz) (1) | Tedarik Hacmitage(V) | Sıcaklık Aralığı | Paket (2) | Sipariş Kodu (3) |
10 | 1.8 – 5.5 | Endüstriyel
(-40 ° C ile + 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 | Endüstriyel
(-40 ° C ile + 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 |
Notlar: 1. Hız ve besleme hacmi içintage, bölüme bakın 21.3 "Hız" sayfa 163.
Tüm paketler Pb içermez, halojen içermez ve tamamen yeşildir ve Tehlikeli Maddelerin Kısıtlanması (RoHS) için Avrupa direktifine uygundur.
Kod göstergeleri
H: NiPdAu kurşun kaplama
U: mat teneke
R: bant ve makara
Bu cihazlar ayrıca gofret formunda da tedarik edilebilir. Ayrıntılı sipariş bilgileri ve minimum miktarlar için lütfen yerel Atmel satış ofisinizle iletişime geçin.
baskı hatası
Hata ATtiny25
Bu bölümdeki revizyon mektubu, ATtiny25 cihazının revizyonuna atıfta bulunmaktadır.
Rev D - F
Bilinen bir hata yok.
Rev B - C
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
Düşük saat frekanslarında ve/veya düşük besleme hacminde EEPROM okumaya çalışmaktage geçersiz verilerle sonuçlanabilir.
Sorun Düzeltme / Geçici Çözüm
EEPROM'u saat frekansı 1 MHz'in altındayken ve besleme volümü altındayken kullanmayın.tage, 2V'nin altındadır. Çalışma frekansı 1 MHz'in üzerine çıkarılamıyorsa, besleme hacmitage 2V'den fazla olmalıdır. Benzer şekilde, eğer arz hacmitage 2V'nin üzerine yükseltilemez, bu durumda çalışma frekansı 1MHz'den fazla olmalıdır.
Bu özelliğin sıcaklığa bağlı olduğu bilinmektedir, ancak karakterize edilmemiştir. Yönergeler yalnızca oda sıcaklığı için verilmiştir.
Rev A
değilampLED.
Hata ATtiny45
Bu bölümdeki revizyon mektubu, ATtiny45 cihazının revizyonuna atıfta bulunmaktadır.
Rev F - G
Bilinen bir hata yok
Rev D - E
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
Düşük saat frekanslarında ve/veya düşük besleme hacminde EEPROM okumaya çalışmaktage geçersiz verilerle sonuçlanabilir.
Sorun Düzeltme / Geçici Çözüm
EEPROM'u saat frekansı 1 MHz'in altındayken ve besleme volümü altındayken kullanmayın.tage, 2V'nin altındadır. Çalışma frekansı 1 MHz'in üzerine çıkarılamıyorsa, besleme hacmitage 2V'den fazla olmalıdır. Benzer şekilde, eğer arz hacmitage 2V'nin üzerine yükseltilemez, bu durumda çalışma frekansı 1MHz'den fazla olmalıdır.
Bu özelliğin sıcaklığa bağlı olduğu bilinmektedir, ancak karakterize edilmemiştir. Yönergeler yalnızca oda sıcaklığı için verilmiştir.
Rev B - C
PLL kilitlenmiyor
Uygulama kodundan okunan EEPROM Kilit Bit Modu 3'te çalışmıyor
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
OC1B-XOC1B'de Zamanlayıcı Sayacı 1 PWM çıkışı oluşturma düzgün çalışmıyor
PLL kilitlenmiyor
6.0 MHz'nin altındaki frekanslarda, PLL kilitlenmeyecektir.
Sorun düzeltme / Geçici Çözüm
PLL'yi kullanırken, 6.0 MHz veya daha yüksek bir hızda çalıştırın.
Uygulama kodundan okunan EEPROM Kilit Bit Modu 3'te çalışmıyor
Hafıza Kilit Bitleri LB2 ve LB1 mod 3'e programlandığında, EEPROM okuması uygulama kodundan çalışmaz.
Sorun Çözme / Çözüm Bulma
Uygulama kodunun EEPROM'dan okunması gerektiğinde Kilit Bit Koruma Modu 3'ü ayarlamayın.
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
Düşük saat frekanslarında ve/veya düşük besleme hacminde EEPROM okumaya çalışmaktage geçersiz verilerle sonuçlanabilir.
Sorun Düzeltme / Geçici Çözüm
EEPROM'u saat frekansı 1 MHz'in altındayken ve besleme volümü altındayken kullanmayın.tage, 2V'nin altındadır. Çalışma frekansı 1 MHz'in üzerine çıkarılamıyorsa, besleme hacmitage 2V'den fazla olmalıdır. Benzer şekilde, eğer arz hacmitage 2V'nin üzerine yükseltilemez, bu durumda çalışma frekansı 1MHz'den fazla olmalıdır.
Bu özelliğin sıcaklığa bağlı olduğu bilinmektedir, ancak karakterize edilmemiştir. Yönergeler yalnızca oda sıcaklığı için verilmiştir.
Zamanlayıcı Sayacı 1 OC1B'de PWM çıkışı oluşturma - XOC1B düzgün çalışmıyor
Zamanlayıcı Sayacı1 PWM çıkışı OC1B-XOC1B düzgün çalışmıyor. Yalnızca kontrol bitleri, COM1B1 ve COM1B0'ın sırasıyla COM1A1 ve COM1A0 ile aynı modda olması durumunda, OC1B-XOC1B çıkışı doğru çalışır.
Sorun Çözme / Çözüm Bulma
Tek çözüm COM1A [1: 0] ve COM1B [1: 0] kontrol bitlerinde aynı kontrol ayarını kullanmaktır, veri sayfasındaki tablo 14- 4'e bakın. Tiny45 rev D için sorun düzeltildi.
Rev A
Çok yüksek güç kapatma güç tüketimi
DebugWIRE, kesintilere tek adım atıldığında iletişimi kaybediyor
PLL kilitlenmiyor
Uygulama kodundan okunan EEPROM Kilit Bit Modu 3'te çalışmıyor
EEPROM okuması düşük besleme hacminde başarısız olabilirtage / düşük saat frekansı
Çok yüksek güç kapatma güç tüketimi
Üç durum, çok yüksek bir güç kapatma güç tüketimine yol açacaktır. Bunlar:
Sigortalar tarafından harici bir saat seçilir, ancak G / Ç PORTU hala bir çıkış olarak etkindir.
EEPROM, güç kesilmeden önce okunur.
VCC 4.5 volt veya daha yüksektir.
Sorumluluk Reddi: Bu belgedeki bilgiler Atmel ürünleri ile bağlantılı olarak verilmiştir. Bu belge tarafından veya Atmel ürünlerinin satışı ile bağlantılı olarak, herhangi bir fikri mülkiyet hakkı için, itiraz hakkı veya başka bir şekilde, açık veya zımni hiçbir lisans verilmemektedir. ATMEL ÜZERİNDEKİ SATIŞ HÜKÜM VE KOŞULLARINDA BELİRTİLENLER HARİÇ WEBSİTE, ATMEL HİÇBİR HİÇBİR SORUMLULUK KABUL ETMEZ VE ÜRÜNLERİYLE İLGİLİ, SATILABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VEYA İHLAL ETMEME İLE İLGİLİ ZIMNİ GARANTİLER DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE HERHANGİ BİR AÇIK, ZIMNİ VEYA YASAL GARANTİYİ REDDEDER. ATMEL HİÇBİR DURUMDA KULLANIMDAN VEYA KULLANILAMAMADAN KAYNAKLANAN HERHANGİ BİR DOĞRUDAN, DOLAYLI, SONUÇSAL, CEZAİ, ÖZEL VEYA ARIZİ ZARARLARDAN (SINIRLAMA OLMAKSIZIN ZARAR VE ZARARLAR, İŞİN KESİNTİSİ VEYA BİLGİ KAYBI DAHİL OLMAKSIZIN) SORUMLU OLMAYACAKTIR. BU BELGE, ATMEL'E BU TÜR ZARARLARIN OLASILIĞI KONUSUNDA BİLGİLENDİRİLMİŞ OLSA DAHİ.
Atmel, bu belgenin içeriğinin doğruluğu veya eksiksizliği ile ilgili hiçbir beyanda bulunmaz veya garanti vermez ve özelliklerde ve ürün açıklamalarında herhangi bir zamanda bildirimde bulunmaksızın değişiklik yapma hakkını saklı tutar. Atmel, burada yer alan bilgileri güncelleme taahhüdünde bulunmamaktadır. Aksi özellikle belirtilmedikçe, Atmel ürünleri otomotiv uygulamaları için uygun değildir ve bu uygulamalarda kullanılmamalıdır. Atmel ürünleri, yaşamı desteklemeye veya sürdürmeye yönelik uygulamalarda bileşen olarak kullanılmak üzere tasarlanmamıştır, yetki verilmemiştir veya garanti edilmemiştir.