PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei atmega32 aneinanderschließen



Jada
31.05.2010, 19:21
Hallo,
kann mir jemand sagen wie ich zwei atmega32 aneinander schließen kann die sich dann untereinander austauschen??
Wenn mir jemand helfen kann dann soll er sich bitte melden!!

Vielen Dank

syn_error
31.05.2010, 20:00
spi, twi oder uart.
kann natürlich auch ein selbst erfundenes protokoll/schnittstelle sein.

rolber
31.05.2010, 20:53
Hallo !!

Du müsstest mal sagen, was Du aneinander schliessen willst.
Die Spannungsversorgung oder den Datenaustausch oder Beides.
Und um welche Datenmenge es sich handelt ????

Roland

Jada
01.06.2010, 08:23
Ich möchte zwei atmega so zusammenschließen das ich beispiels über einen atmega nur sensoren und über den anderen nur motoren oder Servos betreibe die sich natürlich dann austauschen die beiden atmegas.

JeyBee
01.06.2010, 08:55
Solange es nur zwei Microcontroller sind ist UART das einfachste. Jedoch kannst du dann nicht mehr Daten von einem Microcontroller zu einem Computer übertragen (ausser der uC hat mehrere UART Channels).

Hierzu würde ich dier TWI (I2C) empfehlen. Du brauchst nur drei Leitungen: SCL, SDA und GND.

Mit TWI kannst du 127 Controller mit einem Master verbinden, es sind aber auch Multimastersysteme möglich.



Gruss Jey

Jada
01.06.2010, 10:16
Muss ich nur scl, sda und gnd verbinden??

Oder????

JeyBee
01.06.2010, 10:34
Ja. Du Kannst so 128 Microcontroller miteinander verbinden:
Immer SDA mit SDA und SCL mit SCL, Masse ist ja klar.

Kampi
01.06.2010, 10:50
Muss ich nur scl, sda und gnd verbinden??


Ja das und du musst dann halt im Programmcode festlegen welche Adressen die beiden Controller haben und welche Daten an wen übermittelt werden sollen.

Jada
01.06.2010, 11:09
wie geht das mit der adresse im Programmcode einbinden??
Kann mir jemand ein programm beispiel mir zukommen lassen???

williwilli
01.06.2010, 11:35
Wenn's noch etwas mehr sein soll - bei mikrocontroller.net gibt's dazu sogar eigene Threads:

http://www.mikrocontroller.net/topic/31404#new
http://www.mikrocontroller.net/topic/87597

Und einfach mal nach "AVR master slave" googeln...

Lemonsquash
01.06.2010, 12:22
@Jada: Was das Beispiel angeht --> Dazu müsstest du uns schon erstmal erzählen, in welcher Sprache du die µC programmieren willst.

Btw: Auch immer gern gesehen sind Vorstellungen des ganzen Projektes...

Edit: Hab den Beitrag von williwilli übersehen, der sollte eigentlich aussagekräftig genug sein ;)

Mfg,
Lemon

TomEdl
01.06.2010, 12:34
Solange es nur zwei Microcontroller sind ist UART das einfachste. Jedoch kannst du dann nicht mehr Daten von einem Microcontroller zu einem Computer übertragen (ausser der uC hat mehrere UART Channels).

Man kann auch Software-UART verwenden, dann hast du plötzlich mehrere Channels...


Grüße
Thomas

JeyBee
01.06.2010, 14:18
Stimmt

dazu mal ne zwischenfrage: Wie sehen die Leistungsvergleiche eigentlich von HardwareUART zu SoftwareUART aus? theoretisch geht da ja schon was an Leistung flöten, oder?


Greez Jey

Jada
01.06.2010, 14:38
Na andere Frage mal kurz ihr scheint viel ahnung zu haben:
-Was sind beim atmega32 I/O-Ausgänge oder wo liegen die
und
- Wo sind beim atmega32 die PWM-Ausgänge????

Ich will einen Fahrtenregler bauen weis aber nicht wo diese Ausgänge liegen da ich noch anfänger bin!!
Bitte um Hilfe

Kampi
01.06.2010, 14:46
I/O Pins sind die Pins die durch einen Portbuchstaben gekennzeichnet sind. Ein Mega32 hat z.B. 4 Ports (A,B,C und D) und jeder dieser Ports hat 8 Pins (A.1,A.2,A.3.....A.7).

PWM Ausgänge werden durch OC gekennzeichnet. Das was hinter dem OC steht sagt aus an welchem internen Timer die angeschlossen sind und der 4. Buchstabe sagt nur den Index aus.

Zum Beispiel.
Beim Mega32 Pin 18 (D.4) heißt OC1B.
Das heißt nun:
OC = PWM Ausgang
1 = Timer 1
B = Anschluss B von Timer 1. Also da ist das Compare-Register B angeschlossen.
Dasselbe für OC1A nur das da das Compare-Register A angeschlossen ist.

Jada
01.06.2010, 14:53
und an welche von denen schlägst du mir vor ein fahrtenregler an zu schließen????

Kampi
01.06.2010, 15:01
Welchen PWM-Pin du nimmst ist dir überlassen. Die PWM wird ja nur dafür gebraucht um die Drehzahl der Motoren zu ändern ohne das du die anliegende Spannung änderst. Du änderst ja nur den Duty Cycle der PWM und dadurch kommt eine anderer effektive Spannung raus und je nachdem wie hoch diese Spannung ist, drehen die Motoren unterschiedlich schnell.

Kannst dich ja mal im Internet bischen über die Funktion einer PWM informieren.

Jada
01.06.2010, 15:06
Könnte mir jemand ein kleinen quellcode von einem Fahrtenregler zukommen lassen der über einen I/O Ausgang und einem PWM Ausgeng betrieben wird????
Muss nur ganz kurz sein wie zum Beispiel:
Motor kurz andrehen und schon wieder stoppen.
Ein ganz einfacher quellcode also.

Kampi
01.06.2010, 15:10
$regfile = "m32def.dat"
$crystal = 16000000

Config Portd.4 = Output
Config Portd.5 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Do
Compare1a = 205
Compare1b = 51
Loop
End


Mit diesem Code erzeugst du an Pin 18 und 19 eine PWM. Über die Zeile Compare1a = 205 stellst du den Duty-Cycle ein. Wenn du ein Osziloskop hast kannste dir das mal ansehen. Dann siehst du das wenn du die Zahl verkleinerst die Pausen größer werden und die Einschaltzeit kleiner.

Jada
01.06.2010, 15:22
aber ich brauche doch noch einen i/o ausgang oder???

Kampi
01.06.2010, 16:49
Naja idealerweise macht man das so das man zwischen Controller und Motor noch einen Motortreiber schaltet. Der Motortreiber braucht pro Motor drei Anschlüsse.
1x für Linkslauf
1x für Rechtslauf
1x für die Geschwindigkeit (das ist der Anschluss wo die PWM anliegt)

Die Anschlüsse für Links und Rechtslauf sind einfache I/O Pins die auf High gezogen werden wenn der Motor sich linksrum oder rechtsrum drehen soll

Jada
11.06.2010, 16:49
Hallo,
Ich bitte , dass mir jemand eine firmware in bascom schreibt für das rn-key. Die firmware soll nur können das man das rn-key sowie das rn-board aneinanderschließen kann und per rs232 eine text oder werte ausgeben kann.
Vielen Dank