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

news2024/7/4 4:38:30

小巧“抠门”的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的设计工作。

在这里插入图片描述

图x FTHR-F0140电路板实物效果图

到目前为止,主打抠门省钱的FTHR系列开发板,已经有了3个成员,按照创建的时间顺序,分别是FTHR-F0140FTHR-F0160FTHR-G0140。如图x所示。

在这里插入图片描述

图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所示。

在这里插入图片描述

图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微控制器的所有选型。

在这里插入图片描述

图x MM32F0140选型

图x中展现了MM32F0140微控制器的最小系统,其中包含了复位按键的复位阻容电路、晶体振荡器,以及最简的电源连线。

在这里插入图片描述

图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所示。

在这里插入图片描述

图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所示。

在这里插入图片描述

图x FTHR-F0140开发板上的CAN接口电路

关于CAN接口电路,这里还留了一个巧妙的设计,如果不想焊接PHY芯片(进一步节约成本),但仍想试用CAN总线接口,可以将PHY芯片焊接位上的标记的两个引脚用焊锡或者0ohm电阻短接起来,此时仍可使用J1插座对外连线。但要注意,此时J1插座上的CANH和CANL已经不是CAN差分信号了,而是CAN_TXCAN_RX,分别对应于MM32F0140的PA10PA9引脚。如图x所示。

在这里插入图片描述

图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微控制器提供的芯片头文件、启动代码、驱动程序,以及海量的样例工程和多操作系统平台多工具链的支持。

在这里插入图片描述

图x MindSDK中支持MM32F0140微控制器的海量样例工程

资源链接

  • MM32F0140数据手册:https://www.mindmotion.com.cn/download/products/DS_MM32F0140_SC.pdf
  • MM32F0140开发手册:https://www.mindmotion.com.cn/download/products/UM_MM32F0140_SC.pdf
  • FTHR-F0140电路板KiCAD工程:https://download.csdn.net/download/suyong_yq/87677076

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本科也可入行的IC模拟版图,需要学习哪些知识?

IC模拟版图是一个入门非常简单&#xff0c;但同时又是一份涉及知识面非常广阔&#xff0c;资深较难的工作。 在众多IC岗位中&#xff0c;模拟版图确实属于容易入门&#xff0c;吸引来很多想要转行IC行业的朋友&#xff0c;但需要掌握的知识点和技巧并不比设计少&#xff0c;属…

Python+Selenium+Unittest 之selenium5--元素定位4-XPath定位1(基本概念)

目录 一、简介 二、节点关系 三、绝对路径与相对路径 一、简介 Xpath定位在selenium中属于常用的定位方式&#xff0c;首先来说下Xpath的一些概念&#xff0c;Xpath即为XML路径语言&#xff08;XML Path Language&#xff09;&#xff0c;它是一种用来确定XML文档中某部分位置…

Vision Transformers for Dense Prediction论文笔记

文章目录Vision Transformers for Dense Prediction&#xff0c; ICCV&#xff0c; 2021一、背景介绍二、网络结构三、实验结果1.语义分割实验2.消融实验Vision Transformers for Dense Prediction&#xff0c; ICCV&#xff0c; 2021 一、背景介绍 本篇论文主要提出一种网络…

SpringBoot 集成webSocket

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

IT软件行业用契约锁实现“代理-销售-投标-项目-合作”电子签

IT软件行业产品销售渠道多、销售订单体量大&#xff0c;从产品研发、销售到项目实施&#xff0c;伴随着大量的协议、合同、单据需要与员工、客户或者经销商签署。引入电子签章&#xff0c;化解纸质合同签署带来的效率、成本、安全等问题&#xff0c;成为软件行业产品代理、销售…

Vector - CAPL - Panel面板_01

前面有过简单的介绍panel面板的功能&#xff0c;不过终究感觉有点简陋&#xff0c;最近也在搞PyQT5&#xff0c;发现如果对于这块了解不多的情况下&#xff0c;想要做一些东西的话&#xff0c;简直无从下手&#xff0c;因此专门翻阅了之前的文章&#xff0c;查看了下确实缺少了…

ChatGPT自动化提高工作效率: 2分钟快速生成思维导图

一、简要说明 ChatGPT不止是一个聊天机器人&#xff0c;更是一个自然语言处理、文本内容生成模型&#xff0c;它可以理解语言规则&#xff0c;不仅仅是给你输出已有的知识内容&#xff0c;还会给到你一些创意点子&#xff1b;所以我们应该学会如何使用它&#xff0c;让它更好的…

集合例题,

