PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Master & Slave AVR



Tonyy
29.09.2010, 20:54
Hallo,

Ich bin ein neuer User und bin gerad in die Materie eingestiegen.
Habe auch schon diverse Programme realisiert und habe nun eine neue Idee.

Ich wollte über eine 2polige oder einpolige Leitung mehrere AVRs ansprechen:


............... [ AT ] [AT ] [AT ]
____ ...... // ...... // ...... //
[_AT_]=================

Die Idee ist also, dass ich mit einem ATmega8 mehrere In-Pins definiere.
Mein Programm soll danach via Out-Pins Signale versenden, die halt 0 oder 1 sind in verschiedenen Abständen wie bei der PWM eben.

Das der Master-Controller die Signale produziert, je nachdem was ein In-Pin ihm angibt, ist nicht das Problem, sondern meine Frage ist,
ob die Slave- Controller, wollte Attinys nehmen, in der Lage sind, diese Modulation eben auf Out-Pins ausgeben zu können.

Meine Idee für den Ansatz war folgende:

Beispiel Code für den Master AVR: (Code in Bascom):

If PIND.0 = 1 Then
PORTB.1 = 1
waitms x (variabel)
PORTB.1=0
waitms x
PORTB = 1
waitms x
PORTB.1 = 0

den Code kann man noch verfeinern, aber ich hoffe, ihr wisst, was ich für einen Grundgedanken habe.

Nun sollte natürlich im Attiny, der das empfängt dieser Impuls wieder entschlüsselt werden.
Und hier weiß ich als absoluter Anfänger nicht weiter und ob ich irgendwie die AVRS synchronisieren müsste oder
ob das wegfällt, weil es eben so einfache Vorgänge sind.

Die Idee soll sein, dass ich dann ersteinmal z.B hinter die Attinys einzelne LEDs klemme und später,
mit einem stark verfeinerten Code via Funk, etwa bei einem Video transmitter das Audiosignal als
eben solche Brücke nehme. Hoffe ihr könnt mir helfen.

PS: Kann sein das der Ansatz total falsch ist, bin eben noch ein Anfänger.
Ansätze oder Codes in anderen Sprachen wie C nehme ich auch gerne an :)

mfg

TomEdl
29.09.2010, 21:19
Hallo und Herzlich Willkommen hier im Forum!


Möchtest du unbedingt deine eigene Schnittstelle aufbauen, oder darf es auch was "fertiges" sein? Es gibt nämlich bereits einige Sachen, die dein AVR bereits sogar hardwareseitig für die vorbereitet hat! Zum Beispiel wäre hier der I2C-Bus zu nennen, der eine stabile Zweidrahtkommunikation für unzählige Busteilnehmer darstellt.


Grüße
Thomas

Tonyy
29.09.2010, 21:43
Vielen Dank, eine hardwareseitiger Befehl macht das ganze natürlich einfacher.
Nur versteh ich gerademal, wie über diesen Befehl das passende Gerät ausgewählt wird, aber wie wird es nun möglich , vordefinierte Befehle von einem Controller an den anderen zu schicken?
Etwa das der Mastercontroller via I2C werte, etwa eine gemessene Spannung oder einen Befehl ein gewissen Port zu schalten an den Slave weitergibt.
mfg

TomEdl
29.09.2010, 21:50
Hallo Tonyy!


Ich empfehle das Studium dieser Lektüre (http://www.rn-wissen.de/index.php/I2C) und wenn dann noch weitere Fragen sind, dann stell sie einfach. ;) :)


Grüße
Thomas

williwilli
30.09.2010, 07:15
Schau doch mal hier: http://www.mikrocontroller.net/topic/87597 - ist zwar ein anderes Forum, aber da gibt's die benötigte Software in Assembler oder C schon fertig...

Tonyy
30.09.2010, 19:36
Soweit so gut, schonmal danke für die Posts :D

Jetzt hat sich aber ein anderes Problem ergeben.
Ich will ja eigentlich diesen Bus via Funk nutzen, nur wird das (meine ich gelesen zu haben ?) nicht funktionieren. Ich will halt über einen dieser Videotransmitter für den Modellflug den Audioausgang als Kanal zur Übertragung einiger Daten verwenden, etwa Batterie status.
Das dies möglich ist, haben einige Hersteller von OSDs für den Modellflug bewiesen, der Audiokanal wird indem Fall in den Mikrofonanschluss eines Iphones/ PCs gesteckt und die GPS Daten werden in google earth so sichtbar.
Hätte jemand von euch eine Idee wie man ein solches Signal verschicken könnte? An/Aus von einem IC zum anderen zu schicken über diese Leitung ist ja einfach, aber bei komplexeren Dingen , wie die Positionsbestimmung, weiß ich nicht weiter.

mfg

sast
30.09.2010, 20:14
Wenn dir 1200Baud reichen gab es mal ein sehr vielversprechendes Projekt.
Habs mal für dich rausgesucht:
http://garydion.com/projects/whereavr/

sast