外挂FLASH音乐播放及Bin文件制作
测试SDK版本:《ac696n_soundbox_sdk_v1.6.0》
前言
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文件:
文章来源:https://www.toymoban.com/news/detail-400293.html
总结
此篇的制作bin文件的方案有三个,其中1.1和1.2是不需要焊接或拆卸的,使用哪种方案依据实际情况而定。文章来源地址https://www.toymoban.com/news/detail-400293.html
到了这里,关于【杰理AC696X】外挂FLASH音乐播放及Bin文件制作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!