Forum: Mikrocontroller und Digitale Elektronik USB-ARM Anbindung geht auf eigener Platine nicht


von D. S. (forack)


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ß

von ARM-Fan (Gast)


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?

von Markus (Gast)


Lesenswert?

Wenn am PC nix geht, also rein gar nichts, dann fehlt der 1K5 Pull-Up 
bei D+ auf 3,3V.

von D. S. (forack)


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ß

von D. S. (forack)


Lesenswert?

Markus wrote:
> Wenn am PC nix geht, also rein gar nichts, dann fehlt der 1K5 Pull-Up
> bei D+ auf 3,3V.

Ach ehrlich?
Dachte den braucht man nur in Verbindung mit Soft Connect.

gruß

von ARM-Fan (Gast)


Lesenswert?

>Ach ehrlich?
>Dachte den braucht man nur in Verbindung mit Soft Connect.

Nein, der Widerstand sagt dem PC, DASS und WAS drangesteckt wird
und ist notwendig.

Schau mal hier: http://www.beyondlogic.org/usbnutshell/usb2.htm

von D. S. (forack)


Lesenswert?

ARM-Fan wrote:
>>Ach ehrlich?
>>Dachte den braucht man nur in Verbindung mit Soft Connect.
>
> Nein, der Widerstand sagt dem PC, DASS und WAS drangesteckt wird
> und ist notwendig.
>
> Schau mal hier: http://www.beyondlogic.org/usbnutshell/usb2.htm

ah korrekt!

Dann teste ich das morgen gleich mal aus .....

von Markus (Gast)


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.

von Frank N. (arm-fan)


Lesenswert?

Und? Erfolg?

von D. S. (forack)


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.

von D. S. (forack)


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. :'(

von Frank N. (arm-fan)


Lesenswert?

>Aber ich soll/darf leider kein SMD verwenden. :'(

Einen ARM im QFP und kein SMD drumherum? Wo ist da der Sinn?

von D. S. (forack)


Lesenswert?

Frank N. wrote:
>>Aber ich soll/darf leider kein SMD verwenden. :'(
>
> Einen ARM im QFP und kein SMD drumherum? Wo ist da der Sinn?

Kompatibilität. Kompaktheit war net gefordert.

von D. S. (forack)


Lesenswert?

& natürlich Kosten ....

von D. S. (forack)


Lesenswert?

Hi!

Jetzt funktioniert auch die Enumeration & mein Controller wird am PC 
erkannt.

Danke!

von Markus (Gast)


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.

von Dieter S. (Gast)


Lesenswert?

Jo.

Nur sind mir im Bezug auf SMD oder THT die Hände gebunden.

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.