8条腿(pin)、8位、8kflash...不少人听到这些参数可能会嗤之以鼻,当MCU的CoreMark跑分已经动辄多分,像这种“简陋”的单片机已经处在了鄙视链的底端。
但是真的是这样的吗?“鄙视链”往往是键盘侠外行充内行的表现,聪明的人则会在选型时候选择成本、功耗和性能最平衡的器件;每个大神都是处女座,多一丝一毫的资源浪费,都会觉得浑身不舒服。
还记得小MU吗?仅使用STM32F就可以提供基本的视觉传感功能,可以实现球、线、人、脸、移动物体检测,为Arduino,树莓派,PC端,手机端等开发平台提供视觉处理能力。检测结果通过UART,SPI,USB以报文的形式输出,同时提供了4路标准舵机控制接口,可以直接应用于舵机云台。
有点扯远了...小MU很好地说明了一个问题——不是性能最强的才是最好的,硬件过剩同样是一种浪费行为。每一个工程师都应该是处女座,精雕细琢才是真美。或许STM8就是真正适合你的那颗芯!
早在年,在21ic的STMCU的论坛就已经有人期待过8-PIN的STM8,而今年,8条腿的STM8已经触手可及啦~ST已经发布了最新的8-PINSTM8S,某宝即可直接购买。
8-PIN着实让人脑洞大开,不得不让人天马行空地构思充满8-PINSTM8的世界,原来玲珑精巧的它有这么多的功用!说到百花齐放我就想到文体两开花,今年时尚价廉的STM8上市了……
回归正题,此次8-PINSTM8以超低廉的价格和独特的八脚让STM8又热了一把,之前也提及过不是性能最强的才是最好的,硬件过剩同样是一种浪费行为,其实不仅如此,8-PIN的STM8对于设计更加严苛的情境下也是至关重要的,网友也为我们分享了这种经验:
据了解,之前器件选型,一般只考虑价格和资源,直到之前一次改版,产品上的一个前端模块是纯模拟器件,要再进一步缩小体积,于是乎只能上单片机了。找来找去,换了国产的增强型51,但实际只用了4个脚,一个外部中断+三个输出脚,内部用到两个定时器,就全部搞定了,国产的虽然也有个别的SOP8,但是资源性能远不如STM8优势明显啊。
因此对于很多体积要求很高的情况,可以说是最好的选择。如温度和电压监控模块上,其内置了12位的AD,对于这些应用完全够了,SPI和I2C可以用来挂载温度节点和oled显示屏。
他也表示之前从来没用过STM8系列,了解了一下该芯片(如下图)真的可以用一个词来形容,麻雀虽小,五脏俱全。
我们已经了解到8-PINSTM8究竟有何优势,让我们来看看大佬们对他有何脑洞:
1.显示温湿度检测
ST公司发布了一款STM8_SO8_DISCO探索套件板,在这块小巧的开发板上搭载了三颗SO8N封装的微控制器:STM8SJ3M3、STM8LJ3M3以及STM8LJ3M3。通过型号可以看出其中的一颗STM8SJ3M3为STM8通用系列;另外两STM8LJ3M3、STM8LJ3M3为低功耗系列。在这三颗当中最喜欢STM8LJ3M3、STM8LJ3M3,因为不光是其低功耗的性能优秀更是因为在仅有的8根引脚当中除电源外还有6根引脚可做为IO供用户使用,而STM8SJ3M3却有一个引脚被“VCAP”占用而少了一个可供用户使用的引脚。这几款低引脚芯片虽说体积小但各种常用的功能模块却不少,如ADC、UART、TIM、I2C、SPI等等,小身材、高性能。
下面就用这其中的一颗芯片STM8LJ3M3来制作一款小型的温、湿度检测及显示设备。
一、硬件介绍
1、主控芯片:STM8LJ3M3-没啥说的,英明选择;
2、温、湿度传感器:HTU21D,手上正好有这颗芯片就用上了;
3、OLED显示:这是一片96*16、0.69的OLED,体积小巧、显示清晰,只是要外加升压电路;
4、其它:这里主要包括LDO(XCPMR)、升压(SX)、8、AO等;
5、主要一些硬件照片:图中最小的四方体是HTU21D,模特是一只PDIP8的芯片;
二、电路设计:
由于系统整体功能比较简单,相应的电路也是比较简单的。从下面的电路图中可以看出,由STM8LJ3M3做为主控利用其I2C模块Pin7(I2C_SDA)Pin8(I2C_SCL)同时与OLED、HTU21D的I2C端口相连;SX与外围器件组成升压电路为OLED提供10V电压;8与P-MOS(AO)组成简单的控制开关,通过STM8LJ3M3的Pin2输出电平控制OLED、HTU21D电源供给;接在STM8LJ3M3的Pin5开关(这里使用的是按键开关,当然也可以考虑用触摸或者水银开关)用于系统唤醒。由于还没有找到合适的外壳,还有电路部分还有待进一步验证修改,所以这里只有原理图而没有PCB。
三、软件编程思路:
主控STM8LJ3M3微控制器工作于HALT模式,当需要检测温、湿度时通过STM8LJ3M3的Pin5外部中断唤醒系统;同时STM8LJ3M3的Pin2发出控制信号接通OLED、HTU21D的工作电源;STM8LJ3M3通过I2C端口将HTU21D采集到的数据进行处理并送OLED进行实时显示;温湿度信息显示3秒后STM8LJ3M3的Pin2发出控制信号切断OLED、HTU21D的工作电源并再次进入HALT工作模式等待下一次唤醒。
四、后记
以上内容还只是纸上谈兵,与实际功能的实现还有一段距离。STM8_SO8_DISCO探索套件板上的这几颗芯片在ST天猫店有售并且价格也很便宜,只是运费有点小贵了,等着店里再增加一些芯片型号(如新一代的STM32G0系列)一并弄一些回来。
另外,电路中可能还存在着一些错误,还请朋友们指教!
2.太阳跟踪控制器
众所周知,目前光伏发电系统有着跟踪支架,跟踪太阳方位和角度可以减少遮挡,大大提高发电量。根据这个原理STM8-8-PIN可以用于太阳能发电极板的控制,提高发电效率。采用光控+时控相结合跟踪模式,全天候跟踪太阳。
具体方案:
驱动24VDC电机
驱动电路采用晶闸管取代继电器,无触点,大大提高了设备使用寿命和可靠性
驱动模块PWM无极调速,大风保护和大范围搜索时可以快速跟踪运行。
极限位置保护
阴影躲避功能:根据太阳方位角和高度角自动计算阴影躲避启动时间,使电池板最大限度跟踪太阳,并不互相遮挡
夜晚复位功能:复位至水平。
阴天阀值自动调整,光传感器增加人眼感应器,实时检测光照强度。
手动模式
3.多功能智能鱼缸
通过观察芯片的引脚,虽然有8个pin脚,但是有一个VCAP引脚只能接电容,所以用户可用的引脚只有5pin。
可以利用STM8开发一个小型智能鱼缸,集合水循环(加氧)、加热,LED功能指示,功能选择、温度调节于一体。
由于引脚数量有限,只能一脚多用了。
一脚用于电动机控制,可同时控制水泵+气泵,实现水循环+加氧,保证鱼儿生存环境;
一脚用于电阻丝控制,可用于实现水体加热,可保证水温;
一脚用于温度检测,可使用AD测量热电偶数据或使用18b20检测温度,用于加热反馈控制;
一脚用于功能选择,使用AD检测单圈电位器数据实现,根据AD值分区实现不同功能组合,如单水循环(加氧)、单加热(3级温度分区),水循环+加热等功能。
一脚用于灯光指示,推挽输出,同时控制两只不同颜色LED,根据功能组合指示,类似如下电路:(如果引脚变成输入模式,可实现第三色哦)
4.WIFI联网换气扇控制器
如上图所示,此WIFI联网换气扇控制器是我之前是用ARDUINO做了出来的,用在我自己的工作室里。
因为周围的空气比较差,所以一组风机负责送入HEPA过滤后的空气,另外一组在厕所排气。
WIFI使用ESP模组,与MCU通过串口通讯。WIFI模组通过路由器,与工作室内的一台WIN10平板连接,WIN10平板上运行的是自己用C#写的TCPserver.
TCPserver通过自己定义的简单通讯协议与MCU通讯,可以读取当前速度以及设置新的速度。
所以,8条腿的STM8也能做,需要的外设:
一、1路PWM,控制风扇转速。
二、1个UART,用来与ESP通讯。
三、2个IO做实体按键,就地设置速度。
四、用2个IO控制数码管,显示速度。
据我估计,熟悉STM8之后一个上午便可做出成品。
5.农业杀虫灯控制器
等STM的8-PIN单片机的确等了很久,这个项目最开始就考虑过ST的单片机,但是当时没有,所以也一直在寻找一款可靠的芯片。
农业用杀虫灯,主要是通过晚上亮灯,诱骗飞虫过来,然后通过高压网击杀。因为害虫主要是活动在傍晚后的四五个小时,一般凌晨1,2点后并不是害虫的活动区间,所以就需要一个定时器来控制开关机。
电路其实很简单,但是这里的主要问题就是高压打火抗干扰,之前我们有用纯数字电路搭建定时器,会碰到打火复位情况,用过好几家单片机,也会出现此类问题。目前用的单片机,高压打火不会受干扰,但是比较难买,且价格有点高。今天看到STM8出8脚的了,马上过来看看,希望能弄一块来测试。
注:害虫的活动区间有相关科学依据的,刚黄昏的时候昆虫应该是最多的。其实这个要关闭的另一个原因也是为了省电,毕竟现在都是做太阳能+蓄电池的比较多。
6.蓝牙防丢报警器SPI液晶/彩屏驱动器红外控制器(智能遥控器)气象站
8-PINSTM8,什么鬼还有这么小的单片机???
8-PINSTM8,顾名思义引脚只有8个,再出去电源/地,所以说能用的引脚只有6个了。
大家可别小看这6个引脚,可以说该有的都有了,你还要啥自行车啊。
虽然这些引脚功能强大,但是又能做什么呢???
案例一:蓝牙防丢报警器
当初大学的时候做的一个设计,报警器以蓝牙方式连接手机,当蓝牙断开时,蜂鸣器报警,手机可主动触发报警寻物,有没有很高大上?
根据需求需要一个蓝牙模块UART接口,一个IO控制蜂鸣器,总共3个IO口,要什么8-PIN,
请给我一个5pin的STM8。
案例二:SPI液晶/彩屏驱动器
大家有没有发现一个秘密,这块STM8引脚中UATR与SPI引脚是不冲突的。目前市场上有很多液晶/彩屏都是SPI接口,使用UART读写数据,SPI驱动液晶屏,你们觉得只能驱动液晶、彩屏了吗?
错!错!错!
我觉得可以驱动所有SPI外设
*
案例三:红外控制器(智能遥控器)
突然发现这块STM8有个IRTIM竟然是特有的红外专用,之前写STM32要是自己配置的定时器,既然有这引脚不用白不用,UART接一个无线通讯的模块,蓝牙/WIFI/GPRS,你就可以远程控制家里的所有红外控制设备了。话说小米有卖这东西,还挺贵的。
案例四:气象站
据我了解,目前环境传感器大部分不是IIC接口,就是模拟量,正好这个STM8不仅有IIC,还有ADC,可以说够用了。可以接温湿度传感器、光照度传感器、PM2.5、PM10、CO2、CO
SO2等。UART对接一个通讯模块,有一个产品搞定了
总结
我只是随便举了几个案例,大家有什么大胆想法也可以提出来交流交流。其实这个款STM8功能是挺强大的,我们只要根据需求,一般使用引脚在6个以内的小应用,我觉得这个快STM8都可以胜任。另外,还有一点,作为单片机代码量还是要控制的。现在发挥你们的头脑风暴,看看还能做什么好玩的东西。
7.显示器加个红外遥控
作为一个多年深漂,前两年租房时房东留下了一条有线电视和机顶盒。既然有这东西,就物尽其用,买个AV装VGA接口,把大学时用的显示器搬出来当电视用,效果还不错。但是这种方式存在一个问题,机顶盒可以通过遥控开关,显示器没办法呀,每次开电视都要走多几步到显示器那开显示器,看完又要关,很是麻烦。于是乎就想给显示器加个遥控开关。遥控开关用什么做呢?8-PINSTM8足够了。
图为STM8SJ3的pin脚分布,资源还是挺多的,主要通讯接口UART,SPI,IIC都有。
对应于遥控开关的应用,可以有两种方案:
1.一个IO口连接红外接收管,解析接收的红外信号,当收到开关机信号时动作。
2.一个UART口连接到红外接收模块,通过串口的方式解析红外信号,收到开关机信号时动作。
比较两种方案,方案1效率更高,成本更低;方案2开发方便快捷。
另外,还需一个IO口并联到显示器的按键位置,模拟按键按下的效果,之所以并联,是为了保留显示器原有的按键操作。
当然,这个方案也可以用STM8L系列来做,功耗更低,平时,遥控开关模块也应工作在低功耗模式,不然,功耗太高,这和开着显示器待机模式有什么区别。
拓展开去,还可以增加多一个IIC设备,比如RTC,这样可以做到定时开关机,比如OLED,这样可以显示一些文字留言信息等。
麻雀虽小,五脏俱全,少pin脚MCU在通讯接口,开关控制等领域应用还是非常广泛的。
8.无线数据监测终端
一、我想用8引脚的STM8来做什么
我想用8引脚的STM8来做无线接收终端,使用STM8串口接收无线模块的数据,通过I2C显示屏,将接接收到的数据显示在终端上,具体实现的思路:
1、框图:
2、实现的功能:
M无线模块接收数据,通过串口将数据传输到STM8单片机,STM8处理数据后,通过LCD显示屏将数据显示到显示屏上,外部有一个功能按键和运行状态指示灯。终端使用锂电池供电。
3、STM8系列8引脚单片机资源:
STM8S8KFLASH/1KRAM/BEEPROM/工作电压范围:2.95V-5.5V
STM8L8KFLASH/1.5KRAM/1.5KBEEPROM/工作电压范围:1.8V-3.6V
STM8L8KFLASH/1KRAM/BEEPROM/工作电压范围:1.8V-3.6V
使用STM8L低功耗单片机,内部资源8KFLASH,1KRAM的资源可以满足使用要求。
二、我认为现在哪个应用(或产品)使用8引脚的STM8来替换会更好
8引脚STM8系列单片机,我认为在工业产品要求功能不复杂,空间有要求的产品上可以更好的使用,STM8L系列低功耗,使用温度-40to°C,这个温度快达到汽车级温度。
还有儿童玩具低功耗小体积的产品上使用。STM8片上资源有16位定时器,8位定时器,UART,SPI,I2C,ADC,这些资源,只要在6引脚范围能可以控制的,都可以很好的应用。
9.智能语音导盲拐杖
首先看一下STM8芯片的片上资源:
内核和系统特性
STM8内核,频率为16MHz
2.95V到5.5V工作电压
kHz到16MHzRC灵活的时钟控制
多达5个I/O
8位和16位定时器(2个)
存储器
8KBFlash
1KBRAM
字节EEPROM
连接和调试
UART
SPI
I2C
SWIM单线调试模块
模拟外设
3通道10位ADC
需要注意的是虽然是8脚,但只有5个IO可用,而且SPI是单线SPI。
UART和I2C可以同时使用。
SPI和I2C可以同时使用。
UART和SPI不可同时使用。
导盲拐杖系统方案,主要由超声波测距,采用IO触发,语音模块使用SPI+IO实现,另外加蜂鸣器和LED灯光报警提示,基本上可以占用全部IO资源了。
该装置可以把盲人前方道路上遇到的一定范围内的障碍物进行距离探测并且可以将障碍物距离盲人多少米转换成实时语音提示,通过语音提示盲人可以知道前方是否有障碍物,从而进行危险躲避。
10.锂电BMS前端采样i2c通讯和转应用
STM8能干啥,STM8可以使用内部晶振,简化外围电路。
使用I2CBMS均衡ic进行通讯和设置。就可以得到电压,电流,和各种保护状态,然后通过串口转RS,用于跟上位机的通讯就可以做出性价比非常搞的BMS均衡系统。
11.主从式6轴FAULHABER电机位置式驱动方案
想要尝尝STM8-SO8-DISCO!!
主要是想做一个6轴的空心杯电机的位置控制方案。
之前已有的方案采用的是一块48-PIN的STM32F+3片20pin的STM32L。的三个普通定时器负责六个轴的H桥PWM给定(12路),每片L负责两个电机的正交编码器的回采,主从间通信采用SPI通信。但是这样的方案成本略贵,因此正在寻找替代方案。
这次正好看到了一块板子上三个STM8,迫不及待地去翻参考手册。发现可以用以下方案替代:从芯片换为6片STM8。只看了一下STM8SJ3的PINMAP,发现7,8脚可以用作TIIM2的ENCODER模式,用来捕获一个电机的AB相正交脉冲,利用5号脚响应中断请求+6号脚读串口的方式去获取从机的脉冲数。另外还有一个1号脚,可以用来作为故障标志位,当AB失效,内部产生失效事件时,可以通过此故障标志位告知主芯片(F)。
哈哈!IO资源榨得干干净净。(lj3也可以,但lj3貌似不行..)所以测评的时候我打算试验1拖2进行上述的测试。
另外看了下这块板子,有以下三种不同的芯片:STM8SJ3M3、STM8LJ3M3、STM8LJ3M3。
手册也帮大家找好了: