tobimc
03.10.2004, 13:20
HI!
Ich habe mich letztens entschlossen, ein I²C Display zu bauen.
Das ist jetzt fertig, aber der I²C mit dem Mega 16 funktioniert nicht.
SCL ist wie im Datenblatt auf Portc.0, SDA ist wie im Datenblatt auf
Portc.1.
Folgender Quelltext in BASCOM:
'===CONFIGURATIONS===
$baud = 9600
$crystal = 16000000
$regfile = "m16def.dat"
Config Pinc.6 = Output '595 Load-Leitung
Config Pinc.7 = Output '595 Takt
Config Pina.1 = Output '595 Daten
Config Pina.0 = Input '165 Daten
Config Pinb.1 = Output '165 Takt
Config Pinb.0 = Output '165 Load
Config Scl = Portc.0 'I²C SDA
Config Sda = Portc.1 'I²C SCL
'===ALIASE
Beep Alias Portd.2
'===VARIABLEN===
Dim A As Byte
Dim B As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim S As Byte
'===PROGRAMMBEGINN===
Begin:
I2cinit
Sound Beep , 250 , 1000 'Ein bisschen gepiepse zum Anfang...
Sound Beep , 250 , 900
Sound Beep , 250 , 800
Sound Beep , 500 , 500
Starting:
Waitms 500 'Watren
'====Eigentlicher PROGRAMMSTART====
Source: 'TESTPROGRAMM
B = &B01110001 'Addresse des PCF8574 mit DB0-DB7 am Ausgang...
D = &B01110011 'Addresse des PCF8574 mit RS, E und R/W am Ausgang...
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
Waitms 25
I2cstart
I2cwbyte B
I2cwbyte &B00001100
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B10000000
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
Waitms 25
I2cstart
I2cwbyte B
I2cwbyte 97
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B10000000
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
End
(Ich habe ihn der Übersicht wegen etwas gekürzt... Funktionen weggelassen usw...)
Das Tolle: Laut meinem Scope kommt nix aus den Ausgängen raus.
Meine Bascom-Version: 1.11.7.4
Achso und das Display ist wie auf:
http://www.destroy-yourself.de/julian/juliprograms/amr/i2clcd.htm
nur mit 2x20 Zeichen.
Es wird mit 2 PCF8574P angesteuert.
Nicht das ihr mich jetzt falsch versteht; aus dem I²C kommt nix raus,
und deshalb funzt das LCD nicht. Das LCD ist im Moment nur Nebensache.
Auf der I²C Verteilerplatine gehen 2 PullUps von je 5,6kOhm von SCL und SDA nach VCC.
Was ist hier falsch? Ehrlich gesagt weis ich nicht, wo ich suchen soll...
Vielen Dank schon jetzt mal...
Liebe Grüße, Tobi
Ich habe mich letztens entschlossen, ein I²C Display zu bauen.
Das ist jetzt fertig, aber der I²C mit dem Mega 16 funktioniert nicht.
SCL ist wie im Datenblatt auf Portc.0, SDA ist wie im Datenblatt auf
Portc.1.
Folgender Quelltext in BASCOM:
'===CONFIGURATIONS===
$baud = 9600
$crystal = 16000000
$regfile = "m16def.dat"
Config Pinc.6 = Output '595 Load-Leitung
Config Pinc.7 = Output '595 Takt
Config Pina.1 = Output '595 Daten
Config Pina.0 = Input '165 Daten
Config Pinb.1 = Output '165 Takt
Config Pinb.0 = Output '165 Load
Config Scl = Portc.0 'I²C SDA
Config Sda = Portc.1 'I²C SCL
'===ALIASE
Beep Alias Portd.2
'===VARIABLEN===
Dim A As Byte
Dim B As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim S As Byte
'===PROGRAMMBEGINN===
Begin:
I2cinit
Sound Beep , 250 , 1000 'Ein bisschen gepiepse zum Anfang...
Sound Beep , 250 , 900
Sound Beep , 250 , 800
Sound Beep , 500 , 500
Starting:
Waitms 500 'Watren
'====Eigentlicher PROGRAMMSTART====
Source: 'TESTPROGRAMM
B = &B01110001 'Addresse des PCF8574 mit DB0-DB7 am Ausgang...
D = &B01110011 'Addresse des PCF8574 mit RS, E und R/W am Ausgang...
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
Waitms 25
I2cstart
I2cwbyte B
I2cwbyte &B00001100
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B10000000
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
Waitms 25
I2cstart
I2cwbyte B
I2cwbyte 97
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B10000000
I2cstop
Waitms 25
I2cstart
I2cwbyte D
I2cwbyte &B00000000
I2cstop
End
(Ich habe ihn der Übersicht wegen etwas gekürzt... Funktionen weggelassen usw...)
Das Tolle: Laut meinem Scope kommt nix aus den Ausgängen raus.
Meine Bascom-Version: 1.11.7.4
Achso und das Display ist wie auf:
http://www.destroy-yourself.de/julian/juliprograms/amr/i2clcd.htm
nur mit 2x20 Zeichen.
Es wird mit 2 PCF8574P angesteuert.
Nicht das ihr mich jetzt falsch versteht; aus dem I²C kommt nix raus,
und deshalb funzt das LCD nicht. Das LCD ist im Moment nur Nebensache.
Auf der I²C Verteilerplatine gehen 2 PullUps von je 5,6kOhm von SCL und SDA nach VCC.
Was ist hier falsch? Ehrlich gesagt weis ich nicht, wo ich suchen soll...
Vielen Dank schon jetzt mal...
Liebe Grüße, Tobi