At90s2313 i EEPROM I2C AT24C02

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Jimi Hendrix
-
Posty: 12
Rejestracja: 29 lip 2005, 18:33
Lokalizacja: Poznań

At90s2313 i EEPROM I2C AT24C02

Post autor: Jimi Hendrix » 18 lip 2006, 8:48

Otóż mam z tą parką taki problem - napisałem programik testowy, zapisujący i odczytujący po bicie i cokolwiek bym nie robił, wychodzi 255. Czy ktoś mógłby napisać mi w bascomie i umieścić na forum mały przykładzik testu tego EEPROMU?

Awatar użytkownika
marcing
Użytkownik
Posty: 868
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 18 lip 2006, 9:36

Weź ściągnij sobie polski help do BASCOM'a (jest na Elportalu) przetłumaczony przez Zbigniewa Gibka - tam znajdziesz to czego szukasz.

Inna sprawa, że w katalogu SAMPLES BASCOMA masz podane przykłady wykorzystania tej pamięci przez I2C (domyślnie C:\Program Files\MCS Electronics\BASCOM-AVR\SAMPLES\I2c\I2C.BAS)

Wystarczy trochę poszukać...

Pozdrawiam!

Marcin "Max" G.

Ps. Widzę, że miesz(k)asz niedaleko ;)

Jimi Hendrix
-
Posty: 12
Rejestracja: 29 lip 2005, 18:33
Lokalizacja: Poznań

Post autor: Jimi Hendrix » 18 lip 2006, 11:57

właśnie korzystałem z tego dema - wciąż szczęśliwa liczba 255

No, ale ja na Wildzie :(

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 18 lip 2006, 12:06

a czy adres ustawiony poprzez zwarcie pinów A0...A2 układu 24C04 do Vcc/GND
pasuje do tego, który podajesz jako parametr 'slave' w I2CRECEIVE?
jeżeli nie - bedziesz odczytywał same jedynki...SDA jest przecież podciągnięta do Vcc....

tasza

Jimi Hendrix
-
Posty: 12
Rejestracja: 29 lip 2005, 18:33
Lokalizacja: Poznań

Post autor: Jimi Hendrix » 18 lip 2006, 15:21

mam same 255. A0 A1 A2 mam do masy zwarte. Jaki to adres?

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 18 lip 2006, 15:44

:arrow: http://www.atmel.com/dyn/resources/prod ... oc0180.pdf
strona 11, tabela na górze strony: 0xA0 - zapis, 0xA1 - odczyt

tasza

Jimi Hendrix
-
Posty: 12
Rejestracja: 29 lip 2005, 18:33
Lokalizacja: Poznań

Post autor: Jimi Hendrix » 19 lip 2006, 14:57

Łopatologicznie:
'--------------------------------------------------------------
' (c) 1999-2002 MCS Electronics
'--------------------------------------------------------------
' file: I2C.BAS
' demo: I2CSEND and I2CRECEIVE
'--------------------------------------------------------------
Declare Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte)
Declare Sub Read_eeprom(byval Adres As Byte , Value As Byte)

Const Addressw = 174 'slave write address - CO TU MAM WPISAĆ?
Const Addressr = 175 'slave read address - A TU?

Dim B1 As Byte , Adres As Byte , Value As Byte 'dim byte

Call Write_eeprom(1 , 3) 'write value of three to address 1 of EEPROM


Call Read_eeprom(1 , Value) : Print Value 'read it back
Call Read_eeprom(5 , Value) : Print Value 'again for address 5


'sample of writing a byte to EEPROM AT2404
Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte)
I2cstart 'start condition
I2cwbyte Addressw 'slave address
I2cwbyte Adres 'asdress of EEPROM
I2cwbyte Value 'value to write
I2cstop 'stop condition
Waitms 10 'wait for 10 milliseconds
End Sub


'sample of reading a byte from EEPROM AT2404
Sub Read_eeprom(byval Adres As Byte , Value As Byte)
I2cstart 'generate start
I2cwbyte Addressw 'slave adsress
I2cwbyte Adres 'address of EEPROM
I2cstart 'repeated start
I2cwbyte Addressr 'slave address (read)
I2crbyte Value , Nack 'read byte
I2cstop 'generate stop
End Sub

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 19 lip 2006, 15:14

160
161

Jimi Hendrix
-
Posty: 12
Rejestracja: 29 lip 2005, 18:33
Lokalizacja: Poznań

Post autor: Jimi Hendrix » 24 lip 2006, 9:08

Dzięki Taszo! Jakbyś jakiś problem z lampami miała to wal do mnie :-)

ODPOWIEDZ