INNOSTICK6/zh

From eLinux.org
Jump to: navigation, search
INNOSTICK6 Computer Board 1
INNOSTICK6 Computer Board 2

Innostick 6是基于NXP公司ARM Cortx-A7系列最新处理器i.MX 6ULL的单板计算机,由纳行电子设计,生产和销售。

Innostick 6集易用性、便携性和可扩展性于一体,在一块80mm x 42mm的六层PCB板上,集成了DDR3,eMMC存储器以及WiFi/BT模块,同时还引出LCD显示接口,摄像头接口,USB Host以及USB OTG接口。其余接口均通过2.54mm插座引出,供用户扩展使用。

硬件

硬件特性

CPU

NXP/Freescale ARM Cortex-A7 i.MX6ULL, 主频900MHz

RAM

512MB DDR3L

Storage

16GB/32GB eMMC

通讯接口

  • 1 x WIFI 802.11 b/g/n and Bluetooth 4.0 module(AP6212)
  • 1 x USB 2.0 Host(Type A)
  • 1 x USB 2.0 OTG(Micro-USB)

LCD接口

24-Bit LCD 带4线电阻触摸屏输入

摄像头接口

8-Bit CSI Parallel input

其他资源

  • 分立式DC-DC转换器
  • 独立复位电路,带复位按钮
  • 1 x 电源选择跳线
  • 1 x Boot选择跳线
  • 1 x 用户LED

扩展接口

50Pin扩展口P5

  • ECSPI3
  • I2C1/3/4
  • UART1/2/4
  • FLEXCAN1/2
  • ADC IN5/6/7/8/9
  • PWM1/2/4/5/6/7
  • QSPI
  • SAI2
  • SPDIF
  • EPIT1/2
  • GPT1/2
  • WDOG1
  • CCM

16Pin扩展口P6

  • ENET2
  • ECSPI4
  • I2C3/4
  • UART6/7/8
  • PWM5/6/7

*注:由于i.MX6ULL管脚复用的关系,列表中的功能无法同时全部得到。具体请参看INNOSTICK 6硬件手册

外形尺寸

80 x 42(mm)

软件支持

  • Yocto Morty with X11
  • Yocto Morty with Qtopia 5.6
  • Debian Stretch

功能框图

INNOSTICK6 Block Diagram

扩展接口P6

电源域

i.MX6ULL Alt5 Mode*

信号名称

(Ball Name)

Pin#

信号名称

(Ball Name)

i.MX6ULL Alt5 Mode*

电源域

DC 3.3V 对外输出

VDD_3V3

1

2

ENET1_TX_CLK

GPIO2_IO06

VDD_3V3

VDD_3V3

GPIO2_IO03

ENET1_TX_DATA0

3

4

ENET1_TX_DATA1

GPIO2_IO04

VDD_3V3

VDD_3V3

GPIO2_IO05

ENET1_TX_EN

5

6

GND

VDD_3V3

GPIO2_IO11

ENET2_TX_DATA0

7

8

ENET2_TX_DATA1

GPIO2_IO12

VDD_3V3

VDD_3V3

GPIO2_IO13

ENET2_TX_EN

9

10

ENET2_TX_CLK

GPIO2_IO14

VDD_3V3

GND

11

12

GND

VDD_3V3

GPIO2_IO10

ENET2_RX_EN

13

14

ENET2_RX_DATA1

GPIO2_IO09

VDD_3V3

VDD_3V3

GPIO2_IO15

ENET2_RX_ER

15

16

ENET2_RX_DATA0

GPIO2_IO08

VDD_3V3

  • 注:更多复用功能,参看INNOSTICK6硬件手册

扩展接口P5

电源域

i.MX6ULL Alt5 Mode*

信号名称

(Ball Name)

Pin#

信号名称

(Ball Name)

i.MX6ULL Alt5 Mode*

电源域

主电源

 

VDD_5V

1

2

VDD_5V

 

主电源

DC 3.3V输出

 

VDD_3V3

3

4

UART1_TX_DATA

GPIO1_IO16

VDD_3V3

VDD_3V3

GPIO1_IO19

UART1_RTS_B

5

6

UART1_RX_DATA

GPIO1_IO17

VDD_3V3

VDD_3V3

GPIO1_IO18

UART1_CTS_B

7

8

GND

 

 

 

 

GND

9

10

VDDA_3V3

 

AD转换器供电

VDD_3V3

GPIO1_IO05

GPIO1_IO05

11

12

GPIO1_IO06

GPIO1_IO06

VDD_3V3

VDD_3V3

GPIO1_IO07

GPIO1_IO07

13

14

GPIO1_IO08

GPIO1_IO08

VDD_3V3

VDD_3V3

GPIO1_IO09

GPIO1_IO09

15

16

GND

 

 

 

 

GND

17

18

JTAG_TDI

GPIO1_IO13

VDD_3V3

VDD_3V3

GPIO1_IO10

JTAG_MOD

19

20

JTAG_TDO

GPIO1_IO12

VDD_3V3

VDD_3V3

GPIO1_IO15

JTAG_TRSTB

21

22

JTAG_TCK

GPIO1_IO14

VDD_3V3

VDD_3V3

GPIO1_IO11

JTAG_TMS

23

24

GND

 

 

 

 

GND

25

26

SNVS_TAMPER2

GPIO5_IO02

VDD_SNVS_IN

SNVS_LP供电

 

VDD_SNVS_IN

27

28

PMIC_STBY_REQ

 

VDD_SNVS_IN

VDD_SNVS_IN

 

PMIC_ON_REQ

29

30

ONOFF

 

VDD_SNVS_IN

VDD_SNVS_IN

 

POR_B

31

32

GND

 

 

 

 

GND

33

34

NAND_READY_B

GPIO4_IO11

VDD_3V3

VDD_3V3

GPIO4_IO12

NAND_WP_B

35

36

NAND_CE0_B

GPIO4_IO13

VDD_3V3

VDD_3V3

GPIO4_IO14

NAND_CE1_B

37

38

NAND_CLE

GPIO4_IO15

VDD_3V3

VDD_3V3

GPIO4_IO16

NAND_DQS

39

40

GND

 

 

 

 

GND

41

42

ENET1_RX_DATA1

GPIO2_IO01

VDD_3V3

VDD_3V3

GPIO2_IO00

ENET1_RX_DATA0

43

44

UART4_RX_DATA

GPIO1_IO29

VDD_3V3

VDD_3V3

GPIO1_IO28

UART4_TX_DATA

45

46

UART2_RTS_B

GPIO1_IO23

VDD_3V3

VDD_3V3

GPIO1_IO21

UART2_RX_DATA

47

48

UART2_CTS_B

GPIO1_IO22

VDD_3V3

VDD_3V3

GPIO1_IO20

UART2_TX_DATA

49

50

GND

 

 

  • 注:更多复用功能,参看INNOSTICK6硬件手册

外形尺寸

INNOSTICK6 Outline

快速入门

首次上电

出厂之前,Innostick 6的使用说明书,硬件手册,原理图,软件工具等产品资料都存储在板上eMMC内。用户在收到板子以后,请参照如下步骤取得这些资料并认真阅读。

准备工作

  • 一块Innostick 6主板
  • 一台Windows主机

进入U盘模式

1. 从防静电袋内取出Innostick 6主板,准备好两个2mm间距跳针帽和一条Micro-USB电缆
2. 安装J1跳针帽(Micro-USB供电)
Innostick 6供电由跳针J1选择,当安装J1跳针帽时,主电源VDD_5V和Micro-USB口(P1)5V电源输入短接,此时Innostick 6由Micro-USB电缆供电。 Outline partial remark.png

3. 安装J2跳针帽(J2-1和J2-2)(U盘模式)
J2是Innostick 6的引导模式选择跳针,具体选项如下表:

跳针帽位置 引导模式
1-2 USB Memory Stick
2-3 SDP Manufacture Tools
Open Normal Boot


4. 用Micro-USB电缆连接Windows主机和Innostick 6 P1口
此时Innostick 6上电启动,LED1开始闪烁。
5. 等待Windows识别出U盘设备
6. 由于Innostick 6主板上eMMC存在Linux分区,Windows无法识别这些分区,会出现如下提示:
Format.jpg

7. 点击“取消”按钮
8. 查看Innostick 6板上FAT分区的内容,在这个例子中是F盘
Fpan1.jpg

9. 资料阅读完成以后右击F盘,选择“弹出”
Eject1.jpg

ssh连接

Innostick 6上安装的Linux发布版都提供了USB RNDIS Gadget支持。用户可以通过ssh或者telnet和它建立连接,这时候Micro-USB电缆既提供电源,又提供网络通讯功能。

准备工作

操作步骤

