STM32

STM32是STMicroelectronics(意法半导体)推出的一系列基于ARM Cortex-M内核的32位微控制器(MCU)产品。这些微控制器提供了广泛的产品系列,覆盖了多种不同的性能和功能需求,适用于各种应用领域,包括工业控制、汽车电子、消费类电子、医疗设备等。

STM32系列微控制器以其高性能、低功耗、丰富的外设接口和灵活的开发工具而闻名。它们通常具有丰富的存储器、多种通信接口(如UART、SPI、I2C、CAN等)、模拟数字转换器(ADC)、定时器、PWM输出等功能,以满足不同应用场景下的需求。

STM32微控制器通常使用标准的ARM Cortex-M内核,包括Cortex-M0、M0+、M3、M4和M7等,这些内核具有不同的性能和功耗特性,可根据具体应用的需求进行选择。此外,STM32系列还提供了多种封装和引脚配置,以满足不同尺寸和集成度的要求。

STMicroelectronics为STM32系列提供了丰富的开发工具和支持资源,包括基于ARM开发环境的集成开发环境(IDE)、调试器、评估板和参考设计等。这些工具和资源有助于开发人员快速开发和部署他们的应用,并提供了全面的技术支持和文档资料,帮助用户充分发挥STM32微控制器的性能和功能优势。

STM32 8051

内核 Cortex-M3,32Bit@72MHz 51 Core,8Bit@2MHz Max(分频后)

1.25DMIPS 0.06DMIPS

地址空间 4GB 64KB

片上存储器 ROM:20K-1MB 2K-64K

RAM:8K-256K 128B-1K

外设 AD,DA,Timer,WWDG,IWDG, 三个定时器和一个串口

CRC,D虎害港轿蕃计歌袭攻陋MA,IIC,SPI,USART等

开发工具 UV4,更高级,且有标准C编译器 UV2,比较早了

操作系统 uClinux,uC/OS 基本不要想跑OS了.

优点多了去了,除了硬件上的优势外,我觉得最大的不同就是库开发的开发方式

51有51的轻巧 STM32有STM32的强大 首先51是入门最简单 相对来说好学 功能少 控制比较方便但是速度 功能都没有STM32强大 STM32是32bit的 外围接口丰富 但是入门就有点难度了 再就是51就是c8051的速度能快点 但是毕竟是8bit的 51大多是冯诺依曼结构 STM32是哈弗结构的 数据处理很猛呵呵

STM32属于arm内核的一个版本,比传统的51单片机高级多了,有很多资源是51不具备的,如usb控制器。而且已经废除了机器周期什么的,速度不是51能比的

STM32单片机程序都是模块化的,接口相对简单些,因为它自身带好多功能,工作速度也快。而51的自身功能少,需要外围元件多,要求对电子熟悉。

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。 全新STM32互连型(Connectivity)系列微控制器增加一个全速USB(OTG)接口,使终端产品在连接另一个USB设备时既可以充当USB主机又可充当USB从机;还增加一个硬件支持IEEE1588精确时间协议(PTP)的以太网接口,用硬件实现这个协议可降低CPU开销,提高实时应用和联网设备同步通信的响应速度。

全新互连型系列还是STM32家族中首款集成两个CAN2.0B控制器的产品,让开发人员能够研制可连接两条工业标准CAN(控制器区域网)总线的网关设备。此外,新系列微控制器还支持以太网、USB OTG和CAN2.0B外设接口同时工作,因此,开发人员只需一颗芯片就能设计整合所有这些外设接口的网关设备。   STM32互连型系列产品强化了音频性能,采用一个先进的锁相环机制,实现音频级别的I2S通信。结合USB主机或从机功能,STM32可以从外部存储器(U盘或MP3播放器)读取、解码和输出音频信号。设计人员还可以在新系列微控制器上开发人机界面(HMI)功能,如播放和停止按键,以及显示器界面。这个功能使其可用于各种家庭音响设备,如音响底座系统、闹钟/音乐播放器和家庭影院。
  
新系列产品整合先进的面向连接的外设,标准的STM32外设(包括一个PWM定时器),高性能的32位ARM Cortex-M3 CPU,这些特性使开发人员可以在设备上(如家电、楼宇或工业自动化)整合多种功能,如马达控制、用户界面控制和设备互连功能。其它目标应用包括需要联网、数据记录或USB外设扩展功能的系统,如病患监视、销售终端机、自动售货机和保安系统。

包括新的互连型系列在内的STM32系列微控制器具有多种配套软件和开发工具,其中包括意法半导体免费提供的软件库以及第三方工具厂商的广泛支持。意法半导体还将推出一个新的评估板,目前正在向大客户提供STM32F105和STM32F107互连型系列的样片 STM32 的运算速度大约是51单片机的几十倍吧 而且外围接口 功能比51强大太多。。 可以这么 STM32是 最先进的技术 而51 是好几十年前的东西 虽然用的还是不少。但是内核已经天地之别。

来源: 21ic.com

围观 770

本文设计了一种基于2μm高功率光纤激光器的医疗仪,以STM32为控制核心,完成了人性化的人机触控界面功能设计、激光器的驱动控制、精密水冷单元的参数监控、配电模块的抗干扰设计以及输出功率的校准。

2μm高功率激光医疗仪市场需求越来越大,而目人机交互模块前国内此类设备在控制上缺乏对系统安全和出光精准度的考虑。同时随着YY0505-2012医用电气电磁兼容标准于2014年的执行,设计符合YY0505-2012标准的医用设备已迫在眉睫。因此,本文采用模块化设计,设计了一种基于STM32的2μm光纤激光器医疗仪控制系统,将水冷单元的参数监控、电源模块的抗干扰设计、输出功率的校准等集成于一体。测试结果表明,系统可靠稳定,操作方便。

系统功能和结构设计

按功能划分,医疗仪主要由2μm光纤激光器模块、精密水冷单元、STM32主控制器模块、人机交互模块等部分组成,结构如图1所示。控制器是医疗仪的大脑,负责整个设备的启停和正常运行。2μm光纤激光器经过光学系统准直聚焦,得到医用激光,在特定条件下,脚踏开关闭合发出相应功率的激光,由光纤传导到病灶部位。精密水冷单元的循环水流经激光腔,使激光器工作在合适温度,确保输出功率稳定,且水冷单元的启动总是先于激光器,防止激光器在高温高湿环境下结露而损坏。门控直接与激光器内部的interlock信号相连,同时主控器对其状态实时监测。此外光纤检测可对医用光纤进行规范化管理,防止因光纤老化影响治疗效果。

图1医疗仪总体结构图
图1医疗仪总体结构图

设备以触摸屏为主要人机交互平台,实现的功能包括:汽化与凝血参数的同时设置;不同方案的保存和调用;能量、计时等治疗参数的统计显示;系统异常状态的报警提示;出光指示灯的亮度调节。

系统硬件设计

2.1系统硬件结构

系统硬件以STM32F107VCT6为核心,硬件框图如图2所示。精密水冷单元的参数监控包括高低水位、水流量、水压力、水温的监测;以触摸屏为主的人机交互模块集成了出光指示灯、钥匙开关、急停、启动、脚踏、门控等外部硬件控制;配电模块集成了继电器驱动电路和电磁兼容设计。其中,水冷单元、光纤激光器、触摸屏和音效合成模块分别通过RS232与主控制器通信。

图2系统硬件框图
图2系统硬件框图

2.2配电模块电路设计

为实现高可靠性,配电模块电路采用冗余设计,每路继电器驱动电路控制两个固态继电器。以图3所示激光器的继电器驱动电路为例,U5、U6代表两个继电器,输出端分别串联到电源的零线和火线上,实现同开同断,避免某一个继电器发生故障时影响整个系统的工作。每路信号除通过I/O控制外,急停信号也对继电器可控,达到软件和硬件同时急停的目的。选用的急停按钮是常闭型,高电平有效,当急停触发时,Q3不导通,致9引脚电平拉低,再与I/O信号经过与门,输出也为低电平,致Q4不导通,继电器处于开路状态,电源断路。

另外,电路一方面在STOP和I/O信号接口处接入5V瞬态抑制管,以防止静电积累损坏器件;另一方面在Q4导通时D3点亮作为电路工作状态指示,当系统出现异常时方便故障排查。

图3继电器驱动电路
图3继电器驱动电路

2.3配电模块电磁兼容设计

电磁兼容问题是影响医用电气设备安全有效的重要因素之一,不仅直接影响医用设备的安全使用,甚至会对患者以及医护人员的人身安全造成影响。国家食品药品监督管理局于2012年12月正式发布了新版标准YY0505-2012,并于2014年1月正式实施,该医疗仪配电模块结合此标准做了相关电磁兼容性(EMC)设计。实际工作环境下该系统电磁干扰主要来源于电源线上的高频干扰、接线端口的静电干扰、浪涌电流、可控硅通断时产生的干扰等。

