Forum: Mikrocontroller und Digitale Elektronik Problem mit LCD2USB Variante


von Basti (Gast)


Angehängte Dateien:

Lesenswert?

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

von Max D. (max_d)


Lesenswert?

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....

von Basti (Gast)


Lesenswert?

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...

von Max D. (max_d)


Lesenswert?

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

von Basti (Gast)


Angehängte Dateien:

Lesenswert?

Windows 7 64bit, 3.6V Zener Dioden von Reichelt (ZF 3,6).

von Max D. (max_d)


Lesenswert?

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).

von Basti (Gast)


Lesenswert?

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

von Max D. (max_d)


Lesenswert?

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
von Basti (Gast)


Lesenswert?

Danke erst mal für die ausführliche Hilfe!
Werde mir dann mal mein Multimeter schnappen, und versuchen den/die 
Fehler zu finden.

von Stephan B. (matrixstorm)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>Das komische ist, dass die Version von Till Harbaum
>funktioniert.

Der hat ja auch AGND an GND angeschlossen.

von Basti (Gast)


Lesenswert?

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...

von Max D. (max_d)


Lesenswert?

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...

von Basti (Gast)


Lesenswert?

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....?

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

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"

von Paul B. (paul_baumann)


Lesenswert?

@Basti
Vielleicht geht die Batterie in dem Multimeter zur Neige, dann werden
auch lustige Werte gemessen....

MfG Paul

von Kein Name (Gast)


Lesenswert?

Wenn du da mal nicht schneller ans Ziel kommst, wenn du dir ein AtmegaU2 
Breakout Board kaufst.

von Max D. (max_d)


Lesenswert?

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.

von Basti (Gast)


Lesenswert?

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?

von Paul Baumann (Gast)


Lesenswert?

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

von Basti (Gast)


Lesenswert?

Ich klemme das Teil momentan komplett ohne Display an.
An der Stromversorgung kann es also nicht liegen.

von Potter (Gast)


Lesenswert?

Was für ein ATmega8 ist das?
Läuft der überhaupt bei 12 MHz?
Braucht der 5 Volt oder doch nur 3.3 V?

von dYna (Gast)


Lesenswert?

Was hätte das denn damit zu tun, dass die Schaltung mit USB Hub 
funktioniert, aber ohne nicht?

von HUBble (Gast)


Lesenswert?

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.

von dYna (Gast)


Lesenswert?

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.

von Stephan B. (matrixstorm)


Lesenswert?

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

von HUBble (Gast)


Lesenswert?

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

von dYna (Gast)


Lesenswert?

Ich will ja nichts sagen, aber auf deiner verlinkten Seite wird immer 
ein 1.5K Widerstand verwendet.

von Stephan B. (matrixstorm)


Lesenswert?

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
von HUBble (Gast)


Lesenswert?

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.

von Stephan B. (matrixstorm)


Lesenswert?

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
von dYna (Gast)


Lesenswert?

Auch mit 2.2K Widerstand kein Unterschied.

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.