Atmel

8/2/4K Bayt Sistem İçi Programlanabilir Flaşlı Atmel 8-bit AVR Mikrodenetleyiciçip

 

Ö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 Yapılandırma

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ı Blok diyagramı

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 Mimarlık

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. Genel amaçlı

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.

Kayıt olmak

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

Ş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

Şekil 4.5

İş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ı Bellek 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ı Hafıza haritası 2

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 Çip verileri hakkında 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ı

Saat dağılı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. PCK saat ölçümü

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 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ı

Şekil 6.4

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ığı 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 Şekil 8.4

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. Şekil 8.5

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ı Bekçi köpeği

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ı

Şekil 10

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)

Şekil 10

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

RSTDİSK(1) • BEKLEME(1)

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
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
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
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.

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *