Jak adresowac EEPROM 24FC1025?

Oct 05, 2006 9 Replies

Potrzebny przyk³ad procedury zapisuj±cej lub odczytuj±cej w Bascom 8051 umo¿liwiaj±cej sekwencyjny odczyt lub zapis wszystkich 131071 bajtów tej pamiêci. Datasheet -

formatting link
Muszê dzisiaj skoñczyæ projekt, a nie wiem jak dostaæ siê do tej ko¶ci. Procedura musi umo¿liwiac podanie adresu dziesiêtnie - zmienna integer, rozbicie integera na bit P,bit H i bit L, oraz zaadresowanie komórki pamiêci...



U¿ytkownik "xaveri" snipped-for-privacy@poczta.fm napisa³ w wiadomo¶ci news:eg3puq$ti4$ snipped-for-privacy@node4.news.atman.pl...

formatting link

znaczy potrzebujesz gotowca bez koniecznosci zrozumienia o co w nim chodzi ? bo napisac wlasne procedury obslugi tej kostki majac gotowa obsluge i2c (a taka chyba w bascomie jest) to naprawde jest 15 minut - na stronach 9 i 12 podanego dokumentu masz opisane co i kiedy trzeba wyslac albo przeczytac.

aha, nie udalo mi sie uruchomic funkcjonalnosci "acknowledge polling" w moich kostkach ... moze jakis bug albo cos przegapi³em.

@

Tak potrzebujê gotowca bowiem bez problemu adresujê pierwsze 65536 bajtów na adresie 160, natomiast za ChRL nie mogê zaadresowaæ pozosta³ych bo na adresie 168 nie wykrywa mi obecno¶ci uk³adu. Narazie u¿ywam tego: //ZAPIS I2Cstart I2Cwbyte 160 //adres pamieci na magistrali dla zapisu I2Cwbyte //H adres I2Cwbyte //L adres I2Cwbyte(7); //przykladowy bajt danych I2C_stop();

//ODCZYT I2Cstart I2Cwbyte //adres pamieci na magistrali dla zapisu I2Cwbyte //H adres I2Cwbyte //L adres I2Cstart I2Cwbyte 161 //adres pamieci na magistrali dla odczytu zmienna=I2Crbyte I2Cstop

no i H adres i L adres daj± 16 bit czyli 65535 komórek... Pozosta³e powinny byæ na inny adresie - 10101000 = 168, ale ich nie widzê. Mo¿e co¶ ¼le robiê?

Witam

Mo¿e pod tym adresem jest podpiêty jeszcze jaki¶ inny uk³ad I2C i nastêpuje konflikt. Pawe³ Halama

Mo¿e taki prosty sprawdzaj±cy program co¶ wyka¿e: '---------------------------------- Config Lcd = 16 * 1a Dim Adres As Byte Cls Lcd "Start" Cls For Adres = 150 To 200 Step 2 I2cstart I2cwbyte Adres I2cstop If Err = 0 Then Cls Lcd "Uklad pod: " ; Adres Else Cls Lcd "Brak ukladu: " ; Adres End If Wait 1 Next Adres Cls Lcd "Koniec" End '------------------------------------ Oczywi¶cie wy¶wietlanie trzeba skonfigurowaæ po swojemu. Pozdrawiam Pawe³ Halama

Napisa³em sobie podobny programik ju¿ na pocz±tku problemu - dla pewno¶ci odlicza³ od 0 do 255. Wykry³ tylko adresy 160 i 161 (zapis i odczyt)... Nic pozatym :/

Ju¿ rozwi±za³em problem. Napiszê co by³o powodem - mo¿e komu¶ to pomo¿e.

P³ytkê projektowa³em korzystaj±c z datasheeta do 24C1024 produkcji ATMEL, uk³ad ten ma pin 3 niepod³±czony. Zastosowa³em jednak pamiêæ 24FC1025 produkcji MicroChip i nie spojrza³em (dok³adnie) do datasheeta. Okaza³o siê, ¿e ta pamiêæ WYMAGA pod³±czenia pinu 3 na sztywno do VCC, czego u mnie nie by³o. To powodowa³o, ¿e pamiêæ nie udostêpnia³a drugiej po³ówki na adresie 168 I2C. Po pod³±czeniu pinu do VCC jest OK.

Tak wiêc Panowie (i Panie) - CZYTAJMY UWA¯NIE DOKUMENTACJÊ !

Dziêkujê wszystkim którzy próbowali mi pomóc. Pozdro!

U¿ytkownik "xaveri" snipped-for-privacy@poczta.fm napisa³ w wiadomo¶ci news:eg86pm$pr0$ snipped-for-privacy@node4.news.atman.pl...

eee noo ... od tego to sie zaczyna ;)

@

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required