【杰理AC696X】外挂FLASH音乐播放及Bin文件制作

news2025/8/2 21:56:04

外挂FLASH音乐播放及Bin文件制作

测试SDK版本:《ac696n_soundbox_sdk_v1.6.0》


文章目录

  • 外挂FLASH音乐播放及Bin文件制作
  • 前言
  • 一、板级配置
    • 1.1 SPI配置
    • 1.2 FLASH配置
  • 二、FLASH音乐播放测试
  • 三、FLASH BIN文件制作
    • 1.1 FLASH+PC+WinHex
    • 1.2 U盘+分区工具+WinHex
    • 1.3 FLASH+PC+FLASH烧写工具
  • 总结


前言

SDK提供了外挂 flash录音、外挂 flash 提示音播放、外挂 flash FAT分区等功能。
此篇主要分享杰理主控外挂 flash FAT分区的调试步骤和bin文件的制作。


一、板级配置


1.1 SPI配置

在这里插入图片描述

//*********************************************************************************//
//                                 硬件SPI 配置                                    //
//*********************************************************************************//
#define	TCFG_HW_SPI1_ENABLE		ENABLE_THIS_MOUDLE
//A组IO:    DI: PB2     DO: PB1     CLK: PB0
//B组IO:    DI: PC3     DO: PC5     CLK: PC4
#define TCFG_HW_SPI1_PORT		'B'
#define TCFG_HW_SPI1_BAUD		4000000L
#define TCFG_HW_SPI1_MODE		SPI_MODE_UNIDIR_1BIT
#define TCFG_HW_SPI1_ROLE		SPI_ROLE_MASTER

TCFG_HW_SPI1_MODE,SPI工作模式选择(本例使用单线电路,选择 SPI_MODE_UNIDIR_1BIT):

enum spi_mode {
    SPI_MODE_BIDIR_1BIT,    //支持SPIx(x=0,1,2),全双工,di接收,do发送
    SPI_MODE_UNIDIR_1BIT,   //支持SPIx(x=0,1,2),半双工,do分时发送/接收
    SPI_MODE_UNIDIR_2BIT,   //支持SPIx(x=0),半双工,di & do共2bit分时发送/接收
    SPI_MODE_UNIDIR_4BIT,   //支持SPIx(x=0),半双工,di & do & d2 & d3共4bit分时发送/接收
};

在spi.c 中查看配置得spi是否使能(默认是使能的):

#define SPI0_ENABLE   0   //是否使能SPI0,使能后需定义spi0_p_data
#define SPI1_ENABLE   1   //是否使能SPI1,使能后需定义spi1_p_data
#define SPI2_ENABLE   0   //是否使能SPI2,使能后需定义spi2_p_data

注意:
1、SDK默认给出的几组硬件SPI的IO可能是错的,调试要以实际IC的规格书为准
2、SPI的工作模式一定要按照实际电路接法来选择


1.2 FLASH配置

//*********************************************************************************//
//                                 FLASH 配置                                      //
//*********************************************************************************//
#define TCFG_NORFLASH_DEV_ENABLE		    ENABLE_THIS_MOUDLE //需要关闭SD0
#define TCFG_FLASH_DEV_SPI_HW_NUM			1// 1: SPI1    2: SPI2
#define TCFG_FLASH_DEV_SPI_CS_PORT	    	IO_PORTC_03

选择FAT分区:

//*********************************************************************************//
//                                 fat_FLASH 配置                                  //
//*********************************************************************************//
... ...

#if  TCFG_NORFLASH_DEV_ENABLE
#define TCFG_NOR_FAT                    1//ENABLE
#define TCFG_NOR_FS                     0//ENABLE
#define TCFG_NOR_REC                    0//ENABLE
#else
#define TCFG_NOR_FAT                    0//ENABLE
#define TCFG_NOR_FS                     0//ENABLE
#define TCFG_NOR_REC                    0//ENABLE
#endif

FAT分区配置:

#if TCFG_NOR_FAT
NORFLASH_DEV_PLATFORM_DATA_BEGIN(norflash_fat_dev_data)
    .spi_hw_num     = TCFG_FLASH_DEV_SPI_HW_NUM,
    .spi_cs_port    = TCFG_FLASH_DEV_SPI_CS_PORT,
#if (TCFG_FLASH_DEV_SPI_HW_NUM == 1)
    .spi_pdata      = &spi1_p_data,
#elif (TCFG_FLASH_DEV_SPI_HW_NUM == 2)
    .spi_pdata      = &spi2_p_data,
#endif
    .start_addr     = 0,
    .size           = 2*1024*1024,
NORFLASH_DEV_PLATFORM_DATA_END()
#endif

注意:FLASH size配置要小于等于实际FLASH容量,size配置大于实际flash容量时,上电会复位,下面是复位信息:
在这里插入图片描述
也可以在上电初始化flash时,重新指定下flash的大小,做个自适应处理:
在这里插入图片描述
flash初始化正常的打印信息:
在这里插入图片描述


