yzhiju

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju  发布于  2014-10-21 14:59:12
采纳率 0%
12个问答
17398

hi3520d spi norflash s25fl256s 地址模式问题

 
hi3520d 支持 3byte 和 4byte 两种 Flash 地址模式 ,可通过将管脚 上下拉来选择默认地址模式。我把海思hi3520d flash 默认地址模式改为4byte地址模式,uboot程序重新烧写了一下 ,u-boot不能运行起来 串口 光标像后移动一段小距离停顿一下 继续向后移动一段距离 一直循环,这是为什么 哪里还需要修改吗
我来回答
回答18个
时间排序
认可量排序

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2014-10-21 15:11:05
认可0
以前出现跟这一样的问题“HI3520D 接MX25L25635E/735E/635F 这个型号的SPI FLASH 按复位键或者WDT RESET, 系统无法正常复位
[url]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=2882&extra=page%3D3%26filter%3Dtypeid%26typeid%3D1[/url]” 发现从3byte地址模式切换到4byte地址模式之后硬件暖复位就不能重新启动。 本来想把flash reset引脚跟主芯片reset引脚连接一起,能够通过复位解决,但发现s25fl256s 第三脚为保留不是复位引脚,所以想能不能修改软件方面解决问题。

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2014-10-22 10:14:02
认可0
在 Hi3521 单板上所选用的外围芯片型号如下:
?  DDR SDRAM:K4B2G1646C-HCK0
?  NAND Flash:TC58NVG1S3ETA00
?  SPI Flash:FL128PIFL121QQ030
如果选用的外围芯片不是以上型号时,需要适当修改 SDK 中的“osdrv/
tools/pc_tools/uboot_tools/”目录下的配置表格,对应的单板才能正常运行。

是要修改这些吗

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2014-10-22 22:34:23
认可0

:lol:lol:lol经过差不多1星期努力终于有解决办法了 方法1:配带硬件复位的flash 跟主芯片reset连接在一起
方法2:不要切换到4地址模式,还是3地址模式,通过a3-byte (24 bits)ddressing from command + Bank Address 来使用16M以后的空间

rafael_wl

1个粉丝

12

问答

0

专栏

7

资料

rafael_wl 2014-10-23 08:55:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8570&ptid=4012]yzhiju 发表于 2014-10-22 22:34[/url]
经过差不多1星期努力终于有解决办法了 方法1:配带硬件复位的flash 跟主芯片reset连接在一起
...[/quote]

感觉第一种方案更靠谱。

ymir

2个粉丝

23

问答

0

专栏

8

资料

ymir 2015-08-07 08:40:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8570&ptid=4012]yzhiju 发表于 2014-10-22 22:34[/url]
经过差不多1星期努力终于有解决办法了 方法1:配带硬件复位的flash 跟主芯片reset连接在一起
...[/quote]

请问方法2如何操作?

ebainar

0个粉丝

7

问答

0

专栏

0

资料

ebainar 2015-11-06 11:47:56
认可0
本帖最后由 ebainar 于 2015-11-6 11:49 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=8551&ptid=4012]yzhiju 发表于 2014-10-22 10:14[/url]
如果选用的外围芯片不是以上型号时,需要适当修改 SDK 中的“osdrv/
tools/pc_tools/uboot_tools/”目录下的配置表格,对应的单板才能正常运行。[/quote]

此处很关键!

四年

0个粉丝

4

问答

0

专栏

0

资料

四年 2015-12-18 11:43:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=21788&ptid=4012]ebainar 发表于 2015-11-6 11:47[/url]
此处很关键![/quote]

这个表有没有修改范例之类呢?

四年

0个粉丝

4

问答

0

专栏

0

资料

四年 2015-12-21 10:39:27
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8570&ptid=4012]yzhiju 发表于 2014-10-22 22:34[/url]
经过差不多1星期努力终于有解决办法了 方法1:配带硬件复位的flash 跟主芯片reset连接在一起
...[/quote]

求第二种方法具体实现!拜托拜托{:3_54:}

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2016-01-05 10:04:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=23607&ptid=4012]四年 发表于 2015-12-21 10:39[/url]
求第二种方法具体实现!拜托拜托[/quote]

修改flash初始化配置,一般手册里有说怎么配置寄存器

yidian7

0个粉丝

4

问答

0

专栏

0

资料

yidian7 2016-04-05 14:44:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=23526&ptid=4012]四年 发表于 2015-12-18 11:43[/url]
这个表有没有修改范例之类呢?[/quote]

me too,想换spi flash 为大一点的,不知道这个表怎么配置

Jacky

0个粉丝

8

问答

0

专栏

0

资料

Jacky 2016-06-23 15:24:26
认可0
楼主,能否详细说一下你的解决方法呢?我现在的MX25L25635F  8pin的上电可以启动,但热复位不行,初步判断是SPI FLASH启用的4地址模式,RESET引脚不起作用,现更改为 16pin的有单独RESET引脚的,但3520D认不到此FLASH,那位大侠给指导下,谢谢

Benz

0个粉丝

29

问答

0

专栏

0

资料

Benz 2016-12-03 17:12:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=21788&ptid=4012]ebainar 发表于 2015-11-6 11:47[/url]
此处很关键![/quote]

请问这里怎么修改, 我用的是3518a  换了一个更大的SPI flash(32M), 发现uboot启动之后,环境变量和kernel这些都写不进去,  是不是这里的原因

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2016-12-05 10:34:08
认可0
spi_ids.h 定义配置修改

******************************************************************************/

#ifndef SPI_IDSH
#define SPI_IDSH

/*****************************************************************************/

#define _1K             (0x400)
#define _2K             (0x800)

#define _4K             (0x1000)
#define _8K             (0x2000)
#define _16K            (0x4000)
#define _32K            (0x8000)

#define _64K            (0x10000)
#define _128K           (0x20000)
#define _256K           (0x40000)
#define _512K           (0x80000)

#define _1M             (0x100000)
#define _2M             (0x200000)
#define _4M             (0x400000)
#define _8M             (0x800000)

#define _16M            (0x1000000)
#define _32M            (0x2000000)
#define _64M            (0x4000000)

#define INFINITE        (0xFFFFFFFF)
/*****************************************************************************/

#define SPI_IF_READ_STD           (0x01)
#define SPI_IF_READ_FAST          (0x02)
#define SPI_IF_READ_DUAL          (0x04)
#define SPI_IF_READ_DUAL_ADDR     (0x08)
#define SPI_IF_READ_QUAD          (0x10)
#define SPI_IF_READ_QUAD_ADDR     (0x20)

#define SPI_IF_WRITE_STD          (0x01)
#define SPI_IF_WRITE_DUAL         (0x02)
#define SPI_IF_WRITE_DUAL_ADDR    (0x04)
#define SPI_IF_WRITE_QUAD         (0x08)
#define SPI_IF_WRITE_QUAD_ADDR    (0x10)

#define SPI_IF_ERASE_SECTOR       (0x01)  /* sector erase, 64K */
#define SPI_IF_ERASE_CHIP         (0x02)  /* chip erase */
#define SPI_IF_ERASE_4K           (0x04)  /* 4K */
#define SPI_IF_ERASE_8K           (0x08)  /* 8K */

#define SPI_IF_ERASE_SECTOR_4K                (0x01)  /* 4K */
#define SPI_IF_ERASE_SECTOR_32K                (0x02)  /* 32K */
#define SPI_IF_ERASE_SECTOR_64K                (0x04)  /* 64K */
#define SPI_IF_ERASE_SECTOR_256K        (0x08)  /* 256K */

////Modify -----------
#define NEW_4BYTE_COMMAND

#ifndef NEW_4BYTE_COMMAND

/*****************************************************************************/
#define SPI_CMD_BRWR          (0x17)  /*write value to BAR*/
#define SPI_EN4B_VALUE        (0x80)  /*the enable 4Byte addr len value*/
#define SPI_EX4B_VALUE        (0x00)  /*the disable 4Byte addr len value*/
#define SPI_4BYTE_ADDR_LEN    (4)     /*address len 4Byte*/
/*****************************************************************************/

#define SPI_CMD_WREN                        0x06   /* Write Enable */
#define SPI_CMD_WRDI                        0x04   /* Write Disable */
/*****************************************************************************/
#define SPI_CMD_SE_4K                        0x20   /* 4KB sector Erase */
#define SPI_CMD_SE_32K                        0x52   /* 32KB sector Erase */
#define SPI_CMD_SE_64K                        0xD8   /* 64KB sector Erase */
#define SPI_CMD_SE_256K                        0xD8   /* 256KB sector Erase */
#define SPI_CMD_SE                        0xD8   /* 64KB Sector Erase */
#define SPI_CMD_BE                        0xC7   /* chip erase */
/*****************************************************************************/
#define SPI_CMD_WRSR                        0x01   /* Write Status Register */
#define SPI_CMD_RDSR                        0x05   /* Read Status Register */
#define SPI_CMD_RDSR2                        0x35   /* Read Status Register-2 */
#define SPI_CMD_RDID                        0x9F   /* Read Identification */
/*****************************************************************************/
#define SPI_CMD_PP                        0x02   /* Page Programming */
#define SPI_CMD_WRITE_DUAL                0xA2   /* fast program dual input */
#define SPI_CMD_WRITE_QUAD                0x32   /* fast program quad input */
#define SPI_CMD_WRITE_DUAL_ADDR        0xD2   /* Dual I/O High Performance Write */
#define SPI_CMD_WRITE_QUAD_ADDR        0x12   /* Quad I/O High Performance Write */
/*****************************************************************************/
#define SPI_CMD_READ                        0x03   /* Read Data bytes */
#define SPI_CMD_FAST_READ        0x0B   /* Read Data Bytes at Higher Speed */
#define SPI_CMD_READ_DUAL                0x3B   /* fast read dual output */
#define SPI_CMD_READ_QUAD                0x6B   /* fast read quad output */
#define SPI_CMD_READ_DUAL_ADDR        0xBB   /* Dual I/O High Performance Read */
#define SPI_CMD_READ_QUAD_ADDR        0xEB   /* Quad I/O High Performance Read */
/*****************************************************************************/
#define SPI_CMD_SR_WIP                                1      /* Write in Progress */
#define SPI_CMD_SR_WEL                                2      /* Write Enable Latch */
#define SPI_CMD_SR_QE                                ((0x1)<<9) /* quad enable */
#define SPI_CMD_SR_XQE                                (0x0<<9)      /* quad disable */
/*****************************************************************************/
#define SPI_CMD_EN4B        0xB7  /* enter 4 bytes mode and set 4 byte bit as '1' */
#define SPI_CMD_EX4B        0xE9  /* exit 4 bytes mode and clear 4 byte bit */
/*****************************************************************************/

#else
/*****************************************************************************/
#define SPI_CMD_BRWR          (0x17)  /*write value to BAR*/
#define SPI_EN4B_VALUE        (0x80)  /*the enable 4Byte addr len value*/
#define SPI_EX4B_VALUE        (0x00)  /*the disable 4Byte addr len value*/
#define SPI_4BYTE_ADDR_LEN    (4)     /*address len 4Byte*/
/*****************************************************************************/

#define SPI_CMD_WREN                    0x06   /* Write Enable */
#define SPI_CMD_WRDI                    0x04   /* Write Disable */
/*****************************************************************************/
#define SPI_CMD_SE_4K                   0x21   /*4 4KB sector Erase */

#define SPI_CMD_WREN                    0x06   /* Write Enable */
#define SPI_CMD_WRDI                    0x04   /* Write Disable */
/*****************************************************************************/
#define SPI_CMD_SE_4K                   0x21   /*4 4KB sector Erase */
#define SPI_CMD_SE_32K                  0x52   /* 32KB sector Erase */
#define SPI_CMD_SE_64K                  0xDC   /*4 64KB sector Erase */
#define SPI_CMD_SE_256K                 0xDC   /*4 256KB sector Erase */
#define SPI_CMD_SE                      0xDC   /*4 64KB Sector Erase */
#define SPI_CMD_BE                      0xC7   /*4 chip erase */
/*****************************************************************************/
#define SPI_CMD_WRSR                    0x01   /* Write Status Register */
#define SPI_CMD_RDSR                    0x05   /* Read Status Register */
#define SPI_CMD_RDSR2                   0x07   /* Read Status Register-2 */
#define SPI_CMD_RDID                    0x9F   /* Read Identification */
/*****************************************************************************/
#define SPI_CMD_PP                      0x12   /* 4 Page Programming */
#define SPI_CMD_WRITE_DUAL              0xA2   /* fast program dual input */
#define SPI_CMD_WRITE_QUAD              0x34   /* fast program quad input */
#define SPI_CMD_WRITE_DUAL_ADDR 0xD2   /* Dual I/O High Performance Write */
#define SPI_CMD_WRITE_QUAD_ADDR 0x12   /* Quad I/O High Performance Write */
/*****************************************************************************/
#define SPI_CMD_READ            0x13   /* 4 Read Data bytes */
#define SPI_CMD_FAST_READ       0x0c   /* 4 Read Data Bytes at Higher Speed */
#define SPI_CMD_READ_DUAL       0x3c   /* 4 fast read dual output */
#define SPI_CMD_READ_QUAD       0x6c   /* 4 fast read quad output */
#define SPI_CMD_READ_DUAL_ADDR  0xBc   /* 4 Dual I/O High Performance Read */
#define SPI_CMD_READ_QUAD_ADDR  0xEc   /* 4 Quad I/O High Performance Read */
/*****************************************************************************/
#define SPI_CMD_SR_WIP                          1      /* Write in Progress */
#define SPI_CMD_SR_WEL                          2      /* Write Enable Latch */
#define SPI_CMD_SR_QE                           ((0x1)<<9) /* quad enable */
#define SPI_CMD_SR_XQE                          (0x0<<9)      /* quad disable */
/*****************************************************************************/
#define SPI_CMD_EN4B    0xB7  /* enter 4 bytes mode and set 4 byte bit as '1' */
#define SPI_CMD_EX4B    0xE9  /* exit 4 bytes mode and clear 4 byte bit */
/*****************************************************************************/

#endif




vim drivers/mtd/spi/hisfc350/hisfc350_spi_s25fl256s.c
修改 #define SPI_EN4B  0x80 为 #define SPI_EN4B  0x00

Benz

0个粉丝

29

问答

0

专栏

0

资料

Benz 2017-03-07 12:01:27
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=42379&ptid=4012]yzhiju 发表于 2016-12-5 10:34[/url]
spi_ids.h 定义配置修改

************************************************************************** ...[/quote]

你好,请问修改 #define SPI_EN4B  0x80 为 #define SPI_EN4B  0x00, 怎么理解?

qn1514966050

0个粉丝

2

问答

0

专栏

0

资料

qn1514966050 2018-04-13 16:39:13
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8534&ptid=4012]yzhiju 发表于 2014-10-21 15:11[/url]
以前出现跟这一样的问题“HI3520D 接MX25L25635E/735E/635F 这个型号的SPI FLASH 按复位键或者WDT RESET,  ...[/quote]

大神,我是hi3516a接MX25L25635E型号的32Mspi flash,3btye模式可以启动,但是用不了后面的16M,上拉以后改成4byte模式以后,和你同样的问题,请问您最后是怎么解决的

qn1514966050

0个粉丝

2

问答

0

专栏

0

资料

qn1514966050 2018-04-13 16:42:56
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8570&ptid=4012]yzhiju 发表于 2014-10-22 22:34[/url]
经过差不多1星期努力终于有解决办法了 方法1:配带硬件复位的flash 跟主芯片reset连接在一起
...[/quote]

我按你的方法,上拉了SFC_BOOT_MODE,改成4BYTE启动,并且把系统复位引脚和flash复位引脚连接,但还是启动不了,光标一直后移,请问还需要改动uboot和kernel的代码或者其他的什么地方吗?:)

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2018-06-15 14:03:50
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=86545&ptid=4012]qn1514966050 发表于 2018-4-13 16:42[/url]
我按你的方法,上拉了SFC_BOOT_MODE,改成4BYTE启动,并且把系统复位引脚和flash复位引脚连接,但还是启 ...[/quote]

uboot tool的excel表格需要修改

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2014-10-22 10:08:55
认可0
:Q:Q:Q:Q:Q
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区