Hallo, ich versuche, den USBaspLoader auf einem ATMEGA32 einzusetzen. Habe dazu eine Schaltung entworfen und aufgebaut (Foto). Ich arbeite mit dem AVR Studio 6 und bin zugegebenerweise noch ziemlich am Anfang. Die Hardware ist in Ordnung. Ein USB-Demo funktioniert bereits (Mauszeiger fährt herum). Der nächste Schritt soll der USBaspLoader sein. Den habe ich inzwischen mit dem AVR-Studio gebaut und übertragen. Jedoch bekomme ich unter Win nur die Meldung, dass er das USB-Device nicht erkennt (und zwar auch nur dann, wenn der Bootloader-Jumper gesetzt ist, was ja schon mal ein gutes Zeichen ist). Bei den USB-Devices wird dann nichts angezeigt. Unter Linux zeigt ein "lsusb" auch nichts. Deshalb vermute ich, dass es nicht am Windows-Treiber (von avrdude), sondern noch an irgendwelchen Einstellungen in der Firmware liegt. Unter Linux zeigt ein dmesg diese Zeilen: [ 7078.268078] usb 5-2: new low-speed USB device number 84 using ohci_hcd [ 7078.328087] hub 5-0:1.0: unable to enumerate USB device on port 2 [ 7079.236077] usb 5-2: new low-speed USB device number 85 using ohci_hcd [ 7079.296086] hub 5-0:1.0: unable to enumerate USB device on port 2 ... * Kann mir bitte jemand sagen, was Win, bzw Linux anzeigen müsste, für den Fall, dass die Firmware richtig läuft? * Ohne Treiber sollte Win trotzdem in der Device-Liste etwas Sinnvolles (zumindest eine Kennung?) anzeigen - oder täusche ich mich da? Beste Grüße PZ
Kenn Du google? Bei der Suche nach "dmesg usbasp" war das zweite Ergebnis:
1 | [ 2973.920042] usb 5-2: new low speed USB device using uhci_hcd and address 9 |
2 | [ 2974.092726] usb 5-2: configuration #1 chosen from 1 choice |
3 | [ 2976.392016] usb 5-1: new low speed USB device using uhci_hcd and address 10 |
4 | [ 2976.550363] usb 5-1: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt |
5 | [ 2976.550366] usb 5-1: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt |
6 | [ 2976.572165] usb 5-1: configuration #1 chosen from 1 choice |
7 | [ 2976.574545] cdc_acm 5-1:1.0: ttyACM1: USB ACM device |
Ohne Treiber müsste wenigstens die Device ID geloggt werden. Aber genau die kann Linux bei deinem Gerät nicht abfragen. Linux wertet es nicht als Fehler, wenn man ein USB Device ansteckt, für dass es keinen Treiber gibt. Viele Device (so auch der USBASP) werden ja ohne Treiber über die libusb angesprochen. Bei diesen Geräten weiss dann das Anwendungsprogramm (avrdude), wie sie funktionieren. Das dritte Goolgle Ergebnis beschreibt auch eine mögliche Lösung:
1 | Im günstigsten Fall reicht es aus den Programmer einfach an einem |
2 | anderen USB-Port oder über ein USB-Hub anzuschließen. |
3 | |
4 | Das Problem hängt übrigens mit den Z-Dioden zusammen, die den |
5 | Spannungspegel für die USB-Datenleitungen begrenzen bzw. anpassen |
6 | sollen. Während der Mikrocontroller mit einem 5V Pegel arbeitet, |
7 | darf der Pegel auf den USB-Datenleitungen höchstens 3,6 Volt betragen. |
8 | Die Z-Diode begrenzt zusammen mit dem Widerstand die Spannung an D+ |
9 | und D- auf max. 3,6 Volt. |
Hallo Peter. Zunaechst einmal: Unter https://github.com/baerwolf/USBaspLoader koennen Sie eine aktuelle Version von USBaspLoader beziehen. Falsche Installation von Zenerdioden ist ein moeglicher Fehler. Linux antwortet jedoch meistens darauf mit einem "can not unbounce"-Fehler. Ihr "unable to enumerate" kann auch mit einer falschen Einstellungen in der "firmware/bootloaderconfig.h" zu tun haben. Entweder wurden die falschen USB-Pins konfiguriert (PD2 und PD7?), oder moeglicherweise auch nur F_CPU (Taktfrequenz des CPU) falsch gesetzt, sodass die internen Timings nicht stimmen. MfG Stephan
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.