首先考虑硬件选型,选用交流单相双节电源滤波器,不仅能抑制共模干扰,对快速瞬变脉冲群(EFT)实验也有很好的辅助效果。与传统电磁线圈继电器相比,固态继电器的寿命长,可靠性好,切换速度可达几毫秒至几微秒,没有触点燃弧和回跳,减少了电磁干扰和瞬态效应,但固态继电器导通时会产生较大热量,系统通过在继电器下方放置散热片来解决此问题。

配电模块的结构框图如图4,在电源的进线端串入滤波器,然后进入瞬态电压浪涌抑制模组(包含千瓦级TVS、压敏电阻、防雷管等),再接入继电器,最后在电源进入每个模块之前再分别串入滤波器。测试结果表明,该结构能够达到抑制电磁骚扰(EMI)和提高仪器的电磁抗扰度(EMS)的双重目的。

图4配电模块结构框图
图4配电模块结构框图

系统软件设计

3.1软件功能设计

系统软件主要实现以下功能:

(1)5个安全状态的实时检测,包括检测光纤连接、脚踏连接、门控、水冷单元连接和激光器连接是否正常。
(2)5个工作状态的判定,包括开锁状态、初始化状态、参数设定状态、准备状态、异常状态的判定。
(3)水冷单元参数的采集,包括压力传感器、水位开关、温度传感器、流量传感器数据的采集,并判断是否超出正常范围。
(4)激光器内部状态参数的读取并分析,激光器内部有一个32bit的状态字,存放激光器当前的工作状态,读取每一位状态,判断激光器当前是否正常工作。
(5)外部硬件设备信号的采集和控制,包括钥匙开关、急停按钮、启动按钮、出光指示灯和脚踏开光的信号采集或控制。
(6)工作参数的设定,包括汽化和凝血功率的设定、指示灯的开闭、存储方案的设定和选择。
(7)操作日志的存储和显示,包括开机时间、工作累积时间、出光累积时间和出光能量累积的存储以及当前治疗方案的出光时间和出光能量的显示。
(8)激光输出功率的校准。

软件流程如图5所示,按系统要求,异常状态优先级最高,通过中断处理。为节省系统资源,对5个安全状态每1s扫描1次,若发现连接异常,系统重新自检,直到连接正常方可进入主循环。对其他触摸屏有效包、水冷单元有效包、激光器有效包依次处理。

图5系统软件流程图
图5系统软件流程图

3.2激光功率自动校准算法

由于医疗产品对可靠性的特殊要求,激光输出功率的准确性必然成为衡量一台医疗设备品质好坏的重要参数。激光功率在光纤耦合处和光纤尾端、切口端面会产生衰减,如图6所示。光纤终端功率小于用户设置功率,尤其在设置功率小于60W时,最大偏差达63.6%。为了得到准确的光纤终端功率,需要借助功率计采集终端功率并读取与之对应的激光器驱动电流,然后通过插值法得到功率与电流的分析表达式,以便用户设置每个功率参数时都能找到与之对应的电流值。

图6校准前终端采集功率与用户设置功率关系
图6校准前终端采集功率与用户设置功率关系

采集了16组对应值,由于环境等因素影响采集结果,导致偶然误差。为了尽可能准确地得出未知点,相同实验重复4次,并将对应值取平均。通过增加节点个数来提高差值多项式对函数的逼近程度,由于此时高次多项式插值容易出现Runge现象,故采用Lagrange线性插值,把节点分成13段,分段采用低次多项式近似函数。分段节点处函数值如表1所示。

分段表达式为:

将各点分别带入式(1)得出分段表达式:

表1节点处函数对应值
表1节点处函数对应值

随机抽取一点值f(18)≈φ0(18)=1.1×18+8.1=27.9,与实际测量值f(18)=27.7比较,偏差为0.7%,符合精度要求。将式(2)写入软件插值函数子程序中,当用户设定功率时,算法先判断该值所在区间范围,再求出对应电流百分比,通过串口发送到光纤激光器。经插值算法校准后,用户设置功率与终端采集功率之间的关系如图7所示,可知最大偏差为2.5%,较之前的63.6%有明显改善。测试结果表明,通过此方法获得了较准确的激光输出功率,精度控制在±1W以内。

图7校准后用户设置功率与终端采集功率关系
图7校准后用户设置功率与终端采集功率关系

系统测试及结果

本文设计了一种基于2μm高功率光纤激光器的医疗仪,以STM32为控制核心,完成了人性化的人机触控界面功能设计、激光器的驱动控制、精密水冷单元的参数监控、配电模块的抗干扰设计以及输出功率的校准。输出功率0W或4W~80W,步进长度1W连续可调,可通过脚踏自由切换汽化和凝血两种功率参数输出;温度采集精度±0.5℃,水流量3.6L/min,符合IPG-TLR-80-WC-Y12型号光纤激光器正常工作要求。经过功率校准算法,用户设置功率与终端采集功率的最大偏差由之前的63.6%降低到2.5%,控制精度为±1W。测试结果表明,该系统具有可靠性高、抗干扰能力强、输出功率稳定准确、操作便利等优点。

围观 356

如今,心血管类疾病已经成为威胁人类身体健康的重要疾病之一,而清晰有效的心电图为诊断这类疾病提供了依据,心电采集电路是心电采集仪的关键部分,心电信号属于微弱信号,其频率范围在0.03~100 Hz之间,幅度在0~5 mV之间,同时心电信号还掺杂有大量的干扰信号,因此,设计良好的滤波电路和选择合适的控制器是得到有效心电信号的关键。基于此,本文设计了以STM32为控制核心,AD620和OP07为模拟前端的心电采集仪,本设计简单实用,噪声干扰得到了有效抑制。

1、总体设计方案

心电采集包括模拟采集和数字处理两部分,本设计通过AgCl电极和三导联线心电采集线采集人体心电信号,通过前置放大电路,带通滤波电路,50 Hz双T陷波后再经主放大电路和电平抬升电路把心电信号的幅度控制在STM32的A/D采集范围内,STM32通过定时器设定A/D采样频率,通过均值滤波的方式对得到的数字信号进行处理,最后在彩屏上描绘出心电图形,系统总体框图如图1所示。

图1 系统总体框图
图1 系统总体框图

2硬件设计

2.1 主控模块电路设计

主控模块的STM32F103VET单片机是控制器的核心,该单片机是ST意法半导体公司生产的32位高性能、低成本和低功耗的增强型单片机,其内核采用ARM公司最新生产的Cortex-M3架构,最高工作频率72 MHz、512 kB的程序存储空间、64 kB的RAM,8个定时器/计数器、两个看门狗和一个实时时钟RTC,片上集成通信接口有两个I2C、3个SPI、5个USART、一个USB、一个CAN、一个SDIO,并集成有3个ADC和一个DAc,具有100个I/O端口。主控单片机管脚排列图如图2所示。

图2 STM32F103VET单片机管脚排列图
图2 STM32F103VET单片机管脚排列图

2.2 前置放大电路的设计

前置放大电路是模拟信号采集的前端,也是整个电路设计的关键,它不仅要求从人体准确地采集到微弱的心电信号,还要将干扰信号降到最低,由于心电信号属于差分信号,所以电路应采用差动放大的结构,同时要求系统具有高共模抑制比、高输入阻抗、低漂移等特点。因此,选择合适的运算放大器至关重要,这里选择仪用运放AD620实现前置放大,AD620具有高精度、低噪声、低输入偏置电流低功耗等特点,使之适合ECG监测仪等医疗应用。AD620的放大倍数由1与8脚之间的反馈电阻决定,增益G=49.4 kΩRG+1,由于心电信号中含有较大的直流分量,因此前置放大电路的放大倍数不能过大,在这里选择放大约10倍,因此反馈电阻R6取约5 kΩ,为提高电路的共模抑制能力,这里用一个OP07检测R10,R4上的共模信号驱动导线屏蔽层,消除分布电容。同时用另一个OP07运放和R5,C3,R7组成右腿驱动电路,在R10,R4上检测到的共模信号经反相放大器后经R7,反馈到人的右腿,进一步抑制了共模信号和50 Hz工频干扰,这里右腿驱动有一个对交流电的反馈通路,交流电的干扰可能对人体产生危害,因此这里要注意做好绝缘措施,同时保护电阻R7尽可能大,取1 MΩ以上。此外系统电源的不稳定也对心电信号的采集有较大影响,因此在本系统中,所有运放的电源脚都并联两个0.1μF和10μF的电容退耦,提高系统的稳定性,前置放大电路的电路图如图3所示。

图3 前置放大电路
图3 前置放大电路

2.3 带通滤波器的设计

从前置放大电路输出的心电信号还含有较大直流分量和肌电信号,基线漂移等干扰成分,所需采集的有用心电信号在0.03~100 Hz范围之间,因此需设计合理的滤波器使该范围内的信号得以充分通过,而该范围以外的信号得到最大限度的衰减,这里采用具有高精度,低偏置,低功耗特点的两个OP07运放分别组成二阶有源高通滤波器和低通滤波器,高通滤波器由C11,C17,R7,R10组成,截止频率f1≈0.03 Hz,低通滤波器由R8,R9,C10,C13组成,截止频率约为f2≈100 Hz,系统带通滤波器的电路如图4所示。