1. 在Windows主机上安装Putty
2. 安装J1跳针帽(Micro-USB供电)
3. J2跳针置空(“Normal Boot”模式)
4. 用Micro-USB电缆连接Windows主机和Innostick 6 P1口
此时Innostick 6上电启动,LED1开始闪烁。
5. 等待RNDIS Gadget设备被Windows识别
Pu6 remark.png

6. 右击USB Ethernet网卡
7. 设置TCP/IPv4属性
Pu7 remark.png

8. 启动Putty
Pu10 remark.png

9. 设置通讯参数
Pufour.png

9. 输入用户名和密码
Pufive.png

手动安装RNDIS驱动

有时Windows会错把RNDIS Gadget识别为一个串口设备,这时可以参看这个帖子: windows系统RNDIS驱动手动安装

连接串口控制台

U-Boot和Linux Kernel都提供串口控制台登陆,这为我们提供了另外一个连接Innostick 6的途径。通常串口通信的参数为UART1,波特率115200,数据位8,停止位1,奇偶校验无,硬件流控无。

准备工作

操作步骤

1. 在Windows主机上安装Putty
2. 将USB转串口电缆的杜邦头和Innostick 6 UART1相连
Serialconsole remark.png Usb2serial.jpg
具体连接方式如下:

杜邦头颜色 Innostick 6扩展口
绿(RX) P5-4(Tx)
蓝(TX) P5-6(Rx)
黑(GND) P5-8(GND)


3. 安装J1跳针帽(Micro-USB供电)
4. J2跳针置空(“Normal Boot”模式)
5. 用Micro-USB电缆连接Windows主机和Innostick 6 P1口
此时Innostick 6上电启动,主板上的LED1开始闪烁。
6. 将USB转串口电缆插入Windows主机
此时Windows会自动识别出该串口设备,并安排端口号。
7. 启动Putty并设置通讯参数
注意这个例子中的COM7是Windows主机为USB转串口电缆安排的端口号 Pu1 remark.png

8. 点击Open连接到串口控制台
9. 按下主板上的复位按钮,此时Innostick 6重新启动,并且启动信息都显示在Putty窗口
Putwo.png

eMMC分区

eMMC分区随着软件需求的改变而改变。下表是出厂时eMMC的分区信息

起始扇区 分区大小 格式 描述
2 20478 RAW 保留,和NXP发布的映像保持一致
20480 1024000(500MBytes) FAT U-Boot映像,产品资料,内核映像,DTB等
1228800 eMMC所有剩余空间 EXT4 Linux Rootfs

当引导模式为“Normal Boot”时,Innnostick 6内部Boot ROM会初始化板上内存,查找eMMC上FAT分区根目录下u-boot.imx文件,如果该文件存在,就将它复制到板上内存中,并将控制权交给U-Boot;如果u-boot.imx文件不存在,或者eMMC上没有FAT分区,内部Boot ROM会挂起,LED1开始急促闪烁,提醒用户检查FAT区的根目录是否存在异常。
Innostick 6默认采用NXP官方发布的U-Boot映像,而NXP官方U-Boot也会到FAT分区根目录下查找Linux Kernel映像和DTB文件,所以出厂时,FAT分区根目录下还有对应的映像文件。Innostick 6启动时引导次序大致为:内部Boot ROM --> FAT分区的u-boot.imx --> FAT分区的kernel + DTB
更新Innostick 6的软件是非常简单和直接的,就是替换FAT分区根目录下的|U-Boot映像,内核映像和DTB。另外还有EXT4分区的Linux Rootfs,下面我们有专门的小节讲述如何更新Linux Rootfs。“U盘模式”更新是Innostick 6的独家首创,到目前为止,包括树莓派在内的其他linux开发板都无法做到这一点。

更新Linux Rootfs

在Innostick 6上更新Linux Rootfs是一项非常有意思的工作,它有别于树莓派等开发板采用的“磁盘克隆”方式。Innostick 6采用基于文件系统的“快闪”备份还原机制,杜绝了树莓派普遍存在的“空扇区擦写”和“磁盘缩小”等问题,缩短了烧录时间,延长了Flash存储器的使用寿命。
这项工作既可以在Windows主机,也可以在Linux主机上完成。

Windows主机

准备工作
操作步骤

1. 在Windows主机上安装PartitionGuru v4.9.5
2. 安装J1跳针帽(Micro-USB供电)
3. 安装J2跳针帽(J2-1和J2-2)(U盘模式)
4. 用Micro-USB电缆连接Windows主机和Innostick 6 P1口
此时Innostick 6上电启动,LED1开始闪烁。
5. 等待Windows识别出U盘设备
6. 启动PartitionGuru
Dg1 remark.png

