Hallo ich möchte einen ATtiny45 per PC mittels V-USB steuern, aber das Gerät wird nicht erkannt. Es kommt die standard-windows-fehlermeldung und auch mittels libusb bekomme ich nur ein unbekanntes gerät ohne VID oder PID angezeigt. Hardwaremäßig sollte alles ok sein, ich messe 5V am USB-anschluss (ohne HUB direkt am pc) und ca 3,5V hinter den Dioden. Die Datenleitungen sind mit jeweils 68ohm angeschlossen, und das D- kabel ist mit 2 * 3k = 1,5k an die 3,5V angeschlossen. Auf dem Bild ist RESET nicht angeschlossen, aber in der originalschalten ist er an 3,5V gelegt. Der Quellcode ist im wesentlichen vom "PowerSwitch" kopiert.
tinyusb schrieb: > Der Quellcode ist im wesentlichen vom "PowerSwitch" kopiert. Das im Anhang ist doch nicht der gesamte Code, oder? Wenn ja, dann fehlen da aber noch ungefähr 97%. mfg.
Ähm, wo ist denn der Quarz? Man MUSS einen 12Mhz Quarz verwenden, wegen des USB. Ich habs jetzt gerade nicht im Kopf, aber soweit ich weiß gibt es keinen Attiny/Mega mit 12Mhz internem Takt. Mfg
Pascal Haury schrieb: > Ähm, wo ist denn der Quarz? Man MUSS einen 12Mhz Quarz verwenden, wegen > des USB. Muss man nicht zwingend. Man kann beim ATtiny45 auch den internen RC-Oszillator mit PLL verwenden und anhand der USB-Frame-Länge auf 16,5 MHz kallibrieren. Dieses Referenzprojekt [1] von obdev.at macht das so. [1] http://www.obdev.at/products/vusb/easylogger.html Gruß Skriptkiddy
Pascal Haury schrieb: > Ähm, wo ist denn der Quarz? Man MUSS einen 12Mhz Quarz verwenden, wegen > des USB. Ich habs jetzt gerade nicht im Kopf, aber soweit ich weiß gibt > es keinen Attiny/Mega mit 12Mhz internem Takt. Nicht zwingend. Man kann über den PLL Takt auf 16.5 mhz gehen. Siehe: http://yveslebrac.blogspot.com/2008/10/cheapest-dual-trace-scope-in-galaxy.html Welcher Takt beim TO verwendet wird, wird natürlich trotzdem nirgendwo erwähnt. Mir fehlen vor allem auch ein paar Kondensatoren auf dem Bild. Ich bin mir auch nicht sicher, ob ein Steckbrett für USB so geeignet ist. Ciao, VA
der tiny läuft mit interner PLL auf 16,5mhz, synchronisiert durch die USB. minus-bit ist 0, plus-bit ist 2. Sonst hab ich an der config.h nichts geändert (außer dem namen)
Ich habe jetzt ein paar kerkos dazugefügt, ändert aber nichts. Habe außerdem ein funktionierendes VUSB programm draufgeflasht, aber der PC erkennt garnichts, keine Meldung etc.
Der Computer macht schon ne Meldung, wenn man einen 1.5k Widerstand von D- oder D+ an 3.3V hängt. Also wenn bei dir garnix passiert, hast du keine Verbindung zum Computer.
Im Anhang die Schaltung. Mit dem eigentlichen Programm wird das gerät vom PC zumindest als "unbekannt" erkannt.
Super. Der Schaltplan ist jetzt schon mal da. Dort vermisse übrigens den Pullup an Reset. Wenn du jetzt auch noch ein Projekt schnüren und es posten würdest, dann könnte ich es hier auf meiner Hardware mal testen. Gruß Skriptkiddy
Reset ist doch direkt an VCC geklemmt? Bei einem anderen USB-Projekt hat dies auch super funktioniert (VCC und Reset an 3,3V).
Dein Projekt setzt 12MHz vorraus. "usbconfig.h"
1 | /* ---------------------------- Hardware Config ---------------------------- */
|
2 | |
3 | #define USB_CFG_IOPORTNAME B
|
4 | /* This is the port where the USB bus is connected. When you configure it to
|
5 | * "B", the registers PORTB, PINB and DDRB will be used.
|
6 | */
|
7 | #define USB_CFG_DMINUS_BIT 0
|
8 | /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
|
9 | * This may be any bit in the port.
|
10 | */
|
11 | #define USB_CFG_DPLUS_BIT 2
|
12 | /* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
|
13 | * This may be any bit in the port. Please note that D+ must also be connected
|
14 | * to interrupt pin INT0!
|
15 | */
|
16 | /* #define USB_CFG_CLOCK_KHZ (F_CPU/1000) */
|
17 | /* Clock rate of the AVR in MHz. Legal values are 12000, 16000 or 16500.
|
18 | * The 16.5 MHz version of the code requires no crystal, it tolerates +/- 1%
|
19 | * deviation from the nominal frequency. All other rates require a precision
|
20 | * of 2000 ppm and thus a crystal!
|
21 | * Default if not specified: 12 MHz
|
22 | */
|
"usbdrvasm.S"
1 | ;---------------------------------------------------------------------------- |
2 | ; Now include the clock rate specific code |
3 | ;---------------------------------------------------------------------------- |
4 | |
5 | #ifndef USB_CFG_CLOCK_KHZ
|
6 | # define USB_CFG_CLOCK_KHZ 12000
|
7 | #endif
|
8 | |
9 | #if USB_CFG_CLOCK_KHZ == 12000
|
10 | # include "usbdrvasm12.inc"
|
11 | #elif USB_CFG_CLOCK_KHZ == 15000
|
12 | # include "usbdrvasm15.inc"
|
13 | #elif USB_CFG_CLOCK_KHZ == 16000
|
14 | # include "usbdrvasm16.inc"
|
15 | #elif USB_CFG_CLOCK_KHZ == 16500
|
16 | # include "usbdrvasm165.inc"
|
17 | #else
|
18 | # error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
|
19 | #endif
|
Mit der passenden Änderung läuft es mit PLL auf 16.5 MHz, sonst nicht. Das Ändern überlasse ich dir. Gruß Skriptkiddy
Jetzt funktioniert es, das Gerät wird sofort erkannt. Vielen dank Skript Kiddy :) auch für deine Geduld, klasse :)
tinyusb schrieb: > Jetzt funktioniert es, das Gerät wird sofort erkannt. Vielen dank Skript > Kiddy :) auch für deine Geduld, klasse :) Kein Ding. Freut mich, dass es bei dir funktioniert. Gruß skriptkiddy
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.