Using Hardware Interfaces on Windows 10 IoT Enterprise

This article explains how to test several hardware interfaces on Windows 10 IoT Enterprise with a Trizeps VIII Mini module in a i-PAN T7 II Baseboard.

Due to the similarities between the baseboards others like the pConXS III will work as well.

Audio

Audacity can be used to verify audio input and output functionality. A version that has been verified to work with Windows 10 IoT Enterprise on the Trizeps VIII Mini can be downloaded from github.


BusTools

Microsoft is offering open-source samples for using hardware interfaces in Windows. A compiled version of these samples can be downloaded here:

In order to use the BusTools you have to install the Microsoft Visual C++ Redistributable for ARM64 on the system.

The following interfaces can be tested with these ‘BusTools'.

 

GPIO

In order to toggle a GPIO navigate to the folder containing GpioTestTool.exe in a command prompt window and execute the following commands:

gpiotesttool 130
setdrivemode output
toggle

GPIO 130 corrosponds to the red LED on the i-PAN T7 II.

I2C

I2C can be tested with I2cTestTool. The following commands can be used to read the i-PAN T7 II’s touch controller’s firmware version after navigating to the directory containing the I2cTestTool.exe:

i2ctesttool 0x38 i2c2
writeread { a6 } 1

The response should be 2 for firmware version 2. 0x38 is the I2C address of the FocalTech touch controller on the i-PAN T7 II and 0xA6 is the register containing the firmware version.

UART

Navigate to the directory containing the MinComm.exe in the command prompt and execute the file.
If you have connected your baseboard to your computer via the RS232 interface you will be able to transfer symbols by pressing keys on your keyboard between the two devices.

PWM

On Trizeps8Mini PWM4 is the only PWM that is configured by default. The Pin used for PWM4 is GPIO5_IO2 (SAI3_MCLK_PWM4_OUT). It is connected to SODIMM Pin 69.
On the pConXS III the signal is available on Pin 9 of the extension header.

PwmTestTool.exe can be used to activate the PWM.
PwmTestTool.exe -list will show you a list of available PWMs. The first list item should be \\?\ACPI#NXP010E#4#{60824b4c-eed1-4c9c-b49c-1b961461a819} which is the PWM4.
Execute PwmTestTool.exe \\?\ACPI#NXP010E#4#{60824b4c-eed1-4c9c-b49c-1b961461a819} to access the PWM.

The commands open 0, start and dutycycle 25 will activate the PWM with a dutycycle of 25%.

Use the command help for more options.


PCIe

There is two ways to use the i.MX8M Minis PCIe interface on Trizeps8Mini:

  • WIFI module on the Trizeps VIII Mini

  • mPCIe connector on the carrier board

In order to configure the device for either of those, connect the serial interface, hold the “escape” key in the terminal emulator (e.g. TeraTerm or PuTTY) while booting the system to abort booting and stay in U-Boot.

Edit the “pcie” environment variable and set it to either “wifionboard" (WIFI module on the Trizeps) or “extern” (mPCIe connector on the carrier board).

When the U-Boot environment variable is configured correctly the PCIe device will show up in the device manager in windows.

This was verified with a Silex SX-PCEAC2 WIFI module that shows up as an unknown “Network Controller” under “Other devices”, a “LE910C1-EU” LTE module from Telit that gets listed as “LE910C1-EU” and a “SD-MMT01A-1” that gets listed as “PCIE Serial Port”.

Manual driver installation is very likely to be required to actually use the PCIe device.

 


CAN (only Trizeps VIII Plus)

The CAN interface of the i.MX8M Plus processor of the Trizeps8Plus can be tested with the “FlexCAN-interrupt” utility that comes with the BSP from NXP.

To test the CAN interfaces on a pConXS III simply connect two i-MOD CAN boards to the CAN interface of the pConXS III as described in the i-MOD CAN datasheet: i-MOD CAN - i-MOD standard

Connect the two CAN Interfaces with a male-to-male DB9 cable.

Use NXP’s FlexCAN_interrupt.exe (You can download it here: ) to test the CAN interfaces.

The result should look like this: