Ringo
24.10.2005, 17:34
Hallo Leute! :roll:
Also mein Problem beginnt damit, dass ich keine freien Ports mehr an meinem Atmega16 habe und deshalb eine Lösung suche.
Bin dann auf sogenannte I/O Expander gestoßen... :-k
Hab jetzt hier einen richtig schönen MAX7300 20 zusätzliche Ports (dürfte erstmal reichen \:D/ ) rumliegen.
Jetzt mein Problem: Wie steuer ich das mit I2C an? Also ich hab die SDA und SCL Leitungen mit jeweils 4.7kOhm an Vcc gehängt. Alles nach Plan angeschlossen. Ein fertiges Atmega8 Modul rausgeholt SDA und SCL miteinander verbunden und versucht das ganze zu proggen.
Ohne Erfolg. :(
Jetzt meine Fragen. Zum test hab ich eine LED mit 1K Widerstand an P12.
Slave Adresse ist AD0 auf GND und AD1 auf GND.
Im Datenblatt abgelesen und schon kam das durcheinander. Man kann jeden Pin als Input oder Output konfigurieren. Hab jetzt alles mögliche ausprobiert und bin bei diesem Code in BASCOM stehen gelieben:
$regfile = "m8def.dat"
$crystal = 8000000
$lib "i2c.lib"
Config Portb = Output
Config Portc = Output
Config Portd = Output
Config I2cdelay = 5 '100KHZ Busfrequenz?
Config Sda = Portc.4 ' Portc.4 ist SDA
Config Scl = Portc.5 'Portc.5 ist SCL
Const Slave = &B10000000 'Slavesadresse laut Datenblatt
I2cinit ' Initialisieren
Do
I2cstart 'start
I2csend Slave , &H0B 'Portadresse
I2csend Slave , &B01 'output
I2csend Slave , 1 '1
I2cstop 'stop
Wait 1
Loop
End
Datenblatt findet ihr http://pdfserv.maxim-ic.com/en/ds/MAX7300.pdf
Also ich bin totaler I2C newbie drum kann ich leider mit den Daten aus dem Datenblatt nicht viel anfangen. Wann muss ich welche Adresse senden?
Danke fürs lesen :wink:
MfG
Ringo (need Help) :-s
Also mein Problem beginnt damit, dass ich keine freien Ports mehr an meinem Atmega16 habe und deshalb eine Lösung suche.
Bin dann auf sogenannte I/O Expander gestoßen... :-k
Hab jetzt hier einen richtig schönen MAX7300 20 zusätzliche Ports (dürfte erstmal reichen \:D/ ) rumliegen.
Jetzt mein Problem: Wie steuer ich das mit I2C an? Also ich hab die SDA und SCL Leitungen mit jeweils 4.7kOhm an Vcc gehängt. Alles nach Plan angeschlossen. Ein fertiges Atmega8 Modul rausgeholt SDA und SCL miteinander verbunden und versucht das ganze zu proggen.
Ohne Erfolg. :(
Jetzt meine Fragen. Zum test hab ich eine LED mit 1K Widerstand an P12.
Slave Adresse ist AD0 auf GND und AD1 auf GND.
Im Datenblatt abgelesen und schon kam das durcheinander. Man kann jeden Pin als Input oder Output konfigurieren. Hab jetzt alles mögliche ausprobiert und bin bei diesem Code in BASCOM stehen gelieben:
$regfile = "m8def.dat"
$crystal = 8000000
$lib "i2c.lib"
Config Portb = Output
Config Portc = Output
Config Portd = Output
Config I2cdelay = 5 '100KHZ Busfrequenz?
Config Sda = Portc.4 ' Portc.4 ist SDA
Config Scl = Portc.5 'Portc.5 ist SCL
Const Slave = &B10000000 'Slavesadresse laut Datenblatt
I2cinit ' Initialisieren
Do
I2cstart 'start
I2csend Slave , &H0B 'Portadresse
I2csend Slave , &B01 'output
I2csend Slave , 1 '1
I2cstop 'stop
Wait 1
Loop
End
Datenblatt findet ihr http://pdfserv.maxim-ic.com/en/ds/MAX7300.pdf
Also ich bin totaler I2C newbie drum kann ich leider mit den Daten aus dem Datenblatt nicht viel anfangen. Wann muss ich welche Adresse senden?
Danke fürs lesen :wink:
MfG
Ringo (need Help) :-s