RSS
 

WATCHDOG TIMER

01 Eyl

Bağımsız RC osilatörlerle Durmaksızın iş .

WATCHDOG TIMER
Watchdog-Timer çip üzerinde serbest çalışan ve hiçbir dış eleman gerektirmeyen RC osilatörüdür. RC osilatör OSC1/CLKIN pininin RC osilatöründen ayrıdır. Bu , şu anlama gelmektedir ki, aygıtın OSC1 / CLKIN ve OSC2 / CLKOUT üzerindeki saat durduysa bile, mesela SLEEP komutunun çalıştırılmasıyla, çalışacaktır. Normal işlemi boyunca WDT zaman aralığı aygıtı resetleyecektir. Eğer aygıt SLEEP modundaysa, WDT kaldırma programı aygıtı tekrar normal işlemine döndürecek ve devam ettirecektir. WDT, konfigrasyon programlama bitini 0 a programlayarak, sürekli etkisiz yapabilir. WDT nin kullanım amacı, PIC i veya herhangi bir işlemciyi bir döngüde kilitlenmekten uzak tutmaktır. Böyle bir durum yazılımda bir hata veya harici elektriksel kıvılcımlar nedeniyle ortaya çıkabilir. WDT, PIC e bir çeşit kalp atışı sağlar ve eğer WDT yazmacı düzenli aralıklarla temizlenmezse PIC i resete zorlar.

Bu mükemmel bir özelliktir ve güvenlik sistemleri gibi, ana kontrol panellerinde bir kilitlenmenin asla söz konusu olmaması gereken uygulamalar için birebirdir.

Güç koruması gereken ve yalnızca peryodik olarak açılması gereken ürünlerde WDT den faydalanılır.WDT nin konfigrasyonu 16C5X ailesinde OPTION komutu aracılığıyla, 16C71 deyse doğrudan Option Yazmacı na (81H) yazılarak gerçekleştirilir. Option Yazamacı, WDT ile ilgili 4 kontrol bitine sahiptir.
WDT kontrol bitleri

Option Yazmacı ndaki prescaler bitleri kullanılarak, zaman aşımı süresi 2.5s ye kadar genişletilebilir.

WDT bir SLEEP veya CLRWDT komutuyla temizlenir veya reset edilir. WDT nin bir resete yol açmaması için yazılımda bu komutlardan biri kullanılmalıdır.

WDT DEVRİ

WDT 18 ms nominal zaman aralığına sahiptir. Zaman aralığı devresi ısı derecesi, Vdd ve bir mikrodan diğerine, işlem çeşitlerine göre değişmektedir. Eğer daha uzun zaman aralığı isteniyorsa , 1:128 den daha yüksek bölme oranında, OPTION REG kaydına yazarak , yazılım denetimi altında WDT’ye tahsis edilebilir. Böylece zaman aralığı devresinin yükseldiği farkedilebilir.

WDT
Şu , dikkate alınmalıdır ki ; arzu edilmeyen durumlarda (Vdd= min , ısı derecesi = max, WDT= max), WDT zaman aralığının ortaya çıkması birkaç saniye alabilir.

CLRWDT ve SLEEP komutları , zaman aralığının meydana gelmesini önler ve aygıtı reset durumuna getirir.STATUS kaydındaki TO biti, WDT zaman aralığı üstünde temizlenmelidir. Yani WDT yazmacının düzenli aralıklarla temizlenmesi gerekir. Aksi taktirde PIC resete zorlanır.Bu mükemmel bir özelliktir ve güvenlik sistemleri gibi ana kontrol panelinde , bir kilitlenmenin asla söz konusu olmaması gereken uygulamalar için birebirdir. WDT nin konfigürasyonu 16C5X ailesinde OPTION komutu aracılığıyla, 16C71 deyse doğrudan Option yazmacına (81H) yazılarak gerçekleştirilir. Option Yazmacı, WDT ile ilişkili 4 kontrol bitine sahiptir.

WDT bir SLEEP veya CLRWDT komutuyla temizlenir veya reset edilir. WDT nin bir resete yol açmaması için yazılımda bu komutlardan biri kullanılmalıdır.

Örnek:
MOVLW B�00000111 ; RTCC PRESCALER/256
OPTON ; Sayım başına 256mS

MAIN CLRWDT ; Her seferinde Wathdog u temizler.

Kodun, zaman peryodunun , zaman aşımı ayarından büyük olma ihtimalinin bulunduğu kısımlarında ayrıca bir CLRWDT komutu kullanılmalıdır. (örneğin bir girdi pin inin durumunun değişmesini beklerken).Kritik kodların güvenliğini sağlamak için kullanılacak ideal kod biti yalnızca bir CLRWDT komutu içerir. Bu komut ana döngüde yer alır ve genel bir kural olarak ne kadar çok CLRWDT komutu bulunursa, bunlar o kadar az etkili olurlar.

Reset gerçekleştiğinde, Statü Yazmacı ndaki iki bit resetin nedenini gösterir. Bu bitler TO ve PD bitleridir (Time out ve Power down)

TO PD Reset nedeni
0 0 WDT, SLEEP durumundan çıkmıştır.
0 1 WDT, SLEEP haricinde zaman aşımına uğramıştır.
1 0 SLEEP durumundayken harici reset(WDT kapalı)

1 1 Açılma durumu

Reset gerçekleştikten hemen sonra bu bitlerin hemen incelenmesiyle, program nasıl davranacağını ve nerede dallanacağını belirleyebilir.

Örnek:
BTFSS STATUS,WATCHDOG ; Watchdog bitini test et.

GOTO SCAN ;Watchdog,

zaman aşımı durumunda değilse, ilk açılma

MOVLW B00001111 ; PORTA� yı ayarla

TRIS PORTA ; Tümü girdi.

WDT kullanmayan ama SLEEP moduna sokulan uygulamalarda, programlama sırasında WDT bitinin ayarlanmadığından emin olmak önemlidir. Programlama sırasında verici ve alıcı gibi bağıntılı ürünlerin unutulması oldukça kolaydır. Alıcı kilitlenmeyi engellemek için bir WDT ye ihtiyaç duyar ama vericinin çalıştırılması yalnızca bir düğme aracılığıyla gerçekleşebilir. Vericinin WDT biti programlanmamışsa , program döngüye girer ve asla iletimi gerçekleştiremez.

Gürültülü ortamlarda OPTION ve TRIS yazmaçlarını düzenli aralıklarla güncellemek önemlidir. Bu akıllıca önlem sayesinde yazmaç elektriksel girişimlerde bozulmaya uğramayacaktır.
WATCHDOG TİMER’ın Blok Diyagramı

Watchdog timer ile birleştirilen kayıtların özeti

GÜÇ KAYNAĞI DÜŞÜRME (AZALTMA) MODU (SLEPP)

Mikronun güç kaynağından çektiği akım SLEEP komutuyla arttırılır veya azaltılabilir.

Sleep modu
Power-Down moduna SLEEP komutu çalıştırılarak girilebilir. Power Down modu daha önceden belirtildiği gibi aygıtın düşük güçte bekleme modudur. Eğer SLEEP komutu etkin durumdaysa, Watchdog Timer silinmiştir. (Fakat çalışır durumdadır).PD biti (STATUS<3>) silinmiştir. TO biti (STATUS<4>) kurulmuştur

ve osilatör sürücüsü kapalıdır. I/O portları, SLEEP komutunun çalıştırılmasından önceki statüyü korurlar.

SLEEP modundaki en düşük elektrik tüketimi için, tüm I/O pinleri, dış devrelerden değil de , akımı I/O pinlerinden çekerek ya Vdd ya da Vss’ye yerleştirilir ve dış saatleri etkinsizleştirilir. Yüksek zahiri dirençli olan I/O pinleri, akım girişlerinin neden olduğu gerilim Kesilmesini önlemek için yüksek veya düşük düzeye ayarlanmalıdır. TOCKI girişi de Vdd veya Vss de olmalıdır.

MCLR pini lojik yüksek seviyede olmalıdır. Şu dikkate alınmalıdır ki,WDT zaman aralığı tarafından üretilen RESET, MCLR pinini aşağı sürmez.

Sleep modundan çıkış
Aygıt SLEEP modunda aşağıdaki şekillerde çıkarılabilir.
1) MCLR dış giriş reseti
2) WDT çıkışı (Eğer WDT aktif ise)
3) RBO/IN pininden Kesme de, RB port değişimi veya

EEPROM’a dataların yazımının tamamlanmasında. Priferialler, SLEEP süresince Kesme üretemezler, çünkü o anda işlemci hiçbir iş yapmamaktadır.