7. 在Linux EXT4分区上,在这个例子中是G盘,右击
Dg2 remark.png

8. 点击‘Restore Partition From Image file’
Dg3 remark.png

9. 选择snapshot文件
Dg4 remark.png

10. 点击Start
Dg5 remark.png

11. 点击OK
Dg6 remark.png

12. 通常烧写一个2.5GB的文件到Innostick 6需要六分钟
Dgseven.png

13. 点击Complete
Dg8 remark.png

备份Linux Rootfs文件

同样的,PartionGuru也可以用来从Innostick6备份Linux Rootfs文件
Dg9 remark.png


Linux主机

在Linux主机上更新Innostick6 Rootfs更加简单。

准备工作
  • 一块Innostick 6主板
  • 一台Linux主机
  • 一个Rootfs tarball
操作步骤

1. 安装J1跳针帽(Micro-USB供电)
2. 安装J2跳针帽(J2-1和J2-2)(U盘模式)
3. 用Micro-USB电缆连接Linux主机和Innostick 6 P1口
此时Innostick 6上电启动,LED1开始闪烁。
4. 等待U盘设备被Linux主机识别

esky-sh@ubuntu:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   1 14.6G  0 disk
├─sdb2   8:18   1   14G  0 part
└─sdb1   8:17   1  500M  0 part
sr0     11:0    1 1024M  0 rom
fd0      2:0    1    4K  0 disk
sda      8:0    0   50G  0 disk
├─sda2   8:2    0    1K  0 part
├─sda5   8:5    0 1021M  0 part [SWAP]
└─sda1   8:1    0   49G  0 part /


5. 格式化Linux EXT4分区,这个例子中是“/dev/sdb2”设备

esky-sh@ubuntu:~$ sudo mkfs.ext4 -F -E nodiscard /dev/sdb2
mke2fs 1.42.13 (17-May-2015)
/dev/sdb2 contains a ext4 file system
        last mounted on /mnt/udisk on Fri Aug 24 21:46:26 2018
Creating filesystem with 3663360 4k blocks and 917504 inodes
Filesystem UUID: 2e70e95e-f14b-41e0-b756-a85ee8ef051d
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done


6. 将Linux EXT4分区安装到本机

esky-sh@ubuntu:~$ sudo mount -t ext4 /dev/sdb2 /mnt/udisk


7. 将Rootfs tarball中的文件解压到Innostick 6

esky-sh@ubuntu:~$ sudo tar -jxvf /mnt/hgfs/sharefd/fsl-image-validation-imx-xwayland-imx6ul7d.tar.bz2 -C /mnt/udisk
esky-sh@ubuntu:~$ sync
esky-sh@ubuntu:~$ sudo umount /mnt/udisk/


软件

编译U-Boot和Linux kernel

这项工作既可以在x86主机(cross compiling),也可以在ARM主机(native compiling)上完成。

准备工作

安装build-essential

sudo apt-get install build-essential libncurses5-dev lzop

安装交叉编译器

如果您是在一台ARM架构的主机上做native compiling,那么这一节可以直接跳过。

  • 安装32位编译器:
wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export ARCH=arm
  • 安装64位编译器:
wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export ARCH=arm

编译U-Boot

下载源代码:

git clone https://source.codeaurora.org/external/imx/uboot-imx -b imx_v2017.03_4.9.88_2.0.0_ga

开始编译:

cd uboot-imx
make clean
make mx6ull_14x14_evk_defconfig
make

编译Kernel

下载源代码:

git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_4.9.88_2.0.0_ga

开始编译:

cd linux-imx
make imx_v7_defconfig
make

或者:

git clone https://github.com/NXElec/linux-innostick6 -b i6_4.9.88_v1.0

开始编译:

cd linux-innnostick6
make imx_v7_i6_defconfig
make


Yocto开发

--> Yocto Development Page

Debian OS

--> Debian OS页面

扩展板和附件

Beaglebone.jpg
BeadaFrame


I6hf1 400.jpg
5" LCD Screen

Ikoutline-22.jpg
Companion Board

Case3d.jpg
Protective Case

Cam 400x300.jpg
OV5640 Camera Module

UART232.jpg
TTL to RS232 DB9 Converter

Usbserial 800.jpg
USB to Serial TTL Converter

Oled96.jpg
0.96" 128x64 OLED Display

资源

社区