at45xx.c
Go to the documentation of this file.
1 
23 #include <app.h>
24 
25 
31 {
32  BYTE Data;
33 
34  DF_CS_LO();
35 
36  //command
38 
39  Data = SPI_Read();
40 
41  DF_CS_HI();
42 
43  return (Data);
44 }
45 
52 void DF_WriteBuffer1(WORD Address, BYTE* Data, WORD size)
53 {
54  DF_CS_LO();
55 
56  //command
58  //don't care 8 bits
59  SPI_Write(0);
60  //2 high address bits
61  SPI_Write(*((BYTE*)&Address +1));
62  //8 low address bits
63  SPI_Write((BYTE)Address);
64  //write data byte
65  do {
66  SPI_Write(*Data);
67  Data++;
68  } while(--size);
69 
70  DF_CS_HI();
71 }
72 
79 void DF_ReadBuffer1(WORD Address, BYTE* data, WORD size)
80 {
81  DF_CS_LO();
82 
83  //command
85  //don't care 8 bits
86  SPI_Write(0);
87  //2 high address bits
88  SPI_Write(*((BYTE*)&Address +1));
89  //8 low address bits
90  SPI_Write((BYTE)Address);
91  //don't care 8 bits
92  SPI_Write(0);
93  do {
94  *data = SPI_Read();
95  data++;
96  }while(--size);
97  DF_CS_HI();
98 }
99 
104 #ifdef _ERASEPAGE
105 void DF_ErasePage(WORD PageNum)
106 {
107  DF_CS_LO();
108 
109  PageNum <<= 1;
110 
111  //command
113  // high address bits
114  SPI_Write(*((BYTE*)&PageNum + 1));
115  // low address bits
116  SPI_Write((BYTE)PageNum);
117  //don't care 8 bits
118  SPI_Write(0);
119 
120  DF_CS_HI();
121 }
122 #endif
123 
128 {
129  PageNum <<= 1;
130 
131  DF_CS_LO();
132 
133  //command
135  // high address bits
136  SPI_Write(*((BYTE*)&PageNum + 1));
137  // low address bits
138  SPI_Write((BYTE)PageNum);
139  //don't care 8 bits
140  SPI_Write(0);
141 
142  DF_CS_HI();
143 }
144 
149 void DF_Page2Buffer1(WORD Pagenum)
150 {
151  Pagenum <<= 1;
152  DF_CS_LO();
153 
154  //command
156  // high address bits
157  SPI_Write(*((BYTE*)&Pagenum + 1));
158  // low address bits
159  SPI_Write((BYTE)Pagenum);
160  //don't care 8 bits
161  SPI_Write(0);
162 
163  DF_CS_HI();
164 }
165 
171 {
172  DF_CS_LO();
173 
174  PageNum <<= 1;
175 
176  //command
178  // high address bits
179  SPI_Write(*((BYTE*)&PageNum + 1));
180  // low address bits
181  SPI_Write((BYTE)PageNum);
182  //don't care 8 bits
183  SPI_Write(0);
184 
185  DF_CS_HI();
186 }
187 
192 void DF_Compare(WORD Pagenum)
193 {
194  Pagenum <<= 1;
195  DF_CS_LO();
196 
197  //command
199  // high address bits
200  SPI_Write(*((BYTE*)&Pagenum + 1));
201  // low address bits
202  SPI_Write((BYTE)Pagenum);
203  //don't care 8 bits
204  SPI_Write(0);
205 
206  DF_CS_HI();
207 }
208 //*****************************************************************************[ENDL]***************
#define BUFFER1_WRITE
Definition: at45xx.h:45
#define BUFFER1_PROGRAM_WITH_ERASE
Definition: at45xx.h:47
void DF_ReadBuffer1(WORD Address, BYTE *data, WORD size)
Definition: at45xx.c:79
BYTE DF_ReadStatus(void)
Definition: at45xx.c:30
#define BUFFER1_READ
Definition: at45xx.h:39
#define MAIN_MEMORY_PAGE_TO_BUFFER1_COPY
Definition: at45xx.h:41
#define MAIN_MEMORY_PAGE_TO_BUFFER1_COMPARE
Definition: at45xx.h:43
#define DF_CS_HI()
Definition: at45xx.h:33
#define DF_CS_LO()
Definition: at45xx.h:32
#define DF_STATUS
Definition: at45xx.h:57
void DF_Buffer12MainMemoryE(WORD PageNum)
Definition: at45xx.c:127
#define PAGE_ERASE
Definition: at45xx.h:51
void DF_WriteBuffer1(WORD Address, BYTE *Data, WORD size)
Definition: at45xx.c:52
void DF_Compare(WORD Pagenum)
Definition: at45xx.c:192
void DF_ErasePage(WORD PageNum)
unsigned char BYTE
Definition: pgrl.h:38
void DF_Page2Buffer1(WORD Pagenum)
Definition: at45xx.c:149
unsigned int WORD
Definition: pgrl.h:45
JADEKU project defines and dependency headers.
#define AUTO_PAGE_THROUGH_BUFFER1_REWRITE
Definition: at45xx.h:55
void DF_AutoPageRewrite(WORD PageNum)
Definition: at45xx.c:170
BYTE SPI_Read(void)
Definition: spi.c:86
void SPI_Write(BYTE data)
Definition: spi.c:75