Forum: Mikrocontroller und Digitale Elektronik USB-UART mit MCP2221A - Mit Bitte um Review


von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Hallo,
als fleißiger Passiv-Nutzer dieses Forums, bin ich immer wieder 
erstaunt, wie toll das "Internet" sein kann, wenn man es so nutzt wie es 
hier getan wird. (Musste ich mal loswerden, bei dem Wahnsinn zur Zeit)

Nun zu meinem Projekt/Problem, mit der Bitte um Vorschläge:
Ich versuche mich in dem Design einer Schaltung zur Übertragung von 
Messwerten an einen Computer (PC+Mac). Aus diesem Grund habe ich ich 
mich für den MCP2221A entschieden, da dieser keine weiteren Treiber 
benötigt, um vom Computer erkannt zu werden. Das hatte ich bereits mit 
dem Breakout-Board von Adafruit probiert. Aus diesem Grund bitte keine 
Alternativen vorschlagen (es sei denn, es gibt eine Alternative, die 
auch mit den nativen Treibern von PC+Mac erkannt und angesprochen werden 
kann).

Nun habe ich mich über die Datenblätter von Microchip etc. hergemacht 
und ein PCB designed.
Der USB-UART-Teil ist nur der eine Teil des gesamten PCBs, dass ich hier 
aber nicht besprechen wollte, da ich den Teil noch gar nicht bestückt 
habe und dieser somit nicht die Ursache für mein Problem sein kann. Den 
Isolator (U3) habe ich auch noch nicht bestückt.

Ich dachte, ich hätte an alles gedacht ;) Jedoch gibt es Probleme beim 
Erkennen des Gerätes seitens Windows (Mac hatte ich noch nicht 
probiert).
Die Meldung im Gerätemanager (Rubrik USB-Controller) lautet:
"Fehler beim Anfordern einer Gerätebeschreibung."
Da der Chip definitiv ohne zusätzlichen Treiber auskommt, wollte ich nun 
nicht softwareseitig rumdoktern, sondern suche den Fehler auf der 
Hardwareseite.
Messtechnisch sind Versorgungen (5V, 3,3V und GND) vorhanden. Strom 
liegt bei ca 130uA. Also auch kein Schluss.

Mein Fokus liegt auf der Fehlerbehebung.
Sollten aber Profi-Vorschläge kommen, die eher das Routing und evtl. 
fehlende Bauteile (stützkondensatoren, ESD, etc.) betreffen, bin ich 
auch dankbar.

Ich habe etliche Schematics (Microchip, Adafruit,...) und Forenbeiträge 
durchgearbeitet. Leider finde ich keinen Anhaltspunkt mehr, an den ich 
noch etwas machen könnte. Ich hoffe, dass es nur ein "dummer" Fehler 
ist.

Danke im Voraus.

von Johannes F. (jofe)


Lesenswert?

Eduard ". schrieb:
> stützkondensatoren, ESD, etc.

Das fehlt tatsächlich alles, wie du offenbar selbst schon erkannt 
hast...

Schau dir mal folgenden Thread an, da gibt's gegen Ende ein 
funktionierendes Board mit demselben USB-UART-IC, allerdings 
bus-powered.

Beitrag "Entwurf USB-UART-Converter, KiCad, bitte um Review"

von Frank K. (fchk)


Lesenswert?

Erste Grundregel: jedes VCC-GND-Pärchen ist zumindest mit einem 
keramischen 100nF-Kondensator mit möglichst kleiner Bauform (0603 oder 
kleiner) zu versehen, der dichtmöglichst an den entsprechenden Pins 
liegt. Jeder mm Leiterbahn zählt hier. In diesem Fall also einmal quer 
zwischen Pin 1 und 14. Idealerweise fließt der Strom erst am Kondensator 
vorbei und erreicht dann erst den Bausteinpin.

Das gilt für den digitalen Isolator doppelt.

Stromführende Leiterbahnen möglichst breit machen - das senkt die 
Induktivität.

Prüfe, ob die Drehung von RX und TX zwischen Isolator und MCP richtig 
ist: TX auf RX und umgekehrt.

Dann: Den Schirm nicht einfach auf GND legen. Da soll kein Strom drüber 
fließen, nur Ladungen abfließen. Gerne genommen werden 100nF||100k 
zwischen Shield und GND oder irgendwas in dieser Größenordnung.

Grobe Fehler habe ich ansonsten nicht gesehen.

fchk

von Johannes F. (jofe)


Lesenswert?

C2 und C3 bringen in deinem Layout übrigens wenig bis gar nichts. Die 
gehören direkt an den Regler, und an GND setzt man immer möglichst 
mehrere Vias (so viel wie der Platz es erlaubt), um die Impedanz der 
Masse-"Rückleitung" möglichst gering zu bekommen.

von Johannes F. (jofe)


Lesenswert?

Eduard ". schrieb:
> es sei denn, es gibt eine Alternative, die
> auch mit den nativen Treibern von PC+Mac erkannt und angesprochen werden
> kann

Der CH340N von WCH braucht ebenso unter Windows und Linux keine 
Treiberinstallation und kostet sehr viel weniger. Wie der mit Mac 
funktioniert, weiß ich nicht.

https://www.lcsc.com/product-detail/C2977777.html

von Hans W. (hanswieland)


Lesenswert?

Johannes F. schrieb:
> Der CH340N von WCH braucht ...
> unter Windows... keine Treiberinstallation

Ist das eine Besonderheit von der N Version? Ich frage, weil ich gewohnt 
bin, daß CH340 eine Treiberinstallation erfordern. Manchmal hat Windows 
den Treiber automatisch herunter geladen, aber nicht immer.

von Johannes F. (jofe)


Lesenswert?

Hans W. schrieb:
> Ist das eine Besonderheit von der N Version?

