东芝半导体最新ARM开发板——TT_M3HQ开箱评测

前言
最近从面包板社区申请到一块东芝最新ARM Cortex-M3内核的开发板——TT_M3HQ,其实开发板收到好几天了,这几天一直在构思怎么来写这第一篇评测文章,看大家在社区也都发了第一篇评测,我也趁着周末有时间来写一下开箱报告。了解过东芝的光耦和存储设备,但不知道东芝还有MCU产品,更没有用过相关的开发板,这次有幸能申请到一块最新的M3开发板,非常感谢面包板社区、东芝半导体、中科创达的支持,让我们一起来学习一下东芝MCU的开发和使用。
关于TT_M3HQ
这款TT_M3HQ开发板是东芝半导体和国内的中科创达强强联手开发的产品,基于东芝ARM Cortex-M3内核的TMPM3HQFDFG微控制器,同时上线的还有基于M4内核TMPM4G9F15FG微控制器的TT_M4G9开发板,这两款开发板官方售价均是150元人民币。从板载资源来看,售价150元,价格还是很良心的,就一个主控芯片TMPM3HQFDFG,我在淘宝搜索了一下,价格在70RMB左右,而且还板载调试器和USB-TTL芯片,对于开发者来说,只需要一根MicroUSB线即可满足供电、下载、调试的需求,还是非常方便的。
关于东芝的MCU产品
TT_M3HQ开发板采用的TMPM3HQFDFG芯片是属于东芝TXZ3系列MCU,TXZ3系列MCU发布于2016年,采用65nm逻辑工艺,主要面向广泛的消费电子产品和工业应用。
![]()
从东芝官方ARM内核产品发展路线图,可以看出,东芝第一款ARM M3核MCU产品发布与2009年,后面几年又推出了M0核和M4核的MCU,A系列的MPU等等。以前从没有用过东芝的MCU,没想到东芝还有这么多ARM产品。
![]()
TT_M3HQ开箱爆照
不得不说,大厂的板子包装还是很到位的,硬质纸盒、两个封条标签、泡沫全保护,外加气泡袋,内部板子再使用防静电袋装着,可以说这是我目前见过的包装最好的开发板了。好了,我们一起来看一下TT_M3HQ开发板开箱过程。
包装盒正面

背面封条标签

虽说这块板子是东芝和中科创达联合出品,但整个包装盒并没有发现东芝TOSHIBA的标志,不知这是为何。
内部保护措施

↑这张图片来自面包板网友 @hezhenwei
包装盒正面开发板名称

中科创达的LOGO,开发板的设计者

ARM Mbed标志

凡是带有这种ARM Mbed标志的开发板都是支持搭载Mbed-OS,而且可以通过ARM Mbed在线平台,编译生成bin文件,然后复制到开发板的盘符即可完成程序的下载,不需要开发环境,只需要一个浏览器就可以完成程序的开发。更多支持ARM Mbed的开发板列表:https://os.mbed.com/platforms/
这块开发板使用的是MicroUSB接口,但是并没有随板子附带一根数据线,包装盒的空间再塞下一根USB数据线应该不成问题。不过影响不大,现在谁手上还能没有一根通用的安卓数据线呢?
去掉层层保护,我们终于可以看到TT_M3HQ开发板的真面目了

图中板子边缘的双排排针默认是没有的,可能是让用户来选择是焊接排针还是排母。为了方便连接已经有的一些外部硬件设备,我焊接了双排排针,另外板子的排针接口都是标准的2.54mm间距,这样可以很方便的连接一些传感器、显示屏等模块。
TT_M3HQ PCB工艺
在进行板载资源介绍之前,我们先来看一下板子的PCB工艺,整块板子面积大约是87mm*70mm,板厚1.2mm,4层板,沉金工艺,亚黑色油墨,亚黑色油墨比普通的亮黑色成本要高一些,不会反光,手感好,苹果的产品电路板都是亚黑色PCB,另外亚黑色和沉金工艺,看着也高档一些。元器件全部分布在一面,这应该是为了方便批量生产时元器件的贴装,而且板子上的元器件基本上都是选用的小封装型号,如电阻电容等采用0402封装。
亚黑色PCB及沉金工艺

板子背面的二维码标签和生产日期

