INNOSTICK6

From eLinux.org
Jump to: navigation, search

中文页面

INNOSTICK6 Computer Board 1
INNOSTICK6 Computer Board 2

Based on NXP/Freescale's i.MX6ULL ARM Cortex-A7 processor with up to 900MHz CPU Clock, the INNOSTICK 6 is a portable and easy-to-use computer which integrated with on board DDR3 memory and eMMC storage in a tiny form factor(80mmx42mm). The INNOSTICK 6 highly integrated connectivity includes Wi-Fi, Bluetooth/BLE, USB Host and OTG, Camera, LCD display with touch panel and serial interfaces.

Hardware

Features

CPU

NXP/Freescale ARM Cortex-A7 i.MX6ULL, at Frequency of 900MHz

RAM

512MB DDR3L

Storage

16GB/32GB eMMC

Connectivity

  • 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 I/F

24-Bit LCD with 4-wires resistive touch input

Camera I/F

8-Bit CSI Parallel input

On Board Resources

  • Discrete DC-DC converters
  • Reset Circuit with reset button
  • 1 x Power select jumper
  • 1 x Boot select jumper
  • 1 x USER LED

Expand Interface

50-Pins Header 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

16-Pins Header P6

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

*Note:Functions may not be simultaneously available due to pin mux restriction

Dimension

80 x 42(mm)

OS Support

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


Block Diagram

INNOSTICK6 Block Diagram

Expansion Header P6

Power Domain

i.MX6ULL Alt5 Mode*

Signal

(Ball Name)

Pin#

Signal

(Ball Name)

i.MX6ULL Alt5 Mode*

Power Domain

DC 3.3V Output

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

  • Note:Refer to INNOSTICK6 Hardware Manual for more ALT Modes.

Expansion Header P5

Power Domain

i.MX6ULL Alt5 Mode*

Signal

(Ball Name)

Pin#

Signal

(Ball Name)

i.MX6ULL Alt5 Mode*

Power Domain

Main power supply

 

VDD_5V

1

2

VDD_5V

 

Main power supply

DC 3.3V Output

 

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

 

Analog Converter Supply

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

Backup supply voltage

 

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

 

 

  • Note:Refer to INNOSTICK6 Hardware Manual for more ALT Modes.

Dimension

INNOSTICK6 Outline

Getting started

First time Power On

Innostick 6 product reference documents and software tools are all stored in on-board eMMC with shipment. Users should get these documents and tools before start.

Pre-requirements

  • An Innostick 6 single board computer
  • A Windows host machine

Enter USB Memory Stick Mode

1. Take out Innostick 6 from antistatic bag and prepare two 2mm Jumper-shunts and one Micro-USB cable
2. Mount shunt on Innostick 6 Jumper J1(Supply from Micro-USB cable)
Innostick 6 power supply can be selected by Jumper J1. When shunt mounted, VDD_5V get shorted with 5V input of Micro-USB Port(P1) and supply from Micro-USB cable.
Outline partial remark.png

3. Mount shunt on Innostick 6 Jumper J2-1 and J2-2(USB Memory Stick Mode)
Boot Mode selection table for Jumper J2

Jumper Position Boot Mode
1-2 USB Memory Stick
2-3 SDP Manufacture Tools
Open Normal Boot


4. Connect Micro-USB cable between Windows host and Innostick 6 P1
5. Wait until Windows recognize USB Mass Storage Gadget
6. There are Linux partitions on Innostick 6 eMMC, Windows can not recognize them and prompt for formating
Format.jpg

7. Click "Cancel"
8. Open a file browser on Innostick 6 FAT Partition, in this example, it is "F" disk
Fpan1.jpg

9. To safety remove Innostick 6 from Host, right click on "F" disk, select "Eject"
Eject1.jpg

Connect to ssh deamon

Linux distributions shipped with Innostick 6 single board computer are all pre-configured with USB RNDIS Gadget support. This allows us to ssh/telnet to Innostick 6 whenever an USB link been built with a host machine.

Pre-requirements

Procedures

1. Install Putty v0.66 on Windows host machine.
2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
3. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)
4. Connect Micro-USB cable between Windows host and Innostick 6 P1.
5. Wait until a RNDIS Gadget device recognized by Windows.
Pu6 remark.png

6. Right click to set property of this USB Ethernet Card.
7. Set property of TCP/IPv4.
Pu7 remark.png

8. Double click to start Putty.
Pu10 remark.png

9. Set communication parameters appropriately.
Pufour.png

9. Enter user name and password.
Pufive.png

Connect to Serial Console

Both U-Boot and Linux kernel provide serial console login and this allows us another way to connect to Innostick 6 than ssh/telnet. Normally the communication parameters are UART1, Baud rate 115200, Data Bit 8, Stop Bit 1, Odd/Even none, Hardware Flow none.

