www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 AVR's verbunden, wie ansteuern?


Autor: Lokus Pokus (derschatten)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hier eine Schaltung die aus 2 AVR's besteht die mit 3 Leitungen 
miteinander verbunden sind.
Der erste AVR dient zum einlesen der Verzeichnisses der SD-karte und der 
zweite nur für die Ausgabe am LCD.

Die Hardware bestand ursprünglich nur aus dem ersten AVR.
Der zweite kam erst später hinzu, da sich einige die mühe gemacht hatten 
dafür eine LCD-Ausgabe zu entwickeln.

Ich möchte gerne das LCD-Menü erweitern, was prinzipel kein problem 
darstellt.
Jedoch liegt der Code des Menüs am ersten AVR der dann die Ausgabe auf 
den zweiten weiterleitet.

Der zusätzliche Menüpunkt soll die Ausgänge des Display-AVR ansprechen.

Wie macht man das? Wie kann man vom ersten AVR die Ausgänge des zweiten 
ansprechen?

Autor: xelarep (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne blöde Frage, wiese sind die SDA/SCL nicht verbunden, dann 
könntest Du das alles über Hardware TWI machen?!

Beim Zweiten Mega32 hängen am TWI zwei LEDs die könnten doch auch 
woanders hin?

xelarep

Autor: Jan Pioske (kijan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Die Ausgänge des zweiten kannst du nicht direkt ansprechen. Du hast die 
Controller ja über I2C verbunden, also könntest du dem 2. Controller 
über I2C Kommandos schicken, die der dann per Software auswertet und 
entsprechende Pins schaltet. Was besseres fällt mir dazu auch nicht ein 
im Moment.

Warum willlst du das denn überhaupt so umständlich machen und lässt 
nicht den Display-AVR alles machen?

Übrigens fehlen die I2C Pullups wenn ich mich nich irre? Hab zumindest 
keine gesehen und ich meine mal gelesen zu haben, dass das mit den 
internen des AVR nicht geht, kann aber sein dass ich da falsch liege.


//edit:
Verdammt zu spät und dann auch noch mist geschrieben, hatte den 
Schaltplan nur kurz überflogen und dachte die hängen über I2C 
aneinander. Dann geht das ganze natürlich nicht so :(

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xelarep schrieb:
> Mal ne blöde Frage, wiese sind die SDA/SCL nicht verbunden, dann
>
> könntest Du das alles über Hardware TWI machen?!

Das kann ich dir jetzt so nicht beantworten. Die Schaltung stammt nicht 
von mir. Ich habe sie nur ein wenig erweitert.
Warum das so gemacht wurde, entzieht sich meiner Kenntnisse.

Ich denke jedoch das jetzt umzustricken würde meine kenntnisse 
überfordern.

> Warum willlst du das denn überhaupt so umständlich machen und lässt
> nicht den Display-AVR alles machen?

Weil dafür zu wenig Anschlüsse vorhanden sind.

> Übrigens fehlen die I2C Pullups wenn ich mich nich irre? Hab zumindest
> keine gesehen und ich meine mal gelesen zu haben, dass das mit den
> internen des AVR nicht geht, kann aber sein dass ich da falsch liege.

Gute Frage. Das ganze funtkioniert allerdings so problemlos.

> Dann geht das ganze natürlich nicht so :(
Mist. Also keine Chance?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:

> Wie macht man das? Wie kann man vom ersten AVR die Ausgänge des zweiten
> ansprechen?

Dazu muss man erst einmal analysieren, wie das jetzige Komplett-System 
funktioniert. Da gibt es mehrere Möglichkeiten, wie das alles aufgebaut 
sein kann.
Erst wenn man darüber den Überblick hat, kann man sich überlgen, wie 
eine Erweiterung gemacht werden könnte.


Nach deiner Beschriebung zu urteilen, gibt es eine Form der 
Kommunikation, die vom Haupt-Mega ausgeht und der LCD-Mega ist nur 
Befehlsempfänger. Da wird es also Befehle in die eine Richtung geben. 
Diese Befehlsliste erweitert man um zusätzliche Befehle, die vom 
Haupt-Mega abgesetzt werden. Der LCD-Mega wird soweit erweiter, dass er 
diese Befehle empfangen und verarbeiten kann und als Folge davon 
Portpins schaltet.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, aber wie kann man sich das Vorstellen?
Was sind das für Befehle?

Sind das Standard-AVR-Kommandos, sind das Variablen? Wie funktioniert in 
der Regel so eine Kommunikation zwischen 2 AVR's?

Spielen da mehrere faktoren mit?

ich bin ja schon froh wenn ich einen so halbwegs meine Befehle mitteilen 
kann.

Autor: Christian F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso bekommt der zweite Mega seinen Takt von einem Port-Pin des ersten 
Mega?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> Ok, aber wie kann man sich das Vorstellen?

Du und dein Kumpel sind per Telefon verbunden.
Du gibst deinem Kumpel per Telefon Anweisungen was er zu tun hat.

Dein Kumpel ist in der Kneipe und steht vor dem üblichen schwarzen 
Brett. Wenn du ihm die richtigen Anweisungen gibst, dann steht auf dem 
Brett dein Bestellwunsch

> Was sind das für Befehle?

Ich sagte doch:
Da muss man das Programm analysieren und nachsehen, wie es gemacht 
wurde.

> Sind das Standard-AVR-Kommandos, sind das Variablen? Wie funktioniert in
> der Regel so eine Kommunikation zwischen 2 AVR's?

Du einigst dich mit deinem Kumpel:
0   bedeutet "schwarzes Brett löschen"
1   bedeutet " weiße Kreide nehmen"
2   bedeutet " rote Kreide nehmen"
3   bedeutet " 'Bier bestellen' hinschreiben"
4   bedeutet " 'Limo bestellen' hinschreiben"
5   bedeutet "Wirt fragen, ob ich noch was schuldig bin"


und jetzt gibst du deinem Kumpel die richtigen Codezahlen in der 
richtigen Reihenfolge durch, damit er genau das macht, was du willst.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian F. schrieb:
> Wieso bekommt der zweite Mega seinen Takt von einem Port-Pin des ersten
> Mega?

Das war ursprünglich angedacht. Um einen Taktgeber und Platz auf der 
Platine einzusparen.
Inzwischen läuft das ganze jedoch mit 2 Taktgeber.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da muss man das Programm analysieren und nachsehen, wie es gemacht
> wurde.

Einen Tip wo ich da in etwa suchen könnte?
Gibt es da markante Funktionen die hierfür verwendet werden?
Ich weiß, so Ferndiagnosen ohne den Code zu kennen sind natürlich nicht 
leicht.
Aber würde man das direkt in der main.c implementieren oder in einer 
eigenen lib?

Autor: stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stephan schrieb:
> http://www.pitsch.de/stuff/mmc2iec/index.htm
>
> das war wohl das Orginal.

Korrekt. Um es ganz genau zu nehmen,
die Nr. 11. Shadowolf sd2iec v1.0/1/2

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Manfred W. (derschatten)

>Ich denke jedoch das jetzt umzustricken würde meine kenntnisse
>überfordern.

Das so zum laufen zu bekommen ebenfalls ;-)

>> Warum willlst du das denn überhaupt so umständlich machen und lässt
>> nicht den Display-AVR alles machen?

>Weil dafür zu wenig Anschlüsse vorhanden sind.

Die kann man ja auch nicht einfach erweitern, vor allem so einen 
Krümelkram wie ein LCD und ein paar Tasten . . .

AVR-Tutorial: Schieberegister

>Mist. Also keine Chance?

Fang mal klein an. Nimm EINEN Mikrocontroller und programmier den. Das 
ist mehr als genug für deinen Kenntnisstand. Auch wenn 
Multiprozessorsachen heute mehr denn je hip sind (Unter nem Quadcore P4 
machts heute doch keine(r) mehr), sind sie in denn allermeisten Fällen 
schlicht Overkill.

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.