图4 带通滤波器
图4 带通滤波器

2.4 50 Hz双T陷波器设计

工频是心电信号中最主要也最常见的干扰源,虽然前面的右腿驱动电路对其有一定的抑制作用,但是仍有较大部分进入了后面的电路,因此有必要设计截止频率为50 Hz的带阻电路来进一步滤除干扰,带阻电路也称陷波器,顾名思义,带阻电路就是使某特定频率范围内的信号大幅衰减,而对该频率范围外的信号几乎不产生影响。双T陷波电路是典型的带阻电路,在双T网络中,两个T型网络的参数是对称的,如图5所示的50 Hz双T陷波电路中,R13=R14=2R16=R=32 kΩ,C20=2C19=2C18=C=200 nF,本质上是由两个T型高通滤波器和低通滤波器并联组成,图5所示电路的截止频率f0=1/2πRC≈50 Hz。

图5 50Hz 带阻滤波器
图5 50Hz 带阻滤波器

2.5 主放大以及电平抬升电路设计

心电信号的幅度约为0~4 mV,STM32 AD转换的输入电平要求为3.3 V,因此,为了单片机能够处理采集到心电信号,需将采集到的模拟信号放大800~1 000倍。前置放大电路已放大了10倍,理论上主放大电路约放大100倍即可。为确保信号不失真,一般单级放大不超过10倍,因此,可采取两级放大的方式来达到放大100倍的效果,U9固定放大10倍,U11的反馈电阻采用可调电阻,这样就可以通过变阻器的调节达到放大100的效果。此外,因为STM32单片机的A/D采集不能采集负电平,因此这里设计了如U7所示的电平抬升电路把心电信号提到0电平以上,方便单片机采集。

图6 主放大以及电平抬升电路电路
图6 主放大以及电平抬升电路电路

3、软件设计

得到心电信号后要输入STM32进行AD采集和软件滤波,最终送LCD实现波形显示,单片机初始化后,程序设计定时器每6 ms中断一次,在中断函数里,对读取到的A/D值采取均值滤波的形式滤除干扰,然后把之转换与彩屏对应的坐标值,在彩屏上画线实现波形的实时显示,整个系统的程序流程如图7所示。

图7 系统软件流程图
图7 系统软件流程图

4、测试结果分析

通过电极片和三导联线在人的左臂,右臂,右腿部采集心电信号经前端模拟电路和STM32处理后,最后在示波器和彩屏上得到的心电信号如图8所示。

图8 系统效果展示图
图8 系统效果展示图

从彩屏和示波器上所得的心电图来看,50 Hz工频信号和基线漂移得到了较好的抑制,从示波器上可看出,相邻两个波峰之间的时间大约为900 ms,这与真实的心电信号基本吻合,图像清晰稳定,能够较好地反映人体心电特征。

5、束语

本设计实现的是以STM32为控制核心,以AD620,OP07为模拟信号采集端的小型心电采集仪,该设计所测心电波形基本正常,噪声干扰得到有效抑制,电路性能稳定,基本满足家居监护以及病理分析的要求,整个系统设计简单,成本低廉,具有一定的医用价值。

围观 473

前言

模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限,将会触发模拟看门狗中断。模拟看门狗一般用于检测单个的常规或注入转换通道,或同时检测所有的常规和注入通道。

模块框图

模块框图

模拟看门狗可以预先设置 ADC 转换的高低阈值,ADC_HTR 寄存器来配置 ADC 转换的上限阈值,ADC_LTR 寄存器用来配置ADC 转换的下限阈值。

应用示例

ADC 配置代码

/**
 * @brief ADC configuration
 * @param None
 * @retval None
 */
static void ADC_Config(void)
{
 ADC_ChannelConfTypeDef sConfig;
 ADC_AnalogWDGConfTypeDef AnalogWDGConfig;

 /* Configuration of ADCx init structure: ADC parameters and regular group */
 AdcHandle.Instance = ADCx;
 AdcHandle.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; /* Asynchronous
clock mode, input ADC clock not divided */ 
 AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit
resolution for converted data */
 AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Rightalignment
for converted data */
 AdcHandle.Init.ScanConvMode = DISABLE; /* Sequencer
disabled (ADC conversion on only 1 channel: channel set on rank 1) */
 AdcHandle.Init.EOCSelection = ADC_EOC_SINGLE_CONV; /* EOC flag
picked-up to indicate conversion end */
 AdcHandle.Init.LowPowerAutoWait = DISABLE; /* Auto-delayed
conversion feature disabled */
 AdcHandle.Init.ContinuousConvMode = DISABLE; /* Continuous
mode disabled to have only 1 conversion at each conversion trig */
 AdcHandle.Init.NbrOfConversion = 1; /* Parameter
discarded because sequencer is disabled */
 AdcHandle.Init.DiscontinuousConvMode = DISABLE; /* Parameter
discarded because sequencer is disabled */
 AdcHandle.Init.NbrOfDiscConversion = 1; /* Parameter
discarded because sequencer is disabled */
 AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T3_TRGO; /* Timer 3
external event triggering the conversion */
 AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; /* Parameter
discarded because software trigger chosen */
 AdcHandle.Init.DMAContinuousRequests = ENABLE; /* DMA circular
mode selected */
 AdcHandle.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is
overwritten with the last conversion result in case of overrun */
 AdcHandle.Init.OversamplingMode = DISABLE; /* No
oversampling */
 if (HAL_ADC_Init(&AdcHandle) != HAL_OK)
 {
 /* ADC initialization error */
 Error_Handler();
 }
 /* Configuration of channel on ADCx regular group on sequencer rank 1 */
 /* Note: Considering IT occurring after each ADC conversion if ADC */
 /* conversion is out of the analog watchdog window selected (ADC IT */
 /* enabled), select sampling time and ADC clock with sufficient */
 /* duration to not create an overhead situation in IRQHandler. */
 sConfig.Channel = ADC_CHANNEL_5; /* Sampled channel number */
 sConfig.Rank = ADC_REGULAR_RANK_1; /* Rank of sampled channel number
ADCx_CHANNEL */
 sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5; /* Sampling time (number of clock
cycles unit) */
 sConfig.SingleDiff = ADC_SINGLE_ENDED; /* Single-ended input channel */
 sConfig.OffsetNumber = ADC_OFFSET_NONE; /* No offset subtraction */
 sConfig.Offset = 0; /* Parameter discarded because
offset correction is disabled */
 if (HAL_ADC_ConfigChannel(&AdcHandle, &sConfig) != HAL_OK)
 {
 /* Channel Configuration Error */
 Error_Handler();
 }

 /* Set analog watchdog thresholds in order to be between steps of DAC */
 /* voltage. */
 /* - High threshold: between DAC steps 1/2 and 3/4 of full range: */
 /* 5/8 of full range (4095 <=> Vdda=3.3V): 2559<=> 2.06V */
 /* - Low threshold: between DAC steps 0 and 1/4 of full range: */
 /* 1/8 of full range (4095 <=> Vdda=3.3V): 512 <=> 0.41V */
 /* Analog watchdog 1 configuration */
 AnalogWDGConfig.WatchdogNumber = ADC_ANALOGWATCHDOG_1;
 AnalogWDGConfig.WatchdogMode = ADC_ANALOGWATCHDOG_ALL_REG;
 AnalogWDGConfig.Channel = ADCx_CHANNELa;
 AnalogWDGConfig.ITMode = ENABLE;
 AnalogWDGConfig.HighThreshold = (RANGE_12BITS * 5/8);
 AnalogWDGConfig.LowThreshold = (RANGE_12BITS * 1/8);
 if (HAL_ADC_AnalogWDGConfig(&AdcHandle, &AnalogWDGConfig) != HAL_OK)
 {
 /* Channel Configuration Error */
 Error_Handler();
 }

}

如上图所示,AnalogWDGConfig 结构体中分别使能了模拟看门狗及中断,设置了电压的上下阈值 HighThreshold 和LowThreshold。模拟参考电压为 3.3V,以上代码设置的下限电压阈值为3.3*1/8=0.41V,上限电压阈值为 3.3*5/8=2.06V。

模拟看门狗中断服务程序

/**
 * @brief Analog watchdog callback in non blocking mode.
 * @param hadc: ADC handle
 * @retval None
 */
 void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc)
{
 /* Set variable to report analog watchdog out of window status to main */
 /* program. */
 ubAnalogWatchdogStatus = SET;
}

当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断,中断服务程序触发后,可以做出一些应对措施。这里置了 ubAnalogWatchdogStatus 标志,然后由主程序去根据标志的值去执行相应处理程序。

/* Infinite loop */
 while (1)
 {
 /* Turn-on/off LED1 in function of ADC conversion result */
 /* - Turn-off if voltage is into AWD window */
 /* - Turn-on if voltage is out of AWD window */
 /* Variable of analog watchdog status is set into analog watchdog */
 /* interrupt callback */
 if (ubAnalogWatchdogStatus == RESET)
 {
 BSP_LED_Off(LED1);
 }
 else
 {
 BSP_LED_On(LED1);

 /* Reset analog watchdog status for next loop iteration */
 ubAnalogWatchdogStatus = RESET;
}
}

