Hi, ich versuche auf einem ATTiny 2313 das HID-Data-Example aus dem VUSB-Paket zum laufen zu bekommen. Im Makefile habe ich den Controllertyp und die Taktfrequenz angepasst. Im USBConfig-Header ich die Pins für USB Data+ und Data- auf die passenden Werte gesetzt. Das ganze compiliert und lässt sich mit avrdude -b 1200 -c usbtiny -P usb -p attiny2313 -U flash:w:main.hex:i -U hfuse:w:0xdf:m -U lfuse:w:0xff:m auch erfolgreich flashen. Wenn ich das Gerät aber anschließend per USB verbinde, wird es nicht erkannt. Hat jemand eine Idee, was ich noch übersehen haben könnte?
SevenEleven schrieb: > Hat jemand eine Idee, was ich noch übersehen haben könnte? Da hilft ein Schaltplan. Wenn du den 1k5 von USB Data- gegen Vcc geschaltet hast, sollte zumindest die Präsenz eines USB Gerätes vom Rechner gemeldet werden. Liegt USB Data- auf einem Interrupt-fähigen Pin? Schwingt der Quarz? Welche Frequenz hast du gewählt? Welche Dataleitung Lösung hast du gewählt (entweder den Tiny mit 3V3 powern oder Zenerdioden in den USB Leitungen)
Die Hardware halte ich für unverdächtig, da die nicht von mir ist: http://dokuwiki.ehajo.de/_media/bausaetze:usba-isp.pdf Mein Verdacht ist her, dass ich softwareseitig noch irgendwas vergeigt habe, was eine USB-Kommunikation verhindert?
Matthias Sch. schrieb: > Da hilft ein Schaltplan. Wenn du den 1k5 von USB Data- gegen Vcc > geschaltet hast, sollte zumindest die Präsenz eines USB Gerätes vom > Rechner gemeldet werden. Und? Wird da was gemeldet? R3 ist mit 2k2 eigentlich ausserhalb der Specs. Wird PD4 von dir auch High angesteuert? (Software USB-Reset)
Matthias Sch. schrieb: > R3 ist mit 2k2 eigentlich ausserhalb der Specs. Wie die ganze Konstruktion, denn LowSpeed-Geräte haben eigentlich mit 3.3V zu laufen. Die Dimensionierung des Widerstands ist nur die logische Konsequenz aus dem 5V-Betrieb. Kurzfassung: Das paßt schon so wie angegeben.
SevenEleven schrieb: > Mein Verdacht ist her, dass ich softwareseitig noch irgendwas vergeigt > habe, was eine USB-Kommunikation verhindert? Das ist natürlich möglich, aber du solltest trotzdem am Computer die Meldung bekommen, daß ein neues USB-Gerät entdeckt wurde. Passiert das nicht, fehlt definitiv mindestens die Ansteuerung des Pins, an dem der 2.2k-Widerstand hängt. Also entweder paßt die reale Pin-Belegung nicht zu der im Programm deklarierten oder das Program läuft erst garnicht oder da ist eine Macke in der Verdrahtung.
Die Pinbelegung sollte eigentlich passen, da habe ich 2 und 3 angegeben, was lt. Schaltplan auch richtig ist. Ob das Programm läuft, weiß ich nicht mit Sicherheit, aber was mir noch eingefallen ist: ich habe in der USB-Config USB_CFG_VENDOR_NAME und USB_CFG_DEVICE_NAME geändert. USB_CFG_VENDOR_NAME_LEN und USB_CFG_DEVICE_NAME_LEN habe ich angepasst, die sind jetzt aber länger als 8 Zeichen - kann das Probleme machen?
Dir wurde das jetzt schon mehrmals gesgat, aber das ignorierste ja fleißig: Schaltest du PD4 auf Ausgang und HIGH? Sind die Fuses auch auf das externe 12MHz Quarz eingestellt? Zudem probiert man Code erstmal unverändert aus um zu prüfen ob die Hardware läuft, dann kann man an dne IDs fummeln.
Matthias Sch. schrieb: > R3 ist mit 2k2 eigentlich ausserhalb der Specs. Der Detection-Widerstand soll 1k5 gegen *3.3V* haben. Der AVR in der Schaltung läuft direkt mit Vusb, also so 4…5V. die 2k2 sind deshalb näher an der Spec als es 1k5 wären... Alles in allem läuft VUSB aber oft recht unzuverlässig. Versuch mal einen Hub dazwischezuschalten, oder die beiden D+/D- Z-Dioden einzusparen, gffs. dann den AVR mit weniger Spannung betreiben. So ist zwar der AVR selber aus seiner Spec (leicht übertaktet), dafür aber das USB-Interface näher an seiner...
:
Bearbeitet durch User
Martin Wende schrieb: > Dir wurde das jetzt schon mehrmals gesgat, aber das ignorierste ja > fleißig: > Schaltest du PD4 auf Ausgang und HIGH? Nö, ich hab's schlichweg überlesen - sorry! Ehrliche Antwort: keine Ahnung. Ich verwende exakt den Code von https://github.com/obdev/v-usb/blob/master/examples/hid-data/firmware/main.c und gehe einfach mal davon aus, dass der passt!? > Sind die Fuses auch auf das externe 12MHz Quarz eingestellt? Mit "-U hfuse:w:0xdf:m -U lfuse:w:0xff:m" so weit ich das sehe: ja. > Zudem probiert man Code erstmal unverändert aus um zu prüfen ob die > Hardware läuft, dann kann man an dne IDs fummeln. Ja, ich weiß schäm Ich habe die IDs halt für unkritischen Pipifax gehalten :-]
Εrnst B✶ schrieb: > Versuch mal einen Hub dazwischezuschalten, oder die beiden D+/D- > Z-Dioden einzusparen, gffs. dann den AVR mit weniger Spannung betreiben. > So ist zwar der AVR selber aus seiner Spec (leicht übertaktet), dafür > aber das USB-Interface näher an seiner... Eine Lösung mit Änderungen an der Hardware kommt leider nicht in Frage, da die laut Vorgabe unverändert bleiben muss...
Εrnst B✶ schrieb: > Alles in allem läuft VUSB aber oft recht unzuverlässig. Nur die Sparlösung mit 12MHz. Ab 18MHz ist eine vollständige Prüfung aller prüfbaren Sachen möglich. Und dann lauft das Ding auch bei schlechter Kabelage und miesen Hubs stabil. > So ist zwar der AVR selber aus seiner Spec (leicht übertaktet) Leicht? 50%! Das ist nicht "leicht".
c-hater schrieb: > Leicht? 50%! Das ist nicht "leicht". Wie kommst du auf 50% ? Der ATtiny2313 läuft laut Datenblatt-Übersicht ab 2.7V mit 10MHz. 12 statt 10 MHz ist "leicht übertaktet". Vor allem da wir mit so 3.3 … 3.6V ja noch ein gutes Stück von den 2.7V weg sind. Laut dem VCC vs Freq. Diagramm schaut das sogar völlig "legal" aus. Genau kann man's da aber nicht ablesen, wirkt aber so, als könnte man linear zw. 2.7V und 4.5V interpolieren.
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.