package com.hspedu.homework;import java.util.*;/*** author 韩顺平* version 1.0*/ SuppressWarnings({"all"}) public class Homework03 {public static void main(String[] args) {Map m new HashMap();m.put("jack", 650);//int->Integerm.put(&…

STL源码剖析-六大部件, 部件的关系,复杂度, 区间表示

C标准库-体系结构与内核分析 根据源代码来分析 介绍 自学C侯捷老师的STL源码剖析的个人笔记&#xff0c;方便以后进行学习&#xff0c;查询。 为什么要学STL&#xff1f;按侯捷老师的话来说就是&#xff1a;使用一个东西&#xff0c;却不明白它的道理&#xff0c;不高明&…

分享一个Vue输入框获取焦点自动选中指令

需求背景&#xff1a;最近项目中遇到很多输入类控件&#xff0c;且有频繁改动需求&#xff0c;如果数值过长&#xff0c;则需要一直按着删除键&#xff0c;于是想能不能获取焦点的时候&#xff0c;就直接选中&#xff0c;这样就可以直接删除了 1、思路分析 记得很早的时候做小…

顺序表的实现

思维导图&#xff1a; 一&#xff0c;顺序表 一&#xff0c;顺序表的创建&#xff08;位置&#xff1a;头文件内&#xff09; 1.1顺序表的结构体类型 要求&#xff1a;创建顺序表并使这个顺序表能够存放数据&#xff0c;能记录有效数据的个数&#xff0c;能够记录容量大小。…

记 ==> 首次使用rabbitMQ优化项目

昨天刚学习完了rabbitMQ&#xff0c;刚好我的项目有个模块挺符合使用rabbitMQ进行异步处理的。 这个模块大概功能是&#xff1a;用户发送的所有帖子都会添加到他的发件箱&#xff0c;当有个新用户关注了他&#xff0c;他发件箱内所有的博客都会被添加到关注他的用户的收件箱里…

binkw32dll缺失怎么办?如何解决binkw32dll修复问题

binkw32dll缺失怎么办&#xff1f;在使用某些计算机游戏或应用程序时&#xff0c;您可能遇到过binkw32dll缺失的问题。这意味着您的计算机无法找到该DLL文件&#xff0c;从而无法正常运行程序。在本文中&#xff0c;我们将探讨binkw32.dll缺失的可能原因并提供解决方案。 一.什…

python flask 接口平台开发

文章目录descFlaskFlask-SQLAlchemyflasggerdesc 考虑到开发的便捷性、生态的丰富程度&#xff0c;用Flask、Flask-SQLAlchemy、flasgger等编写一套简单易用的接口平台 这里记录以下这几个组件的使用方式 Flask 轻量、灵活&#xff0c;相比Django不用遵循太多的开发规范 F…

SSM整合的基本思路梳理

SSM整合的简单思路流程 基本思路 我在整合的时候一般习惯从MyBatis开始向上构建&#xff0c;也就是在开始一个项目的时候先将DAO层搭建起来&#xff0c;再向上整合Spring以及SpringMVC。按照这个流程&#xff0c;可以做出一个比较简单的大致流程作为参考&#xff0c;帮助我们…

企业为什么要做网站?这篇文章告诉你

在如今数字化的时代&#xff0c;企业为什么要做网站&#xff1f;这个问题一直都是企业主和市场营销人员必须要考虑的问题。本文将以一个真实的案例为例&#xff0c;解析为什么企业要做网站以及如何通过网站提升业务和品牌的影响力。 案例背景 以一家小型私人医疗诊所为例&…

【神经网络】tensorflow实验4--Matplotlib数据可视化

1. 实验目的 ①掌握Matplotlib绘图基础 ②运用Matplotlib&#xff0c;实现数据集的可视化 ③运用Pandas访问数据集 2. 实验内容 ①绘制散点图、直方图和折线图&#xff0c;对数据进行可视化 ②下载波士顿数房价据集&#xff0c;并绘制数据集中各个属性与房价之间的散点图&#…

人人可用的敏捷指标工具!Kyligence Zen 正式发布 GA 版

4 月 11 日&#xff0c;Kyligence 指标平台产品发布会成功召开。发布会上&#xff0c;一站式指标平台 Kyligence Zen 正式推出 GA 版&#xff0c;接下来这款人人可用的敏捷指标工具将以更加完善、成熟、稳定的产品性能与功能解决企业面临的指标管理、分析和应用痛点 &#xff0…

【信息论】一、信息与信息论

“The fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point.” —— Claude Elwood Shannon 1.1 信息的定义 什么是信息&#xff1f;它与消息、信号之间有什么区别和联系&#…

指纹识别q

1、指纹传感器 FTIR(Frustrated Total Internal Reflection)&#xff0c;受抑全内反射。在屏幕的夹层中加入LED光线&#xff0c;当用户按下屏幕时&#xff0c;使夹层的光线造成不同的反射效果&#xff0c;感应器接收光线变化而捕捉用户的施力点。 明显的缺点&#xff1a;体积太…