从PCB背面的丝印1911可以看出,板子的生产日期是2019年第11周,大概是在今年的3月中旬。旁边的二维码应该表示的是板子的唯一序列号。
TT_M3HQ板载资源
- 主控芯片,东芝TMPM3HQFDFG微控制器,标准ARM Cortex-M3内核,低功耗、高速、高码密度和快速中断响应时间等特性, 可以应用在家电、办公自动化、住宅设备、音响设备、电机控制、工业设备等领域。最高主频80MHz,64 kB RAM,512 kB ROM,UART/DMA/INT/TIMER/IIC/SPI/ADC/DAC这些都是标配,比较特别的是3相PWM输出/增量编码器/远程控制接收器/LVD/SIWDT等外设。
- 板载调试器,SWD接口,可以方便的完成下载、调试等功能,基于东芝TMPM366,ARM Cortex-M3内核,主频48MHz,64KB RAM, 512KB Flash,外挂了64M的SPI Flash-S25FL064LABNFI040,板子连接电脑会显示一个64M的U盘设备,应该就是这个了。可以用于存储Mbed在线编译平台生成的Bin文件。板载调试器默认为CMSIS固件,不知道能不能升级为其他ARM调试器固件,如Jlink固件。
- USB-TTL电路,基于CP2102,连接到了MCU的串口0。
- 两路拨码开关, 两路按键,一路复位按键,一路用户按键,4路用户LED。
- 电源芯片,3.3v电源来自于LDO芯片TCR3DF33,最大输出电流只有300mA,如果使用板载电源接口驱动一些功耗较大的器件可能会带不起来。
- 独立复位芯片,ADM6713电源监测芯片。
- 标准的Arduino™Uno连接接口,可以方便的连接Arduino的一些扩展板。
- GPIO全部引出,剩余的GPIO口全部通过2.54mm间距的排针引出,默认没有焊接,可以根据需要焊接排针或者排母。
- 扩展接口,留出了4个SeeedGrove接口和1个电机接口。
TT_M3HQ细节特写
主控TMPM3HQFDFG芯片

板载调试器、拨码开关、按键、LED等

USB转TTL芯片CP2102及中科创达的LOGO

可以通过J2跳线选择5V供电方式为DAP还是USB。
扩展接口

TT_M3HQ硬件框图及接口定义
硬件设计整体框图

板子接口说明

TT_M3HQ开发环境搭建
1.TT_M3HQ支持的开发环境
TT_M3HQ的开发环境支持主流的ARM开发环境,如Keil、IAR等,当然也支持ARM Mbed在线编译平台,关于这种在线平台编译的介绍,可以参考面包板社区网友 @DI2k 的文章:【东芝TT_M3HQ开发板试用体验】+ 初试。为了尽快上手开发,我这里选择常用的Keil MDK-ARM环境,根据官方推荐,建议使用以下版本
- IAR EWARM 推荐8.30版本
- Keil MDK-ARM 推荐5.25版本
我的Keil版本是V5.26,不过我个人觉得影响不大,既然是标准的ARM内核,对IDE的版本要求应该没那么严格,如果你的版本稍微低一些应该也是可以的。
2.安装芯片DFP器件包
为了能使用Keil来进行TT_M3HQ程序的开发、下载和调试,我们还需要下载TMPM3HQFDFG对应的DFP包,可以到Keil官方网站来下载:Toshiba TMPM3HQFDFG,也可以到文末的链接来下载TXZ3系列对应的DFP器件包。

3.下载官方SDK
开发环境搭建完成之后,我们还需要官方的SDK示例程序和芯片的Datasheet。
官网SDK示例程序下载:TT_M3HQ SDK示例程序
官网Datasheet下载:TT_M3HQ Datasheet
4.导入点灯示例工程
SDK压缩包解压到本地之后,我们打开文件夹中的LED演示程序x:\TMPM3Hy_v1.2.0\Project\Examples\GPIO\GPIO_LED\LED_GPIO.uvprojx
在当前文件夹中可以看出,有两种工程文件,一种是Keil的、一种是IAR的,根据自己的环境打开对应的文件。
打开之后,我们直接点击编译按钮,等待程序编译完成,正常应该是".\Objects\LED_GPIO.axf" - 0 Error(s), 0 Warning(s).会在Object目录生成axf程序文件。
5.下载验证
在下载之前,要先对板子的跳线进行设置,板子默认的跳线是J6,J5是断开的,我们需要调整一下,因为J5使能板载DAP调试器的,而J6是需要对调试器进行固件升级时才需要短接。所以,需要短接J5断开J6,如图

然后使用MicroUSB数据线连接DAP接口和电脑,如下图。

板子有两个USB接口,上面的USB接口是串口使用的接口,而下面的USB接口才是调试器的接口。我们的LED点灯程序,没有使用到串口功能,所以暂时不连接。
和以前的ARM芯片程序下载一样,选择Debug调试器为CMSIS-DAP

正常情况下会显示连接到的芯片ID

如果没有出现,需要检查跳线状态是否是短接J5断开J6,MicroUSB线是数据线,而不是普通的电源线,因为有些充电宝配的线只有两芯,只能作为电源线,并没有传输数据的功能。
下载完成之后,会发现指示灯并没有变化,我们需要按一下S1复位按键,然后按S2键,LED3会灭,松开S2键,LED3会亮,这样就说明程序下载成功了。
相关资料下载
- TT_M3HQ开发板官网
- TT_M3HQ开发板原理图
- TT_M3HQ开发板布局图
- TT_M3HQ开发板用户指南
- TT_M3HQ扩展板测试程序
- TT_M3HQ扩展板使用手册
- TT_M3HQ主控芯片Datasheet
- TT_M3HQ开发板SDK示例程序
- TT_M3HQ开发板Keil DFP器件包
推荐阅读
- STM32F407外部晶体改为25M后检测不到芯片的解决办法
- 详解串行通信协议及其FPGA实现
- 玄铁910是个啥?是芯片吗?
- 国产处理器的逆袭机会——RISC-V
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
- 【2019北京国际消费电子博览会】参观总结
- Qt实现软件自动更新的一种简单方法
欢迎大家关注我的个人博客
或微信扫码关注我的公众号

