iMX6 TinyRex Ultra Accessing and Testing Peripherals
Elemental operations of iMX6 TinyRex Development board ports in Ultra configuration are shown on this page. For more detailed information such as HDMI input interface or Wireless operation refer to the dedicated Peripheral sections.
Prerequisites
Hardware
- DC power supply (5V 2A)
- iMX6 TinyRex Module Ultra
- iMX6 TinyRex Baseboard
Peripherals and Accessories
- 1x FullHD monitor with Audio output
- 1x HD signal generator
- 1x MicroSD card
- 1x MiniPCIe WiFi card
- 1x RPi camera module
- 1x SATA HDD drive
- 2x USB FLASH drive
Cables
- Ethernet cable
- HDMI cable
- Micro HDMI cable
- Micro USB cable
- USB to UART cable
User button
Input: Press the USER button
Output: Button events 1 and 0 are generated
root@imx6-tinyrexultra:~# evtest /dev/input/by-path/platform-gpio-keys*-event Input driver version is 1.0.1 Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100pio-keys.16-event . Input device name: "gpio-keys.16" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 116 (KEY_POWER) Properties: Testing ... (interrupt to exit) Event: time 1453240251.571826, type 1 (EV_KEY), code 116 (KEY_POWER), value 1 Event: time 1453240251.571826, -------------- EV_SYN ------------ Event: time 1453240251.711820, type 1 (EV_KEY), code 116 (KEY_POWER), value 0 Event: time 1453240251.711820, -------------- EV_SYN ------------
Reset button
Input: Press the RESET button
Output: Module will execute bootloader immediately with "Reset cause: POR"
Note: Module should never freeze or hang after the reset button was pressed. Testing the operations 10 times gives a reliable result
U-Boot 2014.10 (Jan 19 2016 - 20:37:48) CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: POR Board: MX6 TinyRex - basic I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: FEC [PRIME] Hit any key to stop autoboot: 0
CAN
Input: None
Output: Device driver is available
root@imx6-tinyrexbasic:~# ip addr show dev can0 2: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10 link/can
Note: Enhanced testing can be performed with a pair of iMX6 TinyRex Development boards and a couple of dedicated CAN evaluation modules
Board 1 (receiver) commands and outputs:
root@imx6-tinyrexmax:~# ip link set can0 type can bitrate 1000000 root@imx6-tinyrexmax:~# ip link set can0 up flexcan 2090000.flexcan can0: writing ctrl=0x01232054 root@imx6-tinyrexmax:~# candump can0 & [1] 833 root@imx6-tinyrexmax:~# can0 123 [4] DE AD BE EF
Board 2 (transmitter) commands and outputs:
root@imx6-tinyrexpro:~# ip link set can0 type can bitrate 1000000 root@imx6-tinyrexpro:~# ip link set can0 up flexcan 2090000.flexcan can0: writing ctrl=0x01232054 root@imx6-tinyrexpro:~# candump can0 & [1] 847 root@imx6-tinyrexpro:~# cansend can0 123#DEADBEEF root@imx6-tinyrexpro:~# can0 123 [4] DE AD BE EF
CSI
Input: Connect RPi camera module into CSI interface and check if it is detected on I2C bus
Output: I2C address 0x36 is occupied and under use
root@imx6-tinyrexbasic:~# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- UU -- -- -- 3a -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Input: Connect RPi camera module into CSI interface and check kernel modules
Output: Device driver ov5647_camera_mipi_int(or ov5647_camera_mipi) is loaded
root@imx6-tinyrexbasic:~# lsmod Module Size Used by mxc_v4l2_capture 28532 2 ipu_bg_overlay_sdc 5401 1 mxc_v4l2_capture ipu_still 2528 1 mxc_v4l2_capture ipu_prp_enc 5943 1 mxc_v4l2_capture ipu_csi_enc 3863 1 mxc_v4l2_capture ipu_fg_overlay_sdc 6217 1 mxc_v4l2_capture ov5647_camera_mipi 30980 0 adv7610_video 6270 0 v4l2_int_device 2930 3 ov5647_camera_mipi_int,adv7610_video,mxc_v4l2_capture mxc_dcic 6569 0 evbug 1875 0
Input: Connect RPi camera module into CSI interface and capture image
Output: The image is displayed on LCD panel
root@imx6-tinyrexbasic:~# echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode root@imx6-tinyrexbasic:~# gst-launch-1.0 v4l2src device="/dev/video1" ! video/x-bayer,width=1920,height=1080,framerate=30/1 ! queue ! bayer2rgb ! videoconvert ! fbdevsink display(/dev/fb0) resolution is (1920x1080). ipu_csi_window_size_crop: Error left=0 top=56595559 ERROR: unrecognized std! 0 (PAL=ff, NTSC=b000 (gst-plugin-scanner:1175): GStreamer-CRITICAL **: gst_caps_simplify: assertion 'GST_IS_CAPS (caps)' failed (gst-plugin-scanner:1175): GStreamer-CRITICAL **: gst_caps_append: assertion 'GST_IS_CAPS (caps2)' failed (gst-plugin-scanner:1175): GStreamer-CRITICAL **: gst_caps_simplify: assertion 'GST_IS_CAPS (caps)' failed (gst-plugin-scanner:1175): GStreamer-CRITICAL **: gst_caps_append: assertion 'GST_IS_CAPS (caps2)' failed ipu_csi_window_size_crop: Error left=0 top=56595559 ipu_csi_window_size_crop: Error left=0 top=56595559 Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: v4l2 capture: unsupported ioctrl! WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped. Additional debug info: /home/marek/workdir/imx6/yocto/fsl-release-bsp-tinyrex/build-x11/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer1.0/1.4.1-r0/gstreamer-1.4.1/libs/gst/base/gstbasesin: There may be a timestamping problem, or this computer is too slow. power_down_callback: ipu0/csi0 ^Chandling interrupt. Interrupt: Stopping pipeline ... Execution ended after 0:00:19.269515335 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... power_down_callback: ipu0/csi1
Input:
Output: