新唐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中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/