İlk şıkta (MCLR resetlenir), aygıt resetlenir. Sonraki iki şık ise program çalışmasının devamı olarak düşünülmektedir. TO ve PD biti, aygıtın resetlenmesinin nedenlerini belirlemede kullanılabilir. Güç kaynağı üzerine kurulan PD biti, SLEEP modunda iken silinir. Eğer WDT zaman aralığı meydana
gelirse ( ve SLEEP modundan çıkışa neden olursa) TO biti temizlenir. SLEEP komutu çalıştırılırken sıradaki komut (PC+1) bir ön devir yapar. Kesme durumunda iken aygıtın SLEEP ten çıkması için, uygun aktif Kesme biti
kurulmalıdır(etkinleştirilmelidir). SLEPP ten çıkış, GIE bitinin durumuna bakmaksızın meydana gelir. Eğer GIE biti temizse (aktif değilse), aygıt, sıradaki
uygulamaya SLEEP komutundan sonra devam eder. Eğer GIE biti aktifse (kuruluysa), aygıt, SLEEP komutundan sonraki uygulamaya geçer ve Kesme adreslerine bölünür(0004h).SLEEP’ten sonraki uygulamaya geçilmesinin istenmediği durumlarda, kullanıcı SLEEP komutundan sonra NOP komutunu kullanmalıdır.
Kesme aracılığıyla sleep modundan çıkış

Çıkış (sleep) için kullanılan kesmeler

Global Kesmeler etkinsiz durumunda (GIE temizlenir) ve herhangi Kesme kaynakları aktif Kesme biti ve Kesme bayrak bit setinin her ikisini de içeriyorsa, aşağıdakilerden birisi meydana gelir.

* Eğer Kesme, SLEEP komutunun yürütülmesinden daha önce meydana gelirse, SLEEP komutu NOP olarak tanımlanacaktır. Böylece WDT ve WDT prescaler

temizlenmeyecek, TO kurulmayacak ve PD bitleri temizlenmeyecektir.

*Eğer Kesme, SLEEP komutunun uygulanması sırasında veya daha sonra meydana gelirse, aygıt hemen SLEEP modundan çıkacaktır. SLEEP komutu , Wake-up’dan önce tamamıyla uygulanacaktır. Böylece WDT ve WDT prescaler temizlenecek ve, TO biti kurulacak ve PD biti temizlenecektir.

SLEEP komutunun uygulanmasından önce bayrak bitleri kontrol edilse bile, bayrak bitleri SLEEP komutunun tamamlanmasından daha önce kurulmuş olabilir. SLEEP komutunun uygulanıp, uygulanmadığını belirlemek için PD bitini test edebiliriz. Eğer PD biti kuruluysa, SLEEP komutu NOP olarak uygulanmıştır.

WDT nin temizlendiğinden emin olmak için, SLEEP komutundan önce CLRWDT komutu uygulanmalıdır.

Program doğrulaması / Kod koruması
Eğer kod koruma biti programlanmamışsa, çip üzeri program belleği, hedefin doğrulanması için okunabilir.

Not : Microchip, pencereli aygıtları kod koruma için tavsiye etmemektedir.

ID YERLEŞİMİ
Kontrol sonuçları veya diğer kod tanıma sayılarını saklamak için ID yerleşimi olarak 4 bellek yerleşimi ( 2000h-2003h) düzenlenmiştir. Bu yerleşimler normal uygulama süresince erişilemez fakat program/doğrulama süresince okunabilir ve

yazılabilir. ID yerleşiminin yalnızca 4 biti kullanılabilirdir. ROM aygıtları için bu değerler ROM koduyla kullanılmaktadır.

DEVRE İÇİ SERİ PROGRAMLAMA

PIC16C84 mikrokontrolörleri, uygulama devrenin sonunda seri olarak programlanabilir. Bu basitçe, saat ve veri için iki hat, güç kaynağının, toprağın ve program voltajının üç hattı ile yapılabilir. Müşteriler bellekleri programlanmamış aygıtları kullanamayabilirler ve bu taktirde, mikrokontrolör, ürünün paketlenmesinden önce programlanır.

Aygıtı, program/doğrulama moduna geçirmek için RB6 ve RB7 pinlerini low da tutarak, MCLR pini VIL’den VIH’a çekilir. RB6 programlama saati ve RB7 programlama verileri halini alır. RB6 ve RB7� nin her ikisi de bu modda schmitt trigger girişleridir. Reset’ten sonra, aygıtı, programlama/doğrulama moduna getirmek için, program sayacı (PC) 00h adresini gösterir. Daha sonra, aygıta 6 bit komutu verilir, program verilerinin 14 biti ya aygıta verilir ya da aygıttan çekilir. (yükleme komutunu kullanarak).

ROM aygıtlarında, Program Belleği ve Data EEPROM belleklerinin her ikiside okunabilir, fakat yalnızca Data EEPROM belleği programlanabilir.
Tipik sistem içi seri programlama bağlantıları

————————–
yukarida verilen yazilar www.picproje.com ve www.antrak.org.tr sitelerinden alınmıstır.

 
No Comments

Posted in Donanım

 

Leave a Reply