原创 Blackfin的技术文章和教学视频连载9:PLL和EBIU-2

2014-7-31 10:06 814 4 4 分类: 处理器与DSP 文集: Blackfin的技术文章和教学视频连载

    接上篇,再来说说EBIU,就是我们俗称的外部总线接口!Blackfin的绝大多数型号都是有总线接口的,当然也有少量型号没有,比如BF506,BF592等。

 
    ADSP-BF53x 的EBIU 接口共有16 根数据线,19 根地址线,支持同步的SDRAM 接入和异步的总线外设接入,ADSP-BF53x 的异步EBIU 接口共有4 个BANK,每个BANK 1MByte,支持各种总线接口设备。
 
    EBIU 接口采用指针方式访问,通过宏定义出要访问的地址,然后通过指针进行读写数据操作。
 
    20140731094522159.jpg
 
    上图是ADSP-BF53x 处理器的内存分配表,其中地址0~0x08000000 为SDRAM地址,地址0x20000000~0x203fffff为EBIU 的异步Bank 地址。
 
    接口寄存器说明:
 
    寄存器               功能
    EBIU_AMBCTL0         BANK0,BANK1 时序配置寄存器
    EBIU_AMBCTL1         BANK2,BANK3 时序配置寄存器
    EBIU_AMGCTL          EBIU使能寄存器
 
    我们来看一段例子代码,详细品一品Blackfin的EBIU:
 
#define pADDR (volatile unsigned short *)0x1000 //定义一个指针,地址指向0x1000
*pADDR = 0x1234; //向0x1000 地址里写入数据0x1234
i = *pADDR; //读出该地址数据
printf("addr is %x\n",pADDR); //打印出当前访问的地址
printf("data is %x\n",i); //打印出当前地址中的数据
*pADDR = 0xaa55; //向0x1000 地址里写入数据0xaa55
i = *pADDR; //读出该地址数据
printf("addr is %x\n",pADDR); //打印出当前访问的地址
printf("data is %x\n",i); //打印出当前地址中的数据
 
    这种中文注释看得懂吗?代码很简单,就是实现了通过 EBIU 接口访问SDRAM 空间地址0x1000,向0x1000 地址中写入数据并读出,打印出访问的地址和读出的数据。
 
    奉上这个代码的源码:
 
    百度云盘:链接: http://pan.baidu.com/s/1c09xoRm 密码: v0n1 
 
    这两章我们专门录制了一个视频教程:
 
 
    清晰版下载: 链接: http://pan.baidu.com/s/1cXtE2 密码: sm38
 
    下一章就来说一说SPI跟timer,依然是所有处理器都有的最常规的外设。
 
dsp
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条