/****************************************************************************** * Copyright (C) 2014-2015 HangZhou SiZhu Co.,LTD. * *----------------------------------------------------------------------------- * File: fm25v02.h * Description: head file of fm25v02.c used for FRAM operation * Author: Lishoujian (867693272@qq.com) * Date: Jan 8, 2015 *****************************************************************************/ /* ----------------------- Platform includes --------------------------------*/ #ifndef __FM25V02_H #define __FM25V02_H #include "sys.h" //op cmd #define FM_WREN 0x06 //write enable #define FM_WRDI 0x04 //write disable #define FM_RDSR 0x05 //read status register #define FM_WRSR 0x01 //write status register #define FM_READ 0x03 //read fram memory data #define FM_FSTRD 0x0b //fast read fram memory data #define FM_WRITE 0x02 //write fram memory data #define FM_SLEEP 0xb9 //go to sleep mode #define FM_RDID 0x9f //read fram ID:9 bytes #define FM25V02_CS_1 0 #define FM25V02_CS_2 1 #define FM25V02_CS_LOW {if(Fram_cs_flag!=1){GPIO_ResetBits(GPIOD,GPIO_Pin_7);GPIO_SetBits(GPIOB,GPIO_Pin_7);}else{FM25V02_CS_2_LOW}}//CS = 0 #define FM25V02_CS_HIGH {GPIO_SetBits(GPIOD,GPIO_Pin_7);GPIO_SetBits(GPIOB,GPIO_Pin_7);}//CS = 1 ///×¢Ò⣬ǧÍò²»ÒªÔÙÖжÏÖжÁдEEPROM£¬Èç¹ûÖжÏ֮ǰÊÇÔÚ²Ù×÷EEPROM£¬ÓÖÔÚÖжÏÖжÁдEEPROM£¬Ôò¿ÉÄܳöÎÊÌâ #define FM25V02_CS_2_LOW {GPIO_ResetBits(GPIOB,GPIO_Pin_7);GPIO_SetBits(GPIOD,GPIO_Pin_7);}//CS_2 = 0 #define FM25V02_CS_2_HIGH GPIO_SetBits(GPIOB,GPIO_Pin_7) //CS_2 = 1 #define FM_ReadWriteByte(dat) SPI3_ReadWriteByte(dat) #define FM25V02_ioconfig() SPI3_ioconfig() u8 EEPROM_MultipleWrite(u8 *data,u32 addr,u16 bytes); void EEPROM_MultipleRead(u8 *data, u32 addr, u16 bytes); void FM25V02_data_write(uint8 data,u32 addr16); uint8 FM25V02_data_read(uint32 addr16); void FM25V02_stat_write(uint8 stat); uint8 FM25V02_stat_read(void); void FM25V02_sleep(void); void FM25V02_ID_read(uint8 *dst); float FM25V02_data_read_float(uint32 addr16); void FM25V02_data_write_float(uint32 addr16, float data); double FM25V02_data_read_double(uint32 addr16); void FM25V02_data_write_double(uint32 addr16, double data); u32 FM25V02_data_read_uint32(uint32 addr16); void FM25V02_data_write_uint32(uint32 addr16, uint32 data); u16 FM25V02_data_read_uint16(uint32 addr16); void FM25V02_data_write_uint16(uint32 addr16, uint16 data); extern volatile u8 Fram_cs_flag ; u8 EEPROM_MultipleWrite_CS_2(u8 *data,u32 addr,u16 bytes); u8 EEPROM_MultipleRead_CS_2(u8 *data,u32 addr,u16 bytes); void EEPROM_CS_2_test(void); #endif