Cteni RTC od Ramtronu
Pavel_t
pavel_t@centrum.cz
Neděle Listopad 19 19:58:55 CET 2006
> Zdravim,
> cele dopoledne si tady hraju s FM31256 a nemohu to prinutit aby to
> prepsalo obsah RTC do registru a ja to mohl vycist.
> Podle vsecho cteni funguje protoze vzdy po zapnuti se mi obsahy zmeni.
Je to uz > 2 roky co jsem to psal a ted uz to jen kopiruji. Navic ten
packal se mi nechce lustit ;) Ale pokud porovnam svuj zdrojak s Vasim
tak ja vzdy kdyz zapisu WR nebo RD flag ukoncim zapis I2C Stop a pak
zacinam cteni I2C Startem, odeslanim adresy a pak samotnym ctenim. Toto
je pro pamet (16bit adresa) zobrazeno na Figure 15 v katalogovem liste.
A plati to pro I2C komunikaci vseobecne. Mam dojem, ze toto Vas program
nedodrzuje.
Dalsi moznosti chyb, ktere ale u Vas nepredpokladam jsou:
Pamet a RTC maji odlisnou I2C adresu.
Pamet se adresuje 16bitove a RTC pouze 8bitove.
Pavel
> Procedure RTC;
> begin
> //zapisu do Flag registru 1 aby se mi prepsalo RTC do registru
> I2C_Start; // Issue I2C start signal
> I2C_Wr(adr_rtc_wr); // Send byte via I2C
> I2C_Wr(0); // Send byte via I2C to flag
> I2C_Wr(adr_rtc_tmk_on); // Send byte via I2C
> I2C_Stop; // Issue I2C stop signal
>
> //prectu vsech 25 registru z RTC
> I2C_Start; // Issue I2C start signal
> I2C_Wr(adr_rtc_rd); // Send byte via I2C
> for k:=0 to 23 do
> begin
> a_rtc[k]:= I2C_Rd(1); // Read the data with ACK
> end;
> a_rtc[24]:= I2C_Rd(0); // Read the data without ACK
> I2C_Stop; // Issue I2C stop signal
>
> //zapisu do Flag registru 0 - vratim to zpet
> I2C_Start; // Issue I2C start signal
> I2C_Wr(adr_rtc_wr); // Send byte via I2C
> I2C_Wr(0); // Send byte via I2C to flag
> I2C_Wr(adr_rtc_tmk_off); // Send byte via I2C
> I2C_Stop; // Issue I2C stop signal
> end;
Další informace o konferenci Hw-list