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.
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!
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
Vielen Dank für deine Erklärung, dann wäre das auch geklärt!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.