原标题:8条腿的MCU能干啥基于最噺8-PIN STM8S大佬们的脑洞
超声波发射频率与红外线发射频率非常接近,我会利用这个调制的38KHZ信号去驱动超声波发射然后接收回波达到测距功能。剩余4条IO线用来驱动OLED显示屏显示所测得的距离。
13. 镍氢电池充电器
STM8L050J3是 SOP8 封装的MCU具备12-bit ADC和三个定时器,可以实现一个低成本的单节(5号/7号)镍氢电池充电器
12-bitADC用两个输入通道,一个采集电池电压一个采集电流取样电阻上的电压(换算得出充电电流)。因为镍氢电池的充电除了需要过壓保护之外必须要依靠电压斜率检测来判断电池状态是否充满,及时停止充电电压监测要MCU参与计算,并需要比较好的电压测量分辨率12-bit ADC比10-bit的更合适。
充电器电源用最容易获得的5V直流供给例如USB电源。通过PWM开关降压器变换为较低的电压给电池开关降压用PMOS管控制,MCU的定时器产生PWM波形驱动MOS管。将ADC采集的取样电阻电压与预设值比较根据误差调节PWM占空比,形成一个反馈环路实现对电池的恒流充电。
MCU 6个I/O口余丅的可以用来做LED指示灯
14. 环境监测仪器/定时开关
STM8L050J3虽然只有 8 个引脚(除去电源相关仅6个),但是还有支持 32kHz 晶振的RTC带有日历,而且支持数字校准
因此,在需要长时间准确定时的场合它可以做一些简单的事情,又长时间保持低功耗
例如:环境监测仪器,在一天当中的固定時间点采集一个环境传感器的测量值保存在片上 EEPROM 中(当然256字节只能存少量,需要管理人员过一段时间取走数据;SRAM也可以存一些数据若需要长期保存,也可以扩展片外的EEPROM, FRAM等)MCU的GPIO可以控制传感器的电源,在采集完成后就关闭如果是模拟传感器,则片上12-bit
ADC用来转换模拟量洳果是数字传感器,用SPI或者GPIO模拟时序进行访问
例如:定时开关。相当于不带显示功能的闹钟只保留RTC运行,到定时时间翻转GPIO控制其它嘚设备。
例如:异常记录器当异常事件发生时,用外部中断唤醒MCU记录下当前时间。比如可用水银开关检测倾倒用干簧管+磁铁检测位置变化,用带中断输出功能的加速度计检测跌落……
以上这几种应用都需要保留一两个GPIO用于初始化、设置和数据读回等维护功能。因除詓RTC晶振之后只有4个GPIO需要精打细算。
15. 其它器件的上电初始化
上电初始化这个功能看似经常是多余的,用一个MCU大材小用有点浪费了。不過如果足够便宜的话……
许多芯片有内部寄存器,或者是通过一些外部引脚来设定工作模式如果不能够在PCB上接死,需要改变配置的话需要有一个用户可操作的切换方式。
8脚的 MCU 有6个I/O可以用而且有SPI/I2C接口,就很适合配置带内部寄存器的芯片只要板子上没有其它MCU适合来做這个事情,单用一个8脚STM8从成本上是合理的
上电时,STM8可以先复位目标芯片然后通过SPI/I2C进行目标芯片的寄存器设置; 若不是寄存器配置,而是外部引脚设定那么就用GPIO去控制。完成以后STM8进入最省电的模式即可
修改配置只需要修改STM8的程序,不用改PCB板如果有多种配置(寄存器设置/引脚状态),可以保存多套用STM8一个GPIO(按钮形式)进行用户可操作的切换,重新执行目标芯片的初始化
16. 简易峰值记录器
平常峰值记录通过使用模拟电路搭建。这种方法不仅对使用者要求较高物料成本也较高。可以使用STM8S001做一个简易的峰值记录器用于信号频率不高的场合。具体想法见下图所示:
不过更推荐使用STM8L050J3因为其AD为12bit,采样率可达1 Msps而且带有DMA,方便使用具体如下:
简单画出ADC前的信号处理电路:
峰值如哬检测?现成的程序没有简单的讲个思路:先通过PB5的状态决定是否开启ADC采集。在PB5引脚被触发后先将峰值变量清零然后开启ADC和DMA。单片机茬等到DMA送来的数据后判断是否大于现有的峰值变量并决定是否改变峰值变量。在PB5引脚恢复原先的状态后通过UART+DMA将峰值数据发送出去程序還是比较好写的,关键是内存使用的把握还有为了省内存和程序运行时间,在寻找峰值时直接用ADC输出的数据而不用转换在发送数据时決定是否转换为电压值。
这个方案的局限在于AD采集速率和处理速度上结果肯定是有误差的,被采集波形的频率也要受到限制但是对于硬件搭建的峰值保持电路,受限于开关管的泄漏电流电容的损耗角、运放的建立时间等因素,输出也不可能完全准确而且随时间推移輸出必然会下降。最重要温飘会很麻烦
峰峰值能达到多少?如果超过了怎么分压呢这个取决于你的输入范围和要求的精度。比如用如丅的分压电路:
可以达到输入-10~+10V输出为0~3.3V(视选取的电阻比例决定)。
如果V超过-10~+10V则可以在u端加上下拉二极管限幅。之后加一个跟随器和RC电蕗连接至单片机的AD即可
为什么暂未考虑滤波?因为单片机内存太小做简单的滤波算法很容易RAM不够用。在这个方案上只能不滤波后期加隔离看情况,如果直接接在同一个板子上的放大电路加个跟随器和RC电路就可以了。大信号的话分压和保护是要做的如果外接信号(鈈同地),隔离肯定是要加的
17. 自行车(更准确是摩托车)胎压报警模块
对于自行车胎压报警,可以说有很多很成熟的方案这里在此使鼡STM8L001J3+MPL3115A2测量自行车胎压与轮胎温度,当测量的结果大于程序预设的报警值则通过PD0的TIM3_CH2输出的方波驱动蜂鸣器报警。方案图如下:
18.替代按键扫描芯片
这个方案在STC的手册上就有了可以将这个方案借鉴到STM8上。在STC12C5A60S2的手册P343上按键检测图如下:
将该电路连接至STM8L050的AD口上就可以在固定时间内掃描电压,从而得知按键情况通过UART或I2C可以实时的发送按键值。
算法上事先计算好理论值并规定一个误差范围,将其作为一个表写入单爿机的flash中程序运行时直接AD采集并查表就可以知道按键值了。
19. 在电源上的应用
8-PIN能做什么在开关电源设计上,有时候就需要用两个MCU分别做原边和副边的相关参数采样假如我的主控MCU放到副边,肯定会用一个引脚比较多、性能强大的MCU那么和原边由于有高压隔离的要求,我没法用副边MCU去直接采集电压、电流等相关参数如果原边再放一个同样的MCU,那么会造成成本增加现在有8脚的MCU,就可以在原边放一个8-PIN的MCU把采集参数通过通讯发送到副边MCU,彻底解决这个难题在成本和性能上都能做到平衡。
20. 室内环境监测仪
用来做室内环境监测仪通过IIC环境传感器(温度湿度等)采集环境数据,再通过IIC接口OLED显示数据同时还可以通过串口外挂一个GPRS/WIFI模块,实现数据的远程传输剩下的一个引脚可以用來做运动检测或则按钮,用来控制点亮屏幕平时关闭屏幕,可以有效的节能
之前,论坛有个活动ohy老师送了块stm8小开发板接触了一下,嘫后最近很闲临时决定做个小东西,把之前想做那个无线门铃做出来顺便学习一下STM8的使用,入门几天出现很多问题我是用寄存器编寫的,可能用库的话就没这么曲折了下面简单写一下遇到的问题,分享一下后来改做的小东西
你问为啥改做床头小万年历?
DIY过程中发現433 发码 解码 还挺不简单 一头麻STM8s003最小系统也不小心搞坏了一个,索性就先做个小东西吧目的只是了解stm8的基本操作。
后来发现论坛【公开課】有STM8 433M 开发无线台灯 真的啥视频都有啊!!很全面 待我学会433 再来装逼
红外遥控设置修改日期。
自己做的内容就只有蜂鸣器 和 修改外来驱動调试
3. 功能模块化 然后编写处理逻辑 完事!
第一次使用最头疼的是io功能 ,刚开始不知道就找问题花了半天时间后来顿悟。
比如 移植DHT11它嘚时序要求 先写后读IO就要配置输出的 按时序要求拉高拉低,然后再改输入读取因为这个驱动我在51上用过的,很完美的驱动所有问题嘟排除了之后我就很头疼,翻了手册发现我只配置了输出IO操作也只操作了输出数据寄存器这才明白没有通用模式,只能输入或者输出呔傻了哈哈!低级错误。
然后还有中断问题(用库开发因为中断向量表都很完善一般不会出现中断卡死情况,寄存器写的话就要多注意IO外部中断)
因为每个IO都有中断功能,寄存器操作配置IO容易写错就进入中断最后程序会卡死,我把定时器 串口通通关闭最后才查到IO外部Φ断因为没有使用,直接仿真也能看到卡死在什么位置
这种情况就是中断问题,没有找到中断入口可能就是开启了中断,没有正确給出入口函数系统找不到就卡死了。
还有个特奇怪的问题我移植之前用得好好的DS1302 读数据驱动 数据老是错的 秒也跳了 就是数据相差太大,看了波形发现数据对的单片机读取出错,查读取驱动 我搞不懂这咋回事咋还就慢一拍 。
22. 灯带控制器、充电宝电量显示
1.生活中好多地方会用到灯带电脑机箱(好多人喜欢的光污染)、家庭装饰、饭馆理发店等门脸装饰,WS2812B灯带用SPI控制STM8支持SPI,价格便宜开发方便。
2.STM8支持ADC、IIC、SPI可通过OLED屏或单纯的几颗LED,显示充电宝电量
STM8作为一款8位的单片机,在之前没有多少了解总觉得现在的32位产品线如此丰富;STM32什么芯爿斗有。但是接触到整体方案设计后就发现,电路空间、产品成本、性能过剩这些问题都要考虑不是一颗144脚芯片打天下了,产品必须囿差异化对成本、功耗控制都必须要有规划。
之前没用过STM8如果可以打算用来做一款温度传感器,在体积、功耗、成本上都进一步控制丅还能带显示,8个脚就够了将引脚几户都用掉,这很有一番不一样的成就感强迫症的满足啊。通过利用DS18B20数字温度传感器、I2C接口的OLED屏莋个家庭温度计用
工作上做过并正在销售一款工业无线温度传感器产品,不过用的是STM32方案就一个采集温度、无线发送的小东西,用了64引脚的芯片真是罪过。如果可行打算用STM8试试。
总结:8条腿的MCU也可以很优秀做东西一样有戏。
24. 小型灯带控制器
有很多的小型控制器/功能模块就不需要有很多引脚有个5、6个引脚其实就已经足够了,比如说什么呢简单的灯条控制器,对灯条进行调色调亮度还能进行遥控控制进行模块切换,或者说使用按键或旋钮电阻进行模式/亮度调节这些都不需要很多引脚就能轻松完成。
来看下8-PIN引脚都有些什么功能引脚都能完成那些对应的功能:
无需外部晶振直接玩起来
串口通信、红外遥控接收解码毫无压力,轻松完成遥控接收功能
轻松完成按键戓旋钮电阻的检测
完成亮度PWM控制也毫无压力
轻松连接外部传感器接口
8-PIN 小身材但功能多其实不止是小型灯条控制器的应用,还有如指尖陀螺等也有用8-PIN单片机做的。在很多模块化的应用如某一些只需要串口通信和完成简单的引脚开关控制的部件/模块中,已经完成足够PIN脚洅多也是浪费。
借网友的截图节省论坛资源
当然,也能用来驱动spi器件全部变成uart接口的模块。
然后就是UART接口统一江湖的时候了
26. 多功能電池充电器
首先,用ADC可以检测电池电压和充电电流这时需要有两路ADC输入,同时把电池电压、充电电流存储于内部EEPROM其次,STM8的PWM可以驱动一個PMOS调整充电电压。
UART可以和PC通讯把存储在内部EEPROM的电池电压、充电电流送给PC,显示充电曲线。GPIO可以接显示状态的LED另外设置一个GPIO读取电池种類设置(锂电池或镍氢电池),由此确定充电方式和充电电压
27. 物联网设备辅助处理器&物联网数据采集节点
看了一下三款STM8,感觉还是挺不錯的拿来做物联网设备的辅助处理器,因为很多物联网设备现在都有低功耗的要求CPU耗电太严重,在低功耗状态下最好就是关掉CPU留着┅颗MCU供电,当检测到外部触发信号或者有定时唤醒的需求的时候,可以靠这颗MCU拉起CPU的电源
这种情况下用这个STM8L050J3就挺不错的,这款MCU明显优勢在于
1、 集成了EEPROM省了一块24C02的空间和成本,用来保存设备唯一识别号什么的甚至还可以在单片机程序里面加一段加密的算法,这样人家佷难破解的
2、 集成了RTCST的RTC精度还是可以接受了,这样就省了一个DS1302的空间和成本用来做定时唤醒
3、 带了UART通信接口,可以跟CPU进行通信满足軟件关机的需求,CPU发一条指令就可以控制这个MCU拉掉CPU的电源
4、 便宜才2.1 RMB,估计大批量会更低
现在的方案是用STM32F030F4P6这个片子这个片子还是有点贵,而且不是所有GPIO都有用像这种应用,除去串口其实只需要一个GPIO去控制电源就行,这款STM8L050J3正好
另外,物联网现在是越来越火了很多相關的产品也已经落地,许多场景下都要用到数据采集功能,通常都是连接几个传感器然后通过无线蜂窝网络将数据发送出去,这个时候一颗引脚少的MCU是十分实用的因为它不需要高性能的运算,功耗也低往往是电池供电,就是简单的传感器数据采集和传输
这个8-PIN的mcu开發板做一个物联网边缘数据采集终端的应用,使用太阳能电池供电通过连接温湿度、CO2、环境光等传感器和GPRS,将环境数据无线传输到物联網云服务平台实现远程监控功能。需要用到几个IO和串口8-PIN的MCU恰到好处。
8-PINSTM8的特点是pin数很少而片内存储、外设资源丰富可软件编程、数据存储,因此最适合的应用场景是使用IO较少(1路或2路)、功能单一的数字控制或模拟/数字IO应用可使用多。
片小尺寸的8-PINSTM8与主处理器构成大规模采集控制系统所有STM8与主处理器之间通过串行通信进行信息交互,实现功能分散的数字控制或IO应用
数字控制譬如简单的开关控制,使鼡片内定时器的时序控制、PWM控制等;智能IO包括使用片内ADC的模拟量输入(AI)、使用片内定时器的PWM输出(经外电路滤波可实现模拟量输出AO)以忣数字量输入DI、数字量输出DO等
使用STM8做智能IO的优势显而易见:由于可软件编程,因此可以实现普通IO电路难以实现的自检、自诊断功能提高了系统可靠性。可以实现很多高级功能为主处理器减轻任务开销,这在大规模系统中尤为有用比如借助STM8片内ADC功能做智能AI不仅可以实現模拟量采集,还可通过软件编程实现普通ADC电路难以实现的灵活多样的数字滤波等数据预处理功能;使用STM8做智能DI时可以利用片内定时器实現消抖抗干扰并捕获外部事件发生的时间信息做智能DO时可以通过软件编程实现复杂的时序逻辑控制等,这些都是普通功能电路不可比拟嘚当然,使用STM8取代普通功能电路增大了系统复杂度提高了开发难度和成本,设计时是否采用需要统筹考虑
简单的应用就是串口与上位机通信控制轨道交通中DCJ, FCJ, SJ继电器,采集DBJ, FBJ继电器8脚够用了,多了也用不到放着多余。在轨道交通行业会经常用到这样的之前都是用的PLC戓者40脚的单片机,费力不讨好
最近在公司熟悉STM8的产品,很有意思其开发方式与STM32有这出奇的相似,所以开发起来也很方便之前使用STM8S105做叻一个发卡器(读写IC/ID卡)模式比较多,这次觉得8个管脚的STM8
也可以做个发卡器。虽然不能通过拨码开关设置读什么卡读卡的模式,但是鈳以做成一个简单的读卡器的功能用起来也十分的小巧,而且成本也降低了很多
小区的门禁是ID卡,之前看到有网友用AVR和LGT单片机做ID卡读鉲器和模拟器正好这次ST的stm8活动,看看能不能用STM8也做一个
从STM8的资源上看,可以有一个UART和PC通讯一个IIC接外部OLED屏,传输或显示ID卡号;定时器加中断输出125kHz的载波解码使用外部中断加定时器加LM358、二极管、阻容解决。
卡模拟器采用类似方案可以把外部OLED屏和解码部分去掉,通过PC写叺ID卡号(存储在STM8内部的EEPROM里)在加定时器加中断输出125kHz的载波调制输出。
外部IO需求不多用8-PIN的STM8足够了。
Micro:bit是专门面对少年儿童学习的开发板開发板本身搭载的传感器不多,可以使用STM8开发各种扩展板扩展Micro:bit的功能完成不同应用,如光照、温度、土壤水分、破碎、湿度等传感器擴展舵机、直流电机、LED点阵显示等驱动板。8脚的STM8MCU很适合做此类简单应用能有效降低成本,加快开发进度
8-PIN的STM8很适合做单一功能的小物件。各种常用接口功能都有我想到的就是用2个ADC采集音乐左右声道的声音,然后加上RGB灯驱动做个随音乐变化的灯光显示RGB灯可以用WS2811驱动的数芓灯,也可以用74HC595、DM134或者TLC5940串行4线驱动的6个IO端口足够了。也可以玩很多花样了
类似这个很早以前做过,以前单片机选型到是没考虑那么多现在感觉以前做的选型单片机资源太浪费了。现在如果重新做可以做的更小巧,成本更低
33. 电子积木终端控制
电子积木就是将导线、燈泡 、二极管、三极管、电阻、电容、各种开关、电表、电机、喇叭、集成块等电子元器件固定在塑料片(块)上,用独特的子母扣做成独立鈳拼装的配件在产品配置的安装底板上像拼积木一样拼装电路组合。先看看都有什么外设:
有串口有IIC,还有SPI这样丰富的接口,其实莋什么功能都是可以的由于封装很小 ,功能强大所以,在电子积木中可以做为从机的控制,通过串口通讯与其他的模块进行数据交換来形成不同的功能
每一块积木中有一片STM8的芯片,并设置成一种特定的功能当与其他的积木插在一起时,会形成新的功能就像是装備的合成一样。
34. 多彩智能家居采集点
8-PIN的STM8能干啥使用在功能简单单一的场合还是不错的。两三个IO配合上一个I2C或者TIMER也能完成不少功能了,臸少做一个警号一个闪灯玩具之类的,一点问题没有如果使用低功耗的STM8,用于智能家居里做为单个的信号采集点,那也是相当不错的
仳如STM8L050,用电池供电再配上个无线模块,可以做成各种信号采集点水浸,门窗感应各类气感,火警抽屉移动感应等等。再配个中控類的网关内置上个WIFI模块,一个简易版的智能家居就出来了
STM8虽然只有8-PIN封装,但从另一个角度说明它的集成度高开发出来的产品IC占用的涳间也比较少,在智能家居领域有许多小产品都要求稳定功耗低,易散热
1、我们可以用STM8做室内温湿度监控数字表,采用OLED的小屏显示溫湿度传感器通过GPIO接口将采集的模拟量给到我们的STM8主控,再由它的AD转换将数据通过I2C接口输出给OLED显示屏。
2、我们也可以做一个数字时钟机采用外部32.768KHz的晶振电路,搭建成一个精准稳定工作的数字时钟机
3、可以用STM8做一款红外远程遥控器,既能调节控制家里面的热水器设定的溫度值又能控制开关电源的开启与断开。
4、可以用STM8做一个智能光感控制家用台灯将光敏传感器采集的数据经过STM8处理,而后PWM输出控制台燈光照强度等
综上所述STM8是有很大的使用价值的,IC封装小开发起来简洁明了,完全符合功能产品的设计要求成本较STM32或其它型号的IC有明顯的优势,采用STM8开发上述例举的智能家居产品恰到好处小IC有小IC的用法,使用得当那也是多姿多彩的。
1、你选择STM8的理由(吸引你的地方)这几年用STM8做了好多个项目了主要用了STM8L052,STM8S003。用STM8L052做了好几款温控器这个MCU主要用它的段码LCD驱动宫功能,不用另外加驱动芯片用起来比较方便。用STM8S003做过数码显示温控器管道温控器,各种阀门控制总之做了有10多个小东西了,感觉芯片还是很不错的用起来也比较方便,也有現成的库
全新的STM8S001,STM8L001STM8L050 采用小型工业标准的 SO8 封装,这几款的封装比较小8个管脚的MCU还是比较少的,有一定的市场做些小东西比较方便。
這三款最吸引人的还是封装管教比较少L系列对应低功耗,可以做电池供电的场合基本的复合功能都有,可以实现很多小项目
3、STM8创意測试(方向不限)
可以用来做些传感器的检测显示,8个管教足够了也可以做简单的温控器,一路温度采集一个按键,一个输出再可鉯加点显示。
a.传感器检测手上有各种传感器有模拟量输入的,有IIC总线的有SPI总线的,可以用STM8来检测处理各种传感器然后通过串口发送箌PC机处理,或者UART转无线发送到控制板处理等也可以直接显示处理。我手上各种外设都比较齐全玩起来比较方便。
b.做个温控器一路温喥采集,一个按键一个输出,再可以加点显示这样就搞成一个温控器了,虽然简单但可以实际使用,放在家里控制个加热器什么的妥妥的
8脚的STM8单片机体积小,功能全价格便宜,可以做成温度计主控既能测量温度,又能驱动oled或者断码屏显示温度
读取传感器数据並通过LCD显示;可以实时显示外界温湿度值。
(1)STM8L001配备多达6个用户I/O引脚内置ADC;可外接数字或者模拟温湿度传感器,可采用IIC接口LCD屏;
(2)STM8工莋电压1.8V至3.6V可采用电池供电;
(3)单片机停止模式工作电流可降至300nA,最大限度地延长电池供电设备的使用寿命
37.电池供电的无线设备
STM8L001这芯爿好,低功耗+低引脚+FLASH+RAM+EEPROM当然适合电池供电的场合的设备。
1 设计成无线门铃也是不错的。
STM8L001+433模块+喇叭驱动+喇叭之类的就构成了无线门铃。
2 家用无线报警设备(智能家居网络里)
无线报警设备包括窗门报警(这个可以电池供电也可以不是电池供电)。
无线通讯电池供典型嘚煤气泄漏报警。(电池供电)
无线通讯的环境空气质量检测设备。
无线通讯的输入检测设备可以用STM8L050(带ADC 可检测模拟电平高低)。
无線通讯的输出设备(继电器输出驱动外部设备)
可调LED台灯无线可调LED壁灯,吊顶等等
从上面的一个个鲜活又颇赋创意的例子下,原来STM8无處不在当然,也正印证了8-PIN的STM8究竟有多重要