1.擦除
NandFlash是以块为单位进行擦除的,一个块是128K,从上面的时序图我们可以看到,首先我们要发出60命令,然后发出三个行地址,然后发送D0H,然后等待擦除结束。
int nand_erase(unsigned int addr, unsigned int len)
{
int page = addr / 2048;
if (addr & (0x1FFFF))
{
printf("nand_erase err, addr is not block alignnr");
return -1;
}
if (len & (0x1FFFF))
{
printf("nand_erase err, len is not block alignnr");
return -1;
}
nand_select();
while (1)
{
page = addr / 2048;
nand_cmd(0x60);
/* row/page addr */
nand_addr_byte(page & 0xff);
nand_addr_byte((page>>8) & 0xff);
nand_addr_byte((page>>16) & 0xff);
nand_cmd(0xD0);
wait_ready();
len -= (128*1024);
if (len == 0)
break;
addr += (128*1024);
}
nand_deselect();
return 0;
}
2.烧写
从上面的时序图可以看到,要想烧写NandFlash,我们首先发出80命令,然后发出五个地址,然后开始写数据,数据写完之后发出10命令,然后开始等待烧写完成。
void nand_write(unsigned int addr, unsigned char *buf, unsigned int len)
{
int page = addr / 2048;
int col = addr & (2048 - 1);
int i = 0;
nand_select();
while (1)
{
nand_cmd(0x80);
/* 发出地址 */
/* col addr */
nand_addr_byte(col & 0xff);
nand_addr_byte((col>>8) & 0xff);
/* row/page addr */
nand_addr_byte(page & 0xff);
nand_addr_byte((page>>8) & 0xff);
nand_addr_byte((page>>16) & 0xff);
/* 发出数据 */
for (; (col < 2048) && (i < len); )
{
nand_w_data(buf[i++]);
}
nand_cmd(0x10);
wait_ready();
if (i == len)
break;
else
{
/* 开始下一个循环page */
col = 0;
page++;
}
}
nand_deselect();
}
上一篇:ARM架构与X86架构的区别
下一篇:S3C2440裸机------NandFlash编程_数据读取
推荐阅读最新更新时间:2024-11-02 13:27
设计资源 培训 开发板 精华推荐
- MC33074DTBR2G高速低压比较器典型应用
- DER-507 - 175 mW 恒定电压、通用输入、非隔离降压转换器
- 宿舍开灯UPS版
- LTC1727ES8-5、3.3V 和 5V 双电源监视器的典型应用
- 适用于STM32L496ZG MCU的STM32 Nucleo-144开发板,支持Arduino,ST Zio和morpho连接
- TCR6DA1530U、200mA、3.0V 和 1.5V 输出电压双路输出 CMOS 低压降稳压器的典型应用
- LT1117CM 高效低压差稳压器的典型应用
- LTC3522EUD 演示板、400mA、1MHz 同步降压-升压/200mA 同步降压转换器,采用 3x3 QFN 封装
- 60 W USB-PD和Quick Charge 3.0降压-升压参考设计文档包
- 基于ALED6000汽车级可调光LED驱动器的1A降压LED驱动板
- 与PI一起探索 LinkSwitch-TN2 的秘密看视频答题赢好礼!
- 下载有礼:2017年泰克亚太专家大讲堂第二期: 100G/200G/400G通讯标准发展趋势及解决方案
- 免费测评|ESP32-S2-Kaluga-1新型多媒体开发板,灵活拆装,满足多种需求
- 畅游安富利人工智能云会展,挑战60天打卡学习养成记!冲击华为Mate40 Pro、Apple iPad Air等豪礼啦!
- Mouser&TE直播:解锁智能家居部件新技术,探索连接黑科技
- 有奖测评 | 英飞凌新品情报站:最新 5V XENSIVTM PAS CO2 传感器 套件测评
- 了解数字功能的模拟控制器,千元好礼等你来拿!
- 观看安森美半导体高灵敏度触摸传感器应用视频,轻松答题赢好礼!
- STM32 线上技术日开播【40块新品开发板等你抽】|解读多款新品技术及应用
- 英飞凌考考你关于AI芯片的冷知识