avatar_Burak

* DS3231 RTC KULLANIMI *

Başlatan Burak, 13 Eylül 2015, 15:05:02

ete

İki türlü yapılabilir.
Metod-1: Her saniye değişiminde Toggle LED yaparsın. Onuda SN ve ESN diye iki değişkenin olur.
Saat okuduğunda ESN=SN ise geri döndürürsün. SN değişmiş ise ESN SN ye eşit olmayacaktır. İşte o konumda Toggle yaptırıp ESN=SN yaparsın.

Metod-2: Bu entegrenin birde 1Hz çıkışı var. Onu kesmeye bağlayıp her kesme oluştuğunda Toggle led yaparsın. Bu belkide en iyisi.

Ete

Maxim

hocam dediğinize benzer birşey yaptım, şu an sorun yok (lcd ekran)

SN byte, SN_ bit tanımlı

önce SN=Q[0] yaptım
sonra saati okudum
sonra If SN<>=Q[0] Then Toggle SN_

en sonda eğer sn_1=1 ise ":" , değil ise " " yazdırdım.

ete

şu komut If SN<>=Q[0]  aşağıdaki şekilde yazılmalı
IF SN <>Q[0]  veya IF SN!=Q[0] şeklinde olabilir.   (! işareti değil anlamına kullanılıyor PBP da var ama Protonda varmı bilemiyorum)
IF SN!=Q[0] THEN
  Toggle LED
   SN=Q[0]
ENDIF
RETURN

ETE

Maxim

sizin dediğiniz şekilde de oldu
! kabul etti

Maxim

DS3231 hakkında birşey öğrenmek istiyorum
acaba salise okuyabilirmiyiz??

dataseete baktım INT/SQW ucundan 1hz , 1024khz, 4096khz ve 8192khz pwm frekans çıkabiliyor
bunları kullanarak salise hesabı yapabilirmiyiz? mümkünmüdür?

ete

1 salise saniyenin 1/60 değeridir. Yani saniyeyi 60 a bölersek 1 salise elde etmiş oluruz.
Normalde RTC içinde bu değeri verecek bir register yok. Geriye frekans çıkışlarını kullanmak kalıyor.
En düşük frekans 1 Hz işimize yaramıyor. Onun bir üzeri ise 1,024 Khz işimize yarayabilir.
BU arada data sheete baktım 1.024Khz diyor. Bu durumda çıkan sinyal 1024 Hz olması gerek. Onlarda nokta , bzdeki virgül yerine kullanılıyor bizdekinin tersine. Bu durumda, Kare dalga çıkışı bir INT girişine bağlanarak oradan gelen pulslar sayılmalı ve her 17 Puls=1salise olarak kabul edilmelidir. Zira 1 sn de 1024 puls gelir ise bunu 60'a bölersek 1024/60=17 puls bir salise edecektir.
Tabiiki bunu bir yerlerde göstermek gecikmeye yol açar Bu nedenle mümkün olan en hızlı işlemci ile bu iş yapılması gerekir.

Ete

OG

https://forum.donanimhaber.com//mesaj/yonlen/1405384

Alıntı Yapsaat
dakika - 60/1
saniye - 60/1
salise - 60/1
rabia - 60/1
hamise - 60/1
sadise - 60/1
sabia - 60/1
samine - 60/1
tasia - 60/1
aşire - 60/1

Burak

Bir an için kendi (Türkçe) zaman kavramı olmayan bir millet olduğumuzu düşünüp gülümsedim :) Arapçaya karşı olduğum için değil yanlış anlaşılmasın ama Türkçe olsun isterdim :)) (Naçizhane)

Burak Günay
Ω Gens Una Sumus Ω

Analog

Merhaba arkadaşalar.
ETE hocanın DS1307 ile yaptığı saati DS3231 kullanarak yapmak istedim. Her nedense DS3231 i simülasyonda okuyamıyorum. Simülasyon kısa bir süre saati gösterdikten sonra tuhaflaşıyor ilgisiz değerler alıyor. Günlerdir sorunu kendimce araştırdım ama bir türlü nereden kaynaklandığını bulamadım. Acil yardımlarınızı bekliyorum. Devreyi 16F883 ve elimde 32mm Ortak Anot displeyler olduğu için onlara göre tasarladım. Devreyi ve kodları ilişikte verdim.
Sorunum DS3231 den verileri her nedense alamıyorum. Simülasyon düzgün çalışmıyor.

ete

Simulasyonda DS3232 gibi bir eleman kullanmışsın. Farklı özellikleri olabilir.
DS3231 in en belirgin farkı 3-4V aralığında bir besleme ile çalışmasıdır. 5V ile çalışıyorsanız mutlaka iki adet seri diyot bağlayarak besleme verin bu RTC ye. Onun dışında Pullup dirençleri olması gerekir gerisi DS1307 ile aynıdır hatta 1307 için yazılmış kodlar birebir çalışmaktadır.
Ete

Analog

Sayın ETE Hocam. İsiste DS3231 olmadığı için DS3232 yi kullandım. Elimde DS3231 mevcut ama simulasyonda çalıştıramadığım için devreyi kurup denemedim. Kodlar sizin DS1307 de kullandığınız kodlar zaten. Söylediğiniz gibi pull-up dirençleri ve 3,3 v ilaveside mevcut devrede. Simülasyonda +5v çalışıyor. 3,3v uygulayınca çalışmıyor. En azından simülasyondaki oluşan renklerde göremedim. Rica etsem bir bakarmısın verdiğim devre ve kodlara. 3 haftadır kafa yoruyorum bu devreye. Söylediğiniz gibi DS1307 ile aynı kodlar ama nerde hata yaptım çözemedim.
Saygılarımla.

ete

Ben önceden DS1307 kullandığım gerçek devrede DS1307 yi söküp onun beslemesine 2 seri diyot bağlayarak DS3231 kartına verdim. CLK ve DTA pinlerinden birer kablo ile DS3231 in kartına bağlantı yaptım ve direk çalıştırdım.
Simulasyonla uğraşma boşuna. Sistem çalışıyor .
Ete

Analog

İlginize çok teşekkür ederim hocam. Söylediğiniz gibi devre üzerinde çalıştıracağım.
Saygılarımla.

erdoganacun

değerli  arkadaşlar  sayın ETE  hocam   öncelikle  saygılar  sevgiler .. DS3231   hk  sıcaklık sensörü  olarak  kullanan  arkadaşlar  varmı   birde  DS18B20  ölçümleri  uyuşuyormu  merak ettim eğer  18B20  ölçüm  uyuşuyorsa  o  zaman  DS3231  kullanalım . bu konuda   tecrübesini yapmış  arkadaşlardan ricam  paylaşırlarsa  sevinirim

Analog

Öncelikle herkeze hayırlı sabahlar, hayırlı işler,
Ben her ikisinide kullanıyorum. Ölçümlerimde ondalık kısmını tek basamak gösteriyorum.  DS18B20'yi 12 bit ölçüm yaptırıyorum 0,1 derecelik artışlarla ısı değişimlerini gösteriyor. DS3231 ise 0,2 derecelik artışlarla ısı değişimlerini gösterebiliyor. DS3231 in piyasada iki tip çipi var. DS3231M bol bulunanını, birde DS3231SN çipi var. DS3231M ısı değişimlerini seri bir şekilde tepki verebiliyor ancak elektrik kesintilerinde saniye bazında ayarında oynamalar oluyor. DS3231SN modül ısı değişimlerinde birazdaha geç tepki veriyor ancak oda elektrik kesintilerinden etkilenmiyor.
İyi çalışmalar dilerim.

Powered by EzPortal