Bascom AVR, atmega8 i pamięć at24c32

Apr 28, 2004 4 Replies

Cześć! Może mi ktoś wyjaśnić dlaczego poniższy programik w BASCOMie AVR działa z pamięcią at24c04, natomiast z at24c32 nie? Pamięć podłączona jest do ATMEGA8. at24c32 należy inaczej adresować???



Dzięki za pomoc Marcin


Dim a As Byte Const adresW = 174 Const adresR = 175



I2cstart I2cwbyte adresW I2cwbyte 1 I2cwbyte 3



I2cstop



Waitms 10



'--------------- teraz odczytamy to co zapisaliśmy ------------------



I2cstart I2cwbyte adresW I2cwbyte 1 I2cstart



I2cwbyte adresR I2crbyte a, Nack I2cstop End


powinno działać. 24c32 jest zbudowany z 16 stron po 256B. adres bazowy to

160 i 161 dla pierwszej strony. kolejne mają adresy aż do 191 i 192. więc trafiasz gdzieś w środek.

PC

Użytkownik "Pablo C" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:c6ov62$f6o$ snipped-for-privacy@atlantis.news.tpi.pl...

Wyczytałem w helpie, ale i tak sobie nie radzę: "when you want to control a chip with a larger memory like the 24c64 it requires an additional byte ' to be sent (consult the datasheet)" Wartość 160 albo w moim przypadku 174 jest adresem "device" podpiętego do i2c. Tak po prostu zaadresowałem urządzenie (pamięć).

Marcin

adres komórki jest 16-bitowy, więc żeby zaadresować komórkę 1 musisz:

I2cstart I2cwbyte adresW I2cwbyte 0 I2cwbyte 1

a dopiero potem wysyłać albo czytać dane.

w.

OK działa ;) Dzięki!!!

Użytkownik "Wojtek Kaniewski" snipped-for-privacy@SPAM.SPAM.SPAM> napisał w wiadomości news:c6p394$3ed$ snipped-for-privacy@atlantis.news.tpi.pl...

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required