www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim Senden SC16c550


Autor: Holger Hofmann (holgi1972)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe folgendes Problem beim Senden mit dem SC16C550 von Philips:

Ich schreibe das erste Zeichen in den Puffer und es wird gesendet. Das
Zeichen kommt korrekt auf meinem Terminalprogramm an. Wenn ich aber
dann das zweite Zeichen in den Puffer schreibe, empfängt mein
Terminalprogramm das vorherige (!!) Zeichen und das aktuelle, also 2
Zeichen. Und so weiter und so weiter.

Ich steuere den Modembaustein mit einem M32C84 Controller von Renesas
an  über einen "künstlichen" Datenbus mit Portpins. Vom Timing her
liege ich weit im sicheren Bereich. Und über den Bus wird auch immer
nur das nächste zu sendende Zeichen an den Modembaustein verschickt.

Lese ich den jeweiligen Status des THR und TSR Registers (im LSR
Register) nach dem Senden aus bekomme ich die Rückmeldung, dass beide
Register leer sind. Und trotzdem sendet er mir dann wieder das
vorherige Zeichen mit!

Muss ich da nach jedem Zeichen, dass ich in den Puffer schreibe noch
irgendein Register bedienen? Ich habe keine wirkliche Idee warum das so
passiert. Und die Antwort von Philips auf meine Anfrage steht noch aus.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger,

hab gerade mal gegoogelt. Konnte aber über den SC16C550 nichts
aufschlussreiches finden.

Vielleicht könntest Du uns mal einige Unterlagen zur Verfügung
stellen(Datenblatt, Schaltplan usw.) damit wir Dir besser helfen
können?

Bernhard

Autor: Holger Hofmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,

hier ist erstmal das Datenblatt des Bausteins. Die anderen Unterlagen
reiche ich nach.
Der Unterschied zu den üblichen 16550 liegt wohl in erweiterten
Registern: "Enhanced Register Set". Ich habe leider mit den
"ursprünglichen" 16550 noch nicht gearbeitet.

Gruß
Holger

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier doch mal folgendes aus:

Du sendest fortlaufend verschiedene Zeichen (0,1,2 ...255) ,

wenn es einen Zeichen-Puffer gäbe, müsste er irgend wann voll sein.

Oder liegt es vielleicht an Deinem Terminal-Programm?

Trenne doch mal die RX-Leiung vom SC16C550?

Bernhard

Autor: Holger Hofmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,

ich glaube ich habe das Problem gefunden!! Und zwar habe ich bei der
Ansteuerung des 16C550 mit meinem künstlichen Daten- und Adressbus
Verzögerungen eingebaut.
Das WriteEnable-Signal (High-Aktiv) hatte ich dadurch für 12,5us
anstehen. Damit ist der Baustein bei zunehmender Geschwindigkeit
(ab19200Bd) nicht klargekommen (und ich hatte es immer  mit 115200Bd
laufen!!!). Aufgefallen ist es mir als bei 2400Bd kein
Übertragungsfehler vorkam.
Ohne die Verzögerung des Enable-Signals klappt alles wunderbar.

Danke nochmal für Deine Bemühungen.

Gruß
Holger

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gern geschehen ;)

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.