ATtiny45 + VUSB -> unable to enumerate USB device

#2523072
Lesenswert?

Hallo,

versuche einen USB-UART Umsetzer mit einem Attiny85 ohne Kristall zu 
realisieren.

Nach langem herumprobieren ohne Reaktion auf dem Computer habe ich 
diesen Thread gefunden:
Beitrag "ATtiny45 + VUSB -> gerät wird nicht erkannt"

Habe dann die Schaltung nachgebaut, die dort als Schematic gepostet ist, 
und die dortige Software kompiliert (scriptkiddy hat ja festgestellt, 
dass eine Zeile in usbconfig.h einkommentiert werden muss; usbdrvasm.S 
habe ich nicht veraendert).

Geflasht, und der Aufbau ruft jetzt wenigstens eine Reaktion am Computer 
hervor. Allerdings bekomme ich so etwas:
1
$ dmesg 
2
[20736.888061] usb 5-1: new low speed USB device number 31 using ohci_hcd
3
[20737.028065] usb 5-1: device descriptor read/64, error -62
4
[20737.272097] usb 5-1: device descriptor read/64, error -62
5
[20737.512081] usb 5-1: new low speed USB device number 32 using ohci_hcd
6
[20737.652206] usb 5-1: device descriptor read/64, error -62
7
[20737.900072] usb 5-1: device descriptor read/64, error -62
8
[20738.140113] usb 5-1: new low speed USB device number 33 using ohci_hcd
9
[20738.548047] usb 5-1: device not accepting address 33, error -62
10
[20738.604087] hub 5-0:1.0: unable to enumerate USB device on port 1

Kann jemand an dem Aufbau einen Fehler erkennen? Kabel ist nur ~10 cm 
kurz. Windows funktioniert das Geraet auch nicht. Habe drei verschiedene 
Computer versucht.
Angehängte Dateien:
(Firma: matzetronics) #2523222
Lesenswert?

Marek S. schrieb:
> [20738.140113] usb 5-1: new low speed USB device number 33 using ohci_hcd

Wie schon mal erwähnt, bedeutet das nur, das der 1k5 pullup Widerstand 
am USB gefunden wurde.
Wenn du wirklich die Quarzlose Version von V-USB zum Laufen bekommen 
willst, musst du zwingend die 16,5 Mhz Variante wählen und auch den 
Autocalibration Code in dein Projekt einbauen und starten.
Ich habe mich wirklich viel mit V-USB beschäftigt und dabei für mich 
hearausgefunden, das die ohne-Quarz Variante nicht wirklich zuverlässig 
funktioniert, vor allem, wenn dann auch noch die 2-Dioden 
Spannungsversorgung benutzt wird. Mal gings, aber meistens nicht. 
Deswegen benutze ich für meine Tinys einen externen 16Mhz Oszillator und 
damit läufts richtig gut und zuverlässig. Externen Oszillator, weil ich 
damit nur einen Pin verbrate. Wenn beide Portpins noch frei sind, 
kannste auch einen normalen Quarz nehmen. Übrigens sind 16,5 Mhz und 3,3 
Volt Versorgung bei den meisten AVRs im grenzwertigen Bereich.
#2523258
Lesenswert?

Andreas B. schrieb:
> Was für ein Clock hast du gewählt?
16,5 MHz
> Bei V-USB den gleichen Clock eingestellt?
Im Makefile steht "-DF_CPU=16500000UL" (genau der gleiche Makefile, wie 
in dem .zip aus dem am Anfang erwaehnten Thread)
http://www.mikrocontroller.net/attachment/103732/USB-Controll.zip


Matthias Sch. schrieb:
> Übrigens sind 16,5 Mhz und 3,3
> Volt Versorgung bei den meisten AVRs im grenzwertigen Bereich.
Sind 3,3V (2 Dioden) und ein externer 16MHz Quartz (+2x 22pF) auch 
grenzwertig? Oder stabil?
(Firma: matzetronics) #2523280
Lesenswert?

Marek S. schrieb:
> Sind 3,3V (2 Dioden) und ein externer 16MHz Quartz (+2x 22pF) auch
> grenzwertig? Oder stabil?

