RTV forum PL | NewsGroups PL

Problemy z komunikacją Mega16 z DS1307 przez I2C - brak odczytu adresu

DS1307 + Mega16

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z komunikacją Mega16 z DS1307 przez I2C - brak odczytu adresu

Jazzstar
Guest

Tue May 01, 2007 8:24 pm   



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
Guest

Tue May 01, 2007 8:35 pm   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f184d9$jvh$1@nemesis.news.tpi.pl...
Quote:
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
Guest

Tue May 01, 2007 10:55 pm   



Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f184qj$vo0$2@news.onet.pl...
Quote:

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
Guest

Tue May 01, 2007 11:29 pm   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f18d7p$e8n$1@nemesis.news.tpi.pl...
Quote:
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
Guest

Tue May 01, 2007 11:54 pm   



Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f18f1b$r71$1@news.onet.pl...
Quote:

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
Guest

Wed May 02, 2007 12:48 am   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f18gmt$js1$1@nemesis.news.tpi.pl...
Quote:
i2cdelay=100) ale nieznam na tyle bascoma.

Oscyloskop masz ?

Jazzstar
Guest

Wed May 02, 2007 11:19 am   



Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f18jjo$3a2$1@news.onet.pl...
Quote:

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
Guest

Wed May 02, 2007 2:52 pm   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f19okl$7dm$1@atlantis.news.tpi.pl...
Quote:
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
Guest

Wed May 02, 2007 5:30 pm   



Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f1a53b$ahu$1@news.onet.pl...
Quote:

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
Guest

Wed May 02, 2007 7:29 pm   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f1aeis$j04$1@nemesis.news.tpi.pl...
Quote:
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 Smile

Jazzstar
Guest

Wed May 02, 2007 7:51 pm   



Użytkownik "lwh" <l@vp.pl> napisał w wiadomości
news:f1alb1$k3j$1@news.onet.pl...
Quote:

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 Smile

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.
Guest

Wed May 02, 2007 8:02 pm   



Quote:
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
Guest

Wed May 02, 2007 8:20 pm   



Użytkownik "Jazzstar" <jazzstar@o2.pl> napisał w wiadomości
news:f1amkv$sr4$1@atlantis.news.tpi.pl...
Quote:
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 Smile

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z komunikacją Mega16 z DS1307 przez I2C - brak odczytu adresu

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map