Difference between revisions of "NanoPi A64/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(Created page with "English")
 
(下载系统固件)
 
(52 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[NanoPi A64|English]]
 
[[NanoPi A64|English]]
 +
<br>
 +
<!--
 +
<span style="color:#ff0000"> 此页面目前仍处于编辑状态中,请稍后查看...<br></span>
 +
-->
 +
==介绍==
 +
[[File:NanoPi A64-1.jpg|thumb|frameless|300px|概览]]
 +
[[File:NanoPi A64-2.jpg|thumb|frameless|300px|正面]]
 +
[[File:NanoPi A64-3.jpg|thumb|frameless|300px|背面]]
 +
[[File:NanoPi A64-4.jpg|thumb|frameless|300px|外壳]]
 +
* NanoPi A64是友善电子团队设计、生产和发行销售的一款高性能掌上创客神器,它采用全志四核 ARM Cortex-A53 架构的A64 处理器,运行UbuntuCore、UbuntuMATE等操作系统。
 +
* NanoPi A64尽管体积非常小,功能却齐全。集成以太网、红外接收、视频/音频输入输出等接口,并且板载AXP803电源管理单元、Wi-Fi模块等。
 +
* NanoPi A64采用microUSB供电,板子留有MIPI-DSI、DVP等接口,并且兼容树莓派GPIO口,和1路专用调试串口。
 +
 +
==资源特性==
 +
* 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
 +
 +
==接口布局和尺寸==
 +
===接口布局===
 +
[[File:NanoPi-A64-1602-if01.png |thumb|300px|NanoPi A64接口布局]]
 +
 +
* '''GPIO管脚定义'''
 +
::{| class="wikitable"
 +
|-
 +
|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)'''
 +
::{| class="wikitable"
 +
|-
 +
|Pin# || Name     
 +
|-
 +
|1    || GND   
 +
|-
 +
|2    || VDD_5V   
 +
|-
 +
|3    || UART0-TX
 +
|-
 +
|4    || UART0-RX
 +
|}
 +
 +
* '''I2S/PCM 接口定义'''
 +
::{| class="wikitable"
 +
|-
 +
|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 管脚定义'''
 +
