The Embedded TransferJet CNL can be deployed on the IMX6 ICO-TTJ-500 platform. This guide explains how to build and run the Embedded TransferJet CNL Sample Application on the IMX6 ICO-TTJ-500 hardware.
- IMX6 ICO-TTJ-500 board with integrated TransferJet SDIO device + TransferJet coupler + USB cable (A to B)
- 1 x USB to serial cable with suitable 3-way connector compatible with the J15 UART connector on the ICO-TTJ-500 board.
- Windows PC + TransferJet USB dongle
Refer to TransferJet Windows CNL Test Tool for more information on installing the Windows CNL test application software.
The development environment requires an Ubuntu 13.10 (or later) Linux PC.
GNU cross tools
The GNU cross tools are required to build the bare metal BSP for IMX6 and the test application. Carry out the following steps to install these tools:
- Download v4.9.3 of the
arm-none-eabipre-built GNU cross tools binaries from https://launchpad.net/gcc-arm-embedded.
- Extract the binary archive to a suitable installation directory and ensure that the
bindirectory is added to your
- Check your installation is working by typing
arm-none-eabi-gcc -vat the command line.
USB OTG serial loader utility
We recommend using the Boundary Devices open source USB OTG serial loader utility in order to launch applications built under the BSP. This must be extracted from GitHub and compiled for your machine as follows:
- Download and extract
makein order to build the
libusbx-1.0.18developer library. Then run
sudo make installto install the library on your machine.
- Download and build
- Add the
imx_usb_loaderdirectory to your PATH and ensure you can run the application
imx_usbfrom the command line.
Linux terminal application
We recommend using
minicom as a terminal application for interacting with the test application running on the IMX6 processor. This can typically be launched, for example, by entering the command
sudo minicom -D /dev/ttyUSB0 assuming you have a USB-to-serial cable inserted into your PC.
See Setting up a USB tty serial connection to the HDP-TTJ-500 for more information.
TransferJet software pack
The TransferJet software pack is available as three separate packages under Icoteq's GIT server. These are:
All packages should be extracted into the same base working directory and remove the ".git" extension from each folder name by renaming each folder. This is important because the
platform-ico-ttj-500 package uses relative symbolic links to both
cnl-embedded in order to build their source code modules.
Structure of platform-ico-ttj-500 package
platform-ico-ttj-500 package is a complete software pack containing all the necessary source code for the IMX6 processor, ICO-TTJ-500 evaluation board and also additional source code libraries for using TransferJet. The software pack is derived from the v1.1.0 Freescale IMX6 SDK software pack and adheres to the same structure and build conventions as the baseline Freescale SDK.
Modifications have been made by Icoteq to the baseline SDK in the following areas:
- Added platform board configuration files under
board/mx6dq/ico-ttj-500for ICO-TTJ-500 board
mkfiles to support builds for
sdk/drivers/usdhcdriver source code to support I/O card commands, clock configuration for UHS-I mode and card IRQ
Extensions to the baseline SDK are made in the following places:
- Added symbolic links for TransferJet under
- Expanded the
obds(on-board diagnostic suite) test application to support TransferJet test cases for ICO-TTJ-500 under
- Adapted the
obds(on-board diagnostic suite) test application to use 996 MHz CPU clock speed (default is 792 MHz)
- Added a new custom SDIO driver under
sdk/drivers/sdiofor bespoke TransferJet functionality as required by
Building the application
Follow these steps the build the application:
- Navigate to the directory
toolsand run the command
./build_sdk -b ico-ttj-500 -v b
- Check to ensure the binary file
output/mx6dq/obds/ico-ttj-500-rev-b/obds.binhas been created
Launching the application
- Start a
minicomsession with the communications parameters 115200-8-1-N-N.
- Ensure a USB cable is connected between the Linux PC and the ICO-TTJ-500 USB OTG port (J9) and the D11 LED lights up when this is done. Ensure that no SD card media is inserted into the MMC card slot to prevent the board from booting from MMC. Note also that the ICO-TTJ-500 board must be powered separately using a 5V/4A rated power supply via J11.
- Run the command
imx_usb output/mx6dq/obds/ico-ttj-500-rev-b/obds.binto launch the
obdsapplication and check the UART console displays a menu (see example console output below).
- Type the test case number to launch via the UART console (see supported test cases below)
You should see the following output displayed to the UART console upon launching
Supported test cases
|13||GPIO LED Test||Flashes LED D7 until user presses "y" key.|
|32||TJET/SD Test Initiator|
Runs TJET sample application in single duplex mode as initiator/transmitter.
Compatible with Windows PC software + USB dongle.
Compatible with another ICO-TTJ-500 running test case 33.
|33||TJET/SD Test Responder|
Runs TJET sample application in single duplex mode as initiator/receiver.
Compatible with Windows PC software + USB dongle.
Compatible with another ICO-TTJ-500 running test case 32.
|34||TJET/SD Test Initiator/Ping-Pong|
Runs TJET sample application in full duplex mode as initiator
Compatible with another ICO-TTJ-500 running test case 35 only.
|35||TJET/SD Test Responder/Ping-Pong|
Runs TJET sample application in full duplex mode as responder.
Compatible with another ICO-TTJ-500 running test case 34 only.
Application device footprint
Application build settings
|Not Defined||SDIO_D1 is used for IRQs.|
|Defined||ARM Cortex A9 is little endian.|
|Use this to define an IRQ wait or timeout function.|
|Not defined||Use this to enable GPIO pin triggers of various TransferJet application timing events.|
|Not defined||Use this to enable GPIO pin triggers of various TransferJet SDIO timing events.|