DS1307 + Mega16
Jazzstar - 01-05-2007 21:45
DS1307 + Mega16 Witam.
Mam taki problem. Napisałem krótki programik podający adres układu I2C. Z
układem PCF8583 działa prawidłowo ale jak podepne DS1307 niewidzi go.
Niewiem już w czym może tkwić problem. Może jakoś pomożecie?
'-------------------------------------------------------------------------------
' DS1307.BAS
' Moje ds1307 clock on the Mega16 futurlec board
'-------------------------------------------------------------------------------
$regfile = "m16def.dat"
$lib "I2C.LBX"
$lib "Ds1307clock.lib"
$crystal = 8000000
'***LCD***
Config Lcdbus = 4
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 =
Portd.5 , E = Portd.1 , Rs = Portd.0
Config Sda = Portb.1
Config Scl = Portb.0
Config I2cdelay = 100
Dim Adres As Byte
Dim Adres2 As Byte
Lcd "Start poszukiwania"
Adres2 = 0
Cls
Lcd "Start"
Cls
For Adres = 0 To 254 Step 2
I2cstart
I2cwbyte Adres
I2cstop
If Err = 0 Then
Lcd "uklad pod: " ; Adres
Adres2 = Adres
Else
Cls
Lcd "Brak ukladu: " ; Adres
End If
Waitms 500
Next Adres
Cls
Lcd "uklad pod " ; Adres2
Waitms 500
Lowerline
Lcd "Koniec"
Cursor Off
End
lwh - 01-05-2007 21:45
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f184d9$jvh$1@nemesis.news.tpi.pl...
> Niewiem już w czym może tkwić problem. Może jakoś pomożecie?
Masz podpiętą baterię lub kondensator ?
Scalak był choć raz aktywowany ?
Jeśli nie to najpierw trzeba mu ustawić bit CH, bo inaczej nie zgłosi się
Jazzstar - 02-05-2007 00:45
Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f184qj$vo0$2@news.onet.pl...
>
> Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
> news:f184d9$jvh$1@nemesis.news.tpi.pl...
>> Niewiem już w czym może tkwić problem. Może jakoś pomożecie?
>
> Masz podpiętą baterię lub kondensator ?
> Scalak był choć raz aktywowany ?
> Jeśli nie to najpierw trzeba mu ustawić bit CH, bo inaczej nie zgłosi się
>
Bateria jest podpięta, ,układ niebył nigdy jeszcze wykożystywany.
Możesz podpowiedzieć jak ten bit ustawić ??
lwh - 02-05-2007 00:45
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f18d7p$e8n$1@nemesis.news.tpi.pl...
> Możesz podpowiedzieć jak ten bit ustawić ??
Na 8 stronie wytłuszczonym drukiem pisze by go wyzerować przy pierwszej
inicjacji (i po każdym zaniku zasilania rezerwowego).
Jednak mam wątpliwość, czy to to, bo twój program ma zapewne wykrywać
odpowiedź ACK na kolejno wysyłany adres, bo by cokolwiek ustawiać musi
najpierw odpowiedzieć zerem na adres 208.
Masz go dobrze podłączony ? Częstotliwość I2C nie jest zbyt wielka ?
Program nie może być zły skoro inne wykrywał.
Jazzstar - 02-05-2007 01:46
Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f18f1b$r71$1@news.onet.pl...
>
> Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
> news:f18d7p$e8n$1@nemesis.news.tpi.pl...
>> Możesz podpowiedzieć jak ten bit ustawić ??
>
> Na 8 stronie wytłuszczonym drukiem pisze by go wyzerować przy pierwszej
> inicjacji (i po każdym zaniku zasilania rezerwowego).
>
> Jednak mam wątpliwość, czy to to, bo twój program ma zapewne wykrywać
> odpowiedź ACK na kolejno wysyłany adres, bo by cokolwiek ustawiać musi
> najpierw odpowiedzieć zerem na adres 208.
>
> Masz go dobrze podłączony ? Częstotliwość I2C nie jest zbyt wielka ?
> Program nie może być zły skoro inne wykrywał.
>
Podłączony jest OK. 1-2 pin kwarc (32,768kHz), 3 - aku (3V6), 4 - GND, 5-
PB.1, 6 - PB.0, oba z rezystorami podciągającymi 4k7, 8 - Vcc z
kondensatorem 100n. Częstotliwość chyba nie jest za duża (ustawione
i2cdelay=100) ale nieznam na tyle bascoma.
lwh - 02-05-2007 01:46
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f18gmt$js1$1@nemesis.news.tpi.pl...
> i2cdelay=100) ale nieznam na tyle bascoma.
Oscyloskop masz ?
Jazzstar - 02-05-2007 12:45
Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f18jjo$3a2$1@news.onet.pl...
>
> Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
> news:f18gmt$js1$1@nemesis.news.tpi.pl...
>> i2cdelay=100) ale nieznam na tyle bascoma.
>
> Oscyloskop masz ?
No właśnie cały problem polega na tym, że niemam pod ręką. Tylko mierniczek
uniwersalny.
lwh - 02-05-2007 16:45
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f19okl$7dm$1@atlantis.news.tpi.pl...
> No właśnie cały problem polega na tym, że niemam pod ręką. Tylko
> mierniczek uniwersalny.
Czyli możemy jedynie zgadywać, co jest źle.
Nie bawię się we wróżbitę.
Spróbuj np. wpisać ten delay maksymalny, by to bardzo wolno działało i może
na karcie dźwiękowej robiącej za oscyloskop coc tam zobaczysz, co hasa po
pinach zegara i danych.
Wymuś ciągłe podawanie adresu 208 (identyfikator DS1307)
Jazzstar - 02-05-2007 18:45
Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f1a53b$ahu$1@news.onet.pl...
>
> Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
> news:f19okl$7dm$1@atlantis.news.tpi.pl...
>> No właśnie cały problem polega na tym, że niemam pod ręką. Tylko
>> mierniczek uniwersalny.
>
> Czyli możemy jedynie zgadywać, co jest źle.
> Nie bawię się we wróżbitę.
>
> Spróbuj np. wpisać ten delay maksymalny, by to bardzo wolno działało i
> może na karcie dźwiękowej robiącej za oscyloskop coc tam zobaczysz, co
> hasa po pinach zegara i danych.
> Wymuś ciągłe podawanie adresu 208 (identyfikator DS1307)
>
Wyjaśniło się, wylutowałem aku i ruszyło. Ktoś spaprał projekt, najwyraźniej
ten układ nietoleruje 3,6V
lwh - 02-05-2007 20:45
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f1aeis$j04$1@nemesis.news.tpi.pl...
> Wyjaśniło się, wylutowałem aku i ruszyło. Ktoś spaprał projekt,
> najwyraźniej ten układ nietoleruje 3,6V
Hmmm...Tego nie testowałem.
Używam ich z faradowym kondensatorem - kto by tam gmyrał po latach w
bateriach:-)
Niby on jest przewidziany dla 3V baterii litowych
Max dopuszczalne napięcie baterii to 3,5V
Aż mi się wierzyć nie chce, że 0,1V jest dla niego tak krytyczne, chociaż
może świadomie Dallas wiedział co pisze :-)
Jazzstar - 02-05-2007 21:45
Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f1alb1$k3j$1@news.onet.pl...
>
> Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
> news:f1aeis$j04$1@nemesis.news.tpi.pl...
>> Wyjaśniło się, wylutowałem aku i ruszyło. Ktoś spaprał projekt,
>> najwyraźniej ten układ nietoleruje 3,6V
>
> Hmmm...Tego nie testowałem.
> Używam ich z faradowym kondensatorem - kto by tam gmyrał po latach w
> bateriach:-)
> Niby on jest przewidziany dla 3V baterii litowych
> Max dopuszczalne napięcie baterii to 3,5V
> Aż mi się wierzyć nie chce, że 0,1V jest dla niego tak krytyczne, chociaż
> może świadomie Dallas wiedział co pisze :-)
Dokładnie to wygląda tak, akumlatorek jest 3,6V ale napięcie na nim jest
4,1V. Wylutowałem ten aku i podpiąłem potencjometr, przy napięciu 3,8V
jeszcze chodzi, 3,9 juz nie. Jakoś wcześniej nieprzyszło mi do głowy
sprawdzić to napięcie.
Wiktor S. - 02-05-2007 21:45
> Mam taki problem. Napisałem krótki programik podający adres układu
> I2C. Z układem PCF8583 działa prawidłowo ale jak podepne DS1307
> niewidzi go. Niewiem już w czym może tkwić problem. Może jakoś
> pomożecie?
Pierwszy problem polega na tym, że program piszesz ciurkiem, przez co nie
widać co się w nim dzieje:
[...]
Dim Adres As Byte
Dim Adres2 As Byte
Lcd "Start poszukiwania"
Adres2 = 0
Cls
Lcd "Start"
Cls
For Adres = 0 To 254 Step 2
I2cstart
I2cwbyte Adres
I2cstop
If Err = 0 Then
Lcd "uklad pod: " ; Adres
Adres2 = Adres
Else
Cls
Lcd "Brak ukladu: " ; Adres
End If
Waitms 500
Next Adres
Cls
Lcd "uklad pod " ; Adres2
Waitms 500
Lowerline
Lcd "Koniec"
Cursor Off
End
prawda, że czytelniej?
--
Azarien
lwh - 02-05-2007 21:45
Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f1amkv$sr4$1@atlantis.news.tpi.pl...
> jeszcze chodzi, 3,9 juz nie. Jakoś wcześniej nieprzyszło mi do głowy
> sprawdzić to napięcie.
Zgodnie z prawami Murphy'ego?:
trywialny problem jest tam, gdzie się go najmniej spodziewamy i poszukiwania
zajmą mnóstwo czasu :-)
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl