硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2811|回复: 35
收起左侧

我想做一个NANDFLASH的烧写器

[复制链接]

6

主题

44

回帖

62

积分

初级会员

积分
62
发表于 2017-8-26 09:37:35 | 显示全部楼层 |阅读模式
我想做一个NANDFLASH烧写器;走FSMC总线,大家给点思路啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-26 09:47:03 | 显示全部楼层
NAND模拟U盘是否可以
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 09:50:26 | 显示全部楼层
那这样不是还要做文件系统
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 09:51:02 | 显示全部楼层
要移植文件系统
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 09:51:42 | 显示全部楼层
其实就是一个读写的问题,
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 10:06:34 | 显示全部楼层
有人做过吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-26 10:09:10 | 显示全部楼层
不仅仅是一个读写的问题,你需要实现的东西很多,需要找一个合适文件系统:http://www.armbbs.cn/forum.php?m ... 613&fpage=2
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 10:22:42 | 显示全部楼层
我是烧写BIN文件;
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-26 10:43:37 | 显示全部楼层

回 nicejack 的帖子

nicejack:我是烧写BIN文件; (2017-08-26 10:22) 
仅仅是烧写一个bin文件,用个SPI Flash就行了,比NAND简单多了,使用这个例子,模拟U盘,电脑端放进去就行了,需要用时,你的芯片读出来即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14894
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 10:51:49 | 显示全部楼层
我这个产品主要功能就是烧写BIN文件到NANDFLASH
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-26 10:59:33 | 显示全部楼层

回 nicejack 的帖子

nicejack:我这个产品主要功能就是烧写BIN文件到NANDFLASH (2017-08-26 10:51) 
别一句一句话的说,一起把你要实现的功能全部在一个楼层里面说完。

1,用的什么芯片? 硬件做了没有? 基本的读写实现了吗?现在存在的问题是什么?
2,   现在需要什么? 仅仅是烧写BIN,需不需要文件系统,模拟U盘是否方便。

还是下载器下载,或者外部存储器加载到NAND,说了这么多,你现在也没有说到重点上。
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 11:04:33 | 显示全部楼层
我就是要做这样一个东西
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 11:05:17 | 显示全部楼层
通过USB和上位机通讯
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 11:06:10 | 显示全部楼层
把BIN文件写到NANDFLASH;查看NANDFLASH容量;
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 11:10:22 | 显示全部楼层
当然我也要做显示NANDFLASH里面的内容和清空存储内容的动作
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 11:59:06 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-26 15:57:14 | 显示全部楼层
老大给点思路撒
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-28 01:56:54 | 显示全部楼层

回 nicejack 的帖子

nicejack:老大给点思路撒 (2017-08-26 15:57) 
原理图直接采用V5的就行。
需要文件系统就参考这个帖子:http://www.armbbs.cn/forum.php?m ... 613&fpage=2
不需要文件系统就直接移植读写驱动就够。
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-28 16:00:11 | 显示全部楼层
你这个是基于LUT做的;我没有任何我这个NANDFLASH资料;也没有LUT资料;我按照你的程序做;一直不能把LUT的表建立起来
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-28 16:03:13 | 显示全部楼层
你底层的驱动都是根据LUT来做的
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-28 18:35:57 | 显示全部楼层
FSMC_NAND_ReadPage(BufNand, 10, 0x06, 10);
        /*for(i= 0; i < 256; i+=2)
        {  //128  1024
            if(((i%16)==0)){
                printf("\\r\\n");
                printf("  Num:0x%04x: ",i);*/
            //}
            printf("%02X%02X  ",BufNand,BufNand[i+1]);
        //}
        printf("\\r\\n");
        delay_ms(100);
        //NAND_Format();
        FSMC_NAND_WritePage(BufNand, 10, 0x06, 10);
怎么格式化不能用
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-28 18:36:55 | 显示全部楼层
}*/
    //NAND_BuildLUT();
    NAND_Init();
    //FSMC_NAND_Init();
还有建立LUT这个函数我这里也没法用
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-8-29 02:47:14 | 显示全部楼层

回 nicejack 的帖子

nicejack:}*/
    //NAND_BuildLUT();
    NAND_Init();
    //FSMC_NAND_Init();
还有建立LUT这个函数我这里也没法用 (2017-08-28 18:36)
不要搞这个LUT了,你就实现个读写功能就行了,下载V4板子里面RL-FlashFS的例子,看NAND驱动部分,里面做了修改,主要实现读写即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=11814
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-30 15:47:51 | 显示全部楼层
/* ·¢Ëí2á3yÃüáî */
    NAND_CMD_AREA = NAND_CMD_ERASE0;

    _ulBlockNo <<= 6;    /* ¿éoÅ×a»»Îaò3±àoÅ */

    #
你这里算法是怎么样的:
1:块号转页号(你这里是转页地址吧)
2:你这两个地址周期是根据手册哪里来的啊
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-30 15:50:54 | 显示全部楼层
不是把你这里是块号转成块的地址吧?不是块号转页啊?擦除只关心块;不关心页地址;行地址
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-30 15:51:18 | 显示全部楼层
你这个算法是怎么得到的啊
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-8-30 17:19:39 | 显示全部楼层
NAND_CMD_AREA = NAND_CMD_ERASE0;

    _ulBlockNo <<= 6;    /* ¿éoÅ×a»»Îaò3±àoÅ */

   
这里应该是原变量右移8位吧?而不是左移6位之后再右移8位?
还有你这个传进来根本不应该是块号?而是地址?
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-9-9 14:22:48 | 显示全部楼层
有没有多PLANE操作的例子
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-9-9 14:23:19 | 显示全部楼层
有多PLANE操作的例子吗
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-9-9 17:44:36 | 显示全部楼层
uint8_t FSMC_NAND_WritePage(uint8_t *_pBuffer, uint32_t _ulPageNo, uint16_t _usAddrInPage, uint16_t _usByteCount)
{
    uint16_t i;

    /* 发送页写命令 */
    NAND_CMD_AREA = NAND_CMD_WRITE0;

   
   
    /* 写数据 */
    for(i = 0; i < _usByteCount; i++)
    {
        NAND_DATA_AREA = _pBuffer;

        //delay_ms(500);
        }
        for(i = 0; i < 256; i+=2)
        {  //128  1024
            if(((i%16)==0)){
                printf("\\r\\n");
                printf("  Num:0x%04x: ",i);
            }
            printf("%02X%02X  ",_pBuffer,_pBuffer[i+1]); //
        }
        //printf("\\r\\n"); //

          printf("\\r\\n");
          delay_ms(100);

    printf("ok3***\\n");
    NAND_CMD_AREA = NAND_CMD_WRITE_TRUE1;
        for (i = 0; i < 20; i++)
    {;
    }
  NAND_CMD_AREA = 0x31;
   printf("FSMC_NAND_WritePage\\n");
    /* 检查操作状态 */


    if (FSMC_NAND_GetStatus() == NAND_READY)
    {
        return NAND_OK;
    }
    return NAND_FAIL;
}
怎么我只能写到NANDFLASH的缓存中;不能到数据寄存器中;

回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-9-15 19:37:30 | 显示全部楼层
怎么NANDLFAHS这个代码里没有WP信号
回复

使用道具 举报

6

主题

44

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2017-9-15 19:38:08 | 显示全部楼层
怎么NANDFLASH驱动这个代码里没有WP这个信号
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-1-15 20:44:15 | 显示全部楼层
我想做一个NANDFLASH的烧写器 [修改]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2020-1-15 21:18:49 | 显示全部楼层
niexiaohui 发表于 2020-1-15 20:44
我想做一个NANDFLASH的烧写器 [修改]

这个好做,你打算如何做。
回复

使用道具 举报

2

主题

70

回帖

76

积分

初级会员

积分
76
发表于 2020-1-20 08:44:22 | 显示全部楼层
感觉楼主就是要做个NAND flash 的编程器,类似西尔特那种,可以烧写各种类型的flash
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2020-1-21 00:54:29 | 显示全部楼层
sup999 发表于 2020-1-20 08:44
感觉楼主就是要做个NAND flash 的编程器,类似西尔特那种,可以烧写各种类型的flash

这个可以有,我们的H7-TOOL的SPI接口和FMC接口都引出了,都可以做NAND烧写功能。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-10 23:31 , Processed in 0.570099 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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