通过电脑配置仿真器为ST-LINK DEBUG,首先把ST-LINK/V2调试器和mini32单片机插到笔记本电脑上,具体步骤如下:
1、在某宝入mini32单片机加st-link调试器,用的mac笔记本,直接插U口毕搜卖上。
2、连接以手逗后我们调试一下,打开项目配置选项卡,点Debug配置仿真器为ST-LINK DEBUG,最后一步再点击setting。
3、d出选择SW,右侧SW/JATG Devise 下出现id号,如下图就是对的。
4、如果查找不到目漏芹标板,切换到Utilities选项卡检查插线和主板,设置ST-LINK DEBUG 点击Setting。
5、Download Function 选择第一项,其余默认点击下面的添加add,ST-LINK/V2和STM32单片机连接就没问题了。
***配置3.5寸工业级LCD触摸屏,支持4线触摸。
***1路USB2.0 OTG Full-Speed,1路USB2.0 OTG High-Speed。
***G-Sensor三轴加速度传感器。
***IEEE 1588v2的10/100 Mbps以太网接口。
***支持UCOS II_v2.86 &UCGUI_v3.90a,并提供BSP源码。
***支持FatFs_vR0.08a 文件系统(用于U盘,SD卡的文件系统)。
***支持LwIP_v1.3.2协议栈。
***工业级滚毁的器件选型。从实际应用的角度考虑,所选型器件的货源以
及供货周期都有足够的市场保障。 处理器
STM32F207IGT6,ARM 32-bit Cortex-M3,最高运行频率为120MHz
内部集成1 MBFlash memory,128+4KB SRAM
支持片外Flash, SRAM, PSRAM, NOR及NAND Flash
LCD 并行接口,8080/6800 模式
USB 2.0 Full-speed/High-speed Device/Host/OTG
10/100 Ethernet MAC.,支持硬件IEEE 1588v2(MII/RMII)
2路CAN2.0B,4路UART,2路全双工I2S,3路I2C,3路SPI最高30Mbit
8到14 bit 并行摄像头接口,最高达48Mbyte/s
1/4/8bit SD/MMC/SDIO主机接口,最高容量可支数困持32GB
高达140个I/O口,最高频率60MHz
17个定时器(其中2个为32位),最高计数频率为120MHz
3路12-bit 高达2M的 A/D、2路12-bit D/A
模拟随机数生成器
支持Flash、系统内存和SRAM三种启动方式
支持ISP及IAP编程
存储器
板载I2C接口的2Kbits EEPROM
外扩Micro SD卡存储
音频接口
一路立体声音频HeadPhone输出接口 一路扬声器输出接口
一路音频DAC输出接口
液晶触摸屏接口
分辨率:320 (W) x 240 (H) dots
RGB:262000 colors
16bit 8080并行接口
4线触摸屏
亮度可调(PWM控制)
传输接口
1路5线串口,RS232电平
USB接口: 1 x USB2.0 OTG/device/host,High-speed,480Mbps
1 x USB2.0 OTG/device/host,Full-speed,12Mbps
1路TFCARD接口
网络接口:硬件IEEE 1588v2的10/100Mbps以太网接口,标准RJ45 连接器
1路CAN2.0B接口
1路IrDA收发器
输入接口
1路AD转换接口(电位器可调电阻模拟输入) 2个用户按键,1个复位按键,1个唤醒按键
20pin标准JTAG调试接口
RTC
一路RTC插座
LED指示灯
1个电源指示灯
2个USB OTG FS指示灯
2个USB OTG HS指示灯
4个用户自定义灯
电气特性
*** 作温度 : -10 ℃薯备念 ~ 70 ℃
*** 作湿度 : 20% ~ 90%
系统特性
支持uCOS-II_v2.86以及FreeRTOS_v6.1.0实时 *** 作系统
支持UCGUI_v3.90a
支持FatFs_vR0.08a 文件系统
支持LWIP _v1.3.2协议栈
驱动程序&应用层范例:(下载DevKit1207评估套件概述,可了解更多)
DevKit1207评估套件提供完善的驱动支持以及丰富的应用范例。帮助客户快速进入产品的二次开发,节省开发时间。主要内容如下:
基本驱动例程:ADC, CAN, CRC, DAC, DMA, EXTI, FLASH, GPIO, I2C, I2S, IWDG, LCD-Touch, Lib_DEBUG, NVIC, PWR, RCC, RNG, RTC, SDIO, SysTick, TIM, USART, WWDG
IRDA红外驱动例程
I2S语音播放驱动例程
G-Sensor(三轴加速度计)应用例程
SD卡支持FatFs_vR0.08a文件系统应用例程
USB Host/Device/OTG应用例程
Ethernet应用例程
uCOS-II_V2.86 &UCGUI_v3.90a *** 作系统移植例程 医疗产品
工业自动化
智能仪表
消费电子
楼宇安防
意法半导体(STMicroelectronics)的超低功耗MCU系列采用低泄漏技术和优化设计,以实现出色的低电流消耗,使其非常适合电池供电和能量收集应用。为了充分利用这些器件的低功耗功能,有必要知道可用的低功耗模式,如何配置它们以及最适合哪些任务。本文概述了STM32L053C8 MCU上的低功耗模式。但是,由于该系列的低功耗模式相同,因此可以使用任何STM32L0器件。庆瞎虚 STM32L1系列和STM32L4系列还包括在超低功耗系列中。这些器件是性能更高的产品,具有更高级的内核,更多的内存和更多的外围设备。它们具有与L0系列相同的低功耗模式(对于L4系列,还具有一些其他功能),因此,本文也是从了解L4系列的好入门。图1摘自ST的宣传册之一,简要总结了L0、L1和L4系列的功能和优点。图1:STM32超低功耗产品系列的比较
当使用ST的MCU进行任何工作时,应该有两个可用的文档。首先是参考手册,对于STM32L053C8,则是STM32L0x3参考手册。本文档包含有关STM32L0x3系列的详细信息,即如何使用存储器和外设集。有关产品线中特定设备的更多详细信息,例如引脚映射、电气特性和封装信息,应使用数据表作为参考。就低功耗模式而言,参考手册将明确详细说明如何神碧进入和退出它们,而数据手册将专门定义外围设备的可用性、可能的唤醒源和电流消耗估算。
背景介绍
STM32L0基于Cortex-M0 +内核,这意味着其低功耗功能取决于该内核的电源管理功能。可以使用系统控制块中的系统控制寄存器(SCR)来配置这些功能。不幸的是,参考手册或数据表中都没有记录内核寄存器。 ST则为那些寻求有关Cortex-M0 +的简洁文档的人员提供了STM32L0系列Cortex-M0 +编程手册。有关Cortex-M0、M0 +和M1内核的完整文档,可以在《 ARMv6-M体系结构参考手册》中找到。这两个文档都有一个关于电源管理的部分,这是开始本主题的好地方。
图2:SCR寄存器位
如图2所示,SCR由三位组成:SEVONPEND、SLEEPONEXIT和SLEEPDEEP。 SEVONPEND(发送事件在待命状态)位允许中断进入待命状态以触发唤醒事件。请注意,如果未在NVIC中启用这些中断,则仍会产生唤醒事件,但不会输入ISR。有关未决中断,使能中断或一般而言NVIC的更多信息,请参见前述Cortex-M0 +手册中的“嵌套向量中断控制器”部分。 SLEEPONEXIT位提供了一个选项,可以在异常恢复后使处理器继续执行程序之前将处理器置于低功耗模式。对于仅需要唤醒服务中断的应用程序来说,这是理想的选择。最后,SLEEPDEEP位允许进入深度睡眠状态,而不是常规睡眠状态。利用Cortex-M0 +内核的芯片制造商可以确定这些状态下设备的确切性能。睡眠状态用作睡眠模式和低功耗睡眠模式的基础,而深度睡眠状态用作停止模式和待机模式的基础。
有三种方法可以在Cortex-M0 +上进入低功耗模式。第一种是使用WFI(等待中断)指令。顾名思义,如果设备由于该指令而进入低功耗模式,则中断(在NVIC中启用)能够唤醒设备。进入低功耗模式的第二种方誉燃法是执行WFE(等待事件)指令。这与WFI指令非常相似,但具有更大的灵活性。不仅可以通过扩展中断和事件控制器(EXTI)中配置的事件唤醒设备,还可以通过NVIC中禁用的中断(只要它们在相应的外设控制寄存器中启用)唤醒。已经提到了进入低功耗模式的第三种方法。通过将SCR中的SLEEPONEXIT位置1,异常返回将使设备进入低功耗模式,就像执行WFI指令一样。请注意,在所有这些情况下,仅当没有中断或事件挂起时才进入低功耗模式。由于不能保证WFI和WFE会中止程序执行,因此通常将它们称为“提示指令”。
值得一提的最后一个内核寄存器是PRIMASK寄存器。它仅包含一个可配置位PM(可优先中断屏蔽),如果将其设置为1,它将禁用所有具有可配置优先级的中断。如果首先需要将系统恢复到工作状态,这不仅可以用于执行原子 *** 作,而且可以延迟执行ISR。在详细说明停止模式的部分中将提供一个示例。
为了使程序员在开发C应用程序时轻松访问WFI和WFE指令,CMSIS-CORE标准提供了__WFI()和__WFE()函数。以下各节中的所有示例函数都使用__WFI()执行WFI指令并进入低功耗模式。另外,CMSIS不会直接提供对PRIMASK寄存器的访问,而是实现__disable_irq()和__enable_irq()函数,以便分别设置和清除PM位。为了检查PM位的状态,__ get_PRIMASK()函数将返回其当前状态。大多数IDE使将CMSIS驱动程序添加到项目变得非常简单。例如,在Keil中,请确保在包安装程序中安装了ARM :: CMSIS,并在创建新项目时在运行时环境管理器中仅检查“ CORE”包(在CMSIS组件)。
低功耗模式(Low-Power)
STM32L0器件实现了五种低功耗模式:低功耗运行模式、睡眠模式、低功耗睡眠模式、停止模式和待机模式。这些模式之间的差异可以用功耗,性能、唤醒时间和唤醒源来描述。如果对于这些参数中的每一个,将模式按从最佳(1)到最差(5)的顺序进行排序,则可以清楚地了解哪些取舍。一般而言,随着功耗的下降;性能下降,唤醒时间增加,唤醒源数量减少。表1总结了低功耗模式的排名。作为、示例,请考虑低功耗运行模式。它具有最佳的性能、最多的唤醒源,第二快的唤醒时间和第四低的电流消耗。
表1:基于各种工作参数的STM32L0低功耗模式的排列
在本节中,将很清楚如何得出这些排名。但是,重要的是要及早意识到它们仅在一般意义上是正确的。例如,停止模式完全有可能比低功耗睡眠模式消耗更多电流,这取决于它们的配置以及启用/禁用的外设。但是通常情况并非如此,因为停止模式对设备功能的限制远比低功耗睡眠模式所限制,以节省更多功率。
低功耗运行模式(Low-Power Run)
将其作为低功耗模式推销是相当诱人的,因为它节省能耗的主要方法是要求较低的系统时钟频率。将任何微控制器的时钟速度降低到千赫兹范围将极大地降低电流消耗,使其与普通睡眠模式相比更具竞争力。但是,通常不这样做的原因是,从长远来看,性能的降低以及静态电流消耗(不取决于时钟频率)会消耗更多的能量。取决于应用,即正在使用哪种睡眠模式或设备唤醒的频率,在较短的时间段内消耗更多的电流而不是在较长的时间段内消耗较少的电流可能更有效。 ST之所以可以将其分类为低功耗模式,是因为它们提供了将内部稳压器置于低功耗状态的能力。这将减少设备消耗的静态电流,从而将其对性能与总电流消耗之间的折衷影响降至最低。
为了将调节器切换到低功耗模式,必须满足两个条件。首先,调节器电压(VCORE)必须在2范围内。幸运的是,根据PWR_CR寄存器文档,这是调节器的默认配置。因此,除非利用器件的动态电压缩放功能,否则无需担心此先决条件。第二个条件是系统频率不超过fMSI范围1。根据MSIRANGE位的描述(在RCC_ICSCR寄存器中),它对应于大约131.072 kHz的频率。在这种速度和功率水平下,USB,ADC和TSC(触摸感应控制器)外围设备不可用。更改系统频率后,必须重新初始化之前在运行模式下初始化的所有与频率相关的外围设备(USART、计时器等),以便继续正常运行。
与其他低功耗模式不同,CPU不会在低功耗运行模式下停止。这意味着它不是通过前面讨论的WFI / WFE指令输入的,而是通过设置PWR_CR寄存器中的LPSDSR(低功耗睡眠-深度/睡眠/低功耗运行)和LPRUN(低功耗运行)位来输入的。 。请注意,必须在设置LPRUN之前设置LPSDSR,在清除LPSDSR之前必须清除LPRUN,并且在进入任何其他低功耗模式之前应清除LPRUN。由于程序在低功耗运行模式下继续执行,因此该设备被软件“唤醒”,而不是局限于有限的一组中断或事件。只需清除LPRUN位并使系统频率恢复到全速,即可使系统返回运行模式。清单1显示了使用参考手册中概述的步骤进入低功耗运行模式的整个过程。清单2演示了当设备不再需要处于低功耗运行模式时如何重新进入运行模式。
清单1:进入低功耗运行模式的示例
void enter_LPRun( void )
{
/* 1. Each digital IP clock must be enabled or disabled by using the
RCC_APBxENR and RCC_AHBENR registers */
RCC->APB1ENR |= RCC_APB1ENR_PWREN
/* 2. The frequency of the system clock must be decreased to not exceed the
frequency of f_MSI range1. */
Config_SysClk_MSI_131()
// Reinitialize peripherals dependent on clock speed
USART1_Init()
SysTick_Init( 0.001 )
I2C1_Init()
/* 3. The regulator is forced in low-power mode by software
(LPRUN and LPSDSR bits set ) */
PWR->CR &= ~PWR_CR_LPRUN// Be sure LPRUN is cleared!
PWR->CR |= PWR_CR_LPSDSR// must be set before LPRUN
PWR->CR |= PWR_CR_LPRUN// enter low power run mode
}
清单2:进入运行模式的示例
void enter_Run( void )
{
/* Enable Clocks */
RCC->APB1ENR |= RCC_APB1ENR_PWREN
/* Force the regulator into main mode */
// Reset LPRUN bit
PWR->CR &= ~( PWR_CR_LPRUN )
// LPSDSR can be reset only when LPRUN bit = 0
PWR->CR &= ~( PWR_CR_LPSDSR )
/* Set HSI16 oscillator as system clock */
Config_SysClk_HSI16()
// Reinitialize peripherals dependent on clock speed
USART1_Init()
SysTick_Init( 0.001 )
I2C1_Init()
}
睡眠模式(Sleep Mode)
睡眠模式是低功耗模式中最简单的一种,它以最省电的方式提供最短的唤醒时间。数据手册指出,在禁用所有外设且系统频率为16 MHz的情况下,将消耗约1 mA的电流。这远高于其他低功耗模式,后者可以实现微安或什至纳安的数量级。但是,唤醒时间几乎是最具竞争力的低功耗模式的十倍。表2显示了设备从每种低功耗模式唤醒并进入运行模式所花费的时间。唤醒时间的值取自数据表的表4。
表2:每种低功耗模式的唤醒到运行模式时间
在休眠模式下,所有外设继续运行时,仅内核停止运行。由于不必降低系统频率并且所有设备的外围设备都可以使用,因此这使进入睡眠模式几乎毫不费力。同样,退出休眠模式非常容易,因为在运行模式下可用的任何中断或事件都可以唤醒设备并以极低的延迟进行服务。因此,几乎在CPU处于自旋锁等待事件发生的任何情况下都可以使用睡眠模式。用户无需进入繁忙等待循环,只需执行WFI或WFE(取决于唤醒方法)即可暂停执行并节省功耗,直到再次需要内核为止。这
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)