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

外挂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文件:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

总结

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

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值