基于MDV—STM32—F107音阶演奏的开发设计

时间:2022-10-01 07:52:28

基于MDV—STM32—F107音阶演奏的开发设计

摘 要:该设计主要是基于MDV-STM32-F107开发板设计研究出来的一个功能。通过LCD屏幕显示存储在SD卡内的仿真钢琴画面,通过触摸屏触摸按键,蜂鸣器发出相应的琴键声音。

关键词:开发板设计;功能;SD卡;蜂鸣器

中图分类号:TN702 文献标识码:A

一、硬件开发环境

1 MDV-STM32-F107开发板:是意法半导体推出全新STM32互连型(Connectivity)系列微控制器中的一款性能较强产品,此芯片集成了各种高性能工业标准接口,且STM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用。新STM32的标准外设包括10个定时器、两个12位1M sample/s AD(模数转换器)(快速交替模式下2M sample/s)、两个12位DA(数模转换器)、两个I2C接口、五个USART接口和三个SPI端口和高质量数字音频接口IIS,另外STM32F107拥有全速USB(OTG)接口,两路CAN2.0B接口,以及以太网10/100MAC模块。(见表1)

2 SD卡:SD卡主要应用于存储模拟钢琴黑白键的仿真界面。

2.1 SD卡结构图(见图1)

SD卡中文件的分配信息是按照降序排列在Flash块的顶部。每个文件块有自己的分配记录,第一个文件块相对于Flash块的偏移为0,于是经常假定第一个文件块开始于Flash块起始地址。分配记录是8字节长度,并包含以下内容:

2.1.1 文件的结束地址位于Flash块中;

2.1.2文件ID是文件的标识码;

2.1.3文件块索引是文件块的编码,将所有的文件数据块从0开始编码。

2.2 STMPE811触摸屏芯片:该芯片是实现模块功能的基础,所有的控制操作都是基于该触摸屏的操作。

该STMP811包括以下模块:

I2C和SPI接口

Analog-to-digital converver (ADC)

触摸屏控制器(TSC)

驱动器和开关控制单元

温度传感器

GPIO控制器

2.3 STMPE811的I2C和SPI接口配置

该STMPE811接口与主机CPU通过I2C或SPI接口.该引脚允许IN_1在复位状态选择接口协议

2.4 STMPE811的原理图与原理说明(见图2)

通过该作品的研究可以得出如下研究结果以及结果分析:

为了在X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为VCC。将顶部或底部总线连接到ADC,当顶层和底层相接触时即可作一次测量。

为了在Y轴方向进行测量,将顶部总线偏置为VCC,底部总线偏置为0V。将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量。

测量出来的电压值与接触点的位置线性相关,即可以由VPX和VPY分别计算出接触点P的X和Y坐标。

在实际测量中,控制电路会交替在X和Y电极组上施加VCC电压,进行电压测量和计算接触点的坐标。测量流程如下:

第一步,在X+上施加VCC,X-上施加0V电压,测量Y+(或Y-)电极上的电压值VPX,计算出接触点P的X坐标;

第二步,在Y+上施加VCC,Y-上施加0V电压,测量X+(或X-)电极上的电压值VPY,计算出接触点P的Y坐标;

以上两步组成一个测量周期,可以得到一组(X,Y)坐标。

2.5 DS_ILI9328 LCD显示器:作为该设计的主要输出方式,完成显示钢琴琴键画面界面显示的功能。

本LCD特点:320×240像素、3.2寸液晶屏、26万真彩色、自带电阻触摸屏,可用来做控制输入、通用接口,支持SPI数据传输,接线简单,控制方便。

2.6 DS_ILI9328硬件设计(图3)

二、软件开发环境

2.1 Keil uVision4:

Keil公司开发的ARM开发工具,是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。

2.2 固件库版本V3.1

2.3 J-Link ARM 4.20a:

这个调试器包括一个高速的软件仿真器,它可以仿真一个包括片上外设和外部硬件的完整ARM系统。当用户从设备数据库中选择所需芯片时,它的属性将自动被配置。

三、设计的主要原因说明

钢琴音阶演奏的各个音阶对应的频率(见表2)

通过调整LCD的亮度间接调整蜂鸣器发出不同的声音。利用微控制器的定时器PWM输出控制LED灯的亮暗程度,通过一个参数调节其占空比,比如第一次0/10不亮;1/9 很暗;第二次2/8.....,第九次9/1很亮;第十次,10/0完全亮。其中1/9代表其高低电平的时间之比,以此类推。

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。通俗的理解,把PWM的一个周期分成10块。这10块时间里,只有1块的时间让LED导通,剩下9块的时间里LED截止。假设PWM信号的幅值是5V,那么在导通的1块时间里LED电压的确是5V的,但是在剩下9块时间里,它的电压却是0V。也就是说从一个周期整体看来,LED的平均电压只有5×0.1+0×0.9=0.5V。PWM信号频率很高的,我们无法通过肉眼来观察到每一个周期LED灯亮灭的变化过程,所以只好通过平均电压这样一种方式来决定这个LED的亮的程度了。

PWM即脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。在 TIMx_CCMRx 寄存器中的 OCxM位写入“110”(PWM模式1)或“111”(PWM模式 2),能够独立地设置每个OCx 输出通道产生一路PWM。必须设置 TIMx_CCMRx 寄存器OCxPE位以使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的 ARPE位使能自动重装载的预装载寄存器(在向上计数或中心对称模式中)。因为仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIMx_EGR寄存器中的UG位来初始化所有的寄存器。OCx的极性可以通过软件在TIMx_CCER寄存器中的CCxP位设置,它可以设置为高电平有效活或低电平有效。TIMx_CCER寄存器中的CCxE 位控制OCx输出使能。当计数器的值与CCR的值相等则输出信号翻转,当计数器的值与预载寄存器的值相等则输出信号也翻转。

结语

该设计摆脱了单纯的开发板学习模式,能激发广大学习者以及嵌入式爱好者的兴趣。通过对该设计的学习,能使学习者对Cortex-M3系列处理器的开发有一个透彻的了解。同时,这种案例的学习方式,一定程度上缩短了做实验与以后做产品之间的差距。

参考文献

[1]《STM32中文参考手册》[Z].

[2]《MDV_STM32F107vc原理图》[Z].

[3]STMPE811触摸屏芯片使用说明[Z].

[4]SHT11温湿度检测芯片使用说明[Z].

上一篇:亲历“黑色星期一”全球股市暴跌 下一篇:提高博物馆展览效果的几点做法