Hızlı AVR şeması. AVR Mikrodenetleyicilerinde Sigorta Bitleri

Mikroelektronika'daki hata ayıklama panolarının kullanımı için tasarım ve kılavuzların tasarımı tasarıma dayanıyordu. Bu şirket tarafından üretilen EasyAvr (sadece), bu şirketin ürettiği, üretim kalitesinin mikrodenetleyici tekniğini ve üzerine kurulu olan çeşitli bileşenlerin ustalığını çekin. Aslında, yarısı beş altı eğitim programının etkisini kontrol ettikten sonra gereksiz hale gelir, kendilerini varsaydılar, her portun her satırına bağlı birçok LED ve düğme var. Ancak, yalnızca sinyalleri ve flaş göstergelerini yönetmeyi öğrenene kadar bir deneyciye ihtiyaçları vardır ve bu oldukça hızlı olur. Kurulumda sadece dört LED ve bir anahtar var, başlamak için yeterli ...

FASTAVR adını verdiğim ücret ile geliştirildi. 98x127 mm boyutlarında ve tek taraflı basılı kurulum, evde yapmak için oldukça uygundur. Mikro-kireçler, yalnızca panelde takılan DIP kasalarına uygulanır, bu da onları deneme sürecinde değiştirilmesini kolaylaştırır. Mikrodenetleyici hem bir kuvars rezonatöründen hem de frekans saati yüklü saat jeneratöründen bir frekans bölücüsüne sahip olabilir, standart STK-200 programcısını seçici bir besleme ile ve JTAG'yi bağlayabilme olanağı ile bağlamak için bir konektör sağlanmıştır. Adaptör Gerekirse, çalışmak için tasarlanmış bir mikrodenetleyici programlayabilirsiniz. Başka bir cihazda.

Tahtada, hata ayıklanmış tasarımların ambalajlanması için en gerekli çevresel cihazlar vardır: iki bit yedi eleman LED göstergesi, sembolik LCD, RS-232, SPI, PS / 2 arayüzleri (standart bir bilgisayar klavyesini veya "fare bağlamak için ), EEPROM mikrodircisi, ses sinyal cihazı. Bu cihazların çoğunu, keyfi kombinasyonlardaki herhangi bir mikrodenetleyici bağlantı noktasının sonuçlarına bağlanmak mümkündür. Tüm bağlantı noktaları mevcuttur ve cihazların dışındaki aygıtları bağlamak için. Bir kuvars jeneratörü ve LED göstergeleri de dahil olmak üzere cihazlarda bulunan cihazlarda mevcut olan, bunların dışındaki cihazlara da bağlanabilir, tüm bu bağlantılar lehimleme gerektirmez ve gemide veya bunlar arasında veya harici cihazlar arasında olan bağlantılar arasında süveter yüklenerek gerçekleştirilir. .

Başlangıçta, neredeyse tüm doğal aileye (AVR) fırsatlara sahip olan ucuz bir mikrodenetleyici atmega8 olan bir hata ayıklama tahtası, ancak, aynı ailenin mikrodenetleyicisini dip kasada kaydetmemeye ve uygulama yapmamaya karar verdim. (40) - ATMEGA16 veya ATMEGA32. Sonuçların konumu aynıdır ve anlatılan tahtaya herkes yüklenebilir. Çok sayıda çıkış, programı hata ayıklama yaparken gerekli olabilecek daha fazla farklı çevreci aygıtları bağlamanızı sağlar. AVR ailesinin mikrodenetleyicileri programsal olarak uyumlu olduğundan, daha güçlü bir programa sadık, bir kural olarak, elbette, farklılıkları, daha az güçlü bir düşünceye geçmek için kolaydır.

Hata ayıklama kartına monte edilen mikrodenetleyicinin aynı örneğinde, birçok farklı program hata ayıklanabilir. Yazılım (FLASH) Modern mikrodenetleyicilerin hafızası, programda hata ayıklama işleminde sayısız değişiklik yaparken, bu, bunun ilk belirtileri göründüğünde bile kaynağın olası tükenmesi hakkında düşünemezsiniz ( Bazı bellek hücreleri ilk defa programlanmamıştır) Mikrodenetleyici, hata ayıklama kartına harcanan, atmamalısınız. Son zamanlarda programlanabilir, daha önce köklü yapılardan birine "kalıcı bir iş için" gönderilebilir.

FASTAVR kartının ana düğümünün şeması, Şekil 2'de gösterilmiştir. 1. Çevresinin tüm bağlantısı DD2 mikrodenetleyicinin bağlantı noktalarına, çift sıra 16-pin HR1-XP pim pimleri ile gerçekleştirilir. Her birinin pimleri bile mikrodenetleyici bağlantı noktalarının çıkışlarına ve tuhaf - tahtadaki mevcut çevresel aygıtlar. Bitişik pimi hata ayıklamak için bir düzen montaj yaparken, geleneksel jumperlere uygun şekilde bağlanır ve söküldüğünde, başka bir blokta, hatta başka bir tahtada bile, jakların her iki ucunda da donanmış esnek yalıtımlı telin segmentlerinden atlama telleridir. Konnektörler (Şekil 2). Yuvalarda, ısıyla daralan tüpler monte edilir.


Aynı pimlere hata ayıklama işleminde, kontrol ve ölçüm cihazlarını bağlamak için uygundur: osiloskop, frekans ölçer, test sinyalleri jeneratörü. Port Kategori Numarasını artırmanın sırasındaki pinlerin konumu, sağdaki aramayı kolaylaştırır ve karıştırmanın riskini önemli ölçüde azaltır. Böyle bir çözüm, bence, on yıllarca etkileşimli iki sıralı IDC-10 konnektörlerinin dış bağlantıları için en endüstriyel hata ayıklamalarında kullanmaktan çok daha uygundur. Tek avantaj, konektörün bağlantı parçası ile doğru yerleştirmeyi sağlayan bir anahtarın varlığıdır. Ve tek bir teli veya ölçüm cihazının probunu bağlarken, her seferinde temasları göz önünde bulundurmanız, mikrodenetleyicinin sonuçlarına uygunluğunun sırasını hatırlatarak gereklidir.

S2-S4 süveterleri çıkarılırsa, bir S5 ve S6 yüklenirse, bir kuvars rezonatörü ZQ1, bir mikrodenetleyicinin dahili bir saat jeneratörüne bağlanır, frekansın çözülmesi için gerekli olan herhangi bir şekilde seçilebilecek. Kurul ayrıca 16 MHz için bir integral kuvars jeneratörü G1 sahiptir. DD1 çip tetikleyicileri frekansını iki ve dörde böler. Jumper S5, S6'yı çıkardıktan ve S2-S4 süveterlerinden birini taktıktan sonra, mikrodenetleyicinin (çıkış 13) darbeleri 4, 8 veya 16 MHz ile saat girişine sunmak mümkündür. Bu, mikrodenetleyicinin, iç saatin RC jeneratörünün kapatıldığı herhangi bir konfigürasyonla çalışmasını sağlayacaktır.

Harici bir jeneratörden bir saat yararlı olabilir ve mikrodenetleyicinin performansını geri yüklemek için, yapılandırması hatalı bir şekilde istenir. Bunu okuyabilirsiniz.

Mikrodenetleyici kendi uçucu olmayan veri belleğini içermesine rağmen, genellikle sağlam bir görev için yetersizdir. Sorun, istenen hacmin harici bellek mikrokirbüsünün mikrodenetleyicisine bağlanarak çözülebilir. FASTAVR kartında, bu, Şekil 2'de gösterilen şemaya göre yapılır. 3 DS1 Çip 24C veya 24LC serisi - I2C arayüzü ile yeniden programlanmış uçucu olmayan hafıza. AO-A2'nin girişleri, arayüz veriyolu üzerindeki adres LED'in gençleştirilmesinin 1'dir ve ardından aşağıdaki iki sıfır olduğu şekilde bağlanır.

İncirde. Şekil 4, FastAvr Kontrol Kurulu ve Göstergesinde bulunan şemayı gösterir. Dörtlü DIP şalteri SA1, mikrodenetleyici bağlantı noktalarının sonuçlarına bağlanır. R4-R7 dirençleri, kapalı anahtarlar olduğunda aşırı yük çıkışları olarak rastgele programlandıkları durumlarda bu sonuçları korur. DR1 montaj direnceleri, SA1.1-SA1.4 anahtarları açıkken mikrodenetleyici girişlerinde yüksek mantıksal bir seviye destekler. Beşinci "ekstra" montaj direnci de böyle bir seviye herhangi bir zincire göndermek için kullanılabilir.
Dört HL1 -HL4 sinyal LED'i, bağlı oldukları çıkışlar üzerinde yüksek mantıksal seviyelerde parlıyor ve düşük değil. Dirençler R8-R11 akımı sınırlandırır.

VT1-VT4 transistörlerinde toplanan iki boyutlu yedi eleman LED göstergesinin hg1'in ortak elektrotlarının anahtarları. Hem yaygın anotlarla (örneğin, DA56-11) ve elementlerin ortak katotlarıyla göstergeleri kontrol edebilirler (örneğin, DC56-11), yalnızca R12-R21'e verilen yazılım oluşturulan kontrol darbelerinin gerekli kutuplarını sağlamanız gerekir. dirençler. Bu tür göstergeler, nakit kayıtlarında ve sistem bloklarında bulmak kolaydır. S7 atlamayı çıkardıktan sonra, HG1 göstergesinin alt boşalmasının H (ondalık noktası) öğesini devre dışı bırakabilirsiniz.

XP5 konektörü, dahili kontrol cihazlarına sahip ortak sembolik LCD'nin FASTAVR kuruluna bağlanmak için kullanılır. Aslında, bu iki sıralı 34 pinli IDC-34MS konektörüdür, ancak yalnızca bir satırın 17 kişinin sadece 14'ü kullanılır. Diyagramda gösterilen sayıları bunun için standart konektöre karşılık gelmiyor, ancak en yaygın LCD'nin bulgularıyla çakışıyor. Böyle bir konektörün varlığı, esnek disklerin sürücüsünü bağlamak için tasarlanmış standart bir bilgisayar 34-sulu düz kablo ile gösterge ile iletişim kurmak için kullanmanıza izin verir. anakart. LCD'nin arayüz temas sitelerinin açıklıklarında, bunlara 14 pinli bir tutam bloğa yerleştirilir ve lehimlenir. Bir konektör üzerine kondu düz kabloİkincisi, XP5 konektörüne yerleştirilir. İletişim Binlerce, mikrodenetleyici bağlantı noktalarının çıkışlarına, hata ayıklama cihazındaki dahil etme şemasına göre bağlanır. Bağlı göstergeli tahta, Şekil 2'de gösterilmiştir. beş.

LCD'yi birbirine bağlama yöntemi nispeten karmaşıktır, ancak göstergeler için uygundur. farklı şekillerAynı Cocoovka'ya sahip olan, sonuçlarını, sonuçlarını mikrodenetleyicinin bağlantı noktalarıyla karıştırılması riskiyle hızla değiştirebilirsiniz. R23 Hızlı Direnç, kontrast regülatörü olarak hizmet eder.

Sessiz sinyal cihazı B1, bilgisayar anakartında bulunan 80 ohm dirençli bir elektromanyetik vericisidir. VD1 diyot, nabız voltajı ile güçlendirildiğinde alarmın sinyalinde ortaya çıkan öz-indüksiyon voltaj emisyonlarını bastırır. Ses seviyesini artırmak için R22 Direnç R22'yi azaltın, olmamalıdır. Bu, bir mikrodenetleyici çıkışına yol açacaktır.

Küçük konsey. Üretim programı prosedürünün sonunda unutmayın ses sinyali Bir komut ayarı gönderin düşük seviye PD7 mikrodenetleyicinin çıktısında. Buradaki seviye yüksekse, B1'in yayıcı boyunca akım akışına devam edecek ve bir mikrodenetleyici tarafından enerji tüketiminde genel bir artışa yol açacak, sinyaller arasında durur.

Şema harici arayüzler Hata ayıklama kartı, Şekil 2'de gösterilmiştir. 6. XS1 konnektörüne, bağlanabilirsiniz bilgisayar klavyesi veya "fare" ve XS2 konnektörünü bilgisayarın COM portuyla bağlayın. Tipik şemaya göre yer alan DA1 mikrokirbesi, RS-232 sinyallerinin seviyelerini ve bir mikrodenetleyici seviyelerini koordine eder. S8-S10 süveterleri, yalnızca bilgiyi değil, aynı zamanda hata ayıklamalı cihazdaki RS-232 arayüzünün kontrol sinyallerini de kullanmanız gerekirse, kesilebilecek baskı iletkenlerinin ince bölümleridir.
L1-L5 chokes, yüksek frekanslı girişimleri bastırır. Bunlar tellerde küçük ferrit tüplerdir. Bilgisayar panolarında böyle kolayca bulun.

FastAvr kartına yüklenen bir Microcontroller program kodlarını yüklemek için, XP6 konektörü programcıya bağlanır. Bununla birlikte çalıştıkları zaman, jumper S1 (bkz. Şekil 1), Mikrodenetleyicinin ilk kurulumunun tahtadaki ilk montajını kapatarak çıkarılması önerilir. Programcının kendi güç kaynağı varsa, S1GU'yu S11'i çıkarmak gerekir. Yüklendiğinde, programcı hata ayıklama kurulu tarafından desteklenmektedir.

STK-200'e benzer bir programcı kullandım. Devre kartı şeması ve çizimi Şekil 2'de bulunabilir. 8 ve 9 V. Bu programcada, bilgisayarın LPT portuna yalnızca bir KR1564AP5 çip (74HC244AN) bağlanır. Kuvars rezonatörünü programlayıcıda takın gerekli değildir, hata ayıklama kartındadır. Core2duo + İşlemci ile bir bilgisayarda bu programcı ve Ponyprog programı ile çalışırken, 1965 yonga seti ve işletimi windows sistemi XP SP3 Hiçbir sorun ortaya çıkmadı.

Hata ayıklama tahtası koleksiyonunun devresi, Şekil 2'de gösterilmiştir. 7. 3 xp7 konektörü ile temas dış kaynak Stabilize edilmiş bir voltaj +5 V. Süveter S12'yi gönderebilirsiniz, S13 kaldırılmalıdır. 9 ... 16 V sabit bir voltajın kaynağı varsa, pozitif çıkışı aynı konnektörün 2'nin temasına ve monte edilmiş jumper S12, S13'e bağlanır. Bu durumda, harici stabilize voltaj gerekli değildir, DA2 integral stabilizatörü kullanılarak elde edilir.

HG1 LED'i kullanılmazsa ve herhangi bir harici cihaz tahtaya bağlı olmadığında, DA2 stabilizatörünün sıcaklığı küçüktür. Eğer, ısı emici varlığına rağmen, stabilizatör güçlü bir şekilde ısıtılır, harici bir güçlü voltaj kaynağından 5 V, HL5 LED'i sinyaller varlığında, yeterince güçlü bir voltaj kaynağı 5 V ile geçiş yapılması önerilir.

VD2 ve VD3 diyotları, güç kaynağının yanlış kutuplarından korur. Throtes (ferrit borular) L6 ve L7 yüksek frekanslı girişim bastırır. CT12-X17 (+5 V) ve HT18-HT22 (toplam) ve HT18-HT22 (toplam) ve HT18-HT22 (toplam) çeşitli harici cihazlarda kullanılabilir. Ek olarak, HT18-HT22 kontakları, genel ölçüm cihazlarının genel telini rahatça bağlar.

Devre kartının çizilmesi, Şekil 2'de tasvir edilmiştir. 8. 1,5 mm kalınlığa sahip bir folyo fiberkerinin tek taraflıdır. Yalıtımlı teliden iki jumper kaydırılmış çizginin basılı iletkenlerden takıldığını unutmayın. Gerisi telden izolasyon olmadan yapılır ve kısmen tarafta bulunur. DA1, DD1, DD2, DS1 cipsleri ve HG1 LED göstergesi için panel tahtaya yüklenir, bu da gerekirse bu öğeleri hızlı bir şekilde değiştirmenize olanak sağlar. Ferrit tüplerinin yokluğunda, chokes L1-L7 yerine, atlama tellerini takabilirsiniz.

XS1 konnektörünün yanında, XSV tarafından belirtilen bir başka konektör için bir iniş alanı var. Sonuçları hiçbir yerde bağlı olmasa da, bir çift MDN-6F soketini bir bilgisayar anakartıyla kolayca kurmanıza olanak tanır. XS2 konnektörü - DB-9F soketi.

CHR1-HR4 PIN, HT1 -HT22 pimleri ve S1 - S7, S11-S13'ün montajı için tasarlanmıştır, PLD serisinin veya tek sıralı pls serisinin iki sıralı konektöründen yapılmıştır. İstenilen sayıda kişiyi elde etmek için, karşılık gelen uzunluktaki bölümlerden ayrılırlar veya eksik kontaklar içeren segmentler eklenir.

Lütfen, PT4-HT11 pimleri için iletişim sitelerinin yanında ücretsiz iletişim pedleri olduğunu unutmayın. Bu, burada sık sık önerilerek "gevşeme" konusu olmayan iki sıralı pin bloğu takmanıza izin verir. Hakkında KHR5 konektörü (IDC-34MS) daha önce dedi. XP6 konektörü (programlayıcı için), aynı serideki on yıldır (IDC-10MS). Üç pimli XP7 güç konektörü, fanı bağlamak için kullanıldığı anakarttan çıkarılır. Bu, güç kaynağı kartına bağlanmak için tasarlanan konektörün cevabını araştırmakta sorununu çıkardı.

Kurulun alt kısmında (çizime göre), temas siteleriyle dolu bir dikdörtgen alan vardır - hata ayıklama sırasında gerekli olabilecek her tür ek öğeyi yerleştirmek için bir rezerv. Benim tarafımdan yapılan ödemelerde, örneğin, 22 com olan bir değişken direnç, örneğin bir değişken direnç. +5 V voltajı ile dolduruldu ve Mikrodenetleyici ADC'sini kontrol etmek için motordan çıkarılabilir ayarlanabilir ayarlanabilir.

RS-232 arayüzü, hata ayıklama sırasında kullanımı çok kullanışlıdır ve bu da Programı USART Microcontroller aracılığıyla gerekli bilgileri gönderen modüle ekler. Bilgisayarda çalışan, Hata ayıklama kartının XS2 konektörünü bağlayan bir COM-Port ile Terminal programı, alınan mesajları izleyebilirsiniz.


İnternette bulunabilecek terminal V1.9b programını kullandım. arama motoru. Bu programın penceresi, cihazdan alınan mesajların örnekleri ile hata ayıklanır ve iletilir, Şekil 2'de gösterilmiştir. 9. Rus metninin normal bir görüntüsü için, "Yazı Tipi Set" düğmesine tıklamanız gerekir, açılan penceredeki yazı tipi - Arial'ı seçin - normal boyut 8'dir, sembol kümesi Kirildir.

Sprint Layout 5.0 formatında PCB dosyası ve düğüm tahtası üzerinde bulunan çalışmaları gösteren programların örnekleri:

EDEBİYAT
1 Baranov V. AVR mikrodenetleyicilerinin yapılandırmasının kurtarılması. - Radyo. 2009, № 11, s. 26-29.

S. Borisov, Knotovaya Tula Bölgesi.
Radyo No. 8-9 2010.

Herhangi bir cihazın kontrolünü kullanmak genellikle gereklidir (Akkor ampul, motor, bir tan veya basit bir LED) PWM üzerindendir.

Muhtemelen ne olduğunu açıklayın ve Shim Kontrolünün cazibesinin gerekli olmadığı, internette zaten çok fazla bilgi var ve bu konuyu daha iyi aldatması mümkün değil. Bu nedenle, derhal işle devam edeceğiz, yani PWM'yi ATININY2313 BASCOM-AVR vasıtasıyla başlayacağız.

PWM B. aVR mikrodenetleyicileri Sayaçların zamanlayıcıları üzerinde çalışır, sadece 2313 mk bu gibi zamanlayıcıların Tiny2313 mk'sinde, 65535'e kadar sayılabilir 255 ve 16 bit zamanlayıcıya kadar. Her zamanlayıcı, iki PWM kanalını kontrol eder, böylece tüm donanımlar olabilir. 4 kanalın birçoğu kadar uygulanmalıdır.

PWM kanallarının sayısı ve her bir kanalın boşalması hakkında bilgi, verihetin sayfalarında mikrodenetleyiciye kaydırılabilir.

Böylece, ATININY2313'te, Timer0'dan 8 bitlik iki kanal kanalları vardır ve Timer1 zamanlayıcısının çalıştırılması, 8 ila 10 bit arasında bir programlanabilir biti vardır. Veriçinde, bu bacaklar aşağıdaki gibi imzalanır:

Timer1 zamanlayıcısını BASCOM'da PWM oluşturmak için yapılandırmak için, aşağıdaki satırı yazmak yeterlidir:

CONFIG TIMER1 \u003d PWM, PWM \u003d 8, bir PWM'yi karşılaştırın \u003d temizleyin, B karıştırın PWM \u003d clear aşağı, prescale \u003d 64

PWM \u003d 8 PWM biti seçer, zamanlayıcı için yukarıda yazıldığı gibi, ayrıca PWM \u003d 9 veya PWM \u003d 10 olabilir.

A / B'yi Karşılaştırın PWM \u003d Sil / Clear Burada, her bir PWM kanalı için (A ve B) için aktif durumu yapılandırın.

Prescale \u003d 64 - Zamanlayıcı taşması frekansının ön bölünmesinden sorumlu olan zaten tanıdık zamanlayıcı yapılandırma dizgisi bu durum Bölücü, PWM sıklığını ayarlayacaktır. Biz takdir yetkinizde değişiklik yapabiliriz \u003d 1 | 8 | 64 | 256 | 1024


Oluşturulan sinyalin görev döngüsü, OCR1A ve OCCR1B karşılaştırma kayıtlarına yazdığımız değerle belirlenir (iki kanalımız var, bir zamanlayıcıda iki kanalımız var, A ve B kanalına bir kayıt). Bu kayıtlarda yatan değerler sayesinde sayma kayıtlarının değerini sürekli olarak karşılaştırır (zamanlayıcıya kopyalanır), çakıştığında, MK ayak aktif durumuna geçer ve sayma kaydı okumaya devam ediyor maksimum değer. Maksimum olarak incelenen, zamanlayıcı sayılmaya başlar ters yönve sayma kaydının değerlerine ve karşılaştırma kaydının değerlerine tekrar ulaşana kadar tekrar ulaşmaya devam edecektir, mikrodenetleyicinin ayağına geri döner (aşağıdaki şekle bakın).



Bizim için OCR1A ve OCCR1B karşılaştırma kayıtları sadece bir değer verebileceğimiz sadece değişkendir. Örneğin, şöyle:


OCR1A. = 100
OCCR1B \u003d 150.


Kolaylık sağlamak için bir ziyafette, bu kayıtların bir başka adı da aşağıdadır: PWM1A ve PWM1B, bu nedenle önceki çizgiler aşağıdaki gibi eşdeğer olacaktır:


Pwm1a. = 100
Pwm1b \u003d 150.

Şimdi, Clear UP / Clear Down'ın aktif durum konfigürasyonunun, karşılaştırma kayıtlarına bağlı olarak PWM çıkışında neler olup bittiğini nasıl etkilediğini anlayacağız.

Çıkış, bir PWM'yi karşılaştırdığında yapılandırıldığında \u003d aktif çıkış durumunu temizleyin, yüksek bir seviyedir ve OCR (PWM) kayıt değerindeki bir artışla, bu bacaktaki orantılı voltaj büyüyecektir. Doğruluk ile, aksine, çıktı bir PWM'yi karşılaştırın gibi yapılandırıldığında her şey olacaktır. Bütün bunlar aşağıdaki resimde iyi gösterilmiştir.



Bu karşılaştırma kayıtlarının Shim kanalının nasıl yapıldığını üstlenebileceği değerler. PWM \u003d 8'de (8-bit PWM), 0 ila 255 arasında mümkündür; PWM \u003d 9'da 0 ila 511; PWM \u003d 10 ile 0 ila 1023 arasında. Burada her şeyin açık olduğunu düşünüyorum.


Şimdi küçük bir örnek: LED'leri diyagramda gösterildiği gibi mikrodenetleyiciye bağlayın (diyagramdaki MK'nın gücü belirtilmemiştir)


