Hallo, habe angehängte Schaltung nachgebaut. Funktioniert auch soweit, jedoch nur, wenn ich sie an meinen Monitor, sprich an einen Hub hänge. An allen anderen Ports direkt am PC kommt die Meldung, dass das Gerät nicht erkannt wird. Im Gerätemanager dann als "Unknown Device" zu finden. Treiber lassen sich auch nicht installieren. Jetzt weiß ich nicht, ob ich beim zusammenbauen was falsch gemacht habe, oder ob dies ein Softwareproblem ist. Kann mir evtl. jemand helfen? Den Code gibt es übrigens hier: http://mdiy.pl/wp-content/uploads/2009/03/lcd2usb-th.zip
Der V-Usb Stack ist nicht 100% USB konform und liefert nur Low-Speed. Wenn deine Hw im PC da nicht mitmacht dann geht es direkt am PC nicht. Der Hub wandelt vor dem verschicken den Datenstrom um. Häufige Ursachen sind: Am USB 3.0 Port gesteckt (USB 3.0 kann offiziel kein Low-Speed) Signalpegel zu hoch (die Z-Dioden sind ein kruder Weg um die Pegel anzupassen) Kapazität der Dioden zu hoch (würde mich hier aber wundern, mit hub geht es ja schließlich). Checkt halt mal ob ein anderer Port am pc geht....
Habe alle durch. Teilweise kommt gar keine Meldung, dass überhaupt etwas angeschlossen wurde (USB 2.0 Port). Die 3er habe ich erst gar nicht getestet. Das komische ist, dass die Version von Till Harbaum (http://www.harbaum.org/till/lcd2usb/index.shtml) funktioniert. Davon habe ich mir mal vor einiger Zeit eine fertige Platine gekauft. Ich war nur "zu faul" diese nachzubauen, da der Schaltplan so unübersichtlich war ;-) Tja...
Was für ein OS hast du denn am PC ? Was für Z-Dioden verwendest du ? mach vlt. mal ein foto von deiner platine
Mit Windows kenn ich mich leider USB-technisch nicht aus (unter Linux kann man sehr gut die genauen Fehler im USB sehen). Ich könnte mir aber vorstellen, dass dein Aufbau EMV technisch suboptimal ist. Der Hub wird das ganze halt etwas lockerer sehen als der PC. Das ausbleiben der Meldung dass überhaupt ein USB-Gerät angesteckt wurde klingt so als würde auf niedrigster Ebene etwas schief gehen (Windows "klingelt" meines Wissens in dem Moment in dem ein Pullup am USB auftaucht). Selbst wenn dein AVR also leer (oder sogar rausgezogen) ist müsste es immernoch ein "defektes Gerät" erkennen (zumindest wars unter XP vor langer Zeit so). Es wird also deine Hw sein (und zwar zwischen dem µC und der USB-Buchse).
Was kann denn da falsch sein, wenn es via Hub geht? Linux läuft übrigens auf dem Laptop:
1 | [ 5908.024061] usb 4-1: new low-speed USB device number 2 using uhci_hcd |
2 | [ 5908.152057] usb 4-1: device descriptor read/64, error -71 |
3 | [ 5908.588058] usb 4-1: device descriptor read/64, error -84 |
4 | [ 5908.804066] usb 4-1: new low-speed USB device number 3 using uhci_hcd |
5 | [ 5908.928067] usb 4-1: device descriptor read/64, error -71 |
6 | [ 5909.156060] usb 4-1: device descriptor read/64, error -84 |
7 | [ 5909.372069] usb 4-1: new low-speed USB device number 4 using uhci_hcd |
8 | [ 5909.784040] usb 4-1: device not accepting address 4, error -71 |
9 | [ 5909.896058] usb 4-1: new low-speed USB device number 5 using uhci_hcd |
10 | [ 5910.308203] usb 4-1: device not accepting address 5, error -71 |
11 | [ 5910.308229] hub 4-0:1.0: unable to enumerate USB device on port 1 |
Diese Fehler bedeuten, dass die Kommunikation zwar teilweise Funktioniert (sonst gäbe es nur "device not accepting adress" oder garnichts) aber immerwieder abreisst. Die häufigste Ursache dafür ist, dass die USB-Signale vom µC zum PC gestört werden. Entweder durch unsaubere Verkabelung oder falsche Bauteilwerte. Ich hatte das auch schonmal mit einem µC auf einem Breadboard (das ist an sich schon ne dumme Idee, aber mein Lötkolben war kaputt), da haben die Federn den Quarz so weit kapazitiv belastet, dass er abgedriftet ist und die Kommunikation aus dem Takt kam. Also check vlt. auch mal ob deine Caps am Quarz zum Quarz passen. Dass es mit dem Hub geht wird daran liegen, dass der halt nicht ganz so "strenge" Signalvorgaben haben wird wie der PC. Eine weitere Möglichkeit wäre eine schlechte Lötstelle oder ein kurzer auf der Platine. Der Hub im Monitor wird ein eigenes Nt haben und das evtl. besser abkönnen als der PC. Hier hilft ein nachmessen des Stromverbrauchs und der Spannung auf der Platine (speziell am µC).
:
Bearbeitet durch User
Danke erst mal für die ausführliche Hilfe! Werde mir dann mal mein Multimeter schnappen, und versuchen den/die Fehler zu finden.
Basti, wenn du VUSB einsetzen willst, sehe dir einmal http://matrixstorm.com/avr/tinyusbboard/ an. Hat den Vorteil, das die Beispielsoftwares / Bootloader getestet sind. Wenn es dann nicht geht, liegt es an deinem Aufbau. Funktioniert der Rest, und nur deine Software nicht - ist es ein Programmierproblem.... MfG
>Das komische ist, dass die Version von Till Harbaum >funktioniert. Der hat ja auch AGND an GND angeschlossen.
Ein Programmierproblem ist es nicht. Habe den Mega eben in mein STK500 gepackt und bin dann auf einen gebastelten USB Adapter gegangen; wurde direkt als LCD2USB Device erkannt. Leider habe ich kein Oszilloskop um den Quarz zu testen. Gibt es da andere Möglichkeiten? Am Mega messe ich übrigens 6.8V, wenn er am USB Port hängt. Scheint mir dann doch etwas viel...
Basti schrieb: > Am Mega messe ich übrigens 6.8V, wenn er am USB Port hängt. > Scheint mir dann doch etwas viel... Das ist definitiv nicht normal.... Am Hub oder am PC ? Wenn es der Hub ist, dann ist das Netzteil Billigschrott, wenn es der PC ist würde ich das Nt checken, das darf nicht sein...
Schon gut. Das super Voltcraft Multimeter scheint defekt zu sein. Am Labornetzteil messe ich bei eingestellten 5.0V 6.7V. Wie war das nochmal? Wer billig kauft, kauft zwei mal....?
Basti schrieb: > Schon gut. > Das super Voltcraft Multimeter scheint defekt zu sein. > Am Labornetzteil messe ich bei eingestellten 5.0V 6.7V. > Wie war das nochmal? > Wer billig kauft, kauft zwei mal....? Ach, woher kommt mir das nur bekannt vor? Ah ja, Beitrag "Wer billig kauft, kauft teuer"
@Basti Vielleicht geht die Batterie in dem Multimeter zur Neige, dann werden auch lustige Werte gemessen.... MfG Paul
Wenn du da mal nicht schneller ans Ziel kommst, wenn du dir ein AtmegaU2 Breakout Board kaufst.
Kein Name schrieb: > Wenn du da mal nicht schneller ans Ziel kommst, wenn du dir ein > AtmegaU2 > Breakout Board kaufst. Dann kann er noch den ganzen Code dafür schreiben. Hier hat er ja ein eigentlich fertige Projekt genommen und statt ätzen auf Lochraster gebaut.
Paul hatte Recht. Batterien waren leer. Nur bin ich immer noch nicht weiter. Kurzschlüsse kann ich nicht finden und die Spannungen stimmen auch (jeweils 5V an VCC, AVCC und AREF). Ich habe auch, anders als im Schaltplan, AGND an GND angeschlossen. Es ist definitiv ein Hardwareproblem, da der gleiche Chip im STK500 vom PC direkt erkannt wird. Ich kann nur leider nicht nachvollziehen, was ich falsch gemacht habe. Bin alle Leiterwege durchgegangen/durchgepiepst und habe nach Kurzschlüssen gesucht. Und wenn es Kurzschlüsse geben sollte, müsste es dann nicht auch mit USB Hub nicht funktionieren?
Basti frug: >Und wenn es Kurzschlüsse geben sollte, müsste es dann nicht auch mit USB >Hub nicht funktionieren? Hm, ist das denn ein Hub mit eigenem Netzteil? Der würde dann eventuell "stromergiebiger" sein, als die USB-Schnittstellen im Rechner selbst. Das wäre eine Erklärung für den Effekt. Hast Du die Hintergrundbeleuchtung des LCD "angeklemmt"? Es wäre da einen Versuch wert, die mal abzumachen und zu sehen, ob durch die dann verminderte Stromaufnahme das Gerät in Gang zu bringen ist. MfG Paul
Ich klemme das Teil momentan komplett ohne Display an. An der Stromversorgung kann es also nicht liegen.
Was für ein ATmega8 ist das? Läuft der überhaupt bei 12 MHz? Braucht der 5 Volt oder doch nur 3.3 V?
Was hätte das denn damit zu tun, dass die Schaltung mit USB Hub funktioniert, aber ohne nicht?
Der 1.5K - Widerstand ist falsch. Es sollten 1.5K *gegen 3.3V* sein, du schaltest den direkt gegen die 5V vom USB. => versuch an der Stelle mal 2.2K. Das könnte erklären, warum's am HUB geht (zuviel Strom in D-? egal!...) und am PC nicht.
Das "USB Interface", welches ich mir gebastelt habe, um das STK500 mit USB zu verbinden, hat exakt die gleiche Schaltung wie im Ausgangspost (der komplette Teil oben links). Also auch dort habe ich den 1.5K Widerstand verwendet. Aber ich werde das morgen trotzdem mal testen.
HUBble schrieb: > Der 1.5K - Widerstand ist falsch. > > Es sollten 1.5K *gegen 3.3V* sein, du schaltest den direkt gegen die 5V > vom USB. > => versuch an der Stelle mal 2.2K. > > Das könnte erklären, warum's am HUB geht (zuviel Strom in D-? egal!...) > und am PC nicht. Das ist IMHO quatsch! Der Widerstand dient nur als Strombegrenzer, damit die Zener-Diode nicht ueberlasten. Letztere sind auch dafuer zustaendig die Spannung letztlich auf ca. 3.3V abzusenken. MfG
Stephan B. schrieb: > Der Widerstand dient nur als Strombegrenzer, damit die Zener-Diode nicht > ueberlasten. Nein. Das ist der Detection-Widerstand. Der Host erkennt an dem Stromfluss, der einem ziemlich exakt definiertem Wert entsprechen muss, dass ein Gerät angestöpselt wurde. Je nachdem ob der Strom in D+ oder D- fließt, ein Low-Speed oder schneller. Entweder in der SPEC zum nachlesen, oder leichter verständlich z.B. hier: http://www.beyondlogic.org/usbnutshell/usb2.shtml
Ich will ja nichts sagen, aber auf deiner verlinkten Seite wird immer ein 1.5K Widerstand verwendet.
HUBble schrieb: > Nein. Das ist der Detection-Widerstand. Ja, ein einfacher Pullup. Wenn der Host die Datenleitungen auf hochohm legt, erkennt er anhand welche Leitung "floated" und welche nicht, was fuer ein Standard anzuwenden ist. Dennoch ob 1.5k oder 2.2k - Wurst. Solange da bei hochohm 3.3V anliegen. MfG
:
Bearbeitet durch User
dYna schrieb: > Ich will ja nichts sagen, aber auf deiner verlinkten Seite wird immer > ein 1.5K Widerstand verwendet. GAH. Genau das sage ich doch. ABER: 1.5K GEGEN 3.3 V! NICHT GEGEN 5V. Junge. Es macht einen Unterschied, wo man das zweite Ende eines Widerstands anschließt. Wenn du das nicht glaubst, dann steck mal ein Ende vom Widerstand in die Steckdose.
HUBble schrieb: > GAH. Genau das sage ich doch. ABER: 1.5K GEGEN 3.3 V! NICHT GEGEN 5V. Argh, Junge(?) - Zenerdiode!! Solange die die Waerme wegdissipieren kann, faellt die Spannung auf 3.3V am entsprechenden Knoten!! Ist ja auch egal, ich werde mich deswegen wohl kaum mit dir aergern. Zu 99% Sicherheit (1%lasen wir mal sicherheitshalber als Fehlermarge), 2.2kOhm wird auch nix bringen... VUSB verwendet "offiziell" auch 1.5k bei 5V: http://vusb.wikidot.com/hardware MfG
:
Bearbeitet durch User
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.