上个月有客户拿着BOM来问:“这颗外挂的STM32能不能去掉?你们带M0的板子不是号称能干MCU的活吗?”
能。但得先看清那颗MCU在干什么活——这个问题这两年被问了很多次,答案从来不是一句“能”或“不能”。
先把架构说清楚。RK3506是三个A7核加一个M0核。A7跑Linux,M0是个200MHz的精简核,可以跑裸机或轻量RTOS,和A7之间走RPMsg通信。宣传语里的“单芯片替代MPU+MCU”,这话只对了一半:替代得了双芯片的大部分麻烦,替代不了MCU的全部本事。
M0最值钱的用法,是把“慢速IO”从Linux手里拿走。
最典型的是HMI里的按键和触摸采样。老做法是MPU跑界面、外挂MCU扫按键,中间一根串口连着。界面一旦卡顿,你得先分清是UI线程的事还是串口通信的事,两套固件两个日志对着查。改用M0之后,采样就在同一颗芯片的另一个核上,A7那边再怎么卡,M0的扫描节奏不受影响——排查问题时至少不用两边猜。
网关类设备同理。接一堆RS485和DI,以前要么MPU硬扛(中断把业务进程切得稀碎),要么外挂MCU采集(数据同步又是一摊事)。现在M0专职轮询,采完打包发RPMsg给A7,A7只管往上送。
这两类活有个共同点:慢、杂、不需要复杂算法。采集、扫描、协议转换、简单IO控制——M0接得住,而且接得比双芯片方案省心。
但我们劝退过想把运动控制也塞给M0的客户。
有客户做三轴步进,原方案外挂一颗运动控制芯片,他想省掉。我们评估完劝他留着:M0没有高级定时器,没有正交编码器接口,生成简单的PWM脉冲控制步进电机够用,但加减速曲线算法在200MHz的精简核上跑得很勉强。硬塞进去省下的是BOM上十几块钱,赔上的可能是量产后的整机稳定性。
有些资料说核间响应“百纳秒级”——不太严谨。M0自己直接控制IO,微秒级没问题;但如果是“M0检测到、通知A7、A7再决策”这条完整链路,中间隔着RPMsg和Linux调度,实际是毫秒级。做系统设计别拿百纳秒当前提。
回到开头那个客户。
我们把他的BOM过了一遍:那颗STM32干的是AD采样加两路继电器控制——能省。BOM少一颗芯片、少一套电源域、少一根串口,固件从两份变成一份,实际省下不少成本。
但如果那颗MCU干的是EtherCAT、多轴插补、或者SIL3功能安全——留着它,比省它便宜得多。

