STM32,firmware,library,for,dSPIN,L6470

来源:策划书 时间:2016-07-27 09:51:58 阅读:

【www.zhuodaoren.com--策划书】

STM32,firmware,library,for,dSPIN,L6470(一)
ST L6470微步进马达驱动解决方案

ST L6470微步进马达驱动解决方案

关键字:工业控制,马达驱动,步进马达

ST 公司的L6470是全集成微步进马达驱动器,采用混合信号技术,包括有运动引擎和SPI接口,非常适合驱动具有微步进的两相双极步进马达. L6470工作电压4-45V,峰值电流7.0A(3.0 A r.m.s.),低RDSon功率MOSFET,多达1/128微步进,可编程的速度和定位.本文介绍了L6470主要特性,方框图, 双极步进马达控制应用电路图,所用材料清单以及菊花链接配置图.

L6470: Fully integrated microstepping motor driver with motion engine and SPI

The L6470, realized in analog mixed signal technology, is an advanced fully integrated solution suitable for driving two phase bipolar stepper motors with microstepping.

It integrates a dual low RDSon DMOS full bridge with all of the power switches equipped with an accurate on chip current sensing circuitry suitable for non dissipative current control and overcurrent protections. Thanks to a unique control system a true 1/128 steps resolution is achieved. The digital control core can generate user defined motion profiles with acceleration, deceleration, speed or target position easily programmed through a dedicated registers set. All commands and data registers, including those used to set analogue values (i.e. current control value, current protection trip point, dead time, PWM frequency etc.) are sent through a standard 5Mbit/s SPI.

A very rich set of protections (thermal, low bus voltage, overcurrent, motor stall) allows designing a fully protected application, as required by most demanding motor control applications.

L6470主要特性:

■ Operating voltage: 8 - 45 V

■ 7.0 A output peak current (3.0 A r.m.s.)【STM32,firmware,library,for,dSPIN,L6470】

■ Low RDSon power MOSFETS

■ Programmable speed profile and positioning

■ Programmable power MOS slew-rate

■ Up to 1/128 microstepping

■ Sensorless stall detection

■ SPI interface

■ Low quiescent and standby currents

■ Programmable non dissipative overcurrent protection on high and low-side

■ Two levels overtemperature protection【STM32,firmware,library,for,dSPIN,L6470】

L6470应用:

■ Bipolar stepper motor

图1.L6470方框图

2.采用L6470的双极步进马达控制应用电路图 所用材料清单:

3.菊花链接配置图

STM32,firmware,library,for,dSPIN,L6470(二)
使用STM32库建立keil工程详细步骤

STM32 使用外设库建立keil工程

新建文件夹取名为自己想要的名称(如GPIO)

1、 打开文件,建立如下的文件结构:

2、 打开RVMDK,建立如下文件:

3、 打开下载来的外设驱动库如下:

4、 把Libraries的下的两个文件拷贝到GPIO文件下:

5、 打开下载的驱动库下的Project文件,打开STM32F10x_StdPeriph_Examples,找到我们需

要的例程,如

GPIO

6、 打开GPIO文件夹

7、 打开IOToggle,复制除了readerme.txt之外的文件到工程下的User文件。

复制好之后:

8、 到此,准备工作完毕。 9、 打开KEIL,新建工程

10、

保存在RVARM文件夹下面,取名为自己的名字,我取名为GPIO。

【STM32,firmware,library,for,dSPIN,L6470】

11、

选定自己使用的芯片,点击ok。

12、 此时会跳出这个对框框,选择否:【STM32,firmware,library,for,dSPIN,L6470】

13、

工程建好后是这样的。

14、

在工程上右键选择Mange Componts 如下:

15、

建立如下组

16、

在User下面添加刚才方法哦User下的C文件:

