OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18985|回复: 23

STM32F407 驱动外Nandflash

[复制链接]

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
发表于 2012-7-31 14:56:23 | 显示全部楼层 |阅读模式
这几天在写Nandflash的驱动程序,从原子哥的例程中引用了驱动程序。现在开始调试,但是不知道为什么我的程序
总在读取ID的时候死掉。在读取ID之前只进行了一些系统的初始化工作,然后就读ID,程序进到读ID程序中就死,请问
大家有遇到过这种情况?帮忙分析分析原因,谢谢! 

程序死了之后,暂停运行,就会出现左边对话框。


千人千般苦,苦苦不相同!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2016-4-19
在线时间
139 小时
发表于 2016-4-19 15:57:35 | 显示全部楼层
io口配置出现的问题,pre引脚和rb引脚配置成IPU模式。
回复 支持 1 反对 0

使用道具 举报

38

主题

292

帖子

1

精华

高级会员

Rank: 4

积分
614
金钱
614
注册时间
2012-7-6
在线时间
0 小时
发表于 2012-7-31 15:34:34 | 显示全部楼层
哎!先帮你把帖子顶上去再说,其实这个问题我也想知道!
STM32F3系列公司现有货供应!STM32F0,STM32F2,STM32F3,STM32F4 银洋电子专业一级代理http://www.y-ec.com 联系电话:021-53086303  淘宝网:http://y-ec.taobao.com
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-7-31 15:38:52 | 显示全部楼层
你关闭了JTAG..
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
 楼主| 发表于 2012-7-31 15:40:18 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我的JTAG没动它,程序一死然后我暂停运行,就出现对话框,确定之后,程序就直接跳出DEBUG了
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-7-31 16:03:51 | 显示全部楼层
应该是你程序禁止了JTAG.这种情况.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
 楼主| 发表于 2012-8-1 09:24:35 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
现在的程序可以读ID了,不过我的NANDFLASH有5字节的ID,最后一个ID的读取不对,我知道是我的ID读取不对,我的DATA设置为u32,如果是5字节,这个该怎么修改呢?
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-1 09:29:10 | 显示全部楼层
NAND没玩过呢...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-1 09:29:39 | 显示全部楼层
回复【6楼】爱学习的小妞:
---------------------------------
用数组存ID
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

233

主题

957

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1789
注册时间
2011-10-9
在线时间
222 小时
发表于 2012-8-2 16:46:48 | 显示全部楼层
k9f1g08读id
typedef struct
{
  u8 Maker_ID;
  u8 Device_ID;
  u8 Third_ID;
  u8 Fourth_ID;
}NAND_IDTypeDef;