Pre-requirements

Procedures

1. Install Putty v0.66 on Windows host machine.
2. Connect Dupont headers of USB to Serial cable to Innostick 6 UART1.
Serialconsole remark.png Usb2serial.jpg
Connection details:

Dupont Header Innostick 6 UART1
Green(RX) P5-4(Tx)
Blue(TX) P5-6(Rx)
Black(GND) P5-8(GND)


3. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
4. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)
5. Connect Micro-USB cable between Windows host and Innostick 6 P1.
6. Plug USB to Serial cable into Windows host.
Windows will automatically recognize this serial device and arrange COM port number.
7. Double click to start Putty.
Pu1 remark.png

8. Set serial communication parameters and click Open.
9. Push the RESET button on Innostick 6 board.
Putwo.png

Layout of eMMC partitions

eMMC partitions can be altered per software requests. Below is Innostick 6 partition information with shipment.

Start Address(Sectors) Size(Sectors) Format Description
2 20478 RAW Reserved, standing at same line with NXP Yocto release
20480 1024000(500MBytes) FAT U-Boot image, product references, Linux kernel, DTBs
1228800 Remaining space EXT4 Linux Rootfs

Under "Normal Boot" mode, Internal Boot ROM of Innostick 6 will initiate DDR memory and then find u-boot.imx file in root directory of the FAT partition. If the file exist, Innostick 6 will copy it to DDR and after then transfer control to it. If the file non-exist or FAT partition non-exist, internal Boot ROM will hang up and flash LED1 in a panic frequency.
With shipment, Innostick 6 use the same U-Boot image as NXP Official Yocto release. So U-Boot will find Linux kernel and DTBs in same directory. Innostick 6 boot sequence:Internal Boot ROM --> u-boot.imx on FAT --> kernel + DTB on FAT
Provision of Innostick 6 software is quite simple and straight forward -- replacing u-boot.imx, Linux kernel and DTB image files in the same directory, plus Linux Rootfs in EXT4 partition. We will discuss provision of Linux Rootfs in next section.

Provision of Linux Rootfs

This task can be done either on a Windows Host or Linux Host.

Do provision on a Windows Host

Pre-requirements
Procedures

1. Install PartitionGuru v4.9.5 on Windows host machine.
2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
3. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)
4. Connect Micro-USB cable between Windows host and Innostick 6 P1.
5. Wait until an USB mass storage gadget device recognized by Windows.
6. Double click to start PartitionGuru.
Dg1 remark.png

7. Right click on Linux EXT4 Partition.
Dg2 remark.png

8. Click 'Restore Partition From Image file'.
Dg3 remark.png

9. Choose a snapshot file from local hard disk.
Dg4 remark.png

10. Click Start to complete file choosing.
Dg5 remark.png

11. Click OK to start file restoring.
Dg6 remark.png

12. Normally it will take about 6 minutes for a 2.5GB file restoring.
Dgseven.png

13. Complete procedures for the snapshot file restoring.
Dg8 remark.png

Backup Rootfs to a snapshot file

And vice versa, one can backup Rootfs to a PartionGuru snapshot file.
Dg9 remark.png


Do provision on a Linux Host

Provision on a Linux host is quite straight forward.

Pre-requirements
  • An Innostick 6 single board computer.
  • A Linux host machine.
  • A Rootfs tarball.
Procedures

1. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
2. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)
3. Connect Micro-USB cable between Linux host and Innostick 6 P1.
4. Wait until an USB mass storage gadget device recognized by Linux Kernel.

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. Format Linux EXT4 partition, in this case it is "/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. Mount on Linux EXT4 Partition.

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

7. Extract Rootfs tarball to this partition.

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/

Software

Build U-Boot and Linux kernel

This task can be done either on a x86 machine(cross compiling) or ARM machine(native compiling).

Pre-requirements

Install build-essentials

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

Install Cross Compiler

This section can be skipped if you are doing native compiling on an ARM machine.

  • Install a 32Bits version:
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
  • Install a 64Bits version:
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

Compile U-Boot

Download source code:

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

Compile U-Boot:

cd uboot-imx
make clean
make mx6ull_14x14_evk_defconfig
make

Compile Kernel

Download source code:

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

Compile Kernel:

cd linux-imx
make imx_v7_defconfig
make

Or:

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

Compile Kernel:

cd linux-innostick6
make imx_v7_i6_defconfig
make

Yocto Development

--> Yocto Development Page

Debian OS

--> Debian OS Page

Expansion Boards and Accessories

Beaglebone.jpg
BeadaFrame

Ikoutline-22.jpg
Companion Board

Asdash.jpg
Airsniffer

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

Resources

Community