Hallo Leute,
Ich hab Mega8 mit PC kommunizierend über FTDI UB232R.
Das ist eine kleine Platine mit FT232RQ drin.
Verbindung zwischen Mega8 und FTDI: TX-RX, RX-TX, GND-GND.
VCC pin von FTDI ist nicht verbunden weil ich ein eigenes
VCC Netzteil habe. Siehe Schaltung in Anhang.
Alles funzioniert prima, ich hab nur eine dumme Frage.
Wenn ich keine 5V zum Mega8 VCC lege, sondern einfach
das Stecknetzteil rausziehe, funktioniert es auch.
Ich bekomme Daten an den PC über das USB Kabel.
Ich habe 2.3V zwischen VCC und GND gemessen, es ist genug
damit Mega8 läuft. Die Spannung kommt vom USB, über TX und RX
pins, zum VCC. Ich kann auch LED über Widerstand zwischen
VCC und GND leuchten lassen. Jetzt frage ich mich, was passiert
wenn ich die ganze PowerLEDs draufhange wie geplant.
Etwas stimmt nicht, nur was?
MfG, Igor.
Was passiert ist, dass die Spannung auf den TX- und RX-Leitungen über
die Schutzdioden im Chip auf die VCC-Leitung abgeleitet wird. Dadurch
lädt sich der Kondensator zwischen VCC und GND auf und das ist
anscheinend ausreichend, um den Chip zu versorgen. Sobald du allerdings
mehr Strom verbrauchst wird die Spannung wohl einbrechen und der Chip
wird ständig im Reset hängen bleiben.
Es stimmt eh alles. Sieh dir mal im Datenblatt die interne Beschaltung
der I/O Pins an (Kapitel "I/O Ports", bei mir Seite 51). Bei den
verbauten Dioden sollte ein Lichtlein aufgehen.
Bei den Powerleds werden die RX/TX möglicherweise nicht mehr genug Saft
liefern, sodass der Controller dann abstürzt, sofern er nicht extern
bestromt wird.
Gruß
David
Hab mir vermutlich auf ähnliche Weise mal einen Mega32 verfused.
Vcc des Boards war versehentlich aus, Versorgung durch den Programmer
ebenfalls, aber die Spannung auf den ISP-Leitung reichte aus, dass die
Fuses korrekt lesbar waren. Daraufhin dann den Programmiervorgang
gestartet, der natürlich nicht korrekt verlief. Nun antwortet der Mega32
nicht mehr, Rettung über HV-Programmierung habe ich mangels HV-fähigem
Programmer noch nicht probieren können.
Also liber Vcc dran, besser ist das ;)
> Also liber Vcc dran, besser ist das ;)
Das werde ich auch machen, meine Sorge ist der Benutzer wer kann erst
USB Kabel einstecken dann Stromversorgung. Dann wird USB Spannung kurz
über TX/RX an VCC und zum Power* Teile gehen. Absolute maximum rating
für FTDI TX/RX ist 24mA und für USB port 100mA laut Dokumentation. Es
gibt dort auch ein Beispielschaltung FTDI-MCU ohne Schutzwiederstande
und andere FTDI-LED mit 270~Ohm Widerstand. Ich denke man muss TX-R-RX
Widerstand einbauen für den Fall. Gibt es eine bessere Lösung?
Es gibt mehrere Möglichkeiten:
- Komplett auf das Self-Powered-Design aus dem FT232R-Datenblatt
wechseln. Dann erhält der FT232 auch erst mit dem Rest der
Schaltung seine Versorgungsspannung, und meldet sich auch
erst dann auf dem USB-Bus. Ausserdem weisst du in deiner
PC-Anwendung dann auch, dass der Rest der Schaltung "da" ist,
wenn der Controller auf dem USB erkannt wird.
- VCCIO für den FT232 aus der VCC der restlichen Schaltung speisen.
Solange der Rest keine Spannung hat, ist dann auch VCCIO=0, und der
FT232 kann den ATmega nicht durch die Hintertür versorgen.
- Vor den RX-Eingang des ATmega einen FET einbauen, der erst
durchschaltet, wenn VCC an der Schaltung anliegt. Die andere
Richtung ist nicht nötig, da der RX-/Eingang/ des FT232 keinen
Strom liefert.
- Allgemeiner: externe Clamping-Dioden am RX-Eingang des ATmega,
die mehr als die 23mA der internen aushalten. Hierbei besteht
dann aber Gefahr, dass der Ausgang des FT232 überlastet wird.
Wahrscheinlich gibt es noch mehr, das sind nur die, die mir ganz spontan
einfallen.
Andreas
ich habe meinen FTDI-Baustein mit I-Coupler getrennt (Datenblatt im
Anhang).
FTDI und Seite 1 des I-Couplers wird vom PC über USB versorgt, Seite 2
des I-Couplers und der AVR von einem Netzteil. Eignet sich auch super
zum Pegelumsetzen 3,3V <-> 5V.
Wenn man keine Zusatzanforderungen in Richtung galvanischer Trennung vom
PC hat, ist das aber ziemlicher Overkill.
Pegelwandlung ist nicht nötig, der FT232 ist extra so designed, dass er
auf der Seite der angehängten Schaltung von 1,8V bis 5V jeden beliebigen
IO-Pegel unterstützt. Das ist der Sinn hinter dem VCCIO-Pin.
Andreas
Hallo,
ich versuche den UB232R an meinem PIC16f871 zu betreiben.
Ich nutze die Uart des PIC und habe RX und TX laut Datenblatt
angeschlossen.
Nun sende ich lustig ASCII 'C' an den UB232R, kann es auch mit einem
Logicanalyser dekodieren, aber aus der USB Schnittstelle kommt kein
Signal.
Der PC meldet einwandfrei COM8 gefunden, Treiber ist installiert, aber
wenn ich z.B. Hyperterminal starte und auf COM8 lausche , nichts !?
Mit meinem Oskar lässt sich auch nichts an D+/D- messen. GND liegt
richtig an und auch 5V.
Ich gehe doch recht in der Annahme, dass ich nicht künstlich das
Potential auf 12V für den uB232R anheben muss?
Das ich CTS/RTS auf dem UB232R kurzgeschlossen habe?
Kann mir jemand einen nützlichen Link oder Tipp geben?
Gruß
frank
Problem gelöst,
für alle die den UB232r von z.B. RS nutzen möchten, die PIN-Belegung ist
nicht entsprechend den Anschlüssen, sondern die Bezeichnung beschreibt
den PIN vom FD232rq der auf die Anschlüsse gelegt ist.
Will sagen: RX vom MC muss an TX vom Modul.
Gruß
Frank