FTHR-F0140开发板硬件电路解析

描述

小巧“抠门”的FTHR-F0140开发板

  • 缘起
  • 硬件电路
    • 主控芯片
    • 供电系统
    • 调试器插座
    • LED灯
    • 按键
    • CAN接口电路
  • 软件资源
  • 资源链接

缘起

工欲善其事,必先利其器。调试和开发MM32F0140这种小巧的芯片,还是需要小巧的板子去适配,搞起来才巴适。

我曾经定义过POKT(口袋)系列和NANO(微小型)系列作为低成本微控制器的开发板套件,但POKT系列的开发板受定义限制,需要把引脚按照编号整整齐齐地引出来,对走线的面积要求较高;而NANO系列还需要配套扩展板才能引出方便易用的2.54mm间距的排针,这两套板子在某些情况下,实际应用起来的成本并不低。

今年半导体市场的整体行情不大好,大家做板子用料都比较抠门,为了进一步降低对这种小封装芯片开发板的成本,我又定义了更轻量级的FTRH(羽毛)系列开发板。FTHR-F0140FTHR系列的第一块板子,这个板子上连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-F0140FTHR-F0160FTHR-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间距的软排线和对应的转接电路板,对于非专业开发者来说,也可能是一笔开销。本着抠门的原则,这里将调试端口需要使用的SWCLKSWDIORESET等信号线引出到扩展插座上。如图x所示。

开发板

figure-sch-debug-swd

图x FTHR-F0140开发板的调试器接口

LED灯

FTHR-F0140开发板上集成了2个LED灯:

  • 电源指示灯D2,显示微控制器已经供电。
  • 可编程指示灯D1,对应MM32F0140PA15引脚。

按键

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_TXCAN_RX,分别对应于MM32F0140的PA10PA9引脚。如图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 < < 28u); /* enable PWR/DBG. */
    //PWR- >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微控制器的海量样例工程

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分