::{| class="wikitable"
 +
|-
 +
|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 管脚定义'''
 +
::{| class="wikitable"
 +
|-
 +
|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都不能带负载
 +
::#更详细的信息请查看[http://wiki.friendlyarm.com/wiki/images/c/c8/NanoPi-A64-1610-Schematic.pdf 原理图]
 +
 +
===机械尺寸===
 +
[[File:NanoPi-A64-1610-Dimensions.png|frameless|500px|]]
 +
 +
::详细尺寸:[http://wiki.friendlyarm.com/wiki/images/4/46/NanoPi-A64-1610-Dimensions%28dxf%29.zip dxf文件]
 +
 +
==快速入门==
 +
===准备工作===
 +
要开启你的NanoPi A64新玩具,请先准备好以下硬件
 +
* NanoPi A64主板
 +
* microSD卡/TF卡: Class10或以上的 8GB SDHC卡
 +
* 一个microUSB接口的外接电源,要求输出为5V/2A(可使用同规格的手机充电器)
 +
* 一台支持HDMI输入的显示器或者电视
 +
* 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
 +
* 一台电脑,需要联网,建议使用Ubuntu 16.04 64位系统
 +
===经测试使用的TF卡===
 +
制作启动NanoPi A64的TF卡时,建议Class10或以上的 8GB SDHC卡。以下是经友善之臂测试验证过的高速TF卡:
 +
*SanDisk闪迪 TF 8G Class10 Micro/SD 高速 TF卡:
 +
[[File:SanDisk MicroSD.png|frameless|100px|SanDisk MicroSD 8G]]
 +
*SanDisk闪迪 TF128G 至尊高速MicroSDXC TF 128G Class10 48MB/S:
 +
[[File:SanDisk MicroSD-01.png|frameless|100px|SanDisk MicroSD 128G]]
 +
*川宇 8G手机内存卡 8GTF卡存储卡 C10高速class10 micro SD卡:
 +
[[File:SanDisk MicroSD-02.png|frameless|100px|chuanyu MicroSD 8G]]
 +
 +
===制作一张带运行系统的TF卡===
 +
====下载系统固件====
 +
首先访问[http://dl.friendlyarm.com/nanopia64 下载地址]下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):<br />
 +
 +
::{| class="wikitable"
 +
|-
 +
|colspan=2|使用以下固件:
 +
|-
 +
|nanopi-a64_friendlycore-xenial_3.10.65_YYYYMMDD.img.zip || 小型的Ubuntu-core系统 (版本16.04),内含Qt Embedded图形库               
 +
|-
 +
|nanopi-a64-ubuntu-mate-sd4g.img.zip      || 基于Ubuntu,使用的桌面环境是MATE-desktop             
 +
|-
 +
|colspan=2|烧写工具: 
 +
|-
 +
|win32diskimager.rar || Windows平台下的Ubuntu系统烧写工具,Linux平台下可以用dd命令烧写Ubuntu系统
 +
|-
 +
|PhoenixCard_V310.rar || Windows平台下的Android系统烧写工具,注意:Android系统固件禁止在Linux平台下用dd命令烧写
 +
|-
 +
|HDDLLF.4.40.exe || Windows平台下用于格式化TF卡的工具
 +
|-
 +
|}
 +
 +
====制作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。<br />
 +
 +
<!--
 +
====制作Android系统TF卡====
 +
* 以管理员权限运行HDDLLF.4.40软件,并且格式化SD卡,格式化后把卡从电脑拔出来,再把卡插入电脑,使用Windows自带的格式化程序把SD卡格式化成FAT32格式,格式化后把卡拔出来;
 +
* 将固件nanopi-a64-android.img.zip和烧写工具PhoenixCard_V310.rar分别解压,在Windows下插入TF卡(限4G及以上的卡)。
 +
以管理员身份运行PhoenixCard, 在PhoenixCard的界面上,选择你的TF卡盘符,镜像文件选择为Android系统固件,烧写模式选择卡启动,点击 烧录 按钮烧写即可。
 +
* 当制作完成TF卡后,拔出TF卡插入NanoPi A64的BOOT卡槽,上电启动(注意,这里需要5V/2A的供电),你可以看到绿灯常亮以及蓝灯闪烁,这时你已经成功启动 NanoPi A64。<br />
 +
注:每次烧写Android系统时,必须先格式化TF卡。
 +
-->
 +
==Ubuntu-core系统的使用==
 +
===运行Ubuntu-core===
 +
* 将制作好TF卡插入NanoPi A64,连接HDMI,最后连接电源(5V/2A),NanoPi A64会上电自动开机,看到板上的蓝色LED闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。<br />
 +
1)要在电视上进行操作,你需要连接USB鼠标和键盘.<br />
 +
2)如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对NanoPi A64进行操作。<br />
 +
* 以下是串口的接法,接上串口,即可调试。接上串口后你可以选择从串口模块的DC口或者从A64的MicroUSB口进行供电:
 +
[[File:PSU-ONECOM-A64.jpg|frameless|400px|PSU-ONECOM-A64]]
 +
* 如果提示输入密码,Ubuntu-core的root和fa用户的默认密码都是两个字母fa。
 +
* 更新软件包:
 +
<syntaxhighlight lang="bash">
 +
apt-get update
 +
</syntaxhighlight>
 +
 +
===扩展TF卡 文件系统===
 +
强烈建议做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将大大提升系统的性能,避免空间不足带来的各种繁琐问题。<br>
 +
* 在PC机上扩展TF卡的文件系统 rootfs 分区:
 +
<syntaxhighlight lang="bash">
 +
sudo umount /dev/sdx?
 +
sudo parted /dev/sdx unit % resizepart 2 100 unit MB print
 +
sudo resize2fs -f /dev/sdx2
 +
</syntaxhighlight>
 +
/dev/sdx请替换为实际的TF卡设备文件名。<br>
 +
 +
===通过SSH登录===
 +
NanoPi A64在加电开机前如果已正确的连接网线,则系统启动时会自动获取IP地址,如果没有连接网线、没有DHCP服务或是其它网络问题,则会导致获取IP地址失败,同时系统启动会因此等待约15~60秒的时间。
 +
如果你不想连接HDMI或者串口模块,可以通过SSH协议登录A64。假设通过路由器查看到板子的IP地址为192.168.1.230,在PC机上执行以下命令登录板子:
 +
<syntaxhighlight lang="bash">
 +
ssh root@192.168.1.230
 +
</syntaxhighlight>
 +
密码为fa。
 +
 +
===HDMI输出声音===
 +
Ubuntu-core系统默认从3.5mm耳机座输出声音,想从HDMI输出需要修改文件系统上的配置文件/etc/asound.conf如下:
 +
<syntaxhighlight lang="bash">
 +
pcm.!default {
 +
    type hw
 +
    card 1
 +
    device 0
 +
}
 +
 +
ctl.!default {
 +
    type hw
 +
    card 1
 +
}
 +
</syntaxhighlight>
 +
card 0代表3.5mm耳机孔,card 1代表HDMI音频。设置完成后需要重启系统才能生效。
 +
 +
===连接WiFi===
 +
用vi或在图形界面下用gedit编辑文件 /etc/wpa_supplicant/wpa_supplicant.conf, 在文件末尾填入路由器信息如下所示:
 +
<syntaxhighlight lang="bash">
 +
network={
 +
        ssid="YourWiFiESSID"
 +
        psk="YourWiFiPassword"
 +
}
 +
</syntaxhighlight>
 +
其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码。<br/>
 +
保存退出后,执行以下命令即可连接WiFi:
 +
<syntaxhighlight lang="bash">
 +
ifdown wlan0
 +
ifup wlan0
 +
</syntaxhighlight>
 +
如果你的WiFi密码中有特殊字符,或者你不希望明文存放密码,你可以使用wpa_passphrase命令为WiFi密码生成一个密钥(psk),用密钥来代替密码 ,在命令行下,可输入以下命令生成密钥:
 +
<syntaxhighlight lang="bash">
 +
wpa_passphrase YourWiFiESSID
 +
</syntaxhighlight>
 +
在提示输入密码时,输入你的WiFi密码,再打开 /etc/wpa_supplicant/wpa_supplicant.conf 文件你会发现密钥已经被更新,你可以删除明文的密码了。
 +
 +
===查看CPU工作温度===
 +
获取CPU核心的当前温度值、运行频率等信息:
 +
<syntaxhighlight lang="bash">
 +
cpu_freq
 +
</syntaxhighlight>
 +
 +
==如何编译BSP==
 +
===准备工作===
 +
访问此处[https://pan.baidu.com/s/1c2kkWpi 下载地址]的sources目录,下载源码nanopi-a64-bsp。<br>
 +
使用7-Zip工具解压后得到两个目录:lichee和android,也可以从github上克隆lichee源码:
 +
<syntaxhighlight lang="bash">
 +
git clone https://github.com/friendlyarm/a64_lichee.git lichee
 +
</syntaxhighlight>
 +
注:lichee是全志为其CPU的板级支持包所起的项目名称,里面包含了U-boot,Linux等源码和众多的编译脚本。
 +
 +
编译全志A64的BSP源码包必须使用64bit的Linux PC系统,并安装下列软件包,下列操作均基于Ubuntu-14.04 LTS-64bit:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
 +
===下载并安装编译器===
 +
访问此处[hhttp://dl.friendlyarm.com/nanopia64 下载地址]的toolchain目录,下载压缩包gcc-linaro-arm.tar.xz和gcc-linaro-aarch64.tar.xz。<br>
 +
其中gcc-linaro-arm.tar.xz用于编译U-boot,gcc-linaro-aarch64.tar.xz用于编译Linux内核。下载完成后,将它们拷贝到源码nanopi-a64-bsp/brandy/toolchain/目录下即可。
 +
后面编译U-boot或者Linux内核时,编译脚本会自动解压并使用这两个编译器进行编译。
 +
 +
===编译U-boot===
 +
U-boot的源码目录为lichee/brandy/u-boot-2014.07,在brandy目录下有一个build.sh脚本可用于编译U-boot:
 +
<syntaxhighlight lang="bash">
 +
cd lichee/brandy
 +
./build.sh -p sun50iw1p1
 +
</syntaxhighlight>
 +
 +
===编译Linux内核===
 +
Linux内核的源码目录为lichee/linux-3.10,在lichee目录下有一个build.sh脚本可用于编译Linux内核:
 +
<syntaxhighlight lang="bash">
 +
cd lichee
 +
echo -e "0\n2\n0\n1\n" | ./build.sh config && ./build.sh
 +
</syntaxhighlight>
 +
生成的boot.img和内核驱动模块位于linux-3.10/output/目录下。
 +
 +
===打包系统组件===
 +
<syntaxhighlight lang="bash">
 +
cd lichee
 +
./build.sh pack
 +
</syntaxhighlight>
 +
该命令会将所有编译生成的可执行文件(包括U-boot、Linux内核)和系统配置文件拷贝到lichee/tools/pack/out/目录以便进行统一管理。<br>
 +
注: 只有运行该命令之后,才能生成能正常运行的U-boot文件。
 +
 +
===更新TF卡===
 +
下列命令可用于更新TF卡上的U-boot:
 +
<syntaxhighlight lang="bash">
 +
cd fa_tools
 +
./fuse_uboot.sh /dev/sdx
 +
</syntaxhighlight>
 +
/dev/sdx请替换为实际的TF卡设备文件名。<br>
 +
boot.img和内核模块均位于linux-3.10/output目录下,将boot.img拷贝到TF卡的boot分区的根目录即可更新内核。
 +
 +
===清理lichee源码===
 +
<syntaxhighlight lang="bash">
 +
./build.sh -p sun50iw1p1 -k linux-3.10 -b nanopi_a64 -m clean
 +
</syntaxhighlight>
 +
 +
==更多OS==
 +
===Ubuntu-MATE===
 +
Ubuntu-MATE基于Ubuntu系统,使用的桌面环境是MATE-desktop,界面简洁易用,需配合HDMI使用,可通过ssh登录。<br>
 +
仅提供给进阶爱好者交流使用,不对该系统提供专业技术支持。
 +
* 下载系统固件nanopi-a64-ubuntu-mate-sd4g.img.zip(officail-ROMs目录):[http://dl.friendlyarm.com/nanopia64 点击下载]
 +
* 将文件解压后得到系统固件,在Windows下使用友善官方提供 win32diskimager 工具烧写Ubuntu-MATE即可。
 +
* 烧写完成后,将TF卡插入NanoPi A64,上电即可体验Ubuntu-MATE。
 +
* 登录账号:root或fa ; 登录密码:fa
 +
[[File:MATE-desktop.png|frameless|600px|MATE-desktop]]
 +
 +
==3D 打印外壳==
 +
[[File:NanoPi A64 3D housing.jpg|frameless|300px|NanoPi A64 3D printed housing]] <br>
 +
[http://www.thingiverse.com/thing:1998961 3D打印外壳下载链接]
 +
 +
==资源链接==
 +
===手册原理图及开发资料===
 +
* 原理图 [http://wiki.friendlyarm.com/wiki/images/c/c8/NanoPi-A64-1610-Schematic.pdf NanoPi-A64-1610-Schematic.pdf]
 +
* 尺寸图 [http://wiki.friendlyarm.com/wiki/images/4/46/NanoPi-A64-1610-Dimensions%28dxf%29.zip dxf文件]
 +
* A64芯片手册
 +
::[http://wiki.friendlyarm.com/wiki/images/d/d9/Allwinner_A64_Datasheet_V1.1.pdf  Allwinner_A64_Datasheet_V1.1.pdf]
 +
::[http://wiki.friendlyarm.com/wiki/images/b/b4/Allwinner_A64_User_Manual_V1.1.pdf Allwinner_A64_User_Manual_V1.1.pdf]
 +
 +
==更新日志==
 +
 +
===2017-04-18===
 +
 +
Ubuntu-Core系统更新如下:
 +
* 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
 +
* 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
 +
* 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;

Latest revision as of 07:00, 7 February 2018

English

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 接口布局

NanoPi A64接口布局
  • 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时钟, 差分信号正
说明
  1. SYS_3.3V: 电源输出, 实际输出为3.1V
  2. VDD_5V: 5V电源输入/输出。输入范围:4.7~5.6V, 可通过MicroUSB接口供电, 也可通过40pin排针或Debug Port上的VDD_5V供电. VDD_5V与MicroUSB的VBUS直接相连.
  3. 全部信号引脚均为3.3V电平(实际是3.1V, 兼容3.3V),输出电流为5mA,可以带动小负荷模块,io都不能带负载
  4. 更详细的信息请查看原理图

3.2 机械尺寸

NanoPi-A64-1610-Dimensions.png

详细尺寸:dxf文件

4 快速入门

4.1 准备工作

要开启你的NanoPi A64新玩具,请先准备好以下硬件

  • NanoPi A64主板
  • microSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • 一个microUSB接口的外接电源,要求输出为5V/2A(可使用同规格的手机充电器)
  • 一台支持HDMI输入的显示器或者电视
  • 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
  • 一台电脑,需要联网,建议使用Ubuntu 16.04 64位系统

4.2 经测试使用的TF卡

制作启动NanoPi A64的TF卡时,建议Class10或以上的 8GB SDHC卡。以下是经友善之臂测试验证过的高速TF卡:

  • SanDisk闪迪 TF 8G Class10 Micro/SD 高速 TF卡:

SanDisk MicroSD 8G

  • SanDisk闪迪 TF128G 至尊高速MicroSDXC TF 128G Class10 48MB/S:

SanDisk MicroSD 128G

  • 川宇 8G手机内存卡 8GTF卡存储卡 C10高速class10 micro SD卡:

chuanyu MicroSD 8G

4.3 制作一张带运行系统的TF卡

4.3.1 下载系统固件

首先访问下载地址下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):

使用以下固件:
nanopi-a64_friendlycore-xenial_3.10.65_YYYYMMDD.img.zip 小型的Ubuntu-core系统 (版本16.04),内含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口进行供电:

PSU-ONECOM-A64

  • 如果提示输入密码,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 下载并安装编译器

访问此处[hhttp://dl.friendlyarm.com/nanopia64 下载地址]的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

MATE-desktop

8 3D 打印外壳

NanoPi A64 3D printed housing
3D打印外壳下载链接

9 资源链接

9.1 手册原理图及开发资料

Allwinner_A64_Datasheet_V1.1.pdf
Allwinner_A64_User_Manual_V1.1.pdf

10 更新日志

10.1 2017-04-18

Ubuntu-Core系统更新如下:

  • 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
  • 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
  • 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;