TRC 630401
at45db161e.h@0:0b6c94a21953, 2020-04-02 (annotated)
- Committer:
- supawat
- Date:
- Thu Apr 02 03:41:57 2020 +0000
- Revision:
- 0:0b6c94a21953
VMS3GTRC vers. 630401
Who changed what in which revision?
User | Revision | Line number | New 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 */ |