Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S64 USB interrupt


von romanua (Gast)


Lesenswert?

Hallo,

Ich arbeite mit AT91SAM7S64 und versuche USB anzusteuern.

Ich setze UDP interrupt mask fuer UDP_EPINT0 (mittels UDP_IER) und lese
sofort UDP_IMR ein. Es ist 0x00001001, so wie es sein sollte. Aber nach
einem Interrupt aendert sich UDP_IMR zu 0x00001200. Also UDP_EPINT0
geht "low" and UDP_RXRSM geht "high".

Kann das jemand erklaeren?

von Lokko (Gast)


Lesenswert?

Hier wird gerade dein Problem besprochen ->

http://groups.yahoo.com/group/AT91SAM

wird wohl immer nach nem busreset vom host (PC) zurückgesetzt

von romanua (Gast)


Lesenswert?

Hey Danke,  stimmt bei AT91SAM habe ich auch nachgefragt :). Ich musste
aber leider die Loesung selber finden.

Die besteht darin, das es gar kein Bug ist. Das Datenblatt ist halt
nicht explizit  zu diesem Punkt bzw. ich habe nichts dazu gefunden (ich
bekomme langsam den Eindruck dass, das Datenblatt fuer SAMs viel
schlechter als das fuer ATMegas ist).

Ich habe die Beispiele (Basic USB) von Atmel analysiert und
festgestelt, dass die nach jedem END_OF_BUS_RESET die UDP Einheit immer
neu einstellen. Das heisst implizit, dass nach END_OF_BUS_RESET alle
Einstellungen verloren gehen.

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.