二、FLASH音乐播放测试


PC模式有读卡器功能,可用于设备的读写,打开PC模式:

#define TCFG_APP_PC_EN					    1

样机用usb线连接电脑进入PC模式,如果flash是空片,读到设备会提示格式化:
在这里插入图片描述
格式化后,就得到了一个带fat系统的设备了,这个设备就相当于一个u盘或TF卡:
在这里插入图片描述
可以拷贝一些歌曲到设备中,样机可以切到music mode 进行播放。


三、FLASH BIN文件制作


1.1 FLASH+PC+WinHex

步骤一:首先通过 usb 连接样机。然后将设备格式化成FAT格式,然后往里面放想要加入的音频文件。
在这里插入图片描述

步骤二:用 Winhex 软件 打开刚刚的设备,打开 Winhex 软件,按下图操作:
在这里插入图片描述
在这里插入图片描述
步骤三:打开后出现如下界面:
在这里插入图片描述
步骤四:全选并复制所有数据(全选快捷键 Ctrl+A —— 复制 快捷键 Ctrl+C)
在这里插入图片描述
步骤五:点击 Winhex 软件菜单栏的新建文件,生成一个跟目标 flash 一样存储大小的文件,
例如,目标 flash 为 2Mbyte,如下图
在这里插入图片描述
步骤六:如下图。点击 0x0 处,然后快捷键 Ctrl+B,出现如下图。点击 OK,即可以把刚才选到的数据复制到新建的文件里。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
步骤七:把此文件保存为 bin 文件。下载此 BIN 文件入 flash 即可。
在这里插入图片描述


1.2 U盘+分区工具+WinHex

步骤一:将u盘插入电脑,打开DiskGenius分区工具,将u盘分出一个2MB大小的分区(实际用的FLASH多大就分多大):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
步骤二:按 1.1 FLASH+PC+WinHex 方法继续操作即可。

注意: 分区工具可以用其它替代


1.3 FLASH+PC+FLASH烧写工具

步骤一:首先通过 usb 连接样机。然后将设备格式化成FAT格式,然后往里面放想要加入的音频文件。

步骤二:将样机上的FLASH IC拆下来,用FLASH烧写工具读出flash内容并保存成BIN文件:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

总结

此篇的制作bin文件的方案有三个,其中1.1和1.2是不需要焊接或拆卸的,使用哪种方案依据实际情况而定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式单片机智能药盒设计(含代码)

目录 前言 设计的内容 (1)显示 (2)定时时间与用药量的设定 (3)实时时间调节 (4)报警功能 时钟模块 蓝牙模块 系统软件设计 系统主程序 按键函数 中断服务函数 作品展示 测试药…

2023年天津农学院专升本专业课参考教材

2023年天津农学院高职升本科专业课参考教材一、人力资源管理专业 1、《人力资源管理实用教程》 (第2版),吴宝华,北京大学出版社 2、《人力资源管理》(第4版),刘昕,中国人民大学出版社 3、《人力资源管理概论…

kobject 与sysfs属性文件读写

kobject和kset的简单总结 • kobject是struct kobject类型的对象。Kobject 有一个名字和一个引用计数。kobject 也有一个父指针(允许 kobjects 被安排到层次结构中),一个特定的类型,也许还有一个在 sysfs 虚拟文件系统中的表示。…

OceanBase 4.0 解读:分布式查询性能提升,我们是如何思考的?

关于作者 王国平 OceanBase高级技术专家 目前OceanBase SQL引擎的技术负责人。2016年加入 OceanBase,负责SQL引擎的研发工作。2008年毕业于哈尔滨工业大学,2014年在新加坡国立大学获得博士学位,博士期间主要研究方向是数据库领域的(多)查询…

C++入门(2)-类与对象

类与对象初步认识类与对象一、面向过程与面向对象的区别二、类与结构体三、类的定义四、类的实例化五、类对象六、this指针七、构造函数八、析构函数九、拷贝构造函数十、运算符重载函数初步认识类与对象 一、面向过程与面向对象的区别 C语言是面向过程进行编程,注…

springboot整合其他项目

目录 一,集成Druid 学习地址: 主要讲监控 基于springboot视图渲染技术上增加代码 1.1 增加pom依赖 1.2 先在application.yml中添加Druid的数据源 1.3 其次在全局配置文件application.yml中添加所需的配置 配置截图: 配置解析 1.4 启动…

电脑录屏快捷键是什么?win10自带屏幕录制在哪

​在使用电脑的过程中,我们难免会遇到使用电脑录屏功能。有时候可能是想录制网课,有时候可能是想录制游戏的精彩操作,有时候可能只是想录制会议内容。 电脑录屏能够将重要的画面内容进行录制,十分的方便。但也有很多的小伙伴不清…

