MCP2200 isolated usb/uart schaltungskontrolle

Gast #4958147
Lesenswert?

Hallo Zusammen

Ich möchte meine Steuerung auf einem Atmega2560 direkt mit einem 
USB-Kabel an den PC anstöpseln, anstelle eines Max232 und einem 
USB/serial-wandler. Es scheint mir eine simple Angelegenheit zu sein, 
aber zur Sicherheit wärs schön, wenn ihr schnell über die Schaltung 
gucken könntet :) Vorallem die Wahl der Teile, da habe ich das erst 
Beste genommen.
MCP2200 
https://www.reichelt.de/ICs-MCP-1-2-/MCP-2200-I-SS/3/index.html?ACTION=3&LA=446&ARTICLE=109741&GROUPID=5471&artnr=MCP+2200-I%2FSS&SEARCH=mcp2200
ADuM1201AR 
https://www.reichelt.de/ICs-ADC-ADXRS-/ADUM-1201-AR/3/index.html?ACTION=3&LA=446&ARTICLE=107978&GROUPID=5458&artnr=ADUM+1201+AR&SEARCH=adum).
Danke schon im Voraus!

Gruss Chrys
Angehängte Dateien:
Gast #4958254
Lesenswert?

Bastian W. schrieb:
> Hi, hast du auf der AVR Seite Tx und Rx vertauscht ? Normal müsste ja Tx
> vom MCP auf Rx vom Atmega gehen. Ein Pullup am Rx auf der AVR Seite
> währe nicht schlecht

Jop, danke. Habe einen Pullup mit 10k reingemacht.

Frank K. schrieb:
> Den Shield vom USB würde ich über eine Induktivität oder einen
> Widerstand von 100k oder so anbinden.

Vielen Dank für die Tipps, die vorgeschlagenen Änderungen sind in der 
Schaltung angepasst.

Gruss Chrys
Angehängte Dateien:
Gast #4960609
Lesenswert?

H.Joachim S. schrieb:
> Wie sieht denn das mit den Treibern PC-seitig für den MCP aus?
Gibt es, aber nicht aktuell gepflegt - Datum von 2104.

> Könnte ne Alternative für den überteuerten FT232 sein...
FTDI will ich hier nicht mehr sehen, denen geht das zu gut.

Der MCP2200 ist als einfacher Ersatz vermutlich nicht brauchbar, aber 
interessant, weil er andere Dinge kann. Für einen simplen seriell-to-Usb 
würde ich eher nach bewährten ICs wie SiliconLabs schauen, aber auch den 
Chinesen CH340 nicht außer acht lassen.
Angehängte Dateien:
#4960912
Lesenswert?

Für mich privat wäre das völlig egal, da kann man auch schon mal 
bisschen basteln und probieren, um den Treiber wieder ans Laufen zu 
bringen (Prolific).
Bei Kundensachen geht sowas nicht, das muss funktionieren. Auch nach 
einem Betriebssystem-update.
Und da muss ich sagen, dass ich mit FTDI noch nie Probleme hatte, die 
funktionieren einfach immer.
#4960922
Lesenswert?

Manfred schrieb:
> H.Joachim S. schrieb:
>> Wie sieht denn das mit den Treibern PC-seitig für den MCP aus?
> Gibt es, aber nicht aktuell gepflegt - Datum von 2104.

Das ist falsch. Dieser Chip nutzt den CDC-ACM-Treiber und den 
HID-Treiber des jeweiligen Betriebssystems. Er braucht daher gar keine 
speziellen Treiber. Bis Windows 8.1 brauchst Du nur ein .inf, das 
Windows sagt, das es seinen eigenen Treiber benutzen soll. Bei Windows 
10 und MacOS und Linux/BSD brauchst Du nicht einmal das.

Das ist ja der Vorteil bei dem Chip.

fchk
Gast #4971000
Lesenswert?

Guten Morgen Zusammen