东芝半导体最新ARM开发板——TT_M3HQ开箱评测的更多相关文章
- ARM开发板挂载U盘
ARM开发板运行Linux系统后,插入U盘,通过串口打印系统识别到U盘如下: 系统识别U盘盘符为sda4 那么需要挂载后才能操作U盘:挂载命令 mount -t vfat /dev/sda4 /mnt ...
- 使用arm开发板搭建无线mesh网络(二)
上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 ar ...
- 使用arm开发板搭建无线mesh网络(一)
由于项目的需要,老板让我使用arm开发板(友善之臂的tiny6410)搭建无线mesh网络.一般而言,无线自组织网络的网络设备都是由用户的终端设备来充当,这些终端设备既要处理用户的应用数据,比如娱乐, ...
- 关于ARM开发板与PC主机的网络设置问题
直观来讲,ARM开发板多数情况下会有条网线与主机相连,所以最重要的一步是保证PC主机与ARM开发板能互通. 互通的意思进一步来讲就是互相能ping通.也就是说在瘟都死的dos下(假设主机是瘟都死系统) ...
- ARM开发板挂载虚拟机 nfs目录
ARM开发板做相关开发,为了调试方便,常把开发板mnt目录挂载到虚拟机nfs共享目录上,这样调试程序时候就不用把程序转到开发板上再运行,方便很多.要挂载nfs共享目录,需要安装必要的组件支持. 1.虚 ...
- 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】
转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...
- Windows10、ARM开发板、VMware虚拟机同时连接Internet
前段时间有人遇到一些网络连接问题,让我帮忙处理,他想让ARM开发板连接外网,可以连接网络数据库,同时保证自己的电脑可以上网. 本来说直接可以连接一个路由器,分配一个内网IP给ARM就可以了,但是当时那 ...
- ubuntu 交叉编译qt 5.7 程序到 arm 开发板
ubuntu 交叉编译qt 5.7 程序到 arm 开发板平台1 ubuntu 12.042 arm-linux-gcc 4.5.13 QT 5.74 开发板210 armcortex-A8 一 概述 ...
- Arm开发板+Qt学习之路
从2015.11.13日开始接触arm开发板,开始学习Qt,到现在已经四个月零17天了,从一个拿到开发板一无所知的小白,到现在能够在开发板上进行开发,有付出有收获. 之前一直没有时间将这个过程中的一些 ...
随机推荐
- Sublime Text 3 免费注册方法(福利)
对于使用Sublime Text但是又不愿花钱注册的小伙伴,福利到了,免费注册一下你的Sublime吧. 版本3207: 打开Sublime text,然后点击菜单Help->Enter Lis ...
- 【SSL题解报告】没有上司的舞会
题目: 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指 ...
- Python-车牌识别
一.车牌识别系统的用途与技术车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用.车牌识别在高速公路车辆管理 ...
- PAT(甲级)2019年秋季考试
第一题用搜索,超时了,待补 更新第一题思路 dfs + 剪枝,首先确定 n的最后一位数字肯定是9,为什么呢,因为 任意两个相邻的数肯定互为质数(gcd=1),所以 n 的末尾肯定是9,这样n+1产生的 ...
- ThinkPHP5——模型关联(多对多关联)
关联定义 多对多关联不像一对一和一对多关联,它还要多建一个中间表用来处理多对多的关联,例如: #城市 create table city ( c_id int primary key AUTO_INC ...
- “setTimeout、Promise、Async/Await 的区别”题目解析和扩展
解答这个题目之前,先回顾下JavaScript的事件循环(Event Loop). JavaScript的事件循环 事件循环(Event Loop):同步和异步任务分别进入不同的执行"场所& ...
- openstack学习之neutron ml2初始化代码分析
这里没有 去详细考虑neutron server怎么初始化的,而是直接从加载插件的地方开始分析.首先我们看下下面这个文件. Neutron/api/v2/router.py class APIRout ...
- 机器学习预测时label错位对未来数据做预测
前言 这篇文章时承继上一篇机器学习经典模型使用归一化的影响.这次又有了新的任务,通过将label错位来对未来数据做预测. 实验过程 使用不同的归一化方法,不同得模型将测试集label错位,计算出MSE ...
- CoderForces-913-C
A New Year party is not a New Year party without lemonade! As usual, you are expecting a lot of gues ...
- XCode项目配置
此设置优先级在playersetting之上,如果为空或者格式不正确或者文件不存在将不会设置,请注意 一.设置面板 二.对应Xcode中设置 1.TeamID 登录苹果开发者网站,查看个人信息,就有 ...