İşlemci dahili iç osilatörünü çalıştıramadım. Eksiğim ne olabilir?

picmanya

Aktif Üye
Katılım
14 Haziran 2024
Mesajlar
275
DSPIC30F2010 işlemcide, osilator için konfigurasyon bits ayarlarında;

Güzel Çalışan, Harici osilatör ayarları:
Primary Oscillator Mode : XT w/PLL 8x
Oscillator Source : Primary Oscillator

Hiç Çalışmayan, Dahili osilatör ayarları:
Primary Oscillator Mode : FRC w/ PLL 8x (4x-16x de çalışmıyor.)
Oscillator Source : Internal Fast RC

Harici osilatör ayarını, konfigürasyon bitlerinde hep bu şekide yapıp kullanırım.
Daha önce dahili osilatörü hiç kullanmadım. Bu osilatör için ayrıca yapmam gereken başka bir ayarlama varmı? Neden çalışmıyor olabilir?

NOT:
Main() içinde daha önce hiç yazmadığım, OSCCON register ayarınıda yazıp kurcaladım,
DSPIC30F4012 işlemcidede deneme yaptım.
Dahili FRC osilatörü neyaptıysam çalıştıramadım. Atladığım nedir?
 
Aşağıdaki dokümanda, değişik osilatör sistem versiyonlarının olduğundan bahsediyor ve sadece belli versiyonlarda FRC sinyalinln PLL girişine verilebileceğini söyüyor. Sorun bu olabilir.


1719408545186.png
 
MPLAB XIDE ilk açıldığında ve pic'i ilk programlamada, işlemci tanımlamada 1004 diye bir rakam çıkıyor.
Bu işlemci versiyon 4 mü demek oluyor. Sonraki programlamalarda artık bu rakam gözükmüyor.

İç dahili RC osilatörde, işlemciler arası farklar olabildiği gibi, aynı işlemciler arasında versiyon farklarınıda ayırıyor gibi duruyor.
Çok eski 4012 de çalıştı. yeni 4012 ve 2010 da henüz çalışmadı.
 
Dahili RC osilatör eski 2010 lar hariç geri kalan işlemcilerde çalışıyor. Eski 2010 larda bu özelliğin olmadığıda belirtilmiş.
X IDE ile XC16 derleyicisinin son versiyonlarını kurup, yeni bir proje oluşturarak kodları derleyip yükledim.
Bunların sonrasında, FRC osilatörün çalışması bakkımından problem yok.
Zamanlama hassasiyeti ölçmedim. Umarım +- %1 den fazla hata yapmaz.
_______________________________________________________________________________________________________________
İşlemci dsPIC30F4012 ve 2010 için, Şimdi de RC15 portunu dijital çıkış amaçlı kullanamıyorum.
Normalde bu pine harici osilatör takılı iken, OSC2 amacıyla kullanıldığından dolayı, RC15 portunu kullanamıyor olmam normaldi. Olması gereken buydu.
Mevcut halde, Harici osilatör iptal edildi, Dahili iç FRC osilatör kullanılıyor. Bu durumda RC15 pininin çıkış amaçlı kullanılmasını engelleyen ne olabilirki?

Bunların ilişkilerini bir yerde okuyamadım. Gözden kaçırdığım bir nokta daha olabilirmi? işlemci bag-donanımsal hatasıdır denebilirmi?
 
Osilatör hassasiyeti çok önemliyse dahili R/C osilatörleri kullanmayınız.

Ürün datasheetinde +-%2 sapma olabilir diye belirtilmiş. OSCONN registerindeki TUN<3:0> bitleri ile kaibrasyon imkanınız var ama, seri üretim bir proje ise her kart için kalibrasyon ile uğraşmak çok zahmetli olur. Kalibre edersiniz ortam şartları (sıcaklık) değişir kalibrasyon yalan olur :)


firefox_i1L5H3oE4Z.png
 
