25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

E.1. Firmware<br />

unsigned long s p i f l a s h a d r e s s =0;<br />

//−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

// Task Dispatcher hooks<br />

81 // The f o l l o w i n g hooks are c a l l e d by t h e t a s k d i s p a t c h e r .<br />

//−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

void G p i f I n i t ( void ) ; // f u n c t i o n p r o t o t y p e from g p i f . c<br />

void TD Init ( void ) // C a l l e d once at s t a r t u p<br />

86 {<br />

// s e t t h e CPU c l o c k to 48MHz<br />

CPUCS = ( (CPUCS & ˜bmCLKSPD) | bmCLKSPD1) ;<br />

SYNCDELAY;<br />

91 EP1OUTCFG = 0xA0 ; // always OUT, v a l i d , b u l k<br />

EP1INCFG = 0xA0 ; // always IN , v a l i d , b u l k<br />

SYNCDELAY;<br />

EP2CFG = 0xA2 ; // EP2OUT, bulk , s i z e 512 , 2x b u f f e r e d<br />

SYNCDELAY;<br />

96 EP4CFG = 0xE0 ; // EP4IN , bulk , s i z e 512 , 2x b u f f e r e d<br />

SYNCDELAY;<br />

EP6CFG = 0xA2 ; // EP6OUT, bulk , s i z e 512 , 2x b u f f e r e d<br />

SYNCDELAY;<br />

EP8CFG = 0xE0 ; // EP8IN , bulk , s i z e 512 , 2x b u f f e r e d<br />

101 SYNCDELAY;<br />

// out e n d p o i n t s do not come up armed<br />

// s i n c e t h e d e f a u l t s are d o u b l e b u f f e r e d we must w r i t e dummy b y t e counts t w i c e<br />

SYNCDELAY;<br />

106 EP2BCL = 0 x80 ; // arm EP2OUT by w r i t i n g b y t e count w/ s k i p .<br />

SYNCDELAY;<br />

EP2BCL = 0 x80 ;<br />

SYNCDELAY;<br />

111 FIFORESET = 0 x80 ; // s e t NAKALL b i t to NAK a l l t r a n s f e r s from h o s t<br />

/∗SYNCDELAY;<br />

FIFORESET = 0 x02 ; // r e s e t EP2 FIFO<br />

SYNCDELAY;<br />

FIFORESET = 0 x04 ; // r e s e t EP4 FIFO<br />

116 SYNCDELAY; ∗/<br />

FIFORESET = 0 x06 ; // r e s e t EP6 FIFO<br />

SYNCDELAY;<br />

FIFORESET = 0 x08 ; // r e s e t EP8 FIFO<br />

SYNCDELAY;<br />

121 FIFORESET = 0 x00 ; // c l e a r NAKALL b i t to resume normal o p e r a t i o n<br />

SYNCDELAY;<br />

EP6FIFOCFG = 0 x00 ; // a l l o w core to see zero to one t r a n s i t i o n o f auto out b i t<br />

SYNCDELAY;<br />

126 EP6FIFOCFG = 0 x10 ; // auto out mode , d i s a b l e PKTEND zero l e n g t h send , b y t e ops<br />

SYNCDELAY;<br />

EP8FIFOCFG = 0 x08 ; // auto in mode , d i s a b l e PKTEND zero l e n g t h send , b y t e ops<br />

SYNCDELAY;<br />

EP1OUTBC = 0 x00 ; // arm EP1OUT by w r i t i n g any v a l u e to EP1OUTBC r e g i s t e r<br />

131<br />

s p i f l a s h i n i t ( ) ; // i n i t i a l i z e Port A [ 0 : 3 ] ( f u n c t i o n in s p i f l a s h r d w r f u n c . c )<br />

f p g a c f g i n i t ( ) ; // i n i t i a l i z e Port A [ 4 : 7 ] , Port B and CTL0 f o r FPGA<br />

c o n f i g u r a t i o n ( f u n c t i o n in f p g a c f g f u n c . c )<br />

b o o t l o a d c f g ( ) ; // s t a r t l o a d i n g FPGA c o n f i g u r a t i o n from SPI Flash in FPGA<br />

( f u n c t i o n in s p i f l a s h r d w r f u n c . c )<br />

136 G p i f I n i t ( ) ; // i n i t i a l i z e GPIF r e g i s t e r s ( f u n c t i o n in g p i f . c )<br />

EZUSB InitI2C ( ) ;<br />

//PORTACFG = bmINT0 ; // PA0 t a k e s on INT0/ a l t e r n a t e f u n c t i o n<br />

Project Report 65

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!