NanoPi A64/zh
1 介绍
- NanoPi A64是友善电子团队设计、生产和发行销售的一款高性能掌上创客神器,它采用全志四核 ARM Cortex-A53 架构的A64 处理器,运行UbuntuCore、UbuntuMATE等操作系统。
- NanoPi A64尽管体积非常小,功能却齐全。集成以太网、红外接收、视频/音频输入输出等接口,并且板载AXP803电源管理单元、Wi-Fi模块等。
- NanoPi A64采用microUSB供电,板子留有MIPI-DSI、DVP等接口,并且兼容树莓派GPIO口,和1路专用调试串口。
2 资源特性
- CPU:Allwinner A64 SOC, 四核ARM Cortex-A53, 运行主频648MHz to 1.152GHz, DVFS
- GPU:Mali400MP2,Supports OpenGL ES2.0, OpenVG1.1
- PMU: AXP803, 支持软件关机
- DDR3 RAM:1GB
- 网络:1个千兆以太网 (RTL8211E)
- Wi-Fi: 板载Wi-Fi模块, 支持802.11/b/g/n, 板载芯片天线和IPEX接口
- 音频输入输出:3.5mm耳机座, 包含耳机音频输出和麦克风输入
- 红外:板载红外接收器
- USB Host:两个USB 2.0, A型口
- microSD Slo x1
- microUSB :仅用来供电
- 视频输出: HDMI 1.4 A型口
- MIPI DSI: 30pin 0.5mm间距FPC座子
- DVP Camera接口:24pin,0.5mm间距FPC座
- 调试串口:4Pin,2.54mm排针
- GPIO: 40pin, 2.54mm间距,兼容RasberryPi2的扩展GPIO,含UART, SPI, I2C, PWM, IO等管脚资源
- I2S: 7pin, 2.54mm间距, 独立I2S接口一路
- 按键:一个电源按键
- LED: 一个电源指示LED, 一个状态指示LED
- PCB: 64 x 60mm, 6层板, 沉金工艺
- 供电: DC 5V/2A
- 温度工作范围:零下40摄氏度到80摄氏度
- OS/Software: Ubuntu-Core with QtE, Ubuntu-MATE
3 接口布局和尺寸
3.1 接口布局
- GPIO管脚定义
Pin# Name Pin# Name 1 SYS_3.3V 2 VDD_5V 3 GPIOE15/I2C2_SDA 4 VDD_5V 5 GPIOE14/I2C2_SCL 6 GND 7 GPIOD7 8 GPIOH4/UART3-TX 9 GND 10 GPIOH5/UART3-RX 11 GPIOB0/UART2-TX 12 GPIOL10/PWM_S 13 GPIOL8/I2C_S_SCL 14 GND 15 GPIOL9/I2C_S_SDA 16 GPIOH6/UART3-RTS 17 SYS_3.3V 18 GPIOH7/UART3-CTS 19 GPIOC0/SPI0-MOSI 20 GND 21 GPIOC1/SPI0-MISO 22 GPIOB1/UART2-RX 23 GPIOC2/SPI0-CLK 24 GPIOC3/SPI0-CS 25 GND 26 GPIOH8/SPDIF-OUT 27 GPIOH3/I2C1_SDA 28 GPIOH2/I2C1_SCL 29 GOIOH10 30 GND 31 GOIOH11 32 GPIOD4 33 GPIOD5 34 GND 35 GPIOD3/SPI1-MISO 36 GPIOD0/SPI1-CS 37 GPIOD6 38 GPIOD2/SPI1-MOSI 39 GND 40 GPIOD1/SPI1-CLK
- Debug Port(UART0)
Pin# Name 1 GND 2 VDD_5V 3 UART0-TX 4 UART0-RX
- I2S/PCM 接口定义
Pin# Name 1 GND 2 SYS_3.3V 3 GPIOB5/PCM0-BCLK 4 GPIOB4/PCM0-SYNC 5 GPIOB6/PCM0-DOUT 6 GPIOB7/PCM0-DIN 7 GPIOB3/I2S0-MCLK
- DVP Camera IF 管脚定义
Pin# Name Description 1, 2 SYS_3.3V 3V电源输出给外部摄像头模块 7,9,13,15,24 GND 参考地, 0V 3 CAM_SCL I2C时钟信号 4 CAM_SDA I2C数据信号 5 GPIOE17 普通GPIO, 施加给外部摄像头模块的控制信号 6 GPIOE16 普通GPIO, 施加给外部摄像头模块的控制信号 8 MCLK 提供给外部摄像头模块的时钟信号 10 NC 没有连接 11 VSYNC 外部摄像头模块输出给CPU的行信号 12 HREF/HSYNC 外部摄像头模块输出给CPU的场信号 14 PCLK 外部摄像头模块输出给CPU的像数点信号 16-23 Data bit7-0 数据信号
- MIPI-DSI 管脚定义
Pin# Name Description 1, 2, 3 VDD_5V 5V电源输出给外部供电 4,7,9,11,14,15,18,21,24,27,30 GND 参考地, 0V 5 I2C0_SDA I2C时钟信号 6 I2C0_SCL I2C数据信号 8 GPIOL7 普通GPIO 10 GPIOB2 普通GPIO 12 GPIOL12 普通GPIO 13 AP-RESET# 系统复位输出 16 MIPI-DSI-D3N MIPI DSI数据, 差分信号负 17 MIPI-DSI-D3P MIPI DSI数据, 差分信号正 19 MIPI-DSI-D2N MIPI DSI数据, 差分信号负 20 MIPI-DSI-D2P MIPI DSI数据, 差分信号正 22 MIPI-DSI-D1N MIPI DSI数据, 差分信号负 23 MIPI-DSI-D1P MIPI DSI数据, 差分信号正 25 MIPI-DSI-D0N MIPI DSI数据, 差分信号负 26 MIPI-DSI-D0P MIPI DSI数据, 差分信号正 28 MIPI-DSI-CKN MIPI DSI时钟, 差分信号负 29 MIPI-DSI-CKP MIPI DSI时钟, 差分信号正
- 说明
- SYS_3.3V: 电源输出, 实际输出为3.1V
- VDD_5V: 5V电源输入/输出。输入范围:4.7~5.6V, 可通过MicroUSB接口供电, 也可通过40pin排针或Debug Port上的VDD_5V供电. VDD_5V与MicroUSB的VBUS直接相连.
- 全部信号引脚均为3.3V电平(实际是3.1V, 兼容3.3V),输出电流为5mA,可以带动小负荷模块,io都不能带负载
- 更详细的信息请查看原理图
3.2 机械尺寸
- 详细尺寸:dxf文件
4 快速入门
4.1 准备工作
要开启你的NanoPi A64新玩具,请先准备好以下硬件
- NanoPi A64主板
- microSD卡/TF卡: Class10或以上的 8GB SDHC卡
- 一个microUSB接口的外接电源,要求输出为5V/2A(可使用同规格的手机充电器)
- 一台支持HDMI输入的显示器或者电视
- 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
- 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统
4.2 经测试使用的TF卡
制作启动NanoPi A64的TF卡时,建议Class10或以上的 8GB SDHC卡。以下是经友善之臂测试验证过的高速TF卡:
- SanDisk闪迪 TF 8G Class10 Micro/SD 高速 TF卡:
- SanDisk闪迪 TF128G 至尊高速MicroSDXC TF 128G Class10 48MB/S:
- 川宇 8G手机内存卡 8GTF卡存储卡 C10高速class10 micro SD卡:
4.3 制作一张带运行系统的TF卡
4.3.1 下载系统固件
首先访问下载地址下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):
使用以下固件: nanopi-a64-core-qte-sd4g.img.zip 小型的Ubuntu-core系统,内含Qt Embedded图形库 nanopi-a64-ubuntu-mate-sd4g.img.zip 基于Ubuntu,使用的桌面环境是MATE-desktop 烧写工具: win32diskimager.rar Windows平台下的Ubuntu系统烧写工具,Linux平台下可以用dd命令烧写Ubuntu系统 PhoenixCard_V310.rar Windows平台下的Android系统烧写工具,注意:Android系统固件禁止在Linux平台下用dd命令烧写 HDDLLF.4.40.exe Windows平台下用于格式化TF卡的工具
4.3.2 制作Ubuntu-core系统TF卡
将固件nanopi-a64-core-qte-sd4g.img.zip和烧写工具win32diskimager.rar分别解压,在Windows系统下插入TF卡(限4G及以上的卡),以管理员身份运行win32diskimager工具,
在win32diskimager工具的界面上,选择你的TF卡盘符,选择系统固件,点击Write按钮烧写即可。
当制作完成TF卡后,拔出TF卡插入NanoPi A64的TF卡槽,上电启动(注意,这里需要5V/2A的供电),你可以看到绿灯常亮以及蓝灯闪烁,这时你已经成功启动 NanoPi A64。
5 Ubuntu-core系统的使用
5.1 运行Ubuntu-core
- 将制作好TF卡插入NanoPi A64,连接HDMI,最后连接电源(5V/2A),NanoPi A64会上电自动开机,看到板上的蓝色LED闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。
1)要在电视上进行操作,你需要连接USB鼠标和键盘.
2)如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对NanoPi A64进行操作。
- 以下是串口的接法,接上串口,即可调试。接上串口后你可以选择从串口模块的DC口或者从A64的MicroUSB口进行供电:
- 如果提示输入密码,Ubuntu-core的root和fa用户的默认密码都是两个字母fa。
- 更新软件包:
apt-get update
5.2 扩展TF卡 文件系统
强烈建议做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将大大提升系统的性能,避免空间不足带来的各种繁琐问题。
- 在PC机上扩展TF卡的文件系统 rootfs 分区:
sudo umount /dev/sdx? sudo parted /dev/sdx unit % resizepart 2 100 unit MB print sudo resize2fs -f /dev/sdx2
/dev/sdx请替换为实际的TF卡设备文件名。
5.3 通过SSH登录
NanoPi A64在加电开机前如果已正确的连接网线,则系统启动时会自动获取IP地址,如果没有连接网线、没有DHCP服务或是其它网络问题,则会导致获取IP地址失败,同时系统启动会因此等待约15~60秒的时间。 如果你不想连接HDMI或者串口模块,可以通过SSH协议登录A64。假设通过路由器查看到板子的IP地址为192.168.1.230,在PC机上执行以下命令登录板子:
ssh root@192.168.1.230
密码为fa。
5.4 HDMI输出声音
Ubuntu-core系统默认从3.5mm耳机座输出声音,想从HDMI输出需要修改文件系统上的配置文件/etc/asound.conf如下:
pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 }
card 0代表3.5mm耳机孔,card 1代表HDMI音频。设置完成后需要重启系统才能生效。
5.5 连接WiFi
用vi或在图形界面下用gedit编辑文件 /etc/wpa_supplicant/wpa_supplicant.conf, 在文件末尾填入路由器信息如下所示:
network={ ssid="YourWiFiESSID" psk="YourWiFiPassword" }
其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码。
保存退出后,执行以下命令即可连接WiFi:
ifdown wlan0 ifup wlan0
如果你的WiFi密码中有特殊字符,或者你不希望明文存放密码,你可以使用wpa_passphrase命令为WiFi密码生成一个密钥(psk),用密钥来代替密码 ,在命令行下,可输入以下命令生成密钥:
wpa_passphrase YourWiFiESSID
在提示输入密码时,输入你的WiFi密码,再打开 /etc/wpa_supplicant/wpa_supplicant.conf 文件你会发现密钥已经被更新,你可以删除明文的密码了。
5.6 查看CPU工作温度
获取CPU核心的当前温度值、运行频率等信息:
cpu_freq
6 如何编译BSP
6.1 准备工作
访问此处下载地址的sources目录,下载源码nanopi-a64-bsp。
使用7-Zip工具解压后得到两个目录:lichee和android,也可以从github上克隆lichee源码:
git clone https://github.com/friendlyarm/a64_lichee.git lichee
注:lichee是全志为其CPU的板级支持包所起的项目名称,里面包含了U-boot,Linux等源码和众多的编译脚本。
编译全志A64的BSP源码包必须使用64bit的Linux PC系统,并安装下列软件包,下列操作均基于Ubuntu-14.04 LTS-64bit:
sudo apt-get install gawk git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386
6.2 下载并安装编译器
访问此处下载地址的toolchain目录,下载压缩包gcc-linaro-arm.tar.xz和gcc-linaro-aarch64.tar.xz。
其中gcc-linaro-arm.tar.xz用于编译U-boot,gcc-linaro-aarch64.tar.xz用于编译Linux内核。下载完成后,将它们拷贝到源码nanopi-a64-bsp/brandy/toolchain/目录下即可。
后面编译U-boot或者Linux内核时,编译脚本会自动解压并使用这两个编译器进行编译。
6.3 编译U-boot
U-boot的源码目录为lichee/brandy/u-boot-2014.07,在brandy目录下有一个build.sh脚本可用于编译U-boot:
cd lichee/brandy ./build.sh -p sun50iw1p1
6.4 编译Linux内核
Linux内核的源码目录为lichee/linux-3.10,在lichee目录下有一个build.sh脚本可用于编译Linux内核:
cd lichee echo -e "0\n2\n0\n1\n" | ./build.sh config && ./build.sh
生成的boot.img和内核驱动模块位于linux-3.10/output/目录下。
6.5 打包系统组件
cd lichee ./build.sh pack
该命令会将所有编译生成的可执行文件(包括U-boot、Linux内核)和系统配置文件拷贝到lichee/tools/pack/out/目录以便进行统一管理。
注: 只有运行该命令之后,才能生成能正常运行的U-boot文件。
6.6 更新TF卡
下列命令可用于更新TF卡上的U-boot:
cd fa_tools ./fuse_uboot.sh /dev/sdx
/dev/sdx请替换为实际的TF卡设备文件名。
boot.img和内核模块均位于linux-3.10/output目录下,将boot.img拷贝到TF卡的boot分区的根目录即可更新内核。
6.7 清理lichee源码
./build.sh -p sun50iw1p1 -k linux-3.10 -b nanopi_a64 -m clean
7 更多OS
7.1 Ubuntu-MATE
Ubuntu-MATE基于Ubuntu系统,使用的桌面环境是MATE-desktop,界面简洁易用,需配合HDMI使用,可通过ssh登录。
仅提供给进阶爱好者交流使用,不对该系统提供专业技术支持。
- 下载系统固件nanopi-a64-ubuntu-mate-sd4g.img.zip(officail-ROMs目录):点击下载
- 将文件解压后得到系统固件,在Windows下使用友善官方提供 win32diskimager 工具烧写Ubuntu-MATE即可。
- 烧写完成后,将TF卡插入NanoPi A64,上电即可体验Ubuntu-MATE。
- 登录账号:root或fa ; 登录密码:fa
8 3D 打印外壳
9 资源链接
9.1 手册原理图及开发资料
- 原理图 NanoPi-A64-1610-Schematic.pdf
- 尺寸图 dxf文件
- A64芯片手册
10 更新日志
10.1 2017-04-18
Ubuntu-Core系统更新如下:
- 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
- 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
- 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;