PCF8583P - problem



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: <foxtrot_at_nospam_poczta.onet.pl>
Subject: PCF8583P - problem
Date: 9 Aug 2002 08:53:06 +0200


Zaplanowałem sobie, że spróbuję zbudować sterownik działający w cyklu dobowym.
Czas miał zliczać właśnie PCF8583 z dodatkowym podtrzymaniem bateryjnym. Do
tego Atmel 89C4051, wyświetlacz. PRoblem w tym, że RTC nie idzie - tzn. zlicza
setne sekundy, ale sekund, minut, godzin już nie. Przynajmniej mnie się nie
udało odczytać - próbowałem pod Bascomem w symulacji sprzętowej, programowałem
procka, próbowałem też programem napisanym w C. Nic. Za każdym razem rejestry
sekund, minut, godzin dają w odczycie zera. Próbowałem czy da się zapisać i
odczytać poprawnie dane z pozostałej pamięci RAM zegarka - bez problemów. W
czym może tkwić problem?

pozdrawiam
Marcin

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Miś Uszatek" <uszatek_at_nospam_w.pl>
Subject: Re: PCF8583P - problem
Date: Fri, 9 Aug 2002 12:01:36 +0200


Może "za szybko" odczytujesz. Spróbuj dać jakieś większe opóźnienia przy
odczycie. Miałem coś podobnego jak procedurkami ddo EEPROmu próbowałem to
odczytywać.
Jak rozwiązałeś problem lat - on liczy tylko do 4 lat ?
Jak coś to mam procedurkę dla AVR - 8535 w C - napewno działa.
Pozdrawiam !

--
Miś Uszatek
----------------------------------------------------------------------------
----------------------------
email: uszatek_at_nospam_w.pl
www: www.windowsce.pl www.pda.pl www.pocketpc.pl


Użytkownik <foxtrot_at_nospam_poczta.onet.pl> napisał w wiadomości
news:5606.0000077e.3d5366d1_at_nospam_newsgate.onet.pl...
> Zaplanowałem sobie, że spróbuję zbudować sterownik działający w cyklu
dobowym.
> Czas miał zliczać właśnie PCF8583 z dodatkowym podtrzymaniem bateryjnym.
Do
> tego Atmel 89C4051, wyświetlacz. PRoblem w tym, że RTC nie idzie - tzn.
zlicza
> setne sekundy, ale sekund, minut, godzin już nie. Przynajmniej mnie się
nie
> udało odczytać - próbowałem pod Bascomem w symulacji sprzętowej,
programowałem
> procka, próbowałem też programem napisanym w C. Nic. Za każdym razem
rejestry
> sekund, minut, godzin dają w odczycie zera. Próbowałem czy da się zapisać
i
> odczytać poprawnie dane z pozostałej pamięci RAM zegarka - bez problemów.
W
> czym może tkwić problem?
>
> pozdrawiam
> Marcin
>
> --
> Wysłano z serwisu OnetNiusy: http://niusy.onet.pl



Poprzedni Następny
Wiadomość
Spis treści
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: RE: PCF8583P - problem
Date: 9 Aug 2002 12:40:36 +0200


tego Atmel 89C4051, wyświetlacz. PRoblem w tym, że RTC nie idzie
- tzn. zlicza
setne sekundy, ale sekund, minut, godzin już nie. Przynajmniej
mnie się nie
udało odczytać - próbowałem pod Bascomem w symulacji sprzętowej,
programowałem
procka, próbowałem też programem napisanym w C. Nic. Za każdym
razem rejestry
sekund, minut, godzin dają w odczycie zera. Próbowałem czy da się
zapisać i
odczytać poprawnie dane z pozostałej pamięci RAM zegarka - bez
problemów. W
czym może tkwić problem?
A jakie są oporniczki do plus zasilania od linii SCL SDA?
Może kondensator odsprzęgający?
A może wpisałeś zły adres do zapisu do PCF?
Przykładowe programy z BASCOM'a pracują poprawnie, ewentualnie
możesz spowolnić lub przyspieszyć transmisję.
pzdr
Artur


--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika


Poprzedni Następny
Wiadomość
Spis treści
From: "Jasto Kalip" <tom1234_at_nospam_ds2.pg.gda.pl>
Subject: Re: PCF8583P - problem
Date: Fri, 9 Aug 2002 15:50:02 +0200



