PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 ATmega32 über IC2 miteinander verbinden



Foooob
13.11.2005, 11:35
Hallo

Ich habe folgendes Problem...
Mein Roboter verfügt über einen DS1621 (Temperatursensor), IC2-Ansteuerbar sowie über einen CMPS03 (Kompassmodul), IC2 ansteuerbar sowie eine ganze Armada an Kollisionssensoren, IR-Sensoren, Lichtsensoren, ein LCD Display, 2 Motoren zum ansteuern... usw.

Das ist so viel, dass ein ATmega32 damit nicht fertig wird. Die Pins von dem reichen einfach nirgends hin. Man muss ja auch bedenken, dass man für den Kompass und das LCD noch einige Taster zur Bedienung braucht. Kostet alles IO-Pins. Deswegen wollte ich die Sensoren und das ganze Zeug auf 2 Mega32 aufteilen, die sich dann per I2C verständigen.

Nun kenne ich mich mit I2C leider nicht so aus und wollte euch fragen wie das ist....kann ich zum Beispiel an den Mega32*1 meine Motoren hinhängen und der Mega32*2 kann meinem Mega32*1 sagen wie er diese zu steuern hat? Und umgekehrt dass mein Mega32*1 über den Mega32*2 auf das LCD Display schreiben kann?

Pascal
13.11.2005, 11:40
klar geht das, über die Kommunikation von AVRs per TWI(ist dasselbe wie I²C) wurde hier im Forum schon oft diskutiert und auch Code gepostet

du müsstest noch sagen, mit welcher Programmiersprache du arbeitest, dann kann man dir besser helfen

Foooob
13.11.2005, 12:13
Ich arbeite mit BASCOM
Also ist das problemlos möglich, dass sich die 2 ATmega32 _gegenseitig_ Daten schicken können und sich gegenseitig Befehle erteilen können?

Ich dachte mal irgendwann gelesen zu haben, dass es dort auch einen Master und n-Slaves gibt und nur der Master die Kontrolle hat?

Pascal
13.11.2005, 12:19
Ich arbeite mit BASCOM

das stellt in gewisser Weise dann wohl doch ein Problem dar, ich arbeite normalerweise mit C, deswegen betrifft mich das nicht, aber ich habe schon des öfteren gelesen, dass man bei Bascom für den TWI-Hardware-Slave ein Zusatzmodul benötigt(das so um die 15€ kostet)



Ich dachte mal irgendwann gelesen zu haben, dass es dort auch einen Master und n-Slaves gibt und nur der Master die Kontrolle hat?

nicht umsonst ist der TWI-Bus ein mutltimaster-bus, soll heißen, jedes Gerät(sofern bei diesem die Funktion dafür vorgesehen ist) am Bus kann Master sein

Foooob
13.11.2005, 13:21
Ein Zusatzmodul??
Für was bräuchte ich das genau?

Pascal
13.11.2005, 13:27
das brauchst du, wenn du mit normalen Bascom-Befehlen den AVR als (Hardware)TWI-Slave verwenden willst

TWI-Master dürfte auch ohne Zusatzlib funktionieren

Foooob
13.11.2005, 13:57
Achso, also ein Softwarezusatz?
Und nur wenn ich einen AVR als Slave verwenden will?
Wenn ich aber beide AVR als Master und den Temperatursensor und den Komplass als Slave betreibe dann brauch ich das ja nicht?

Goblin
13.11.2005, 14:37
kannst du den kompass nicht auch über i2c auslesen? weiss ja nicht wieviele i/os du dadurch sparst.. und den temp-sensor dann auch...

Foooob
13.11.2005, 16:44
kannst du den kompass nicht auch über i2c auslesen? weiss ja nicht wieviele i/os du dadurch sparst.. und den temp-sensor dann auch...

Das will ich ja aber ich komm insgesamt OHNE I2C (wo der Kompass und der Temp-Sensor dranhängen) auf 49 I/O Pins!! Minimalst dann 45 aber weniger geht echt nicht mehr.