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

Posted Naisu Xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新唐NUC980使用记录:基础说明与资料索引相关的知识,希望对你有一定的参考价值。

文章目录

前言

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

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

  1. 数据手册、参考手册、硬件参考设计、BSP包、开发板资料等完全开放;
    这是选择一颗芯片最核心的需求,没有这个就得花很多时间趟坑了;
  2. 内置DDR & 焊接方便;
    比如现在最常见的NUC980系列的NUC980DK61YC芯片,内置64MB DDR1内存、采用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的多了没几个,可用外设两者几乎一样。

目前官网上可以看到新的有NUC980DK63YC等型号的芯片,猜测可能是内置的DDR变为DDR3了,目前没有看到更多信息。

上电设置

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_SS1(未用)PD.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使用记录:基础说明与资料索引的主要内容,如果未能解决你的问题,请参考以下文章

新唐NUC980使用记录:在驱动程序中使用GPIO

新唐NUC980使用记录:在用户应用中使用GPIO

新唐NUC980使用记录:向内核添加USB无线网卡驱动(基于RTL8188EUS)

新唐NUC980使用记录:U-Boot & Linux 编译与烧录(基于SD1位置SD卡)

新唐NUC980使用记录:使用wpa_supplicant访问无线网络

新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)