硬件准备
ADSP-21375EVB开发板 一块
链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.13.363c74ceu2TmPX&id=692942666361
AD-HP530ICE仿真器 一个
链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.53fc4901E2z1wN&id=38007242820
软件准备
Visual DSP++5.1.2
跑程序:按键控制 LED 灯
以上全部都OK之后,我们就可以开始跑程序了。(抱歉上面几项写的很罗嗦,都是我 这近 15 年来开发ADI DSP实际项目里碰到问题的经验之谈,希望能够对用户有帮助)
跑程序就涉及到了Visual DSP++软件的操作,我有录制过一个视频教程,是专门讲 VisualDSP++软件的,把这个软件几乎每一个菜单,每一个符号都详细的过了一遍,如果有需要的用户可以参考一下那个视频。
VDSP软件教学视频的优酷链接:https://v.youku.com/v_show/id_XMzE3Nzc5NTY0.html
这里我就简单的列一个基本程序,是如何使用VDSP来跑的。
首先,VDSP不认中文路径,这个非常关键,意味着你必须要把你得程序全部都放在纯英文路径下,否则编译就会出错,完全无法进行程序开发,切记切记!(中文也包含符号,特别注意)
我们来跑一个按键控制灯的程序。程序我放在了D盘根目录底下,有人会说你D盘是“工作”,中文路径,跟上面说的纯英文路径不一致啊。别闹,这个就是纯英文路径。 “.dpj”是你的工程文件,你在VDSP里新建工程也会出现这个,我这里就不新建了,直接调用已经写好的。怎么调用呢?软件里有打开工程的选项,我一般都更直接一些,扯着这个“ADSP21375_PBLED.dpj”直接拽进软件里就好了。
打开这个.c,我们来看看这个程序想干嘛?
结合整个 C 文件里的程序,我们看懂了,总共三个按键,对应前面有三个LED灯,按 下一个按键,对应某一个LED灯亮。
让我们来编译运行,试试看
当程序跑起来之后,我按下KEY1,则LED1亮起;按下KEY2,则LED2亮起,按下KEY3, 则LED3亮起。
至于怎么用 21375 来控制按键点灯,这些个程序上的配置,那就仔细看看整个程序把, 我这里不再多罗嗦了。补充一点,看不懂的,比如这个寄存器为什么这么配,可以直接 vdsp 的 help 里去搜就能搜到啦,VDSP 的help集成了所有有用的资料,非常好用!
特别注意:21375的寄存器详细说明在哪里?写程序一定会遇到配置寄存器的问题,而非常多ADI DSP的新手用户,不光是21375,都会找不到寄存器的详细说明文件。这里统一说一下,所有ADI DSP的寄存器说明,到VDSP的help里去搜!举一个最简单的例子。
BF533的PPI,PPI_CONTROL这个寄存器的详细说明,上哪里去找(21375同理)。
我们打开 Visual DSP++软件,打开帮助。
然后输入你要找的寄存器名称。就会列出所有跟这个寄存器相关的文档,找到 533 的,点开就看到啦。
你会发现你这个寄存器的详细介绍文档是哪个?看左边。
这个文档的名字叫:ADSP-BF533 Hardware Reference…,所以所有的寄存器都在这个文档里进行了详细的说明。
21375也一样,也是在ADSP-21375 Hardware Reference的文档里,如果你嫌麻烦,就在help 里找,如果你想要通读一下,我们也有提供这个文档,打开文档仔细看即可!
跑程序(2):SDRAM 自检
通过对 SDRAM 写入测试数据,读出校验,判断 SDRAM 内存的工作情况。
运行代码,等代码跑完后,会自己停下来,然后我们就可以从内存数据窗口中看到写入的数据。
输入一个地址:0x200000,数据如下:
音频开发: 21375 4in8out(四进8出)
这个程序,我们将会在开发板上实现48Khz或96Khz或192Khz采样率的音频直通程序。原理上来讲,手机或者PC的音源通过1分2音频线接入21375开发板的模拟输入接插件,将模拟音频导入,通过 AD1938 进行模拟转数字,数字音频信号进入 21375数字音频DSP 中,不做任何处理,交给AD1938再进行数字转模拟,将模拟的音频信号送到对应的通道,实现多通道输出。
硬件连接如下图:
为什么输入接 2/3 通道,输出接 6/7通道(通道号在板子的背面的丝印),这是因为程序就是这么写的的,我们来看看程序是怎么写的:
把工程拖入 VDSP 中,编译,运行,手机播放音源,输出到音响听到音乐,完成这个例程。
看看这个程序,代码实现了ADC从IN2进,DAC从OUT4出。至于板子上哪个接口是IN1,哪个是OUT4?请看下图,红色的接插件是输入,2个黑色的接插件是输出:
程序里的IN1是板子物理接口的0/1(板子丝印);
程序里的IN2是板子物理接口的2/3;
程序里的OUT1是板子物理接口的0/1;
程序里的OUT2是板子物理接口的2/3;
程序里的OUT3是板子物理接口的4/5;
程序里的OUT4是板子物理接口的6/7。
这个程序是4进8出的,大家也可以根据程序的通道对应关系,去相应的改插一下其他的接口。
21375的程序汇总
ADI提供了很多SHARC的例程,其中也包括的21375。这些例程序在你的Visual DSP++软件安装目录下,每一个例程都有详细的Readme说明,用户可自行调试做参考。
结束语
时间仓促,先写了个基本文档,后续有更多的例程和代码,请关注我们的网盘链接,每个新增的资料均会在网盘更新。
下个文章,我会写一些Flash Program,看看用21375怎么去实现BOOT。
老式麻将牌收藏价格
使用 iPhone 相機工具來設定你的拍攝