Nicht, dass ich wüsste. Habe zwar bisher nur CH340N verwendet, bei denen 
werden aber überhaupt keine extra Treiber benötigt, auch nicht 
automatisch heruntergeladen. Es wird irgendein Standard-Treiber 
verwendet. Auch bei Linux. Wie beim MCP2221(A). Deshalb verwende ich 
auch nur die beiden, CP2102 und FT232 kommen für mich nicht infrage, 
weil ich keinen Bock habe, mich mit irgendwelchen potentiell 
fehlerhaften Treibern herumzuärgern.

Nachtrag: Microchip schreibt im DS des MCP2221A: "Implements USB 
Protocol Composite Device: Communication Device Class (CDC) for 
USB-to-UART conversion"

Genauso macht es der CH340 auch. Man hält sich einfach an den 
USB-Standard. Ich habe deshalb noch nie verstanden, warum die Silabs und 
FTDI Teile so populär sind.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Johannes F. schrieb:
> Man hält sich einfach an den
> USB-Standard. Ich habe deshalb noch nie verstanden, warum die Silabs und
> FTDI Teile so populär sind.

Mit CDC ist halt nur ein Teil dessen möglich, was die anderen 
USB-Seriell-Bridges können. Wenn das reicht, kann man CDC verwenden.

Wobei MS auch eine mittlere Ewigkeit brauchte, eine funktionierende 
CDC-Unterstützung in Windows einzubauen, bei älteren Windows-Versionen 
musste man irgendwo eine zum jeweiligen Devicedescriptor passende 
signierte *.inf-Datei herbekommen, was ein mittlerer und völlig 
überflüssiger Krampf im Arsch war.

Damit hatte CDC keinerlei Vorteil gegenüber den proprietären Lösungen 
der üblichen Anbieter.

Linux kann man hier schwer zum Vergleich hinzuziehen, weil da 
Treiberunterstützung für die üblichen Verdächtigen sowieso schon im 
Kernel steckt - Linux weiß, wie es mit FT232, PL2303 und all' den 
anderen Kandidaten umzugehen hat.

von Johannes F. (jofe)


Lesenswert?

Harald K. schrieb:
> Mit CDC ist halt nur ein Teil dessen möglich, was die anderen
> USB-Seriell-Bridges können. Wenn das reicht, kann man CDC verwenden.

OK, das war mir nicht bewußt - danke für die Klarstellung.

Mir persönlich hat bisher die "reine UART-Funktionalität" genügt, nur 
mit RxD und TxD, alles andere wie die zusätzlichen RS232-Signale brauche 
ich nicht (und bin mir ziemlich sicher, dass das auch so bleiben wird). 
Insofern ist für meine Zwecke der CH340N das Mittel der Wahl.

von Eduard ". (edtheb)


Lesenswert?

Frank K. schrieb:
> Erste Grundregel: jedes VCC-GND-Pärchen ist zumindest mit einem
> keramischen 100nF-Kondensator mit möglichst kleiner Bauform (0603 oder
> kleiner) zu versehen, der dichtmöglichst an den entsprechenden Pins
> liegt. Jeder mm Leiterbahn zählt hier. In diesem Fall also einmal quer
> zwischen Pin 1 und 14. Idealerweise fließt der Strom erst am Kondensator
> vorbei und erreicht dann erst den Bausteinpin.
>
> Das gilt für den digitalen Isolator doppelt.
>
> Stromführende Leiterbahnen möglichst breit machen - das senkt die
> Induktivität.
>
>
> Dann: Den Schirm nicht einfach auf GND legen. Da soll kein Strom drüber
> fließen, nur Ladungen abfließen. Gerne genommen werden 100nF||100k
> zwischen Shield und GND oder irgendwas in dieser Größenordnung.
>
> Grobe Fehler habe ich ansonsten nicht gesehen.
>
> fchk

Hallo,
vielen Dank für die Hinweise, die ich beim Redesign beherzigen werde.
Jedoch löst es nicht das Problem.
Folgendes habe ich auf der Platine geändert:
- zw. Pin1 und 14 einen Kondensator (1uF) eingesetzt
- Pin11 von Vcc getrennt und mit einem Bypass-Ko (1uF) versehen (gegen 
GND)
- Pin4 (RST) von PullUp (R3) getrennt (wie Adafruit)
- USB-Schirm vom GND entfernt (USB-Leitung entmantelt und den Schirm 
durchtrennt)

Bei jedem einzelnen Schritt jeweils Tests durchgeführt. Keine Änderung.
Was mir aufgefallen und mich noch ratsamer zurücklässt, ist, dass wenn 
ich ein USB-C zu USB-C-Kabel verwende (anstatt wie bisher ein USB-A zu 
USB-C-Kabel), tut sich im Gerätemanager rein gar nichts.

Einen anderen PC habe ich auch schon verwendet.

> Prüfe, ob die Drehung von RX und TX zwischen Isolator und MCP richtig
> ist: TX auf RX und umgekehrt.
RX/TX sollten so schon richtig sein, aber zunächst uninteressant, da der 
ISO-Baustein noch gar nicht gesetzt ist.

Ich verstehe es einfach nicht. So kompliziert ist es doch gar nicht.
Oder muss ich den MCP2221 flashen, um ihn benutzen zu können?
Ich habe mir auch die Software Microchip Utility heruntergeladen. Das 
Modul von Adafruit wird hier erkannt. Meine Testplatine wird nicht 
erkannt (was ja logisch ist, wenn es noch nicht von Windows erkannt 
wurde).

Eduard

Bzgl. CH340N:
Würde mich evtl. später damit beschäftigen. Nur wie Hans W. schrieb, 
hatte ich die selben Erfahrungen was diesen Chip anbelangt. Es war 
mitunter ziemlich kompliziert, einen China-Arduino Nano anzusprechen, 
die ja mit CH340/341 arbeiten.

: Bearbeitet durch User
von Eduard ". (edtheb)



Lesenswert?

Da ich mich auf das Adafruit-Modul beziehe, hier noch die Schematic und 
das PCB-Board von Adafruit (als Eagle-Datei bei Github heruterladbar). 
Ich hoffe, dass ich durch die Screenshots gegen keine Lizenz verstoße. 
Falls ja, bitte Bescheid geben, dann lösche ich es wieder.