void FSMC_NAND_ReadID(NAND_IDTypeDef* NAND_ID)
{
  u32 data = 0;

  /* Send Command to the command area */ 
  *(vu8 *)(Bank_NAND_ADDR | CMD_AREA) = 0x90;
  *(vu8 *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00;

   /* Sequence to read ID from NAND flash */
   data = *(vu32 *)(Bank_NAND_ADDR | DATA_AREA);

   NAND_ID->Maker_ID   = ADDR_1st_CYCLE (data);
   NAND_ID->Device_ID  = ADDR_2nd_CYCLE (data);
   NAND_ID->Third_ID   = ADDR_3rd_CYCLE (data);
   NAND_ID->Fourth_ID  = ADDR_4th_CYCLE (data);  
}
回复 支持 反对

使用道具 举报

233

主题

957

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1789
注册时间
2011-10-9
在线时间
222 小时
发表于 2012-8-2 16:47:47 | 显示全部楼层
顺便放个附件  呵

AN2784 使用大容量STM32F10xxx的FSMC驱动外部的存储器.pdf

715.29 KB, 下载次数: 3239

回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
 楼主| 发表于 2012-8-2 16:50:28 | 显示全部楼层
回复【10楼】simms01:
---------------------------------
我该问题已经解决了,呵呵,不过还是谢谢你共享的文件,相信会有人需要的!
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2012-8-31
在线时间
0 小时
发表于 2012-8-31 08:53:31 | 显示全部楼层
回复【楼主位】爱学习的小妞:
---------------------------------
跪求 楼主是怎么解决这个问题的啊。。。。我也有这个问题
回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
 楼主| 发表于 2012-9-4 10:03:23 | 显示全部楼层
回复【12楼】daifishing:
---------------------------------
我当时是我的GPIO管脚配置错误,所以导致这样的结果,你检查一下你的管脚配置,不知道你用的是什么芯片?
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2012-9-4 11:54:22 | 显示全部楼层
楼主是男的还是女的?
你玩nand,直接用STM32里面的FSMC算了,至于具体地址,参考STM32的数据手册。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
 楼主| 发表于 2012-9-4 12:08:20 | 显示全部楼层
回复【14楼】Tardis:
楼主是男的还是女的?
你玩nand,直接用STM32里面的FSMC算了,至于具体地址,参考STM32的数据手册。
---------------------------------
这个问题跟男的和女的有关系吗?
我就是直接用STM32中的FSMC控制的,但是管脚好像也要配置的
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2012-9-6 10:57:16 | 显示全部楼层
回复【15楼】爱学习的小妞:
---------------------------------
是要配置管脚呢,STM32的FSMC我不是很熟悉,但我知道是直接操作FSMC协议所连接的器件的寄存器的。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-7-16
在线时间
0 小时
发表于 2013-7-16 11:21:34 | 显示全部楼层
回复【6楼】爱学习的小妞:
---------------------------------您好,我现在也遇到了跟您之前一模一样的问题,请问怎么解决的?程序一进入READID()就弹出对话框。在线等回复,谢谢。
回复 支持 反对

使用道具 举报

13

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2016-4-19
在线时间
139 小时
发表于 2016-4-19 16:24:58 | 显示全部楼层
我的nand flash 是用的是k9f1g16的芯片,读取出来的id不正确,理论上的id应该是ec,c1,xx,c4,但我得到的结果是ec,00 c1,00,希望得到帮助。
回复 支持 反对

使用道具 举报

13

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2016-4-19
在线时间
139 小时
发表于 2016-4-23 10:19:36 | 显示全部楼层

原子哥,你好,我用的stm32f103ve的芯片,通过fsmc在做对nand flash的实验,我用的存储芯片是k9f1g16u0m,器件ID读出来是正确的,但读写一页的时候,读出来的数据全是0xff,怀疑是没有写进去或者地址计算错误,麻烦原子哥帮忙分析一下,谢谢
回复 支持 反对

使用道具 举报

17

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
891
金钱
891
注册时间
2016-2-16
在线时间
160 小时
发表于 2016-5-1 09:52:21 | 显示全部楼层
三星的K9系列NAND FLASH,擦除后数据页均是0xff,若不是那就是坏块,写完数据(非0xFF)后读取全是0xFF,说明没有写入数据,请检查写入子程序。
回复 支持 反对

使用道具 举报

13

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2016-4-19
在线时间
139 小时
发表于 2016-5-4 14:12:22 | 显示全部楼层
hbyue 发表于 2016-5-1 09:52
三星的K9系列NAND FLASH,擦除后数据页均是0xff,若不是那就是坏块,写完数据(非0xFF)后读取全是0xFF,说 ...

的确是没有写进去,原因是硬件上写保护拉低了。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2023-12-13
在线时间
0 小时
发表于 2023-12-13 11:03:43 | 显示全部楼层
原子哥,你好,我用的stm32f407zet6的芯片,通过fsmc在做对nand flash的实验,我用的存储芯片是HY27UF082G2A,器件ID读出来是正确的,但读写一页的时候,读出来的数据全是0xff,怀疑是没有写进去或者地址计算错误,硬件写保护直接接到了3.3。目前还不知原因,麻烦原子哥帮忙分析一下,谢谢
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2022-8-11
在线时间
7 小时
发表于 2024-6-17 09:54:46 | 显示全部楼层
simms01 发表于 2012-8-2 16:46
k9f1g08读id
typedef struct
{
  u8 Maker_ID;
  u8 Device_ID;
&nbsp ...

问一下,成功实现外置nand flash的存储数据吗,可不可以发一些K9F1系列的程序资料
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 12:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表