启动 ADC 转换代码

#define ADCCONVERTEDVALUES_BUFFER_SIZE 256 /* Size of array
aADCxConvertedValues[] */
/* Variable containing ADC conversions results */
__IO uint16_t aADCxConvertedValues[ADCCONVERTEDVALUES_BUFFER_SIZE];
/* Start ADC conversion on regular group with transfer by DMA */
 if (HAL_ADC_Start_DMA(&AdcHandle,
 (uint32_t *)aADCxConvertedValues,
ADCCONVERTEDVALUES_BUFFER_SIZE
 ) != HAL_OK)
 {
 /* Start Error */
 Error_Handler();
 }

使用循环模式 DMA 启动 ADC 转换,DMA 可以降低 CPU 负载。

结论

控制系统中,需要测量严格电压、压力、温度等范围的信号,使用模拟看门狗能够快速地检测到异常状况,并做出相应的应对措施,以确保设备安全。

围观 2608

蝴蝶效应理论想必大家都很清楚,而就在十年前的六月,意法半导体(以下简称ST)在北京首发了全球首款采用ARM Cortex-M3 内核的处理器STM32 F3,与此同时,选择了一只蝴蝶作为产品的Logo,正是这只蝴蝶,搅乱了整个MCU市场。

图:尽管公司的平面设计从美女变成了运动员,但那只蝴蝶还在
图:尽管公司的平面设计从美女变成了运动员,但那只蝴蝶还在

正如STM32之父、意法半导体微控制器事业部市场总监Daniel Colonna表示,“十年前我们选择了蝴蝶作为STM32的代表Logo,意味着我们要利用STM32,为工程师、开发者们释放更多创造力。”这是Daniel在意法半导体十周年纪念仪式上回忆的。除Daniel之外,意法半导体亚太区MMS及物联网副总裁Arnaud Julienne,意法半导体中国微控制器事业部市场及应用总监曹锦东悉数到场,一起回顾STM32这十年取得的成功,以及对今后微控制器市场的预测。

一只蝴蝶,改变了单片机市场——STM32诞生十周年纪念
图:从左至右依次为,意法半导体微控制器事业部市场总监Daniel Colonna;意法半导体中国微控制器事业部市场及应用总监曹锦东;意法半导体亚太区MMS及物联网副总裁Arnaud Julienne

2007年的那只蝴蝶

2007年,ST的第一大客户还是如日中天的Nokia,为了应对市场的变化,彼时刚刚上任一年多的CEO Carlo Bozotti,进行了大刀阔斧的架构改革。Bozotti将ST的半导体产品部划分为三大事业部,分别为ASG、FMG和IMS。其中ASG(Application Specific Product Groups)包括了移动,多媒体和通信,家庭娱乐与显示,个人电脑以及汽车产品部,FMG(Flash Memories Group)则是存储部门,也就是后来的Numonyx,IMS(Industrial and Multisegment Sector)部门则由模拟/功率/传感器(APM)部门与微控制器/存储/智能卡(MMS)两大部门组成,其中STM32所属的MMS部门领导由Claude Dardanne担任,时至今日,无论公司如何改组,Claude Dardanne依然领导着微控制器和数字IC事业部,足见公司对于该产品部的重视。

这一年,除了部门改组,ST还和Intel联合成立了Numonyx公司,收购了数字电视芯片供应商Genesis Microchip,与诺基亚签署合作计划,获得其调制解调器技术授权以及3G芯片开发业务。

如今,无论是数字电视、存储器还是手机芯片业务,ST都已放弃,当时谁能想到,MCU成为了公司现今一大支柱产业。

正如Arnaud所说:“10年很短,但对于半导体产业来讲,十年时间很长,会发生很多变化。”

STM32有多成功

Arnaud表示,十年前,意法半导体在中国通用MCU市场占有率仅为2%左右,排名10名以外,而现在占有率提升到了14.1%,在国内Cortex-M单片机市场中占有率更高达45.8%,已成为全球第二大通用微控制器厂商。

STM32 MCU年总产值从2007年的四千万美金增长到现如今的4亿美金,年复合增长率达27%,最近几年更是基本保持着两年翻一番的增长势头。

图:STM32 年营业额
图:STM32 年营业额

在Daniel给出的图中显示,2017年,STM的出货量将达到恐怖的每秒32颗,也就是一年10亿颗。

图:STM32出货量里程碑
图:STM32出货量里程碑

<成功离不开天时地利与人和/strong>

俗话说站在风口猪都会飞,STM32的成功正赶上32位单片机市场的爆发,2010年,32位MCU市场销售额超过了8位机,成为业界主导,根据IC Insight预测,到2020年32位MCU还将有10%的年复合增长率。而其中物联网微控制器的年均复合增长率更是达到了17.6%,届时年出货接近25亿美元。

图为MCU营业额预测

图为IOT MCU营业额预测
上图为MCU营业额预测,下图为IOT MCU营业额预测

地利源于ST对于技术的不断追求,从2007年全球首发STM32 F1之后,每年ST都会有新品推出,满足市场的不同需求。如图所示。

图:STM32发布的里程碑事件,几乎每年都会有新品推出
图:STM32发布的里程碑事件,几乎每年都会有新品推出

“十年前,我们发布的STM32,用180nm工艺做的,128kb flash,20Kb RAM,Cortex-M3 72MHz主频,而现在最新发布的产品STM32 M7主频提升到400M,工艺变成40nm,拥有2048KB闪存以及1024KB RAM。这表明STM32永远给客户更多选择,无论是性能还是存储的多样化方面,我们永远给市场承诺,让客户可以掌握先机。”

Daniel自豪地表示:“时至今日,STM32依然是中国工程师、开发者设计项目的首选,比如应用在现在流行的共享单车上,这也证明我们当时对产品的定义,对客户的需求的把握都恰到好处,我也为此感到无比自豪。”

人和则是STM32对中国工程师的大力支持,“过去十年中,我也经常访问中国,拜访我们的大客户、小客户,所以从内心来讲我对中国有很深的感情。”Daniel称。

Arnaud表示,STM32的成功得益于中国市场的爆发,ST每年都会不遗余力的培养中国MCU生态系统,从媒体广告合作到线上论坛,从先下峰会到技术培训,从大学人才培养到本地化内容,STM32已拥有10万个以上客户群,有超过百万工程师掌握了STM32产品技术。

十年前,ST在中国的单片机市场只有一些大客户,通过上述一系列动作,目前,据统计STM32产品有超过70%来自中小客户,中国区出货量占比也提升到了36%。

关于STM32的未来与承诺

关于STM32未来的愿景,Daniel畅想到:“第一,STM32依然保持嵌入式应用,包括IoT、智能工业、智能家居、应用里的核心,ST的功能是发挥它的智慧,通过软件实现更加智能的世界。我们希望STM32在市场上是创新,技术上的领先者、先行者。第二,我们希望STM32能成为所有的客户,包括大客户,和中小客户,在开始他们新项目或是新创意时候的首选。”

“往往新的、特别的创意都来自于中小客户,因为中小客户没有太多的限制,设计师会有更加令人称赞的设计,我们希望能够通过自己的渠道,产品的知名度,以及媒体的宣传,能够更好地支持中小客户的产品设计。”Daniel表示。实际上通过公布的客户资料显示,STM32客户群既有亚马逊、苹果、任天堂等大公司,同时又有Pogotec、UBTECH、Netatmo等初创创新公司。

Arnaud解释道:“MCU是个非常通用的产品线,纵观市场上的众多应用,一是过去没有用MCU的应用如今在用MCU;二是过去用MCU的应用现在依然在用MCU,可能是更高性能、更低功耗的MCU。当然随着市场成熟,会有一些SoC出来, 抢占部分MCU市场,或者把MCU集成到主控制器里。这一切都表明MCU市场永远是动态的,所以要准确把握市场动向,多接触中小客户。”

Daniel承诺,ST会不断投资STM32的未来,在产品线、可靠性和产品灵活度上,无论是STM32系统、内部的开发蓝图,以及合作伙伴的合作方面,尽力发布更加优异的产品,给用户提供MCU和整个生态系统。

在技术蓝图方面,Daniel的承诺如下:

首先,是注重低功耗无线产品线,同时也会更加注重高性能产品线。

第二,在GUI图像显示方面,ST会继续推进包括图形显示库在内的多种方式,同时ST有三家GUI协议栈合作伙伴,可以覆盖从低端到高端的用户体验。

第三,安全性是永恒的话题,STM32将更加安全,包括软件相关库,认证库和外设等方面。作为为数不多的智能卡方案供应商,STM32将嵌入更多的安全性功能。

第四,是ST将推出更多高性能产品应对工控需求,特别是马达控制领域。当然马达控制不仅在工业控制,在消费电子,包括航模、净化器、空调、风机等都有可能用到。

