CC6UL I/O expander

Early versions of the CC-WMX6UL-KIT ConnectCore 6UL Development Kit:
https://www.digi.com/products/models/cc-wmx6ul-kit
showing any 1P or 2P on their labels next to the 50m or 55m number, might not have programmed the MCA used to implement the I2C I/O-expander.

When trying to access the GPIOs on the expander it will not work. You may check if the MCA was programmed with:
# sysinfo
...
|| I/O Expander | HW_VERSION=1  FW_VERSION=0.2


Failure shows: || I/O Expander | HW_VERSION=??  FW_VERSION=??

If you don't have sysinfo, check if the following file is existing and contains a resonable value:
cat /sys/bus/i2c/devices/0-006e/fw_version

or check boot log output for ioexp:

# dmesg | grep ioexp

mca_ioexp 0-006e: Cannot read MCA IO Expander Device ID (-5)
mca_ioexp 0-006e: Failed to init i2c device (-5)
mca_ioexp: probe of 0-006e failed with error -5
export_store: invalid GPIO 488

Or if you check for the gpiochip465 file you will not find it in:

# ls /sys/class/gpio

or when you try to enable any of these io-expander GPIOs you will get an error:

# echo 488 >/sys/class/gpio/export

sh: write error: Invalid argument


If it does not show any version at all, you have to RMA the SBC in order to get it programmed with a JTAG debugger by Digi, or you use it without the I/O-expander.
If it does at least contain a boot loader, you should be able to update the firmware from the running Linux with the ioexp_fw_updater tool, see: https://www.digi.com/resources/documentation/digidocs/90001547/#reference/yocto/r_io_exp_fw_update.htm

Presumed the firmware is correctly loaded, accessing the GPIOs is explained in:
https://www.digi.com/support/knowledge-base?script=457&deploy=2&compid=818164&h=5928a16f2b6f9582b799&articleid=2513

Customers doing their own design and copy the I/O-expander into their own circuit, should consider if they need the flexibility this MCA is offerring, e.g. to load a firmware for I/O or for ADC other functionality. The drawback is: higher price of the chip, compared to ready to use I2C I/O expander, as well as the programming effort through JTAG which affords the SWD pins to be available on the custom board and some none trivial programming procedure setup. Also since the firmware contains intellectual properties, it is only provide as binary without source code, which is limiting the flexibility for customers.

Last updated: Jan 01, 2024

Filed Under

Embedded

Recently Viewed

No recently viewed articles

Did you find this article helpful?