Hallo,
ich möchte 2 AT-Mega8 verbinden, um Zahlen auszutauschen.
was ist die einfachste Möglichkeit - wie würdet ihr es machen?
- RS232
- I²C
- ???
vielen Dank schon mal,
Tobias
Druckbare Version
Hallo,
ich möchte 2 AT-Mega8 verbinden, um Zahlen auszutauschen.
was ist die einfachste Möglichkeit - wie würdet ihr es machen?
- RS232
- I²C
- ???
vielen Dank schon mal,
Tobias
Die einfachste Lösung ist wohl die per RS232, verwenden würde ich persönlich aber I²C. Falls du zu dem Thema mehr wissen willst, kannst du auch mal im Forum suchen, da gibts ne Menge dazu.
danke, dann suche ich mal nach RS232
Habe mal wegen I²C gesucht und etwas verstehe ich nicht so ganz:
Was ist I²C und was ist TWI? gehört das zusammen? im Wiki sind auch mehere Beiträge jeweils zu TWI oder aber auch zu I²C...
Kann mich da jemand aufklären?
Tobias
I²C wurde von einem Hersteller entwickelt (Phillips) und ist ein Bussystem mit 2 Verbindungen + GnD. TWI ist das Two Wire Interface, was genau das selbe ist wie I²C aber anders heist und damit keine Lizensgebühren verursacht. Also was TWI kann macht auch I²C mit.
das heißt also - das ich ich einen Baustein der I²C unterstützt, an einen TWI Bus anschließen kann?
Tobias
Ja, das funktioniert. Ist ja auch quasi dasselbe.
Vielen Dank - das hat mir doch schon viel weitergeholfen - nun weiß ich doch, wonach ich suchen muss :-)
Hallo Tobias,
für den Master kannst du die Bascom-Befehle für I2C nehmen (I2CSend, I2Creceive u. s. w.)
Beispiele für den Slave findest du in der Wiki. Für die Beispiele musst du aber unbedingt die SDA- und SCL-Pins des ATMega nutzen. Und die Pullup-Widerstände nicht vergessen. Ich habe damit schon einige ATMega8 untereinander verbunden. Und die laufen seit Monaten ohne den kleinsten Fehler.
Also im Wiki steht es so:
Was genau ist die Slaveadresse zum schreiben und lesen?Code:$regfile = "M32def.dat" ' the used chip
$crystal = 16000000 ' frequency used
$baud = 9600
Config Scl = Portb.0 ' Ports fuer IIC-Bus, nicht Standard !
Config Sda = Portb.1
' Config I2cdelay = 10 ' je höher der Wert umso langsamer der Bus
I2cinit
Const Pcf_write = &H40 ' Slaveadresse
Const Pcf_read = &H41
' Startausgabe
Print "I2C-Soft Demo mit PCF 8574"
Do
I2cstart
I2cwbyte Pcf_write
I2cwbyte &HAA
I2cstop
Print Err ' Err = 0 -> kein Fehler !
Waitms 500
I2cstart
I2cwbyte Pcf_write
I2cwbyte &H55
I2cstop
Print Err ' Err = 0 -> kein Fehler !
Waitms 500
Loop
End
Const Pcf_write = &H40 ' Slaveadresse
Const Pcf_read = &H41
wofür ist:
I2cwbyte &HAA / I2cwbyte &H55
Sind das Bereiche in die ich etwas schreiben kann, welches dann gesendet wird bzw. ein Bereich in dem das empfangene drinn steht?
Könnte ich da auch eine Variable rein schreiben und versenden?
Tobias