TommyPROM/TommyPROM/PromDeviceSST28SF.h

42 lines
1.2 KiB
C++

#ifndef INCLUDE_PROM_DEVICE_SST28SF_H
#define INCLUDE_PROM_DEVICE_SST28SF_H
#include "Arduino.h"
#include "PromDevice.h"
/*****************************************************************************/
/*****************************************************************************/
/**
* PromDeviceSST28SF class
*
* Provides the device-specific interface to read and write data from an
* SST28SF series parallel SuperFlash using the Arduino.
*/
class PromDeviceSST28SF : public PromDevice
{
public:
PromDeviceSST28SF(uint32_t size, word unsigned maxWriteTime, bool polling);
void begin();
const char * getName() { return "SST28SF series SuperFlash"; }
ERET disableSoftwareWriteProtect();
ERET enableSoftwareWriteProtect();
ERET erase(uint32_t start, uint32_t end);
protected:
void setAddress(uint32_t address);
byte readByte(uint32_t address);
bool burnByte(byte value, uint32_t address);
bool waitForWriteCycleEnd(byte lastValue);
void setByte(byte value, uint32_t address);
void getByte(uint32_t address);
void eraseSector(uint32_t addr);
ERET sendSdpSequence(uint16_t lastAddress);
uint32_t currentSector;
};
#endif // #define INCLUDE_PROM_DEVICE_SST28SF_H