新唐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

相关文章

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、