用MCU来启动和控制ADAU1850应该怎么做?

news/2024/12/21 10:15:55/

编者的话

ADAU1850 实现脱机运行,是开发这个 DSP 的最后一步。这颗芯片必须外挂 MCU,通过 MCU 来启动 DSP,于是我们就做了一块 STM32 的 MCU子卡,通过对这个 MCU 的操作,来实现控制、开发和启动 DSP 的功能。

STM32 大家都非常熟,我们希望用户能在 STM32 的这个例程源码上,理解如何用 MCU 来搞 1850,当然并不是一定要用 STM32,用户可以以此为基础,随意用自己喜欢的 MCU。

开发前的准备工作

  1. 硬件准备 一块 ADAU1850 的开发板(含 MCU 子卡),一个 ADAU1850 专用仿真器,音频线两根, 音源一个,耳机一个,STLINK 烧写器一个。

ADAU1850EVB:ADAU1850开发板
LARK-1850:1850的专用仿真器
STLINK:MCU烧写器

在这里插入图片描述

如上图所示,绿色的未接入系统的这个小仿真器,就是我做的 STLINK。 特别注意:做这个文档里所有的工作,都不能插 MCU 子卡,因为会影响仿真器对 DSP 的调试,有冲突。

  1. 软件准备 安装 LARK Studio(这个我在ADAU1860的开发文章中有详细说过,就不重复了);安装单片机开发软件,安装单片机烧写器软件(这两个软件均提供了安装包,安装全部是下一步,任何电脑跳出来提 示是否强制安装的,一律选择强行安装)

Lark Studio 下要做的工作

  1. 首先使用 ADAU1850 专用仿真器(后面会简称仿真器)来调试 DSP,做好 DSP 的工程。我 随便做了一个程序,就让这个程序实现脱机吧。

程序用的是我文件夹里的这个,打开看一下:

在这里插入图片描述

在这里插入图片描述

0,1,2 三个通道同时输入,经过混音后,再过一个音量调节模块,以及一个静音模块,最后 输出到耳机。

程序很简单,我就不多说了。 通过仿真器在线下载,输入音源,输出耳机播放没问题,下一步就需要把这个程序让单片 机启动。

特别注意,一定要先用仿真器下载程序,验证程序的正确性,再才可以进行脱机的操作。 下载完程序后,耳机听到声音,调一下音量和静音,都没问题,实现我想要的功能。

  1. 导出这个 LARK STUDIO 里的工程,见下图:

在这里插入图片描述

将导出的文件指定到单片机工程的 MCU 文件夹内。(注意,导出文件名不用改,我在 MCU 工程里都设置好了一一对应的)

在这里插入图片描述

下图是我的单片机工程中,MCU 文件夹的位置(我单独拷贝出来,放到 D 盘,不含中文路 径):

导出后会覆盖原有文件,覆盖完之后,可看到文件的最新更新时间,就是你现在正在操作的 当下时间。

在这里插入图片描述

问你是否替换,选择是!

在这里插入图片描述

我是 2022 年 9 月 7 日做的这个程序,所以这个覆盖后的文件就显示的是我当下时间,说明 导出文件成功。 导出之后,DSP 部分的工作就全部做完了。

MCU 烧写

  1. 打开安装好的单片机开发软件,第一次打开,设置一个 workspace,基于 Eclipes 的开发环境 都是这样,没什么好说的:

  2. 进入之后,选择第三个,来 import 你的工程。

  3. 指定文件夹到你的工程文件

在这里插入图片描述

  1. 010 进行编译。

在这里插入图片描述

显示编译完成,获得 BIN 文件。BIN 文件在你的工程里:

在这里插入图片描述

  1. 使用单片机烧写工具来烧写 bin。

在这里插入图片描述

注意,要烧写 MCU,就必须先把板子断电,把 MCU 子卡插上,然后拔掉 DSP 仿真器,再 接上 STLINK。 STLINK 插入 PC 后,设备管理器里出现了它:

在这里插入图片描述

打开烧写软件:

在这里插入图片描述

点击下图中 connect to target 按钮,紧接着按一下 MCU 板子上的 RESET 键(注意:不按复位键会连接不 上的)

在这里插入图片描述

链接成功后如图:

在这里插入图片描述

擦除单片机 flash

在这里插入图片描述

擦除完成

在这里插入图片描述

加载 bin 文件(通过 STM32 软件编译而成)

在这里插入图片描述

加载完成:

在这里插入图片描述

烧写文件

在这里插入图片描述

选择默认的就可以了。

在这里插入图片描述

烧写完成:

在这里插入图片描述

断开板子电源,拔掉 STLINK,并将输入音源、输出耳机接好,板子重新上电,实现音频输 入后,耳机听到音乐,并且通过 MCU 卡上的按键可以控制音量大小和静音,完成脱机。


http://www.ppmy.cn/news/690079.html

相关文章

POJ 1850

组合数, 给一个字符串, 这个字符串必须为字典序升序,否则输出0, 求这个字符串排列在第几个; 距离 a 1 ; b2.... ab27 ac28.... ba不可以 az51, bc 52..... 长度不超过10 那么首先特盘递增,其次这个字…

HDOJ1850

题意:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。 现在我们不想研…

【CRC】一文搞懂CRC-8 SAE J1850 ZERO校验和

一、什么是 CRC 校验和 CRC —— Cyclic redundancy check 循环冗余校验,一种校验接收到的数据是否完整的算法,广泛应用于数据通信,大概流程如下 CRC8 —— 针对 8 位数据的 CRC 校验和 二、CRC-8 如何计算 首先,想要确定一个…

【代码】SAE J1850 CRC8算法 C语言的2种方式实现

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。…

GD32 汽车诊断协议J1850-PWM 测试

J1850-PWM 硬件说明:  MCU: GD32C103 120M,128K,32k RAM.  输入:USB 5V.  OBD功能口定义:OBD(2,10)VPWM、OBD 7(K线)、OBD 6(CAN H)、OBD 14(CAN L)、OBD 15(L线). 软件说明: 一、汽车CAN2.0(双线OBD 6、14) 1、支持波特率:1M、800K、500K、250K、125K、100K、62K、50…

POJ1850

题目链接:https://vjudge.net/problem/POJ-1850 AC思路: 可以把一个字符串S(设其长度为len) 所对应的数字看成排在其前面的所有字符串的个数加一。 对于S,排在其前面的字符串可以分成两类: 1、长度小于len 的所有字符串&#xff1…

GD32 汽车诊断协议 J1850-VPW 测试

J1850-VPW 硬件说明:  MCU: GD32C103 120M,128K,32k RAM.  输入:USB 5V.  OBD功能口定义:OBD(2,10)VPWM、OBD 7(K线)、OBD 6(CAN H)、OBD 14(CAN L)、OBD 15(L线). 软件说明: 一、汽车CAN2.0(双线OBD 6、14) 1、支持波特率:1M、800K、500K、250K、125K、100K、62K、50…

DELL 1850 产品简介

DELL 1850 使用的芯片是 Intel 1.处理器 32&64T 兼容 2.远程管理(可以进行远程安装软件,但要求在同一个局域网内,不能通过公网中转完成远程安装) SC1420 是dell 入门级产品,最多2个cpu 1800 ,1850 是戴尔的主要产品, 2800,2850 要比 1800,1850 扩展性好 185…