Hallo Leute,
ich möchte jetzt mit serieller <-> USB Schnittstelle experimentieren;
nachdem ich mich durch die Informationen durchgebissen habe, habe ich
folgenden Eindruck:
- CP2102 sind kompakter weil sie kaum externe Komponente brauchen, also
gut für Miniaturisierung. Es dürfte aber Probleme mit Treiber und
Zuverlässigkeit geben?
- FTDI brauchen zwar externe Komponente, sind aber Idiotensicherer und
Installationsfreundlicher. Daher für die ersten Versuche geiegneter?
Habt Ihr auch einen solchen Eindruck?
Danke voraus für Eure Meinungen
Grüße
Michal
du benötigst beim FTDI RL ! doch auch nur noch einen Kondensator und
fertig....
außerdem gibts den überall zu kaufen...
und löten lässen sich der auch wesentlich besser als ein QFN28 Gehäuse
wen falls du deine LP nicht im Reflow Ofen lötest.
und beim FTDI findest du ewig viel in foren.
Der CP210x hat auch noch den Nachteil, dass er keine so hohen
Übertragungsraten unterstützt, zumindest nicht als Standard-RS232 mit
beliebigen Programmen.
Hi!
Der FTDI FT232RL hat ein SSOP28 Gehäuse (3,50€ bei Reichelt). Nur der
FT232RQ ist im QFN28.
Den CP2102 hab ich bei Reichelt auf die schnelle gar nicht gefunden.
Gruß
Basti
Michael K. schrieb:
> Der CP210x hat auch noch den Nachteil, dass er keine so hohen> Übertragungsraten unterstützt, zumindest nicht als Standard-RS232 mit> beliebigen Programmen.
Das verstehe ich nicht, der CP2102 funktioniert doch bis 1 Mbps?!?
Wenn es darum geht, ein RS485-Interface aufzubauen, ist der FT232
eindeutig zu bevorzugen, weil er eine direkte Hardwareunterstützung für
die erforderliche Sender/Empfängerumschaltung zur Verfügung stellt.
Basti schrieb:
> Der FTDI FT232RL hat ein SSOP28 Gehäuse (3,50€ bei Reichelt). Nur der> FT232RQ ist im QFN28.
Eben, das spricht eindeutig für den CP2102.
> Den CP2102 hab ich bei Reichelt auf die schnelle gar nicht gefunden.
Man kann Bauteile auch woanders beziehen. :-)
Der CP2102 ist z.B. bei Farnell auch nicht teuerer.
Davon ab: Wenn ich mich recht entsinne, wackelt die /PWREN-Leitung
während der Enumeration heftig hin und her. Das ist nicht gerade das,
was man gebrauchen kann...
Rufus t. Firefly schrieb:
> Gut, dann hat SiLabs dazugelernt. Immerhin.
Wenn man bedenkt, dass ich Dir das bereits am 17.04.2006 erzählt habe,
ist das nicht wirklich was neues. :-)
Beitrag "USB --> Rs232/422/485 converter"
Helmut S. schrieb:
> Falls der Baustein von Hand gelötet werden soll, dann ist einer mit> QFN-Gehäuse die falsche Wahl.
Wieso das? Ein QFN kann man doch auch von Hand löten.
Wenn du den Baustein auf den Rücken legst vielleicht schon, aber in der
gedachten Einbaulage ist es sehr schwierig das große Pad under dem
Gehäuse anzulöten. Zudem sind bei vielen QFN-Gehäusen die Anschluss-Pins
fast gar nicht mehr seitlich kontaktierbar (Pads nur unten).
Helmut S. schrieb:
> Wenn du den Baustein auf den Rücken legst vielleicht schon, aber in der> gedachten Einbaulage ist es sehr schwierig das große Pad under dem> Gehäuse anzulöten. Zudem sind bei vielen QFN-Gehäusen die Anschluss-Pins> fast gar nicht mehr seitlich kontaktierbar (Pads nur unten).
Das geht auch in der gedachten Einbaulage, jedenfalls geht das bei uns.
Aber wenn Du das PAD unter dem Baustein nicht anschliessen willst, dann
lasse es eben sein. Im Falle des CP210x ist das optional.
Z.Z. schrieb:
> du benötigst beim FTDI RL ! doch auch nur noch einen Kondensator und> fertig....>> außerdem gibts den überall zu kaufen...> und löten lässen sich der auch wesentlich besser als ein QFN28 Gehäuse> wen falls du deine LP nicht im Reflow Ofen lötest.>> und beim FTDI findest du ewig viel in foren.
Nunja, ich habe gerade mein erste Schaltung mit dem FT232 RL gemacht:
2x 100nf
1x 4,7µf
1x 10nf
Sind ja doch 4 Kondensatoren ;)
René König schrieb:
> Das verstehe ich nicht, der CP2102 funktioniert doch bis 1 Mbps?!?
Das steht im Datenblatt - ich weiß. Ich hatte aber mal Probleme als ich
schnellere Übertragungsraten wollte. Leider weiß ich nicht mehr was
genau das Problem war und ab welcher Rate es auftauchte, aber ich weiß
noch, dass genau dasselbe Unterfangen mit dem FTDI problemlos geklappt
hat.
Hallo Leute,
also hier ist der Fragesteller wieder.
Danke für Eure fachliche Diskussion...
Ich werde nichts Löten, ich will es schon auf einer Platine mit
ausgeführten Pins im DIP-Raster auf einer und USB-Buchse auf der anderen
Seite haben.
Fortgeschrittene Funktionen sind auch noch auch kein Thema bei mir,
sondern nur eine UART-kommunikation mit dem µC.
Deshalb wollte ich eigentlich nur den Eindruck kriegen welcher
idiotensicherer und installationsfreundlicher für die ersten Versuche
ist...
Grüße
Michal
Rene K. schrieb:
> Nunja, ich habe gerade mein erste Schaltung mit dem FT232 RL gemacht:>> 2x 100nf> 1x 4,7µf> 1x 10nf>> Sind ja doch 4 Kondensatoren ;)
Das sind aber Abblockkondensatoren, die bei jedem Chip notwendig sind.
Je mehr Kondensatoren an der Stelle desto besser (Desto stabiler die
Versorgungsspannung). Gerade wenn man direkt auf die USB Stromversorgung
geht.
Für 99% der anwendungen reicht der CP2102, dazu ist ncoh etwas günstiger
als FTDI.
Die meisten "hier" benutzen zwar FTDI wissen es aber nciht richtig warum
(abgesehen von gehäusewahl).
Da du nciht löten möchtest sondern nur benutzen stellt sich nur die
frage welches OS (wobei eigentlich beim 2.6 kernel kein problem mehr
beim beiden, windows sowieso schmerzfrei).
Schnuckelige kleine CP210x adapter (auf 6pin 2.54mm) gibts beim ebay für
9eur (incl. versand) oder beim jeden deutschen shop für das zweifache+
EDIT: MCP2200 ? mal testen, kannte ich nicht.
Ihr habt echt einen an der Klatsche :D
Also den FT232RL zu verlöten grenzt ja nahezu schon an "Vergewaltigung"
ohne Reflow Offen.
Aber funktioniert tadellos das Teil! Hab mir damit einen Logikanalyzer
aufgebaut. Das rote und grüne Kabel kommt daher weil ich im Schaltplan
TX<>TX und RX<>RX und nicht TX<>RX und RX<>TX verschaltet habe, somit
mußte ich improvisieren.
Rene K. schrieb:> Also den FT232RL zu verlöten grenzt ja nahezu schon an "Vergewaltigung"
Unsinn. Mit genügend Flussmittel(-Gel) und spitzem Kolben geht das ohne
Probleme. Eventuelle Brücken zieht man mit Entlötlitze weg. Hab schon
mindestens 50 davon auf selbstgeätzen Platinen ohne Lötstopp-Lack
aufgelötet. Mit Lötstopp ist es noch einfacher. Einfach mal eine Runde
üben!
Knut Ballhause schrieb:> Rene K. schrieb:>> Also den FT232RL zu verlöten grenzt ja nahezu schon an "Vergewaltigung">> Unsinn. Mit genügend Flussmittel(-Gel) und spitzem Kolben geht das ohne> Probleme. Eventuelle Brücken zieht man mit Entlötlitze weg. Hab schon> mindestens 50 davon auf selbstgeätzen Platinen ohne Lötstopp-Lack> aufgelötet. Mit Lötstopp ist es noch einfacher. Einfach mal eine Runde> üben!
Da kann ich nur zu stimmen.
Man braucht gute Augen oder ein Mikroskop bzw Lupe und eine ruhige Hand
sowie eine passende Lötspitze und natürlich Übung, dann kann so was
eigentlich auch jeder Grobmotoriger
Was wollt Ihr immer mit euren Spitzen?
Für so arbeiten nimmt man nen 2,5mm Meisel oder noch besser eine
Hohlkehle.
Dann kommt da ordentlich Flussmittel drauf, ein Pin fixieren und dann
mit einem Rutsch über alle 14 Pins drüber.
Danach hat dann jeder Pin genau so viel Lot wie er braucht und es gibt
im seltensten Fall Brücken. Funktioniert selbst ohne Stopplack auf
selbst geätzten Platinen.
Greetz & GN8
ich behaupte mal bei vielen Bauteilen, wie zum Beispiel bei manchen
Steckern kannst diese Technik vergessen. Da machst du dir mehr arbeit um
die Lötbrücken wieder rauszukriegen, die sich dann der Stelle bilden wo
man die Brücke nicht sieht, aber wenn man nachmist eine Brücke findet
und des bei über hundert Beinchen, gute Nacht. Dann lieber jedes
Beinchen einzel löten aber dafür auf jeden Fall wissen das es auch
passt.
Und es gibt auch Fälle, wo man nicht alles mit Flussmittel voll
schmieren darf,aber ein Hoch auf Flußmittel und Bleib
Aber wenn deine Technik bis jetzt gut funktioniert, dann kann man nur
dazu sagen: Viele Wege führen zum Ziel:}
Also ich hatte mit den FTDI Treibern mehr Probleme als mit denen von
Silabs. Lag aber einfach daran das zB Altera bei seinem USB-Blaster auch
einen FTDI drin hat und ich gleichzeitig noch nen anderen FTDI betreiben
wollte. Irgendwie kamen sich die 2 Geräte dann ins gehege, da Altera zu
diesem Zeitpunkt keinen angepassten Treiber geliefert hat, sondern den
Standard von FTDI. Ging irgendwann, musste aber einige Stunden fummeln
bis es funktioniert hat.
Das Problem dürfte glaube ich behoben sein, da Altera nun endlich nen
gescheiten Treiber rausgebracht hat.
Kann mir aber vorstellen das dieses Problem auch in anderen
Konstelationen auftritt, da der FTDI in sehr vielen Geräten verbaut ist.
Hey Leute,
hatte das Problem bei dem Teil, dass windows das Gerät nicht erkennt.
Wir haben dabei nur die D+ und D- Leitungen, so wie die benötigte
Stromversorgung angeschlossen.
Einer eine Idee? Lötfehler? Oder machen wir allgemein was falsch?
Grüße,
Roman
Roman schrieb:> hatte das Problem bei dem Teil, dass windows das Gerät nicht erkennt.
Welches Teil und wie hast du es angeschlossen?
Ist der richtige Pull-Up für die USB-Erkennung drin und sind Data+ und
Data- richtig gepolt?
Roman schrieb:> Hey Leute,>> hatte das Problem bei dem Teil, dass windows das Gerät nicht erkennt.>> Wir haben dabei nur die D+ und D- Leitungen, so wie die benötigte> Stromversorgung angeschlossen.>> Einer eine Idee? Lötfehler? Oder machen wir allgemein was falsch?>> Grüße,> Roman
Das ist mal wieder eine Aussage!!!
Was für ein Teil? CP210X oder FTDI?
Was für Windows?
Wird er auch nicht im Gerätemanager angezeigt?
Wie sieht die Schaltung aus (Schaltplan/Board)?
Foto von der aufgebauten Platine?
Grüße
Hallo Leute,
sorry, war im Stress als ich es schrieb.
Haben es folgendermaßen angeschlossen, wie auf dem Bild zu sehen.
Dabei ist der anschluss 2. von links doch hoffentlich D+ (auf dem USB
Stecker). Dann sind se nicht vertauscht.
Ich hoffe, ihr könnt mir weiterhelfen.
Habe soeben noch einen CP2102 mit kupferdrähten verlötet und
eingesteckt, und wird ebenso nicht erkannt.
Also windows 7 verweigert die installation von CP-treibern, die
aktuellen seien schon installiert.
Software, mit der man lauter Einstellungen auf dem chip vornehmen kann,
die funktioniert auch nicht :-(
Bin für die Hilfe sehr dankbar Leute.
Viele Grüße,
Roman
NEEEEIIIINNNNN
ES WAR TATSÄCHLICH DER FEHLER
Das gibt es doch nicht, so ewig und 3 Tage rumgemacht und das war der
falsche Footprint.
EAGLE ist echt Mist an der Stelle, lauter falsche Footprints. Kannst
grad eh alle selbst machen, wenn du es bei jedem Teil so wieso ändern
musst.
Man.
Grüße,
Roman
Hallo Leute,
kann mir einer die Standart-Einstellungen für den UART verraten, dass
die Daten vom uC auch am Terminal am PC ankommen?!
Vielen Dank,
Roman
Roman Frei schrieb:> EAGLE ist echt Mist an der Stelle, lauter falsche Footprints.
Laß uns teilhaben. Was ist am Eagle footprint des CP2102 falsch und in
welcher Eagle Bibliotheksversion?
Roman schrieb:> kann mir einer die Standart-Einstellungen für den UART verraten, dass> die Daten vom uC auch am Terminal am PC ankommen?!
Die kannst nur du wissen, denn du hast den µC mit den Parametern
programmiert.
Und es heißt Standard. Schlimm...
hallo Leute,
irgendwie sind wir wohl zu blöd um den UART zu programmieren.
Na jedenfalls haben wir mit der Boud-rate alles mögliche durchgerechnet.
Im tutorial von AVR steht eine Formel drin, nach der kommt eine 8 in der
Formel raus.
Boudrate: 115200, f(osz) = 16MHz.
Die selben Einstellungen machen wir auch im Windows-Geräte-Manager, da
wir die virtuellen Com-Treiber vom CP2102 verwenden.
Statt einem "a" bekommen wir im Hterm xx oder C oder manchmal sogar 3
Zeichen...
Ich werd da einfach nicht richtig schlau aus den ganzen Tutorial. Hat
jemand was richtig vernünftiges als Informationsquelle?
Vielen Dank,
Roman
Der FTDI hat eine separate I(O Spannungsanpassung. Der CP2102 ist "nur"
für 3.3V geeignet. In 5V Systemen ist somit der FTDI zu bevorzugen. Mit
Treibern unter Windows gabs bei beiden bisher keine Probleme ( war
jedoch nicht Windows 7 )
Huhu Leute,
heute abend gabs das 1. Erfolgserlebnis. Wir konnten an den PC die Daten
senden.
Nur hatten wir eine Sache, die nicht stimmt.
Wir haben einen Port toggeln lassen, und dabei eine Frequenz von 8 Mhz
festgestellt, statt 16 Mhz, wie Quatz sie hat.
Dann haben wir die ganze Zeit versucht Daten zu senden aber im Hterm kam
die Daten immer seltsam verschoben an.
Irgendwann haben wir mit f(osz)=8 Mhz gerechnet, Boudrate von 9600 und
dann mit der Formel: (f(osz)/2 /16*boudrate ) - 1 gerechnet. Es kam 25
raus.
So, dann kamen immernoch Mülldaten an, bis wir auf der PC Seite die
Boudrate von 9600 auf 4800 runter regelten. Nun geht es, aber es ergibt
irgendwie keinen Sinn.
Nun haben wir 2 kleine Fragen: Wie stellen den PIC24FJ128 auf die 16 Mhz
Freuquenz ein?
2. Welche Formel stimmt den beim PIC zu Berechnung des richtigen UART
Wertes...?
Grüße,
Roman
HÄ,
Wir haben einen Port toggeln lassen, und dabei eine Frequenz von 8 Mhz
festgestellt, statt 16 Mhz, wie Quatz sie hat.
Wie sollen wir das feststellen, wenn wir keinen Scope verwenden?!
Na klaro.
Wir haben den Pin mit 4 Mhz toggeln sehen, also zwischen den Flanken.
Nur ist die Frage an der Stelle, wie genau C das auf dem Kontroller
umsetzt, und wie viele Takte er braucht, um den Pin von 0 auf 1 und von
1 auf 0 zu setzen.
Wir haben in einer while(1) Schleife dann 20 mal hintereiander den Pin
abwechselnd auf 1 und 0 gesetzt gehabt.
Also wenn er 2 Takte braucht um von 0 auf 1 und 2 takte um von 1 auf 0
den Pin zu setzen, dann lauft der Pic wohl mit 16 Mhz.
Dann stimmt die Rechnung für den UART aber garnicht mehr. Denn bei 16
Mhz, und Boudrate von 9600 müsste 51 rauskommen. Die Formel von
Microchip lautet ja: [(f(osz) *1/2 )/ (16*Boudrate) ] -1.
Wir haben dann rein zufällig die Baudrate eben auf 4800 gestellt und es
funktionierte. Setzen wir das alles in die Formel ein und berechnen den
f(osz) rückwärts, so kommt eine Frequenz von 4 Mhz raus, mit der der Pic
oszillieren soll. Das ergibt aber keinen Sinn, denn er kann ja nicht mit
4Mhz schwingen und dabei einen Pin mit der selben Frequenz wackeln.
oder?!
Grüße,
Roman
Roman schrieb:> Wie sollen wir das feststellen, wenn wir keinen Scope verwenden?!>> Na klaro.>> Wir haben den Pin mit 4 Mhz toggeln sehen, also zwischen den Flanken.
Hä? Wie hast du denn das nun festgestellt? Mit Oszilloskop oder ohne?
Ich hab von den PICs nicht die geringste Ahnung aber die Google Suche
nach PIC und baudrate liefert unzählige Treffer mit jeweils zwei
Formeln, je eine für gesetztes bzw. zurückgesetztes BRGH-Bit.
Das Datenblatt des uC enthält die beiden Formeln ebenfalls.
Es kann doch nicht so schwer sein selbst mal zu suchen.
Und wenn man dann das Datenblatt richtig liest, steht da auch:
Note
1: FCY denotes the instruction cycle clock frequency (FOSC/2).
2: Based on TCY = FOSC/2, Doze mode and PLL are disabled.
(PIC24FJ128GA Family Datasheet DS39747C-page 132)
Vielleicht löst das ja auch die Verwirrung um den Faktor zwei.
fchk
So, wir haben es rausbekommen.
Wenn der UART im Low-Speed Modus arbeitet (BRGH = 0), dann kommt bei der
Boud-rate von 115200 ein Teiler von 3,34 (mit 16 Mhz f(osz)). Dessen
Abweichung ist dann zu groß, 8,5%.
Wir haben nun den High-Speed-Modus aktiviert (BRGH=1) und Teiler von
16,361 auf 16 gerundet eingegeben. Die Abweichung liegt bei 2,14%, aber
die Übertragung funktioniert einwandfrei.
Danke euch,
Roman
Roman schrieb:> So, wir haben es rausbekommen.>> Wenn der UART im Low-Speed Modus arbeitet (BRGH = 0), dann kommt bei der> Boud-rate von 115200 ein Teiler von 3,34 (mit 16 Mhz f(osz)). Dessen> Abweichung ist dann zu groß, 8,5%.>> Wir haben nun den High-Speed-Modus aktiviert (BRGH=1) und Teiler von> 16,361 auf 16 gerundet eingegeben. Die Abweichung liegt bei 2,14%, aber> die Übertragung funktioniert einwandfrei.
Für so etwas gibts andere Quarzfrequenzen. Der PIC24 kann bis zu 32 MHz
im HS-Modus. Ihr könntet z.B. 18.432 MHz verwenden.
fchk
hallo,
nochmal zu cp210x vs. ftdi:
also ich hab stand alone mit beiden keine Probleme und es ist meiner
ansicht nach geschmack sache welchen man verwendet. (bzw. spezielle
Anwendung, mehre UARTS, mehr GPIO, baudrate, etc.)
aber bei beiden Chips ist mir aufgefallen wenn man mehrer parallel
betreibt gibts unter Windows (Win XP 32bit, also auch Win7 64bit)
proboleme. ab und an schmiert eine UART ab und lässt sich nur mit viel
überzeugungskraft wieder überreden das sie wieder erkannt wird und
ordnungsgemäß läuft. würd da mal aus dem bauch sasgen das hier FTDI
etwas freundlicher ist da muss man nich so lange nett sein bis der chip
wieder tut was er soll.
das ist mal meine erfahrung.
Man hängt das Scope an die serielle Leitung und sucht die kürzeste
Bitdauer im Datenstrom (den man möglichst in einer Loop dauernd erzeugen
läßt). Das geht selbst mit dem Uralt Analogscope für 30 Euro. Schaut man
sich ein komplettes ASCII-Zeichen an (also 10 Bit meist), sieht man
Start und Stop Bit sowie die Polarität. Damit ist dann alles vorgegeben!
Roman schrieb:> Wenn der UART im Low-Speed Modus arbeitet (BRGH = 0), dann kommt bei der> Boud-rate von 115200 ein Teiler von 3,34 (mit 16 Mhz f(osz)). Dessen> Abweichung ist dann zu groß, 8,5%.
Das Ding heißt übrigens Baudrate. Der Name kommt von Jean-Maurice-Émile
Baudot, der 1874 den Baudot-Code erfand.
http://de.wikipedia.org/wiki/Baudrate
Um den Fehler klein zu halten, gibt es sog. Baudratenquarze.
http://www.hanneslux.de/avr/tipps/baudratenquarz.html
Im Manual für ATmega48/88/168 ist auf Seite 194 eine Tabelle mit den
USART-Einstellungen für die verschiednen Baudraten und die Abweichungen,
die entstehen, wenn man einen bestimmte Quarz verwendet.
Huhu,
danke sehr für die Info.
Ich wollte der Nachwelt auch noch was kurz mitteilen.
Wir hatten alle 4 UART PINS aktiviert gehabt, also RX, TX und CTS und
RTS (UEN bei 10). Dann, rein zufälig den Port D als Ausgang geschaltet,
weil wir einen PIN toggeln wollten.
Jetzt habe ich grad den Code entrümpelt und diese Freigabe gelöscht, und
dabei festgestellt, dass nichts mehr geht.
Why???
Weil die CTS Leitung bei uns rein zufällig auf dem PortD hängt, und
unbedingt als Ausgang geschaltet werden muss, wenn man das Handshake
Verfahren benutzen will.
Andernfalls passiert einfach nichts.
Da wäre ich nie drauf gekommen, hätte ich es so programmieren wollen. Im
datenblatt fand ich grad die Info auch nicht.
Aber nun geht fast schon alles.
Wir bleiben bei dem Quarts von 16 Mhz. Wir haben zwar spezielle Quarze
ausgerechnet, aber es geht auch mit dem kleinen Fehler recht
zuverlässig. Daher lassen wir es so wie es ist.
Grüße,
Roman
Die Rechnung ist einfach: Das Bit wird in seiner Mitte gesampelt. Die
fallende Flanke des Startbits lädt einen Zähler auf die Hälfte des
Maximums vor. Der ist meist 3 oder 4 Bit breit. Läuft er über, wird
gesampelt! Man darf also am LETZTEN Bit des Bytes 50% der Bitdauer nicht
überschreiten, sonst sampelt man ein anderes Bit! Ist das Byte inkl.
Start und Stopbit 10 Bit lang, darf der Fehler also nicht 5%
überschreiten! Wenn Sender und Empfänger gleiche Systeme sind, mußt du
die 5% nochmals durch zwei teilen. Das ist dann der maximale Fehler den
dein Quarz haben darf! Also 2,5% !
Jetzt so ganz grob dargestellt.