您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 求助 关于bf518的外部总线
本帖共有1443个阅读者
发表帖子 发表投票 回复主题
求助 关于bf518的外部总线
ladengaa(论坛新手)
ladengaa
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:162
积分:6
注册时间:2012/2/6
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
求助 关于bf518的外部总线
看了映射图的表 不是很理解



但是 只有19根外部地址总线,19跟全是1的话,只能是0x2000 0000 ~0x2007 ffff。少一位,是怎么访问全的?

还有 所说的1M bity 是指 位宽只有8位?

对于外部总线很迷茫,看半天也不懂。哪位大大 给讲讲,谢谢了。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/2/6 19:59:52
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

图片看不到,不过能猜到是什么图,给你补一张。


上传的图片
  20122712134316.jpg [ 46.47 KB 330×494 ] (缩略时请点击查看原图)

 


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/2/7 12:13:44
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

1. 地址线19根是 A1-A19 ,由于balckfin都是16bit的总线宽度,所以不存在A0,但是计算地址时,需要将A0计入,所以要看做是20根地址线而非19根。只是A0地址线永远是0而已。

2.所说得1M是1MByte, 即一个字节,包含8bit, 如0x45,就是1Byte,也是8bit.    他的总线是16bit,即位宽16位,每次访问两个byte,因为数据计量单位是按byte的,而非宽度为8bit.通常我们用得32MByte的SDRAM,是16M16bit的,这样叫法不够清晰,所以通常叫32MByte。

3. 找一下bf533上的视频教程 EBIU相关的章节。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/2/7 12:23:05
ladengaa(论坛新手)
ladengaa
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:162
积分:6
注册时间:2012/2/6
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
那也就是说,0x0000 0000这个地址写数的时候,是写入两个8位宽的数。
下一个数就是写0x0000 0002这个地址,也是一个16位宽的数。

以此类推

也就是说 其实按照16位宽来说,访问地址其实只有512k.

那如果外部存储器是8位宽呢?

接线的时候就要
a0(外部)接a1 (内部)
a18(外部)接a19(内部)


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/2/7 20:35:15
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

如果存储器是8位的话,可以按照你说的方法接,不过你在访问的时候,内存中的数据高8位全是0,只有偶数地址有数据,使用时需注意一下。

另外blackfin上有个ABE1管脚,可以作为地址线A0使用,在使用char指针对地址1进行访问时,ABE1会置高,以实现地址线A0的功能。



这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/2/8 9:58:16
ladengaa(论坛新手)
ladengaa
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:162
积分:6
注册时间:2012/2/6
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢斑竹

再问一下其实16位宽 也可以这么接吧
a0(外部)接a1 (内部)
a18(外部)接a19(内部)

只是在写数据时 就写偶数地址(内部),就相当于逐个地址访问外部地址,因为没有a0

是么?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/2/8 21:38:01
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

可以这么理解,16位宽度时,访问0地址,会将1地址的数据读取到数据线的高8位,访问地址2,会将地址3的数据读取到高8位,所以A0地址永远为0.

通常外部存储器都有16位模式,一般都有固定的8位和16位的接法,按照参考设计连接即可正常访问。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/2/8 21:43:46
qscwsxesz(论坛新手)
qscwsxesz
头衔:社区公民
帮派:无帮无派
帖数:11
金钱:222
积分:20
注册时间:2014/2/27
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
想请教一下,char指针对地址1进行访问时,#ABE0=1、#ABE1=0,那数据是出现在D[15:8]还是D[7:0]?谢谢!!

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/3/6 18:08:12
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
对地址1访问时,ABE1会变为1,并非ABE0,数据出现在D[7:0]

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/3/7 8:33:34
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154003 Call, 1 Queries, Processed in 0.031250 second(s),