mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim Empfang auf UART1 der SC16IS752 Bridge


Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits. Ich habe hier einen LPC2214, an den ein SC16IS752 
(SPI-to-UART Bridge) angeschlossen ist. Dahinter hängen zwei MAX3243 zur 
Pegelwandlung. Nur leider habe ich ein Problem beim Empfang auf dem 
UART1 (Kanal B): ich muss im Terminal zwei Tasten gleichzeitig drücken, 
damit eine davon am Controller ankommt. Drücke ich nur eine Taste, 
passiert gar nichts. Es ist auch egal, ob ich die Schnittstelle im 
Interrupt oder Polling Modus betreibe - bei beiden Modi das gleiche 
Ergebnis.

Der UART0 (Kanal A) funktioniert in beiden Richtungen bestens und auch 
die ausgehende Übertragung auf UART1 funktioniert ohne Probleme. Die 
Initialisierung ist bei beiden Kanälen identisch. Ein einzelnes 
gesendetes Zeichen vom PC auf UART1 kommt hinter dem MAX korrekt an, 
aber irgendwie verarbeitet die Bridge es nicht. Die Baudrate hat auch 
keinen Einfluss darauf, es ist egal, ob ich die Schnittstelle mit 9600b 
oder 115200b betreibe.

Woran könnte das liegen? Danke vorab.

Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich bin etwas weiter. Wenn ich bei UART1 (Kanal B) den Sleep Mode 
ausschalte, funktioniert es. Ist das ein Fehler in der Bridge? Bei UART0 
(Kanal A) kann ich den Sleep Mode ohne Einschränkungen verwenden!

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Eduard,

der Sleep-Mode beim SC16IS762 gilt immer für beide Kanäle - die 
Beschreibung im Datenblatt ist so nicht vollständig.
Der Sleepmode wird erst aktiviert, wenn beide Kanäle entsprechend 
konfiguriert sind (auch wenn das nirgends steht). Der Grund liegt darin, 
daß nur ein Oszillator für beide Kanäle verwendet wird.

Es gibt eine Application-Note (AN10571_1, Sleep programming for NXP 
bridge ICs) in der dies minimal besser beschrieben ist.

Darin steht auch, daß der Oszillator komplett abgeschaltet wird
(In Sleep mode, the UART clock and baud rate clock are stopped and XTAL2 
is floating.) --> d.h. beim Wakeup muss der Oszillator erst wieder 
anschwingen. Je nach Quarz, Lastkapazität und Baudrate, dauert dies 
evtl. so lange, daß das erste Zeichen nicht mehr korrekt empfangen 
werden kann.

Gruß,

Markus

Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Erklärung, dann wäre das auch geklärt!

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.