NanoPi

From FriendlyELEC WiKi
Revision as of 07:26, 21 July 2015 by Jensen (Talk | contribs) (从源代码开始编译制作Rootfs)

Jump to: navigation, search

查看中文

1 介绍

NanoPi

NanoPi是友善之臂专门为嵌入式Linux爱好者、创客、玩家设计的一款低功耗ARM主控板,它的尺寸只有Raspberry Pi(RPi)的一半大小,并且兼容RPi的GPIO接口,NanoPi集成无线WiFi和蓝牙4.0模块,并带有并行摄像头接口,和全彩LCD接口,可从TF卡运行Linux/Debian系统,非常适合物联网、无线智能小车、机器人、图像识别、人机界面等应用开发。

2 资源特性

  • CPU: Samsung S3C2451, 运行主频400Mhz
  • RAM: 64M DDR2
  • 集成SDIO WiFi蓝牙模块
  • USB Type A x1
  • 调试串口 x1
  • microSD Slot x1
  • microUSB x1: 支持供电和数据传输,可模拟为串口和以太网
  • LCD接口: 0.5mm间距贴片FPC座,支持全彩LCD (RGB:8-8-8)
  • DVP Camera接口:0.5mm间距竖直贴片FPC座,包含ITU-R BT 601/656 8-bit,I2C和IO
  • GPIO1: 2.54mm间距,40pin, 兼容RPi的GPIO,含UART, SPI, I2C, IO等管脚资源
  • GPIO2: 2.54mm间距, 12pin, 含I2S, I2C, UART等管脚资源
  • PCB 尺寸: 75 x 30 mm
  • 供电: DC 5V
  • 软件支持: u-boot, Linux-4.1+Qt-4.8.5, Debian

3 接口布局和尺寸

3.1 接口布局

NanoPi接口布局
  • GPIO1 管脚定义
NanoPi GPIO Header
  • GPIO2 管脚定义
Pin# Name Pin# Name
1 VDD_5V 2 VDD_SYS_3.3V
3 TXD2 4 RXD2
5 SDA0 6 SCL0
7 IISSDO0 8 IISSDI0
9 IISSCLK0 10 IISLRCK0
11 IISCDCLK0 12 DGND
  • Debug Port CON1(UART0)
Pin# Name
1 DGND
2 VDD_5V
3 TXD0
4 RXD0
  • DVP Camera IF 管脚定义
Pin# Name
1, 2 VDD_SYS_3.3V
7,9,13,15,24 DGND
3 SCL0
4 SDA0
5 GPH13
6 GPJ12
8 XCLK
10 NC
11 VSYNC
12 HREF
14 PCLK
16-23 Data bit7-0
  • RGB LCD IF 管脚定义
Pin# Name
1, 2 VDD_5V
11,20,29 DGND
3-10 Blue LSB to MSB
12-19 Green LSB to MSB
21-28 Red LSB to MSB
30 GPG12
31 GPG2
32 XnRSTOUT Form CPU
33 VDEN
34 VSYNC
35 HSYNC
36 LCDCLK
37,38,39,40 XM,XP,YM,YP
说明
  1. VDD_SYS_3.3V: 3.3V电源输出
  2. VDD_5V: 5V电源输入/输出。当电压大于MicroUSB时,向板子供电,否则板子从MicroUSB取电。输入范围:4.7~5.6V。
  3. 更详细的信息请查看原理图:NanoPi-1507-Schematic.pdf

3.2 机械尺寸

NanoPi 机械尺寸

需要更详细的尺寸请下载: NanoPi-1507-Dimesions(dxf).zip

4 快速入门

4.1 准备工作

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

  • NanoPi主板
  • microSD卡/TF卡: 最小系统需要15M,卡的容量您看着办
  • microUSB线
  • 一台运行Windows7/Linux的电脑

4.2 下载并烧写Linux系统镜像文件

  • 下载地址
下载系统镜像文件:
下载烧写工具::

4.3 运行系统

把制作好的microSD卡插入NanoPi,使用microUSB线连上电源,稍等片刻,看到板上的蓝色LED开始闪烁,这说明系统已经开始正常运行了

4.4 通过microUSB登陆NanoPi

4.5 配置使用WiFi

4.6 配置使用蓝牙

5 如何制作自己的microSD卡烧写镜像文件

5.1 编译U-Boot

5.1.1 下载源代码

git clone https://github.com/friendlyarm/uboot_nanopi.git

下载完成后,u-boot的缺省分支是nanopi,在开始编译前,请检查当前分支是否为nanopi,如果不是则需要先checkout。

cd uboot_nanopi
git checkout nanopi

5.1.2 配置并编译u-boot

cd uboot_nanopi
make nanopi_config
make

5.1.3 烧写u-boot 到SD卡

编译成功结束后您将获得u-boot.bin, 如果想马上就测试u-boot,可使用脚本fusing.sh 烧写新的u-boot 到SD 卡。
假设您的 SD 卡对应设备名是/dev/sdd,则命令如下:

./fusing.sh /dev/sdd

注意:以上操作会破坏SD卡的数据,请先进行备份。

5.2 编译Linux kernel

5.2.1 下载内核源代码

git clone https://github.com/friendlyarm/linux-4.x.y.git

适应于NanoPi的分支是nanopi-v4.1.y,在开始编译前,请检查当前分支是否正确,如果不是则需要先checkout。

cd linux-4.x.y
git checkout nanopi-v4.1.y

5.2.2 配置并编译内核

cd linux-4.x.y
make nanopi_defconfig
make

如果您的PC是多核的CPU,可以make的参数"-j, --jobs" 来加快编译,例如:

make -j8

编译成功结束后,新生成内核烧写文件为 arch/arm/boot/zImage 。

5.3 编译制作Rootfs

5.3.1 下载源代码

git clone https://github.com/friendlyarm/rootfs_nanopi.git

适应于NanoPi的分支是nanopi,在开始编译前,请检查当前分支是否正确,如果不是则需要先checkout。

cd rootfs_nanopi
git checkout nanopi

5.3.2 编译Rootfs

cd rootfs_nanopi
make && make install

如果您的PC是多核的CPU,可以make的参数"-j, --jobs" 来加快编译,也可定义alias,例如:

make -j8 && make -j8 install
alias make='make -j8'

编译成功结束后,将看到以下信息,重点是编译好的rootfs 存放位置。

RootFS (core) successfully installed to:
   /tmp/FriendlyARM/nanopi/rootfs
 
Copyright 2015 FriendlyARM (http://www.arm9.net/)

如果没有看到以上信息,则说明编译失败了,请检查编译时显示的信息以定位是编译哪部分时出错了,同时还请检查PC的开发环境。
编译生成的rootfs中的可执行程序和库是包含调试用的符号信息,可去除这些符号信息来减小rootfs的体积。

make strip

5.3.3 创建压缩包

cd /tmp/FriendlyARM/nanopi
tar czvf rootfs.tgz rootfs/

5.4 制作microSD卡镜像文件

6 扩展连接

6.1 连接使用摄像头模块

6.2 连接使用TFT LCD

6.3 连接使用Matrix入门DIY套件

7 玩转NanoPi

7.1 制作一台4.3英寸小电脑

7.2 制作无线智能小车

8 资源链接