Winbond W25Q80BV SPI library

Dependents:   data_log

Revision:
2:e8dc659cf54e
Parent:
1:72b556f51896
Child:
3:efef6d4c6918
--- a/W25Q80BV.cpp	Thu Jan 30 00:51:50 2014 +0000
+++ b/W25Q80BV.cpp	Thu Jan 30 01:29:52 2014 +0000
@@ -9,14 +9,11 @@
 W25Q80BV::W25Q80BV(PinName mosi, PinName miso, PinName sclk, PinName cs):_cs(cs),_mosi(mosi),_miso(miso),_sclk(sclk){
     
 }
-
-
-
 //Get ID
  int W25Q80BV::getMID( ){
     int ID = 0;
     chipEnable();
-    this->writeSPI(D_ID);
+    this->writeSPI(DEV_ID );
     this->writeSPI(DUMMY_ADDR);
     this->writeSPI(DUMMY_ADDR);
     this->writeSPI(DUMMY_ADDR);
@@ -30,7 +27,7 @@
 // READING
 int W25Q80BV::readByte(int addr) {
     chipEnable();
-    this->writeSPI(R_INST);
+    this->writeSPI(READ_DATA);
     this->writeSPI((addr & ADDR_BMASK2) >> ADDR_BSHIFT2);
     this->writeSPI((addr & ADDR_BMASK1) >> ADDR_BSHIFT1);
     this->writeSPI((addr & ADDR_BMASK0) >> ADDR_BSHIFT0);
@@ -40,7 +37,7 @@
 }
 int W25Q80BV::readByte(int a2, int a1, int a0) {
    chipEnable();
-   this->writeSPI(R_INST);
+   this->writeSPI(READ_DATA);
    this->writeSPI(a2);
    this->writeSPI(a1);
    this->writeSPI(a0);
@@ -52,7 +49,7 @@
     if (count < 1)
         return;
     chipEnable();
-    this->writeSPI(R_INST);
+    this->writeSPI(READ_DATA);
     this->writeSPI((addr & ADDR_BMASK2) >> ADDR_BSHIFT2);
     this->writeSPI((addr & ADDR_BMASK1) >> ADDR_BSHIFT1);
     this->writeSPI((addr & ADDR_BMASK0) >> ADDR_BSHIFT0);
@@ -65,19 +62,19 @@
 void W25Q80BV::writeByte(int addr, int data) {
     writeEnable();
     chipEnable();
-    this->writeSPI(W_INST);
+    this->writeSPI(WRITE_DATA);
     this->writeSPI((addr & ADDR_BMASK2) >> ADDR_BSHIFT2);
     this->writeSPI((addr & ADDR_BMASK1) >> ADDR_BSHIFT1);
     this->writeSPI((addr & ADDR_BMASK0) >> ADDR_BSHIFT0);
     this->writeSPI(data);
     chipDisable();
     writeDisable();
-    wait(WAIT_TIME);
+    wait(WAIT_TIME);//NO ESTOY SEGURO SI ASI HAY QUE ESPERAR
 }
 void W25Q80BV::writeByte(int a2, int a1, int a0, int data) {
     writeEnable();
     chipEnable();
-    this->writeSPI(W_INST);
+    this->writeSPI(WRITE_DATA);
     this->writeSPI(a2);
     this->writeSPI(a1);
     this->writeSPI(a0);
@@ -91,7 +88,7 @@
         return;
     writeEnable();
     chipEnable();
-    this->writeSPI(W_INST);
+    this->writeSPI(WRITE_DATA);
     this->writeSPI((addr & ADDR_BMASK2) >> ADDR_BSHIFT2);
     this->writeSPI((addr & ADDR_BMASK1) >> ADDR_BSHIFT1);
     this->writeSPI((addr & ADDR_BMASK0) >> ADDR_BSHIFT0);
@@ -106,7 +103,7 @@
 void W25Q80BV::chipErase() {
     writeEnable();
     chipEnable();
-    this->writeSPI(C_ERASE_INST);
+    this->writeSPI(CHIP_ERASE);
     chipDisable();
     writeDisable();
     wait(WAIT_TIME);
@@ -116,12 +113,12 @@
 //Private Functions
 void W25Q80BV::writeEnable() {
     chipEnable();
-    this->writeSPI(WE_INST);
+    this->writeSPI(WRITE_ENABLE);
     chipDisable();
 }
 void W25Q80BV::writeDisable() {
     chipEnable();
-    this->writeSPI(WD_INST);
+    this->writeSPI(WRITE_DISABLE);
     chipDisable();
 }
 void W25Q80BV::chipEnable() {
@@ -135,17 +132,20 @@
     int aux =0,aux2=0,i=0,read=0;
     //aux=data;
     for(i=0;i<8;i++){
+        //output
         _sclk   =   0;
-        //output
         aux     =   data&0x80;
         aux     >>= 7;
         _mosi   =   aux;
         data    <<= 1;
+        
         //input
-        read    <<=   1;
+        _sclk   =   1;
+        //maybe wait? test it first
+        read    <<= 1;
         aux2    =   _miso;
         read    |=  aux2;
-        _sclk   =   1;
     }
+    _sclk   =   0;
     return read;
 }
\ No newline at end of file