Ve küçük bir program yazın:


$ crystal \u003d 4000000

CONFIG TIMER1 \u003d PWM, PWM \u003d 9, PWM \u003d CLEAR AŞAĞIDAK, B Karşılaştırın PWM \u003d Clear Up, Prescale \u003d 8
Config portb.3 \u003d çıktı
Config portb.4 \u003d çıktı

İncreton pwm1a. "Karşılaştırma Kalaşımını sorunsuz bir şekilde arttırın OCR1A
İncreton pwm1b. "OCR1B karşılaştırma kayıtlarının değerini sorunsuz bir şekilde arttırın

Waitms 20. "Gecikme ekle

Döngü.

Son.

Programı denetleyiciye derledikten ve parlattıktan sonra, LED'lerden biri (D1), düzgün bir şekilde parlaklığı ve diğerini (D2) sorunsuz gidin.


Şimdi PWM veriminde osiloskopu dürtünse, böyle bir resmi değiştiren bir bakliyat birimi (OS1A'da kırmızı, kırmızı sinyal, OS1V üzerindeki kırmızı) görebiliriz:


Timer0 Zamanlayıcı Yapılandırması PWM oluşturmak için, neredeyse aynı, bu zamanlayıcı0 hariç, 8 bitlik bir zamanlayıcıdır ve bu nedenle bu zamanlayıcı tarafından üretilen PWM her zaman 8'ine sahip olacaktır. Bu nedenle, bu zamanlayıcıyı yapılandırın, PWM biti belirtmez:

CONFIG TIMER0 \u003d PWM, bir PWM'yi Karşılaştırın \u003d Clear Up, B Karşılaştırması PWM \u003d Clear aşağı, Prescale \u003d 64



Şimdi LED'lere benzer bir örnek, ancak şimdi PWM Timer0 ile üretilecek:


$ regfile \u003d "attiny2313.dat"
$ crystal \u003d 4000000

Config timer0 \u003d pwm, bir PWM'yi karşılaştırın \u003d clear aşağı, B'yi karşılaştırın PWM \u003d Clear Up, Prescale \u003d 8
Config portb.2 \u003d çıktı
Config portd.5 \u003d çıktı

İncreton pwm0a " oCR0A kaydının değerini sorunsuz bir şekilde artırın
İncreton pwm0b " oCR0B kaydının değerini sorunsuz bir şekilde arttırın

Waitms 20. "Gecikme ekle

Döngü.

Son.

LED'leri, diyagramda gösterildiği gibi Zamanlayıcı0 PWM çıkışına bağlayın:

Her şey benzer: İlk LED (D1) sorunsuz bir şekilde parlaklık kazanacak ve ikinci (D2) sorunsuz bir şekilde dışarı çıkacaktır.


Şim Nesil Frekans Sayımı

Dişli üretimi sıklığını bulmak istiyorsanız, o zaman zor değil. Aşağıdaki formüle bakın:

PWM Frekans \u003d (Kuvars Frekansı / Ofset) / (Sayma Kayıt Boyutu * 2)

Örneğin, birkaç değeri hesaplayacağız:

1. Kuvars Frekans \u003d 4000000 Hz, Ofset \u003d 64, PWM Bit 10 bit \u003d\u003e Sayma Kayıt Boyutu \u003d 1024

PWM frekansı \u003d (4000000/64) / (1024 * 2) \u003d 122 Hz

2. frekans kuvars \u003d 8000000 hz, ofset \u003d 8, PWM bit 9 bit \u003d\u003e Sayma Kayıt Boyutu \u003d 512

PWM frekansı \u003d (8000000/8) / (512 * 2) \u003d 976,56 Hz

3. Kuvars Frekansı 16000000 Hz, Ofset \u003d 1, PWM Bit 8 bit \u003d\u003e Kayıt sayımı Boyut \u003d 256

PWM frekansı \u003d (16000000/1) / (256 * 2) \u003d 31250 Hz

ATMEL MK Programlamadaki yeni başlayanlar için FastAvr Evrensel Hata Ayıklama Kurulu, yaklaşık bir düzine benzer tasarımın bir analizine dayanmaktadır. Ücret, çoğunun yedek işlevselliği arasında veya başkalarının çok ilkel özellikleri arasında makul bir uzlaşmadır. Farklı mikroişlemci sistemleriyle çalışma konusunda bazı deneyime sahip olmak, aşağıda düşüncelerim hakkında yorum yapacağım, - biri veya başka bir tahta düğümü tasarlandı. Onlara katıl ya da değil - işiniz, ancak kısmen gelecekte AVR'yi Usta için yararlı olacaktır ...

Tasarımın tasarımı, mikroelektroniğin gelişimine ve saldırılarına dayanıyordu (http://www.mikroe.com/ru/). Ancak EasyAvr Ücretleri (sadece değil), mikroişlemci ekipmanlardaki yeni gelenlerin değişken ve kalitesinden etkilenen çok fazla bileşen içeriyor, aslında, yaklaşık 5-6 program örneğinin başarılı bir derlenmesinden sonra gereksiz hale gelir ve deneyim kazanıyor. Neden her limana bağlı bir sürü LED ve düğmeye ihtiyacınız olduğunu düşünüyor musunuz? Bütün bunlar, limanın limanlarını nasıl kontrol edeceğinizi ve göstergeleri atmayı öğrenmezken, bu çok hızlı bir şekilde gerçekleşir ;-) Bu durumda tahtada 4 LED vardır ve anahtar oldukça yeterlidir ...

Böylece, hata ayıklama kartı olanakları:

  • aTMEGA desteği için ana çevre seti: RS-232 Converter, BIPER, SPI EEPROM, LCD ve LED Göstergeleri, Dahili Saat Jeneratörü + Kuvars, PS-2 Klavye, ADC Test Cihazı, Mantık Test Cihazları;
  • evde tekrarlayan, tek taraflı baskılı devre kartı, lazer-demir teknolojisi, küçük boyut için optimize edilmiştir;
  • tüm bileşenleri yalnızca DIP muhafazalarında uygulamak, onları deneylerde değiştirmeyi veya işlemciyi diğer şemalar için (örneğin JTAG için) programlamayı kolaylaştırır;
  • aygıtların basit prototipleri oluşturmak ve bunları hata ayıklamak için tam fonksiyonel yeterlilik;
  • programcıya seçici güç kaynağına sahip standart SPI SPI SPI konektörü, yeteneği harici bağlantı Jtag;
  • jTAG Buz modunda tahtayı basit bir tavsiyede olanak sağlama yeteneği;
  • tüm MK portlarının bulunduğu yerinin doğrusal teknolojisi nedeniyle periferin bağımsız anahtarlama olasılığı;
  • herhangi bir harici periferik ve kullanımın% 100'ün DIP-40'a göre% 100'ün kolay bağlanması olasılığı, tüm bağlantı noktalarında bigner, ayrıca, tahtanın tüm iç çevre birimleri harici cihazlar için kullanmanıza izin verir (örneğin, bir saat jeneratör veya LED göstergeleri;

Tüm bunlar, ücretlerin veya lehimleme işlemlerinin iyileştirilmesine gerek yoktur. Yani Fastavr'ın MK olanaklarının gelişiminin ilk aşamasında yeterince yeterliydi. Kendi yazılımının yaratılmasından sonra devam etmek isteyen biri, bağımsız olarak özel olarak ihtiyaç duyduğu ve tasarımın prototipini kendi çevre birimleri ile yapması gerektiğine karar verebilir. Bir kez daha, makbuz, MK AVR'nin çalışmasına başlamak için oluşturulur, kimse zulmedilmemiştir. Belgelerinin kendisinin görünümü, birçok yeni başlayanların geliştiği ilgi ile ilişkilidir. bu tip Denetleyiciler veya hala nerede başlayacağınızı düşünün. Ve test ücreti ile doğal olarak başlamanız gerekir ;-)

Bununla birlikte, MK AVR-Kendi kendine yeten kontrolcüler, işlemci tüm sistem değildir. Onlar tarafından hizmet veren veya kontrol edilen "küpler", tek başına gelecekteki yapıların ayrı blokları olarak görülebilir. Onları ana kartta birleştirerek, gerekli sonuçları birleştirerek hepinize bir araya gelebilirsiniz. İlk başta, ücret atmega8 temelinde tasarlandı, çünkü O ucuz ve hemen hemen tüm AVR yetenekleri var. Bununla birlikte, tavsiyeyi gezdirin, mikrodenetleyici-ATMEGA16 mikrodenetleyiciyi dip-muhafaza veya 32'de erişilebilir olarak kaydetmemeye ve koymamaya karar verdim. Böyle bir çözeltinin yüzdüsü ile maliyeti, en azından hata ayıklama süresi için bağlanabilecek G / Ç bağlantı noktalarının sayısı ile ödeme yapar. Tüm nesiller için aşağıdan yukarıya uyumluluğu AVR, daha güçlü bir çip kullanarak programları yazmanıza ve hata ayıklamanızı ve ardından hedef kristal için bir derleme yapmanızı sağlar. Flash'ın yeterli kaynağı, MEGA'nın yeniden programlanması olanaklarının, özellikle de yeterince çalışmanın mümkün olduğundan, MK'yi iş tasarımına yaşamaya, son kez dikiş yapmanın mümkün olduğu için "doldurma" etmemesini sağlar. (Jtag Buz ilk meydan okuyucusudur)

Tahtanın imalatı için, herhangi bir elektronik depolama odalarında yeterli olan uygun bir bilgisayar "çöp" in biraz sürecek. Çoğu bileşen eski veya reddedilenden uygulanır. anakartlar IBM PC veya yakın zamanda bilgisayar teknolojisi, yakın zamanda bu tür demir daha fazla sökme ve kullanmadan atılmıştır. Çünkü SMD küçük şeylerle, pratik olarak hiçbir şey yapacak bir şey yok (sorunu ve zamanı ayırın ...), bu tür cihazları tamamen veya bir inşaat saç kurutma makinesi veya elektrikli bir sobayı çıkarıyorum.

Aşağıdaki FASTAVR'nin ana tanımı engelleniyor:

Gıda. Dahili stabilizatör, 78 (m) 05'te, genellikle boşta kalan diğer ekipmanlardan alınan, yaygın adaptörlerden 9-12V'den bir ücret açmanıza olanak sağlar. Bunun her zamanki dahil edilmesinde, tipik bir 7 segment LED'i kullanırken yeterli (MEG-16/32 + LCD + RS232 + TXO) veya oldukça makaralı bir harici çevre (karmaşık programcı), dengeleyici zaten çok sıcak. Harici bir stabilize voltaj + 5V bağlama PIN-3 x1 (matthew soğutucularından gelen konektör) için mümkündür). Önceden, VCC_SEL grubunun JP1-JP2 Jumpers'ı kapatmalısınız. Bu türün X1'i birkaç nedenden dolayı seçilir, ana olanın neredeyse her zaman tahtayı mevcut olan farklı adaptörlerden veya laboratuvar bp'sini kullanmak için bir adaptör yapabilir. Fısıh Ferrit Boğulma (Balun) FB1, FB2 filtre darbe paraziti ve RF ucu. VD1 Diyotlarında VD2, "Gözetim" den gerçekleştirildi. Birkaç yerde, kurullar VCC_ext ve GND_ext Süveterleri yüklenir. Onlar aracılığıyla, arz voltajını ve genel "Toprak" ı gidermek için çevreyi bağlarken yeterlidir.

Standart I2C EEPROM 24CXXX'te harici bellek uygulanır. AVR'nin kendisi kendi uçucu olmayan hafızasını içermesine rağmen, ancak birçok tasarımda, kaynağın hacmi nedeniyle harici bir çip tercih edilebilir. Dahil etme devresi standart, 0x01 kristalinin adresidir.

Doğrusal LED bağlantı noktası durum göstergeleri HL2-HL5, 4 ayrık LED'de yapılır. AVR ile yapılan deneylerin başlaması için, bu yeterli, sayıları daha fazlası, haklı ve oldukça dekore edilmediğini düşünüyorum. LED'ler Port Log'a yazarken dahil edilir. "1", yani Port durumu, uygun ve görsel olan sinyal inversiyonu olmadan görüntülenir.

LCD gösterge kartına bağlanma 2 konektörden yapılmıştır, her iki 8 bit ve 4 bit modunu kullanmak mümkündür. Bunlardan ilki 34 pin x2'dir (3,5 "sürücüden), standart şarjlı döngüler, sırasıyla, göstergenin kendisinde, bir Pin Jumper hattını gizlemek daha iyidir (PIN- Blok), Farklı göstergeleri kesinlikle kesinlikle sonuçları değiştirmenize izin verir. ABRA'nın bağlantı noktalarına bağlantı, LCD bağlantı moduna ek olarak, sonuncusunu esnek bir şekilde seçebilirsiniz. MK. Bu tasarım, kontrol cihazının ücretsiz bağlantı noktalarına, hatta "onları" kadran "bile, özellikle hata ayıklanmış bir prototip veya yeni inşa edilmiş bir baskılı devre kartı ile yapılandırıldığında gerekli olan farklı gruplar portlarından birinde bile uyarlamanıza izin verir. Kablolamada daha rahat.


Birçok durumda, bir LCD göstergesinin kullanımı fiyat, boyut veya güvenilirlik ile haklı olmayabilir. Örneğin, en basit şekilde Şarj cihazı Veya zamanlayıcı çok çalışabilir ve 2 bit LED göstergesi. Hem ortak bir anotla hem de ortak bir katodla (yazılı olarak yazılı olarak yazılmış), 14mm işareti olan ortak tipin çift 7 segment göstergesinin varlığında sistem blokları 486 bilgisayar). Herhangi bir tür göstergeyi bağlamak için VT1-VT4'te 2 vuruşlu tuşlar uygulamak zorunda kaldım ve buna göre, göstergenin kendisi panelini gelecekte başınızı devre ile kırmaz.