Użytkownik <foxtrot_at_nospam_poczta.onet.pl> napisał w wiadomości
news:5606.0000077e.3d5366d1_at_nospam_newsgate.onet.pl...
Zaplanowałem sobie, że spróbuję zbudować sterownik działający w cyklu
dobowym.
Czas miał zliczać właśnie PCF8583 z dodatkowym podtrzymaniem bateryjnym.
Do
tego Atmel 89C4051, wyświetlacz. PRoblem w tym, że RTC nie idzie - tzn.
zlicza
setne sekundy, ale sekund, minut, godzin już nie. Przynajmniej mnie się
nie
udało odczytać - próbowałem pod Bascomem w symulacji sprzętowej,
programowałem
procka, próbowałem też programem napisanym w C. Nic. Za każdym razem
rejestry
sekund, minut, godzin dają w odczycie zera. Próbowałem czy da się zapisać
i
odczytać poprawnie dane z pozostałej pamięci RAM zegarka - bez problemów.
W
czym może tkwić problem?

pozdrawiam
Marcin

Ja miałem ten sam problem ale z ds1678 też RTC. Okazało się, że układ nie
inkrementuje adresu i nie można sczytywać po kolei kilku bajtów. Więc każdy
bajt rozpoczynałem stopem potem adres(sekundy, minuty...) i odczyt bajtu i
stop. W ten sposób działa bez problemu.


Tomek



Poprzedni Następny
Wiadomość
Spis treści
From: "Miś Uszatek" <uszatek_at_nospam_w.pl>
Subject: Re: PCF8583P - problem
Date: Fri, 9 Aug 2002 17:08:31 +0200



Ja miałem ten sam problem ale z ds1678 też RTC. Okazało się, że układ nie
inkrementuje adresu i nie można sczytywać po kolei kilku bajtów. Więc
każdy
bajt rozpoczynałem stopem potem adres(sekundy, minuty...) i odczyt bajtu i
stop. W ten sposób działa bez problemu.

To dobry pomysł - ja właśnie tak samo robię i działa. Może nie wszystkie
egzemplarze PCF mają funkcję autoinkrementowania adresu (choć to by było
dziwne)
Pozdrawiam !



Poprzedni Następny
Wiadomość
Spis treści
From: <foxtrot_at_nospam_poczta.onet.pl>
Subject: Re: PCF8583P - problem
Date: 9 Aug 2002 18:10:56 +0200



Ja miałem ten sam problem ale z ds1678 też RTC. Okazało się, że układ nie
inkrementuje adresu i nie można sczytywać po kolei kilku bajtów. Więc
każdy
bajt rozpoczynałem stopem potem adres(sekundy, minuty...) i odczyt bajtu i
stop. W ten sposób działa bez problemu.

To dobry pomysł - ja właśnie tak samo robię i działa. Może nie wszystkie
egzemplarze PCF mają funkcję autoinkrementowania adresu (choć to by było
dziwne)
Pozdrawiam !


Dzięki wszystkim za porady. Problem się rozwiązał. Najpierw okazało się, że
dioda przez którą szedł plus zasilania ze stabilizatora 5V była padnięta. Po
jej wymianie dalej nie dało się odczytać rejestrów. Pomogło dopiero wyjęcie z
podstawki eeproma - AT24C04, który wisiał na tej samej magistrali. Wygląda na
to, że coś w nim nawaliło. Teraz bez problemu da się odczytać rejestry.
BTW. Czy ktoś ma gotową funkcję w C do zamiany liczby na kod bcd? Nie mam
koncepcji jak to anpisać, by zajeło to jak najmniej kodu...

pozdrawiam
Marcin

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: =?ISO-8859-2?Q?Micha=B3_Smolnik?= <smolnik_at_nospam_go2.pl>
Subject: Re: PCF8583P - problem
Date: Fri, 09 Aug 2002 18:53:13 +0200


On 9 Aug 2002 18:10:56 +0200, <foxtrot_at_nospam_poczta.onet.pl> wrote:

Dzięki wszystkim za porady. Problem się rozwiązał. Najpierw okazało się, że
dioda przez którą szedł plus zasilania ze stabilizatora 5V była padnięta. Po
jej wymianie dalej nie dało się odczytać rejestrów. Pomogło dopiero wyjęcie z
podstawki eeproma - AT24C04, który wisiał na tej samej magistrali. Wygląda na
to, że coś w nim nawaliło. Teraz bez problemu da się odczytać rejestry.

Raczej AT24C04 jest dobry. Nie zapominaj, że te układy mają taką samą
stałą część adresu.

--
pozdrawiam
Michał Smolnik, Rybniczanin
smolnik_at_nospam_go2.pl www.smolnik.w.pl tel. 604 666 970