Python基础(三):PyCharm安装和使用

文章目录 PyCharm安装和使用 一、PyCharm的作用 二、PyCharm系统要求 三、下载和安装 四、PyCharm基本使用 五、PyCharm的基本设置 1、修改主题 2、修改代码文字格式 3、修改解释器 4、项目管理 PyCharm安装和使用 14天学习训练营导师课程:杨鑫《Python…

一、VSCode——免安装

介绍 Visual Studio Code支持可移植模式。此模式使 VS Code 创建和维护的所有数据都位于自身附近,因此可以跨环境移动。 此模式还提供了设置 VS Code 扩展的安装文件夹位置的方法,这对于阻止在 Windows AppData 文件夹中安装扩展的企业环境非常有用。 …

极市打榜|70G+已标注数据集出炉,油品泄露识别等全新算法上线!

极市打榜 算法打榜是极市平台推出的一种算法项目合作模式,至今已上线 100 产业端落地算法项目,已对接智慧城市、智慧工地、明厨亮灶等多个行业真实需求,算法方向涵盖目标检测、行为识别、图像分割、视频理解、目标跟踪、OCR等。 开发者报名…

CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器

CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器 CAN是最新进的现场总线,灵活性好,通讯可靠性高,抗干扰能力强,超长通信距离等优点,110个节点,兼带CAN-FD功能产品,容错电压可达-70V~ 70V,温度范围高达-40C ~ 150C最初应用于汽车电子,目前已广…

安信可Ai-WB1系列AT指令连接MQTT阿里云物联网平台

文章目录前言1 准备材料2 创建云端设备3 硬件连接4 配置终端设备5 MQTT实现发布&订阅消息联系我们前言 本文将介绍安信可AI-WB1系列通过AT指令接入阿里云物联网平台,实现MQTT的订阅和发布。 1 准备材料 AI-WB1系列模组或者开发板USB转TTL模块/Type-C数据线阿…

数仓建设教程

50000字,数仓建设保姆级教程,离线和实时一网打尽(理论实战) 上 - 腾讯云开发者社区-腾讯云 (tencent.com)50000字,数仓建设保姆级教程,离线和实时一网打尽(理论实战) 下_五分钟学大数据的技术博客_51CTO博客#yyds干货盘点#最强最全…

什么是DDoS攻击?企业服务器是否需要DDoS防御

有时候你可能会遇到某个网站突然打不开,这一段时间后发布自己被DDos攻击的公告, 那么,为什么DDOS攻击能让服务器瘫痪?黑客又如何执行DDos攻击的呢? DDoS全称为Distributed Denial of Service(分布式拒绝服…

Anemoi hash:一种SNARK-friendly的哈希函数

随着zk的兴起,出现了一大批zk友好且面向算术化(Arithmetization-Oriented)的哈希函数,如MiMC-Hash, Rescue–Prime, Poseidon等等,本文要介绍的Anemoi是今年新出的一种zk友好且面向算术化的哈希函数,与其他哈希函数相比&#xff0…

让我们进入面向对象的世界(三)

文章目录前言一.了解什么是继承二.我们针对继承来设计一个动物继承树前言2.1 第一步 找出共同属性和行为的对象2.2 设计代表共同状态行为的类2.3 决定子类是否让某项行为有不同的运作方式。2.4我们仔细去观察一下子类的特征,争取更多的抽象化的机会。三.继承的相关语…

leetcode:887. 鸡蛋掉落【经典dp定义】

目录题目截图题目分析ac code总结题目截图 题目分析 变量:鸡蛋的数量,楼层n,尝试的次数m有一个单调性容易发现:尝试的次数越多,能解决楼层越高的确切值另一个单调性:鸡蛋的数量越多,能够解决楼…

Flutter 实现局部刷新 StreamBuilder 实例详解

一、前言 在flutter项目中,页面内直接调用setState方法会使得页面重新执行build方法,导致内部组件被全量刷新,造成不必要的性能消耗。出于性能和用户体验方面的考虑我们经常会使用局部刷新代替全量刷新进行页面更新的操作。包括Provider、Va…

制造业企业如何高效进行生产计划排单?

随着社会的发展,个性化订单需求越来越多。面对如今更加多样化、紧迫化、随机化的订单,企业必须采用科学合理的方式和手段对生产计划进行控制,以提高企业的经济效益。生产计划在实施的过程中,由于一些原因,往往造成实施…

Node.js 模块化及npm概念介绍

文章目录模块化1 模块化的基本概念1.1 什么是模块化1.2 模块化规范2 Nodejs中的模块化2.1 Nodejs中模块的分类2.2 加载模块2.3 模块的作用域2.4 向外共享模块作用域中的成员2.4.1 module对象2.4.2 module.export对象2.4.3 共享成员时的注意点2.4.4 exports对象2.4.5 exportshe …