Tüm bağlantı çevre birimleri, daha önce belirtildiği gibi, ATMEGA bağlantı noktalarına göre, lineer X3-X6 pin ile yapılır. Temel olarak borç ücretlerinde, IDC-10 konektörlerinin kullanımını gözlemledim (2x5). Bunun için tek avantaj, tüyleri bağlandıktan sonra tüyleri almamak için bir "anahtar" varlığıdır. Bu nedenle, böyle bir yöntemin avantajları sona erecek ve eksiklikler başlar - 8 basamaklı bağlantı noktasıyla çalışmak için görsel olarak sakıncalı, çünkü Sonuçlar üst üste bulunmaz, dahili çevreyi bağlama işlemi dışında imkansızdır. Pin bloklarının kullanımı, standart jumper-jumper ile doğrudan tersine, örneğin, örneğin herhangi bir sinyalin kontrol edilmesi kolaydır. mantıksal prob Ya da osiloskop, POT'ün limanından "engellemek için" tesadüfen fındıktan korkmanıza ve saymanıza gerek yoktur. Buraya bu bağlantının en düşük ve yeniden kullanılabilirliğini ekleyin, çünkü bir döngü veya atlamayı, ücretten sorumlu konektörden çok daha kolaydır. Dahası, şimdi outback'imizde bile, konnektörlerin (veya eski sistem birimlerinden) kullanılmasını kolaylaştıran ve hızlı bir şekilde birleştiren konektörlerin (veya eski sistem birimlerinden) bu tür yanıt parçalarını bulabilirsiniz (Şek.)


