新闻中心

EEPW首页>电源与新能源>设计应用> 基于STM32的多路电压测量设计方案

基于STM32的多路电压测量设计方案

作者: 时间:2013-09-16 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/174695.htm

3.3 LCD电路

本设计所使用的LCD为2.4寸,320×240分辨率。LCD模块使用STM32的FSMC接口

FSMC(Flexible Static Memory Controller)即可变静态存储器,是STM32系列中内部集成256KB以上Flash,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。通过对特殊功能寄存器的设置,FSMC能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积以及成本的综合要求。

在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。F S M C起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。

FSMC可以连接NOR/PSRAM/NAND/PC卡等设备,并且拥有FSMC_A[25:0]共26条地址总线,FSMC[15:0]共16条数据总线。另外,FSMC扩展的存储空间被分成8个块。通过地址线选择操作的块。这样,LCD将被看作一个拥有一块地址空间的存储器进行操作。

3.4 SD卡驱动电路

本设计中使用的SD卡为MicroSD,也称TF卡。MicroSD卡是一种极细小的快闪存储器卡,主要应用于移动电话,但因它的体积微小和储存容量的不断提升,现在已经使用于GPS设备、便携式音乐播放器、数码相机和一些快闪存储器盘中。MicroSD卡引脚图如图9所示。

MicroSD卡与SD卡一样,有SPI和SDIO两种操作时总线。SPI总线相对于SDIO总线接口简单,但速度较慢。我们使用SDIO模式。

MicroSD卡在SDIO模式时有4条数据线。

其实,MicroSD在SDIO模式时有1线模式和4线模式,也就是分别使用1根或4根数据线。当然,4线模式的速度要快于1线模式,但操作却较复杂。本设计中使用的是SDIO的4线模式。MicroSD卡的硬件连接图如图3所示。

3.5 触摸屏电路

本设计在的通道和显示设置上,除了使用按键设置,还使用触摸屏进行设置。

触摸屏使用芯片TSC2046控制,其硬件连接图如图4所示。

在图4中,TSC2046可以采集触摸屏的点坐标,从而确定触摸的位置,进行人机交互。

STM32通过SPI总线与TSC2046通信,可以得到触摸信息。本设计使用触摸屏进行通道数的设置和速度的设置。

4.系统软件设计

4.1 软件流程

系统软件部分使用C语言编程,同时使用STM32官方提供的固件库,使用的版本为3.5版。STM32固件库也称固件函数库或标准外设库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。

软件部分为了方便存储数据的查看和读取,在MicroSD卡部分使用了fatfs文件系统。

FAFFS是面向小型嵌入式系统的一种通用的FAT文件系统。FATFS完全是由AISI C语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如8051、PIC、AVR、SH、Z80、H8、ARM等。

FATFS支持FAT12、FAT16、FAT32等格式,所以我们利用前面写好的SDIO驱动,把FATFS文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对已格式化的SD卡进行读写文件了。

以上是系统软件设计的两个主要部分,其他还有LCD驱动程序,ADC和DMA驱动程序,按键中断程序等。

4.2 软件文件结构

文件main.c是整个程序的入口文件,也是主要文件。global.c和global.h主要是共用的函数和全局性的宏定义。LCD_Disp.c和LCD_Disp.h是基于STM32固件库的对LCD的底层驱动函数。Lcdfunc.c和lcdfunc.h是为了主程序更方便的操作LCD而编写的一些常用的复杂的对LCD底层函数的封装函数。sdio_sdcard.c和sdio_sdcard.h是基于STM32固件库的对MicroSD卡的底层驱动函数。fat文件系统在STM32上的使用需要针对具体类型的硬件进行配置,所以它是基于MicroSD卡的底层驱动程序的。fatfunc.c和fatfunc.h是对fat文件操作接口的一些封装,是针对本设计中对文件的操作编写的。其余的按键中断和ADC等操作的函数是直接基于STM32固件库的,并直接被主程序调用。

5.总结

STM32在速度、功耗方面性能都更加优越,其丰富的外设也更加方便设计。另外,STM32价格较低,在成本上也有优势。STM32适合于控制电子设备的设计。设计中使用的ADC是STM32上的12位ADC,能够满足一定的测量精度,对于较高的测量要求,则需要使用更高精确度的ADC.但是使用高精度ADC和DSP芯片,将很大的增加开发成本。本设计方案完成了多路电压测量的各项功能,但是还需要在使用中检测其稳定可靠性,以使设计更加完善。

接地电阻相关文章:接地电阻测试方法


adc相关文章:adc是什么


接地电阻测试仪相关文章:接地电阻测试仪原理

上一页 1 2 下一页

关键词:控制测量单片机

评论


相关推荐

技术专区

关闭