Achtung: Adafruit verwendet das QFN-Gehäuse. Ich das TSSOP14.
Die sind nicht Pin-Kompatibel.

von Daniel F. (foxi_the_daywalker)


Lesenswert?

Sollte man in dem Chip vielleicht "USB CDC Serial Number Enable bit" 
aktivieren?

Ohne Seriennummer gibt es unter Windows bei einigen Geräten Probleme.
Ich habe allerdings noch nie mit dem Chip gearbeitet, daher nur ein 
Schuss ins Blaue.

Grüße
Daniel

: Bearbeitet durch User
von Eduard ". (edtheb)


Lesenswert?

Man kann mit der Utility-Software so einiges machen. Jedoch muss die 
Software erstmal Zugriff auf den Chip erhalten. Und das ist ja gerade 
das Problem, dass der Chip von Windows nicht erkannt wird bzw. nicht mit 
diesem kommunizieren kann.

von Johannes F. (jofe)


Angehängte Dateien:

Lesenswert?

Eduard ". schrieb:
> zw. Pin1 und 14 einen Kondensator (1uF) eingesetzt

Üblich sind 100nF, ggf. parallel mit 1µF oder größer. Und, wichtiger: 
ein MLCC (Multilayer Ceramic) muss es sein.

Eduard ". schrieb:
> Pin11 von Vcc getrennt

Schlecht, der soll im Self-Powered Mode mit VDD verbunden sein, siehe 
Datenblatt S. 17f.

Eduard ". schrieb:
> Pin4 (RST) von PullUp (R3) getrennt (wie Adafruit)

Auch schlecht. Ausschlaggebend ist das Datenblatt (S. 21, Ausschnitt 
anbei) und nicht das Pfuschwerk irgendeines Maker-Shops.

Eduard ". schrieb:
> USB-Schirm vom GND entfernt (USB-Leitung entmantelt und den Schirm
> durchtrennt)

Nur relevant, falls beide Enden des USB-Kabels jeweils separat geerdet 
bzw. beide Massen sonstwie anderweitig verbunden sind. Ist deine Platine 
bspw. an ein potentialfreies Netzgerät angeschlossen, ist es komplett 
egal, ob der Schirm beidseitig mit GND verbunden ist.

Eduard ". schrieb:
> Oder muss ich den MCP2221 flashen, um ihn benutzen zu können?

Nein.

Eduard ". schrieb:
> Nur wie Hans W. schrieb,
> hatte ich die selben Erfahrungen was diesen Chip anbelangt. Es war
> mitunter ziemlich kompliziert, einen China-Arduino Nano anzusprechen,
> die ja mit CH340/341 arbeiten.

Möglicherweise ist der Arduino-Nachbau mit Fake-CH340 bestückt.

: Bearbeitet durch User
von Fr N. (frn)


Lesenswert?

wenn ich das DB richtig interpretiere kommen bei VCC 5V dran(von der 
USB-Buchse), gehen auf den internen LDO, an dessen Ausgang(VUSB) kommt 
dann der Kondensator.

von Johannes F. (jofe)


Lesenswert?

Daniel F. schrieb:
> Sollte man in dem Chip vielleicht "USB CDC Serial Number Enable bit"
> aktivieren?

Braucht man nicht. Meine Platinen mit MCP2221(A) haben mit Windows 10 
und Rasperry Pi OS sofort out-of-the-box funktioniert, ohne dass ich 
irgendwas am nichtflüchtigen Speicher des MCP bearbeitet hätte.

von Johannes F. (jofe)


Lesenswert?

Fr N. schrieb:
> wenn ich das DB richtig interpretiere kommen bei VCC 5V dran(von der
> USB-Buchse), gehen auf den internen LDO, an dessen Ausgang(VUSB) kommt
> dann der Kondensator.

Das gilt für Bus-Powered Mode. Der TO will Self-Powered.

von Johannes F. (jofe)


Lesenswert?

Höchstwahrscheinlich ist der Ansatz "self-powered" mittels externem LDO 
hier der falsche, da er die Sache unnötig verkompliziert.

Wenn es lediglich um die 3,3-V-Pegel am Ziel-UART geht: Das kann der 
ISO621 (vermutlich ist der STISO621 von STM gemeint?) ganz alleine. 
Einfach die Standard-"Bus-powered"-Schaltung aus dem DB nehmen, den ISO 
auf der USB-Seite mit VUSB = 5 V verbinden und auf der UART-Seite mit 
3,3 V.

von S. L. (sldt)


Lesenswert?

> ... wenn ich ein USB-C zu USB-C-Kabel verwende ...

Da frage ich mich (als Laie), ob die Verdrahtung des USB-Anschlusses 
stimmt.

Der geht im eingangs gezeigten Bild nach rechts, bei dem Adafruit-Bild 
nach links, aber die Ds liegen gleich.

Wie gesagt, nur eine Laienmeinung.

: Bearbeitet durch User
von Hmmm (hmmm)


Lesenswert?

Johannes F. schrieb:
> Daniel F. schrieb:
>> Sollte man in dem Chip vielleicht "USB CDC Serial Number Enable bit"
>> aktivieren?
>
> Braucht man nicht.

Bei Geräten ohne Serial Number hat man das Problem, dass sie bei einem 
Wechsel des USB-Ports auch eine neue COM-Port-Nummer verpasst bekommen.

Wenn man damit leben kann, ist das OK.

von Johannes F. (jofe)


Lesenswert?

Hmmm schrieb:
> Bei Geräten ohne Serial Number hat man das Problem, dass sie bei einem
> Wechsel des USB-Ports auch eine neue COM-Port-Nummer verpasst bekommen.

Das ist richtig. Kommt aber nicht als Ursache des vom TO geschilderten 
Problems (MCP wird überhaupt nicht erkannt) infrage.

Beitrag #8027550 wurde vom Autor gelöscht.
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Eduard ". schrieb:
> zw. Pin1 und 14 einen Kondensator (1uF) eingesetzt
Was steht denn zum Thema "Decoupling Capacitor" im Datenblatt? 
Alternativ: welche Kondensatoren sind auf dem Evalboard? Und wie sieht 
das Layout des Evalboards aus?

Merke: das Datenblatt und ein evtl. vorhandenes Evalboard sind die 
allererste Adresse für eine Eigenentwicklung.

von Johannes F. (jofe)


Lesenswert?

Lothar M. schrieb:
> Alternativ: welche Kondensatoren sind auf dem Evalboard? Und wie sieht
> das Layout des Evalboards aus?

Gibt es sogar von Microchip:
https://www.microchip.com/en-us/development-tool/bb62z76a

Hatte vorhin auch schon mal einen Blick in dessen Schaltplan geworfen, 
allerdings beherzigen sie ihre eigene Empfehlung aus dem Datenblatt für 
die Reset-Beschaltung im Self-powered-Mode nicht.

Hatte auch woanders schon mal den Eindruck, dass Microchip seine 
Evalboards von Praktikanten designen lässt. Sind also eher mit Vorsicht 
zu genießen.

von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Johannes F. schrieb:
> Eduard ". schrieb:
>> zw. Pin1 und 14 einen Kondensator (1uF) eingesetzt
>
> Üblich sind 100nF, ggf. parallel mit 1µF oder größer. Und, wichtiger:
> ein MLCC (Multilayer Ceramic) muss es sein.
MLCC wird verwendet
>
> Eduard ". schrieb:
>> Pin11 von Vcc getrennt
>
> Schlecht, der soll im Self-Powered Mode mit VDD verbunden sein, siehe
> Datenblatt S. 17f.
Hatte ich ja zuvor gehabt. War ein Versuch, mit dem Gedanken: 
Adafruit-Board funktioniert. Meins nicht. Wie haben die das gemacht.
>
> Eduard ". schrieb:
>> Pin4 (RST) von PullUp (R3) getrennt (wie Adafruit)
>
> Auch schlecht. Ausschlaggebend ist das Datenblatt (S. 21, Ausschnitt
> anbei) und nicht das Pfuschwerk irgendeines Maker-Shops.
Hatte ich ja zuvor gehabt. War ein Versuch, mit dem Gedanken: 
Adafruit-Board funktioniert. Meins nicht. Wie haben die das gemacht.

> Eduard ". schrieb:
>> USB-Schirm vom GND entfernt (USB-Leitung entmantelt und den Schirm
>> durchtrennt)
>
> Nur relevant, falls beide Enden des USB-Kabels jeweils separat geerdet
> bzw. beide Massen sonstwie anderweitig verbunden sind. Ist deine Platine
> bspw. an ein potentialfreies Netzgerät angeschlossen, ist es komplett
> egal, ob der Schirm beidseitig mit GND verbunden ist.
>
> Eduard ". schrieb:
>> Oder muss ich den MCP2221 flashen, um ihn benutzen zu können?
>
> Nein.
Klare Aussage. Danke.

> Eduard ". schrieb:
>> Nur wie Hans W. schrieb,
>> hatte ich die selben Erfahrungen was diesen Chip anbelangt. Es war
>> mitunter ziemlich kompliziert, einen China-Arduino Nano anzusprechen,
>> die ja mit CH340/341 arbeiten.
>
> Möglicherweise ist der Arduino-Nachbau mit Fake-CH340 bestückt.
Möglich.

Ich hatte nachträglich die Schaltung vom Microchip Breakout Modul 
gesehen (hänge ich hier mal dran) und mit meinem Design verglichen. Ich 
bin, glaube ich, davon gar nicht soweit weg.

Wie gesagt, ich klammere mich gerade an jeden Strohhalm, deswegen die 
Anpassungen/Versuche angelehnt an Adafruit Modul, das ja funktioniert. 
Nur frage ich mich, wie/warum das Adafruit-Board im Self-Powered-Modus 
funktioniert, obwohl Pin11 nicht an Vcc angeschlossen ist. Auch die 
Logik mit dem fehlenden PullUp-Widerstand am RST begreife ich nicht. 
Beide Punkte werden, wie du geschrieben hast, so in der Dokumentation 
gefordert.

Ist der Baustein wirklich sooo empfindlich, was die Stützkondesnastoren 
anbelangt, wie Frank gestern erwähnt hat: "Jeder mm Leiterbahn zählt 
hier." ? Noch dichter als jetzt (nachträglich zw. R3 und R1 gesetzt) 
geht es nicht.

Smilie: ratlos

: Bearbeitet durch User
von Nick (b620ys)


Lesenswert?

Kurzer Einwurf (ohne mich mit dem Chip auszukennen). Also gerne auch 
ignorieren.
Mir kommt das Reset schon bissl komisch vor. Gibts da keinen 
Reset-Generator?
Ich bezieh mich aufs erste Posting, zweites Bild.

: Bearbeitet durch User
von Johannes F. (jofe)


Lesenswert?

Eduard ". schrieb:
> Nur frage ich mich, wie/warum das Adafruit-Board im Self-Powered-Modus
> funktioniert, obwohl Pin11 nicht an Vcc angeschlossen ist.

Gute Frage tatsächlich. Ich hätte erwartet, dass nach dem ungebrückten 
internen LDO von den 3,3 V zu wenig Spannung übrig bleiben würde.

Eduard ". schrieb:
> Ist der Baustein wirklich sooo empfindlich, was die Stützkondesnastoren
> anbelangt, wie Frank gestern erwähnt hat: "Jeder mm Leiterbahn zählt
> hier." ?

Kaum. Mein erster Versuch mit dem MCP2221 war mit der DIP-Ausführung auf 
einseitiger (selbstgeätzter) Platine, und da hat es auch auf Anhieb 
funktioniert, obwohl man bei DIP-Gehäusen zwangsläufig auf größere 
Abstände zwischen Die und MLCC (Bond-Drähte eingeschlossen) kommt. Wir 
haben es ja hier nicht mit hunderten MHz Taktfrequenz zu tun.

