Forum: Mikrocontroller und Digitale Elektronik FTDI oder CP2102?


von Michal (Gast)


Lesenswert?

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

von Z.Z. (Gast)


Lesenswert?

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.

von M. K. (kichi)


Lesenswert?

Der CP210x hat auch noch den Nachteil, dass er keine so hohen 
Übertragungsraten unterstützt, zumindest nicht als Standard-RS232 mit 
beliebigen Programmen.

von Giz (Gast)


Lesenswert?

Den FT232R gibts doch auch als QFN-32...
So groß dürfte der Unterschied da nicht sein :)

von Basti (Gast)


Lesenswert?

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

von René K. (king)


Lesenswert?

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?!?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von René K. (king)


Lesenswert?

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

von René K. (king)


Lesenswert?

Rufus t. Firefly schrieb:
> 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.

CP2103:
https://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/cp2103.pdf&src=ProductMatrix

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gut, dann hat SiLabs dazugelernt. Immerhin.

von René K. (king)


Lesenswert?

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"

von Helmut S. (helmuts)


Lesenswert?

Falls der Baustein von Hand gelötet werden soll, dann ist einer mit 
QFN-Gehäuse die falsche Wahl.

von René K. (king)


Lesenswert?

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.

von Helmut S. (helmuts)


Lesenswert?

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

von René K. (king)


Lesenswert?

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.

von Rene K. (draconix)


Lesenswert?

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 ;)

von M. K. (kichi)


Lesenswert?

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.

von Michal (Gast)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Arc N. (arc)


Lesenswert?

Eine andere Möglichkeit wäre noch der neue MCP2200
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en546923
gibt's als QFN, SSOP oder auch als riesiges SO-20. Braucht allerdings 
einen externen Quarz bzw. einen passenden Resonator.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

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.

von Rene K. (draconix)


Angehängte Dateien:

Lesenswert?

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.

von An Alle (Gast)


Lesenswert?

Bei ELV gibt's den CP2102 fertig aufgebaut hier:

http://www.elv.de/Mini-USB-Modul-UM2102%2c-Komplettbausatz/x.aspx/cid_74/detail_10/detail2_28776

Das Ding kostet komplett nur 6.- €

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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!

von Matthias (Gast)


Lesenswert?

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

von Nighty2k (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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:}

von Stefan (Gast)


Lesenswert?

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.

von Roman (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

Die im Datenblatt angegebenen Kondensatoren sind aber alle dran?

von Michel (Gast)


Lesenswert?

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?

von NopNop (Gast)


Lesenswert?

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

von FredFerkel (Gast)


Lesenswert?

testpin auf gnd?

von Roman F. (Firma: DHBW Ravensburg) (chevellino)


Angehängte Dateien:

Lesenswert?

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

von Roman F. (Firma: DHBW Ravensburg) (chevellino)


Lesenswert?

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

von Roman (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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?

von Christian R. (supachris)


Lesenswert?

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

von Roman (Gast)


Lesenswert?

Hi,

footprint vom USB Stecker ist falsch, nicht der vom CP. Beim Mini USB 
Stecker sind D+ und D- vertauscht.

Danke für die Hilfe,
Roman

von Roman F. (Firma: DHBW Ravensburg) (chevellino)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Deine erste und wichtigste Informationsquelle heißt Scope.

von Rapunzel (Gast)


Lesenswert?

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 )

von Roman (Gast)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Roman, du hast also niemals auf ein Scope geschaut?! Nee, danke. Selten 
so dämliche Arbeitsweise gesehen.

von Roman (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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?

von Klaus (Gast)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von Roman (Gast)


Lesenswert?

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

von Frank K. (fchk)


Lesenswert?

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

von cp2102-gast (Gast)


Lesenswert?

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.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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!

von Uhu U. (uhu)


Lesenswert?

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.

von Roman (Gast)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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.

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.