NanoPi M2A/zh
Contents
1 介绍
- NanoPi M2A是友善电子团队面向创客、嵌入式爱好者、电子艺术家等发烧友群体设计的又一款开源的掌上创客神器。
- NanoPi M2A采用三星四核Cortex -A9架构的S5P4418处理器,与友善此前推出的NanoPi M2相比,不仅完全集成了NanoPi M2的接口,还集成了WiFi和蓝牙,接口和布局完全与NanoPi M3完全相同。NanoPi M2A配备了视频输入/输出接口(DVP Camera/LVDS/HDMI/LCD接口),I2S接口,3.5mm音频输出接口,更是留出了四个USB接口。支持电源管理功能,板载陶瓷天线,带串口调试功能。
- 软件上,NanoPi M2A流畅运行Ubuntu Core with Qt、Android4.4、Android5.1、Debian8.1等系统,内核驱动源码完全开源,并且友善为其提供了丰富的示例教程和程序库。
2 资源特性
- CPU: S5P4418, 动态运行主频400Mhz--1.4GHz
- PMU 电源管理:AXP228,支持软件关机和睡眠唤醒等
- DDR3 RAM: 1GB
- SD: microSD卡槽一个
- 以太网: 10/100/1000M (RTL8211E)
- Wireless:802.11 b/g/n
- Bluetooth:4.0 dual mode
- 天线: Wi-Fi和蓝牙共用, 板载陶瓷天线, 同时提供IPX接口
- 音频:3.5mm耳机座/Via HDMI
- I2S:板载I2S接口,7Pin,2.54mm排针
- 麦克风: 通过3.5mm耳机孔输入
- USB Host: 4 x USB 2.0 Host , 其中两个是标准A型接口, 另外两个是2.54mm排针
- Micro USB: 1 x USB 2.0 Client
- LCD接口: 45pin, 0.5mm间距FPC贴片座,支持全彩TFT LCD (RGB:8-8-8)
- HDMI: HDMI 1.4a, Type A型口,1080P高清显示
- LVDS接口:20Pin,2.0mm排针
- DVP Camera接口: 24pin, 0.5mm间距,FPC贴片竖座
- GPIO扩展接口: 40 Pin,2.54mm排针,兼容NanoPi M1,M2,树莓派等创客板
- 调试串口:4Pin,2.5mm单排针
- 按键:K1(电源按键),Reset
- LED:电源指示灯,系统状态指示灯
- RTC: 支持RTC, 带纽扣电池引线孔
- PCB Size:64x60mm,6层,沉金工艺
- 供电: DC 5V/3A
- OS/Software: u-boot, Android5.1, Debian8, Android4.4, UbuntuCore+Qt
3 接口布局和尺寸
3.1 接口布局
- GPIO管脚定义
Pin# Name Pin# Name 1 SYS_3.3V 2 VDD_5V 3 I2C0_SDA 4 VDD_5V 5 I2C0_SCL 6 DGND 7 GPIOD8/PPM 8 UART3_TXD/GPIOD21 9 DGND 10 UART3_RXD/GPIOD17 11 UART4_TX/GPIOB29 12 GPIOD1/PWM0 13 GPIOB30 14 DGND 15 GPIOB31 16 GPIOC14/PWM2 17 SYS_3.3V 18 GPIOB27 19 SPI0_MOSI/GPIOC31 20 DGND 21 SPI0_MISO/GPIOD0 22 UART4_RX/GPIOB28 23 SPI0_CLK/GPIOC29 24 SPI0_CS/GPIOC30 25 DGND 26 GPIOB26 27 I2C1_SDA 28 I2C1_SCL 29 GPIOC8 30 DGND 31 GPIOC7 32 GPIOC28 33 GPIOC13/PWM1 34 DGND 35 SPI2_MISO/GPIOC11 36 SPI2_CS/GPIOC10 37 AliveGPIO3 38 SPI2_MOSI/GPIOC12 39 DGND 40 SPI2_CLK/GPIOC9
以上的定义跟NanoPi2的有所不同, 这是它们的对照表:40 pins GPIO comparison table
- Debug Port(UART0)
Pin# Name 1 DGND 2 VDD_5V 3 UART_TXD0 4 UART_RXD0
- 7Pin I2S接口定义
Pin# Name 1 DGND 2 VDD_3.3V 3 I2S_BCK1 4 I2S_LRCK1 5 I2S_SDOUT1 6 I2S_SDIN1 7 I2S_MCLK1
- 20Pin LVDS接口定义
Pin# Name Pin# Name 1 SYS_3.3V 2 SYS_3.3V 3 GPIOC16 4 GPIOB18 5 DGND 6 DGND 7 LVDS_D0- 8 LVDS_D0+ 9 LVDS_D1- 10 LVDS_D1+ 11 LVDS_D2- 12 LVDS_D2+ 13 DGND 14 DGND 15 LVDS_CLK- 16 LVDS_CLK+ 17 LVDS_D3- 18 LVDS_D3+ 19 I2C2_SCL 20 I2C2_SDA
- DVP Camera IF 管脚定义
Pin# Name 1, 2 SYS_3.3V 7,9,13,15,24 DGND 3 I2C0_SCL 4 I2C0_SDA 5 GPIOB14 6 GPIOB16 8,10 NC 11 VSYNC 12 HREF 14 PCLK 16-23 Data bit7-0
- RGB LCD IF 管脚定义
Pin# Name Description 1, 2 VDD_5V 5V输出, 可以给LCD模组供电 11,20,29, 37,38,39,40, 45 DGND 参考地, 0电位 3-10 Blue LSB to MSB RGB的蓝色信号 12-19 Green LSB to MSB RGB的绿色信号 21-28 Red LSB to MSB RGB的红色信号 30 GPIOB25 普通GPIO, 用户可控制 31 GPIOC15 一线协议信号, 以实现LCD型号识别, 背光控制和电阻触摸的功能. 系统已占用, 用户不可重新设置. 32 XnRSTOUT Form CPU 系统复位时向外输出低电平 33 VDEN 指示RGB信号有效的信号 34 VSYNC 场信号 35 HSYNC 行信号 36 LCDCLK LCD频率, Pixel frequency 41 I2C2_SCL I2C2的时钟信号, 用来传输电容屏触摸数据 42 I2C2_SDA I2C2的数据信号, 用来传输电容屏触摸数据 43 GPIOC16 电容触摸中断信号, 配合I2C2使用 44 NC 没有任何连接
- 说明
- SYS_3.3V: 3.3V电源输出
- VDD_5V: 5V电源输入/输出。当电压大于MicroUSB时,向板子供电,否则板子从MicroUSB取电。输入范围:4.7~5.6V
- 全部信号引脚均为3.3V电平,输出电流为5mA,可以带动小负荷模块,io都不能带负载
- 更详细的信息请查看原理图:NanoPi-M2A-1604-Schematic.pdf
3.2 机械尺寸
- 详细尺寸:PCB dxf文件
4 快速入门
4.1 准备工作
启动NanoPi M2A前,请先准备好以下硬件
- NanoPi M2A主板
- 大SD卡/: Class10或以上的 8GB SDHC卡
- 一个DC接口的外接电源,要求输出为5V/2A
- 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
- 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
- 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统
4.2 经测试使用的TF卡
制作启动NanoPi M2的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 制作一张带运行系统的SD卡
4.3.1 快速从SD卡启动NanoPi M2A
首先访问此处的下载地址下载需要的固件文件:
- 您需要准备一张4G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
友善团队特意为Smart4418开发板提供了Android 5.1和Android 4.4。Android 4.4是专门为企业用户定制的系统,支持4G模块、Ethernet设置。
固件文件列表: s5p4418-debian-sd4g-YYYYMMDD.img.zip Debian系统固件,自带X Window图形界面 s5p4418-debian-wifiap-sd4g-YYYYMMDD.img.zip Debian系统固件,功能同上,但WiFi默认设置为无线热点 s5p4418-kitkat-sd4g-YYYYMMDD.img.zip Android4.4系统固件 (支持4G LTE) s5p4418-android-sd4g-YYYYMMDD.img.zip Android5.1系统固件 s5p4418-ubuntu-core-qte-sd4g-YYYYMMDD.img.zip 小型的Ubuntu core系统,内含Qt Embedded图形库 烧写工具: win32diskimager.rar Windows平台下的烧写工具,Linux系统可以用dd命令
- 将固件和烧写工具分别解压,在Windows下插入SD卡(限4G及以上的卡),以管理员身份运行 win32diskimager 工具, 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write 按钮烧写即可。
- 当制作完成 SD 卡后,拔出 SD 卡插入 NanoPi M2A 的 BOOT 卡槽,上电启动(注意,这里需要 5V/3A 的供电),你可以看到绿灯常亮以及蓝灯闪烁,这时你已经成功启动 NanoPi M2A。
4.3.2 在Linux Desktop下通过脚本制作
- 1) 将microSD插入Ubuntu的电脑,用以下命令查看你的SD卡设备名
dmesg | tail
当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。
- 2) 下载Linux下的制作脚本
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git cd sd-fuse_nanopi2
- 3) 以下是制作启动Android的SD卡的方法
su ./fusing.sh /dev/sdx
(注:/dev/sdx请替换为实际的SD卡设备文件名)
制作包中未包含Android和Debian的烧写文件,第一次使用时会提示需要下载,输入Y下载,N或10秒未输入则取消。
- 4) 以下是制作启动Debian的SD卡的方法
./fusing.sh /dev/sdx debian
4.3.3 NanoPi M2A 扩展TF卡分区
- Debian/Ubuntu系统在启动的时候,会自动扩展SD卡分区,第一次开机时自动扩展分区和根文件系统。
- Android扩展分区,要在pc上执行下列操作:
sudo umount /dev/sdx? sudo parted /dev/sdx unit % resizepart 4 100 resizepart 7 100 unit MB print sudo resize2fs -f /dev/sdx7
(注:/dev/sdx请替换为实际的SD卡设备文件名)
4.3.4 关于LCD/HDMI分辨率
系统启动时uboot会自动识别LCD,成功则会设置为该LCD的显示分辨率,失败则缺省会设置为HDMI 720P模式。
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。
4.4 在电脑上修改SD卡上的系统
如果你想在运行系统之前,先对系统做一些修改,可以参看本节内容,否则可以跳过本节。
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,通过在以下情况下你需要进行这些操作:
1) 你想更改Kernel Command Line参数,则可以通过sd-fuse_nanopi3/tools目录下的fw_setenv工具来操作。
查看当前的Command Line:
cd sd-fuse_nanopi3/tools ./fw_printenv /dev/sdc | grep bootargs
目前的Android 5.1.1_r6启用了SELinux,缺省模式是enforcing,你可以通过Command Line来修改它,例如:
./fw_setenv /dev/sdc bootargs XXX androidboot.selinux=permissive
即可修改为permissive模式,其中上面的XXX需要替换成原来的bootargs值。
2) 更新内核
新版本的uboot在启动时如果识别到LCD,将读取SD卡boot分区的uImage,否则将读取uImage.hdmi。
对于Android来说是同一个文件,因此直接使用新编译的uImage来替换SD卡boot分区下的文件即可。
对于Debian来说,这2个文件是不相同的,使用新编译的支持LCD的uImage直接替换SD卡boot分区的文件,如果是支持HDMI的内核,则替换uImage.hdmi。
4.5 运行Android或Debian
- 将制作好SD卡插入NanoPi M2A,连接HDMI,按住靠近网口的boot按键,最后接电源(5V 2A)拨动开关,NanoPi M2A会从SD卡启动。你可以看到板上PWR灯常亮,LED1灯闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。
1)要在电视上进行操作,你需要连接USB鼠标和键盘;如果你选购了LCD配件,则可以直接使用LCD上面的触摸屏进行操作。
2)如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对NanoPi M2A进行操作。
- 以下是串口的接法。接上串口,即可调试:
- 如果提示输入密码,Debian的root用户的默认密码是两个字母fa。