RC15 pinini GPIO için kullanabilmek için dahili R/C osilatöre muhtacım. Henüz RC15 i GPIO amaçlı 2010 işlemcide kullanabilmeyi başarabilmiş değilim.
Ben %1 sapma dedim ama, %2 hatada işimi bozmaz diyebilirim. Çok hassas zamansal bir işlemim yok aslında. Allah +- %3 ün den korusun.
 
%2 sapma neredeyse bütün uygulamalarda sorunsuz çalışır. Sadece audio streaming veya benzeri uygulamalarında sorun çıkar, çünkü buffer tüketim ve üretim zamanlaması oarada kritiktir. Ben de daha fazla sapma bekliyordum.
 
Tekrar baktımda. Kol-duvar saati yapmıyorumki ben. +-%5 bile oynasa bana zararı kesinlikle olmaz. Bunu anlayanda olmaz. Kaldıki RC osilatörün %2 oynayabildiği yerde normal XT harici kristal hiçmi oynamıyor. Bana gerekmez ama tasarımına göre, belki kullanıcıya osilatörün zamansal düzeltim imkanı sunulabilir, bu amaçla ufak bir pot bile iş görebilir. Programda en tepede tek bir FCY değeri için, menüden veya potdan kullanıcı tarafından düzeltme değeri (bir çarpan-bölen değeri) programda kullanılabilir belki. Yukarıdaki tabloda belirtilen TUN bitlerine son kullanıcı-operatöre müdahalede ettirilebilir. Bana buda gerekmez. Lüks şeyler bunlar.
Ayrıca nerde işlemcili kart görsem; yanında harici metal XT kristal yok, hep içindeki RC yi kullanmışlar. Bende enayi gibi gerekmediği halde hep dışına taktım osilatörü bunca zaman. Çok boş çalışmışım.
 
Saat bile yapıyor olsan, harici RTC kullanır, gene FRC ile programı çalıştırabilirsin :)

Standart kristal osilatörlerin stabilitesi iyi bir saat için yeterli değil.
 
Dahili ve harici osilatör kullanımı uygulamaya ve ihtiyaca göre bazende kullanılan mcunun özelliklerine veya projeye özgü aklımıza gelmeyen bir nedenden dolayı mecbur kalabiliriz.

Yüksek adetli veya seri imalat bir ürün ise maliyet noktasında ince eleyip sık dokumak gerekir. Hobi amaçlı veya az adetli bir proje ise harici xtall olup olmamasının bana göre bir önemi yok.

Yanlış hatırlamıyorsam pic16 ve pic18 serilerinde dahili osilatör frekansı sabit. Gerçi harici osilatör frekansıda sabit yani PLL özelliği yok. Dahili osc 8 Mhz sabitlenmiş fakat mcu harici xtall ile 20Mhze kadar çalışabiliyor. Yüksek hıza ihtiyacımız varsa mcunun desteklediği daha üst hızlara çıkmak için dahiliden vazgeçmek zorunda kalırız.

Bir diğer nokta ise saat benzeri uygulamalarda, ocilatörde ki sapma zaman içerisinde toplanarak sapma / hata miktarını artırır. Ama bir butona basınca 3 saniye çıkış versin gibi bir kullanımda hatanın toplanarak artma durumu oluşmaz. Butona her basıldığında 3sn çıkışda oscdeki sapma kadar bir hata oluşur, sonraki veya önceki butona basmalar şu andaki çıkışın sapmasına bir etkisi olmaz.

Harici osilatörlerde ppm değeri var. +-10ppm, +-20ppm gibi. Yani hatasız komponent yok :)

Son bir öneri, cihazın sağlıklı çalışması ile ilgili durumlarla son kullanıcıyı uğraştırmamak gerekir. Kullanıcı cihazın yapması gereken fonksiyonları kullansın, kalibrasyonu ile mümkünse uğraşmasın.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
7,546
Mesajlar
126,377
Üyeler
3,059
Son üye
fb88gay

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
Back
Top