硬件准备
ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器
软件准备
Visual DSP++软件
硬件链接
硬件设计原理图
功能介绍
ADSP-EDU-BF53x 开发板上扩展接口的 PPORT3 中引出了 4 个扩展 IO 接口输出接口,这些连接到了 CPLD,通过 CPLD 将这些信号与 EBIU 总线连接,可以通过 EBIU 总线向 CPLD 的 EXT_IO_OUTDAT 寄存器写数据,实现扩展 IO 接口输出。其寄存器映射如下:
EXT_IO_OUTDAT 寄存器(读唯一):
EXT_IO_OUTDAT 寄存器地址:0x203E0000
EXT_IO_OUTDAT 寄存器是扩展 IO 数据寄存器,通过该寄存器可以对扩展 IO 置位
EXT_IO_OUTDAT 寄存器位:
硬件连接示意图
代码实现功能
代码实现了对扩展 IO 输出高低电位
测试步骤
- 将仿真器(ICE)与 ADSP-EDU-BF53x 开发板和计算机连接好。
- 先给 ADSP-EDU-BF53x 开发板上电,再为仿真器(ICE)上电。
- 运行 VisualDSP++ 5.0 软件,选择合适的 BF533 的 session 将仿真器与软件连接。
- 加载 VisualDSP++ 5.0 工程文件 BF53x_EXT_OUT.dpj,编译并全速运行。
- 测量扩展 IO 电位。
扩展 IO 会输出程序中设定的高低电位。
程序源码
#include <cdefBF533.h>
#include <sys\exception.h>
#include “cpld.h”
void Set_PLL(unsigned int pmsel,unsigned int pssel)
{
unsigned int new_PLL_CTL;
*pPLL_DIV = pssel;
asm(“ssync;”);
new_PLL_CTL = (pmsel & 0x3f) << 9;
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
*pPLL_CTL = new_PLL_CTL;
asm(“ssync;”);
asm(“idle;”);
}
}
void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}
void main(void)
{
Set_PLL(16,4);
Init_EBIU();
// *pEXT_IO_OUTDAT |= EXT_OUT0 | EXT_OUT1 | EXT_OUT2 | EXT_OUT3; //输出IO口设置为1
*pEXT_IO_OUTDAT &= ~(EXT_OUT0 | EXT_OUT1 | EXT_OUT2 | EXT_OUT3);//输出IO口设置为0
}