DS 1302 RTC sorunu

Başlatan TAYM, 12 Ocak 2006, 13:46:00

TAYM

DS 1302 RTC entegresini 16f877 ile bağladım.
ISIS'te normal yazıp okuyabılıyorum.
Ama TEKOPIC V2.1 deneme kartında çalıştıramadım.
BAS ,PROTEUS (DSN), HEX aşağıda:

http://www.hemenpaylas.com/download/75835/RTC.rar.html

PROTEUS'TA bağlamadan da çalışıyor ama gerçekte sadece VCC2'ye 5V vermek yeterlimi?
yoksa VCC1'e de 5V verecekmiyiz. aslında ben ikisinide denedim ama olmadı
Buarada KRİSTALin yanına 22 pf yeterli mi?
saygılar

ete

Birde aşağıdaki kodu dene bakalım.
Kristal'e kondansatör bağlanmıyacak bildiğim kadarı ile. Direkt kristal bacaklarını DS1302 nin kristal pinlerine bağlayacaksın.

lcdout $fe,1
   pause 300
        LOW RST         ' Reset RTC
       LOW SCLK
      YIL = $87
        GUN =  $21
       AY = $11
        GUNADI =$06
        SAAT = $18
        DAKIKA = $13
        SANIYE = $10

SETTIME:
        high RST  
        SHIFTOUT IO, SCLK, LSBFIRST, [$8E, 0]
        SHIFTOUT IO, SCLK, LSBFIRST, [$BE, SANIYE, DAKIKA, SAAT,GUN , AY, GUNADI, YIL, 0]
        low RST 
        PAUSE 100

ANA_DONGU:
          GOSUB GETTIME
          PAUSE 50
          LCDOUT $FE,$84, HEX2 SAAT,":",HEX2 DAKIKA,":",HEX2 SANIYE
          LCDOUT $FE, $C4,HEX2 GUN,"/",HEX2 AY,"/",HEX2 YIL
          GOTO ANA_DONGU
GETTIME:
        High RST 
        SHIFTOUT IO, SCLK, LSBFIRST, [$BF ]  
        SHIFTIN IO, SCLK, LSBPRE, [SANIYE, DAKIKA, SAAT,GUN , AY, GUNADI, YIL, CONTROL]
        LOW RST        ' RESET RTC
        RETURN
END

senin hatan sanırım arada rst pinini bir kere high ve low yapman.
Zira DS1302 ye komut verilirken daha doğrusu okuma veya yazma yapılırken işin bitinceye kadar RST bacağı HIGH da tutulacak iş bitince LOW'a çekilecek.
Şu anda seçenekli olarakl PC nin saatini takip edebiliyor. Bu normal devrede de doğru çalışacağı anlamına gelir.

Ayrıca Ekrana verme komutunda da ufak bir değişiklik yaptım. Her seferinde bir kırpışma meydana gelmeside hoş değil. Bu yüzden Ekranı silem komutunu bir kere programın en başında verip 300 ms. bir bekleme ilave ettim. sonraki bölümlerde ekranı her seferinde silmek yerine yalnızca değişenleri yazdırmak surati ile kırpışmasız bir ekran elde edilmiş oldu.

KOlay Gelsin.
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

TAYM

ETE HOCAM cevabınız için çok teşekkür ederim hemen şimdi gönderdiğiniz kodu deneyip sonucu bildireceğim tekrar teşekkürler.  saygılar..

TAYM

ETE HOCAM maalesef verdiğiniz koduda çalıştıramadım.
Ben deneme boardu olarak TEKOPIC V2.1'i kullanıyorum. Kartta bir adet 32.768 khzlik osilatör var. ve Bu kartın kullanım klavuzunda bunun RTC uygulamaları için olduğu yazıyor.Ayrıca bu osilatörün yanlarında iki adet 33pf kapasite var.önce direk bunu kullandım. daha sonra ayrı bir yerde sadece osilatörü bağladım yine olmadı.
proteusta çalışıpta boardda çalışmaması ilginç.
KAFAYI YİYECEM VALLA

ete

Sorun muhtemelen TEKOPIC den kaynaklanıyor. Ama sebebini bilemem kart elimde olmadığı için. Ben olsam kullandığım pinleri başka bir programla test ederim. Birde RTC nin osilatörünün çalışıp çalışmadığını test etmek gerekir.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

mcan

bredbord varsa onun üzerinde dene

uzaylivolkan

ds1302 nin 6.bacağı ile pic arasına 1k lık bir direnç koy
Sorunun hallolacaktır. Bi zamanlar benide kasmıştı bu olay

teketek

@ETE hocam verdiğiniz kodu bendeki başka bir programın içine yerleştirdim ve proteusta simüle ettim.Yalnız ufak bi sorunla karşılaştım, play tuşuna bastığımızda o anki saat/dakika neyse o aynen ekranda kalıyor.Yani bilgisayarın saat ve dakikası ilerlerken bizim devredeki olduğu yerde kalıyor.Saat/dakika böyleyse sanırım gün/ay/yıl da böyledir.

Bunu nasıl çözebiliriz ?
Bilgi fark yaratır..

ete

teketek,

simulasyon işi farklı bir şey. Ekranda gördüğün bilgisayar saati programın işleme saatini gösterir. Genelde saliseler saniye gibi görünür. Bu yüzden gerçek devrede  denemeden bir hüküm yürütme derim.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com