Nucleo-L432KC开发板是Nucleo-32系列开发板中最新的一款,它采用了STM32L432KC6微控制器,除了具有良好的性能外,还支持超低功耗。
STM32L432KC控制器的主要特性:
- ARM®32-bit Cortex®-M4 CPU
- 80 MHz max CPU frequency
- VDD from 1.65 V to 3.6 V
- 256 KB Flash
- 64 KB SRAM
- timers General Purpose (4)
- SPI/I2S (2)
- I2C (2)
- USART (2)
- 12-bit ADC with 10 channels (1)
- GPIO (20) with external interrupt capability
- RTC
主要电气性能:
- 1.71 V 到 3.6 V 电源范围
- -40 °C 到 85/105/125 °C 温度范围
- 8 nA Shutdown mode (2 wakeup pins)
- 28 nA Standby mode (2 wakeup pins)
- 280 nA Standby mode with RTC
- 1.0 μA Stop 2 mode, 1.28 μA Stop 2 with RTC
- 运行模式下84 μA/MHz
- 批量捕捉模式 (BAM)
- 4 μs 从Stop mode唤醒
- Brown out reset (BOR) in all modes except shutdown
- 内部交叉矩阵
3
评分
-
查看全部评分
|
|
|
|
传感器的工作过程如下:传感器的工作周期为10ms,首先通过LED引脚启动传感器,然后等待0.28ms,使得传感器将粉尘浓度转换为电压,并利用STM32的PA5引脚对处理过的输出信号VO采样,接着等待0.04ms,最后关闭LED并且等待9.680ms。
GP2Y1010AU0F传感器的输出电压与粉尘浓度的关系如图2-14所示,由于对VO进行了分压处理,计算粉尘浓度选择ug/m3,所以计算公式为粉尘浓度=344*(AD转换后的电压)-99。
|
|
|
|
|
传感器的工作过程如下:传感器的工作周期为10ms,首先通过LED引脚启动传感器,然后等待0.28ms,使得传感器将粉尘浓度转换为电压,并利用STM32的PA5引脚对处理过的输出信号VO采样,接着等待0.04ms,最后关闭LED并且等待9.680ms。
GP2Y1010AU0F传感器的输出电压与粉尘浓度的关系如图2-14所示,由于对VO进行了分压处理,计算粉尘浓度选择ug/m3,所以计算公式为粉尘浓度=344*(AD转换后的电压)-99。
|
|
|
|
|
L432这个型号,很容易想到了TI的MSP432,它同样是一个超低功耗的M4内核芯片。
下面我们看一看MSP432P401R的功耗特性:
- Active: 90 μA/MHz
- Low-Frequency Active: 90 μA (at 128 kHz)
- LPM3 (With RTC): 850 nA
- LPM3.5 (With RTC): 800 nA
- LPM4.5: 25 nA
从中可以看到L432略胜一筹。
我们还是先进行硬件电路分析,然后在做其它测试。我们从Mbed的引脚图开始,这张图比自己照的清晰,也可以充分表现各GPIO的功能。
|
|
|
|
|
我们先看看这次活动的Nucleo-L432KC 开发板的实物图,它的结构和其它Nucleo-32开发板没有什么区别(除了MCU)。
|
|
|
|
|
先分析正面的电路。开发板的顶部是一个按键和两个LED。这个按键并不是用户按键,而是手动复位键。因为Nucleo-32开发板空间很小,所以没有预留用户按键。自带的例程中都是通过一个短路帽接地来充当用户按键。两个LED,左边的绿色LD3是用户LED,它连接到PB3上,而右边的红色LD2是5V电源指示。
|
|
|
|
|
对应部分的原理图
[size=0.83em]昨天 16:33 上传
下载附件 [size=0.83em](13.88 KB)
|
|
|
|
|
LED下面是U3(LD39050PU33R),这是一个5V转3.3V的LDO,用于给MCU供电。输出的3.3V先经过JP1,然后才会到MCU,这样就可以通过JP1测量MCU的电流。但是受体积限制,使用了不常用的1.27mm的封装,一是难以接线,容易短连;再就是容易损坏。如果可以改成象LAUNCHPAD-MSP432、EFM32-STK系列和SAML21-XPLAINED开发板那样板载功耗测量电路,实时分析代码和功耗的关系,就方便了(目前好像就STM32L476VG-DISCO开发板有这个功能)。
|
|
|
|
|
对应原理图
U3的下面就是开发板的核心U2:STM32L432KCU6。和其它Nucleo-32开发板不同,Nucleo-L432KC上使用的是QFN32封装,而其它Nucleo-32开发板使用了LQFP32封装的。不同封装只是大小有区别,功能是一样的。
|
|
|
|
|
Nucleo-L432KC的时钟使用了32K晶体,因为GPIO少,所以取消了OSC,只有OSC32,这样也有利于低功耗。这个32K晶体再其它Nucleo-32开发板上是不焊接的。
|
|
|
|
|
MCU的下面是U1(ST890CDR),这是一个高侧控制的功率开关,最大允许电流是1.2A,可以通过电阻调节输出电流。计算公式是:
Im = 1.24 * 1110 / R
原理图中R = R7 = 2.7K,因此最大允许电流是 0.510A。
U1的使能端上有上拉电阻,在STLink不工作的情况下,U1将不导通,这样U5V将不会供给U5V_ST_LINK,也就是说不能用移动电源供电。
|
|
|
|
|
原理图
最下面就是STLink/V2的USB接口,在Nucleo-32上终于将miniUSB改为了更通用的macroUSB,这样就可以和手机共用数据线了。
|
|
|
|
|
macroUSB上方的T1(9013)是一个NPN三极管,用来控制DP信号线上的上拉电阻,实现不拔出USB而自动断开和连接设备的功能(比如STLink的固件升级)。
CN1是没有安装的5pin接口,可以用来给STLink的MCU第一次写入程序。LD1是一个双色LED,它指示STLink的状态,这都是STlink的标准配置。
|
|
|
|
|
看完了正面,在看反面的电路,顶部的反面电路如下图。左上角的D3(STPS2L30A)、D4(BAT60JFILM)是两个二极管,用来隔离E5V和U5V_ST_LINK两路5V电源。D3和D4都是肖特基二极管,正向压降约0.3V,额定最大电流分别是1A和2A,不知道为什么两个二极管选择不同的型号和封装,难道是为了让E5V输入上容忍更大的反向电压(30V)吗。
U6(LD1117S50TR)是一个三端稳压器,用来将外部的VIN转为E5V信号。U6的最大输入电压是15V。
我们还可以看到测量电流用的JP1也在这里,它用两个面积不大的焊盘固定,所以使用时要小心,不然焊盘很容易脱落。
|
|
|
|
|
反面的中间是STLink的主芯片STM32F103CBT6,没有什么特别的。稍微有些不同的地方在于它的外部时钟使用了SMD4025封装的无源晶体,取代了以前最普通的直插晶体。
|
|
|
|
|
最下面是macroUSB的反面,有一个IC是U4(LD3985M33R),它用来给STLink供电。
|
|
|
|
|
最后再来看看Nucelo-L432KC6开发板上的对外接口,因为Nucleo-32的体积小,所以它采用了Arduino Nano的接口标准,开发板的接口完全兼容Arduino Nano,无论是引脚数量、功能、顺序都是完全相同的,这样就可以使用很多Arduino的资源。
|
|
|
|
|