第五,会投入更多传感器相关领域,作为全球排名前列的传感器供应商,ST会加强传感器同MCU的协同垂直合作上。

第六,ST将继续发展无线传输领域,与STM32配合。包括NB-IOT、LoRa、SigFoX、Thread等新兴标准,同时也包括WiFi、蓝牙等传统领域,都会有相配套产品出现。

着力打造差异化的十年

十年前,当ST刚刚推出STM32时,Daniel就被媒体问道如果以后都采用ARM内核,那么单片机的差异化出路在哪里?ST如何应对竞争?Daniel也许忘记了当年的答案。

十年过去了,尽管越来越多公司推出ARM内核MCU,但STM32的市占率却屡创新高,这应该就是最好的回答。

为什么会这样?

Daniel认为,STM32差异化来自两方面,一个是拥有广泛且全面的产品线,客户的开发或升级都有很好的兼容性。第二是品牌建设,经过十年的耕耘,STM32尤其是在年轻工程师市场中拥有良好口碑,这对于MCU选型来说非常重要。当然这也离不开生态系统的建设,通过强大的开发者生态系统,一方面更为方便地帮客户进行开发,同时通过了解客户需求,进一步改进或规划未来的产品方向,实现良性循环。

Arnaude则补充了STM32成功的另外两个差异化:“ST是当今产品线最全的半导体供应商之一。用户在设计产品时,不仅会选择MCU,同时还选择功率器件、传感器、无线等产品。如今ST可以以系统供应商的方式为工程师服务,这就确保了用户对ST有着足够的忠诚度和依赖性。最后,则是ST拥有强大的本地技术开发与支持团队,确保公司层面策略的执行和本地化市场活动的执行。”

“MCU市场不仅只有我们一家,十年以来竞争从未消失,反而越来越激烈,我们必须从产品、设计、制造等方面不断突破自我,才能在这场赛跑中保持领先。”Daniel说。

来源: EEWORLD

围观 498

在STM32上开发LCD显示,可以有两种方式来对LCD进行操作,一种是通过普通的IO口,连接LCM的相应引脚来进行操作,第2种是通过FSMC来进行操作。

1. LCD/LCM的基本概念

液晶显示器(Liquid Crystal Display: LCD)的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

LCM(LCD Module)即LCD显示模组、液晶模块,是指将液晶显示器件,连接件,控制与驱动等外围电路,PCB电路板,背光源,结构件等装配在一起的组件。

在平时的学习开发中,我们一般使用的是LCM,带有驱动IC和LCD屏幕等多个模块。

2.存储器的概念

存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成 电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计 算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指 定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外 存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和 程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

以存储体(大量存储单元组成的阵列)为核心,加上必要的地址译码、读写控制电路,即为存储集成电路;再加上必要的I/O接口和一些额外的电路如存取策略管 理,则形成存储芯片,比如手机中常用的存储芯片。得益于新的IC制造或芯片封装工艺,现在已经有能力把DRAM和FLASH存储单元集成在单芯片里。存储 芯片再与控制芯片(负责复杂的存取控制、存储管理、加密、与其他器件的配合等)及时钟、电源等必要的组件集成在电路板上构成整机,就是一个存储产品,如U 盘。从存储单元(晶体管阵列)到存储集成电路再到存储设备,都是为了实现信息的存储,区别是层次的不同。

3.FSMC的概念

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

FSMC技术优势:

①支持多种静态存储器类型。STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连。

②支持丰富的存储操作方法。FSMC不仅支持多种数据宽度的异步读/写操作,而且支持对NOR/PSRAM/NAND存储器的同步突发访问方式。

③支持同时扩展多种存储器。FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当系统中扩展和使用多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,防止各存储器对总线的访问冲突。

④支持更为广泛的存储器型号。通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。

⑤支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。

FSMC内部结构:

FSMC包含两类控制器:1个NOR闪存/SRAM控制器,可以与NOR闪存、SRAM和PSRAM存储器接口。1个NAND闪存/PC卡控制器,可以与NAND闪存、PC卡,CF卡和CF+存储器接口。

STM32微控制器之所以能够支持NOR Flash和NAND Flash这两类访问方式完全不同的存储器扩展,是因为FSMC内部实际包括NOR Flash和NAND/PC Card两个控制器,分别支持两种截然不同的存储器访问方式。在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。

FSMC映射地址空间:

FSMC管理1 GB的映射地址空间。该空间划分为4个大小为256 MB的BANK,每个BANK又划分为4个64 MB的子BANK。FSMC的2个控制器管理的映射地址空间不同。NOR Flash控制器管理第1个BANK,NAND/PC Card控制器管理第2~4个BANK。由于两个控制器管理的存储器类型不同,扩展时应根据选用的存储设备类型确定其映射位置。其中,BANK1的4个子BANK拥有独立的片选线和控制寄存器,可分别扩展一个独立的存储设备,而BANK2~BANK4只有一组控制寄存器。

FSMC 包括4个模块:

(1)AHB接口(包括FSMC配置寄存器)
(2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DATA RAM 一个是CMD RAM)
(3)NAND闪存和PC卡控制器
(4)外部设备接口

小结:

FSMC是一种用于为STM32扩展外部存储器的控制器,它是一种控制器!

FSMC控制器,包括AHB接口及两个控制器,NOR Flash和NAND/PC Card两个控制器。

FSMC分为4个BANK,其中NOR Flash(BANK1),NAND/PC Card(BANK2-4)。

控制器产生所有驱动这些存储器的信号时序:
1. 16位数据线,用于连接8位或16位的存储器;
2. 26位地址线,最多可连续64MB的存储器(这里不包括片选线);
3. 5位独立的片选信号线;
4. 1组适合不同类型存储器的控制信号线。

控制读/写操作:
- 与存储器通信,提供就绪/繁忙信号和中断信号。
- 与所用配置的PC卡接口:PC存储卡、PC I/O卡和真正的IDE接口。

从FSMC的角度看,可以把外部存储器划分为固定大小为256MB的4个存储块:
· 存储块1用于访问最多4个NOR闪存或者PSRAM存储设备。这个存储区被划分为4个NOR/PSRAM区,并有4个专用的片选。
· 存储块2和3用于访问NAND闪存设备,每个存储块连接一个NAND闪存。
· 存储块4用于访问PC卡设备。

每一个存储块上的存储器类型是由用户在配置寄存器中定义的。

注意:FSMC只是提供了一个控制器,并不提供相应的存储设备,至于外设接的是什么设备,完全是由用户自己选择,只要能用于FSMC控制,就可以,像本次实验中,我们接的就是LCM。

FSMC对外部设备的地址映像从0x6000 0000开始,到0x9FFF FFFF结束,共分4个地址块,每个地址块256M字节。可以看出,每个地址块又分为4个分地址块,大小64M。对NOR的地址映像来说,我们可以通过选 择HADDR[27:26]来确定当前使用的是哪个64M的分地址块,如下页表格。而这四个分存储块的片选,则使用NE[4:1]来选择。数据线/地址线 /控制线是共享的。

NE1 ->Bank1 NE2->Bank2NE3->Bank3NE4->Bank4
若 NE1 连接, 则:
每小块NOR/PSRAM 64M。
第一块:6000 0000h--63ff ffffh (DATA长度为8位情况下,由地址线FSMC_A[25:0]决定;DATA长度为16位情况下,由地址线FSMC_A[24:0]决定)。
第二块:6400 0000h--67ff ffffh。
第二块:6800 0000h--6bff ffffh。
第三块:6c00 0000h--6fff ffffh。

注:这里的HADDR是需要转换到外部设备的内部AHB地址线,每个地址对应一个字节单元。因此,若外部设备的地址宽度是8位的,则 HADDR[25:0]与STM32的CPU引脚FSMC_A[25:0]一一对应,最大可以访问64M字节的空间。若外部设备的地址宽度是16位的,则 是HADDR[25:1]与STM32的CPU引脚FSMC_A[24:0]一一对应。在应用的时候,可以将FSMC_A总线连接到存储器或其他外设的地 址总线引脚上。

使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线。

(1)当存储数据设为8位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b)
地址各位对应FSMC_A[25:0],数据位对应FSMC_D[7:0]

(2)当存储数据设为16位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b)
地址各位对应FSMC_A[24:0],数据位对应FSMC_D[15:0]

4.ILI9325

ILI9325的功能很多,在此无法一一说明,但是参考ILI9325的Datasheet我们发现有几个引脚还是非常重要的,而只要操作好了这几个引脚,基本上就可以实现简单的对LCM的控制了。

nCS: IC的片选信号。如果是低电平,则ILI9325是被选中,并且可以进行操作,如果是高电平,这不被选中。

RS: 寄存器选择信号。如果是低电平,则选择的是索引或者状态寄存器,如果是高电平,则选择控制寄存器。

nWR/SCL: 写使能信号,低电平有效。

nRD: 读使能信号,低电平有效。

5. 电路设计

1. 信号线的连接

STM32F10x FSMC有4个不同的banks,每一个64MB,可支持NOR以及其他类似的存储器。这些外部设备的地址线、数据线和控制线是共享的。每个设备的访问时通过片选信号来决定的,而每次只能访问一个设备。我们的LCM就是连接在NOR的bank上面。

