#include "../main/SystemInclude.h" /* File start *****************************************************************/ #if ENABLE_USE_MB85RS16 /******************************************************************************/ /******************************************************************************/ void FRAMInit(void) { FRAM_WP_OUTPUT(); FRAM_CS_OUTPUT(); DisableFRAM(); DisableFRAMWrite(); } /******************************************************************************/ void ProtectFRAM(void) { EnableFRAMWrite(); EnableFRAM(); SPIWriteData(FRAM_WREN); SPIWriteData(FRAM_WRSR); SPIWriteData(FULL_ARRAY_PROTECTION); SPIWriteData(FRAM_WRDI); DisableFRAM(); DisableFRAMWrite(); } /******************************************************************************/ void UnProtectFRAM(void) { EnableFRAMWrite(); EnableFRAM(); SPIWriteData(FRAM_WREN); SPIWriteData(FRAM_WRSR); SPIWriteData(NO_PROTECTION); SPIWriteData(FRAM_WREN); DisableFRAM(); } /******************************************************************************/ void WriteByteToFRAM(u16 address, u8 data) { EnableSPI(SPI_MODE3); UnProtectFRAM(); EnableFRAM(); SPIWriteData(FRAM_WRITE); SPIWriteData(address>>8); SPIWriteData(address); SPIWriteData(data); DisableFRAM(); ProtectFRAM(); DisableSPI(); } /******************************************************************************/ u8 ReadByteFromFRAM(u16 address) { u8 data; EnableSPI(SPI_MODE3); EnableFRAM(); SPIWriteData(FRAM_READ); SPIWriteData(address>>8); SPIWriteData(address); data = SPIReadData(); DisableFRAM(); DisableSPI(); return data; return 0; } /******************************************************************************/ void WriteMultiByteToFRAM(u16 address, u8 *pointer, u8 length) { u8 I; EnableSPI(SPI_MODE3); delay_ms(1); UnProtectFRAM(); EnableFRAM(); SPIWriteData(FRAM_WRITE); SPIWriteData(address>>8); SPIWriteData(address); for(I=0; I>8); SPIWriteData(address); for(I=0; I