mikrocontroller.net

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


Autor: eni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: GerardCh (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: eni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: eni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ eni (Gast)

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

>sehe ich das richtig??

Ja.

MfG
Falk

Autor: eni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke vielmals für die hilfe, werd probieren, das ganze umzusetzen.

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.