FSMC_D[15:0]:16bit的数据总线,连接ILI9325的数据线; FSMC_NEx:分配给NOR的256MB的地址空间还可以分为4个banks,每一个区用来分配一个外设,这4个外设分别就是NE1-NE4; FSMC_NOE:输出使能,连接ILI9325的nRD引脚; FSMC_NWE:写使能,连接ILI9325的nWR引脚。

FSMC_Ax:用在LCD显示RAM和寄存器之间进行选择的地址线,这个和ILI9325的RS引脚相连。该线可用任意一根地址线,范围是FSMC_A[25:0]。当RS=0时,表示读写寄存器,RS=1时,表示读写数据RAM。

其实关于RS的表述也并不完全准确,应该这么理解,RS=0的时候,向这个地址写的数表示了选择什么寄存器进行操作,然而要对寄存器进行什么操作,则要看当RS=1时,送入的数据了。

关于地址的计算,如果我们选择NOR的第一个存储区,并且使用FSMC_A16来控制ILI9325的RS引脚,则如果要访问寄存器地址(RS=0),那 么地址是0x6000 0000(起始地址),如果要访问数据区(RS=1),那么基地址应该是0x6002 0000。

有人会问,为什么不是0x6001 0000呢?因为FSMC_A16=1。因为在前文中已经说过,若外部设备的地址宽度是16位的,则是HADDR[25:1]与STM32的CPU引脚 FSMC_A[24:0]一一对应。也就是说,内部产生的地址应该要左移一位,FSMC_A16=1,代表着第17位为1,而不是第16位为1。如果外部 设备的地址宽度是8位的话,则不会出现这个问题。

再举一个例子,如果选择NOR的第4个存储区,使用FSMC_A0来控制RS引脚,则访问数据区的地址为0x6000 0002,访问LCD寄存器的地址为:0x6000 0000。

2. 时序问题

一般使用模式2来做LCD的接口控制,不使用外扩模式。并且读写操作的时序一样。此种情况下,我们需要使用3个参数:ADDSET、DATAST、ADDHOLD。时序的计算需要根据NOR闪存存储器的特性和STM32F10x的时钟HCLK来计算这些参数。

写或读访问时序是存储器片选信号的下降沿与上升沿之间的时间,这个时间可以由FSMC时序参数的函数计算得到:
写/读访问时间 = ((ADDSET + 1) + (DATAST + 1)) × HCLK

在写操作中,DATAST用于衡量写信号的下降沿与上升沿之间的时间参数:

写使能信号从低变高的时间 = t WP = DATAST × HCLK

为了得到正确的FSMC时序配置,下列时序应予以考虑:

最大的读/写访问时间、不同的FSMC内部延迟、不同的存储器内部延迟
因此得到:
((ADDSET + 1) + (DATAST + 1)) × HCLK = max (t WC , t RC )

DATAST × HCLK = tWP

DATAST必须满足:
DATAST = (tAVQV+ tsu(Data_NE) + tv(A_NE) )/HCLK – ADDSET – 4

由于我没有找到ILI9325的这些时序的参数,所以就参考了一些以前别人写的程序里面的时序配置。当 HCLK 的频率是 72MHZ,使用模式 B,则有如下时序:
地址建立时间:0x1
地址保持时间:0x0
数据建立时间:0x5

在论坛上问为什么FSMC调试会进入Handler fault。没人回答。当然也不好回答,这些问题是不可预知,更无法估测。所以自己调来调去。调了整整一天也未见结果。左一右一次的对着寄存器一位一位的设置。后来设计想是不是应该用到库,是不是自己操作寄存器不好。带着苦恼回宿舍睡觉了。(9点了工作室关门了,也没那么牛X学到1,2点,当然我绝对佩服他们)今天早上,我再次对了寄存器,看到了其中有两位会产生AHB硬件fault我则将这两个都使能,结果,结果成功了。不再进入Handler fault了。这让我感觉惭愧,原因昨天晚上想过会不会是这两个问题,但是麻烦的心理让我改了前一个望了后一个,总有一个处于非使能状态。。

一旦通过就写了TFT的驱动,调试发现无法打开TFT DISP。oh 又无语中,不断的调试,找引脚连接图,最终发现数据手册上的引脚标错了。。叹。也怪自己。因为第一处标的是对的,自己看的第二处。。就这样今天一天也算差不多了,写好了TFT驱动显示了字符,可以横屏竖屏,并可以显示满屏,很开心。

而横屏和竖屏很是绕人,也经过了个把小时才弄通了。

这里为了以后不会忘记再次提及一下自己。我用的TFT使用ILI9341和9325不一样,只看到了E文,不过上面寄存器那边的单词还算简单。这里主要用到了0X36,0X2A,0X2B几个寄存器,而其它的不再记录。及ILI9341的使用和坐标" title="关于FSMC驱动LCD的总结,进入HardFault_Handler 及ILI9341的使用和坐标" style="border-width: 0px; list-style: none;">

以左上角为TFT屏的原点,如果置位MY则Y坐标将映射到对面同一条线上的点即319的点上,MX同理也会到对面同一直线的点上为239。(319和239为我屏的尺寸不表多数)如果同时设置了这两个点则原点会到(0,0)的对角线即最大坐标上(239,319)。而MV则是液晶屏的点亮方向(可以这么理解)它的点亮方向即向X方向点亮还是向Y方向点亮。

当然点亮屏幕的像素还和0X2A和0X2B命令有关。及ILI9341的使用和坐标" title="关于FSMC驱动LCD的总结,进入HardFault_Handler 及ILI9341的使用和坐标" style="border-width: 0px; list-style: none;">

0x2A设置列的长度,有4个参数,前两个参数为列的首坐标,后两个参数为列坐标的结束坐标。

及ILI9341的使用和坐标" title="关于FSMC驱动LCD的总结,进入HardFault_Handler 及ILI9341的使用和坐标" action-data="http%3A%2F%2Fs9.sinaimg.cn%2Fmiddle%2F79fbacedn7aaafe89e648%26690" action-type="show-slide" style="border-width: 0px; list-style: none;">

0X2B则是设置页地址即屏幕上到下的大小。设置了2A和2B整个操作只在这个区域才能被实现。

因此我们根据0x36中的MX和MY所设的坐标,和MV所设置的方向设置整个屏的大小。

假设屏水平放置,即水平方向为320,垂直方向为240.屏的左上角为坐标0,0。假设设置MV以X方向向右点亮,假设要点亮整个屏则需要将0X2A设置成319,0x2B设置成213。如果设置反了则 会出现以以下的情况及ILI9341的使用和坐标" title="关于FSMC驱动LCD的总结,进入HardFault_Handler 及ILI9341的使用和坐标" action-data="http%3A%2F%2Fs6.sinaimg.cn%2Fmiddle%2F79fbacedncaae0c593e95%26690" action-type="show-slide" style="border-width: 0px; list-style: none;">

这些都是个人理解。如果你是在调节液晶屏的横竖屏都显示的话你只要设置0X36、0X2A、0X2B这三个寄存器即可。可以自己调试点亮一排像素来得到自己想要的结果。

围观 843

作者:张国斌
“作为全球第三大MCU厂商,我们的市场份额是一点点做起来的,现在,MCU领域的各类并购对我们没有任何威胁,我们认为从来没有靠并购做强的先例,我们靠的是内生强大!”去年5月,在首届意法半导体2016STM32中国峰会上,ST执行副总裁兼亚太区总裁Marco Cassis在接受媒体采访时这样强调。(详见《9年从零做到16亿,它是怎么做到的?》)而在今年5月初,市场研究机构IC Insights公布的最新MCU年度报告指出以营收规模来看,全球前三大MCU供应商依序为NXP、瑞萨和Microchip,而排名前10中的NXP、Microchip和Cypress都因收购而扩大了营收规模,反观那些并没有进行收购的MCU厂商,2016年的营收仅是个位数字增长甚至衰退。内生强大和通过收购做大,MCU领域谁能笑到最后呢?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

收购变大成效显著

在IC Insights排名中,有三家公司因收购2016营收大幅度增长2位数以上,其中NXP取代日商瑞萨成为全球最大MCU供应商,NXP在2015年12月完成对老牌MCU厂商Freescale的收购(以116亿美元总价),在收购之前,Freescale是全球第二大MCU供应商,2015年营收仅落后第一名的瑞萨约2.1亿美元,两者差距在2014年为则为10亿美元。收购之后,NXP营收暴增116%,在MCU领域市场份额达到19%,排名则由2015年的第六名跃升到2016年的第一名!

Microchip2015年排名第五,由于也收购了老牌MCU厂商Atmel之后营收达到20亿美元一跃到全球第三。不过Microchip原来就是MCU领域前三甲,这次收购让Microchip成为同时拥有Imagination公司MIPS内核和ARM内核 的MCU公司,使其方案应用范围扩大不少。

