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
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.
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
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.
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
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
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.
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
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
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.
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
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