Forum: Mikrocontroller und Digitale Elektronik PIC 18F4550 an drei PCs


von Darkleon (Gast)


Lesenswert?

Hallo!

Ich benutze einen PIC 18F4550 mit USB. Über diese USB Schnittstelle 
werden Daten empfangen und auch an einen PC gesendet.

Jetzt hab ich das Problem, dass ich diese Ausgabe vom Controller an 3 
PCs benötige. Dachte  mir deshalb ich verwende einen FTDI Chip, damit 
ich zumindest noch einen weiteren PC über USB an den Controller hängen 
kann. Über UART erfolgt nur eine Datenausgabe, während wie beschrieben 
diese Datenausgabe auch an der USB Schnittstelle des Controllers 
erfolgt.

Ist es möglich zwei FDTI Chips quasi parallel an UART zu hängen, damit 
diese die gesendeten Daten dann beide an die jeweiligen PCs senden?

Oder ist dieses Vorhaben überhaupt nich umsetzbar?!? Muss das leider 
irgendwie so machen, da die Programme nur Daten über einen Com-Port 
empfangen können und ich die PCs über USB anschließen will.

Hoffe auf Antwort.

Danke schon im Voraus.

MfG
Darkleon

von Darkleon (Gast)


Lesenswert?

push

von Jaecko (Gast)


Lesenswert?

Nur kein Stress...

Wenn der Controller sendet und nur die TX-Leitung zu den FTDI verbunden 
ist, dann sollte das gehen. Wenn du 1 Sender hast, ist es im Prinzip 
egal, wie viele Empfänger da sind, solange die jeweils genug für die 
anderen Empfänger übrig lassen. Also bei 100 FTDIs würd ich einfach mal 
behaupten, dass dann keiner mehr was "versteht".

Sind aber die RX auch noch verbunden, dürfte das ein Problem geben, wenn 
einer der FTDI meint, er muss an den Controller senden. Dann drückt ein 
FTDI z.B. mit 5V auf die Leitung, die anderen mit 0V und schon gibts nen 
schönen kurzen.

von Darkleon (Gast)


Lesenswert?

Hallo Jaecko.

Danke für die Antwort. Ja es wird vom Controller an die FTDIs nur 
gesendet. Heißt das, ich brauch (oder sollte) nur Tx verbinden? Rx kann 
ich dann ja unbelegt lassen. Sowohl an den FTDIs als auch am Controller. 
Oder soll ich die (mit oder ohne Bauteilen) mit GND verbinden?

Hab nämlich noch nie mit FTDIs gearbeitet und auch nicht, dass nur 
gesendet aber nicht empfangen wird...deshalb die Frage ;)

MfG

von Christian R. (supachris)


Lesenswert?

Vorsicht. TX vom FTDI muss an RX vom PIC und umgekehrt. TX am FTDI ist 
der Ausgang, aus dem die Daten kommen, die der PC gesendet hat. TX und 
RX beziehen sich immer auf den Chip, an dem sie direkt dran sind. Also 
musst du den TX-Pin des PIC an die RX-Anschlüsse des FTDI anschließen. 
Das Block Diagramm im Datenblatt des FT232R verdeutlich das.

von Darkleon (Gast)


Lesenswert?

Danke für den wichtigen Hinweis supachris.
Kann ich dann Rx am PIC und Tx am FTDI unbeschaltet lassen, da wirklich 
nur vom PIC zu den PCs gesendet wird.

Nochmals danke für den Hinweis.

MfG

von Darkleon (Gast)


Lesenswert?

Hi!

Hab mir das Datenblatt vom FT232R angesehen und auf Seite 29 der .pdf 
Datei wird bschrieben, wie man den Chip mit einem uC verbindet. Da gibt 
es neben Rx/Tx auch die Anschlüsse RTS# und CTS#.Diese werden für den 
"handshake" verwendet.Wenn ich wie beschrieben nur Daten an den Pc 
übermittle, brauch ich die dann überhaupt? Denk mal CTS# gehört zu Tx 
und RTS# zu Rx, oder?

Hab auch gesehen, dass man einen CBUS PIN als PWREN# konfiguieren 
kann.Ist dieser dann für den "sleep" Modus des FT232 zuständig? Das kann 
man doch auch einfach über die Spannungsversorgung machen, oder?

Da ich nämlich noch Schieberegister an Bord habe dachte ich mir, dass 
ich die ganzen ICs (damit auch den FT232) über einen Transistor mit 
Spannung versorge und wenn der PIC in den Sleep Modus geht, dann trennt 
er alle ICs vom Netz, damit der Standby-Modus so wenig als möglich meine 
Batterie belastet?
Oder spricht was gegen diese Idee?