赛普拉斯的MCU份额曾经排不到前10 ,这次由于在2015年3月以50亿美元的股票交换收购Spansion,而后者在2013年以1.1亿美元收购了日商富士通半导体的MCU和模拟部门,所以MCU营收增长,跃升全球第八大MCU供应商。

反观没有收购的MCU供应商,ST、TI和英飞凌只有4%以下的增长,而瑞萨和三星更是下跌4%和14%!2011年的时候,瑞萨还是全球老大,市占率达到33%,到2016年已经跌到16%!而且是连续两年MCU营收下降!不过瑞萨在中国地区还是保持第一份额,而且在汽车电子领域MCU份额很高,未来还是有潜力夺回全球MCU第一宝座的。(不过奇怪的是IC Insights这个top10排名为啥就排到第八,第九和第十呢?)

从上面的对比来看,似乎收购更容易做大,但是收购能做强吗?从半导体历史来看,通过收购长久占据龙头老大的案例少之又少,NXP占据第一是通过第六+第二实现的,而ST 2014年排名第五,2015年排名第三,这样内生性的公司不是更有前景呢?

从STM32中国峰会看ST未来

我个人认为衡量一个MCU厂商未来如何主要看这几点:
1、在物联网的布局和优势(为什么单独说物联网因为物联网是MCU应用的主战场MCU是物联网智能节点的核心),
2、生态系统建设 是否有更多合作伙伴,
3、开发工具便利和易用性。
4、产品竞争力

让我们从意法半导体2017STM32中国峰会来看。4月25日,意法半导体2016STM32中国峰会在深圳召开,首先参会规模就创下了一个新记录----主办方称有超过2000人参会!根据我参加的历年半导体垂直研讨会经历来看,能超过2000人规模就是英特尔的IDF、飞思卡尔的FTF和这次STM32中国峰会了,这也说明了STM32在中国的受欢迎程度之高,另外现场合作伙伴展示方案数量也超过去年!

内生强大VS 收购强大,MCU厂商谁能笑到最后?

这是现场合作伙伴的展示,范围涵盖非常广泛从各种智能工业、智能农业、消费电子、无人机都有包括。

内生强大VS 收购强大,MCU厂商谁能笑到最后?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

华为技术公司和ST也有很多合作,包括在华为LiteOS上的合作,Huawei LiteOS 是华为面向IoT领域,构建的"统一物联网操作系统和中间件软件平台",以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供 "一站式" 完整软件平台,有效降低开发门槛、缩短开发周期。

Huawei LiteOS 目前主要应用于智能家居、穿戴式、车联网、智能抄表、工业互联网等 IoT 领域的智能硬件上。在这次峰会上展示了基于ST MCU和 LiteOS智能照明、智能车等应用。

内生强大VS 收购强大,MCU厂商谁能笑到最后?

内生强大VS 收购强大,MCU厂商谁能笑到最后?

ST的物联网布局

内生强大VS 收购强大,MCU厂商谁能笑到最后?

意法半导体全球执行副总裁暨亚太区总裁 Marco Cassis (柯世盟)在主题发言中指出STM32产品家族已经有十年历史,十年之后STM32取得了巨大成功。“现在STM32的MCU出货量已经接近25亿。这个产品有L、F、H系列,覆盖从低功耗到高性能,能够满足不同应用的要求。现在STM32所有产品都可以支持物联网,我们有巨大的机会,涉及广阔的行业与领域。”他强调。“ST的MCU复合增长率是27%,根据iSuppli的最新数据,ST在2015年是中国第二大标准微控制器厂商,最重要的一点,市场证明我们的解决方案是非常好用的。在中国,STM32是最值得信赖的、经过市场检验的解决方案,适用于各种产品和设备。”

他强调ST的未来发展基于四个支柱分别是客户、垂直应用、生态系统和合作伙伴,基于这四个支柱ST构建了强大的STM32的生态系统。

意法半导体全球执行副总裁兼MCU数字集团总经理Claude Dardanne介绍了ST的物联布局。

内生强大VS 收购强大,MCU厂商谁能笑到最后?

“物联网是我们的未来,我们花了十年时间来获得非常好的市场份额,同时也让STM32产品覆盖全球市场,我们未来要在第二阶段发展要获得成功,会特别关注物联网的安全。”他强调。

在物联网时代,未来会有数十亿连接起来的设备,连接了不同领域,不同距离,通过Wi-Fi、蓝牙、zigbee等连接到网关、云端的所有设备,在连接方面,安全至关重要,因此,ST 的MCU 非常注重安全。

“机构预测2020年前联网设备数量将达到约330亿,而现在连接的还不到10亿!2019年全球经济总量将增加17000亿美元 而物联网市场2014–2020年均复合增长率将达到40%!在这样的形势下,我们的物联网战略的重点是什么?是四个主要应用领域:智慧工业、智慧城市、智能家居和智能硬件。”他指出,“网会推动ST有巨大增长,传统市场的STM32有很广泛的应用。现在我们进入第二阶段,这个阶段更多是针对物联网产品,STM32会增加连接性、安全性。可以更好地实现智能硬件、智能家居、智能城市和智能工业。”

内生强大VS 收购强大,MCU厂商谁能笑到最后?

他指出STM32将要成为物联网的应用大脑,除了有更多的灵活性、更好的能效、更高的处理性能以及更低的功耗外,STM32还要增加通信的连接性,要有很多的连接能力、连接的界面、Wi-Fi等等。

内生强大VS 收购强大,MCU厂商谁能笑到最后?

“目前ST有10个不同系列的产品,可以给客户提供700多款产品,这些产品出货量已经超过了20亿,客户数量已经超过4万,在市场居于领先水平。”他指出,“ST可以提供三个层级的产品:模块、系统级封装和系统级芯片。这样我们就可以提供一个STM32平台,它还有连接性,针对不同的应用,所有这些都是内置STM32。”

他特别指出STM32平台内置了安全性能,可以提供各种等级的安全,如果智能手机想用支付,也可以用到STM32。ST有不同的产品满足不同的市场需求,包括成熟市场和新兴市场,能够涵盖智能硬件、智能家居、智慧城市和智慧工业;可以提供低功耗处理器,近距离和远距离的通讯连接;安全功能和标准认证等等。

意法半导体中国微控制器事业部技术市场经理Stephane Rainsard认为物联网系统三个步骤构建系统安全性:

第一个步骤,就是威胁分析。威胁分析是一个流程,让你们知道,你们有哪些Asset、Threats、Vulnerability、Countermeasure。
第二个步骤,整个系统的安全考虑。
第三个重要的步骤,产品生命周期的安全管理。

他表示STM32可以给客户提供强大的安全保护,“ST有一个非常强大的安全专家智囊团,我相信你们都知道AES对称加密算法。AES对称加密的算法来源于ST的专家。ST专家也是SHA3的发明者!”他举例说。

此外,ST有一个过认证的加密算法库,这个加密算法库包含一些对称加密,非对称加密的运行时间等。这个算法库也是经过认证的,ST的算法通过CAVP FIPS认证,所有的AES对称加密各种模式都验证过。

STM32生态系统建设

内生强大VS 收购强大,MCU厂商谁能笑到最后?

意法半导体中国微控制器事业部市场及应用总监曹锦东介绍了STM的生态系统建设。他认为STM32生态系统也推动中国物联网发展。“据第三方分析,到2024年中国IoT市场会达到1200亿规模,而中国人口才是14亿,这意味着到2024年,中国平均每个人在IoT的花费将会超过800元人民币,这对我们来讲是个很好的机会。”他指出,“IOT讲求万物互联,目前中国火爆的摩拜单车就有STM32,它是STM32和中国创新的结合,自行车已经发明了100多年,而中国让这个有100多年历史的产品焕发了活力,我们也期望IOT给我们带来更好的体验。”

内生强大VS 收购强大,MCU厂商谁能笑到最后?

他表示ST提供简单易用的开发工具和各种开发板,也会针对各个应用建立起生态系统,ST会和合作伙伴提供产品以外的方案最终形成一个大的生态系统。我们联合合作伙伴在特定的应用环境打造垂直应用方案,会把各个模块最后进行整合。”本次峰会有很多方案和demo板演示,我们有信心,在未来和客户、合作伙伴一起做大IoT市场,除了IoT还有更广泛的市场,做大这个蛋糕,我们一起分享!”他表示。

围观 457

四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。

四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平衡控制系统由各类惯性传感器组成。在制作过程中,对整体机身的中心、对称性以及电机性能要求较低,这也正是制作四轴飞行器的优势所在,而且相较于固定翼飞机,四轴也有着可垂直起降,机动性好,易维护等优点。

系统方案

本设计采用STM32F4作为核心处理器,该处理器内核架构 ARM Cortex-M4,具有高性能、低成本、低功耗等特点。


设计总体框图

主控板包括传感器MPU6050电路模块、无线蓝牙模块、电机启动模块,电源管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的PPM命令信号,传感器与控制芯片之间采用IIC总线连接,MCU与电调之间用PWM传递控制信号。 


MPU-6050电路原理图

电源管理模块