Ses için, Mattlat'tan yaklaşık 80 ohm'a dirençli yaygın bir biftek uygulandı. Sinyal çok yüksek değil, ancak kontrol etmek için yeterli (R23 ve sınırında seçilir). Ayrı bir anahtar, sıcaklık olarak belirlenen maketing için yerlerde yeniden inşa etmek isteyen kimseyi koymadım. Küçük bir tavsiye - sesle çalışmak, bir komutu günlüğe bırakarak bir komut oluşturmak için bir sinyal oluşturmak için prosedürün sonunda unutmayın. "0" PD7 çıkışı, aksi takdirde nesilleri durdurduktan sonra "1" ve akım olarak kalabilir. Hoparlör, AVR-A'nın toplam tüketiminin düşünceleri için olsa da iyi olmadığı için devam edecek.

4 bit DIP şalter SW4'te, bağlantı noktaları için mantıksal sinyaller monte edilir. Burada, sayıdaki durum LED LED'lere benzer. Çünkü AVROV girişleri, iç eklenti havuz-up direncine sahiptir, sırasıyla, yemeklere gerek yok "askıya alınır". R18-R21 dirençleri, çıkıştaki MK portlarının yanlışlıkla dahil edilmesinin hatalarına karşı koruma sağlar. Board 1.03 ve üstü denetiminde, DIP şalteri, atlama telleri tarafından değiştirilebilir. Geçenlerde JTAG Buz Kurulu'ndan hızlı bir şekilde yapmam gerekiyordu. Rev 1.4 ile bağlantılı olarak, RN1 direnç matrisi, donanımın, denetleyicinin birkaç girişinde "1" dersi oluşturmasını sağlar. İhtiyacınız yoksa - RN1'i yükleyemezsiniz.

MK üzerindeki inceliğin CL_SEL PIN-GROUP tarafından seçilir ve bir harici kuvars rezonatörü Z1 (yalnızca JP37, JP38 takılı), bir integral kuvars jeneratör G1 (16 MHz) veya bir bölücüden aşağıdakilerden yapılabilir. ve: 4. Yani Kuartz'a ek olarak, işlemciyi 16, 8, 4 MHz frekansları ile ipucu verebilirsiniz. Programın hata ayıklandığı hızını kolayca tahmin edebilir veya kapalı bir özelliğe sahip standart bir saat frekansı elde edebilirsiniz. kuvars. Prensip olarak, TXO'nun yokluğunda bu frekans Başka bir jeneratörü 16 MHz'e uygulayabilirsiniz. Jeneratör, yanlış yanıp sönen FIOM mikrodenetleyici nedeniyle MK'yı "kaldırarak", bu durumda saat frekansı rol oynamadığı için de sizin için yararlı olabilir.

UART için RS-232 Seri Arabirim Seviyesi Dönüştürücüsü, AVR'deki çoğu sistemin sabit bir özelliğidir. Burada "bisikleti yeniden keşfetmene gerek yok", standart MAX232 standart oldukça yeterli. Çoğu uygulama için yeterli olan sadece RX-TX sinyalleri dahildir. CTS-RTS'yi, tahtayı elden geçirmeden, JP31-JP32'deki esnek telleri, parçalardan elden geçirmeden pratik olarak bağlayabilirsiniz. Şemada, MAXIM MAX232, TI MAX232 ve SIPEX SP3232 - herhangi bir meslektaş koyun MAXIM MAX232, TI MAX232'de kontrol edilir.

Dış matris klavyesi ayrı bir panoda yapılabilir ve MC tüylerine bağlanabilir (fare manipülatörlerinden başvurmaya karar verdim, bir kural 2 mikrikka her zaman iyidir). Hata ayıklama kartında, bir çift PS-2 konektörü yüklüdür. Standart IBM PC Tuş Takımı, doğal olarak AVR'den uygun yazılım desteğiyle donanım iyileştirmeleri olmadan bağlanır. İkinci konektör ücretsizdir, takdirinize göre kullanın. Kural olarak, klavye proteotip borcuna bağlı olarak çok özel bir şeydir, bu nedenle bazı pazartmalardan sonra, tahtadaki en basit düğmeleri bile koymamaya karar verdim. Kablolamadan sonra kurullarınızı ve testlerini yapacağım.

HL7 göstergesi, yerleşik donanım PWM denetleyicisi olan deneyler için ayarlanmıştır.

Intrahemny Sıralı Programlama X7 konektörü, STK-200'e göre yapılır. Programcı üzerindeki güç, JP43 ile seçici olarak seçilebilir. Benim durumumda, PonyProg'dan 74'ler tamponundaki (LS, F) 244'ten en basit programcı, LPT üzerinden bağlanarak kullanılır. XP SP2 tarafından yönetilen Core2duo + I965Chipset'te her şey kontrol edildi, hiçbir sorun ortaya çıkmadı. Programcı, debagajon konnektörü üzerinden çalıştırılır ve kullanımda uygundur, çünkü Normal moddaki tamponlar Z-statüsüne "Git" ve kesinlikle FastAvr ile karışmaz. İntrahemum programlama ve gerçek zamanlı dönemde hata ayıklama için JTAG adaptörünün bağlanması, kartın C bağlantı noktasının karşılık gelen lineer pim bağlantı noktası üzerinden yeniden doldurulmadan da mümkündür.

