forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

周巍
2024-04-11 91ef77c00ed797b1048c5187f416e351e646a009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
/******************************************************************************
 * 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