Hallo zusammen, bin auf Fehlerjagd. Hat wer Lust auf eine kleine Safari :)? Mein Logger-Modul für Prototypen besteht aus einem Raspberry Pi Zero W, einer CP2108 USB-to-quad-UART Bridge und einem USB-Modem. Raspberry nimmt die Logs von den MCU-targets, speichert sie und schickt sie übers Internet zu mir. Das Feature mit dem übers Internet schicken ist erst in der letzten Revision dazugekommen, und da der Raspi nur 1 usb (für Internetstick und CP2108) hat, hab ich mich wegen fehlendem Platz dafür entschieden, einen USB hub mit dem USB2422 raufzurouten. Long story short: der Raspi erkennt den CP2108 nicht verlässlich. Nach vielem debuggen hatte ich folgende Erkenntnisse: 1) Der 2. Port des USB2422 wird immer ohne Probleme erkannt. 2) Die einize (aber dafür verlässlich und immer reproduzierbare) Möglichkeit, mit dem CP2108 nach dem Startup ohne weiter Maßnahmen zu kommunizieren ist, die Schaltung einzuschalten, kurz auszuschalten und dann wieder einzuschalten. Die Versorgungsspannung 5V des Pi und des CP2108 (aus der die 3V3 des USB2422 gemacht werden) kann aber sehr tief fallen (~20mV nach ~5s), und trotzdem funktionierts nach dem erneuten Einschalten. 3) Ein Hard-Reset (über Reset-Pin) des USB2422 behebt das Problem auch. 4) Ein Soft-Reset (über ioctl in Linux) des USB2422 behebt das Problem nicht. 5) Ein Hard-Reset (über Reset-Pin) des CP2108 behebt das Problem nicht. Der CP2108 verhält sich aber wie erwartet. Nach dem Startup zieht er das Potential von USBDP (USB Data Plus) auf +3V. Zieht man den Reset, geht auch das Potential wie erwartet auf GND. Nach dem auslassen des Resets geht das Potential wieder auf 3V. 6) Im Linux-Kernel (dmesg) finden sich keine Fehlermeldungen wenn der CP2108 nicht erkannt wird. Ich hab in diesem Fall noch nirgends ein Spur vom CP2108 im Linux (z.b. über lsusb) gefunden. 7) Ist der CP2108 erkannt und man zieht den Hard-Reset, finden sich sich die erwarteten Fehlermeldungen, dass das device nicht mehr da ist. Beim auslassen des Resets wird es wieder erkannt. Schaltplan o.Ä. stelle ich gerne zur Verfügung. Hinweise, die zum Jagderfolg führen, werden mit Bussl oder Bier von mir behlohnt :)
> Schaltplan o.Ä. stelle ich gerne zur Verfügung.
Ja bitte..
wheeler schrieb: > Hinweise, die zum Jagderfolg führen, werden mit Bussl oder Bier von mir > behlohnt :) Zerteile das Problem solange bis die Lösung trivial ist. Der CP2108 ist ja nicht ganz alltäglich - häng die Upstream D+/D- mal an einen PC und vergleiche das verhalten. PS: Ich nehm das Bier.
Ich finde es sportlich di 5vpi zur Versorgung des USB Modems und vusb der uart bridge zu verwenden ohne weitere Zusatzschaltung. Olimex hat USB-cap, solltest sowas mal austesten.
Normgerechte Downstreamports sollten doch üblicherweise 10k pulldowns haben. Das ist zumindest das was ich über Hubs in Erinnerung habe. Ich kenne dein Hub IC aber nicht.
Danke für eure Antworten. Der Fehler war wo anders begraben: Habe etwas im Datenblatt übersehen. Dort steht, dass der USB2422 nach dem Power-Up resettiert werden MUSS, um richtig funktionieren. Nach der Implementierung eines resets gab es keine Probleme mehr.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