Birkaç gerekli unsurdan bahsetmek için kalır:

AVR'nin oldukça basit olduğu harici sıfırlama zinciri. JP42 üzerinden kapatılabilir, ancak programcı ile sömürü programcıya müdahale etmemektedir. Sıfırlama girişi, füzyon yoluyla standart bir G / Ç portu olarak yeniden programlanabilir ve çevre için kullanılır, ancak bu durumda kristali X7 ile yeniden programlamak artık mümkün olmadığı unutulmamalıdır.

Potansiyometreye dahil edilen R27 değişken direnci, yerleşik ADC ile yapılan deneyler için bir voltaj değerlidir, çıkış, MK'nın analog girişlerinden herhangi birinde servis edilebilir. Küçük Not - Bu direnç bu dirençörü herhangi bir nedenle yüklemezseniz, toplam GND lastiğinin normal geçişi için jumper (Şekil l'de işaretleme) olduğundan emin olun!

Samoa hakkında biraz pcb Ve tasarım. Zaten belirtildiği gibi, tahta tek taraflı. Lazer-Demir teknolojisi tarafından yapılan 2 kopya test edildi (bir fotoğraf kağıdını kavşaklardan, diğeri kendi kendine anahtarlar temelinde yazdırırken), yani İsterseniz, her şey elde edilmelidir ;-) Fotoğraflar hakkında düşünürseniz, harika! Jumper kuralları, "yasak bölgeleri" dikkate alarak, son derece yakındaki bir kene bağlarken bile standart 16 pinli döngüler (oyun portundan) kullanımı göz önünde bulundurulur. Ferrit Boğulunun yokluğunda (eski 286 Matpal veya Brülör Monitörlerinden başvuruyorum) Süveterleri güvenli bir şekilde koyabilirsiniz. Panelleri, ücreti sigara içmemek için hemen tüm cipslerin altında tavsiye ederim. HL6 göstergesine olan tuşlarla 2 atlama tellerini unutmayın.

Ancak, TTL / CMOS mantığını kontrol etme arayüzü gibi görünüyor, mümkün olduğunca, ne ortaya çıktığını söylemeye çalışacağım.

Genel olarak, zamanlayıcı bir karşılaştırma kaydı var OCR **ve zamanlayıcıdaki değer karşılaştırma kayıt değeri ile çakıştığında OCR **2 şey oluşabilir:

  • Kesmek
  • Dış karşılaştırma çıktısının durumunu değiştirme OC **

Şimdi özelleştirebiliriz Shimsayaç değeri aldığında OCR **bacaktaki voltaj seçildi OC **5 ila 0 arasında değişin. Zamanlayıcı sonuna kadar çıktığında ve ilk önce saymaya başladığında, voltajı 0 ile 5 arasında değiştirin, çıkışta dikdörtgen darbelere sahip olacağız.

3 çalışma modu varShim

Sts (tesadüf yapıldığında sıfırlama) - bu çağrılabilir Çiğneme.zamanlayıcı değere sahip olduğunda frekans darbeli modelleme sinyali OCR **sıfırlanır ve değeri değiştirir OC **karşı tarafta. Böylece sağlık Shimher zaman aynı.

Bu, kesin periyotları saymanız veya belirli bir zamanda kesintileri üretmeniz gerektiğinde kullanılır.

Hızlı pwm. (Hızlı PWM) - Sayaç 0 ila 255 arasında, daha sonra 0'a sıfırlanır.

Zamanlayıcı değeri ile çakıştığında OCR **sıfırlama 1 olarak ayarlandığında, karşılık gelen çıkış 0'a sıfırlanır.

En sık sıradan kullanılır Şim.

Faz doğru pwm. (Doğru fazlı PWM) - Bu modda, sayaç 0 ila 255 arasında ve sonra ters yönde sıfıra dikkat çeker. İlk tesadüfte OCR **Çıktı 0'a sıfırlanır, 2 eşleşme ile (sayaç geri döndüğünde), 1'i koyun.

Görev değiştiğinde fazı düşürmemek için kullanın.



Sonuçla çalışmak istiyorsak OC1A.bit B'yi koyduk. COM1A1 COM1A0.
Genel olarak, "/" anlamına gelir veya. Tcnt1.= OCR1A.için Shimsonuçta OC1A.

Zamanlayıcı / Sayaç Çalışma Modu - Zamanlayıcı / sayaç modu.

Üst.- Çıkış değerinin değiştiği TCNT1 değeri OC **.

TOV1 bayrağı ayarla - Hangi değerlerde GIFR kaydının biraz yüklendiği

İhtiyacımız olan modun son tablosundan birini seçin, bakmayın Üst.. 2 tabloların, 2. seçeneklerden birini seçin. Sadece gerekli bitleri kayıtlara yerleştirmek için kalır.

#Define F_CPU 8000000L #include #Dahil etmek. İnt ana () () () (DDRD \u003d 0xff; OCR1A \u003d 0XC0; // bu değer ile karşılaştır OCR1B \u003d 0x40; // PWM ve TCCR1A zamanlayıcısını ayarlama | \u003d (1<CS101'i koyun, zamanlayıcı frekansını nasıl yapılandıracağınız hakkında MK sıklığına inanıyor.


Yerleşik zamanlayıcıların çalışmasına dönelim.
Öğrenme kesintileri ve özellikle zamanlayıcılarmikrodenetleyicilerde, çok işlevli olması nedeniyle belirli bir zorluk sunar. Bugün terimleri ve isimleri anlamaya çalışacağız.

İÇİNDE aVR mikrodenetleyicileri Bir ila 4 zamanlayıcı, sekiz basamaklı veya onaltılık olabilir.
Basitleştirilmiş zamanlayıcılar T harfi ile ve sıfırdan üçe kadar gösterilir. Tipik olarak, hatta T0 ve T2, sekizinci ve tuhaf T1 ve T3'dir. Programlama altında, basitleştirilmiş sürüm yalnızca yorumlarda kullanılır ve programlarda zamanlayıcının tam adı reçete edilir - TCNT Kayıt. Aşağıda zamanlayıcıların atamalarıdır:

Zamanlayıcılar

T0, T2. - (TCNT0, TCNT2) Sekiz bit Sayaçlar (hatta)
Tcntn.- Boşaltma sayacının Muhasebe Kaydı 8
Nerede; N-numarası sayacı

T1, T3. - (TCNT1N ve TCNT1L, TCNT3H ve TCNT3L) On altı hane sayaçları (tek)
Tcntny. - Tahliye sayacının 16 numaralı Hesaplar
Nerede; N-numarası sayacı
Y-Senior (H) veya Junior (L) Deşarjı

T1 iki sekiz bit kayıtlardan oluşur TCNT1N ve TCNT1L, fakat
T3 iki kayıt TCNT3H ve TCNT3L. Mektup H. yaşlı deşarjı belirtir ve L. Jr.

Gibi zamanlayıcılarkayıtlar, daha sonra herhangi bir zamanda onlarla iletişim kurabilirsiniz, değeri okuyabilir, yazabilir, sıfırlayabilir ve değiştirebilirsiniz.
TCNT1N ve TCNT1L zamanlayıcıların kaydedilmesi ve okunması için belirli kurallar ilan etti.

