资源简介
MX25l1606 SPI Flash驱动代码
代码片段和文件信息
/* ---------------------------------- File Description --------------------------------------------
【文件功能】:本文件为 MAX25L1606E SpiFLASH芯片驱动文件
MAX25L1606E 存储量为16M bit 分为512个扇区,每个扇区有4K byte 16个扇区为一个block 总共有32个block
每page 为256个字节
最快访问速度高达86MHz
【创建时间】:2012年10月22日星期一13:20:40
【文件版本】:V1.0
【作者声明】:本文件作者为温业中可通过email与作者联系: eric540@163.com
------------------------------------------------------------------------------------------ */
#include “stm32f10x.h“
#include “mx25L1606E.h“
#include “serial_debug.h“
void SpiFlash_Init(void)
{
flashInfoTypedef flashInfo;
//WP
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOC &GPIO_InitStructure);
FLASH_WP_High();
SPI1_Configuration();
FlashGet_ElectronicInfo(&flashInfo);
// printf(“ManufacturerID=%02X\r\n“flashInfo.ManufacturerID);
// printf(“DeviceID=%02X\r\n“flashInfo.DeviceID[0]);
if((flashInfo.ManufacturerID==0xc2)&&(flashInfo.DeviceID[0]==0x14))
{
printf(“\tFlash Info: MXIC(Macronix International Co.Ltd\r\n“);
}
FlashGet_Info(&flashInfo);
// printf(“ManufacturerID=%02X\r\n“flashInfo.ManufacturerID);
// printf(“DeviceID=%02X%02X\r\n“flashInfo.DeviceID[0]flashInfo.DeviceID[1]);
if((flashInfo.DeviceID[0]==0x20)&&(flashInfo.DeviceID[1]==0x15))
{
printf(“\tFlashType:MX25L1606E FlashSize:16Mbit\r\n\tTotal 32 Blocks 16 Sectors/Block 4KB/Sector\r\n“);
}
#if 0
FlashEnter_DeepPowerDown();
tmp=FlashReleaseFrom_DeepPowerDownE();
printf(“ElectronicSignature=%02x\r\n“tmp); //打印结果为: 0x14
#endif
}
void FlashWait_Busy(void)
{
u8 flashSta;
u32 retry=0;
FLASH_CS_Low();
SPI_Write(RDSD_CMD);
do{
flashSta=SPI_Read();
if(retry++>FLASH_BUSY_TIMEOUT)
break;
}while(flashSta&0x80);
//printf(“%d\r\n“retry);
SPI_CS_High();
}
void FlashGet_Info(flashInfoTypedef * pFlashInfo)
{
// FlashWait_Busy();
FLASH_CS_Low();
SPI_Write(RDID_CMD);
pFlashInfo->ManufacturerID=SPI_Read();
pFlashInfo->DeviceID[0]=SPI_Read();
pFlashInfo->DeviceID[1]=SPI_Read();
SPI_CS_High();
}
void FlashGet_ElectronicInfo(flashInfoTypedef * pFlashInfo)
{
// FlashWait_Busy();
FLASH_CS_Low();
SPI_Write(REMS_CMD);
SPI_Write(DUMMY_BYTE);
SPI_Write(DUMMY_BYTE);
SPI_Write(0x00); //manufacturer‘s ID first
pFlashInfo->ManufacturerID=SPI_Read();
pFlashInfo->DeviceID[0]=SPI_Read();
SPI_CS_High();
}
void FlashEnter_DeepPowerDown(void)
{
FLASH_CS_Low();
SPI_Write(DP_CMD);
SPI_CS_High();
}
void FlashReleaseFrom_DeepPowerDown(void)
{
FLASH_CS_Low();
SPI_Write(RDP_CMD);
SPI_CS_High();
}
u8
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2969 2012-10-23 13:44 spi.c
文件 672 2012-10-22 13:36 spi.h
文件 7762 2012-10-23 15:13 mx25L1606E.c
文件 1101 2012-10-23 14:32 mx25L1606E.h
----------- --------- ---------- ----- ----
12504 4
相关资源
- 黑苹果GT240显示驱动
- CH340驱动软件
- MC9S12XS128驱动0v7620 图像采集源程序C代
- Rockey4狗改密码工具读密码,修改密码
- MAC安装第三方驱动无法启动的解决方
- USB设备过滤驱动[Src+Bin]
- gt911芯片驱动
- BTN,BTS电机驱动芯片PCB库
- ADIS16405芯片手册加程序 包含底层驱动
- 英特尔8系列芯片ahci驱动
- S5PV210 spi驱动 TJC3224T022_011X 屏幕
- DAC8560驱动Verilog
- ADS8865 Verilog驱动
- 用ndis开发的完整防火墙源代码
- STM32f407 SDcard
- bme280温湿度大气压强传感器驱动程序
- USB Serial Port win7 64/32 驱动
- CCD摄像头驱动及应用程序
- 51单片机驱动继电器例程+pretues仿真
- 51单片机A4988驱动源码
- DM9000应用手册如何写DM9000驱动
- 另外一个更加详细的SED1520驱动程序
- IR2110驱动电路
- HT1632CLED点阵驱动芯片资料
- SPI驱动之南瑞NRSEC3000加密芯片驱动开
- 嵌入式linux之mini2440的hc-sr04超声波驱动
- RockChip_RK616开发文档v1.1
- C8051F驱动程序
- 驱动和应用层的三种通信方式
- STM32驱动CH452
评论
共有 条评论