社区导航

 

搜索
查看: 1320|回复: 6

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

[复制链接]

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-9 21:08 | 显示全部楼层 |阅读模式
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);


回复

使用道具 举报

70

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

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

点评

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


回复

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-11-12 08:20 | 显示全部楼层
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位了。不知道还需要修改那个寄存器,还是说外部引脚需要做上拉或者下来处理?

点评

应该不用再设置了吧,你再试试吧。  详情 回复 发表于 2018-11-12 09:52


回复

使用道具 举报

954

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

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

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

点评

没找到什么地方修改,现在只能是把地址移位处理了。好郁闷!  详情 回复 发表于 2018-11-15 08:09


回复

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

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

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


回复

使用道具 举报

1962

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-30 11:04 | 显示全部楼层
地址移位处理能解决也行
感觉还是设置的问题


回复

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-23 07:59 | 显示全部楼层
没找到,按照官方例修改的,看PDF也没找到还有什么需要修改的设置。


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2019-4-23 01:59 , Processed in 0.221169 second(s), 16 queries , Gzip On, MemCache On.

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