Hello Toradex Support Team,
I am working with a custom carrier board based on the Ivy Carrier Board V1.1, using the Verdin iMX8M Mini Quad 2GB Wi-Fi / Bluetooth IT (No CAN) V1.1A module.
Hardware Modifications
I made the following modifications compared to the Ivy carrier:
-
Converted the RS232 interface to RS485:
-
Using SN65176BDR transceivers
-
Isolation via ISO6721RBDR
-
Similar topology to the existing RS485 design on the Ivy carrier
-
-
Added an external SPI UART:
-
SC16IS762IPW connected via ECSPI3 (SPI3)
-
Two RS485 transceivers (SN65HVD72DR) connected to the SC16 UART channels
-
Issues Observed
1. RS485 Communication (SN65176BDR)
-
TX works correctly
-
RX does not work reliably
-
Received data appears as garbage / corrupted
This happens on both RS485 channels.
2. SC16IS762 Interrupt Issue
-
The interrupt line (connected to GPIO5_IO3 / SPDIF_TX pin) appears unstable
-
The IRQ is continuously firing
-
System shows high CPU usage:
irq/168-spi2.0 ~95-100% CPU
- This suggests an interrupt storm or incorrect IRQ configuration
Device Tree Configuration
Below is the relevant device tree configuration:
/* ---------------- PINCTRL ---------------- */
&iomuxc {
pinctrl_sc16is762_int: sc16is762-int {
fsl,pins =
<MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x140>; /* GPIO for SC16IS762 interrupt */
};
pinctrl_ecspi3: ecspi3grp {
fsl,pins =
<MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK 0x6>,
<MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x6>,
<MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO 0x6>,
<MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25 0x6>;
};
};
/* ---------------- SPI3 + SC16IS762 ---------------- */
&ecspi3 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_sc16is762_int>;
sc16is762: uart@0 {
compatible = "nxp,sc16is762";
reg = <0>;
spi-max-frequency = <1000000>;
clocks = <&sc16is762_clk>;
interrupt-parent = <&gpio5>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
linux,rs485-enabled-at-boot-time;
rs485-rts-active-low;
rs485-rts-delay = <1 0>;
};
};
Additional Observations
-
The SC16IS762 driver loads correctly:
/dev/ttySC0and/dev/ttySC1are created
-
dmesg shows:
spi2.0: ttySC0 ... is a SC16IS762 spi2.0: ttySC1 ... is a SC16IS762 -
However:
-
IRQ appears constantly active
-
GPIO debug shows the pin as “GPIO UNCLAIMED”
-
Attachments
I have attached images of the relevant schematic sections for:
-
RS485 implementation (SN65176BDR + ISO6721RBDR)
-
SC16IS762 + SPI + interrupt connection
I can also provide the full schematic PDF if needed.
Questions
-
Is the pin configuration for GPIO5_IO3 (SPDIF_TX) correct for use as an interrupt input?
-
What is the recommended pad configuration (pull-up/down) for SC16IS762 IRQ on i.MX8MM?
-
Could the IRQ storm be caused by incorrect pinmux or missing bias configuration?
-
Are there any known requirements or constraints when using ECSPI3 (SPI3) on Verdin iMX8M Mini without CAN?
-
For RS485:
-
Are there known issues when converting RS232 to RS485 using SN65176BDR on this platform?
-
Could incorrect DE/RE control or polarity cause RX corruption?
-
Summary
-
RS485 TX works, RX is corrupted
-
SC16IS762 IRQ is unstable and causes high CPU usage
-
Suspecting GPIO/pinctrl or hardware biasing issue
Any guidance on validating the interrupt configuration and RS485 design would be greatly appreciated.
Best regards,
Alvaro Jimenez


