Driver library for Microchip I2C EERAM (47x04 and 47x16) 4 kbit or 16 kbit EEPROM backed SRAM.
EERAM.h@0:19f9af07424a, 2017-04-25 (annotated)
- Committer:
- vargham
- Date:
- Tue Apr 25 15:05:37 2017 +0000
- Revision:
- 0:19f9af07424a
- Child:
- 2:bdbf9de0e985
EERAM initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vargham | 0:19f9af07424a | 1 | /** |
vargham | 0:19f9af07424a | 2 | * @file EERAM.h |
vargham | 0:19f9af07424a | 3 | * @brief mbed driver for Microchip I2C EERAM devices (47x04 and 47x16) |
vargham | 0:19f9af07424a | 4 | * @author Mark Peter Vargha, vmp@varghamarkpeter.hu |
vargham | 0:19f9af07424a | 5 | * @version 1.0.0 |
vargham | 0:19f9af07424a | 6 | * |
vargham | 0:19f9af07424a | 7 | * Copyright (c) 2017 |
vargham | 0:19f9af07424a | 8 | * |
vargham | 0:19f9af07424a | 9 | * Licensed under the Apache License, Version 2.0 (the "License"); |
vargham | 0:19f9af07424a | 10 | * you may not use this file except in compliance with the License. |
vargham | 0:19f9af07424a | 11 | * You may obtain a copy of the License at |
vargham | 0:19f9af07424a | 12 | * |
vargham | 0:19f9af07424a | 13 | * http://www.apache.org/licenses/LICENSE-2.0 |
vargham | 0:19f9af07424a | 14 | * |
vargham | 0:19f9af07424a | 15 | * Unless required by applicable law or agreed to in writing, software |
vargham | 0:19f9af07424a | 16 | * distributed under the License is distributed on an "AS IS" BASIS, |
vargham | 0:19f9af07424a | 17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
vargham | 0:19f9af07424a | 18 | * See the License for the specific language governing permissions and |
vargham | 0:19f9af07424a | 19 | * limitations under the License. |
vargham | 0:19f9af07424a | 20 | */ |
vargham | 0:19f9af07424a | 21 | |
vargham | 0:19f9af07424a | 22 | #ifndef EERAM_h |
vargham | 0:19f9af07424a | 23 | #define EERAM_h |
vargham | 0:19f9af07424a | 24 | |
vargham | 0:19f9af07424a | 25 | #include "mbed.h" |
vargham | 0:19f9af07424a | 26 | |
vargham | 0:19f9af07424a | 27 | //#define DEBUG_EERAM |
vargham | 0:19f9af07424a | 28 | |
vargham | 0:19f9af07424a | 29 | #ifdef DEBUG_EERAM |
vargham | 0:19f9af07424a | 30 | extern Serial serial; |
vargham | 0:19f9af07424a | 31 | #endif |
vargham | 0:19f9af07424a | 32 | |
vargham | 0:19f9af07424a | 33 | union MemoryAddress |
vargham | 0:19f9af07424a | 34 | { |
vargham | 0:19f9af07424a | 35 | uint16_t address; |
vargham | 0:19f9af07424a | 36 | char bytes[2]; |
vargham | 0:19f9af07424a | 37 | }; |
vargham | 0:19f9af07424a | 38 | |
vargham | 0:19f9af07424a | 39 | enum ProtectedMemoryArea |
vargham | 0:19f9af07424a | 40 | { |
vargham | 0:19f9af07424a | 41 | NONE = 0, U64, U32, U16, U8, U4, U2, ALL |
vargham | 0:19f9af07424a | 42 | }; |
vargham | 0:19f9af07424a | 43 | |
vargham | 0:19f9af07424a | 44 | /** An I2C EERAM interface to communicate with Microchip 47x04 and 47x16 devices |
vargham | 0:19f9af07424a | 45 | * 4 kbit (512 byte) or 16 kbit (2048 byte) EEPROM backed I2C SRAM |
vargham | 0:19f9af07424a | 46 | * The device could detect power down and stores SRAM contents in EEPROM. The SRAM is recalled from EEPROM on power up. |
vargham | 0:19f9af07424a | 47 | * |
vargham | 0:19f9af07424a | 48 | * <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/20005371C.pdf">47x04 and 47x16 datasheet</a> |
vargham | 0:19f9af07424a | 49 | * <a href="http://ww1.microchip.com/downloads/cn/AppNotes/cn588417.pdf">Recommended Usage of Microchip I2C EERAM Devices</a> |
vargham | 0:19f9af07424a | 50 | * <a href="http://ww1.microchip.com/downloads/en/AppNotes/00002257A.pdf">Choosing the Right EERAM VCAP Capacitor</a> |
vargham | 0:19f9af07424a | 51 | * |
vargham | 0:19f9af07424a | 52 | * Example: |
vargham | 0:19f9af07424a | 53 | * @code |
vargham | 0:19f9af07424a | 54 | #include "mbed.h" |
vargham | 0:19f9af07424a | 55 | #include "EERAM.h" |
vargham | 0:19f9af07424a | 56 | |
vargham | 0:19f9af07424a | 57 | EERAM eeram(I2C_SDA, I2C_SCL, 2048); |
vargham | 0:19f9af07424a | 58 | |
vargham | 0:19f9af07424a | 59 | int main() |
vargham | 0:19f9af07424a | 60 | { |
vargham | 0:19f9af07424a | 61 | if (!eeram.isReady(100)) //Checks device with 100 ms timeout |
vargham | 0:19f9af07424a | 62 | { |
vargham | 0:19f9af07424a | 63 | printf("Device is not present."); |
vargham | 0:19f9af07424a | 64 | while (1); |
vargham | 0:19f9af07424a | 65 | } |
vargham | 0:19f9af07424a | 66 | eeram.readStatus(); //Reads status register |
vargham | 0:19f9af07424a | 67 | eeram.setAutoStoreEnabled(true, true); //Set auto store on power down to true and stores if not stored before |
vargham | 0:19f9af07424a | 68 | while (1) |
vargham | 0:19f9af07424a | 69 | { |
vargham | 0:19f9af07424a | 70 | char dataStore[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; |
vargham | 0:19f9af07424a | 71 | eeram.write(0x100, dataStore, 16); //We can not wear EEPROM out, so it is ok to write data to the device frequently. |
vargham | 0:19f9af07424a | 72 | wait(2.0); |
vargham | 0:19f9af07424a | 73 | char dataRead[16]; |
vargham | 0:19f9af07424a | 74 | eeram.read(0x100, dataRead, 16); |
vargham | 0:19f9af07424a | 75 | wait(2.0); |
vargham | 0:19f9af07424a | 76 | } |
vargham | 0:19f9af07424a | 77 | } |
vargham | 0:19f9af07424a | 78 | |
vargham | 0:19f9af07424a | 79 | * @endcode |
vargham | 0:19f9af07424a | 80 | */ |
vargham | 0:19f9af07424a | 81 | class EERAM |
vargham | 0:19f9af07424a | 82 | { |
vargham | 0:19f9af07424a | 83 | |
vargham | 0:19f9af07424a | 84 | public: |
vargham | 0:19f9af07424a | 85 | |
vargham | 0:19f9af07424a | 86 | /** Create an I2C EERAM interface, connected to the specified pins, with specified size and with the specified address pins |
vargham | 0:19f9af07424a | 87 | * @param SDA I2C data line pin |
vargham | 0:19f9af07424a | 88 | * @param SCL I2C clock line pin |
vargham | 0:19f9af07424a | 89 | * @param memorySize Size of EERAM, 512 for 47x04 and 2048 for 47x16 |
vargham | 0:19f9af07424a | 90 | * @param A1 EERAM A1 pin state (true = high, false = low) |
vargham | 0:19f9af07424a | 91 | * @param A2 EERAM A2 pin state (true = high, false = low) |
vargham | 0:19f9af07424a | 92 | */ |
vargham | 0:19f9af07424a | 93 | EERAM(PinName SDA, PinName SCL, uint16_t memorySize, bool A1 = false, bool A2 = false) : |
vargham | 0:19f9af07424a | 94 | _i2c(SDA, SCL), |
vargham | 0:19f9af07424a | 95 | _memorySize(memorySize) |
vargham | 0:19f9af07424a | 96 | { |
vargham | 0:19f9af07424a | 97 | initialize(A1, A2); |
vargham | 0:19f9af07424a | 98 | }; |
vargham | 0:19f9af07424a | 99 | |
vargham | 0:19f9af07424a | 100 | /** Create an I2C EERAM interface, connected to the I2C, with specified size and with the specified address pins |
vargham | 0:19f9af07424a | 101 | * @param 12c I2C |
vargham | 0:19f9af07424a | 102 | * @param memorySize Size of EERAM, 512 for 47x04 and 2048 for 47x16 |
vargham | 0:19f9af07424a | 103 | * @param A1 EERAM A1 pin state (true = high, false = low) |
vargham | 0:19f9af07424a | 104 | * @param A2 EERAM A2 pin state (true = high, false = low) |
vargham | 0:19f9af07424a | 105 | */ |
vargham | 0:19f9af07424a | 106 | EERAM(I2C &i2c, uint16_t memorySize, bool A1 = false, bool A2 = false) : |
vargham | 0:19f9af07424a | 107 | _i2c(i2c), |
vargham | 0:19f9af07424a | 108 | _memorySize(memorySize) |
vargham | 0:19f9af07424a | 109 | { |
vargham | 0:19f9af07424a | 110 | initialize(A1, A2); |
vargham | 0:19f9af07424a | 111 | }; |
vargham | 0:19f9af07424a | 112 | |
vargham | 0:19f9af07424a | 113 | /** Writes data to the specified address |
vargham | 0:19f9af07424a | 114 | * @param address The 16 bit destination address |
vargham | 0:19f9af07424a | 115 | * @param data Pointer to the data buffer to read from |
vargham | 0:19f9af07424a | 116 | * @param length Data length |
vargham | 0:19f9af07424a | 117 | * |
vargham | 0:19f9af07424a | 118 | * @return |
vargham | 0:19f9af07424a | 119 | * true on success |
vargham | 0:19f9af07424a | 120 | * false on fail |
vargham | 0:19f9af07424a | 121 | */ |
vargham | 0:19f9af07424a | 122 | bool write(uint16_t address, char *data, int length); |
vargham | 0:19f9af07424a | 123 | |
vargham | 0:19f9af07424a | 124 | /** Reads data from the specified address |
vargham | 0:19f9af07424a | 125 | * @param address The 16 bit source address |
vargham | 0:19f9af07424a | 126 | * @param data Pointer to the data buffer to read to |
vargham | 0:19f9af07424a | 127 | * @param length Data length |
vargham | 0:19f9af07424a | 128 | * |
vargham | 0:19f9af07424a | 129 | * @return |
vargham | 0:19f9af07424a | 130 | * true on success |
vargham | 0:19f9af07424a | 131 | * false on fail |
vargham | 0:19f9af07424a | 132 | */ |
vargham | 0:19f9af07424a | 133 | bool read(uint16_t address, char *data, int length); |
vargham | 0:19f9af07424a | 134 | |
vargham | 0:19f9af07424a | 135 | /** Fills memory with the specified byte from the specified address |
vargham | 0:19f9af07424a | 136 | * @param address The 16 bit destination address |
vargham | 0:19f9af07424a | 137 | * @param data The byte to write |
vargham | 0:19f9af07424a | 138 | * @param length Memory are to fill with the data byte |
vargham | 0:19f9af07424a | 139 | * |
vargham | 0:19f9af07424a | 140 | * @return |
vargham | 0:19f9af07424a | 141 | * true on success |
vargham | 0:19f9af07424a | 142 | * false on fail |
vargham | 0:19f9af07424a | 143 | */ |
vargham | 0:19f9af07424a | 144 | bool fillMemory(uint16_t address, char data, int length); |
vargham | 0:19f9af07424a | 145 | |
vargham | 0:19f9af07424a | 146 | /** Fills the whole memory with the specified byte |
vargham | 0:19f9af07424a | 147 | * @param data The byte to write |
vargham | 0:19f9af07424a | 148 | * |
vargham | 0:19f9af07424a | 149 | * @return |
vargham | 0:19f9af07424a | 150 | * true on success |
vargham | 0:19f9af07424a | 151 | * false on fail |
vargham | 0:19f9af07424a | 152 | */ |
vargham | 0:19f9af07424a | 153 | bool fillMemory(char data); |
vargham | 0:19f9af07424a | 154 | |
vargham | 0:19f9af07424a | 155 | /** Continuously checks I2C EERAM device till ready or reaches timeout |
vargham | 0:19f9af07424a | 156 | * @param timeout_ms Timeout for busy-wait I2C device polling |
vargham | 0:19f9af07424a | 157 | * |
vargham | 0:19f9af07424a | 158 | * @return |
vargham | 0:19f9af07424a | 159 | * true on ready |
vargham | 0:19f9af07424a | 160 | * false on timeout |
vargham | 0:19f9af07424a | 161 | */ |
vargham | 0:19f9af07424a | 162 | bool isReady(int timeout_ms); |
vargham | 0:19f9af07424a | 163 | |
vargham | 0:19f9af07424a | 164 | /** Checks I2C EERAM device one time |
vargham | 0:19f9af07424a | 165 | * |
vargham | 0:19f9af07424a | 166 | * @return |
vargham | 0:19f9af07424a | 167 | * true on ready |
vargham | 0:19f9af07424a | 168 | * false on not ready |
vargham | 0:19f9af07424a | 169 | */ |
vargham | 0:19f9af07424a | 170 | bool isReady(); |
vargham | 0:19f9af07424a | 171 | |
vargham | 0:19f9af07424a | 172 | /** Store SRAM in EEPROM |
vargham | 0:19f9af07424a | 173 | * @param block If true, busy waits for operation end. |
vargham | 0:19f9af07424a | 174 | * |
vargham | 0:19f9af07424a | 175 | * @return |
vargham | 0:19f9af07424a | 176 | * true on success |
vargham | 0:19f9af07424a | 177 | * false on fail |
vargham | 0:19f9af07424a | 178 | */ |
vargham | 0:19f9af07424a | 179 | bool store(bool block); |
vargham | 0:19f9af07424a | 180 | |
vargham | 0:19f9af07424a | 181 | /** Recall SRAM from EEPROM |
vargham | 0:19f9af07424a | 182 | * @param block If true, busy waits for operation end. |
vargham | 0:19f9af07424a | 183 | * |
vargham | 0:19f9af07424a | 184 | * @return |
vargham | 0:19f9af07424a | 185 | * true on success |
vargham | 0:19f9af07424a | 186 | * false on fail |
vargham | 0:19f9af07424a | 187 | */ |
vargham | 0:19f9af07424a | 188 | bool recall(bool block); |
vargham | 0:19f9af07424a | 189 | |
vargham | 0:19f9af07424a | 190 | /** Reads status register |
vargham | 0:19f9af07424a | 191 | * |
vargham | 0:19f9af07424a | 192 | * @return |
vargham | 0:19f9af07424a | 193 | * true on success |
vargham | 0:19f9af07424a | 194 | * false on fail |
vargham | 0:19f9af07424a | 195 | */ |
vargham | 0:19f9af07424a | 196 | bool readStatus(); |
vargham | 0:19f9af07424a | 197 | |
vargham | 0:19f9af07424a | 198 | /** Gets status register |
vargham | 0:19f9af07424a | 199 | * |
vargham | 0:19f9af07424a | 200 | * @return The content of the 8 bit status register |
vargham | 0:19f9af07424a | 201 | */ |
vargham | 0:19f9af07424a | 202 | inline uint8_t getStatus() const |
vargham | 0:19f9af07424a | 203 | { |
vargham | 0:19f9af07424a | 204 | return _status; |
vargham | 0:19f9af07424a | 205 | } |
vargham | 0:19f9af07424a | 206 | |
vargham | 0:19f9af07424a | 207 | /** Writes the 8 bit status register to the I2C device |
vargham | 0:19f9af07424a | 208 | * @param block If true, busy waits for operation end. |
vargham | 0:19f9af07424a | 209 | * |
vargham | 0:19f9af07424a | 210 | * @return |
vargham | 0:19f9af07424a | 211 | * true on success |
vargham | 0:19f9af07424a | 212 | * false on fail |
vargham | 0:19f9af07424a | 213 | */ |
vargham | 0:19f9af07424a | 214 | bool writeStatus(bool block); |
vargham | 0:19f9af07424a | 215 | |
vargham | 0:19f9af07424a | 216 | /** Writes the 8 bit status register to the I2C device if changed |
vargham | 0:19f9af07424a | 217 | * @param block If true, busy waits for operation end. |
vargham | 0:19f9af07424a | 218 | */ |
vargham | 0:19f9af07424a | 219 | void writeStatusIfChanged(bool block); |
vargham | 0:19f9af07424a | 220 | |
vargham | 0:19f9af07424a | 221 | /** Sets protected memory area. The selected area will be write protected. |
vargham | 0:19f9af07424a | 222 | * @param protectedMemoryArea The enum represents the area from NONE through upper 64, 32, 16, 8, 4, 2 to ALL |
vargham | 0:19f9af07424a | 223 | * @param store If true, calls writeStatusIfChanged() |
vargham | 0:19f9af07424a | 224 | */ |
vargham | 0:19f9af07424a | 225 | void setProtectedMemoryArea(ProtectedMemoryArea protectedMemoryArea, bool store = false); |
vargham | 0:19f9af07424a | 226 | |
vargham | 0:19f9af07424a | 227 | /** Gets protected memory area |
vargham | 0:19f9af07424a | 228 | * Have to call readStatus() to read register's fresh value. |
vargham | 0:19f9af07424a | 229 | */ |
vargham | 0:19f9af07424a | 230 | ProtectedMemoryArea getProtectedMemoryArea(); |
vargham | 0:19f9af07424a | 231 | |
vargham | 0:19f9af07424a | 232 | /** Gets Memory Modified |
vargham | 0:19f9af07424a | 233 | * Have to call readStatus() to read register's fresh value. |
vargham | 0:19f9af07424a | 234 | * @return |
vargham | 0:19f9af07424a | 235 | * true The SRAM memory have been modified since the last store or recall operation |
vargham | 0:19f9af07424a | 236 | * false The SRAM memory have not been modified since the last store or recall operation |
vargham | 0:19f9af07424a | 237 | */ |
vargham | 0:19f9af07424a | 238 | bool isMemoryModified(); |
vargham | 0:19f9af07424a | 239 | |
vargham | 0:19f9af07424a | 240 | /** Sets Auto Store Enabled |
vargham | 0:19f9af07424a | 241 | * @param enabled Auto store SRAM to EEPROM on power down enabled |
vargham | 0:19f9af07424a | 242 | * @param store If true, calls writeStatusIfChanged() |
vargham | 0:19f9af07424a | 243 | */ |
vargham | 0:19f9af07424a | 244 | void setAutoStoreEnabled(bool enabled, bool store = false); |
vargham | 0:19f9af07424a | 245 | |
vargham | 0:19f9af07424a | 246 | /** Gets Auto Store Enabled |
vargham | 0:19f9af07424a | 247 | * Have to call readStatus() to read register's fresh value. |
vargham | 0:19f9af07424a | 248 | * @return |
vargham | 0:19f9af07424a | 249 | * true Auto Store is Enabled |
vargham | 0:19f9af07424a | 250 | * false Auto Store is not Enabled |
vargham | 0:19f9af07424a | 251 | */ |
vargham | 0:19f9af07424a | 252 | bool isAutoStoreEnabled(); |
vargham | 0:19f9af07424a | 253 | |
vargham | 0:19f9af07424a | 254 | /** Sets event detected |
vargham | 0:19f9af07424a | 255 | * @param detected The value of the detected bit |
vargham | 0:19f9af07424a | 256 | * @param store If true, calls writeStatusIfChanged() |
vargham | 0:19f9af07424a | 257 | */ |
vargham | 0:19f9af07424a | 258 | void setEventDetected(bool detected, bool store); |
vargham | 0:19f9af07424a | 259 | |
vargham | 0:19f9af07424a | 260 | /** Gets event detected |
vargham | 0:19f9af07424a | 261 | * Have to call readStatus() to read register's fresh value. |
vargham | 0:19f9af07424a | 262 | * @return |
vargham | 0:19f9af07424a | 263 | * true External store event detected (The HS pin pulled up) |
vargham | 0:19f9af07424a | 264 | * false External event not detected |
vargham | 0:19f9af07424a | 265 | */ |
vargham | 0:19f9af07424a | 266 | bool isEventDetected(); |
vargham | 0:19f9af07424a | 267 | |
vargham | 0:19f9af07424a | 268 | /** Prints the SRAM content from the given address to the given serial port in human readable format in 1-32 byte long lines |
vargham | 0:19f9af07424a | 269 | * @param serial The port to print to |
vargham | 0:19f9af07424a | 270 | */ |
vargham | 0:19f9af07424a | 271 | void dump(Serial &serial, uint16_t start, uint16_t length, int lineSize = 16); |
vargham | 0:19f9af07424a | 272 | |
vargham | 0:19f9af07424a | 273 | /** Prints the whole SRAM content to the given serial port in human readable format in 16 byte long lines |
vargham | 0:19f9af07424a | 274 | * @param serial The port to print to |
vargham | 0:19f9af07424a | 275 | */ |
vargham | 0:19f9af07424a | 276 | void dump(Serial &serial); |
vargham | 0:19f9af07424a | 277 | |
vargham | 0:19f9af07424a | 278 | /** Prints the 8 bit status register's contents to the given serial port in human readable format |
vargham | 0:19f9af07424a | 279 | * @param serial The port to print to |
vargham | 0:19f9af07424a | 280 | */ |
vargham | 0:19f9af07424a | 281 | void dumpRegisters(Serial &serial); |
vargham | 0:19f9af07424a | 282 | |
vargham | 0:19f9af07424a | 283 | private: |
vargham | 0:19f9af07424a | 284 | static const uint8_t RW_BIT = 0; |
vargham | 0:19f9af07424a | 285 | static const uint8_t A1_BIT = 2; |
vargham | 0:19f9af07424a | 286 | static const uint8_t A2_BIT = 3; |
vargham | 0:19f9af07424a | 287 | static const uint8_t STATUS_AM_BIT = 7; |
vargham | 0:19f9af07424a | 288 | static const uint8_t STATUS_ASE_BIT = 1; |
vargham | 0:19f9af07424a | 289 | static const uint8_t STATUS_EVENT_BIT = 0; |
vargham | 0:19f9af07424a | 290 | static const uint8_t OPCODE_SRAM = 0b10100000; |
vargham | 0:19f9af07424a | 291 | static const uint8_t OPCODE_CONTROL = 0b00110000; |
vargham | 0:19f9af07424a | 292 | static const uint8_t REGISTER_STATUS = 0x0; |
vargham | 0:19f9af07424a | 293 | static const uint8_t REGISTER_COMMAND = 0x55; |
vargham | 0:19f9af07424a | 294 | static const uint8_t COMMAND_STORE = 0b00110011; |
vargham | 0:19f9af07424a | 295 | static const uint8_t COMMAND_RECALL = 0b11011101; |
vargham | 0:19f9af07424a | 296 | static const int TIME_RECALL_16_MS = 5; |
vargham | 0:19f9af07424a | 297 | static const int TIME_RECALL_04_MS = 2; |
vargham | 0:19f9af07424a | 298 | static const int TIME_STORE_16_MS = 25; |
vargham | 0:19f9af07424a | 299 | static const int TIME_STORE_04_MS = 8; |
vargham | 0:19f9af07424a | 300 | static const int TIME_STORE_STATUS_MS = 1; |
vargham | 0:19f9af07424a | 301 | I2C _i2c; |
vargham | 0:19f9af07424a | 302 | uint16_t _memorySize; |
vargham | 0:19f9af07424a | 303 | uint8_t _sramAddressWrite; |
vargham | 0:19f9af07424a | 304 | uint8_t _sramAddressRead; |
vargham | 0:19f9af07424a | 305 | uint8_t _controlAddressWrite; |
vargham | 0:19f9af07424a | 306 | uint8_t _controlAddressRead; |
vargham | 0:19f9af07424a | 307 | uint8_t _status; |
vargham | 0:19f9af07424a | 308 | uint8_t _statusToWrite; |
vargham | 0:19f9af07424a | 309 | void initialize(bool A1 = false, bool A2 = false); |
vargham | 0:19f9af07424a | 310 | bool checkAddressRange(uint16_t start, uint16_t length); |
vargham | 0:19f9af07424a | 311 | bool writeRegister(uint8_t registerAddress, uint8_t data); |
vargham | 0:19f9af07424a | 312 | bool setMemoryPointer(uint16_t address, bool stop = true); |
vargham | 0:19f9af07424a | 313 | }; |
vargham | 0:19f9af07424a | 314 | |
vargham | 0:19f9af07424a | 315 | #endif //EERAM_h |