www.mikrocontroller.net

Forum: PC-Programmierung UART Register ansprechen (DOS)


Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche ein Tool, mit dem unter DOS die Register des UART
angesprochen werden können. peziell geht es dabei um das
Ein-/Ausschalten des FIFO's. Schöner wäre aber, wenn alle Register
ausgelesen/gesetzt werden könnten.

TD

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
debug.com

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und jede beliebige DOS-Programmiersprache, einschliesslich
QBasic/QuickBasic.

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und jede beliebige DOS-Programmiersprache, einschliesslich
> QBasic/QuickBasic.

Eine Programmiersprache sehe ich nicht als Tool, wie ich es meine, an.
Das ich alles mögliche selbst Programmieren kann, weiss ich auch. Da
aber eine schnelle Lösungsfindung gefragt ist, wäre ein fertiges Tool,
dass ich in 3 Minuten (Idealfall ;) runterlade und starte,  besser, als
eine Eigenprogrammierung, die (hier) einige Stunden dauern kann.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Sinn soll es aber haben, einzelne Bits in den Registern der UART
zu befummeln, wenn jedes danach gestartete DOS-Programm die UART eh neu
initialisiert?
Außerdem sind die FIFOs der 16550 unter DOS sowieso inaktiv, es sei
denn, ein Programm aktiviert sie entsprechend.
Und Programme, die nichts vom 16550 verstehen (die meisten
DOS-Programme also), sondern eine 8250 erwarten, die könnten mit den im
FIFO-Betrieb auftretenden Bedingungen eh nichts anfangen (ein Interrupt
für mehr als ein empfangenes Zeichen ...).

Oder geht es Dir gar nicht um DOS, sondern Du meinst die
Windows-"Eingabeaufforderung", und Du möchtest die FIFO-Einstellungen
des Windows-Devicetreibers verändern?
Dafür bietet der Devicetreiber im Gerätemanager eine GUI, bei der nicht
nur die FIFOs abgeschaltet werden können, sondern sogar die
Triggerschwellen (bei aktivem FIFO) festgelegt werden können.

Was also genau hast Du vor?

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus
Danke für die Erläuterungen. Ein Kollege hat folgendes Problem (mit dem
ich mich nicht näher befasst habe):

Eine Programmiersoftware (DOS) verlangt laut Handbuch einen 8250 UART.
Wir haben aber nur Rechner mit 16550 (welche ja FIFOs haben). Auf all
diesen Rechnern funktioniert nun das Programm nicht richtig (Meldung:
"Programmierspannung liegt nicht an", obwohl diese am Gerät (SPS) zu
messen ist). Mein Kollege meint nun, es könne daran liegen, dass die
Software nicht mit dem FIFO klarkommt. Daher wollte er diesen vor
Programmstart deaktivieren.

Das die FIFOs unter DOS generell deaktiviert sind, wusste ich nicht.

Ich habe mich (wie schon erwähnt) noch nicht näher mit der Sache
befasst, meine aber, dass das Problem an anderer Stelle liegt.

TD

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 16550 ist nach Reset funktionskompatibel zur 8250.

Wenn die Software auf neueren PCs nicht funktioniert, wird das andere
Gründe haben:

a) kein DOS, sondern virtuelle DOS-Umgebung unter einem
Betriebssystem?

b) Rechner ist deutlich schneller als die, die noch mit 8250 bestückt
wurden, und Software ist so schlecht geschrieben, daß das Probleme
bereitet.

c) Verkabelung der seriellen Schnittstelle könnte fehlerhaft sein,
vielleicht wird ja ein "vergurkter" 9-zu-25-Adapter verwendet.

d) Die "alte" serielle Schnittstelle ist eine
Original-IBM-Schnittstellenkarte für einen IBM PC bzw. XT. Die
unterstützt nicht nur die einfache RS232-Betriebsart, sondern kann auch
als 20mA-Stromschleife konfiguriert werden (was dann auch andere Pins am
25poligen Stecker nutzt).
Das können neuere Schnittstellen mit 9poligem Stecker nicht.

Die 16550 wird in PCs seit der ersten Hälfte der 90er Jahre
standardmäßig verwendet, das dürfte Vermutungen über das Alter der
Software zulassen ...

Der erste Rechner, in dem ich der 16550 begegnete, war ein IBM PS/2
Modell 30/286, ein 10MHz-286er.
Mit dem hatte ich etwa 1990 zu tun.

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.