Herunterladen Inhalt Inhalt Diese Seite drucken

Atmel AT90USBKEY Firmware-Information Seite 12

Inhaltsverzeichnis

Werbung

Set_Configuration:
SNDDES (usb_send_descriptor)
In einer Schleife wird der FIFO (Endpunkt 0) mit dem Deskriptor gef llt. Tritt dabei eine 
Unterbrechung durch den PC (RXOUT
befindet sich die Anzahl der zu schreibenden Bytes in r18, der Zeiger auf den Deskriptor in 
Z.
Da der FIFO 8 Byte groß ist, wird er mit jeweils 8 Byte gef llt. Dann wird die Anfrage des 
PC  mit  einem  ZLP  bestätigt und   darauf  gewartet,  dass  die  Speicherbank  wieder   frei   ist 
(TXIN
Interrupt Flag) oder die Daten erfolgreich beim PC angekommen sind (ZLP vom 
PC, RXOUT Interrupt Flag), bevor die nächsten 8 Byte gef llt werden.
Sind alle angefragten Bytes im FIFO gelandet, so werden die restlichen Bytes abgeschickt, 
außer es war ein Vielfaches von 8 Byte angefragt worden. Es wird dann das ZLP vom PC 
gewartet und dieses dann mit einem ACK bestätigt.
8 Wird von Hardware gesetzt wenn OUT Daten vorhanden sind.
9 Wird von Hardware gesetzt wenn IN Anfrage von PC mit NAK beantwortet wurde.
12
Mikrocontrollertechnik
Deskriptoren. Dem UP wird in  r18  die Länge des Deskriptors in 
Byte und in Z der Zeiger auf den Deskriptor  bergeben.
Um die benutzten Endpunkte zu Initialisieren m ssen zuerst alle 
benutzten Endpunkte abgeschaltet werden und ihre Speicherbänke 
freigegeben werden. Dies passiert in einer Schleife. Mit dem schon 
bekannten Unterprogramm  
dann die einzelnen Endpunkte initialisiert.
Nach der Initialisierung eines jeweiligen OUT­Endpunktes muss der 
  Interrupt f r diesen OUT­Endpunkt (UENUM = Endpunkt­
RXOUT
8
nummer!) erlaubt werden. Dadurch kann das Gerät einen neuen 
COM Interrupt auslösen, wenn Daten vom PC angekommen sind, 
und   dann   das   zum   OUT   Endpunkt   gehörende   Unterprogramm 
aufrufen, um die Informationen abzuholen.
Der NAKIN
9
 Interrupt wird f r den jeweiligen IN Endpunkt erlaubt 
(UENUM = Endpunktnummer!). Dadurch kann bei einer IN Anfrage 
des PC ein neuer COM Interrupt ausgelöst werden, der dann das 
entsprechende Unterprogramm zum IN  Endpunkt aufrufen kann, 
um die angeforderten Informationen zu liefern.
Wurden alle Endpunkte erfolgreich konfiguriert, so wird ein ZLP an 
den PC gesendet und auf eine Bestätigung (ACK) vom PC gewartet.
Interrupt) auf, so wird abgebrochen. Im Assembler 
  (
INIEP
usb_init_endpoint
Firmware AT90USBKEY
2010
) werden 

Werbung

Inhaltsverzeichnis
loading

Verwandte Produkte für Atmel AT90USBKEY

Inhaltsverzeichnis