基于Kinetis的KL系列之Cortex-M0的WAV音频播放器——系统设计(1)
2014-07-09 14:34
190 查看
一直想找个机会接触并使用飞思卡尔的KL系列来做一个小东西,对该Cortex-M0单片机 达到熟练运用的程度,从而能够使之在项目中得到推广,因为飞思卡尔的东西质量还是值得称赞的(虽然我司的FAE支持奇差无比,但还是难以抵挡其性价比高得诱惑
,另外目前飞思卡尔对于样片放开申请,很容易就能申请到也是其中之一的原因)
第一是确定功能,目前构思如下:
控制MCU: 初步选择MKL26Z256VLH4,具有以下资源
RAM: 32KB(按照以前做过WAV播放器,大概44.1kbps/16bit 音频数据时 系统耗费大概7KB内存左右,选了个这么大的,可以考虑软件MP3,或者做一个简单的GUI)
Flash:256KB(感觉如果存中文字库,貌似还不够啊,到时候看能不能压缩 选择个1000个常用汉字)
SPI: 2个(应该够了,SD卡需要独占一个SPI(因为有片选高发送DUMMY的操作,以前挂了2个是不是 软件写得有问题没操作起来),另外就可以挂很多SPI外设,用不同片选区分,
目前能想到的有SPI_LCD, SPI_Flash(存字库->或者不用)
UART: 3个,够用了,一个debug,另外一个用作命令解析
USB Device: 1个,用来将设备枚举成U盘
触摸按键:4个,刚好这个是KL系列的特色,一定得用上,作为播放器的功能按键
音量按键:2个,根据以往做过WAV播放器的经验,没有音量按键简直用得生不如死
音频DAC:最好选一款SNR高又集成耳放的,原先使用过WM8978,PCM1770,音质都一般,感觉缺少点味道。最后确定使用CS43L22(STM32F4 discovery,音质堪称完美
(对于木耳朵)),查了下手册,发现时I2C控制接口,我一直觉得这个控制接口不是很好,由于要ACK,使得速度上不去,有点鸡肋的味道,本人比较喜欢SPI的控
制接口,从设备少的时候,SPI首选。不过这次也可,看一下飞思卡尔的I2C是不是要好过STM32的
存储介质:TF卡,SPI Flash(备选,PCB作图时要画上去,用不用另说)
锂电池充放电:TP4057(国产神器)
LCD: 选一个小点阵的,作为文件浏览或者Debug输出,初步选用amobbs 论坛 Shanyan 送的那个小屏,插入图片一张,见下面
第二是需要考虑DAC的MCK选择方式
由于该DIY主要还是以熟悉运用KL26的MCU为主要目的,由于48KHZ和44.1kHZ的时钟不兼容,导致满足一种,另外一种就要有偏差,所以采用24M或12M 有源时钟作为MCK的输入时钟,当然KL26输出MCK也需要作为备用连接到DAC(网上相传主设备的时钟由于是经过PLL以后再分频输出,导致Jitter过高,到现在还是将信将疑的,由于没有专业设备测试验证,一直持保留态度)
第三是得考虑KL26的驱动支持问题
由于飞思卡尔的官网无相应底层库的支持,所以只能从官方外设例子中找相关驱动,这下又得去弄寄存器了(最没有技术含量的事情)
DAC的驱动 可以挖 STM32F4 Discovery里,应该会有,以下缕一下驱动的准备情况
(1)KL 时钟配置(深挖KL例子)
(2)GPIO驱动(深挖KL例子)
(3)SPI驱动(深挖KL例子)
(4)UART驱动(深挖KL例子)
(5)I2C驱动(深挖KL例子)
(6)DAC驱动(深挖STM32F4 Discovery例子)
(7)LCD驱动 (现成,amobbs坛友提供)
(8)播放器应用(现成,自己编写)
(9)调度器 (现成 使用protothread)
(10)界面框架(需要学习费点时间)
(11)U盘应用(需要确认飞思卡尔有没有例子,不然有点费时间)
(12)上位机控制界面(待决定)
总结,综上所述,该小制作的主功能实现成功率达90%以上,当然U盘和LCD界面可能会对自己的积累有很大的提升(因为以前没做过界面而且U盘很多时候没深挖,只使用库成功读写而已)
,另外目前飞思卡尔对于样片放开申请,很容易就能申请到也是其中之一的原因)
第一是确定功能,目前构思如下:
控制MCU: 初步选择MKL26Z256VLH4,具有以下资源
RAM: 32KB(按照以前做过WAV播放器,大概44.1kbps/16bit 音频数据时 系统耗费大概7KB内存左右,选了个这么大的,可以考虑软件MP3,或者做一个简单的GUI)
Flash:256KB(感觉如果存中文字库,貌似还不够啊,到时候看能不能压缩 选择个1000个常用汉字)
SPI: 2个(应该够了,SD卡需要独占一个SPI(因为有片选高发送DUMMY的操作,以前挂了2个是不是 软件写得有问题没操作起来),另外就可以挂很多SPI外设,用不同片选区分,
目前能想到的有SPI_LCD, SPI_Flash(存字库->或者不用)
UART: 3个,够用了,一个debug,另外一个用作命令解析
USB Device: 1个,用来将设备枚举成U盘
触摸按键:4个,刚好这个是KL系列的特色,一定得用上,作为播放器的功能按键
音量按键:2个,根据以往做过WAV播放器的经验,没有音量按键简直用得生不如死
音频DAC:最好选一款SNR高又集成耳放的,原先使用过WM8978,PCM1770,音质都一般,感觉缺少点味道。最后确定使用CS43L22(STM32F4 discovery,音质堪称完美
(对于木耳朵)),查了下手册,发现时I2C控制接口,我一直觉得这个控制接口不是很好,由于要ACK,使得速度上不去,有点鸡肋的味道,本人比较喜欢SPI的控
制接口,从设备少的时候,SPI首选。不过这次也可,看一下飞思卡尔的I2C是不是要好过STM32的
存储介质:TF卡,SPI Flash(备选,PCB作图时要画上去,用不用另说)
锂电池充放电:TP4057(国产神器)
LCD: 选一个小点阵的,作为文件浏览或者Debug输出,初步选用amobbs 论坛 Shanyan 送的那个小屏,插入图片一张,见下面
第二是需要考虑DAC的MCK选择方式
由于该DIY主要还是以熟悉运用KL26的MCU为主要目的,由于48KHZ和44.1kHZ的时钟不兼容,导致满足一种,另外一种就要有偏差,所以采用24M或12M 有源时钟作为MCK的输入时钟,当然KL26输出MCK也需要作为备用连接到DAC(网上相传主设备的时钟由于是经过PLL以后再分频输出,导致Jitter过高,到现在还是将信将疑的,由于没有专业设备测试验证,一直持保留态度)
第三是得考虑KL26的驱动支持问题
由于飞思卡尔的官网无相应底层库的支持,所以只能从官方外设例子中找相关驱动,这下又得去弄寄存器了(最没有技术含量的事情)
DAC的驱动 可以挖 STM32F4 Discovery里,应该会有,以下缕一下驱动的准备情况
(1)KL 时钟配置(深挖KL例子)
(2)GPIO驱动(深挖KL例子)
(3)SPI驱动(深挖KL例子)
(4)UART驱动(深挖KL例子)
(5)I2C驱动(深挖KL例子)
(6)DAC驱动(深挖STM32F4 Discovery例子)
(7)LCD驱动 (现成,amobbs坛友提供)
(8)播放器应用(现成,自己编写)
(9)调度器 (现成 使用protothread)
(10)界面框架(需要学习费点时间)
(11)U盘应用(需要确认飞思卡尔有没有例子,不然有点费时间)
(12)上位机控制界面(待决定)
总结,综上所述,该小制作的主功能实现成功率达90%以上,当然U盘和LCD界面可能会对自己的积累有很大的提升(因为以前没做过界面而且U盘很多时候没深挖,只使用库成功读写而已)
相关文章推荐
- 基于Kinetis的KL系列之Cortex-M0的WAV音频播放器——电源设计(2)
- 基于Kinetis的KL系列之Cortex-M0的WAV音频播放器——PCB打样(3)
- 基于IIS总线的嵌入式音频系统设计
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(4):设计基于IIS7和AJAX的网站.zip(7.53 MB)
- 基于IIS总线的嵌入式音频系统设计
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(1):基于.NET 3.0的系统架构.zip(8.83 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(9):设计基于CardSpace的身份验证系统.zip(7.98 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(3):设计基于WF的工作流.zip(11.65 MB)
- 基于Cortex-M3的嵌入式以太网门禁系统设计
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(5):设计基于WPF的客户端.zip(6.98 MB)
- 基于LPC2400系列ARM的NOR FALSH (SST39VF6401B)的文件系统的设计
- IT先锋系列研讨会---基于组件的系统架构设计
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(7):设计基于MMC 3.0的管理工具.zip(8.70 MB)
- ffmpeg + SDL 系列5 Media 播放器系统设计
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(7):设计基于MMC 3.0的管理工具.zip(8.70 MB)
- 从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(视频课程讲师:徐晓卓)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(9):设计基于CardSpace的身份验证系统.zip(7.98 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(5):设计基于WPF的客户端.zip(6.98 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(3):设计基于WF的工作流.zip(11.65 MB)
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(2):设计基于WCF的服务.zip(8.29 MB)