10mhz, 4xpll 40mhz ve saat'in çalışması?

Başlatan AKP, 08 Eylül 2009, 00:07:38

AKP

merhabalar, öncelikle problemlerim bitmediği için kusuruma bakmayın bir uygulamada 10mhz kristali 4*pll 40mhz olarak kullanıyorum ve bu uygulamaya saat eklemek istiyorum internette lcd ile yapılmış bir saat buldum 4mhz de çalışıyor bu saati kendi uygulamama bir şekilde uydurdum fakat saat çok hızlı ilerliyor demek istediğim 40mhz de 4 mhz deki gibi çalışması için ne yapabilirim kodlar içinde tüm configler tamam.

Device=18F452 
XTAL=10
CONFIG_START                    
OSC = HSPLL                     
CONFIG_END 
Declare PLL_Req = On

hasangurlek

Saat kaynağı nedir ? Anladığım kadarıyla harici osilatör değil, timerlardan biri saat kaynağı olarak kullanılıyorsa o timera ait set değerlerini 40 mhz e göre değiştirmelisiniz.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

AKP

Alıntı yapılan: "hasangurlek"Saat kaynağı nedir ? Anladığım kadarıyla harici osilatör değil, timerlardan biri saat kaynağı olarak kullanılıyorsa o timera ait set değerlerini 40 mhz e göre değiştirmelisiniz.
ds1302

hasangurlek

DS1302 kullanıyorsunuz ve saat hızlı ilerliyor ? Bu durumda demekki RTC den okuma yapabiliyorsunuz. Geriye üç neden kalıyor;

1-DS1302 kristali 32.768 khz değil
2-Registerlerdeki CH,12/24 gibi bitleri dataya karıştırıp, yanlış görüntülüyorsunuz.
3-DS1302 arızalı (ki hızlı saydığına göre zor ihtimal)

Hızlıdan kastınız eğer günde dakika boyutunda ise, RTC osilatöründe fazlaca gürültü var. Bu durumda osilatör kasasını şaseye lehimleyin ve ayaklarını guard ringe alın.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

AKP

Hocam öncelikle şunu belirteyim herşey proteus üzerinde, daha uygulamaya geçmedim. Sonra saat donanımı farklı board'da kurdum  gerçekte 4mhz'de sorunsuz çalışıyor. Ve ben bu saat'in kodlarını kendi kodlarıma uyguladım ve 4mhz'de proteusta normal çalışıyor. Ve yine kodları aşağıdaki gibi yaptığımda proteusta sapıtmalar başlıyor
Device=18F452 
XTAL=10 

Declare PLL_Req = OFF '40mhz

ALL_DIGITAL = True
 
CONFIG_START                    
OSC = HSPLL
WDT = OFF
LVP = OFF
PWRT = On                     
CONFIG_END


proteusta gözle görülen problemler

cpu %100

saniye dakikata 1 işliyor.

ds1820 yi 10 kere okumama rağmen glcd'de 0,5 C okuyorum.

4mhz'den 40mhz'e çıktığım için kodlardaki döngü ve süreleri 4 kat yükselttim herşey normale döndü gibi ama bu sefer ds1820 yi okumama rağmen ekranda 0,5C okuyorum.

ekran sapıtıyor saniyede 1 tirremeler gerçekleşiyor.

sanırım algoritmayı yanlış kurdum ben öyle düşünüyorum.

Logan

DS1820 entegresinden sıcaklık değerini yanlış okumanı şu duruma bağlayabiliriz;

Alıntı Yap
4mhz'den 40mhz'e çıktığım için kodlardaki döngü ve süreleri 4 kat yükselttim.

4 Mhz'de iken 10 Mhz kristal takıp PLL'i aktif ettiğiniz zaman bütün döngü sürelerini 10 ile çarpmanız gerekiyor. Bildiğiniz gibi DS1820 One Wire haberleşme prokolü ile kontrol ediliyor. Bu sebeple zamanlamalar ve süreler çok önemlidir.

DS1302 hatasına gelince, proteusa bu konuda çok fazla güvenmeyin. Zaman zaman sapıtabiliyor. Bu sebeple devrenizi protoboard üzerine kurmanızı ve gerçek şartlar altında denemenizi tavsiye ediyorum.
İmza.

AKP

Logan hocam haklısınız gerekli süreleri 10 ile çarptım şimdi herşey normale döndü.

emeği geçen herkese teşekkür ediyorum.

hasangurlek

Alıntı yapılan: "AKP"Logan hocam haklısınız gerekli süreleri 10 ile çarptım şimdi herşey normale döndü.

emeği geçen herkese teşekkür ediyorum.

Bir yaşıma daha girdim, nasıl olaki DS1302 sizin kodlarda yaptığınız x10 düzeltmeyi farkedip doğru çalışmaya başladı ?
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

AKP

size haksızlık yaptığımı düşünmüyorum dediğim gibi kodlar 4mhz de normal çalışıyordu bende gerekli yerdeki süreleri logan hocamızın dediği gibi 10 ile çarptım şimdi devre normal çalışıyor yani süreleri küçük tutmuşum ve devreye birçok özellik daha eklemek istiyorum onlarla uğraşmaya başlayacam.

drmp

ben bir şey anladım ya ne yapmaya çalışıyorsun ki

AKP

ne yaptığım önemlimi neden konuyu daha ileri götürüyorsunuzki sizi anlamıyorum.

hasangurlek

Alıntı yapılan: "AKP"ne yaptığım önemlimi neden konuyu daha ileri götürüyorsunuzki sizi anlamıyorum.

Sayın AKP

Benim anlayamadığım DS1302 den aldığın saat bilgisinin çok hızlı ilerlemesi problemini programdaki değerleri değiştirerek çözmen. Bu tamamen olanaksız. Saat hızlı ilerliyorsa ve bu bilgiyi bir RTC den alıyorsan, programdaki değerlerin değiştirilerek saat sayma hızının düzelmesi bir muammadır. Şunu dersen "DS1302 iletişimi için programda I2C SSPADD değerini 40 mhz göre değiştirdim" o zamanda önceki durumda saat bilgisini hiç alamaman gerekirdi !
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

AKP

şöyle biliyorum ds1302 ye pil takılı olduğu sürece ds'nin iletişim uçları pic e bağlı olmasa bile ds kendi çapında bilgisini korur. Yani kendi içinde normal olarak çalışır. Pic den bağımsız olarak. Bunu size iyi anlatamasamda kafamda canlanıyor bişeyler. Pic saat bilgisini okuyor fakat lcd de çok hızlı ilerliyor. Vallaha hocam bende anlamadım saat çok hızlı sayıyordu.

Ama şunu söyleyeyim ds1302 de Automatically Inistalize PC CLOCK? işaretli olmasına rağmen similasyon başladığında pc saati ile ds1302 nin saatleri farklıydı.

dediğim gibi bende anlamadım düzeldi belkide haklısınız bunuda bilmiyorum belki başka bişeyden kaynaklandı düzeldi ama süreleri yükselttiğimde normale döndü ben bunu biliyorum.