SBC-A62-J

From WIKI SECO
SECO SBC-A62-J


Low-end Single Board Computer with NXP i.MX 6 Processor, that exploits the potential of a configurable expansion connector, to fully meet the configuration flexibility needs. Thanks to its features, the new Single Board with the i.MX 6 is ideal for applications in digital signage, infotainment and in all general purpose contexts requiring multimedia capabilities, high performance and high levels of parallel computing for the reproduction of relevant and/or engaging contents.

For hardware-related information, such as board's specific features, configurations, electrical interface and more, please refer to the product page (http://www.seco.com/prods/in/category/single-board-computer/sbc-a62-j.html).

Available BSPs

Latest:

Bsp9.png

At this link you can find all the instruction to build the binaries and to flash them for every specific board configuration:

Getting Started with BSP 9.0


Previous versions available of Linux based BSPs for Seco SBC-A62-J:

Seco BSP5
Seco BSP6
Seco BSP7
Seco BSP8
BSP U-Boot Release Kernel Release Filesystems Release
BSP v5.0 U-Boot 2014.04 Kernel 3.14.28 Filesystems v5.0
BSP v6.0 U-Boot 2015.04 Kernel 4.1.15 Filesystems v6.0
BSP v7.0 U-Boot 2017.03 Kernel 4.9.88 Filesystems v7.0
BSP v8.0 U-Boot 2018.03 Kernel 4.14.78 Filesystems v8.0

Boot

SECO’s SBC-A62-J are highly versatile in terms of boot media; this section focuses on these boot media and explains how to configure preferences and order. This versatility is achieved through a widely used bootloader, called uboot.
SBC-A62-J has 4 devices from which you can boot:

• Nor Flash SPI
• On board eMMC
• On board SD card
• SATA (For QUAD only)

These devices can be divided in two categories of operating modes; devices that can perform a “Complete” boot sequence, and devices that can perform only a “Partial” boot sequence. The "Complete boot” devices have the ability to provide all software sources (uBoot → Kernel → File System) to the processor, the “Partial boot” devices, on the other hand, can provide only a part of the software sources. Therefore, the processor must load at least a portion of the software from one of the "Complete boot" devices.

• Complete boot device:
On board eMMC
On board SD card

• Partial boot device:
Nor Flash SPI
SATA (For QUAD only)

The procedure to boot the board is the following: After the power on sequence,the i.MX 6 processor starts the boot and tries to load the uboot from one of these devices:
▪ Nor Flash SPI
▪ On board eMMC
▪ On board SD card

A logic flow is:


600px]

Board Features

Some of the features supported by BSP in SBC-A62-J varies from the other i.MX6 modules. For the common features supported by BSP in all the i.MX6 modules, refer the page SECO i.MX6 Features Guide BSP 5.0 , SECO i.MX6 Features Guide BSP 6.0 & SECO i.MX6 Features Guide BSP 7.0.The unique features and supported devices in BSP for A62 is tabulated below.


Character device drivers
Feature Supported device
MXC UART Console support via internal Debug UART2
UART1 is available only with TX and RX signal on J8-Expansion header,Refer A62 Pinout Configuration options page.
UART4 is available with TX,RX,CTS and RTS signals on J8-Expansion header,Refer A62 Pinout Configuration options page.
UART5 is available with TX,RX,CTS and RTS signals on J8-Expansion header,Refer A62 Pinout Configuration options page.

