Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 i2c bus klappt nicht (PCF 8583) Kategorie: C-Control I V1.2/2.0 (von Michael - 27.06.2005 20:09)
Michael nutzt:  CC1-M-Unit V1.2/2.0
Hallo zusammen,

Ich habe eine Echtzeit-uhr PCF8583 (als Fertigen baustein mit Gold cap bei cc-tools gekauft)
Leider Klappt die Kommunikation nicht so, wie ich mir das vorstelle.
beim lesen vom pcf8583 erhalte ich immer den wert 0 zurück, (bei nicht angeschlossenen
Baustein 255) egal welche Speicherstelle ich auslese.
ich hab mir den Bus schon mit einem Oszilloskop angesehen, und festgestellt, das der PCF8583
jedes Byte brav mit einem ACK beantwortet.
ich verwende die eingebauten I2C Routinen der M-unit 2.0

Nachfolgend ein Test-programm das den Wert 127 an speicherstelle 21 schreibt (freier ram bereich)
und anschliessend wieder einlesen soll. Zurück erhalte ich jedoch den wert 0

da tut sich ein grosser abgrund von fragen auf

was mache ich falsch ?
ist das schreiben fehlerhaft, oder das Lesen ?
kann man softwaremässig prüfen ob ein  ACK eingegangen ist, ohne neue I2C Routinen zu schreiben ?
wieso entstehen mit dem get befehl 18 Impulse auf SDA (Oszilloskop) ?
Es soll ja nur ein Byte gelesen werden und nicht 2

'---------------------------------------------------------------------------
'      Testprogramm Für PCF8583
'---------------------------------------------------------------------------

define schleife byte
define word_adress byte
define slave_adress byte
define data byte

define uhr_schreiben &b10100010
define uhr_lesen     &b10100011

#start

'-----------------Schreiben in ram--------------------------------------------------------------------

slave_adress=uhr_schreiben
data=127
word_adress=21
print" Schreibe RAM Adresse:";word_adress;" Daten: ";data
print"#ON_IIC#";              'Umleitung auf I2C Bus Aktivieren
print"#START#";               'Sende Start Bedingung
put slave_adress
put word_adress
put data
print"#STOP#";                'Sende Stop Bedingung
print"#OFF#";                 'Umleitung aufheben
print "daten geschrieben !"
'--------------------------------------------------------------------------------------------------
slave_adress=uhr_schreiben
print" lese RAM Adresse:";word_adress
print"#ON_IIC#";              'Umleitung auf I2C Bus Aktivieren
print"#START#";               'Sende Start Bedingung
put slave_adress
put word_adress
print"#START#";               'Sende Start Bedingung
slave_adress=uhr_lesen
put slave_adress
get data
print"#STOP#";                'Sende Stop Bedingung
print"#OFF#";                 'Umleitung aufheben
print" gelesener wert :";data
goto start
end


 Antwort schreiben

Bisherige Antworten:

Re: i2c bus klappt nicht (PCF 8583) (von Michael - 28.06.2005 23:56)
Re: i2c bus klappt nicht (PCF 8583) (von Nicolas - 28.06.2005 23:01)
    Re: i2c bus klappt nicht (PCF 8583) (von Nicolas - 29.06.2005 16:01)
Re: i2c bus klappt nicht (PCF 8583) (von Windt H.J. - 28.06.2005 12:37)