本帖最后由 天意无罪 于 2021-4-26 23:35 编辑
前言: 感谢新唐科技的厚爱,提供这次新开发板的评测活动。再收到开发板前着实意外了一下。某日手机收到一条短信,是联邦快递的,说我有个快递从台湾寄出,看到这条短信,左思右想了很久,最近没有买过跨境物品啊?心想是不是诈骗短信,于是没有理他。隔了几日又收到一条短信,说快递在某海关完成了申报。再隔几日,收到了一个自称是联邦快递的快递员,说我有一个包裹,让我下楼拿一下。于是乎,怀着忐忑和满脸的疑问从快递员手中接过了一个信封式邮件,我突然联想到了,N年前收到过一个来自某律师事务所的信件,说我怎么怎么样,必须立即怎么怎么样,具体细节就不说了,大意是让我给某个机构联系,主动上报身份信息和银**信息。心想,现在骗子都流行跨国诈骗了嘛? 拆开信封,里面是一个黄色的泡沫袋,里面居然是个红色的小PCB,再仔细一看,上面有“Nuvoton NuMaker-Volcano”的白色丝印字符,这才恍然大悟。尴尬啊,居然把这事儿忘了。 讲完这段小插曲,下面开始进入正题了。
1 开发板基本信息 1.1 开发板配置 这次收到的开发板名叫NuMaker-Volcano,目标芯片是基于ARM Cortex-M0内核的M0A23EC1AC。先到新唐官网找到这个开发板的信息,然后下载用户手册: NuMaker-Volcano开发板正面硬件配置信息: (1)1颗ARM Cortex-M0内核的M0A23EC1AC微控制器; (2)板载调试仿真器“Nu-Link2-Me”功能电路,支持片上调试,ICP编程,虚拟串口等功能; (3)1个电源指示灯LED; (4)1个复位按键; NuMaker-Volcano开发板背面硬件配置信息: (1)5.5V转3.3V低压差线性稳压器; (2)SWD功能拨码开关,用于开启Nu-Link2-Me与M0A23EC1AC之间的SWD接口互联信号;
(3)虚拟串口拨码开关,用于开启Nu-Link2-Me与M0A23EC1AC之间的串口互联信号。 1.2 开发板硬件原理图 开发板的电路比较简单,从官网下载的PDF版本原理图有2页,包含Nu-Link2-Me和M0A23EC1AC两部分功能模块电路: 板载仿真器Nu-Link2-Me采用的是新唐的M48SSIDAE芯片,通过SWD接口对开发板上的目标芯片M0A23EC1AC进行在线编程和仿真。 开发板使用AMS1117-3.3V线性稳压器将USB输入的5V转换为3.3V,为M48SSIDAE和M0A23EC1AC供电。 目标芯片M0A23EC1AC的串口0和SWD信号引脚分别通过ICESW1和SW1拨码开关与Nu-Link2-Me进行连接。 表1 Nu-Link2-Me与M0A23EC1AC的串口信号映射关系表 表2Nu-Link2-Me与M0A23EC1AC的SWD信号映射关系表 1.3 M0A23EC1AC芯片介绍 NuMicro® M0A23EC1AC 是基于 Arm® Cortex®-M0 的 32 位微控制器,针对小尺寸封装提供高度灵活性,可任意配置引脚的数字周边,丰富的模拟接口以及工作温度可达125 ℃。提供 2.4V〜5.5V 的宽电压范围,具有 CAN 2.0B 和 LIN 接口。M0A23EC1AC 设计来针对需要高温以及需要高抗干扰的应用,如 24 GHz 毫米波雷达,电池管理系统 (Battery ManageSystem, BMS),汽车照明,车窗和电动座椅等。
NuMicro® M0A23EC1AC 提供 TSSOP28 封装,可缩小电路板尺寸,且带有完整模拟以及数位功能,特别适合应用于小尺寸产品。TSSOP28 提供多达 26 个 IO 引脚,将引脚的利用率最大化。每个IO引脚都可以任意配置为数位周边,例如 UART、SPI、PWM 等。 M0A23EC1AC 提供丰富的模拟功能,在 TSSOP28 封装提供高达 17 通道 12 位 500k SPS ADC,可对多个感测器做取样、1 组 5 位数位至类比转换器 (DAC)、2 组比较器 (ACMP),并提供低电压重设 (LVR) 和欠压检测 (BOD) 功能,内建多种类比功能可降低外部周边组件的使用量并缩小终端产品尺寸。
NuMicro® M0A23EC1AC 工作频率最高可达 48 MHz 且内置硬件除法器。M0A23EC1AC 支持 32 KB 的 Flash 用于执行程序代码,提供高达 4 KB 的 SRAM 用于存储数据,2 KB LDROM 可做 ISP 固件更新功能。M0A23EC1AC 提供丰富的外设,多达 4 组 32 位Timer、6 通道 16 位 PWM、1 组 CAN 2.0B 控制器、2 组 LIN 功能、5 组 PDMA、2 组 UART 提供单线式传输功能、红外线功能、RS485 功能,2 组 USCI 可以灵活设置为 UART、SPI 或 I²C。
M0A23EC1AC 封装尺寸为 TSSOP28 (4.4x9.7x1.0 mm)
2 开发环境搭建 2.1 工具链安装 开发板支持以下4种开发软件:
下载的NuEclipseGCC (for Windows)是一个压缩包,解压后双击应用程序进行安装。 2.2 Nu-Link驱动安装 通过快速手册可知,如果工具链安装的是KEIL或IAR,需要单独下载并安装Nu-Link的驱动,如果是NuEclipse GCC,则无需进行这一步骤。由于我安装的是NuEclipse GCC,所以此步骤可以直接跳过。 2.3 固件库下载
3 新建工程
启动NuEclipse,进入开发环境,NuEclipse是基于Eclipse开发,一打开就看到了熟悉的界面,经典而简洁。 将下载好的BSP压缩包解压,然后导入到NuEclipse中。成功导入后,软件左侧会出现如下图所示的工程目录结构。 双击打开main.c文件,该示例程序的功能是通过UART0打印“Hello World”。 Main函数中包括系统初始化函数和UART0初始化函数,其中系统初始化函数中主要是完成内部RC时钟的使能和初始化,以及UART0时钟源的配置和初始化。 检查一下工程设置,然后直接编译并程序,提示编译成功。 然后进入debug Configurations界面,然后双击GDB Nuvoton Nu-LinkDebugging选项,会弹出“Template Release”配置界面,按照快速使用手册的说明,检查一下各配置是否正确。 确认无误后,点击Apply,然后点击Debug,这时候软件弹出了窗口,并在Console终端中打印程序下载失败的提示。尝试了很多次,还是一样报错。 想着是不是Nu-Link的驱动有问题,因为快速使用手册中没有说使用NuEclipse需要单独安装驱动。于是打开电脑的设备管理界面,发现串口号识别到了,但是Nu-Link的驱动显示为感叹号。 通过右键自动更新驱动程序和指定到NuEclipse的安装路径进行驱动安装也不能成功安装驱动,于是又到NuEclipse的安装路径去一个个找,终于发现在Others目录下有个Nu-Lnik_USB_Driver 1.8的应用程序,这个应该就是Nu-Link的USB驱动了,于是手动进行安装,并成功。 安装好Nu-Link的USB驱动后,开发板重新上电,在电脑设备管理界面显示Nu-Link的USB驱动已正确安装,同时发现虚拟串口的名称也变正确了。 心想这下应该没问题了,赶紧重新运行NuEclipse,然后debug,结果还是不能下载程序和仿真,提示信息也是一样的,奇怪了。还有哪里设置没对?今天就先这样吧,明天再来检查一下。
4 附件
|