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. Quellcode<br />

/∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗<br />

2 ∗ Diplomwork :<br />

∗ <strong>Gecko3</strong> SoC HW/SW Development Board<br />

∗<br />

∗ ( ‘ \ ( ) ( ) ( )<br />

∗ | ( ) ) | ( | | | | Berne U n i v e r s i t y o f Applied S c i e n c e s<br />

7 ∗ | < ’| ) | | School o f Engineering and<br />

∗ | ( ) ) | | | | | | Information Technology<br />

∗ ( / ’( ) ( ) ( )<br />

∗<br />

∗<br />

12 ∗ Author : Christoph Zimmermann<br />

∗ Date o f c r e a t i o n : 31.10.2006<br />

∗ D e s c r i p t i o n :<br />

∗ H e a d e r f i l e f o r t h e M25P16 Library<br />

∗ Library to a c c e s s t h e M25P16 SPI Flash from ST<br />

17 ∗ M i c r o e l e c t r o n i c s . The S25FL016 SPI Flash from<br />

∗ Spansion i s s o f t w a r e and pin c o m p a t i b l e<br />

∗<br />

∗ Changelog :<br />

∗ 31.10.2006<br />

22 ∗ f i r s t v e r s i o n<br />

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗/<br />

// d e f i n e s wich d e v i c e in t h e SPI subsytem i s t h e M25P16<br />

#define M25P16 0<br />

27 #define MANUFACTURER 0 x20<br />

#define MEMTYPE 0 x20<br />

#define MEMCAPACITY 0 x15<br />

#define MAXADRESS 0x1FFFFF<br />

32<br />

// f l a s h memory opcodes<br />

#define WREN 0 x06<br />

#define WRDI 0 x04<br />

#define RDID 0x9F<br />

37 #define RDSR 0 x05<br />

#define WRSR 0 x01<br />

#define READ 0 x03<br />

#define FAST READ 0x0B<br />

#define PP 0 x02<br />

42 #define SE 0xD8<br />

#define BE 0xC7<br />

#define DP 0xB9<br />

#define RES 0xAB<br />

47 // checks i f t h e c o r r e c t d e v i c e i s s e l e c t e d<br />

b i t isM25P16 ( ) ;<br />

52<br />

// checks i f t h e d e v i c e i s busy or ready to r e c e i v e t h e next i n s t r u c t i o n<br />

b i t isBusy ( ) ;<br />

// h e l p e r f u n c t i o n to send a d r e s s e s to t h e f l a s h<br />

void sendAdress ( long a d r e s s ) ;<br />

// e n a b l e w r i t e a c c e s s<br />

57 void writeEnable ( ) ;<br />

// read one b y t e at t h e g i v e n a d r e s s<br />

byte readByte ( long a d r e s s ) ;<br />

62 // s t a r t s a b l o c k read from t h e g i v e n a d r e s s<br />

byte startBlockRead ( long a d r e s s ) ;<br />

// reads t h e next b y t e ( s e q u e n t i a l readout )<br />

byte readBlock ( ) ;<br />

94 Matthias Zurbrügg, Christoph Zimmermann

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!