Parcourir la source

Add sleep & wakeup (thanks rocketscream)

main
PaulStoffregen il y a 9 ans
Parent
révision
1ce2f5d753
2 fichiers modifiés avec 19 ajouts et 0 suppressions
  1. +2
    -0
      SerialFlash.h
  2. +17
    -0
      SerialFlashChip.cpp

+ 2
- 0
SerialFlash.h Voir le fichier

@@ -39,6 +39,8 @@ public:
static bool begin();
static uint32_t capacity(const uint8_t *id);
static uint32_t blockSize();
static void sleep();
static void wakeup();
static void readID(uint8_t *buf);
static void read(uint32_t addr, void *buf, uint32_t len);
static bool ready();

+ 17
- 0
SerialFlashChip.cpp Voir le fichier

@@ -383,6 +383,23 @@ bool SerialFlashChip::begin()
return true;
}

void SerialFlashChip::sleep()
{
if (busy) wait();
SPI.beginTransaction(SPICONFIG);
CSASSERT();
SPI.transfer(0xB9); // Deep power down command
CSRELEASE();
}

void SerialFlashChip::wakeup()
{
SPI.beginTransaction(SPICONFIG);
CSASSERT();
SPI.transfer(0xAB); // Wake up from deep power down command
CSRELEASE();
}

void SerialFlashChip::readID(uint8_t *buf)
{
if (busy) wait();

Chargement…
Annuler
Enregistrer