STM32,firmware,library,for,dSPIN,L6470(三)
基于STM32的多路电压采集研究

  【摘要】本设计提出一种基于STM32芯片的多路电压测量设计方案,测量范围在0-10V之间。把STM32内置A/D对多路电压值进行采样,得到相应的数字量。然后按照数字量和模拟量的比例关系得到对应的模拟电压值,通过TFTLCD显示设备显示出来,同时将多路采集的数据存储到SD卡中。

  【关键词】STM32;电压测量;LCD显示
  1.引言
  近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。
  数据采集技术是信息科学的重要分支之一,数据采集也是从一个或多个信号获取对象信息的过程。数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。
  电压的测量最为普遍性,研究设计并提高电压测量精度的方法及仪器具有十分重要的意义。在电压测量设计中,单片机作为控制器,是整个设计的核心。除此之外,设计中还必须有模数转换器(ADC)。ADC用于直接采集模拟电压并将模拟信号转换成数字信号,它直接影响着数据采集的精度和速度。
  2.系统概述
  本设计的微控制器采用STM32单片机。STM32系列单片机是基于ARM公司Cortex-M3内核设计的。它的时钟频率达到72MHz,是同类产品中性能较高的产品,具有高性能、低成本、低功耗的优点,是嵌入式应用设计中良好的选择。设计中的A/D转换器采用STM32内置ADC。STM32的ADC是一种12位逐次逼近型模拟数字转换器[1,2]。
  它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。转换结果可以左对齐或右对齐方式存储在16位数据寄存器中。其输入时钟最大可达到14MHz。
  本设计可测量8通道电压值,测量范围为0-10V的电压,显示误差为±0.001V。LCD实时显示电压值和波形图,MicroSD卡对数据进行同步存储。系统原理框图如图1所示。
  3.系统硬件设计
  本设计的硬件主要包括STM32模块,LCD模块,SD卡模块和按键模块。STM32模块不仅作为核心控制器,还包括ADC设备,它主要包括STM32最小系统电路。LCD模块主要包括LCD驱动接口电路。SD卡模块主要是SD卡驱动电路。除此之外,还有用于程序下载调试的J-Link接口电路和电源电路等。
  3.1 STM32最小系统
  本模块主要介绍STM32芯片和设计中用到的外设模块。
  STM32最小系统使用外部高速时钟,外接8M晶振。STM32的两个BOOT引脚都接低电平,以使用户闪存存储器为程序启动区域。芯片采用J-Link下载模式,也可以进行硬件调试。STM32的电源引脚都接了滤波电容以确保单片机电源的稳定。
  STM32F103VET6拥有3个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。STM32的ADC最大的转换速率为1Mhz,也就是转换时间为1us(ADCCLK=14M,采样周期为1.5个ADC时钟下得到),不能让ADC的时钟超过14M,否则将导致结果准确度下降。STM32将ADC的转换分为2个通道组:规则通道组和注入通道组。规则通道相当于运行的程序,而注入通道就相当于中断。在程序正常执行的时候,中断是可以打断程序正常执行的。同这个类似,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。
  本设计中ADC采集的数据使用DMA进行传输,以达到高速实时的目的。
  3.2 ADC控制电路
  STM32的数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。本设计中使用DAC来控制ADC匹配电路的增益。在打开DAC模块电源和配置好DAC所需GPIO的基础上,往DAC通道的数据DAC_DHRx寄存器写入数据,如果没有选中硬件触发,存入寄存器DAC_DHRx的数据会在一个APB1时钟周期后自动传至寄存器DAC_DORx。一旦数据从DAC_DHRx寄存器装入DAC_DORx寄存器,在经过一定时间之后,输出即有效,这段时间的长短依电源电压和模拟输出负载的不同会有所变化。
  为了扩大测量范围和测量精度,本设计在STM32的ADC前加入匹配电路。在ADC控制电路中,输入信号先经过射极电压跟随电路,然后经过分压电路,使输入信号满足AD603的输入要求。然后再经过射极电压跟随电路,输入ADC输入端。AD603的控制输入使用STM32的DAC,可以满足增益的要求[3-4]。
  匹配电路以AD603为核心.AD603为单通道、低噪声、增益变化范围线性连续可调的可控增益放大器。带宽90MHz时,其增益变化范围为-10dB~+30dB;带宽为9M时范围为10~50dB。
  将VOUT与FDBK短路,即为宽频带模式(90MHz宽频带),AD603的增益设置为-11.07dB~ +31.07dB。AD603的5、7脚相连,单片AD603的可调范围为-10dB~30dB。AD603的增益与控制电压成线性关系,其增益控制端输入电压范围为±500mv,增益调节范围为40dB,当步进5dB时,控制端电压需增大:
  ADC匹配电路的电路图如图2所示。
  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转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。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芯片,将很大的增加开发成本。本设计完成了多路电压测量的各项功能,但是还需要在使用中检测其稳定可靠性,以使设计更加完善。
  参考文献
  [1]蔺相斌,李世光,高正中等.基于STM32F101的多功能电子计价秤系统设计[J].仪表技术,2010(05):43-45.
  [2]季力.基于STM32芯片的电参数测量与数据传输[J].自动化与仪器仪表,2010(03):137-139.
  [3]唐伟,于平,李峥辉.STM32F103x的USB多路数据采集系统设计[J].单片机与嵌入式系统应用,2009(08):39-41.
  [4]刘明贵,于謇,梁昊.基于STM32的岩土工程无线采集系统[J].仪表技术与传感器,2010(05):95-97.
  作者简介:
  宋敬卫,现就读于河南科技学院机电学院应教专业。
  付广春,讲师,研究方向:嵌入式、自动控制。
  马献国,现就读于河南科技学院机电学院应教专业。

本文来源:http://www.zhuodaoren.com/fanwen298914/

推荐访问:
扩展阅读文章
热门阅读文章