|
/******************************************************************************
|
* 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
|