Sicher, dass die USB-C-Buchse korrekt verlötet ist, ohne Brücken etc.? 
Kannst ja mal Fotos deiner Platine von oben und unten machen.

von Johannes F. (jofe)


Lesenswert?

Nick schrieb:
> Mir kommt das Reset schon bissl komisch vor. Gibts da keinen
> Reset-Generator?

Hat einen eingebauten Power-On Reset, siehe Datenblatt S. 21 (Pull-Up an 
Reset-Pin soll dafür Bedingung sein).

von Hans W. (hanswieland)


Lesenswert?

Johannes F. schrieb:
> Wir haben es ja hier nicht mit hunderten MHz Taktfrequenz zu tun.

Das nicht, aber mit kräftiger pulsförmiger Belastung der Stromversorgung 
durch die angeschlossene Leitung.

: Bearbeitet durch User
von Nick (b620ys)


Lesenswert?

Johannes F. schrieb:
> Hat einen eingebauten Power-On Reset,

OK!

Als Verzweiflungstäter würde ich den Widerstand an /RST einfach mal 
größer machen. Und dann weiter entspannt verzweifelt sein. ;-)

Wenn dieses komische TOST (Seite 61) in der Einheit TOST <hahaha> nicht 
getestet wird und grob daneben liegt, könnte der Takt nach dem /RST noch 
nicht stabil genug sein.
Den Parameter könnte man wohl sogar ändern. Evtl. steht da Quatsch 
drinnen.

Wenn ich wieder komplett daneben liege, bitte ich die Störung zu 
entschuldigen. :-)

von Johannes F. (jofe)


Lesenswert?

Nick schrieb:
> Als Verzweiflungstäter würde ich den Widerstand an /RST einfach mal
> größer machen.

Hat er schon gemacht - sogar gegen unendlich, wenn ich seinen Stichpunkt 
oben bei den versuchsweisen Änderungen richtig deute:

Eduard ". schrieb:
> - Pin4 (RST) von PullUp (R3) getrennt (wie Adafruit)

An den TO: woher hast du den MCP2221 bezogen? Falls über eBay oder 
Aliexpress, würde ich die Möglichkeit noch in Betracht ziehen, dass es 
sich um eine nichtfunktionale Fälschung handelt.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Haste nur ein aufgebautes Muster, was sich so verhaelt, oder mehrere?
Sind die MCP2221 evtl. irgendwo von 'nem chinesischen Laster gefallen?

Wie sieht denn das mit der Masse tatsaechlich aus? Auf deinem Bild ist 
die ja in 2 (grosse rote) Teile zerfallen, die dann nur ueber die eine 
popelige blaue, duenne Verbindung zusammenhaengt. Ist das in Echt auch 
so?

Gruss
WK

von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Johannes F. schrieb:
> Gute Frage tatsächlich. Ich hätte erwartet, dass nach dem ungebrückten
> internen LDO von den 3,3 V zu wenig Spannung übrig bleiben würde.

Was meinst du mit "ungebrückt"?

Johannes F. schrieb:
> Sicher, dass die USB-C-Buchse korrekt verlötet ist, ohne Brücken etc.?

Siehe Foto. Ist maschinell bestückt worden. Sieht eigentlich ganz gut 
aus.

Irgendwie habe ich auch mittlerweile die USB-Buchse unter Verdacht (aus 
reiner Verzweiflung). Ich scheue mich nur gerade, die auszulöten und die 
Leitungen manuell an eine andere USB-Buchse zu löten. Aber 
wahrscheinlich wird mir nichts anderes übrig bleiben, um die USB-buchse 
auszuschließen.

Ich werde mich damit leider erst fühestens wieder am Freitag 
beschäftigen können.

Da ich mittlerweile alles hinterfrage (nicht nur die Hardware), habe ich 
mir noch einmal die Fehlermeldung vom PC angeschaut. Vielleicht kann 
jemand damit etwas anfangen:

__________Die Geräteeinstellungen für USB\VID_00008PID_0002\58 
396546a&0&1 wurden aufgrund einer teilweisen oder mehrdeutigen 
Geräteübereinstimmung nicht von der vorherigen 
Betriebssysteminstallation migriert._____________
Detailiertere Infos sind im Foto zu sehen.

Schon mal vielen Dank für den bisherigen Input. Vieleicht hat jemand 
noch einen Geistesblitz.

von Johannes F. (jofe)


Lesenswert?

Eduard ". schrieb:
> Johannes F. schrieb:
>> Gute Frage tatsächlich. Ich hätte erwartet, dass nach dem ungebrückten
>> internen LDO von den 3,3 V zu wenig Spannung übrig bleiben würde.
>
> Was meinst du mit "ungebrückt"?

Naja, Eingang (VUSB) und Ausgang (VDD) des internen 3,3-V-LDO-Reglers 
eben nicht miteinander verbunden ("gebrückt"), wie es das DB bei 
externer 3,3-V-Versorgung (aka self-powered) eben empfiehlt.

In der Regel hat so ein Spannungsregler einen Mindest-Spannungsabfall, 
auch wenn er mit seiner intendierten Ausgangsspannung gespeist wird. 
Kann aber sein, dass diese hinreichend gering ist (was aber vmtl. nicht 
unter allen Bedingungen so sein muß), oder dass Zusatzmaßnahmen 
getroffen wurden (interne Überbrückung bei entsprechender 
Eingangsspannung an VBUS).

Eduard ". schrieb:
> Johannes F. schrieb:
>> Sicher, dass die USB-C-Buchse korrekt verlötet ist, ohne Brücken etc.?
>
> Siehe Foto. Ist maschinell bestückt worden. Sieht eigentlich ganz gut
> aus.

Ja, sollte OK sein.

Wurde der MCP2221 ebenfalls maschinell bestückt? Von JLCPCB?

