EEPROM in TG-LPC11U35-501
Dependents: mbed_EEPROM USBMSD_step1 USBMSD_step1_5 picossd_step1_2cs
See https://mbed.org/users/yasuyuki/notebook/EEPROM/
Diff: EEPROM.cpp
- Revision:
- 0:25e5bc71e65f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/EEPROM.cpp Thu Jun 26 13:45:34 2014 +0000 @@ -0,0 +1,72 @@ +//********************** +// EEPROM.cpp for TG-LPC11U35-501 +// TG-LPC11U35-501 has 4K EEPROM. +// +// usage: +// EEPROM eeprom; +// char RAM[100] +// eeprom.write(0, RAM, 100); +// eeprom.read(0, RAM, 100); +// eeprom.put(0, 0x00); +// i=eeprom.get(0); +// +// note: +// valid EEPROM address range is between 0 to 4031 +// top 64 bytes are reserved +// +// (C)Copyright 2014 All rights reserved by Y.Onodera +// http://einstlab.web.fc2.com +//********************** +#include "EEPROM.h" + +int EEPROM::write( unsigned int EEPROM_addr, char *RAM_addr, unsigned int n ) { + command[0] = EEPROM_Write; + command[1] = EEPROM_addr; + command[2] = (unsigned int)RAM_addr; + command[3] = n; + command[4] = cclk_kHz; + + iap_entry( command, status ); + + return ( (int)status[0] ); +} + + +int EEPROM::read( unsigned int EEPROM_addr, char *RAM_addr, unsigned int n ) { + command[0] = EEPROM_Read; + command[1] = EEPROM_addr; + command[2] = (unsigned int)RAM_addr; + command[3] = n; + command[4] = cclk_kHz; + + iap_entry( command, status ); + + return ( (int)status[0] ); +} + + +int EEPROM::put( unsigned int EEPROM_addr, char data ) { + dat[0]=data; + command[0] = EEPROM_Write; + command[1] = EEPROM_addr; + command[2] = (unsigned int)dat; + command[3] = 1; + command[4] = cclk_kHz; + + iap_entry( command, status ); + + return ( (int)status[0] ); +} + + +char EEPROM::get( unsigned int EEPROM_addr ) { + command[0] = EEPROM_Read; + command[1] = EEPROM_addr; + command[2] = (unsigned int)dat; + command[3] = 1; + command[4] = cclk_kHz; + + iap_entry( command, status ); + + return ( dat[0] ); +}