Forum: Mikrocontroller und Digitale Elektronik usb-rs232 und schieberegister 4094


von eni (Gast)


Lesenswert?

hallo
ich habe ein problem mit meinem projekt. es geht um eine 
aqariumsteuerung über meinen server.

ein zentraler punkt und mein problem ist, das über rs232 mehrere 
schieberegister 4094 angsprochen werden, dessen outputs dann 
verschiedene geräte (schrittmotortreiber,relaistreiber etc) ansteuern.
da ich an meinem server keinen com-anschluss habe, habe ich vor ein 
usb-seriell adapter zu nehmen. der, den ich habe hat nen prolific-chip.

ich habe wirklich nur basiswissien im bereich elektronik und verwende 
die folgende schltung für den anschluss der 4094's an den comport:
http://www.skilltronics.de/versuch/elektronik_pc/4094.html

während das ganze mit einem "echten" comport problemlos funktioniert 
, geht es einfach nicht mit dem adapter.
doch wenn ich statt dem 4094 leds anschliesse und mein programm 
langsamer laufen lasse, dann stimmt blinken die leds genauso wie sie es 
sollten.

naja was mache ich falsch?

könnte es sein, das der prolific-chip nichts taugt, und ich mir ein 
adapter mit ftdi-chip besorgen mus?

von GerardCh (Gast)


Lesenswert?

Soweit ich gehört habe geht usb zu rs232 nur bis 9600 baut gut, wie viel 
baut  hast du eingestellt?

von Falk B. (falk)


Lesenswert?

@ eni (Gast)

>http://www.skilltronics.de/versuch/elektronik_pc/4094.html

>während das ganze mit einem "echten" comport problemlos funktioniert
>, geht es einfach nicht mit dem adapter.

Das Problem ist, dass der RS232 im sog. Bit-Bang Modus "missbraucht" 
wird. Dabei werden per Programm die Steuerleitungen "geklappert".

>doch wenn ich statt dem 4094 leds anschliesse und mein programm
>langsamer laufen lasse, dann stimmt blinken die leds genauso wie sie es
>sollten.

Ja, denn das Programm ist auf einen echten RS232 aufsgelegt. 
Prinzipbedingt kann man bei einem USB-RS232 Umsetzer die Steuerleitungen 
nicht so schnell schalten.

>naja was mache ich falsch?

a) dein Programm wie bereits erkannt WESENTLICH langsamer laufen lassen, 
lange Pausen zwischen den Umschaltungen der Signale, so 1..10ms.
b) das Programm ändern und mit der direkten/richtigen RS232 Übertragung 
die Register steuern. Dazu muss am anderen Ende ein kleiner 
Mikrocontroller, z.b. AVR sitzen, der die Kommandos per RS232 entgegen 
nimmt und in die Schieberegister schreibt.

AVR-Tutorial: Schieberegister

>könnte es sein, das der prolific-chip nichts taugt, und ich mir ein
>adapter mit ftdi-chip besorgen mus?

Nein, das ist ein prinzipielles Problem ALLE RS232-USB Umsetzer.

@ GerardCh (Gast)

>Soweit ich gehört habe geht usb zu rs232 nur bis 9600 baut gut,

Dasi sit falsch.

> wie viel baut  hast du eingestellt?

Spielt hier keine Rolle, es wird "gebit-bangt".

MfG
Falk

von Olaf (Gast)


Lesenswert?

> ich habe wirklich nur basiswissien im bereich elektronik und verwende
> die folgende schltung für den anschluss der 4094's an den comport:
> http://www.skilltronics.de/versuch/elektronik_pc/4094.html

Es mag ja sein das die Ausgaenge einer RS232 einigermassen 
Kurzschlussfest sind, aber ich finde es trotzdem etwas gewagt die 
Z-Dioden direkt anzuschliessen....

> während das ganze mit einem "echten" comport problemlos funktioniert
> , geht es einfach nicht mit dem adapter.

Also grundsaetzlich sollte es auch mit so einem Adapter gehen. 
Allerdings ist die Uebertragung ueber USB sehr langsam wenn man mit 
einzelnen Steuerleitungen rumwackeln will. Deshalb ist das meist keine 
besonders gute Idee.
Ich koennte mir auch vorstellen das der USB-Treiber sich bemueht 
einzelne Aktionen in einen Kommandoblock zusammenzufassen und dann 
stimmt eventuell das Timing fuer den 4094 nicht mehr. Das sollte sich 
beheben lassen wenn
du irgendwie einen Flush der Buffer zwischen jedem einzelenen Bit 
setzen/zuruecksetzen einfuegst. Aber das macht die Sache dann wohl noch 
traeger.

Olaf

von eni (Gast)


Lesenswert?

in meinem originalprogramm hatte ich 19200 vorgesehen. hab aber beinahe 
alles auprobiert von 50 bis 460800, das bringt alles nichts..

ich vermute eher sowas wie ein pegel-problem, kenn mich aber zuwenig 
aus..

von eni (Gast)


Lesenswert?

so wie ich das nach den zwei antworten sehe klappt das ganze nicht was 
ich vorhabe.

ich müsse also, so wie Falk Brunner gesagt hab einen microcontroller 
dazwischenschalten, also:

(USB) > (RR232-Adapter) > (atmel avr) > (4094)

sehe ich das richtig??

von Falk B. (falk)


Lesenswert?

@ eni (Gast)

>(USB) > (RR232-Adapter) > (atmel avr) > (4094)

>sehe ich das richtig??

Ja.

MfG
Falk

von eni (Gast)


Lesenswert?

danke vielmals für die hilfe, werd probieren, das ganze umzusetzen.

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.