新唐NUC980使用记录:基础说明与资料索引

2023-11-22 20:31

本文主要是介绍新唐NUC980使用记录:基础说明与资料索引,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 基础说明
  • 上电设置
  • 电路设计
    • 供电
    • 复位
    • 时钟源
    • 启动设置与启动源
    • UART0
    • USB接口
    • 以太网接口
  • 资料索引

前言

最初知道 新唐(nuvoton) 是因为别人推荐的国产单片机厂家,不过国产单片机厂家可选择的太多了,也就一直没有用过它们家的单片机。后来在寻找适合入门学习嵌入式Linux的微处理器时候发现了新唐的微处理器。目前它家的微处理器最新的是NUC980系列。

新唐的微处理器在入门学习嵌入式Linux方面有两点优势:

  1. 数据手册、参考手册、硬件参考设计、BSP包、开发板资料等完全开放;
    这是选择一颗芯片最核心的需求,没有这个就得花很多时间趟坑了;
  2. 内置DDR & 焊接方便;
    比如现在最常见的NUC980系列的NUC980DK61YC芯片,内置64MB DDR2内存、采用LQFP-128封装、无底部焊盘,使用电烙铁就可以完成焊接,不用使用风枪或是底部开孔灌锡等方式进行焊接;

上面两个条件中,满足第一个条件的一大堆,在此基础上同时要满足第二个条件的就非常少了,至少目前我只找到新唐的。(其实我还想要第三个条件:ARMv7或以上,焊接条件可以放宽点,比如使用QFN封装等。可惜一直没找到。

NUC980DK61YC便宜的时候零卖三十多一片,现在普遍卖五十多,虽然不算便宜,但也不算贵:
在这里插入图片描述

这篇文章将介绍下上手使用NUC980系列需要的一些基础信息,方便回头查询使用。

基础说明

下面是NUC980系列官方的介绍:

NUC980 工业控制物联网系列


NUC980 系列采用 ARM926EJ-S 核心,执行速度高达 300 MHz ,堆迭 64 MB 或 128 MB DDR-II 记忆体于同一封装,提供 64-pin、128-pin 和 216-pin LQFP 封装,大幅减少 PCB 尺寸和降低电磁干扰 ( EMI ) 。丰富的周边功能包含:10 组 UART 介面、双乙太网、4 组 CAN 2.0 B 、8 组 USB Host 、双 SDIO / eMMC 介面、NAND Flash 介面、QSPI NAND 介面、ISO-7816 介面和高速 USB 2.0 Host / Device 等,可以满足客户对弹性设计的需求。


NUC980 提供 AES、SHA、ECC 与 RSA 加密引擎,并符合 - 40 ℃ 至 85 ℃ 工业温度规格,主要应用为工业自动化控制、工业物联网闸道器 ( Gateway ) 、网路印表机设备、电表集中器、智能家居闸道。

下面是NUC980系列芯片框图:
在这里插入图片描述

下面是NUC980系列芯片命名规则:
在这里插入图片描述
NUC980系列目前市面上最常见的是NUC980DK61YC这个型号。这个型号是LQFP-128封装的,一般来说比较推荐使用这个封装的:LQFP-64封装的外设少一些,并且只支持从SPI Flash启动;LQFP-216封装的可用的IO相比128Pin的多了没几个,可用外设两者几乎一样。

上电设置

NUC980系列上电时会读取一些IO口上的电平值,将它所存到 SYS_PWRON 寄存器的对应位。 SYS_PWRON 寄存器会影响系统的启动源和一些基础功能配置。下面是相关的一些内容:

IO口描述寄存器对应位默认值
USB0_ID0 = USB0 act as a USB host
1 = USB0 act as a USB device
USBID (SYS_PWRON[16])1
PG[1:0]00 = Boot from USB
01 = Boor from SD0/eMMC
10 = Boot from NAND Flash
11 = Boot from SPI Flash
BTSSEL (SYS_PWRON[1:0])11
PG.20 = QSPI0_CLK frequency is 30 MHz
1 = QSPI0_CLK frequency is 50 MHz
QSPI0CKSEL(SYS_PWRON[2])1
PG.30 = After power-on, WDT Disabled
1 = After power-on WDT Enabled
WDTON (SYS_PWRON[3])1
PG.40 = Pin PA[6:2] used as JTAG interface
1 = Pin PG[15:11] used as JTAG interface
JTAGSEL (SYS_PWRON[4])1
PG.50 = UART 0 debug message output ON and pin PF[12:11] used as the UART0 functionality
1 = UART0 debug message output OFF and pin PF[12:11] used as the GPIO functionality
URDBGON (SYS_PWRON[5])1
PG[7:6]00 = NAND Flash page size is 2KB
01 = NAND Flash page size is 4KB
10 = NAND Flash page size is 8KB
11 = Ignore Power-On Setting
NPAGESEL(SYS_PWRON[7:6])11
PG[9:8]When BTSSEL = 01, Boot from SD/eMMC,
the MISCCFG defines the GPC or GPF used as the booting source.
11 = GPC group used as the booting source
Others = GPF group used as the booting source

When BTSSEL = 10, Boot from NAND Flash,
the MISCCFG defines the ECC type.
00 = No ECC
01 = ECC is BCH T12
10 = ECC is BCH T24
11 = Ignore power-on setting

When BTSEL = 11, Boot from SPI Flash,
the MISCCFG defines the SPI Flash type and data width.
00 = SPI-NAND Flash with 1-bit mode
01 = SPI-NAND Flash with 4-bit mode
10 = SPI-NOR Flash with 4-bit mode
11 = SPI-NOR Flash with 1-bit mode
MISCCFG (SYS_PWRON[9:8])11

上面表格中比较重要的一些信息都进行了加粗。此外还有一些需要事项:

  • 表格中这些IO口会在上电启动时由芯片自动启用内部上拉,所以默认值都是1;
    需要改动的话可以外部接地、或者串个10K电阻接地;
  • 表格中的IO口可能并没有全部引出到外部引脚,视封装而定;

电路设计

新唐官方有出了几款NUC980的开发板,可以在下面大章节中找到这些开发板的链接。这一章节主要介绍下基础的电路部分。

供电

NUC980需要 3.3V1.8V1.2V 三路电源供电:
在这里插入图片描述

复位

NUC980的复位引脚是 nRESET ,低电平复位。官方开发板中主要使用3.3V电源串接100k电阻和1uF电容接到地,电阻和电容中间点作为复位信号。

时钟源

NUC980使用外部 12M 无源晶体作为主系统时钟。除了晶体两端配置负载电容外。两个引脚间还需要接1M电阻。RTC时钟使用 32.768k 晶体,不需要负载电容。

启动设置与启动源

启动设置主要参考前面上电设置章节,与启动源相关的最主要的设置依赖于 PG[1:0]PG[9:8] ,依据组合不同可以产生下面几种情况:

PG[1:0] = 00 USB ISP模式,可以用过 USB0 向板子上的Flash写入数据(烧录固件);

PG[1:0] = 01 & PG[9:8] = 11 通过 SD0 接口上的SD卡或eMMC启动,接口引脚说明如下:

Pin NameGPIOTypeDescription
SD0_CLKPC.6OSD0 clock output pin
SD0_CMDPC.5I/OSD0 command/response pin
SD0_DATA0PC.7I/OSD0 data line bit 0
SD0_DATA1PC.8I/OSD0 data line bit 1
SD0_DATA2PC.9I/OSD0 data line bit 2
SD0_DATA3PC.10I/OSD0 data line bit 3
SD0_nCDPC.12 或 PB.8ISD0 card detect input pin

PG[1:0] = 01 & PG[9:8] = other 通过 SD1 接口上的SD卡或eMMC启动,接口引脚说明如下:

Pin NameGPIOTypeDescription
SD1_CLKPF.1OSD1 clock output pin
SD1_CMDPF.0I/OSD1 command/response pin
SD1_DATA0PF.2I/OSD1 data line bit 0
SD1_DATA1PF.3I/OSD1 data line bit 1
SD1_DATA2PF.4I/OSD1 data line bit 2
SD1_DATA3PF.5I/OSD1 data line bit 3
SD1_nCDPF.6ISD1 card detect input pin

PG[1:0] = 10 使用NAND Flash作为启动源,接口引脚说明如下:

Pin NameGPIOTypeDescription
NAND_ALEPC.3ONAND Flash address latch enable
NAND_CLEPC.4ONAND Flash command latch enable
NAND_DATA0PC.8I/ONAND Flash data bus bit 0
NAND_DATA1PC.9I/ONAND Flash data bus bit 1
NAND_DATA2PC.10I/ONAND Flash data bus bit 2
NAND_DATA3PC.11I/ONAND Flash data bus bit 3
NAND_DATA4PC.12I/ONAND Flash data bus bit 4
NAND_DATA5PC.13I/ONAND Flash data bus bit 5
NAND_DATA6PC.14I/ONAND Flash data bus bit 6
NAND_DATA7PC.15I/ONAND Flash data bus bit 7
NAND_RDY0PC.7INAND Flash ready/busy pin
NAND_nCS0PC.1ONAND Flash chip enable input
NAND_nREPC.6ONAND Flash read enable
NAND_nWEPC.5ONAND Flash write enable
NAND_nWPPC.2ONAND Flash write protect input

PG[1:0] = 11 使用SPI Flash作为启动源,接口引脚说明如下:

Pin NameGPIOTypeDescription
QSPI0_CLKPD.3I/OQuad SPI0 serial clock pin
QSPI0_MISO0PD.5I/OQuad SPI0 MISO0 (Master In, Slave Out) pin
QSPI0_MISO1PD.7I/OQuad SPI0 MISO1 (Master In, Slave Out) pin
QSPI0_MOSI0PD.4I/OQuad SPI0 MOSI0 (Master Out, Slave In) pin
QSPI0_MOSI1PD.6I/OQuad SPI0 MOSI1 (Master Out, Slave In) pin
QSPI0_SS0PD.2I/OQuad SPI0 slave select 0 pin
QSPI0_SS1PD.0 或 PA.0I/OQuad SPI0 slave select 1 pin

UART0

NUC980默认可以通过UART0输出调试信息,接口引脚说明如下:

Pin NameGPIOTypeDescription
UART0_RXDPF.11IUART0 data receiver input pin
UART0_TXDPF.12OUART0 data transmitter output pin

USB接口

NUC980可以在USB ISP模式下通过 USB0 向板子上的Flash写入数据,所以 USB0 也是比较重要的,部分引脚如下:

Pin NameGPIOTypeDescription
USB0_IDIUUSB0 Host/Device identification with an internal pull-up
1: Device (default) / 0: Host
USB0_DMAUSB0 differential signal D-
USB0_DPAUSB0 differential signal D+
USB0_REXTAUSB0 module reference resister (external 12.1K to GND)
USB0_VBUSVLDPE.11IUSB0 VBUS valid indication pin

USB0默认作为Device使用(USB ISP模式下就是作为Device);
REXT引脚需要串联12.1K电阻到地;
VBUSVLD用于作为Device时检查是否接入Host,USB接口上的5V信号通过20k和39k电阻分压后接入该引脚。没有接入Host时此处为0V,接入Host后此处经过分压得到3.3V;

以太网接口

作为Linux而言网络是比较重要的,NUC980有两组 RMII 接口,可以外接PHY芯片实现以太网访问功能,接口引脚说明如下:

RMII0

Pin NameGPIOTypeDescription
RMII0_CRSDVPE.1IRMII0 Carrier Sense/Receive Data input pin
RMII0_MDCPE.9ORMII0 PHY Management Clock output pin
RMII0_MDIOPE.8I/ORMII0 PHY Management Data pin
RMII0_REFCLKPE.4IRMII0 mode clock input pin
RMII0_RXD0PE.3IRMII0 Receive Data bus bit 0
RMII0_RXD1PE.2IRMII0 Receive Data bus bit 1
RMII0_RXERRPE.0IRMII0 Receive Data Error input pin
RMII0_TXD0PE.7ORMII0 Transmit Data bus bit 0
RMII0_TXD1PE.6ORMII0 Transmit Data bus bit 1
RMII0_TXENPE.5ORMII0 Transmit Enable output pin

RMII1

Pin NameGPIOTypeDescription
RMII1_CRSDVPF.1IRMII1 Carrier Sense/Receive Data input pin
RMII1_MDCPF.9ORMII1 PHY Management Clock output pin
RMII1_MDIOPF.8I/ORMII1 PHY Management Data pin
RMII1_REFCLKPF.4IRMII1 mode clock input pin
RMII1_RXD0PF.3IRMII1 Receive Data bus bit 0
RMII1_RXD1PF.2IRMII1 Receive Data bus bit 1
RMII1_RXERRPF.0IRMII1 Receive Data Error input pin
RMII1_TXD0PF.7ORMII1 Transmit Data bus bit 0
RMII1_TXD1PF.6ORMII1 Transmit Data bus bit 1
RMII1_TXENPF.5ORMII1 Transmit Enable output pin

资料索引

NUC980系列应估计是在NUC970的基础上阉割优化而来的,所以资料中有一些名称还是沿用了NUC970。

  • NUC980工业控制物联网系列总页面
    https://www.nuvoton.com.cn/products/microprocessors/arm9-mpus/nuc980-industrial-control-iot-series/
  • NUC980系列开发板
    https://www.nuvoton.com.cn/products/iot-solution/iot-platform/numaker-iiot-nuc980/
    https://www.nuvoton.com.cn/products/iot-solution/iot-platform/numaker-server-nuc980/
    https://www.nuvoton.com.cn/products/iot-solution/iot-platform/numaker-rtu-nuc980/
  • 开发板软件支持包 (BSP)
    BSP包中有烧录工具、驱动和中英文使用开发文档等
    NUC980_Linux-4.4_BSP_v1.03.000(包含代码、文档、工具)
    https://www.nuvoton.com.cn/resource-download.jsp?tp_GUID=SW1820200909165814
    NUC980_Non-OS_BSP_v1.03.000(包含代码、文档、启动程序、工具)
    https://www.nuvoton.com.cn/resource-download.jsp?tp_GUID=SW1820200914164955
  • Linux开发环境
    Linux开发环境VMware虚拟机
    https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1320200406183205
    Linux开发环境VMware虚拟机用户手册
    https://www.nuvoton.com.cn/resource-download.jsp?tp_GUID=UG1320200721114334
  • GitHub OpenNuvoton主页与部分NUC980相关项目
    https://github.com/OpenNuvoton
    https://github.com/OpenNuvoton/NUC970_Buildroot
    https://github.com/OpenNuvoton/NUC970_U-Boot_v2016.11
    https://github.com/OpenNuvoton/NUC980-linux-4.4.y
    https://github.com/OpenNuvoton/NUC980_Linux_Applications
    https://github.com/OpenNuvoton/NUC980_NuWriter_CMD

这篇关于新唐NUC980使用记录:基础说明与资料索引的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412725

相关文章

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st