不看不知道,STM8L101 与 STM8S103区别竟然这么大!
扫描二维码
随时随地手机看文章
工作需要,渐渐的开始熟悉STM8L101这款超低功耗的芯片了,呵呵...
不看不知道,一看吓一跳,这玩意手册上标明的功耗远远低于STM8S103。我们采用的还是延续着TSSOP20管脚的封装。具体的芯片资源在手册首页都有详细说明。
STM8L10x与STM8L15x外设图如下:
硬件方面: STM8L101跟STM8S103来说,外设内存映射,时钟,中断,管脚功能,电源管理都有了较大区别。有完全兼容的,也有 不完全兼容的,当然也存在完全不兼容的模块。WWDG,ADC都已经被裁减了。
如下图: 完全兼容的模块有 STM8核心,调试接口,POR(掉电复位),电压调节器,LSI,HSI,独立看门狗,定时器,IR(RC5红外接口)
下图: 不完全兼容的模块 特别注意中断功能,选项字节
下图: 完全不兼容的模块
软件方面:主要体现在固件库,stm8l系列有自己的固件库,版本为 stm8l10x_stdperiph_lib v1.1.0,STM8L自身的演示版程序也是使用这个库。管脚定义的大小写也发生了变化。
如: GPIO_PIN_0 ---- stm8s FW的写法
GPIO_Pin_0 ---- stm8l FW的写法,比较类似与STM32库的风格
如果不使用库文件编程,而是直接操作寄存器,可在 "C:Program FilesStmicroelectronicsst_toolsetinclude 找到stm8l101.h文件,这个文件定义了STM8L101所使用的外设,内存映射关系。
还有就是文件的命名风格有些变化,stm8s_gpio.h -> stm8l10x_gpio.h
具体细节方面,可参考stmcu.org上的AN3139 STM8L移植与兼容性指南。
移植细节:
从STM8S103移植到STM8L101首先考虑时钟,兼容性指南上说明了在STM8L101上已经完全做了改变,如下图:
STM8L时钟树:
STM8S时钟树:
很需要注意的是,STM8L101只有HSI和LSI时钟,而且只有HSI能做为主时钟,LSI时钟的频率也从128Khz变成了38Khz,导致了AWU功能在做定时唤醒时,需要调整延时时间的设置,还有外设的时钟需要手动开启,默认情况与STM8S103不一致,不再是打开状态。下图:
其次是中断方面,中断向量表已经发生巨大改变。
STM8L101 中断向量表:
STM8S103中断向量表:
中断控制方式也有重大调整,增加了端口标志位寄存器,配置中断触发方式寄存器,中断触发方式新增对应0~7个IO口的触发,另外就是GPIO端口本身的触发方式。至于使用哪一种触发方式,在EXTI_CONF进行配置。
STM8L101中断寄存器:
STM8S103中断寄存器:
所以中断方面是一个很需要注意的,可能会导致程序崩溃。或是进中断后出不来。 具体参考手册说明。
再者就是AWU唤醒功能,这是可选的,为了低功耗,这又是必须的。
AWU使用LSI为其提供时钟,STM8S103采用128Khz,而STM8L101转而是38Khz,这就导致了在应用时需要注意时间的设置。
如下图,进行对比。
STM8L101 AWU延时情况:
STM8S103 AWU延时情况:
如果需要2S的延时,对于STM8S103只需要设置AWUTB为0xD,APR分频64即可得到2.048S的延时,而在STM8L101里面,则需要设置AWUTB为0xB,APR分频64,这样得到1.7s的延时,所以还需要加上27ms左右延时,才能勉强得到2s延时。这也是设计时需要考虑的。
定时器方面,与STM8S103区别不大,主要是因为时钟都是采用HSI,不用做修改都能正常使用。
另外STM8L101还有红外接口,BEEP,SPI,I2C等功能,需要了解的东西还有很多,后续就是具体测量功耗了。
总结:
1. STM8L101对比STM8S103有很多优点,电压范围更宽,功耗更低,裁减了一些外设,窗口看门狗,外部晶振等。
2. 移植方面,需要从硬件和软件两方面入手,更多的是软件操作上。
3. 软件需要考虑时钟,定时,中断,电源功耗等方面因素。