1. Programları kaydetme ve zamanlayıcı verilerinin okunması atomik olmalıdır, yani. Okumadan veya yazmadan önce, kesintileri yasaklıyoruz ve sürecin sonunda tekrar izin veriyoruz.
2. Kayıt yaparken, eski bayt H ve sonra genç L. ilk kaydedilir.
3. Okurken, Küçük Byte L Sonra Kıdemli H.
Örneğin:
Verileri sayma kaydına kaydedin.
Cli; Kesintisiz TCNT1H, R16'yı yasaklayın; Eski Byte Out TCNT1L, R17'nin kaydedilmesi; Genç Byte Sei'nin kaydedilmesi; Kesilmelere izin ver

Sayma kayıtlarından veri okumak
Cli; TCNT1L, R16'daki kesintileri yasaklar; TCNT1H, R17'de genç baytı okumak; Kıdemli SEI baytını okumak; Kesilmelere izin ver

Neden bu tür kurallar? Ve her şey, her bir kayıttan okuma sürecine gidecek zaman boyunca verilerin bozulmaması için.
Doğrudan okumayı kullanıyorsanız, 8 bit kayıtlar TCNT1H ve TCNT1L, o zaman bu kayıtların aynı anda okuduğundan emin olamazsınız. Aşağıdaki durum ortaya çıkabilir: Sayaç 01FF değerinin değerini içeriyordu, TCNT1H olarak kabul ettiniz (01 değerini bazı değişkenlere dahil). Bu süre zarfında sayma dürtüsü geldi ve TCNT1L'nin içeriği 00 oldu ve 02 $ değerinin TCNT1H'de kaydedildi.

Şimdi TCNT1L değerini başka bir değişkene okudunuz, bu değişkende 00 $ değerini elde edin (sonuçta, zamanlayıcı / sayaç zaten bir hesap yapmıştır). Bu değişkenlerin 16 bit değeri 0100 $ idi, ancak daha eski bayt okuma sırasında, tezgahın içeriği 01FF'dir ve genç bayt'ı FF olarak okumak zorunda kaldınız. Böyle bir durumu önlemek için, zamanlayıcı / sayaç biriminde yer alan geçici kayıt kullanılır. Bu kayıt şeffaf, yani. Otomatik olarak hareket eder. TCNT1L kaydının değerini değişkene okurken, TCNT1H'nin içeriği bu kaydıya girer. Sonra değişkende eski baytı okurken, zaman kaydının değeri okunur. Geçici kayıt, kullanıcı için tamamen şeffaftır, ancak doğru çalışması için, yukarıdaki eylem sırasını takip etmek gerekir. Ek bir (tampon) kayıt yoluyla kayıtlara itiraz, çift tamponlama denir

Zamanlayıcılar sayma dürtüleri ile ilişkilidir.Bu dış olabilir ve çipin özel girişini girebilir veya kendi jeneratörleri tarafından oluşturulacak. Buna karşılık, kendi jeneratörünün frekansı, harici bir kuvars rezonatörü ile senkronize edilebilir ve dahili RC şeması ile belirlenebilir. Bundan sonra, dış sıklık veya kendi jeneratörünün frekansı, kayıt tarafından yönetilen kayıt tarafından tutulur. Clkpr.. Explorer (Prescasher) CLKPR'den sonra jeneratörün sürücüsü, işlemcinin (CPU) saat sinyali (saat frekansı) olarak adlandırılır.
Giriş zamanlayıcısına verilen frekans cLKTN olarak belirtildi. Bu frekans işlemci saat sinyaline karşılık gelir.
Sayılabilir bir dürtü, birim başına zamanlayıcının değerini arttırır, böylece TCNT kayıtları sayılabilir ve denilen zamanlayıcı / sayaçlar (TC).
Zamanlayıcı / sayacın harici bir saat sinyali üzerindeki doğru çalışması için, harici bir saat sinyalinin iki geçişi arasındaki minimum süre, CPU saat sinyalinin en az bir periyodu olmalıdır. Dahili CPU saat sinyalinin artan önüyle senkronize harici saat sinyali. (Frekans sayaçları yaparken hatırlanmalıdır).
Zamanlayıcı / Sayaç Kayıt Tcnt. bir kayıt TCCR..
Maske kesme Zamanlayıcı / sayaç için Tcnt. Kayıt olur Timsk. (Zamanlayıcı kesme kontrolü kaydı).
Bayrakların Kayıt Ol Timsk Interrupt Maskesi - TIFR Kayıt Oldu. TCNT çalışırken / sayılırken bu 3 kayıtların (TCCR, Timsk, Tifr) neredeyse her zaman kullanıldığını unutmayın.

Kesintiler, TCNT kaydının değerlerini özel OCR karşılaştırma kayıtlarının değeri ile karşılaştırarak, özel ICR yakalama kayıtlarının değerleri ile karşılaştıran ve zamanlayıcı / sayaç modu ile belirlenir. . Ek olarak, kesme isteği cevapta ortaya çıkabilir watchDog Timer WDT.

Zamanlayıcılar / sayaçlar farklı modlarda çalışabilir ve buna göre farklı fonksiyonlar gerçekleştirebilir.
Çalışma şekli, yani zamanlayıcı / sayacın davranışı ve tesadüf sinyalinin çıktısı, kayıtlar tarafından kontrol edilen sinyallerin çalışma şekli olarak tanımlanır. WGM02; WGM01; Wgm00. (Kısaltılmış Kayıt WGM02: 0.) Güçlendirici tarafından kontrol edilen tesadüf sinyalinin çıkış modu Soms0x1; Som0x0 (Kısaltılmış Kayıt Som0x1: 0.). Tesadüf sinyalinin çıkış modunun bağlı olduğu bitlerin durumu, yalnızca sinyal üreteci yapılandırma bitlerinin durumu ile belirlenen sayma dizisini etkilemez.

Bit Som0x1: 0. PWM çıkış sinyalinin tersi edip etmemesi gerektiğini belirleyin (ters ya da tersi PWM).
(PWM) Darbe modülasyonu veya darbe genişliği modülasyonu (PWM).
PWM olmayan modlar için, BITS Soms0x1: 0'ın içeriği, çıkış sinyalinin bir üniteye monte edip edilmeyeceğini, sıfıra sıfırlanıp geçmeyeceğini belirler veya tesadüf sırasında zıt duruma geçer.

--
Dikkatiniz için teşekkürler!
Igor Kotov, Dergi Dergisi'nin Editörü "Datgorod"

Birine eşit bir adım atabilirsiniz, o zaman değişiklikler şöyle görünecektir:
Artı: rcall gecikmesi; Inc Temp2 gecikmesi alt yordamına geçiş; Bir adım'a gidin ve sonucun sıfır BREQ PLUS_1 olup olmadığını kontrol edin; Eğer öyleyse, Plus_1 RJMP doğru etiketine dönüyoruz; PLUS_1: DEC TEMP2 Düğmeleri Anketi; Birim RJMP'yi doğru çıkardık; Eksi döndür: rcall Gecikme düğmeleri; DEC TEMP2 gecikmesi alt programına geçiş; Bir adım'a gidin ve sonucun sıfır breq minus_1 olup olmadığını kontrol edin; Eğer öyleyse, MINUS_1 RJMP doğru etiketine dönüyoruz; Minus_1'e geri dönün: Inc Temp2 düğmeleri; Bir RJMP doğru birimi ekleyin; Anket düğmesine dön

Avrstudio 5'in tahrişi nedeniyle ve ATININY2313 mikrodenetleyicisi, makaleler serisi AtmelStudio6 ve ATMEGA8 ve ATMEGA16 mikrodenetleyicileri altında yeniden yazılacaktır. Rahatsızlık için şimdiden özür dilerim.