ATtiny45 + VUSB -> gerät wird nicht erkannt

Gast #2092741
Lesenswert?

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.
Angehängte Dateien:
#2093006
Lesenswert?

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
Gast #2093007
Lesenswert?

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
#2097588
Lesenswert?

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

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