CM3 IWDG ve WWDG

Başlatan z, 11 Haziran 2015, 11:00:04

z

Geçen günlerde başıma Watch dog ile ilgili bir sıkıntı gelince hep görüp de bakmaya değer bulmadığım IWDG ve WWDG donanımına bugün göz attım.

CM3 işlemcilerde 2 tane watch Dog donanımı var.

IWDG (Independent Watch Dog ) system clock dan bağımsız Low speed Clock'a sahip. Bu clock'un doğru olduğu söylenemez. Ancak ana clock sussa bile RC clock ile beslendiğinden sistemi resetleyebilme özelliğine sahip.

WWDG (Window Watch Dog) is clock sinyalini APB1 busdan alıyor dolayısı ile clock doğruluğu çok yüksek. Ancak sistem clock susarsa bu watch dog da devre dışı kalıyor.

Sonuçta bu IWDG ve WWDG nin ne olduğunu öğrenmek bugüne nasipmiş.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

IWDG bir yazılımda olmazsa olmazdır ve hayat kurtarır.

    if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
    {
        // işlemci watchdog reset yemiş...
    }


Yukarıdaki kodu main programın başına koyarsanız işlemcinin watchdog tarafından resetlendigini de anlayabiliyorsunuz.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

MrDarK

Uzun zamandır IWDG kullanıyorum, kesinlikle tavsiye ederim. IWDG STM32L de Low power için halt moduna aldığınızda ne yazıkki durduramıyoruz. Bence şu an için stm32nin en kötü yanlarından birisi,
Stm8de durdurulabildigini söyleyeyim.
Picproje Eğitim Gönüllüleri ~ MrDarK

muhittin_kaplan

birde analog olan var CM4 ama CM3 e bakmadım varmı yok mu

z

Evet CM3 de var. Bir iki projede kullandım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

Alıntı yapılan: MrDarK - 12 Haziran 2015, 15:34:52
Uzun zamandır IWDG kullanıyorum, kesinlikle tavsiye ederim. IWDG STM32L de Low power için halt moduna aldığınızda ne yazıkki durduramıyoruz. Bence şu an için stm32nin en kötü yanlarından birisi,
Stm8de durdurulabildigini söyleyeyim.

Hocam demekki yeterince araştırmamışsınız çünkü Oprions bitlerinden stop ve st-by modu için IWDG kapatılabiliyor.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

MrDarK

X-Fi hocam stm32L152 serisinde IWDG bir kere kurulduğunda birdaha reset harici kapatılamıyor diye biliyorum, debug modunda iken durdurulabiliyor onunla karıştırmış olabilir misiniz
Picproje Eğitim Gönüllüleri ~ MrDarK

muhittin_kaplan

analog olan ne iş yapıyor fonksiyonu nedir ?

MrDarK

Alıntı yapılan: muhittin_kaplan - 12 Haziran 2015, 20:02:16
analog olan ne iş yapıyor fonksiyonu nedir ?

Alıntı Yap
An analog watchdog operates in a similar manner. Only instead of monitoring a timer, it monitors an analog input channel. At initialization, you tell the watchdog what analog thresholds to monitor for. If a converted value on an analog input passes one of these thresholds, it will fire an interrupt for you to process the signal sample. This means you don't have to write code to continuously poll the analog inputs and check their levels. It is all handled autonomously in the background by the analog watchdog circuitry.

Analog WDG IWDG veya WWDG a benzer şekildedir. Tek farkı zamanı izlemek yerine analog giriş kanalı izler. Analog girişe tanımlanan sınır değere ulaşıp ulaşmadığını izler.  Okunan analog değerlerden herhangi biri girilen sınır değerini aşmış ise interrupt oluşturarak bunu bize bildirir. Anlamı ; analog girişlerden gelen bilgileri toplayıp seviyelerini kontrol etmek için herhangi bir kod yazmaya ihtiyaç yoktur. Tüm bu işi arka planda kendi kendine  yapmaktadır.

Kısaltılmıştır ; http://stackoverflow.com/questions/25154845/what-is-analog-watchdog
Picproje Eğitim Gönüllüleri ~ MrDarK

X-Fi

Hocam options bitlerinin, bilmem kaçıncı byte nın bilmem kaçıncı bitleri stop mod içinde reset üretme ve std-by modda iken reset üretme şeklinde hazırlanmış. bunları set ederseniz istediğiniz olacaktır.

Tam isimlerini hatırlamıyorum bi sorun olursa tekrar yazın vakit buldukça araştırayım.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

z

STM32F10x de stop moda girildi ise IWDG bir kez başlatıldıysa çip reset oluncaya kadar susturulamaz diyor.

Böyle olması normal değilmi?

@Xfi

Option registere baktımda şu anlamı çıkarttım. İşlemci stop moda girerse reset üret/üretme seçeneği var. Yani adamlar yazılımın stop moda girilmesini engelleyen seçenek eklemişler.

Yanlış mı anlıyorum?



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

Yanlış! doğru açıklaması şöyle stop moda her halukarda girer ama watch dog timer ı stop mod içerisinde temizleyemeyeceğin için reset üretmesini engeller.

Zaten sizin söylediğiniz mantığın kullanıma uygun bitarafı yok söylediğiniz özellik olsa olsa bug olur.

Stop moduna hiç girmesin rolantide takılsında swd detected yapayım diyorsanız onun seçimi ayrı.

bakınız; "Enable debug on LP mode"
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

z

#12
Bit 18   nRST_STDBY  0: Reset generated when entering Standby mode. 1: No reset generated.

Bit 17   nRST_STOP    0: Reset generated when entering STOP mode. 1: No reset generated.

Bu iki bitin watchdoglarla alakası yok.

Diyorki;

Bit 17: 0 ise Stop moda girince reset üret.
Bit 17: 1 ise Stop moda girince reset üretme.

Söylediğim neden bir bug değil? Mantığı ne?

ARM CM3 her ne kadar MCU olarak anılsa da aslında harbi harbi MPU (Micro Processor Unit)

Çipe farklı kişilerce yazılmış program parçacıkları yükleyip bunları, koordinasyonu sağlayan tepede ve tüm yetkilere sahip bir yazılımla yönetirsek bazı güvenlik sorunlarını
aşmamız gerekir.

Yazılım parçalarından birisi çipi stop moda sokacak yetkiye sahipse ama güvenlik stop mod ile riske giriyorsa çip stop moda girince çip kendisini resetlesin ihtiyacı mantıksız değil.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MrDarK

Alıntı yapılan: X-Fi - 13 Haziran 2015, 07:55:23
Hocam options bitlerinin, bilmem kaçıncı byte nın bilmem kaçıncı bitleri stop mod içinde reset üretme ve std-by modda iken reset üretme şeklinde hazırlanmış. bunları set ederseniz istediğiniz olacaktır.

Tam isimlerini hatırlamıyorum bi sorun olursa tekrar yazın vakit buldukça araştırayım.


Hocam selam;

Detaylıca araştırdım fakat option Byte'da söylediğiniz bitleri bulamadım. STM32L152 kullanıyorum. Option Byte'lara referance manuelden baktığımda IWDG için sadece yazılım aktivasyonlu başlama veya donanımsal direkt olarak başlama seçeneği mevcut.
Picproje Eğitim Gönüllüleri ~ MrDarK