Es geht um die Grafik 'Safe Operating Area' auf Seite 168 des 
ATTiny25/45/85 Datenblattes . Die Grafik ist nicht wirklich genau, aber 
man kann sehen , das 20Mhz erst ab 4,5 Volt Vcc 'Safe' sind. 16,5 Mhz 
und 3,3 Volt muss man mal abmessen, sind aber hart an der Grenze der 
'Safe Operation'

Ob Quarz oder PLL spielt dabei erstmal keine Rolle, mit ein bisschen 
Pech arbeitet die PLL aber nicht genau genug. Quarz ist auf jeden Fall 
die beste Lösung für ein USB Device, vor allem, wenns an mehreren 
Rechnern laufen soll. Meine Projekte jedenfalls laufen an diversen Macs, 
Windoof Grotten und Linuxboxen.
http://www.schoeldgen.de/avr/
Und ja, UL steht für unsigned long und ist da richtig.
#2523291
Lesenswert?

Ich koennte den uC mit 5 Volt betreiben, aber ich habe keine 3,6 oder 
3,3 V Z-Dioden hier (um die Datenleitungen runterzuziehen).

http://www.rn-wissen.de/index.php/V-USB:_Ein_Firmware_USB-Treiber_für_AVR
Pullup sollte dann 2k2 sein.

In dem verlinkten Wiki steht "Es werden 3,6V Low-Power Zenerdioden (wie 
1N4148, 500mW oder weniger) empfohlen, ...".
Aber 1N4148 ist doch keine 3,6 V Zenerdiode?
(Firma: matzetronics) #2523317
Lesenswert?

Nein Opfer, es gibt nur unterschiedliche Methoden bei V-USB, um die für 
USB notwendigen 3,3 Volt auf den Datenleitungen zu erzeugen. Beide 
werden bei obdev.at beschrieben.
Die eine Methode ist, den MC über zwei Si-Dioden aus den 5Volt des USB 
zu betreiben, gibt, wie du weisst, so ca 3,4-3,6 Volt. In dem Fall 
werden die USB Datenleitungen direkt an den MC angeschlossen.
Die andere Methode ist, den MC direkt mit den 5 Volt zu speisen und die 
Datenleitungen per Widerstand und 3,6 Volt Zenerdioden auf den Pegel zu 
drücken.
#2523397
Lesenswert?

Werde das mal ruhen lassen bis ich mir irgendwo 3,6 V Zenerdioden 
besorgt habe. Und probiere das ganze dann mit +5V.

Alternative waere ein AtMega32u2 mit integriertem USB. 3,40 Euro bei R. 
Dann haette ich das Interface, das auf den Arduino's realisiert ist. 
Aber Tiny ist eigentlich genug fuer mich.
(Firma: matzetronics) #2523688
Lesenswert?

Marek S. schrieb:
> Werde das mal ruhen lassen bis ich mir irgendwo 3,6 V Zenerdioden
> besorgt habe. Und probiere das ganze dann mit +5V.

Die dritte lösung ist übrigens vermutlich die beste: Speise den Tiny mit 
einem 3,3 Volt LowDrop Regler, dann ist er stabil und braucht gar kein 
Gedöns in den USB Leitungen. Allerdings ist er immer noch am Rande der 
'Safe Operating Area'. Da die Arduinos aber genauso laufen, stellt das 
vermutlich das kleinere Problem dar.
(Firma: matzetronics) #2524192
Lesenswert?

Die meisten Dreibein Regler ( und der LM317 ist da keine Ausnahme) 
benötigen allerdings eine grössere Spannung zwischen Ein- und Ausgang 
als 5 Volt auf 3,3 Volt, deswegen mein Rat mit dem LowDrop Regler. Die 
gibt es übrigens auch als SMD...
Labornetzteil geht natürlich, nur speise die 5 Volt nicht in den Rechner 
zurück, hehehe.
#2524269
Lesenswert?

Hilft nicht.
Habe mit einem Labornetzteil 3,3 und 3,6 V versucht (VCC vom USB nicht 
angeschlossen), aber wird immer noch nicht erkannt.
Mit einem Oszi sehe ich, dass ueber die Leitungen Digitalsignale 
versendet werden mit ~3,5V Amplitude (alle 10 sekunden).
VCC pendelt um die 50 mV.

Hat jemand ein fertig kompiliertes .hex und einen dazugehoerigen 
Schaltplan rumliegen, das mit einem Attiny85 funktioniert?

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