NOTE: Moreover, As a factory option, it is possible to have UART4 (port #4) configured with TTL or RS-232 interface, UART1 (ports #8) with TTL or RS-485 interface and UART5 with TTL level or RS-232 interface (Tx and Rx signals only). All possible factory configurations are described in the table below.

UART Factory Configurations
Port Number Configuration #1 Configuration #2 Configuration #3 Configuration #4 Configuration #5 Configuration #6
Port #4 UART4 TTL level Full UART4 RS-232 Full UART4 RS-232 Full UART4 RS-232 (Tx,Rx only) UART4 RS-232 (Tx,Rx only) UART4 TTL level Full
Port #8 UART1 (Tx,Rx) TTL UART1 (Tx,Rx) TTL UART1 RS-485 UART1 RS-485 UART1 (Tx,Rx) TTL UART1 RS-485
Port #9 UART5 TTL level Full UART5 TTL level Full UART5 TTL level Full UART5 RS-232 (Tx,Rx only) UART5 RS-232 (Tx,Rx only) UART5 TTL level Full


Feature Virtual Device Status Note
Touch Screen input0 / /
SPI NOR mtd0 okay Support SST 25VF080B SPI NOR flash via ECSPI1
Audio AC'97 / / Supports VT1613 codec
Audio I2S / / Supports SGTL5000 codec
PCIe / okay Intel Gigabit CT network standard PCI-e x1 card

Atheros AR9281 WiFi miniPCI-e x1 card

SDHC3 mmcblk0 okay 1bit/4bit/8bit for eMMC on-board.
SDHC4 mmcblk1 okay 1bit/4bit for External µSD
SDHC1 mmcblk2 disabled 1bit/4bit is available on J8 expansion header,Refer A62 Pinout Configuration options page.

For µSD on-board, specified versions are, SD2.0, SD3.0 UHS-I, eMMC 1bit/4bit/8bit SDR/DDR mode

I2C1 i2c0 okay Used for Embedded controller interface.
I2C2 i2c1 okay Used for EDID HDMI Monitor.
I2C3 i2c2 okay Used for codec SGTL5000.
CAN1 can0 disabled Must be enabled from dts
PWM2 / okay Available on J8-Expansion header,Refer A62 Pinout Configuration options page.
PWM3 / okay Available on J8-Expansion header,Refer A62 Pinout Configuration options page.
PWM4 / okay Available on J8-Expansion header,Refer A62 Pinout Configuration options page.
WIFI / / Atheros AR9281 Wi-Fi miniPCI-e x1 card.

How to connect debug serial port - J 31

Onboard, the connector J31 carries out signals related to Debug Serial Port, which is managed by NXP i.MX6 UART2 internal controller, with signals available at TTL level.

The connector is a 4-pin MOLEX p/n 53398-0471 or equivalent, with pin-out shown in the below table. Mating connector: MOLEX 51021-0400 receptacle with MOLEX 50079-8000 female crimp terminals.

Serial Debug UART Connector - J 31
PIN SIGNAL
1 3P3V
2 DUART_RX
3 DUART_TX
4 GND

Signals’ description:
DUART_TX: Debug UART Interface, Serial data Transmit (output) line, 3P3V electrical level.
DUART_RX: Debug UART Interface, Serial data Receive (input) line, 3P3V electrical level.

Please consider that UART debug interface is at TTL electrical level; therefore, please evaluate well the typical scenario of application. If it isn’t explicitly required to interface directly at TTL level, for connection to standard serial ports commonly available (like those offered by common PCs, for example) it is necessary to use an RS-232 transceiver module.

A62debugger.png

SBC-A62-J-Accessories

Please refer the link for accessories support for SBC-A62-J SBC-A62-J-Accessories

RS-232 programming kit

This kit is necessary to connect Debug programming port, available on connector J31, to a standard PC serial port through a null-modem serial cable.. The kit is made of: 1. TTL-to-RS232 serial port adapter 2. Connection cable between SBC-A62-J board and TTL-to-RS-232 adapter

To use this kit, connect the cable to connector J31 on SBC-A62-J board and to connector CN3 on the TTL-to-RS232 adapter module. The debug serial port will now be available, at RS-232 level, on the module’s connector CN1, which is a standard DB- 9 male connector.

Note: To setup the terminal console application refer the link Serial Console Setup

For Accessing you need to have a debugger programming kit, Please refer the respective Accessories page Debug Programming kit

Fan Connector

SBC-A62-J board have a special connector J4 for Fan. The Control Pads are:


FUNC PIN NO MUX MODE GPIO VIRTUAL NUMBER
FAN GPIO 1 GPIO 1_11 11
FAN_EN 2 GPIO 7_13 205


A62 - J8 expansion header


Header1.png


Header2.png


The SBC-A62-J board offers the possibility of accessing directly to some of the various features offered by i.MX 6 processor through the pin multiplexing.This means that on-board there is a dedicated 32-pin Expansion connector J8,which is a standard dual-way male pin header.

To configure and use Expansion Connector - J8 for 3.14.28 kernel follow the page A62 - J8 expansion header.
To configure and use Expansion Connector - J8 for 4.1.15 kernel follow the page A62 - J8 expansion header 6.0.


Above the list of alvaible GPIO from A62 - J8 expansion header.


PIN NO IMX6 PAD MUX MODE GPIO VIRTUAL NUMBER
4 GPIO_9 GPIO2_IO9 9
5 EIM_OE GPIO2_IO25 57
6 EIM_CS0 GPIO2_IO23 55
7 EIM_CS1 GPIO1_IO24 56
8 EIM_D29 GPIO3_IO29 93
9 GPIO_7 GPIO7_IO7 7
10 GPIO_8 GPIO8_IO08 8
11 CSI0_DAT16 GPIO6_IO02 160
12 CSI0_DAT12 GPIO5_IO30 158
13 CSI0_DAT17 GPIO6_IO03 163
14 CSI0_DAT13 GPIO5_IO31 159
15 EIM_D28 GPIO3_IO28 92
16 EIM_D21 GPIO3_IO21 85
17 GPIO_19 GPIO4_IO05 101
18 SD1_CMD GPIO1_IO18 | I2C1_SDA 18
19 SD1_CLK GPIO1_IO20 | I2C1_SCL 20
20 SD1_DAT0 GPIO1_IO16 16
21 SD1_DAT1 GPIO1_IO17 | PWM4_OUT 17
24 GPIO_16 GPIO7_IO11 | PWM3_OUT 203
25 GPIO_3 GPIO1_IO03 | PWM2_OUT 3
26 CSI0_DAT11 GPIO5_IO29 157
27 CSI0_DAT10 GPIO5_IO28 156
28 CSI0_DAT15 GPIO6_IO01 161
29 CSI0_DAT14 GPIO6_IO00 192
30 KEY_COL4 GPIO4_IO14 | FLEXCAN2_TX 110
31 KEY_ROW4 GPIO4_IO15 | FLEXCAN2_RX 111


In order to make the use of A62 - J8 expansion header easier, a python GUI wizard is developed which is present in kernel in the path linux-4-14-78-secoboards-imx6/tools/seco/A62_J8_expansion_header.sh.
This script allows the customer to choose from various groups of ports in the J8 expansion connector according to their requirement. Each group of PINS perform one or more particular function for which it is programmed. Based on the choice made by the customer, it creates a .dtsi file in the path linux-4-14-78-secoboards-imx6/arch/arm/boot/dts/imx6qdl-seco_SBC_A62_J8_conf.dtsi with the correct settings for that configuration.

Since the script is destructive to the new output dtsi file, a backup of the previous version is simultaneously created along with the new output file.
This file will be included (as a last inclusion) in imx6q-seco_SBC_A62.dts/imx6q-seco_SBC_A62-10.dts file [or imx6dl seco_SBC_A62.dts/imx6dl-seco_SBC_A62-10.dts].
The customer should make additional changes to the device tree by changing the imx6q-seco_SBC_A62.dts/imx6q-seco_SBC_A62-10.dts file (the script is not destructive for the content of this file), so in this way there is no risk to loose data.

NOTE: Not all configuration is available on each boards, it depends from your specific HW Board configuration.
For e.g. the FLEXCAN1 interfaces can be accessed trough the Expansion header or through the dedicated on-board connector, according to the hardware configuration. Also UARTs and other signals may differ.

Pinout Configuration Options

Expansion Connector-J8
Pin Number Pin Name Pinout Configuration Options Port Number
1. VCC_SW x x x x
2. 3P3V x x x x
3. GND x x x x
4. EXP_GPIO_1 x GPIO1_IO09 x 1
5. EXP_GPIO_2 ECSPI2_MISO GPIO2_IO25 x 2
6. EXP_GPIO_3 ECSPI2_SCLK GPIO2_IO23 x 2
7. EXP_GPIO_4 ECSPI2_MOSI GPIO2_IO24 x 2
8. EXP_GPIO_5 ECSPI2_SS0 GPIO3_IO29 x 2
9. EXP_GPIO_6 FLEXCAN1_TX GPIO1_IO07 x 3
10. EXP_GPIO_7 FLEXCAN1_RX GPIO1_IO08 x 3
11. EXP_GPIO_8 UART4_CTS_B GPIO6_IO03 x 4
12. EXP_GPIO_9 UART4_TX_DATA GPIO5_IO30 x 4
13. EXP_GPIO_10 UART4_RTS_B GPIO6_IO02 x 4
14. EXP_GPIO_11 UART4_RX_DATA GPIO5_IO31 x 4
15. EXP_GPIO_12 x GPIO3_IO28 I2C1_SDA 5
16. EXP_GPIO_13 SPDIF_IN GPIO3_IO21 I2C1_SCL 5
17. EXP_GPIO_14 SPDIF_OUT1 GPIO4_IO05 x 5
18. EXP_GPIO_15 SD1_CMD GPIO1_IO18 PWM4_OUT 6
19. EXP_GPIO_16 SD1_CLK GPIO1_IO20 x 6
20. EXP_GPIO_17 SD1_DATA0 GPIO1_IO16 x 6
21. EXP_GPIO_18 SD1_DATA1 GPIO1_IO17 PWM3_OUT 6
22. EXP_GPIO_19 SD1_DATA2 GPIO1_IO19 PWM2_OUT 6
23. EXP_GPIO_20 SD1_DATA3 GPIO1_IO21 x 6
24. EXP_GPIO_21 I2C3_SDA GPIO7_IO11 x 7
25. EXP_GPIO_22 I2C3_SCL GPIO1_IO03 x 7
26. EXP_GPIO_23 UART1_RX_DATA GPIO5_IO29 x 8
27. EXP_GPIO_24 UART1_TX_DATA GPIO5_IO28 x 8
28. EXP_GPIO_25 UART5_RX_DATA GPIO6_IO01 x 9
29. EXP_GPIO_26 UART5_TX_DATA GPIO6_IO00 x 9
30. EXP_GPIO_27 UART5_RTS_B GPIO4_IO14 FLEXCAN2_TX 10
31. EXP_GPIO_28 UART5_CTS_B GPIO4_IO15 FLEXCAN2_RX 10
32. GND x x x x
Table A62 & A62-10 J8 Expansion connector pin out


Using the script

  • The SBC-A62-J offers the various pin multiplexing possibilities to the user.
  • Here the script named A62_J8_expansion_header.sh which emulates the graphical user interface to select the specific function.
  • The script is placed under linux kernel directory (linux-4-1-15-secoboards-imx6/tools/seco/A62_J8_expansion_header.sh).
  • Please refer the example below to select the specific function of the port using A62_J8_expansion_header.sh script file.

Example to change the Port 1-9 configuration:

Before running the script , you have to check the python wx version, if you don't have install it at the latest version. To do that just:

$ sudo apt-get update
$ sudo apt-get install python-wxgtk3.0

Go to path of the script

$ cd <linux-4-14-78-secoboards-imx6>

Run the script

$ ./tools/seco/A62_J8_exapansion_header.sh

It opens the J8 expansion connector configuration Python (Graphical user interface)


600px]