von Eduard ". (edtheb)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Haste nur ein aufgebautes Muster, was sich so verhaelt, oder mehrere?
> Sind die MCP2221 evtl. irgendwo von 'nem chinesischen Laster gefallen?
>
> Wie sieht denn das mit der Masse tatsaechlich aus? Auf deinem Bild ist
> die ja in 2 (grosse rote) Teile zerfallen, die dann nur ueber die eine
> popelige blaue, duenne Verbindung zusammenhaengt. Ist das in Echt auch
> so?
>
> Gruss
> WK

Moin,

Die fehlende Masse in dem unteren Teil hatte ich gleich zu Beginn 
entdeckt und dementsprechend gebrückt.

Gruß,
Eduard

von Nick (b620ys)


Lesenswert?

Das Layout fand ich nicht grad begeisterungswürdig. So wie andere.

Die Verbindung zwischen oben rechts und unten links über den einzigen 
windigen Via ist nix. Löt da mal 2 Drahtstück ein (linke Kante und 
rechte Kante).

Hat wohl auch schon jemand gesagt ... Aber ich hab den thread nicht 
komplett gelesen.

von Eduard ". (edtheb)


Lesenswert?

Johannes F. schrieb:
> Wurde der MCP2221 ebenfalls maschinell bestückt? Von JLCPCB?

Ja, aber ich musste den MCP herunternehmen und ihn manuell anders 
setzen, da ich falsch geroutet hatte (habe mich beim designen 
kurzfristig umentschlossen, den TSSOP14 statt des wie im Schaltplan 
zuvor gewählten QFN-16. Da diese nicht Pin-kompatibel sind, waren meine 
Verbindungen natürlich falsch. Keine Ahnung, warum mir das nicht 
aufgefallen ist.)
Habe ich nicht erwähnt, da ich mir zu 100% sicher bin, dass die 
Verbindungen vom versetzten MCP korrekt sind (x-mal gecheckt und ohmsch 
gemessen) und der Meinung war, dass ich irgendwas falsch gezeichnet 
haben muss. Bei der Zeichnung (erste PCB-Zeichnung von mir) habe ich 
also etwas gecheatet, um zu zeigen, wie die aktuelle Verdrahtung ist.
Also, mir bitte nicht gleich den Kopf abreißen.

Die Datenleitungen (D+ und D-), sowie Vss und Pin11 sind sauber auf den 
Pads gelötet, die direkt an die USB-Pins gehen. Lediglich Pin 1 (Vdd) 
Pin4 RST) musste ich mit Litzen mit den zugehörigen Bauteilen 
verdrahten. Die anderen Pins liegen in der Luft.

Bevor ich mich an eine weitere Platine mache, wollte ich sicher sein, 
dass ich nicht einen gravierenden Fehler habe, der mir den MCP kaputt 
macht.

So wie es sich derzeit darstellt, habe ich wohl keinen Fehler auf der 
Platine, der mir den MCP zerschießen wird. Dann werde ich mich am 
Freitag mal dransetzen und die letzte Platine nehmen und es nochmal 
probieren.

Johannes, Danke für den bisherigen Input.

von Eduard ". (edtheb)


Lesenswert?

