TRC 630401

Committer:
supawat
Date:
Thu Apr 02 03:41:57 2020 +0000
Revision:
0:0b6c94a21953
VMS3GTRC vers. 630401

Who changed what in which revision?

UserRevisionLine numberNew contents of line
supawat 0:0b6c94a21953 1 /**
supawat 0:0b6c94a21953 2 * @file at45db161e.h
supawat 0:0b6c94a21953 3 * @brief AT45DB161E module
supawat 0:0b6c94a21953 4 **/
supawat 0:0b6c94a21953 5 #ifndef AT45DB161E_H
supawat 0:0b6c94a21953 6 #define AT45DB161E_H
supawat 0:0b6c94a21953 7
supawat 0:0b6c94a21953 8 #include "mbed.h"
supawat 0:0b6c94a21953 9
supawat 0:0b6c94a21953 10 /**
supawat 0:0b6c94a21953 11 * @brief ID structure
supawat 0:0b6c94a21953 12 * This structure contains various informations about the
supawat 0:0b6c94a21953 13 * dataflash chip being used.
supawat 0:0b6c94a21953 14 **/
supawat 0:0b6c94a21953 15 struct flash_id
supawat 0:0b6c94a21953 16 {
supawat 0:0b6c94a21953 17 unsigned char manufacturer; /**< Manufacturer id **/
supawat 0:0b6c94a21953 18 unsigned char device[1]; /**< Device id **/
supawat 0:0b6c94a21953 19 unsigned char extendedInfoLength; /**< Extended device information string length **/
supawat 0:0b6c94a21953 20 };
supawat 0:0b6c94a21953 21
supawat 0:0b6c94a21953 22 class ATD45DB161E
supawat 0:0b6c94a21953 23 {
supawat 0:0b6c94a21953 24
supawat 0:0b6c94a21953 25 // Public functions
supawat 0:0b6c94a21953 26 public:
supawat 0:0b6c94a21953 27
supawat 0:0b6c94a21953 28 ATD45DB161E(PinName mosi, PinName miso, PinName clk, PinName cs);
supawat 0:0b6c94a21953 29 ATD45DB161E(SPI &spi, PinName cs);
supawat 0:0b6c94a21953 30
supawat 0:0b6c94a21953 31 void initial_chip(void);
supawat 0:0b6c94a21953 32 void pollbusy (void);
supawat 0:0b6c94a21953 33 int ReadStatusRegister(void);
supawat 0:0b6c94a21953 34 void ReadManufacturerAndDeviceID(struct flash_id *id);
supawat 0:0b6c94a21953 35
supawat 0:0b6c94a21953 36 void PageRead(unsigned int,unsigned int,unsigned char *,unsigned int);
supawat 0:0b6c94a21953 37 void ContinuousArrayRead(unsigned int,unsigned char *,unsigned int);
supawat 0:0b6c94a21953 38
supawat 0:0b6c94a21953 39 void ChipErase(void);
supawat 0:0b6c94a21953 40 void PageErase(unsigned int);
supawat 0:0b6c94a21953 41
supawat 0:0b6c94a21953 42 void PageWriteThroughBuffer(unsigned int, unsigned int, unsigned char ,unsigned char *,unsigned int);
supawat 0:0b6c94a21953 43 void ContinuousWriteThroughBuffer(unsigned int, unsigned char ,unsigned char *,unsigned int);
supawat 0:0b6c94a21953 44
supawat 0:0b6c94a21953 45 void BufferRead(unsigned char, unsigned int, unsigned char, unsigned char *, unsigned int);
supawat 0:0b6c94a21953 46 void BufferWrite(unsigned char, unsigned,unsigned char *,unsigned int);
supawat 0:0b6c94a21953 47 void BufferToPage(unsigned char, unsigned int, unsigned char);
supawat 0:0b6c94a21953 48 void PageToBuffer(unsigned int, unsigned char);
supawat 0:0b6c94a21953 49
supawat 0:0b6c94a21953 50 void DeepPowerDown(unsigned char);
supawat 0:0b6c94a21953 51 void UltraDeepPowerDown(unsigned char);
supawat 0:0b6c94a21953 52 bool is_it_awake(void);
supawat 0:0b6c94a21953 53
supawat 0:0b6c94a21953 54 // Private variables
supawat 0:0b6c94a21953 55 private:
supawat 0:0b6c94a21953 56 SPI _spi;
supawat 0:0b6c94a21953 57 DigitalOut _cs;
supawat 0:0b6c94a21953 58 bool _wake_flag;
supawat 0:0b6c94a21953 59 bool _deepsleep_flag;
supawat 0:0b6c94a21953 60 bool _udeepsleep_flag;
supawat 0:0b6c94a21953 61
supawat 0:0b6c94a21953 62 void _set_pageszie_to_binary(void);
supawat 0:0b6c94a21953 63 void _select();
supawat 0:0b6c94a21953 64 void _deselect();
supawat 0:0b6c94a21953 65 void _pollbusy (void);
supawat 0:0b6c94a21953 66
supawat 0:0b6c94a21953 67 // Send 3 byte address
supawat 0:0b6c94a21953 68 void _sendaddr (unsigned int address);
supawat 0:0b6c94a21953 69 };
supawat 0:0b6c94a21953 70
supawat 0:0b6c94a21953 71 /**
supawat 0:0b6c94a21953 72 * @}
supawat 0:0b6c94a21953 73 **/
supawat 0:0b6c94a21953 74
supawat 0:0b6c94a21953 75 #endif /* AT45DB161E_H */