TCB biriminde kullanılabilecek modların neredeyse tamamı Event (olay) sistemiyle bağlantılı. Ayrıca TCB birimi için sistem saati ayarlamaları gerekiyor. Bu bölümde öncelikli olarak sigorta ayarları değişikliği ve korumalı içeriklere değineceğim.
CCP
Yapılandırma ayarlarını içeren registerler kazara değişiklik yapılmasına karşın korumalıdır. Bu kayıtların içeriğini değiştirmek için gerekli bir kod vardır. Bu kod CPU_CCP registerine yazılmalıdır. Bu yazma sonrası korumalı içerik değişikliği yapılmalıdır. Bunun için tanımlı makro olsa da ben kullanmadım. Örnek olarak 20/16MHz iç osilatör değerini bölerek sistem saatini ayarlayan MCLKCTRLB registerini ele alalım.
"Property: Configuration Change Protection" korumalı olduğu belirtilmiş. Burada değişiklik yapmak için gereken kod:IOREG 0xD8
CPU_CCP=CCP_IOREG_gc; şeklinde CCP registerine yazıyoruz. Ardından yapmak istediğimiz değişikliği yapıyoruz.
CLKCTRL.MCLKCTRLB=CLKCTRL_PEN_bm|CLKCTRL_PDIV_48X_gc; Bu şekilde MCLKCTRLB registerinde PEN "1" yapılırken PDIV 0x0C yazılarak osilatör çıkış darbesi 48 e bölündü. Böylece 416666Hz sistem saati ayarlandı.
Sigorta Ayarları
Pymcuprog komut istemi ile çalıştırılıp istediğiniz işlemi yapmanıza olanak verir. Komut istemi içinde yazacağınız komutları IDE içinde external tools oluşturup yazabilirsiniz ama buna gerek yok. Buradan tüm komutlara ve örneklere ulaşabilirsiniz. Serinin ilk konusunda bahsettiğim USB çevirici ve UPDI bağlantısı yapıldıktan sonra ilk olarak windows başlata "cmd" yazarak komut istemini çalıştıralım. "pymcuprog" yazıp enter bastığınızda bir şey olmuyorsa ya pymcuprogun olduğu dizine gidin ya da ortam değişkenlerine python ekleyin. Bunun için Denetim masası, Sistem, Gelişmiş sistem ayarları ile açılan pencereden Ortam değişkenleri Path içine: "C:\Users\haluk\AppData\Local\Programs\Python\Python311" "C:\Users\haluk\AppData\Local\Programs\Python\Python311\Scripts" ekleyin.
Komut isteminde pymcuprog ile bu şekilde bir çıktı görmelisiniz.
OSCCFG registeri iç osilatörün frekansını belirler. Çalışma gerilimini değiştirerek bunu yapıyormuş. Datashette sanki bu seçenek yokmuş gibi yazılmış. Kalibrasyon için tek seçenek belirtilmiş.
Mega4809 serisinde farklı görünüyor ve 20/16 seçeneği gösterilmiş.Sonraki konuda tekrar TCB ve Event sistem kullanımına bakacağım. Bu saat değişikliği TCB de kullanmak için gerekli ama şart değil.
Hiç yorum yok:
Yorum Gönder