SPI Flash memory

Dependents:   AT45DB161D SPIFLASH_AT45DB n-bed_AT45DB161E AT45DB161D

Committer:
okini3939
Date:
Sun Sep 11 06:12:15 2011 +0000
Revision:
0:2e953bbaf3a5
AT45DB161D module

AT45DB161D (16Mbits, 2MB, 528B/block) /AT45DB081D (8Mbits, 1MB, 264B/block)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:2e953bbaf3a5 1 /**
okini3939 0:2e953bbaf3a5 2 * @file at45db161d_commands.h
okini3939 0:2e953bbaf3a5 3 * @brief AT45DB161D commands opcodes
okini3939 0:2e953bbaf3a5 4 **/
okini3939 0:2e953bbaf3a5 5 #ifndef AT45DB161D_COMMANDS_H
okini3939 0:2e953bbaf3a5 6 #define AT45DB161D_COMMANDS_H
okini3939 0:2e953bbaf3a5 7
okini3939 0:2e953bbaf3a5 8 /**
okini3939 0:2e953bbaf3a5 9 * @defgroup AT45DB161D_commands AT45DB161D commands opcodes
okini3939 0:2e953bbaf3a5 10 * @{
okini3939 0:2e953bbaf3a5 11 **/
okini3939 0:2e953bbaf3a5 12
okini3939 0:2e953bbaf3a5 13 /**
okini3939 0:2e953bbaf3a5 14 * @defgroup Read_commands Read commands
okini3939 0:2e953bbaf3a5 15 * @{
okini3939 0:2e953bbaf3a5 16 **/
okini3939 0:2e953bbaf3a5 17 /** Main Memory Page Read */
okini3939 0:2e953bbaf3a5 18 #define AT45DB161D_PAGE_READ 0xD2
okini3939 0:2e953bbaf3a5 19 /** Continuous Array Read (Low Frequency) **/
okini3939 0:2e953bbaf3a5 20 #define AT45DB161D_CONTINUOUS_READ_LOW_FREQ 0x03
okini3939 0:2e953bbaf3a5 21 /** Continuous Array Read (High Frequency) **/
okini3939 0:2e953bbaf3a5 22 #define AT45DB161D_CONTINUOUS_READ_HIGH_FREQ 0x0B
okini3939 0:2e953bbaf3a5 23 /** Buffer 1 Read (Low Frequency) **/
okini3939 0:2e953bbaf3a5 24 #define AT45DB161D_BUFFER_1_READ_LOW_FREQ 0xD1
okini3939 0:2e953bbaf3a5 25 /** Buffer 2 Read (Low Frequency) **/
okini3939 0:2e953bbaf3a5 26 #define AT45DB161D_BUFFER_2_READ_LOW_FREQ 0xD3
okini3939 0:2e953bbaf3a5 27 /** Buffer 1 Read **/
okini3939 0:2e953bbaf3a5 28 #define AT45DB161D_BUFFER_1_READ 0xD4
okini3939 0:2e953bbaf3a5 29 /** Buffer 2 Read **/
okini3939 0:2e953bbaf3a5 30 #define AT45DB161D_BUFFER_2_READ 0xD6
okini3939 0:2e953bbaf3a5 31 /**
okini3939 0:2e953bbaf3a5 32 * @}
okini3939 0:2e953bbaf3a5 33 **/
okini3939 0:2e953bbaf3a5 34
okini3939 0:2e953bbaf3a5 35 /**
okini3939 0:2e953bbaf3a5 36 * @defgroup Program_Erase_commands Program and Erase commands
okini3939 0:2e953bbaf3a5 37 * @{
okini3939 0:2e953bbaf3a5 38 **/
okini3939 0:2e953bbaf3a5 39 /** Buffer 1 Write **/
okini3939 0:2e953bbaf3a5 40 #define AT45DB161D_BUFFER_1_WRITE 0x84
okini3939 0:2e953bbaf3a5 41 /** Buffer 2 Write **/
okini3939 0:2e953bbaf3a5 42 #define AT45DB161D_BUFFER_2_WRITE 0x87
okini3939 0:2e953bbaf3a5 43 /** Buffer 1 to Main Memory Page Program with Built-in Erase **/
okini3939 0:2e953bbaf3a5 44 #define AT45DB161D_BUFFER_1_TO_PAGE_WITH_ERASE 0x83
okini3939 0:2e953bbaf3a5 45 /** Buffer 2 to Main Memory Page Program with Built-in Erase **/
okini3939 0:2e953bbaf3a5 46 #define AT45DB161D_BUFFER_2_TO_PAGE_WITH_ERASE 0x86
okini3939 0:2e953bbaf3a5 47 /** Buffer 1 to Main Memory Page Program without Built-in Erase **/
okini3939 0:2e953bbaf3a5 48 #define AT45DB161D_BUFFER_1_TO_PAGE_WITHOUT_ERASE 0x88
okini3939 0:2e953bbaf3a5 49 /** Buffer 2 to Main Memory Page Program without Built-in Erase **/
okini3939 0:2e953bbaf3a5 50 #define AT45DB161D_BUFFER_2_TO_PAGE_WITHOUT_ERASE 0x89
okini3939 0:2e953bbaf3a5 51 /** Page Erase **/
okini3939 0:2e953bbaf3a5 52 #define AT45DB161D_PAGE_ERASE 0x81
okini3939 0:2e953bbaf3a5 53 /** Block Erase **/
okini3939 0:2e953bbaf3a5 54 #define AT45DB161D_BLOCK_ERASE 0x50
okini3939 0:2e953bbaf3a5 55 /** Sector Erase **/
okini3939 0:2e953bbaf3a5 56 #define AT45DB161D_SECTOR_ERASE 0x7C
okini3939 0:2e953bbaf3a5 57 /** Chip Erase Sequence **/
okini3939 0:2e953bbaf3a5 58 #define AT45DB161D_CHIP_ERASE_0 0xC7
okini3939 0:2e953bbaf3a5 59 #define AT45DB161D_CHIP_ERASE_1 0x94
okini3939 0:2e953bbaf3a5 60 #define AT45DB161D_CHIP_ERASE_2 0x80
okini3939 0:2e953bbaf3a5 61 #define AT45DB161D_CHIP_ERASE_3 0x9A
okini3939 0:2e953bbaf3a5 62 /** Main Memory Page Program Through Buffer 1 **/
okini3939 0:2e953bbaf3a5 63 #define AT45DB161D_PAGE_THROUGH_BUFFER_1 0x82
okini3939 0:2e953bbaf3a5 64 /** Main Memory Page Program Through Buffer 2 **/
okini3939 0:2e953bbaf3a5 65 #define AT45DB161D_PAGE_THROUGH_BUFFER_2 0x85
okini3939 0:2e953bbaf3a5 66 /**
okini3939 0:2e953bbaf3a5 67 * @}
okini3939 0:2e953bbaf3a5 68 **/
okini3939 0:2e953bbaf3a5 69
okini3939 0:2e953bbaf3a5 70 /**
okini3939 0:2e953bbaf3a5 71 * @defgroup ProtectionSecurity_Commands Protection and Security Commands
okini3939 0:2e953bbaf3a5 72 * @warning UNIMPLEMENTED
okini3939 0:2e953bbaf3a5 73 * @{
okini3939 0:2e953bbaf3a5 74 **/
okini3939 0:2e953bbaf3a5 75 #ifdef AT45DB161D_EXPERT_MODE
okini3939 0:2e953bbaf3a5 76 /* Use the following commands at your own risk ! */
okini3939 0:2e953bbaf3a5 77 /** Enable Sector Protection **/
okini3939 0:2e953bbaf3a5 78 #define AT45DB161D_ENABLE_SECTOR_PROTECTION_0 0x3D
okini3939 0:2e953bbaf3a5 79 #define AT45DB161D_ENABLE_SECTOR_PROTECTION_1 0x2A
okini3939 0:2e953bbaf3a5 80 #define AT45DB161D_ENABLE_SECTOR_PROTECTION_2 0x7F
okini3939 0:2e953bbaf3a5 81 #define AT45DB161D_ENABLE_SECTOR_PROTECTION_3 0xA9
okini3939 0:2e953bbaf3a5 82 /** Disable Sector Protection **/
okini3939 0:2e953bbaf3a5 83 #define AT45DB161D_DISABLE_SECTOR_PROTECTION_0 0x3D
okini3939 0:2e953bbaf3a5 84 #define AT45DB161D_DISABLE_SECTOR_PROTECTION_1 0x2A
okini3939 0:2e953bbaf3a5 85 #define AT45DB161D_DISABLE_SECTOR_PROTECTION_2 0x7F
okini3939 0:2e953bbaf3a5 86 #define AT45DB161D_DISABLE_SECTOR_PROTECTION_3 0x9A
okini3939 0:2e953bbaf3a5 87 /** Erase Sector Protection Register **/
okini3939 0:2e953bbaf3a5 88 #define AT45DB161D_ERASE_SECTOR_PROTECTION_REGISTER_0 0x3D
okini3939 0:2e953bbaf3a5 89 #define AT45DB161D_ERASE_SECTOR_PROTECTION_REGISTER_0 0x2A
okini3939 0:2e953bbaf3a5 90 #define AT45DB161D_ERASE_SECTOR_PROTECTION_REGISTER_0 0x7F
okini3939 0:2e953bbaf3a5 91 #define AT45DB161D_ERASE_SECTOR_PROTECTION_REGISTER_0 0xCF
okini3939 0:2e953bbaf3a5 92 /** Program Sector Protection Register **/
okini3939 0:2e953bbaf3a5 93 #define AT45DB161D_PROGRAM_SECTOR_PROTECTION_REGISTER_0 0x3D
okini3939 0:2e953bbaf3a5 94 #define AT45DB161D_PROGRAM_SECTOR_PROTECTION_REGISTER_1 0x2A
okini3939 0:2e953bbaf3a5 95 #define AT45DB161D_PROGRAM_SECTOR_PROTECTION_REGISTER_2 0x7F
okini3939 0:2e953bbaf3a5 96 #define AT45DB161D_PROGRAM_SECTOR_PROTECTION_REGISTER_3 0xFC
okini3939 0:2e953bbaf3a5 97 /** Sector Lockdown **/
okini3939 0:2e953bbaf3a5 98 #define AT45DB161D_SECTOR_LOCKDOWN_0 0X3D
okini3939 0:2e953bbaf3a5 99 #define AT45DB161D_SECTOR_LOCKDOWN_1 0x2A
okini3939 0:2e953bbaf3a5 100 #define AT45DB161D_SECTOR_LOCKDOWN_2 0x7F
okini3939 0:2e953bbaf3a5 101 #define AT45DB161D_SECTOR_LOCKDOWN_3 0x30
okini3939 0:2e953bbaf3a5 102 /** Program Security Register **/
okini3939 0:2e953bbaf3a5 103 #define AT45DB161D_PROGRAM_SECURITY_REGISTER_0 0x9B
okini3939 0:2e953bbaf3a5 104 #define AT45DB161D_PROGRAM_SECURITY_REGISTER_1 0x00
okini3939 0:2e953bbaf3a5 105 #define AT45DB161D_PROGRAM_SECURITY_REGISTER_2 0x00
okini3939 0:2e953bbaf3a5 106 #define AT45DB161D_PROGRAM_SECURITY_REGISTER_3 0x00
okini3939 0:2e953bbaf3a5 107 #endif /* AT45DB161D_EXPERT_MODE */
okini3939 0:2e953bbaf3a5 108
okini3939 0:2e953bbaf3a5 109 /** Read Sector Protection Register **/
okini3939 0:2e953bbaf3a5 110 #define AT45DB161D_READ_SECTOR_PROTECTION_REGISTER 0x32
okini3939 0:2e953bbaf3a5 111 /** Read Sector Lockdown Register **/
okini3939 0:2e953bbaf3a5 112 #define AT45DB161D_READ_SECTOR_LOCKDOWN_REGISTER 35H
okini3939 0:2e953bbaf3a5 113 /** Read Security Register **/
okini3939 0:2e953bbaf3a5 114 #define AT45DB161D_READ_SECURITY_REGISTER 0x77
okini3939 0:2e953bbaf3a5 115 /**
okini3939 0:2e953bbaf3a5 116 * @}
okini3939 0:2e953bbaf3a5 117 **/
okini3939 0:2e953bbaf3a5 118
okini3939 0:2e953bbaf3a5 119 /**
okini3939 0:2e953bbaf3a5 120 * @defgroup Additional_commands Additional Commands
okini3939 0:2e953bbaf3a5 121 * @{
okini3939 0:2e953bbaf3a5 122 **/
okini3939 0:2e953bbaf3a5 123 /** Main Memory Page to Buffer 1 Transfer **/
okini3939 0:2e953bbaf3a5 124 #define AT45DB161D_TRANSFER_PAGE_TO_BUFFER_1 0x53
okini3939 0:2e953bbaf3a5 125 /** Main Memory Page to Buffer 2 Transfer **/
okini3939 0:2e953bbaf3a5 126 #define AT45DB161D_TRANSFER_PAGE_TO_BUFFER_2 0x55
okini3939 0:2e953bbaf3a5 127 /** Main Memory Page to Buffer 1 Compare **/
okini3939 0:2e953bbaf3a5 128 #define AT45DB161D_COMPARE_PAGE_TO_BUFFER_1 0x60
okini3939 0:2e953bbaf3a5 129 /** Main Memory Page to Buffer 2 Compare **/
okini3939 0:2e953bbaf3a5 130 #define AT45DB161D_COMPARE_PAGE_TO_BUFFER_2 0x61
okini3939 0:2e953bbaf3a5 131 /** Auto Page Rewrite through Buffer 1 **/
okini3939 0:2e953bbaf3a5 132 #define AT45DB161D_AUTO_PAGE_REWRITE_THROUGH_BUFFER_1 0x58
okini3939 0:2e953bbaf3a5 133 /** Auto Page Rewrite through Buffer 2 **/
okini3939 0:2e953bbaf3a5 134 #define AT45DB161D_AUTO_PAGE_REWRITE_THROUGH_BUFFER_2 0x59
okini3939 0:2e953bbaf3a5 135 /** Deep Power-down **/
okini3939 0:2e953bbaf3a5 136 #define AT45DB161D_DEEP_POWER_DOWN 0xB9
okini3939 0:2e953bbaf3a5 137 /** Resume from Deep Power-down **/
okini3939 0:2e953bbaf3a5 138 #define AT45DB161D_RESUME_FROM_DEEP_POWER_DOWN 0xAB
okini3939 0:2e953bbaf3a5 139 /** Status Register Read **/
okini3939 0:2e953bbaf3a5 140 #define AT45DB161D_STATUS_REGISTER_READ 0xD7
okini3939 0:2e953bbaf3a5 141 /** Manufacturer and Device ID Read **/
okini3939 0:2e953bbaf3a5 142 #define AT45DB161D_READ_MANUFACTURER_AND_DEVICE_ID 0x9F
okini3939 0:2e953bbaf3a5 143 /**
okini3939 0:2e953bbaf3a5 144 * @}
okini3939 0:2e953bbaf3a5 145 **/
okini3939 0:2e953bbaf3a5 146
okini3939 0:2e953bbaf3a5 147 /**
okini3939 0:2e953bbaf3a5 148 * @defgroup Legacy_commands Legacy Commands
okini3939 0:2e953bbaf3a5 149 * @{
okini3939 0:2e953bbaf3a5 150 **/
okini3939 0:2e953bbaf3a5 151 /** Buffer 1 Read **/
okini3939 0:2e953bbaf3a5 152 #define AT45DB161D_BUFFER_1_READ_LEGACY 0X54
okini3939 0:2e953bbaf3a5 153 /** Buffer 2 Read **/
okini3939 0:2e953bbaf3a5 154 #define AT45DB161D_BUFFER_2_READ_LEGACY 0x56
okini3939 0:2e953bbaf3a5 155 /** Main Memory Page Read **/
okini3939 0:2e953bbaf3a5 156 #define AT45DB161D_PAGE_READ_LEGACY 0x52
okini3939 0:2e953bbaf3a5 157 /** Continuous Array Read **/
okini3939 0:2e953bbaf3a5 158 #define AT45DB161D_CONTINUOUS_READ_LEGACY 0x68
okini3939 0:2e953bbaf3a5 159 /** Status Register Read **/
okini3939 0:2e953bbaf3a5 160 #define AT45DB161D_STATUS_REGISTER_READ_LEGACY 0x57
okini3939 0:2e953bbaf3a5 161 /**
okini3939 0:2e953bbaf3a5 162 * @}
okini3939 0:2e953bbaf3a5 163 **/
okini3939 0:2e953bbaf3a5 164
okini3939 0:2e953bbaf3a5 165 /**
okini3939 0:2e953bbaf3a5 166 * @}
okini3939 0:2e953bbaf3a5 167 **/
okini3939 0:2e953bbaf3a5 168
okini3939 0:2e953bbaf3a5 169 #endif /* AT45DB161D_COMMANDS_H */