Hoffe ihr könnt mir wieder helfen.

MfG

von Christian R. (supachris)


Lesenswert?

Handshake brauchst du in den meisten Fällen nicht. Extrem hohe 
Datenraten wirst du ja nicht haben.

Mit dem PWREN ist das so: Die USB Spezifikaion verlangt, dass 
angeschlossene Geräte im Standby Modus weniger als 1mA oder sowas (die 
genauen Zahlen weiß ich jetzt gerade nicht mehr) aus dem USB Anschluss 
ziehen. Der Pin am FT232 gibt also an, wann der Host-Controller den 
FT232 schlafen geschickt hat. Dann musst du deine gesamte Elektronik 
abschalten, wenn du die USB Spezifikation einhalten willst.

von Darkleon (Gast)


Lesenswert?

Danke Christian für deine schnelle Antwort.

Also PWREN# ist also nicht Pflicht, vor allem bei meinen Anforderungen 
uninteressant, da die Steuerung die PCs ein und ausschaltet und daher 
weiß, wann die Pcs aus sind und die Steuerung schlafen gehen kann ;)

kann ich daher die nicht benutzten CBUS Leitungen unbeschaltet lassen 
oder gehören die nach GND oder VCC? Im Datenblatt sind die zumindest 
unbeschalten, von daher denk ich kann ich die dann einfach so lassen.

Nochmals Danke.

MfG

von Skua (Gast)


Lesenswert?

Ich würde Optokoppler zwischenschalten um Potentialunterschiedsprobleme 
zu vermeiden.

von Darkleon (Gast)


Lesenswert?

Hi Skua.

Du meinst Optokoppler zwischen USB und FTDI??

Das hab ich sowieso vor, nachdem mir bei meinen ersten USB Versuchen 2 
Controller im Pc abgeraucht sind ;) Also eine Trennung ist sowieso 
Pflicht!!

Danke für deinen Hinweis.

MfG

von Christian R. (supachris)


Lesenswert?

Darkleon wrote:
> Danke Christian für deine schnelle Antwort.
>
> Also PWREN# ist also nicht Pflicht, vor allem bei meinen Anforderungen
> uninteressant, da die Steuerung die PCs ein und ausschaltet und daher
> weiß, wann die Pcs aus sind und die Steuerung schlafen gehen kann ;)

Hm, naja, wenn der PC aus ist, ist das für ein USB Gerät Standby, dann 
darf das nicht viel Strom ziehen. Wenn man sich an den Standard halten 
will..

> kann ich daher die nicht benutzten CBUS Leitungen unbeschaltet lassen
> oder gehören die nach GND oder VCC? Im Datenblatt sind die zumindest
> unbeschalten, von daher denk ich kann ich die dann einfach so lassen.

Kannst du offen lassen.

von Darkleon (Gast)


Lesenswert?

Ja das mein ich ja Christian. Wenn ich den Pc über die Steuerung 
ausschalte, dann deaktiviert der Controller seinen internen USB und UART 
Port. Ob der Pc dann ausgeschaltet ist oder nicht (falls er sich 
aufhängt) wird über eine eigene Portleitung überwacht. Sobald der Pc 
ausgeschaltet ist schaltet der PIC die Spannungsversorgung der anderen 
Ics weg und geht selbst in den "sleep" modus.

Gestartet wird das ganze dann über einen externen Interrupt und die 
Steuerung schaltet dann die USB und UART Module und natürlich den Pc 
wieder ein.

So sollte ich der USB Spezifikation entsprechen...hoff ich zumindest;)

MfG

von Darkleon (Gast)


Lesenswert?

Hallo!

Hab da noch ne Frage.

Da ich jetzt das SPI Modul auch brauch ergibt sich folgendes Problem.

Für SPI brauch ich folgende Pins: SDI, SCK und SDO.

Nur ist SDO Pin der selbe wie Rx vom USART Modul.

Kann ich nun beide Module nutzen? Denn ich benötige den Rx Pin 
eigentlich gar nicht, da ich ja nur sende und nicht empfange. Aber das 
Modul wird mir diesen Pin doch konfiguieren, oder kann ich das irgendwo 
einstellen, dass ich nur sende und daher den Rx Pin SDO sein soll?!?

Oder bleibt mir nur die Soft USART als Möglichkeit Verbindung mit den 
FT232RL aufzubauen.??

Hoffe auf Antwort.

MfG

von Darkleon (Gast)


Lesenswert?

Weiß hier niemand, ob ich auf Soft - USART ausweichen muss oder nicht, 
damit ich den FT 232 ansprechen kann?!?

Wäre um jede Hilfe dankbar.

MfG

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.