Note : Before running the script , you have to check the python wx version.if you are having python-wxgtk3.0 you can able to run the script.if not you have to update to newer version.

Note 1 : In case if you are using ubuntu version below 16.04 like 14.04 or older version you have to install the python-wxgtk3.0 version.May you can use apt-get install python-wxgtk3.0 command to update the python wx version.if not you have to back-port the KiCad trusty using this below link to backport it & try to update the python.

https://launchpad.net/~adamwolf/+archive/ubuntu/kicad-trusty-backports

OR



  • On very first select the available board configuration which is what board you are having to select & configure the J8 expansion header pins.
  • After selecting the board to press the next button to select the J8 expansion port configuration from Port 1-9 ,Each port have some options.You have to select the specific function for each port configuration.You have to follow the script to select the port one by one with your J8 expansion pin configuration and finish the options.please follow the examples are


600px]


>>> SDIO1 with 4 DATA LINE=SDIO
>>> GPIO x 6=none
>>> PWM2 + GPIO x 5=PWM2
>>> PWM3 + GPIO x 5=PWM3
>>> PWM4 + GPIO x 5=PWM4
>>> PWM2 + PWM3 + GPIO x 4=PWM2|PWM3
>>> PWM2 + PWM4 + GPIO x 4=PWM2|PWM4
>>> PWM3 + PWM4 + GPIO x 4=PWM3|PWM4
>>> PWM2 + PWM3 + PWM4 + GPIO x 3=PWM2|PWM3|PWM4
  • Select the specific function using SPACE key.

