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