Myler
Guest
Wed Apr 28, 2004 5:19 pm
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
Pablo C
Guest
Wed Apr 28, 2004 6:03 pm
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
Myler
Guest
Wed Apr 28, 2004 6:40 pm
Użytkownik "Pablo C" <pch@poczta.onet.pl> napisał w wiadomości
news:c6ov62$f6o$1@atlantis.news.tpi.pl...
Quote:
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
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
Wojtek Kaniewski
Guest
Wed Apr 28, 2004 7:12 pm
Myler wrote:
Quote:
at24c32 należy inaczej adresować???
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.
Myler
Guest
Wed Apr 28, 2004 7:26 pm
OK działa
Dzięki!!!
Użytkownik "Wojtek Kaniewski" <wojtekka@SPAM.SPAM.SPAM> napisał w wiadomości
news:c6p394$3ed$1@atlantis.news.tpi.pl...
Quote:
Myler wrote:
at24c32 należy inaczej adresować???
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.