Nick schrieb:
> Das Layout fand ich nicht grad begeisterungswürdig. So wie andere.
Dem kann ich leider nicht wirklich widersprechen. War wohl nicht mein 
bester Tag :(

> Die Verbindung zwischen oben rechts und unten links über den einzigen
> windigen Via ist nix. Löt da mal 2 Drahtstück ein (linke Kante und
> rechte Kante).
Mache ich, wenn ich meine letzte Platine anfasse, und alle bisherigen 
Tipps darin einfließen lasse.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Eduard ". schrieb:
> also etwas gecheatet, um zu zeigen, wie die aktuelle Verdrahtung ist.
Sehr clever.

Spezialgeheimtip: Naechstesmal, bevor du Schrott bestellst, hier die 
Noergler drueberschauen lassen...

Gruss
WK

von Nick (b620ys)


Lesenswert?

Eduard ". schrieb:
> Dem kann ich leider nicht wirklich widersprechen. War wohl nicht mein
> bester Tag :(

Dabei fehlt es ja nicht so arg weit. Lass halt ringsrum einen Rand wo 
die Masse "durchkommt".
Wenn du paar Leiterbahnen verschiebst, kommt der fill auch besser 
zurecht. Notfalls mit 2 vias und einer kurzen Leiterbahn die Masse 
verbinden.
Wenn du die Bahn von R2/2 weg bissl nach rechts schiebst, wird der Fill 
gleich besser. Als Abstand mach ich 0.2 mm, bei dir scheits mehr zu sein 
(kontrollier aber, ob der Feriger das bei zweiseitig unterstützt).
Und zuguterletzt einfach auf Layer 2 einen fill mit GND machen. Dann 
kannst du die zwei GND-Flächen mit vias zusammennageln. Vias kosten 
nichts!

Andere Tips wurden ja schon gegeben.
Deine Hartnäckigkeit das Problem zu lösen rechne ich dir groß an.

von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Johannes F. schrieb:
> Genauso macht es der CH340 auch. Man hält sich einfach an den
> USB-Standard. Ich habe deshalb noch nie verstanden, warum die Silabs und
> FTDI Teile so populär sind.

Vor etwa einem Monat habe ich "Arduino mit ATmega1284P" gemacht. Auf der 
Platine gibt es 6-Pin-Header, man kann externe USB/TTL Konverter (mit 
DTR-Pin) benutzen. Ich habe zwei davon: mit CH340 und mit FT232RL. Beide 
funktionieren gut, ich habe keine Unterschiede bemerkt. Win11.

: Bearbeitet durch User
von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Hallo,
es gibt eine Erklärung bzgl. der Kommunikationsprobleme meiner Platine:

Der USB-C-Footprint in meiner Bibliothek war falsch. Er ist 
spiegelverkehrt. Somit sind D+/D- vertauscht.
Manchmal kann es so einfach sein. Zumal wenn man allen Hinweisen 
mehr/genauere Beachtung schenkt. Auch die von Laien ;)
S. L. schrieb:
> Da frage ich mich (als Laie), ob die Verdrahtung des USB-Anschlusses
> stimmt.
>
> Der geht im eingangs gezeigten Bild nach rechts, bei dem Adafruit-Bild
> nach links, aber die Ds liegen gleich.
>
> Wie gesagt, nur eine Laienmeinung.

Aber was kann an einem Footprint schon falsch sein. Es sei denn, man hat 
irgendwann mal selber den Footprint erstellt. :(
Wieder was gelernt.

Bis dato vielen Dank für Euren Input und Mühe bei der Suche.

Ich würde den Rat eines Users gerne beherzigen und würde hier nun das 
gesamte Board zur Begutachtung stellen, bevor ich die Platine in Auftrag 
gebe, mit der Bitte um Input, bzgl. allgemeiner Designfehler, die in 
euren Augen eklatant sind und Änderungen bedürfen.
Ich habe diese Platine, bis auf den bisher besprochenen Teil noch nicht 
geprüft, und kann somit auch nicht sagen, ob es bereits Fehler 
beinhaltet.

Zur Erläuterung der Platine:
Es handelt sich um eine einfache A/D-Umwandlung inkl. Trennung (ISO621), 
Das Messsignal hat einen Spannungsbereich von 0-1,6V und und wird im 
Vorfeld bereits mit einem Spannungsteiler reduziert.
Die Baud-Rate wird sehr niedrig sein, da nur wenig bzw. zeit-unkritische 
Kommunikation stattfinden wird.
Evtl. werde ich im Nachhinein den extern Osc. entfernen und den 
uC-internen  Takt (8MHz) verwenden. Das werde im nächsten/übernächsten 
Schritt mal angehen.

Also, wenn jemand neben Fehlerbeseitung auch gute Tips bzgl. 
ESD/EMV-Verbesserung hat...
Vielen Dank im voraus

: Bearbeitet durch User
Beitrag #8034559 wurde vom Autor gelöscht.
von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Johannes F. schrieb:
> Höchstwahrscheinlich ist der Ansatz "self-powered" mittels externem LDO
> hier der falsche, da er die Sache unnötig verkompliziert.
>
> Wenn es lediglich um die 3,3-V-Pegel am Ziel-UART geht: Das kann der
> ISO621 (vermutlich ist der STISO621 von STM gemeint?) ganz alleine.
> Einfach die Standard-"Bus-powered"-Schaltung aus dem DB nehmen, den ISO
> auf der USB-Seite mit VUSB = 5 V verbinden und auf der UART-Seite mit
> 3,3 V.

Nach Johannes' Beitrag, habe ich mich doch entschlossen, den 3,3V-Regler 
primärseitig zu entfernen (im DB hatte ich die Level-Shift-Fkt. 
übersehen).

Da ich den vorherigen Beitrag nicht mer bearbeiten konnte hier das PCB 
und die Schematic als "aktualisierte" Version.

von Frank K. (fchk)


Lesenswert?

Der LDO möchte gerne noch einen Eingangskondensator direkt an seinem VIN 
haben. Ein- und Ausgangskondensatoren sollen maximal dicht und mit 
dicken Leiterbahnen angebunden werden, damit sie richtig wirken.

Ich bevorzuge übrigens Regler wie MCP1703AT-3302E/DB gegenüber den 
1117'ern, und zwar wegen des Pinouts. Bei´den MCPs ist nämlich GND in 
der Mitte und an der Fahne. Das gibt eine bessere Wärmeableitung in die 
Massefläche drumrum. Und auch der möchte Ein- und Ausgangskondensatoren 
möglichst dicht an seinen Pins haben, jeweils min 1u X7R.

fchk

von Dergute W. (derguteweka)


Lesenswert?

Moin,

So auf die Schnelle wuerd' ich den 1.8V AREF noch einen C Spendieren, 
weissgradnicht, was das Datenblatt da vorschlaegt. Aber den wuerd ich 
nehmen.
Dann die blaue Plane noch ordentlich fluten; Leitungen, die nicht 
unbedingt so fuzzelig duenn sein muessen, koennen ruhig dicker werden. 
Die Masseflaeche unterm U4 koennte mit ein paar DKs an eine noch zu 
flutende blaue Masse angeschlossen werden.
Der U5 koennte mehr Kupfer um seine beiden Pin2s kriegen, damit er sich 
leichter die Waerme vom Pelz schaffen kann - ja, auch wenn der 
wahrscheinlich nicht so arg warm wird - mehr Kupfer auf +3.3VA um ihn 
rum, schadet nicht.
Da sind noch 2 Bohrungen auf dem PCB - kommen da womoeglich Schrauben 
durch, die dann die galv. Trennung zum Teufel gehen lassen?

Gruss
WK

von Eduard ". (edtheb)


Lesenswert?

Frank K. schrieb:
> Der LDO möchte gerne noch einen Eingangskondensator direkt an seinem VIN
> haben. Ein- und Ausgangskondensatoren sollen maximal dicht und mit
> dicken Leiterbahnen angebunden werden, damit sie richtig wirken.
>
> Ich bevorzuge übrigens Regler wie MCP1703AT-3302E/DB gegenüber den
> 1117'ern, und zwar wegen des Pinouts. Bei´den MCPs ist nämlich GND in
> der Mitte und an der Fahne. Das gibt eine bessere Wärmeableitung in die
> Massefläche drumrum. Und auch der möchte Ein- und Ausgangskondensatoren
> möglichst dicht an seinen Pins haben, jeweils min 1u X7R.
>
> fchk

Auch wenn der LDO (1117er) von extern versorgt (VAA Klinkenbuchse) wird 
und bei der vorgeschalteten Schaltung bereits etliche Kondensatoren im 
Spiel sind?

Über Wärme muss ich mir, denke ich, nicht wirklich große Sorgen machen, 
da VIN 5-6V ist und die Last vom uC nicht so hoch sein sollte. Sähe 
natürlich anders aus, wenn LDO mehr Spannung umwandeln müsste.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Eduard ". schrieb:
> Auch wenn der LDO (1117er) von extern versorgt (VAA Klinkenbuchse) wird
> und bei der vorgeschalteten Schaltung bereits etliche Kondensatoren im
> Spiel sind?

Gerade dann. Kondensatoren am anderen Ende einer Anschlussleitung tun 
nicht gilden tun.
Noch was anderes: Die Abwesenheit von PWR_FLAGs im Schaltbild laesst 
mich an der Fehlerfreiheit des ERCs zweifeln. Was spricht der denn so?

Gruss
WK

von Eduard ". (edtheb)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Eduard ". schrieb:
>> Auch wenn der LDO (1117er) von extern versorgt (VAA Klinkenbuchse) wird
>> und bei der vorgeschalteten Schaltung bereits etliche Kondensatoren im
>> Spiel sind?
>
> Gerade dann. Kondensatoren am anderen Ende einer Anschlussleitung tun
> nicht gilden tun.
> Noch was anderes: Die Abwesenheit von PWR_FLAGs im Schaltbild laesst
> mich an der Fehlerfreiheit des ERCs zweifeln. Was spricht der denn so?
>
> Gruss
> WK

Okay.
Nachdem ich PWR_FLAGs gesetzt habe, keine ERC-Fehlermeldungen mehr. ;)

Dergute W. schrieb:
> Da sind noch 2 Bohrungen auf dem PCB - kommen da womoeglich Schrauben
> durch, die dann die galv. Trennung zum Teufel gehen lassen?

Ja, die Bohrungen sind zur für Schrauben vorgesehen. Diese befinden sich 
ja außerhalb der Iso-Zone. Warum sollten Sie die galvanische Trennung 
verhindern? Es sei denn, die Schrauben werden in ein Metallgehäuse 
geschraubt. Was ich nicht vorhabe.

von Frank K. (fchk)


Lesenswert?

Eduard ". schrieb:
> Frank K. schrieb:
>> Der LDO möchte gerne noch einen Eingangskondensator direkt an seinem VIN
>> haben. Ein- und Ausgangskondensatoren sollen maximal dicht und mit
>> dicken Leiterbahnen angebunden werden, damit sie richtig wirken.

> Auch wenn der LDO (1117er) von extern versorgt (VAA Klinkenbuchse) wird
> und bei der vorgeschalteten Schaltung bereits etliche Kondensatoren im
> Spiel sind?

Auch dann. Du begehst den Anfängerfehler zu glauben, dass eine 
Leiterbahn eine einfache elektrische Verbindung zwischen zwei Punkten 
ist. Das ist falsch. Du musst jede Leiterbahn wie ein Bauteil behandeln, 
das einen ohmschen Widerstand, eine Induktivität und eine Kapazität 
aufweist. In genau diesem Fall ist es die Induktivität, die Dir den Tag 
versaut. Daher ist jeder einzelne überflüssige mm zwischen Pin und 
Kondensator ein mm zu viel. Und je breiter die Leiterbahn, desto 
geringer ist die Induktivität.

fchk

von Johannes F. (jofe)


Lesenswert?

Eduard ". schrieb:
> Screenshot_Schematic_v2.png

Das Datenblatt des MCP2221A sagt: "The V_USB pin requires an external 
bypass capacitor with a value between 0.22 and 0.47 μF (ceramic cap)", 
also nimmt man praktischerweise 330 nF.

Zudem sind LDOs kritisch bzgl. der Ausgangskapazität, da machen die 
Datenblätter üblicherweise recht konkrete Empfehlungen auch im Hinblick 
auf den ESR, wegen sonst möglicher Schwingneigung. Da kann eine Kombi 
aus 100 nF MLCC und parallelem Elko notwendig sein, besser noch Tantal 
(da weniger temperaturabhängig).

Dergute W. schrieb:
> So auf die Schnelle wuerd' ich den 1.8V AREF noch einen C Spendieren,
> weissgradnicht, was das Datenblatt da vorschlaegt.

Ja, tut es, 100 nF gegen GND sind da angesagt.

Und AVCC sollte via L-C-Glied entkoppelt werden, das Datenblatt 
empfiehlt 10 µH (AVR042 sagt Ferrite Bead) und 100 nF. Layout-Anregungen 
gibt die Appnote
https://www.microchip.com/content/dam/mchp/documents/MCU08/ApplicationNotes/ApplicationNotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf

von Eduard ". (edtheb)


Angehängte Dateien:

Lesenswert?

Die Hinweise der beiden letzten Beiträge sind eingepflegt.
Grobe Schnitzer reingebaut?

Danke schon mal.

Super hilfreiche Beiträge und Hinweise hier. Und keine "von oben herab" 
Beiträge.

von Frank K. (fchk)


Lesenswert?

U3 Pin 1 (der Isolator) will noch einen 100n direkt am Pin. Ich sehe, 
dass C2 und C3 direkt in der Nachbarschaft sind. Ich würde C3 im 
Schaltplan an den Isolator schieben, um die erforderliche (!) räumliche 
Nähe auch im Schaltplan zu verdeutlichen.

Die Leiterbahn zwischen U5 und C6/C7 ist zu dünn und viel zu lang. Das 
sollten nur wenige mm sein. Ich würde U5 im Layout um 180° drehen, dann 
passt das eventuell besser.

Wenn mehrere Kondensatoren parallel an einem Pin sind, muss (vom Pin 
gesehen) zuerst der Kondensator mit dem niedrigeren Wert kommen, dann 
der mit dem nächsthöheren Wert usw. usw. Betrifft hier C6 und C7. Diese 
Reihenfolge sollte der Schaltplan auch abbilden.

fchk

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Eduard ". schrieb:
> Super hilfreiche Beiträge und Hinweise hier. Und keine "von oben herab"
> Beiträge.

Naja, so ist das nunmal wenn man sich nicht beratungsresistent gibt ;-)

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.