Once you select the all port function click the finish button,you can see the next page as wizard completed successfully then press OK button.Now you are successfully configured the all port.The created file will be stored in the path /arch/arm/boot/dts/imx6qdl-seco_SBC_A62_J8_conf.dtsi.


600px]

Compile Device Tree

Once you done all the steps.Please follow the below things to compile the device tree blob file. NOTE: To compile the device tree file in manual Go to the path of kernel directory,

$cd <linux-4-1-15-secoboards-imx6>/
$export ARCH=arm
$export CROSS_COMPILE=/opt/yocto/fsl-release-bsp/build_seco_5.2/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
$make imx6q-seco_SBC_A62.dtb/imx6q-seco_SBC_A62-10.dtb   // or imx6dl-seco_SBC_A62.dtb/imx6dl-seco_SBC_A62-10.dtb // dtbs
  • The compiled device tree binary file (.dtb) is located in /arch/arm/boot/dts/.



Use the Right Device Tree Blob

Please go to the path of compiled .dtb file.

$cd /home/XXX/linux-4-14-78-secoboards-imx6/arch/arm/boot/dts/

There are four compiled .dtb file,

  • imx6q-seco_SBC_A62.dtb --> For A62 QUAD system.
  • imx6dl-seco_SBC_A62.dtb --> For A62 DUAL LITE and SOLO system.
  • imx6q-seco_SBC_A62-10.dtb --> For A62-10 QUAD system.
  • imx6dl-seco_SBC_A62-10.dtb --> For A62-10 DUAL LITE and SOLO system.