Ich habe die Schaltung ins Kupfer gebracht. Jetzt habe ich auf der AVR 
Seite des ADuM's nichts angestöpselt um erstmal zu testen ob der MCP2200 
vom PC erkannt wird. Mit Windoof passiert gar nichts und auf Ubuntu 
kriege ich mit dmesg die Meldung:
usb usb1-port4: connect-debounce failed

Weis irgend jemand was hier das Problem ist?

Danke schon im Voraus
Chrys
Gast #4971003
Lesenswert?

Hat sich erledigt, wenn man um die Uhrzeit noch richtig löten könnte...
Für die dies interessiert, jetzt siehts so aus:
[29485.008028] usb 3-1: new full-speed USB device number 8 using 
uhci_hcd
[29485.216058] usb 3-1: New USB device found, idVendor=04d8, 
idProduct=00df
[29485.216065] usb 3-1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[29485.216069] usb 3-1: Product: MCP2200 USB Serial Port Emulator
[29485.216073] usb 3-1: Manufacturer: Microchip Technology Inc.
[29485.216076] usb 3-1: SerialNumber: 0001414376
[29485.225212] hid-generic 0003:04D8:00DF.0004: hiddev0,hidraw3: USB HID 
v1.11 Device [Microchip Technology Inc. MCP2200 USB Serial Port 
Emulator] on usb-0000:00:1a.0-1/input2
[29485.341627] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[29485.343216] usbcore: registered new interface driver cdc_acm
[29485.343219] cdc_acm: USB Abstract Control Model driver for USB modems 
and ISDN adapters

Gruss Chrys
Gast #4979165
Lesenswert?

Hallo Zusammen

Das ganze funktioniert wie gesagt schon ziemlich gut :)

Jetzt habe ich noch ein Problem:
Wenn der MCP mittels USB Kabel am PC angeschlossen ist und ich mit dem 
Atmega ein Power On oder Off mache, kommt beim PC irgendwas an und es 
gibt Fehler im GUI...
Eigentlich sollte der Ausgang des Adum's (herkommend vom TX des Atmega) 
auf der MCP Seite high sein, wenn die Atmega Seite nicht mit Strom 
versorgt wird. Meine Vermutung: Wenn der Atmega ein/aus-schaltet wird 
das TX kurzzeitig low und der MCP meint etwas erkannt zu haben.

Wie kriege ich das weg? Muss ich den Adum auf der Atmega Seite verzögert 
einschalten und früher als den Atmega ausschalten? Oder gibts noch 
andere Lösungen?

Gruss Chrys
Gast #4984039
Lesenswert?

Hallo Zusammen

Das Problem ist immer noch da:

Chrys schrieb:
> Wenn der MCP mittels USB Kabel am PC angeschlossen ist und ich mit dem
> Atmega ein Power On oder Off mache...

Dann schmiert die Verbindung mit dem PC ab und kurze Zeit später ist sie 
wieder da...

Es ist egal ob RX/TX vom AVR mit dem Adum verbunden sind oder nicht. Ein 
reines An- oder Ausschalten des Adums (auf der Atmega Seite) verwirrt 
den MCP offenbar. Die MCP Seite des Adums ist ja die ganze Zeit mit 
Strom versorgt, solange das USB Kabel eingesteckt ist.

Dmesg spuckt das hier raus:
...
[19769.685244] hid-generic 0003:04D8:00DF.000B: hiddev0,hidraw3: USB HID 
v1.11 Device [MCP2200 USB Serial Port Emulator] on 
usb-0000:00:1a.1-2/input2
---> bis hier ist alles gut :)

---> hier wird der Adum (auf der Atmega Seite mit Strom versorgt)
[19800.220260] usb 4-2: USB disconnect, device number 8
[19800.222238] cdc_acm 4-2:1.0: failed to set dtr/rts

