www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny45 + VUSB -> gerät wird nicht erkannt


Autor: tinyusb (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn der Powerswitch funktioniert?

Autor: Pascal H. (pase-h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ä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

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Verwirrter Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-du...
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

Autor: tinyusb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: tinyusb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du deine Schaltung mal aufzeichnen?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: tinyusb (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang die Schaltung. Mit dem eigentlichen Programm wird das gerät 
vom PC zumindest als "unbekannt" erkannt.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: tinyusb (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Reset ist doch direkt an VCC geklemmt? Bei einem anderen USB-Projekt hat 
dies auch super funktioniert (VCC und Reset an 3,3V).

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Projekt setzt 12MHz vorraus.


"usbconfig.h"
/* ---------------------------- Hardware Config ---------------------------- */

#define USB_CFG_IOPORTNAME      B
/* This is the port where the USB bus is connected. When you configure it to
 * "B", the registers PORTB, PINB and DDRB will be used.
 */
#define USB_CFG_DMINUS_BIT      0
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
 * This may be any bit in the port.
 */
#define USB_CFG_DPLUS_BIT       2
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
 * This may be any bit in the port. Please note that D+ must also be connected
 * to interrupt pin INT0!
 */
/* #define USB_CFG_CLOCK_KHZ       (F_CPU/1000) */
/* Clock rate of the AVR in MHz. Legal values are 12000, 16000 or 16500.
 * The 16.5 MHz version of the code requires no crystal, it tolerates +/- 1%
 * deviation from the nominal frequency. All other rates require a precision
 * of 2000 ppm and thus a crystal!
 * Default if not specified: 12 MHz
 */


"usbdrvasm.S"
;----------------------------------------------------------------------------
; Now include the clock rate specific code
;----------------------------------------------------------------------------

#ifndef USB_CFG_CLOCK_KHZ
#   define USB_CFG_CLOCK_KHZ 12000
#endif

#if USB_CFG_CLOCK_KHZ == 12000
#   include "usbdrvasm12.inc"
#elif USB_CFG_CLOCK_KHZ == 15000
#   include "usbdrvasm15.inc"
#elif USB_CFG_CLOCK_KHZ == 16000
#   include "usbdrvasm16.inc"
#elif USB_CFG_CLOCK_KHZ == 16500
#   include "usbdrvasm165.inc"
#else
#   error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
#endif



Mit der passenden Änderung läuft es mit PLL auf 16.5 MHz, sonst nicht. 
Das Ändern überlasse ich dir.

Gruß Skriptkiddy

Autor: tinyusb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt funktioniert es, das Gerät wird sofort erkannt. Vielen dank Skript 
Kiddy :) auch für deine Geduld, klasse :)

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.