Forum: PC Hard- und Software RS232 - normale USART umgehen


von Manuel -. (ploana)


Angehängte Dateien:

Lesenswert?

Hallo

Ich möchte mich mit einem PC in den DMX512-bus hängen(mit Levelkonverter 
- RS-485 ...)

Mein Problem ist, dass ich nicht weiß wie ich den Bus 160µs lange auf 0 
ziehen kann(da ich nicht eifnach 0x00 ausgeben kann)
Eine möglichkeit wäre, dass man die Baudrate von 250kBit/s herunterdreht 
und dann 0x00 ausgibt und sofort die Baudrate wieder auf die 250kBit/s!
dies hört sich aber sehr unsicher an ...

I habe mir gedacht ob man nicht vielleicht die PC-Schnittstelle 
"austricksen" könne??
zB.: mit einer der speziellen Signalleitungen wie RTS, CTS, DSR, 
DCD(CD), DTR oder RI(wahrscheinlich eher weniger) ??????

Kann mir irgendwer weiterhelfen?
(Zugriff auf die Schnittstelle mit C#)

Gibt es eine möglichkeit?
Beim µC ist es leichter, da werden die bestimmten Pins nicht als normale 
PortPins deklariert und wenn der RESET (1) fertig ist werden die PINS 
als USART Modul deklariert!

Würde mir sehr weiterhelfen wenn jemand eine Idee hätte

lg manuel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du könntest tatsächlich mit einer Handshakeleitung (DTR oder RTS, alle 
anderen sind Eingänge) eine zusätzliche Hardware ansteuern, die Dein 
gewünschtes Verhalten erzeugt. Dazu würde ein einfaches AND-Gatter 
genügen, an das die Handshakeleitung und TxD von der UART angeschlossen 
werden (natürlich erst nach 'nem geeigneten V24-zu-TTL-Pegelkonverter).

Allerdings wirst Du mit 'nem PC, sofern Du nicht ein hartes RTOS 
verwendest, keine Chance haben, definierte 160 µs lang irgend etwas zu 
tun. Mit Windows hast Du da ganz schlechte Karten, das könntest Du nur 
auf Devicetreiberebene hinbekommen, aber absolut überhaupt gar nicht mit 
'ne in C# geschriebenen Usermode-Applikation.

Das weitere Problem ist, daß die serielle Schnittstelle des PCs gar 
keine Datenrate von 250 kBit/sec erzeugen kann, schneller als 115200 
wird die nicht. Das können nur USB-Seriell-Adapter oder spezielle 
PCI-Steckkarten.

(Ja, es gibt Methoden, die Super-I/O-Chips, in denen die normalen 
PC-UARTs auf heutigen Mainboards drinstecken, quasi zu "übertakten", das 
aber ist nichtportierbares Gefrickel, von dem ich die Finger lassen 
würde)

von axel (Gast)


Lesenswert?

"Eine möglichkeit wäre, dass man die Baudrate von 250kBit/s 
herunterdreht
und dann 0x00 ausgibt und sofort die Baudrate wieder auf die 250kBit/s!
dies hört sich aber sehr unsicher an ..."

Das wird bei Digitemp für die 1-wire Ansteuerung auch so gemacht.

Warum soll das nicht gehen ?

Gruss
Axel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Warum soll das nicht gehen ?

Ich zitier' mich mal:

> Das weitere Problem ist, daß die serielle Schnittstelle des PCs gar
> keine Datenrate von 250 kBit/sec erzeugen kann, schneller als 115200
> wird die nicht.

von Manuel -. (ploana)


Lesenswert?

@Axel

Nein ich denke es wird schon gehen, aber ich bin mir nicht sicher ob 
dies auch sicher ist, wenn ich dass so mache ...
Versuchen werde ich es auf jedem Fall, aber ich dachte es gibt eine 
schönere Lösung...

Wenn dann muss ich sowiso mit einem USB-RS232 Konverter arbeiten!

lg manuel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Wenn dann muss ich sowiso mit einem USB-RS232 Konverter arbeiten!

Und in diesem Falle bekommst Du das Timing nicht ansatzweise hin. Nicht 
nur, daß das von Dir verwendete OS mit einer Schedulergranularität von 
10 -bestenfalls 1- msec arbeitet, sondern hinzu kommt noch, daß USB auch 
nur im 1kHz-Takt gepollt wird.

Mit einem USB-Seriell-Adapter wirst Du keine 160 µS-Pulse erzeugen 
können.

Mach Dir das Leben einfacher: Nimm einen µC mit zwei seriellen 
Schnittstellen, die eine verwendest Du für das DMX-Protokoll, die andere 
hängst Du mit ausreichend hoher Baudrate an einen FT232R.

Alle timingkritischen Dinge solltest Du auf dem µC durchführen, der PC 
bekommt das einfach nicht hin, auch wenn er mit zig GHz getaktet sein 
sollte.

von juppi (Gast)


Lesenswert?

@ Manuel -- (ploana)
leider und ungern muß ich
 Rufus t. Firefly (rufus) (Moderator)
recht geben .
z.Z. ist dies die einfachste und billigste Lösung.

ich suche selbst ,aus Interesse ,einen deines Vorschlags ähnliche 
Lösung,
leider vergeblich.

von Manuel -. (ploana)


Lesenswert?

hi

Stimmt das wird wohl die einfachste und sicherste lösung sein
und ein FT232R ist auch eifnach zum einsetzen ...

Ich finde das einfach immer wieder schade, wieviel unbrauchbares zeug 
ein PC heutzutage hat ... und brauchbares nicht!

Danke an alle

manuel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ich finde das einfach immer wieder schade, wieviel unbrauchbares zeug
> ein PC heutzutage hat ... und brauchbares nicht!

Ach, das war nie wirklich anders.

von Manuel -. (ploana)


Lesenswert?

>Ach, das war nie wirklich anders.

stimmt da hast recht

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
Noch kein Account? Hier anmelden.