Poprzedni Następny
Wiadomość
Spis treści
From: <foxtrot_at_nospam_poczta.onet.pl>
Subject: Re: PCF8583P - problem
Date: 9 Aug 2002 22:07:15 +0200


On 9 Aug 2002 18:10:56 +0200, <foxtrot_at_nospam_poczta.onet.pl> wrote:

Dzięki wszystkim za porady. Problem się rozwiązał. Najpierw okazało się, że
dioda przez którą szedł plus zasilania ze stabilizatora 5V była padnięta. Po
jej wymianie dalej nie dało się odczytać rejestrów. Pomogło dopiero wyjęcie
z
podstawki eeproma - AT24C04, który wisiał na tej samej magistrali. Wygląda
na
to, że coś w nim nawaliło. Teraz bez problemu da się odczytać rejestry.

Raczej AT24C04 jest dobry. Nie zapominaj, że te układy mają taką samą
stałą część adresu.

To czegoś nie rozumiem w tym wszystkim. PCF ma adres 162 do zapisu i 163 do
odczytu. Zaś AT24C04 odpowiednio 160 i 161. Czyżby się kłóciły? To po co te
adresy? Chyba, że mam jakiś błąd w procedurach...

pozdrawiam
Marcin

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: RE: PCF8583P - problem
Date: 10 Aug 2002 00:15:14 +0200


To czegoś nie rozumiem w tym wszystkim. PCF ma adres 162 do
zapisu i 163 do
odczytu. Zaś AT24C04 odpowiednio 160 i 161. Czyżby się kłóciły?
To po co te
adresy? Chyba, że mam jakiś błąd w procedurach...
24C04 i PCF maja jeszcze dodatkowo modyfikowane adresy poprzez zwieranie
wyprowadzeń adresowych do masy lub do VCC. Może akurat pracowały na jednym
adresie?
pzdr
Artur


--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika


Poprzedni Następny
Wiadomość
Spis treści
From: <foxtrot_at_nospam_poczta.onet.pl>
Subject: Re: PCF8583P - problem
Date: 10 Aug 2002 08:34:22 +0200


To czegoś nie rozumiem w tym wszystkim. PCF ma adres 162 do
zapisu i 163 do
odczytu. Zaś AT24C04 odpowiednio 160 i 161. Czyżby się kłóciły?
To po co te
adresy? Chyba, że mam jakiś błąd w procedurach...
24C04 i PCF maja jeszcze dodatkowo modyfikowane adresy poprzez zwieranie
wyprowadzeń adresowych do masy lub do VCC. Może akurat pracowały na jednym
adresie?

Cały sęk w tym, że sprawdzałem programem do wyszukiwania adresów układów na
magistrali i2c. Adresy były odpowiednio 160 i 162... Już po zwarciu wyprowadzeń
adresowych do masy. Spróbuję wymienić eeproma, w końcu kosztuje tylko 2.50 Zł

pozdrawiam
Marcin

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Miś Uszatek" <uszatek_at_nospam_w.pl>
Subject: Re: PCF8583P - problem
Date: Fri, 9 Aug 2002 21:37:06 +0200


BTW. Czy ktoś ma gotową funkcję w C do zamiany liczby na kod bcd? Nie mam
koncepcji jak to anpisać, by zajeło to jak najmniej kodu...


Może cuś takiego - u mnie działa :-)



char to_BCD(char natural_binary)
{
return ( ((natural_binary/10) << 4) + natural_binary%10 );
}

char to_natural_binary(char BCD)
{
return( ((BCD >> 4) * 10) + (BCD & 0x0f) );
}



Poprzedni Następny
Wiadomość
Spis treści
From: <foxtrot_at_nospam_poczta.onet.pl>
Subject: Re: PCF8583P - problem
Date: 9 Aug 2002 22:04:02 +0200


BTW. Czy ktoś ma gotową funkcję w C do zamiany liczby na kod bcd? Nie mam
koncepcji jak to anpisać, by zajeło to jak najmniej kodu...


Może cuś takiego - u mnie działa :-)



char to_BCD(char natural_binary)
{
  return ( ((natural_binary/10) << 4) + natural_binary%10 );
}

char to_natural_binary(char BCD)
{
  return(  ((BCD >> 4) * 10) + (BCD & 0x0f)  );
}


Dzięki. Właśnie o coś takiego mi chodziło. Konwersję z BCD napisałem sam i
wygląda praktycznie tak samo (inna nazwa zmiennej). :-) Zaś w drugą stronę nie
miałem pomysłu. Jeszcze raz dzięki.

pozdrawiam
Marcin

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl