USB-ARM Anbindung geht auf eigener Platine nicht

OP #1081508
Lesenswert?

Hi!

Ich habe einen ARM7 LPC2368 auf eine eigene Platine aufgebaut. Mit dem 
JTAG kann ich den Controller auf der Platine programmieren. Aber eine 
Dateübertragung per USB an den Rechner geht nicht.

Jetzt die Frage. Wie kann ich rausfinden was an der Verbindung nicht 
geht, oder woran es liegt?

Ich habe ein MCB2300 Demo-Board von Keil. Prinzipiell habe ich die 
USB-Portbeschaltung so aufgebaut wie auf dem Board.

Nur wenn ich den USB-Stecker in den PC stecke, geht nix. Programmiert 
ist der µC natürlich & zwar mit dem selben Programm wie für das 
Demo-Board. Dort geht die Datenbertragung an den PC problemos.

Der Vbus hat auch die Spannungsversorgung über den USB-Port. Der 
Controller selbst hat eine eigene Spannungsversorgung.

Mein Quarz, der auf dem Board verbaut ist, gibt 11,99918 MHz raus. Also 
sollte man den als 12MHz ansehen können.

Für Infos wär ich dankbar!

gruuß
Gast #1081522
Lesenswert?

Hatte auch Probleme mit der ersten eigenen Schaltung mit einem LPC2368
in Verbindung mit USB.

Ich wollte schlau sein und hatte für die Filterung vom USB eine
speziell dafür vorgesehene Doppeldrossel von Würth an Stelle der
Beschaltung auf dem MC2360 eingesetzt. Resultat: Nix ging. USB-Gerät
nicht erkannt.

Drossel runter und den RC-Filter vom MCB2360 nachgebaut. Alles ok.

Überprüf das nochmal ob deine Eingangsbeschaltung wirklich wie auf dem
MCB2360 ist.

Merkt der PC denn überhaupt nichts beim Einstecken? Oder meldet er
unbekanntes USB-Gerät oder ähnliches?

Wie sieht ansonsten deine Leitungsführung auf der Platine aus?
Wie groß ist der Abstand zwischen USB-Buchse und Controller?
Sind die beiden Leitungen weitgehend parallel geführt?
Hast du darauf geachtet möglichst wenig Lagenwechsel auf dem Weg zu 
haben?
OP #1081694
Lesenswert?

Hi ARM-Fan!

Danke für deine schnelle Antwort!

Mein µC befindet sich auf einer normlen 16x10cm grossen Platine fast 
exakt mittig drauf. Der USB-Port an der hinteren Kante. Allerdings habe 
ich den Controller über Sockelreihen aufgesteckt. Das sollte aber 
eigentlich nix ausmachen.

Meine Leitungsführung auf dem Board ist eigentlich fast exakt parallel. 
Einzig direkt an der Buchse ist der eine Bogen etwas weiter ausgeholt 
als auf der anderen Seite. Aber das ist minimal.
Lagenwechsel habe ich gar keine. Mit D+ & D- bin ich auf einer Seite 
geblieben. Meine RC-Beschaltung an D+ & D- sind, wie auf dem Demo-Board 
18pF & 33 Ohm.
Wenn ich die USB-Buchse einstecke passiert nix! Im Gerätemenager seh ich 
absolut keine veränderung.

Den 5V USB-Anschluss habe ich, wie auf dem Board über einen 4,7k an Vbus 
geführt. 220K gehen gegen Masse.
Aber das, was ich dann messe ist nicht das, was ich erwarte.

Wenn ich mein Board ins Reck stecke, messe ich an Vbus 3,3V. Obwohl der 
USB-Stecker nicht eingesteckt ist. Verbinde ich dann den USB-Stecker, 
dann messe ich 1,2V.
Dürfte wohl nicht soo ganz passen, oder???

Kann sein, das ich Vbus nicht als Vbus also Input, sondern als Output 
habe & deswegen die 3,3V auch ohne USB-Stecker drauf habe. Aber warum 
funktioniert dann mein Programm auf dem Demo-Board????

Weist du ob ich, wenn ich einen ganz niegelnagelneuen LPC2368 auf eine 
Platine löte & dann programmiere, etwas anders programmieren muss, als 
den auf dem Demo-Board??? Weil evtl. auf dem Demo-Board irgendwas von 
Keil schon drin steht??? Und evtl. der interne AHB-Bus gar nix rafft, 
weil ich da auch nix reinprogrammiert habe ausser das er an sein muss, 
aber die Taktzahl ja deswegen evtl. totaler mist ist????

gruuß
Gast #1081834
Lesenswert?

Selbst wenn man nur 1,5K von D+ auf 3,3V legen würde und sonst kein 
einziges Bauteil dran hat, dann würde Windows versuchen was zu 
installieren und meckern dass die "Enumeration" fehlgeschlagen ist.

Ich hab auch einen selbst-Bau-Board mit LPC2368 schon mal am PC dran 
gehabt, sollte gehen.

Siehe:
http://www.mikrocontroller.net/attachment/37050/Datenlogger.jpg
Ein kleines Schnittstellenwunder, mit nahezu allen Schnittstellen 
herausgeführt (2 CAN, 4 UART (V24/RS485/LIN), MMC/SD, TCP, USB, 
I2C(EEPROM), SPI(LCD), RTC, IOs+Treiber, JTAG), auf einer einseitig 
bestückten Platine. Man könnte da so ziemlich alles anschließen und als 
Webserver laufen lassen.
OP #1082543
Lesenswert?

Frank N. wrote:
> Und? Erfolg?

Teilweise!
Also der PC erkennt nun, dank dem 1k5 Widerstand gegen 3V, das was 
eingesteckt ist. Das geht. Soweit passt das.

Nur die Enumeration geht leider nicht. Also er erkennt den Controller 
nicht. Aber das dann wohl ein Problem der Leitungssignale.
OP #1082545
Lesenswert?

Markus wrote:
> Selbst wenn man nur 1,5K von D+ auf 3,3V legen würde und sonst kein
> einziges Bauteil dran hat, dann würde Windows versuchen was zu
> installieren und meckern dass die "Enumeration" fehlgeschlagen ist.
>
> Ich hab auch einen selbst-Bau-Board mit LPC2368 schon mal am PC dran
> gehabt, sollte gehen.
>
> Siehe:
> http://www.mikrocontroller.net/attachment/37050/Datenlogger.jpg
> Ein kleines Schnittstellenwunder, mit nahezu allen Schnittstellen
> herausgeführt (2 CAN, 4 UART (V24/RS485/LIN), MMC/SD, TCP, USB,
> I2C(EEPROM), SPI(LCD), RTC, IOs+Treiber, JTAG), auf einer einseitig
> bestückten Platine. Man könnte da so ziemlich alles anschließen und als
> Webserver laufen lassen.

Cooles Teil !
Schön kompakt. Aber ich soll/darf leider kein SMD verwenden. :'(
Gast #1082919
Lesenswert?

Damit meine Platine relativ einfach "Herstellbar" ist, hab ich auch nur 
0805 als kleinstes Bauteil verwendet, bis auf ein paar BAS516, die lind 
kleiner...

Falls da noch mehr rein muss, müsste ich auf 0603 umbauen.

Aber das Herstellen von SMD ist doch viel günstiger, selbst auch beim 
Hand-Löten ist es schneller, da nicht erst das Bauteil gebogen und durch 
das Loch gestopft werden muss, und dann noch den Rest Draht abzwicken.

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