mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USART im MPCM


Autor: Michael Krause (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Mich würde mal interessieren, ob hier jemand schon mal den USART der
ATmegas im MPCM (multi-processor communication mode) benutzt hat, mit
dessen Hilfe man ja sehr einfach eine Buskommunikation realisieren
kann, weil sich recht einfach zwischen Adressdaten und Nutzdaten
unterscheiden lässt.

Gibt es irgendwo Beispiele im Netz?

Ich habe Probleme mit der Kommunikation, weil beim Empfangen immer ein
Frame Error erzeugt wird, wenn der Master seine Antwort vom Slave
bekommt.

So habe ich den USART bei Master und Slaves initialisiert:

UCSRC = (1<<URSEL)| (2<<UPM0) | (1<<USBS) | (3<<UCSZ0);
SETBIT (UCSRB, UCSZ2);

/* Daten Format: 9 Bit Daten
                 1 Bit Parity-Bit Even Parity
                 2 Bit Stopp-Bit */

UCSRA |= (1 << MPCM);  /* Multiprocessor Communication Mode aktivieren
*/

Der Frame Error wird angeblich erzeugt, wenn ein
Kommunikationsteilnehmer 8Bit Daten erwartet und dann das Stopbit 0
ist. Ich habe aber alle für 9Bit Daten konfiguriert und kann mir diesen
Fehler nicht erklären.

Danke für die Hilfe!!

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für 9 Datenbits muß es heißen ...(7<<UCSZ0).
Ich glaube nicht, daß Deine Bitkombination zulässig ist. Versuche doch
erst einmal 1xStart, 9-Datenbit, 1xStopp; mit MPCM aber ohne Parität.
Andere Prozessoren beschränken sich auch darauf - insbesondere der
8051, von dem das Ganze wohl abgeleitet wurde.

Autor: Michael Krause (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm .. das Verändern hat leider auch nicht zum Erfolg geführt. Irgendwie
habe ich den Eindruck, dass dieser MPCM nicht richtig ausgereift ist.
Es gibt ja auch anscheinend keine Beispiele weiter im Internet

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Irgendwie habe ich den Eindruck, dass dieser MPCM nicht richtig
ausgereift ist.

Na das ist ja heftig.
Wie ausgereift sind denn Deine Programmierkenntnisse ? Dort würde ich
die Lösung des Problems suchen - und das mußt Du dann wohl alleine
machen.

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.