Select the right .dtb for A62-J/A62-10 board and copy the .dtb into first partition of SD or eMMC device.

APX Watchdog

Seco board imx6q-seco_SBC_A62.dtb is equipped by an APX watchdog, by default this feature is enabled from kernel menuconfig:

$ cd <linux-secoboard-4.14.78>
$ make menuconfig 
  Device Drivers  --->  SECO mxc support  ---> [*] Support for Watchdog apx


His state is set to 0 from imx6qdl-seco_SBC_A62_board.dtsi (under arch/arm/boot), to enable the state just change "apx,state" variable to 1:


/*  __________________________________________________________________________
 * |                                                                          |
 * |                                 WATCHDOG                                 |
 * |__________________________________________________________________________|
 */

	apx_wdog: apxwdog {
		/* 
		 * Low Level Init for: 
		 * SAI1_TXD6 = WD_EN
		 * SAI1_TXD7 = WD_TRG
		*/
		compatible = "seco,apx-wdog";
		apx,trigger_iomux   = <0x020e00b8>;
		apx,trigger_padctrl = <0x20e03cc>;
		apx,trigger_base    = <0x020a4000>;
		apx,trigger_num	    = <25>;
		apx,en_iomux	    = <0x20e020c>;
		apx,en_padctrl	    = <0x20e05dc>;
		apx,en_base	    	= <0x020a8000>;
		apx,en_num	    	= <11>;
		apx,state	    	= <0>;
	};

This particular feature can be used from user space under:

$ cd /sys/class/apx_wdog/

Inside can be found the principals functions usable from user-space:

$ ls
refresh_time   residual_time  status         trigger_mode

A dercription is provided in the lines below:

  • refresh time -> Using this function you can set the refresh time of apx watchdog in ms:
  • residual_time -> Residual time until watchdog timeout in ms
  • status -> The status of apx watchdog
  • trigger_mode -> Automatic or Manual (using manual an userspace application cha obtein the apx control giving him a refresh using echo 1 every tot s)

NOTE: Previous references: To configure and use Expansion Connector - J8 for 3.14.28 kernel follow the page A62 - J8 expansion header.
To configure and use Expansion Connector - J8 for 4.1.15 kernel follow the page A62 - J8 expansion header 6.0.


Logo seco.png