小巧“抠门”的fthr-f0140开发板缘起硬件电路主控芯片供电系统调试器插座led灯按键can接口电路软件资源资源链接缘起工欲善其事,必先利其器。调试和开发mm32f0140这种小巧的芯片,还是需要小巧的板子去适配,搞起来才巴适。
我曾经定义过pokt(口袋)系列和nano(微小型)系列作为低成本微控制器的开发板套件,但pokt系列的开发板受定义限制,需要把引脚按照编号整整齐齐地引出来,对走线的面积要求较高;而nano系列还需要配套扩展板才能引出方便易用的2.54mm间距的排针,这两套板子在某些情况下,实际应用起来的成本并不低。
今年半导体市场的整体行情不大好,大家做板子用料都比较抠门,为了进一步降低对这种小封装芯片开发板的成本,我又定义了更轻量级的ftrh(羽毛)系列开发板。fthr-f0140是fthr系列的第一块板子,这个板子上连usb转uart的ch340e芯片和type-c的usb插座都省掉了,整块开发板的尺寸兼容dip40封装的8051单片机。如果不是因为f0140微控制器要用到can总线接口,可能连这个sop-8引脚封装的phy芯片也省掉。fthr-f0140电路板的外观如图x所示。当然,这里也要点名感谢我的同事hao,熟练使用kicad帮助我完成了pcb的设计工作。
figure-fthr-f0140-a
图x fthr-f0140电路板实物效果图
到目前为止,主打抠门省钱的fthr系列开发板,已经有了3个成员,按照创建的时间顺序,分别是fthr-f0140、fthr-f0160、fthr-g0140。如图x所示。
figure-fthr-boards-a
图x fthr系列开发板全家福
其中,fthr-f0160(左1)在fthr-f0140(右1)基础上增加了硬件支持的usb device以及对应的type-c插座,fthr-g0140(左2)在fthr-f0140基础上移除了can接口电路,成为了目前fthr系列中最抠门的电路板。
硬件电路使用fthr-f0140进行开发,还需要配合调试器(j-link)、usb转uart(ch340g模块)。这个电路系统连起来,如图x所示。
figure-fthr-f0140-runtime
图x fthr-f0140开发板开发场景实物图
这里使用了标准的jlink,以及转换成minijtag插座的套件。如果开发者手头上只有各种开源版本的link调试器,也可以通过2.54mm间距规格的杜邦线从fthr-f0140开发板的扩展引脚直连至swd引脚。
主控芯片fthr-f0140开发板使用mm32f0144c4p微控制器,使用arm cortex-m0处理器内核,最高可运行在72mhz主频,片上集成64kb flash和8kb ram,lqfp32封装,以及众多的通信类外设、模拟类外设和定时器等。图x中的表格列出了mm32f0140微控制器的所有选型。
figure-mm32f0140-ps
图x mm32f0140选型
图x中展现了mm32f0140微控制器的最小系统,其中包含了复位按键的复位阻容电路、晶体振荡器,以及最简的电源连线。
figure-sch-mcu-core
图x mm32f0140最小系统
这里要注意的是,fthr-f0140微控制器使用了12mhz的晶振。因为mm32f0140微控制器上没有集成usb外设,所以不强制开发者在设计自己的最小系统时使用 12mhz频率的晶振(例如,也可以使用8mhz晶振),这里只是选了比较容易备货的物料而已。
供电系统fthr-f0140板子上设计了一个产生3.3v电压的ldo,可以从外部接收5v的供电,经过ldo转换成3.3v供给mm32f0140微控制器芯片。但ldo转换产生的3.3v供电默认是不对板外供电的(在扩展插座上设计了3v3的引脚),需要短接j3插座方可。
这个设计的意义在于,考虑到一种特殊的基于can总线的应用场景,当需要将微控制器本身的电源域同can总线上的电源域进行隔离时(电源干扰相关),可拆掉板子上的ldo,再短接j3插座,此时微控制器使用的3.3v供电可以通过扩展插座上的3v3引脚供电,而can总线使用自己的5v供电,两个供电域没有直接耦合。此时,也可以验证mm32f0140微控制器在宽电压供电情况下的工作状态(不限定是3.3v)。
调试器插座fthr-f0140板子上使用了1.27mm间距的minijtag插座,以节约pcb面积,也更精致,这借鉴了一些国际大厂设计开发板常用的做法。但为了适配minijtag插座,还需要配套1.27间距的软排线和对应的转接电路板,对于非专业开发者来说,也可能是一笔开销。本着抠门的原则,这里将调试端口需要使用的swclk、swdio、reset等信号线引出到扩展插座上。如图x所示。
figure-sch-debug-swd
图x fthr-f0140开发板的调试器接口
led灯fthr-f0140开发板上集成了2个led灯:
电源指示灯d2,显示微控制器已经供电。可编程指示灯d1,对应mm32f0140的pa15引脚。按键fthr-f0140开发板上集成了1个复位按键sw1,对应mm32f0140的硬件复位信号线。无可编程按键。
can接口电路fthr-f0140开发板上集成了can通信phy芯片的电路,并可通过j2插座选择是否由本开发板向can总线接入120ohm的电阻。如图x所示。
figure-sch-can-if
图x fthr-f0140开发板上的can接口电路
关于can接口电路,这里还留了一个巧妙的设计,如果不想焊接phy芯片(进一步节约成本),但仍想试用can总线接口,可以将phy芯片焊接位上的标记的两个引脚用焊锡或者0ohm电阻短接起来,此时仍可使用j1插座对外连线。但要注意,此时j1插座上的canh和canl已经不是can差分信号了,而是can_tx和can_rx,分别对应于mm32f0140的pa10和pa9引脚。如图x所示。
figure-pcb-can-if
图x fthr-f0140开发板上can接口的直连应用
软件资源灵动官方的mindsdk(https://mindsdk.mindmotion.com.cn)已经支持了mm32f0140微控制器,但目前仅有mini-f0140这块板子在官方的支持清单中对应mm32f0140微控制器。但可以使用mini-f0140板子的样例工程运行在fthr-f0140开发板上,因为mini-f0140开发板使用的是8mhz的晶振,而fthr-f0140开发板使用的是12mhz的晶振,此处需要调整一下clock_init.c文件中clock_boottohse48mhz()函数中关于配置使用发生器pll的代码,指定rcc_pllcfgr_plldn的值为7,从而基于12mhz的晶振信号源产生48mhz的主频。
void clock_boottohse48mhz(void){ //rcc- >apb1enr |= (1u < cr1 = (pwr- >cr1 & ~pwr_cr1_vos_mask) | pwr_cr1_vos(1u); /* 1.65v. */ /* enable hse. */ rcc- >cr |= rcc_cr_hseon_mask; while ( rcc_cr_hserdy_mask != (rcc- >cr & rcc_cr_hserdy_mask) ) { } /* f_clko = f_refin * n/(m*p), f_refin = 12m. */ rcc- >pllcfgr = rcc_pllcfgr_pllsrc(1) /* (pllsrc == 1) ? hse : hsi. */ | rcc_pllcfgr_plldn(7) /* n = dn+1. */ | rcc_pllcfgr_plldm(1) /* m = dm+1. */ | rcc_pllcfgr_plldp(0) /* p = dp+1. */ | rcc_pllcfgr_plllds(1) | rcc_pllcfgr_pllictrl(3) /* 10ua. */ ; ...}之后,就可以使用mindsdk中为mm32f0140微控制器提供的芯片头文件、启动代码、驱动程序,以及海量的样例工程和多操作系统平台多工具链的支持。
figure-mindsdk-examples
图x mindsdk中支持mm32f0140微控制器的海量样例工程
光电液位传感器有哪些
新研究:将ITO从显示器移至芯片
是无线充电“真鸡肋”,还是我们没用对?
算力下放,数据上云成为智能安防发展新趋势
台积电为苹果建全球第一个3nm芯片工厂
FTHR-F0140开发板硬件电路解析
ePTFE防水透气膜的制造方法与作用是什么
数字压力表工作原理_数字压力表电路图
荣耀V9这一波华为新机的到来,悲催的不是荣耀8而是它!
苹果iPhone 12定价精美的印刷品
盘点2023 NVIDIA带来的前沿机器人技术及其在机器人领域的多样应用
为100W USB电力输送适配器提供超高功率密度
锂电池行业mes系统解决方案
骄阳数字图像引领环幕技术趋势
激光电视实现异军突起 线上增速惊人达到2112.5%
适用于化肥肥料行业使用的高位码垛机
一个简单的反向放大电路设计
这两款华为手机能够吊打iPhone,看看有你在用的吗?
短波频率自适应通信技术解析
格雷码编码规则_格雷码有什么规律