Forum: Mikrocontroller und Digitale Elektronik ATMega32U2 als USB Maus


von Fabian S. (jacky2k)


Lesenswert?

Hallo,
ich versuche seit Tagen verzweifelt den ATMega32U2 zu überreden von 
Linux als USB Maus erkannt zu werden, jedoch hat Linux sich bislang von 
keiner meiner Firmware im geringsten beeindrucken lassen, sprich Linux 
merkt nicht mal, dass ich nen USB Gerät eingesteckt habe.
Ersteinmal eine Frage zu dem internen Regler. Soweit ich das verstanden 
habe hat der µC nen internen Regler, um die 3,3V für die USB 
Datenleitungen zu erzeugen. Da ich den mit 5V betreibe muss ich den also 
einschalten. Für den Regler hängt ja ein C am Pin UCAP. Müsste ich da 
nicht dann die 3,3V messen? Bei mir sind das etwas über 4V.
Wenn das so ok ist: Wie kann ich herausbekommen, ob der USB Teil im Chip 
noch lebt? Problem: Der wurde recht rabiat mit nem Heißluftfön (QFN 
Gehäuse) aufgelötet, kann gut sein, dass da was kaputt gegangen ist. 
Gibts da nen einfachen Test, um dem USB Modul ein Lebenszeichen zu 
entlocken?
Hat sonst noch jemand eine Idee? Ich habe es jetzt schon mit der Lib von 
Atmel und LUFA probiert, beide ohne Erfolg.
Was ich gemacht habe: Test der Datenleitungen auf richtige Polung, 22Ohm 
sind nun drin. Die Atmel lib habe ich komplett auseinander genommen, es 
scheint alles zu funktionieren, der ATMega wird jedoch nie angesprochen. 
Also usb_general_interrupt() wird nie aufgerufen, Is_usb_receive_setup() 
gibt immer false zurück. Es ist als wäre der Stecker nicht drin :-/
Bin für jeden Tipp dankbar!

Edit: Ich habe mich mal eben kurz mit dem Elektrischen USB beschäftigt 
und die Seite gefunden: http://www.usbmadesimple.co.uk/ums_3.htm
Unter "Line States" steht, dass das Device eine der beiden 
Datenleitungen mit 1.5k auf +3.3V zieht. Ich kann hier mit meinem Scope 
nichts dergleichen sehen. Hat das was zu bedeuten?

von Finsbury (Gast)


Lesenswert?

Im Datenblatt stehen ein paar Varianten, das ganze zu versorgen.
Ich habe dabei die Varianten Versorgung extern und Versorgung aus dem 
Port so zum laufen bekommen wie's da steht. Was dabei am UCAP liegt, 
weiß ich grad nicht und bin auch grad zu faul ins "Labor" zu watscheln.

Ursache des Problems mit den selben Symptomen wie bei dir war ganz banal 
eine "flatternde" RST-Leitung. Die ist irgendwo auf dem Weg zum 
ISP-Stecker nicht sichtbar nach Masse gekrochen und hat mich da tagelang 
wie'n Schwein ins Uhrwerk schauen lassen. Sporadische Abbrüche des 
Programmiervorganges, sporadisches (wenn überhaupt) Erkennen am 
USB-Port.

Das wirds zwar nicht sein, aber zieh mal irgendwas elektrisches in 
Betracht, denn einfach so nicht funktionieren ist mir bei U2s noch 
nicht untergekommen ;) das USB oder der Regler für D+/- muss nirgends 
eingeschalten werden.

Ansonsten irgendeinen Anhaltspunkt, dass er auch noch in vernünftigem 
Zustand ist? Herumgefust? (sollte nicht nötig sein) Bootloader noch der 
von Atmel?

von Fabian S. (jacky2k)


Lesenswert?

Bootloader? Was fürn Bootloader? Ich hab da einfach per ISP meine 
Firmware drauf geknallt. Und die Boot-Reset-Vector Fuse Bits sind auch 
nicht gesetzt.
Aber das wäre evtl. ne Variante, da den USB Bootloader drauf zu haun und 
zu schauen ob der rennt. Gibts da ne Anleitung wie ich den (wieder) 
drauf bekomme?

von Finsbury (Gast)


Lesenswert?

Schau mal mit der Forum-Suche. Die Sache mit einem weggebrannten 
Bootloader gabs schon mal.

von Fabian S. (jacky2k)


Lesenswert?

Müsste das denn nicht auch ohne Bootloader laufen?

von Finsbury (Gast)


Lesenswert?

Ja sicher, nur so könntest du halt Fehler auf Hardwareseite leicht 
ausschließen mit etwas, was mit Sicherheit gehen wird -> Einfach mal per 
USB programmieren oder zumindest auslesen z.B. mit Flip von Atmel (oder 
LUFA DFU, hab ich aber bisher nix mit am Hut).
So würde ich es jedenfalls machen.

von Fabian S. (jacky2k)


Lesenswert?

Joa über LUFA hab ich noch nichts gutes gehört und den original 
Bootloader finde ich nirgends als hex File.

von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

Sooo, habe nun nochmal nen neuen ATMega32U2 drauf geknallt und siehe da: 
Der Bootloader funktioniert zumindest ;)
Habs schon in einem anderen Thread hochgeladen, aber im Anhang ist 
nochmal ein Backup von dem original-Chip. Flash, EEPROM, Fuses, 
Lockbits. Vielleicht hilfts ja noch jemandem ;)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Fabian S. schrieb:
> Habs schon in einem anderen Thread hochgeladen, aber im Anhang ist
> nochmal ein Backup von dem original-Chip. Flash, EEPROM, Fuses,
> Lockbits.

Soso ... hast du auch mal reingeschaut?

Die Lockbits sind initial gesetzt, den kannst du gar nicht auslesen.
Nicht umsonst erfreut sich Dean Camera's Rewrite-Loader einer
gewissen Beliebtheit ...

von Fabian S. (jacky2k)


Lesenswert?

Aha, verstehe ich nicht. Was soll ich da nicht können? Habe gerade auf 
den Chip von dem die Screenshots sind die USB Maus Demo drauf gehaun und 
das funktioniert!

Edit: Ach jetzt weiß ich was du meinst. Das ist natürlich blöde...dann 
kann man die hex Files wohl vergessen :( Und da ich ihn inzwischen 
übergebügelt habe kann man garnicht mehr dran kommen :(

von Simon B. (nomis)


Lesenswert?

Der originale USB-Bootloader von Atmel ist aber irgendwo verfügbar. Ich 
finde ihn auf der Website zwar gerade nicht, habe den aber zumindest für 
den sehr ähnlichen at90usb162 schonmal irgendwo rumfliegen gesehen.

Viele Grüße,
        Simon

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
Noch kein Account? Hier anmelden.