四轴飞行器要求整体设计质量较轻,体积较小,因此在电池的选取方面,采用体积小、质量轻、容量大的锂电池供电最合适。系统的核心芯片为STM32F103,常用工作电压为3.3V,同时惯性测量传感器,蓝牙通信模块的常规供电电压也为3.3V,锂电池的电压为11.4V,要使系统正常工作,需要将11.4V的锂电池电压稳压到3.3V。常用的78系列稳压芯片已不再适用,必须选择性能更好的稳压芯片。

经综合考虑,本电路采用LM1117-3.3和LM2940-5电源部分的核心芯片。电池电源经过LM2940-5降到5V后在输入LM1117-3.3稳压为3.3V。由于电机部分电流较大,故在飞控电路部分加入了过流保护,使用500mA的保险丝。

编者结语

本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理等系统组成。其具有灵活轻盈,延展性,适应性强好等特点。在实际应用方面,四轴飞行器可以在复杂、危险的环境下可以完成特定的飞行任务,也可以用于监控交通,环境等。

来源:电子产品世界

围观 468

前言

在客户使用基于Cortex-M7内核的STM32F7xx实际测试中,发现同等主频下基于Cortex-M4内核的STM32F4xx芯片执行同样一段简单程序在时间上还要快于STM32F7xx。这个会影响到客户切换到STM32F7xx的信心,也对ST以及ARM宣传上Cortex-M7内核执行时间远快于Cortex-M4内核的说法提出质疑,本文将针对具体案例分析这一情况的产生以及解决办法。

问题描述

客户测试复杂程序运行时间,比如同样180MHz主频下,STM32F7xx执行Coremark测试程序时间远小于STM32F4xx的执行时间;也就是STM32F7xx的性能更佳,运算执行效率更好。但当客户顺序执行程序,尤其是简单程序时发现STM32F7xx执行时间大于STM32F4xx的执行时间,比如运行下面的同样的测试代码,就有明显差距:

volatile uint16_t i;
static volatile uint16_t j = 0;
i = 0;
while(i<300)
{
i++;
}
if(j < 100)
{
j ++;
}
else
{
j = 0;
}

为方便量化时间,使用Timer2计数方式对这段时间进行计数,Timer2运行在90MHz,向上计数,Test_Counter数据用于输出计数数值,增加后代码如下:

volatile uint16_t i;
static volatile uint16_t j = 0;
TIM2->CNT = 0;
__HAL_TIM_ENABLE(&htim2);
i = 0;
while(i<300)
{
i++;
}
if(j < 100)
{
j ++;
}
else
{
j = 0;
}
__HAL_TIM_DISABLE(&htim2);
Test_Counter = __HAL_TIM_GET_COUNTER(&htim2);

通过上面的修改后测试下来,Test_Counter数据分别为:

STM32F446 数据为 1543
STM32F746 数据为 1836
如果使用Keil自带的States cycles计算方法得到如下数据,后面会按照这个来计算执行时间数据。
STM32F446 数据为 3009
STM32F746 数据为 3635

RMW对 STM32F7xx内核运行速度影响的分析

原因分析:

上面的测试都是在使用了Cache以及ART加速方法测得,如果针对STM32F7xx的性能优化可以参考AN4667 "STM32F7 Series systemarchitecture and performance"这篇应用文档的描述,本例已经对文档描述部分做过优化,但问题依然是STM32F7xx速度慢于STM32F4xx。两颗芯片运行同样代码,比较两颗芯片汇编代码也是相同的:
LDRH r2,[sp,#0x00]
ADDS r2,r2,#1
STRH r2,[sp,#0x00]
LDRH r2,[sp,#0x00]
CMP r2,r3
BCC 0x00000128

通过查看ARM Cortex-M7内核文档发现下面描述:

RMW对 STM32F7xx内核运行速度影响的分析

反映到本例中发现定义的i数据为16-bit数据,同样也在汇编代码上发现了STRB这个汇编代码;这样在RMW(read-modify-write)机制下,当定义为byte以及half-word数据时将有一个先读取数据,修改后再写入数据的过程,这个读取-修改-写入的过程正是能够影响到内核执行效率的问题点,如果定义为32-bit就避免了这个问题的发生。

问题解决:

按照文档说明,我们将16-bit定义数据,改为32-bit的定义数据,即:
volatile uint32_t i;
static volatile uint16_t j = 0;
生成的汇编代码如下:
LDR r0,[sp,#0x00]
ADDS r0,r0,#1
STR r0,[sp,#0x00]
CMP r0,r1
BCC 0x08001F28

测试下来结果如下:

STM32F446 数据为 2102
STM32F746 数据为 1807
可以看到不管是STM32F4xx还是STM32F7xx,当数据定义为32-bit时都有显著的速度提升,当然STM32F7xx的提升更加明显,同样测试条件下STM32F7xx执行时间小于STM32F4xx的执行时间。

因为32-bit数据定义会增加内存,并且有时候定义为byte或halfword更方便,还需要提升速度的话我们看到同样是内核文件给出的说明,可以将RMW机制屏蔽掉:

RMW对 STM32F7xx内核运行速度影响的分析

实际上就是对CM7_DTCMCR寄存器的第1位写0,即可以在程序中有下面的操作:
__IO uint32_t * DTCM_CR =(uint32_t*)(0xE000EF94);
* DTCM_CR &= 0xFFFFFFFD; /* Disable read-modify-write */
禁止RMW后测试下来数据如下:
16-bit定义数据STM32F746 测试cycles数据为 3022
32-bit定义数据STM32F746 测试cycles数据为 1808
可以对比上面的测试数据也可以看到当禁止RMW后STM32F7xx性能也是优于STM32F4xx的。具体测试数据如下:

RMW对 STM32F7xx内核运行速度影响的分析

结论:

需要提升STM32F7xx执行时间,发挥出最大效能时,请参考AN4667,同时需要注意RMW对内核性能发挥的影响。

来源:STM32单片机微信公众号

围观 320

跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)新推出的两款立即可用的原型板大幅削减LoRaWAN™ 、Sigfox、WM-Bus、6LoWPAN等低功耗广域物联网(LPWAN)技术的评估成本。
新电路板搭载当前市面上销售的尺寸最小且功耗最低的LoRaWAN模块。
电路板尺寸不大于13x12mm,待机功耗在1.2µA以内。

我们的两款LoRa板子都通过LoRaWAN认证,并完全符合美国、欧洲、俄罗斯、印度等使用860-930MHz频段的国家的无线通信法规。除工业标准的通信协议外,板子还支持LPWAN物联网硬件远距离通信专有协议,例如智能表计、警报系统、跟踪设备、定位设备、环境传感器和身体活动传感器远距离连接通信。

B-L072Z-LRWAN1 STM32 LoRa® 探索套件基于Murata®开发的集成STM32L072CZ微控制器(MCU)和Semtech Sx1276收发器的一体化开放式模块,该模块的LoRa® 调制解调器具有超长距离展频通信功能和优异的抗干扰性,同时最大限度降低工作电流。

因为模块是开放的,所以开发人员能够访问STM32L072微控制器及其外设,例如ADC、16位定时器、LP-UART、I2C、SPI和USB 2.0 FS(支持BCD和LPM),在设计应用过程中可以使用STM32L0 HAL和LL嵌入式软件库,从STM32 Nucleo生态系统或种类繁多的Arduino™扩展板中选择扩展板,以进一步扩大电路板的功能。

B-L072Z-LRWAN1 套件包括
板载调试器
64引脚STM32 Nucleo morpho连接器
Arduino兼容连接器和电池插座

准许用户访问完全免费的开发生态系统,包括
MDK-ARM集成开发环境(IDE)
STM32CubeMX配置器和软件工具
以及意法半导体的LoRaWAN协议栈(I-CUBE-LRWAN)
2017年第一季度末,这块板子还将提供支持Sigfox的协议栈。

I-NUCLEO-LRWAN1准许用户访问完全免费的开发生态系统,包括 (25.00美元)是一块支持STM32 Nucleo或Arduino开发板的扩展板,只要插到主板上,即可立即着手开发全功能的LoRa和/或FSK/OOK(频移键控/二进制开关键控)连接应用。这块电路板集成USI®的LoRaWAN模块以及STM32L052T8微控制器和Semtech Sx1272收发器。

USI模块预装有助于简化设计同时节省编程时间的AT指令栈。
I-CUBE-LRWAN协议栈
免费使用。
另外一个产品优势是,为协助物联网(IoT)应用开发,
I-NUCLEO-LRWAN1评估板还配
有意法半导体的LIS2DS12 3轴加速度计
LPS22HB MEMS压力传感器
HTS221温湿传感器

B-L072Z-LRWAN1探索套件和I-NUCLEO-LRWAN1扩展板即日起接受经销商订货,并于本月底前在意法半导体官网st.com上架销售。

❀❀❀关于LoRa套件的详情和相关信息下载链接,请点击“阅读全文”或至中文官网(www.stmcu.com.cn)的“关于STM32”的“新闻中心”版块。

围观 1101

页面

订阅 RSS - STM32