---> kurze Zeit später ist wieder alles OK
[19800.492027] usb 4-2: new full-speed USB device number 9 using 
uhci_hcd
[19800.697222] usb 4-2: New USB device found, idVendor=04d8, 
idProduct=00df
[19800.697229] usb 4-2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[19800.697233] usb 4-2: Product:MCP2200 USB Serial Port Emulator
[19800.697236] usb 4-2: Manufacturer: Microchip
[19800.697239] usb 4-2: SerialNumber: 0001414376
[19800.700366] cdc_acm 4-2:1.0: ttyACM0: USB ACM device
[19800.707387] hid-generic 0003:04D8:00DF.000C: hiddev0,hidraw3: USB HID 
v1.11 Device [MCP2200 USB Serial Port Emulator] on 
usb-0000:00:1a.1-2/input2

Kann mir jemand einen Tipp geben, wie ich dies wegkriege? Ich möchte die 
Atmega Seite so oft an- und ausschalten wie es mir passt, ohne das die 
Verbindung zum PC beeinträchtigt wird :)

Gruss Chrys
Gast #4984116
Lesenswert?

Sollte soweit alles passen...

PCB LAYOUT
The ADuM120x digital isolators require no external interface
circuitry for the logic interfaces. Power supply bypassing is
strongly recommended at the input and output supply pins.
The capacitor value should be between 0.01 μF and 0.1 μF.
The total lead length between both ends of the capacitor and
the input power supply pin should not exceed 20 mm.
#4984135
Lesenswert?

Du hast ja das ganze Board mit GND geflutet. Das kann nicht gut gehen.

Die ADuMs sind dafür gedacht, dass Du links eine Region auf Potential A 
hast, die an den Pads der linken Reihe des ADum endet. Dann kommt eine 
Region ohne Kupfer, nur gebrückt durch den ADuM, und dann kommt Region 
B.

Der Pinabstand zwischen beiden Reihen ist je nach Gehäuse 5-7.5mm, und 
das ist auch der Abstand beider Regionen an JEDER Stelle auf BEIDEN 
Seiten zu ALLEN Seiten, damit es nicht zu kapazitiver Koppelung kommt.

Und wenn Du schon SMD machst, dann richtig. Heißt: auch Kondensatoren 
und Widerstände in SMD. Damit bekommst Du ein deutlich kompakteres 
Layout hin, und damit auch ein besseres. Die Drähte an den Bauteilen 
wirken nämlich wie Induktivitäten.

fchk
#4984239
Lesenswert?

Du hast zwar die 100nF Bypass-Caps für die 5V-Versorgung von dem MCP2200 
und dem ADUM gesetzt. Aber bei Lastschwankungen, z.B. wenn der ADUM 
während des Ein/Ausschaltens viele "Müll"-Bits überträgt, könnte die 
Versorungsspannung knapp werden.

Pack mal zusätzlich noch 10µF auf diese 5V-Schiene, das könnte dagegen 
helfen.

Wenn Du Dir die AN-1109 von Analog anschaust, dann machen die das dort 
auch so.
Gast #4984637
Lesenswert?

Erstmal vielen Dank für die Hinweise!!

Sven K. schrieb:
> C4 sollte laut Datenblatt mindestens bei Vusb > 0.22 besser 0.47 sein.
> Das würde ich als erstes mal korrigieren.

Gerd E. schrieb:
> Pack mal zusätzlich noch 10µF auf diese 5V-Schiene, das könnte dagegen
> helfen.

Hat leider beides nichts gebracht, immer noch das Selbe verhalten.

Frank K. schrieb:
> Der Pinabstand zwischen beiden Reihen ist je nach Gehäuse 5-7.5mm, und
> das ist auch der Abstand beider Regionen an JEDER Stelle auf BEIDEN
> Seiten zu ALLEN Seiten, damit es nicht zu kapazitiver Koppelung kommt.

Werde es mir beim nächsten Versuch beherzigen, aber dies sollte ja jetzt 
nicht der Grund sein wieso der MCP abschmiert...

Bin froh für alles, was helfen könnte...

Gruss Chrys
#4984651
Lesenswert?

Wie schaltest du den Atmega ab ? Ziehst du den Stecker , oder schaltest 
du das Netzteil aus ? Ich hab hier ein altes NEtzteil mit nem einfachen 
Trafo und wenn ich das ausschalte reconnected mein Board mit dem FT232RL 
auch fast immer. Wenn das JTAGICE MK3 angeschlossen ist dann passiert 
nichts. Das selbe passiert wenn im Stall die Motoren für die Fütterung 
schalten.

Was ich mit dem Oszi messen konnte, war das zischen GND und Schirm die 
Spannung schwankt wenn ich das Netzteil ausschalte. D+ und D- hab ich 
nicht gemessen ob da ggf. die Kommunikation ein Problem hat.

Das du das mal gemessen wie D+ und D- aussehen wenn du den Atmega 
ausschaltest ?

Bei dem aktuellen Layout mit einem xMegaA3U hab ich TVS Dioden auf den 
Datenleitungen für USB, ich hab aber noch nicht getestet ob das Netzteil 
hier auch stört.

Gruß JackFrost
#4984655
Lesenswert?

Vielleicht ein EMV-Problem?

Mit was für einem Netzteil speist Du denn die AVR-Seite Deines Adums?

Wie trennst/verbindest Du diese Versorgung wenn es zu dem Problem kommt? 
Abschalten des gesamten Netzteils oder stecken/ziehen eines Kabels?

Ändert sich etwas wenn Du dort ein anderes Netzteil nimmst?

Ansonsten schau Dir mal die Leitung zum RX-Pin des MCP während des 
Einschaltens/Ausschaltens auf dem Oszi an, Single Trigger. Was passiert 
da?
Gast #4984664
Lesenswert?

Bastian W. schrieb:
> Wie schaltest du den Atmega ab ? Ziehst du den Stecker , oder schaltest
> du das Netzteil aus ?

Gerd E. schrieb:
> Mit was für einem Netzteil speist Du denn die AVR-Seite Deines Adums?
>
> Wie trennst/verbindest Du diese Versorgung wenn es zu dem Problem kommt?
> Abschalten des gesamten Netzteils oder stecken/ziehen eines Kabels?

Ein Labornetzgerät, bei welchem ich den ON/OFF Knopf bediene.
Wenn ich nur den Stecker ziehe passiert es nicht...
Gast #4984681
Lesenswert?

uncool, wollte mich gerade mit einem Schalter in der + Leitung abfinden 
aber ich muss auch GND abhängen, damit ich dann das Netzteil schalten 
kann...
Auf jedenfall vielen Dank für die Hilfe bis hierhin, manchmal denke ich 
schon nicht über die Nasenspitze hinaus...!!
Die Spannungsversorgung für den Atmega ist ein TS7805 mit je einem 100uF 
elko und je einem 100nF keramik kondensator auf der Ein- und 
Ausgangsseite. Was könnte ich da noch ändern, um es immuner zu machen?

Gruss Chrys
#5141247
Lesenswert?

Manfred schrieb:
> Der MCP2200 ist als einfacher Ersatz vermutlich nicht brauchbar, aber
> interessant, weil er andere Dinge kann.

Der Treiber vom MCP2200 unterstützt auch MCP2221A.
"Version 1.3 (Released 10/09/2014):
 - Updated tool to include the new MCP2200/MCP2221 driver version 
(v1.4)."
http://www.microchip.com/wwwproducts/en/MCP2221A
http://ww1.microchip.com/downloads/en/DeviceDoc/20005565B.pdf

Die Schaltung passt zum Upgrade, womit wir auch noch eine Schnittstelle 
zu I2C/SMBus erhalten. Welche andere Dinge hat Manfred gemeint? GPIO's? 
Einfachen DAC/ADC vom USB2.0 aus?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren