社区导航

 
查看: 333|回复: 4

[求助] 28377d 使用EMFI读写数据,地址需要移位才能正确读取,这是什么原因?

[复制链接]

13

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-9 21:08:28 | 显示全部楼层 |阅读模式
28377d 使用EMFI读写数据,地址需要移位才能正确读取,这是什么原因?
通过emif读数据的时候,我想访问的数据例如我想读取异步设备地址0x90上的数据。要在DSP端访问地址0x100000+0x120。相当于0x90左移一位之后加上0x100000。不知道是因为什么。以下是初始化代码。
  Emif1Regs.ASYNC_CS2_CR.all =  (EMIF_ASYNC_ASIZE_32    | // 16Bit Memory
                                                          // Interface
                                 EMIF_ASYNC_TA_4        | // Turn Around time
                                                          // of 2 Emif Clock
                                 EMIF_ASYNC_RHOLD_1     | // Read Hold time
                                                          // of 1 Emif Clock
                                 EMIF_ASYNC_RSTROBE_4   | // Read Strobe time
                                                          // of 4 Emif Clock
                                 EMIF_ASYNC_RSETUP_1    | // Read Setup time
                                                          // of 1 Emif Clock
                                 EMIF_ASYNC_WHOLD_1     | // Write Hold time
                                                          // of 1 Emif Clock
                                 EMIF_ASYNC_WSTROBE_1   | // Write Strobe time
                                                          // of 1 Emif Clock
                                 EMIF_ASYNC_WSETUP_1    | // Write Setup time
                                                          // of 1 Emif Clock
                                 EMIF_ASYNC_EW_DISABLE  | // Extended Wait
                                                          // Disable.
                                 EMIF_ASYNC_SS_DISABLE    // Strobe Select Mode
                                                          // Disable.
  );
setup_emif1_pinmux_async_32bit(0);


回复

使用道具 举报

52

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-9 21:44:51 | 显示全部楼层
0x90是以半字(16bit)为单位的地址,0x120是以字节(8bit)为单位的地址

点评

我觉得也饿这里配置的问题,但是我翻看了半天PDF,发现配置字节宽度,就一个寄存器: Emif1Regs.ASYNC_CS2_CR.all = (EMIF_ASYNC_ASIZE_32 | // 32Bit Memory  详情 回复 发表于 7 天前


回复

使用道具 举报

13

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 7 天前 | 显示全部楼层
BasaraTama 发表于 2018-11-9 21:44
0x90是以半字(16bit)为单位的地址,0x120是以字节(8bit)为单位的地址

我觉得也饿这里配置的问题,但是我翻看了半天PDF,发现配置字节宽度,就一个寄存器:  Emif1Regs.ASYNC_CS2_CR.all =  (EMIF_ASYNC_ASIZE_32    | // 32Bit Memory
                                                          // Interface
                                 EMIF_ASYNC_TA_4        | // Turn Around time;
而且我也设置成32位了。不知道还需要修改那个寄存器,还是说外部引脚需要做上拉或者下来处理?

点评

应该不用再设置了吧,你再试试吧。  详情 回复 发表于 7 天前


回复

使用道具 举报

344

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 7 天前 | 显示全部楼层
bingtuohun 发表于 2018-11-12 08:20
我觉得也饿这里配置的问题,但是我翻看了半天PDF,发现配置字节宽度,就一个寄存器:  Emif1Regs.ASYNC_C ...

应该不用再设置了吧,你再试试吧。

点评

没找到什么地方修改,现在只能是把地址移位处理了。好郁闷!  详情 回复 发表于 4 天前


回复

使用道具 举报

13

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 4 天前 | 显示全部楼层
alan000345 发表于 2018-11-12 09:52
应该不用再设置了吧,你再试试吧。

没找到什么地方修改,现在只能是把地址移位处理了。好郁闷!


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-19 16:54 , Processed in 0.156342 second(s), 15 queries , Gzip On, MemCache On.

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