PaulStoffregen
Well-known member
Ok, let's try talking about which 24 of the iMXRT's 97 available I/O pins to (hypothetically) use for a Teensy LC/3.2 form factor board. And possibly 8-12 extras to bring to pads on the bottom side.
First, one important ground rule. Do NOT suggest a larger form factor, high density connectors, or ANY other ideas for more than 24 pins! Seriously, don't even bring this up (as has happened over and over). I will lock and maybe delete this thread if we get sidetracked. A larger form factor may happen in the future, but for this thread the only subject up for discussion is *which* 24 (plus 8-12 bottom side pads) of the 97 pins to choose. For this thread, the topic is the difficult trade-off of which 73 pins do NOT get to route to the 24 breadboard-friendly outside pins!
I've already removed the 6 pins for the SD card, 12 pins for the QSPI flash memory, and 9 pins for programming & boot. Please disregard the FLEXSPI and USDHC features, since those have already been reserved (and on special ports which can be 1.8V without impacting 3.3V signals for the rest of the chip).
Here are the 97 possible pins and their capabilities. You can see on the far right I've already started to flag some pins as very likely to be used, but at this point no decisions are set in stone (or FR4 fiberglass...)
First, one important ground rule. Do NOT suggest a larger form factor, high density connectors, or ANY other ideas for more than 24 pins! Seriously, don't even bring this up (as has happened over and over). I will lock and maybe delete this thread if we get sidetracked. A larger form factor may happen in the future, but for this thread the only subject up for discussion is *which* 24 (plus 8-12 bottom side pads) of the 97 pins to choose. For this thread, the topic is the difficult trade-off of which 73 pins do NOT get to route to the 24 breadboard-friendly outside pins!
I've already removed the 6 pins for the SD card, 12 pins for the QSPI flash memory, and 9 pins for programming & boot. Please disregard the FLEXSPI and USDHC features, since those have already been reserved (and on special ports which can be 1.8V without impacting 3.3V signals for the rest of the chip).
Here are the 97 possible pins and their capabilities. You can see on the far right I've already started to flag some pins as very likely to be used, but at this point no decisions are set in stone (or FR4 fiberglass...)
Code:
Name BGA Power Def Analog ATL0 ALT1 ALT2 ALT3 ALT4 ALT5 ALT6 ALT7
---- --- ----- --- ------ ---- ---- ---- ---- ---- ---- ---- ----
AD_B0_00 M14 GPIO ALT5 PWM2_A3 XBAR_INOUT14 REF_CLK_32K USB_OTG2_ID I2C1_SCLS GPIO1:0 USDHC1_RESET_B SPI3_SCK
AD_B0_01 H10 GPIO ALT5 PWM2_B3 XBAR_INOUT15 REF_CLK_24M USB_OTG1_ID I2C1_SDAS GPIO1:1 EWM_OUT_B SPI3_MOSI
AD_B0_02 M11 GPIO ALT5 CAN2_TX XBAR_INOUT16 UART6_TX USB_OTG1_PWR PWM1_X0 GPIO1:2 I2C1_HREQ SPI3_MISO
AD_B0_03 G11 GPIO ALT5 CAN2_RX XBAR_INOUT17 UART6_RX USB_OTG1_OC PWM1_X1 GPIO1:3 REF_CLK_24M SPI3_CS0
AD_B0_12 K14 GPIO ALT5 A1:1 I2C4_SCL CCM_PMIC_READY UART1_TX WDOG2_B PWM1_X2 GPIO1:12 ENET1588_OUT1 -
AD_B0_13 L14 GPIO ALT5 A1:2 I2C4_SDA GPT1_CLK UART1_RX EWM_OUT_B PWM1_X3 GPIO1:13 ENET1588_IN1 REF_CLK_24M
AD_B0_14 H14 GPIO ALT5 A1:3 USB_OTG2_OC XBAR_IN24 UART1_CTS ENET1588_OUT0 CSI_VSYNC GPIO1:14 CAN2_TX WDOG1_ANY
AD_B0_15 L10 GPIO ALT5 A1:4 USB_OTG2_PWR XBAR_IN25 UART1_RTS ENET1588_IN0 CSI_HSYNC GPIO1:15 CAN2_RX WDOG1_RESET_B_DEB
AD_B1_00 J11 GPIO ALT5 A1:5,A2:5 USB_OTG2_ID QTIMER3_TIMER0 UART2_CTS I2C1_SCL WDOG1_B GPIO1:16 USDHC1_WP KPP_ROW7 Arduino
AD_B1_01 K11 GPIO ALT5 A1:6,A2:6 USB_OTG1_PWR QTIMER3_TIMER1 UART2_RTS I2C1_SDA CCM_PMIC_READY GPIO1:17 USDHC1_VSELECT KPP_COL7 Arduino
AD_B1_02 L11 GPIO ALT5 A1:7,A2:7 USB_OTG1_ID QTIMER3_TIMER2 UART2_TX SPDIF_OUT ENET1588_OUT2 GPIO1:18 USDHC1_CD_B KPP_ROW6 Arduino
AD_B1_03 M12 GPIO ALT5 A1:8,A2:8 USB_OTG1_OC QTIMER3_TIMER3 UART2_RX SPDIF_IN ENET1588_IN2 GPIO1:19 USDHC2_CD_B KPP_COL6 Arduino
AD_B1_04 L12 GPIO ALT5 A1:9,A2:9 FLEXSPI_B_DATA3 ENET_MDC UART3_CTS SPDIF_SR_CLK CSI_PIXCLK GPIO1:20 USDHC2_DATA0 KPP_ROW5
AD_B1_05 K12 GPIO ALT5 A1:10,A2:10 FLEXSPI_B_DATA2 ENET_MDIO UART3_RTS SPDIF_OUT CSI_MCLK GPIO1:21 USDHC2_DATA1 KPP_COL5
AD_B1_06 J12 GPIO ALT5 A1:11,A2:11 FLEXSPI_B_DATA1 I2C3_SDA UART3_TX SPDIF_LOCK CSI_VSYNC GPIO1:22 USDHC2_DATA2 KPP_ROW4 Arduino
AD_B1_07 K10 GPIO ALT5 A1:12,A2:12 FLEXSPI_B_DATA0 I2C3_SCL UART3_RX SPDIF_EXT_CLK CSI_HSYNC GPIO1:23 USDHC2_DATA3 KPP_COL4 Arduino
AD_B1_08 H13 GPIO ALT5 A1:13,A2:13 FLEXSPI_A_SS1_B PWM4_A0 CAN1_TX CCM_PMIC_READY CSI_DATA09 GPIO1:24 USDHC2_CMD KPP_ROW3 Arduino
AD_B1_09 M13 GPIO ALT5 A1:14,A2:14 FLEXSPI_A_DQS PWM4_A1 CAN1_RX SAI1_MCLK CSI_DATA08 GPIO1:25 USDHC2_CLK KPP_COL3 Arduino
AD_B1_10 L13 GPIO ALT5 A1:15,A2:15 FLEXSPI_A_DATA3 WDOG1_B UART8_TX SAI1_RX_SYNC CSI_DATA07 GPIO1:26 USDHC2_WP KPP_ROW2 Arduino
AD_B1_11 J13 GPIO ALT5 A1:0,A2:0 FLEXSPI_A_DATA2 EWM_OUT_B UART8_RX SAI1_RX_BCLK CSI_DATA06 GPIO1:27 USDHC2_RESET_B KPP_COL2 Arduino
AD_B1_12 H12 GPIO ALT5 A2:1 FLEXSPI_A_DATA1 ACMP_OUT00 SPI3_PCS0 SAI1_RX0 CSI_DATA05 GPIO1:28 USDHC2_DATA4 KPP_ROW1 Bottom pad
AD_B1_13 H11 GPIO ALT5 A2:2 FLEXSPI_A_DATA0 ACMP_OUT01 SPI3_MISO SAI1_TX0 CSI_DATA04 GPIO1:29 USDHC2_DATA5 KPP_COL1 Bottom pad
AD_B1_14 G12 GPIO ALT5 A2:3 FLEXSPI_A_SCLK ACMP_OUT02 SPI3_MOSI SAI1_TX_BCLK CSI_DATA03 GPIO1:30 USDHC2_DATA6 KPP_ROW0 Bottom pad
AD_B1_15 J14 GPIO ALT5 A2:4 FLEXSPI_A_SS0_B ACMP_OUT03 SPI3_SCK SAI1_TX_SYNC CSI_DATA02 GPIO1:31 USDHC2_DATA7 KPP_COL0 Bottom pad
Name BGA Power Def Analog ATL0 ALT1 ALT2 ALT3 ALT4 ALT5 ALT6 ALT7
---- --- ----- --- ------ ---- ---- ---- ---- ---- ---- ---- ----
B0_00 D7 GPIO ALT5 LCD_CLK QTIMER1_TIMER0 MQS_RIGHT SPI4_CS0 FlexIO2:0 GPIO2:0 SEMC_CSX1 - Arduino 10
B0_01 E7 GPIO ALT5 LCD_ENABLE QTIMER1_TIMER1 MQS_LEFT SPI4_MISO FlexIO2:1 GPIO2:1 SEMC_CSX2 - Arduino 12
B0_02 E8 GPIO ALT5 LCD_HSYNC QTIMER1_TIMER2 CAN1_TX SPI4_MOSI FlexIO2:2 GPIO2:2 SEMC_CSX3 - Arduino 11
B0_03 D8 GPIO ALT5 LCD_VSYNC QTIMER2_TIMER0 CAN1_RX SPI4_SCK FlexIO2:3 GPIO2:3 WDOG2_RESET_B_DEB Arduino 13
B0_04 C8 GPIO ALT5 LCD_DATA00 QTIMER2_TIMER1 I2C2_SCL ARM_TRACE0 FlexIO2:4 GPIO2:4 SRC_BOOT_CFG00
B0_05 B8 GPIO ALT5 LCD_DATA01 QTIMER2_TIMER2 I2C2_SDA ARM_TRACE1 FlexIO2:5 GPIO2:5 SRC_BOOT_CFG01
B0_06 A8 GPIO ALT5 LCD_DATA02 QTIMER3_TIMER0 PWM2_A0 ARM_TRACE2 FlexIO2:6 GPIO2:6 SRC_BOOT_CFG02
B0_07 A9 GPIO ALT5 LCD_DATA03 QTIMER3_TIMER1 PWM2_B0 ARM_TRACE3 FlexIO2:7 GPIO2:7 SRC_BOOT_CFG03
B0_08 B9 GPIO ALT5 LCD_DATA04 QTIMER3_TIMER2 PWM2_A1 UART3_TX FlexIO2:8 GPIO2:8 SRC_BOOT_CFG04
B0_09 C9 GPIO ALT5 LCD_DATA05 QTIMER4_TIMER0 PWM2_B1 UART3_RX FlexIO2:9 GPIO2:9 SRC_BOOT_CFG05
B0_10 D9 GPIO ALT5 LCD_DATA06 QTIMER4_TIMER1 PWM2_A2 SAI1_TX3_RX1 FlexIO2:10 GPIO2:10 SRC_BOOT_CFG06
B0_11 A10 GPIO ALT5 LCD_DATA07 QTIMER4_TIMER2 PWM2_B2 SAI1_TX2_RX2 FlexIO2:11 GPIO2:11 SRC_BOOT_CFG07
B0_12 C10 GPIO ALT5 LCD_DATA08 XBAR_INOUT10 ARM_TRACE_CLK SAI1_TX1_RX3 FlexIO2:12 GPIO2:12 SRC_BOOT_CFG08
B0_14 E10 GPIO ALT5 LCD_DATA10 XBAR_INOUT12 ARM_CM7_EVENT0 SAI1_RX_SYNC FlexIO2:14 GPIO2:14 SRC_BOOT_CFG10
B0_15 E11 GPIO ALT5 LCD_DATA11 XBAR_INOUT13 ARM_CM7_EVENT1 SAI1_RX_BCLK FlexIO2:15 GPIO2:15 SRC_BOOT_CFG11
B1_00 A11 GPIO ALT5 LCD_DATA12 XBAR_INOUT14 UART4_TX SAI1_RX_DATA FlexIO2:16 GPIO2:16 PWM1_A3
B1_01 B11 GPIO ALT5 LCD_DATA13 XBAR_INOUT15 UART4_RX SAI1_TX_DATA FlexIO2:17 GPIO2:17 PWM1_B3
B1_02 C11 GPIO ALT5 LCD_DATA14 XBAR_INOUT16 SPI4_CS2 SAI1_TX_BCLK FlexIO2:18 GPIO2:18 PWM2_A3
B1_03 D11 GPIO ALT5 LCD_DATA15 XBAR_INOUT17 SPI4_CS1 SAI1_TX_SYNC FlexIO2:19 GPIO2:19 PWM2_B3
B1_04 E12 GPIO ALT5 LCD_DATA16 SPI4_CS0 CSI_DATA15 ENET_RX_DATA0 FlexIO2:20 GPIO2:20 - -
B1_05 D12 GPIO ALT5 LCD_DATA17 SPI4_MISO CSI_DATA14 ENET_RX_DATA1 FlexIO2:21 GPIO2:21 - -
B1_06 C12 GPIO ALT5 LCD_DATA18 SPI4_MOSI CSI_DATA13 ENET_RX_EN FlexIO2:22 GPIO2:22 - -
B1_07 B12 GPIO ALT5 LCD_DATA19 SPI4_SCK CSI_DATA12 ENET_TX_DATA0 FlexIO2:23 GPIO2:23 - -
B1_08 A12 GPIO ALT5 LCD_DATA20 QTIMER1_TIMER3 CSI_DATA11 ENET_TX_DATA1 FlexIO2:24 GPIO2:24 CAN2_TX -
B1_09 A13 GPIO ALT5 LCD_DATA21 QTIMER2_TIMER3 CSI_DATA10 ENET_TX_EN FlexIO2:25 GPIO2:25 CAN2_RX -
B1_10 B13 GPIO ALT5 LCD_DATA22 QTIMER3_TIMER3 CSI_DATA00 ENET_TX_CLK FlexIO2:26 GPIO2:26 ENET_REF_CLK -
B1_11 C13 GPIO ALT5 LCD_DATA23 QTIMER4_TIMER3 CSI_DATA01 ENET_RX_ER FlexIO2:27 GPIO2:27 SPI4_CS3 -
B1_12 D13 GPIO ALT5 - UART5_TX CSI_PIXCLK ENET1588_IN0 FlexIO2:28 GPIO2:28 USDHC1_CD_B -
B1_13 D14 GPIO ALT5 WDOG1_B UART5_RX CSI_VSYNC ENET1588_OUT0 FlexIO2:29 GPIO2:29 USDHC1_WP -
B1_14 C14 GPIO ALT5 ENET_MDC PWM4_A2 CSI_HSYNC XBAR_IN02 FlexIO2:30 GPIO2:30 USDHC1_VSELECT -
B1_15 B14 GPIO ALT5 ENET_MDIO PWM4_A3 CSI_MCLK XBAR_IN03 FlexIO2:31 GPIO2:31 USDHC1_RESET_B -
Name BGA Power Def Analog ATL0 ALT1 ALT2 ALT3 ALT4 ALT5 ALT6 ALT7
---- --- ----- --- ------ ---- ---- ---- ---- ---- ---- ---- ----
EMC_00 E3 EMC ALT5 SEMC_DATA00 PWM4_A0 SPI2_SCK XBAR_IN02 FlexIO1:0 GPIO4:0 USB_PHY1_TSTI_TX_LS_MODE
EMC_01 F3 EMC ALT5 SEMC_DATA01 PWM4_B0 SPI2_CS0 XBAR_IN03 FlexIO1:1 GPIO4:1 USB_PHY1_TSTI_TX_HS_MODE
EMC_02 F4 EMC ALT5 SEMC_DATA02 PWM4_A1 SPI2_MOSI XBAR_INOUT04 FlexIO1:2 GPIO4:2 USB_PHY1_TSTI_TX_DN
EMC_03 G4 EMC ALT5 SEMC_DATA03 PWM4_B1 SPI2_MISO XBAR_INOUT05 FlexIO1:3 GPIO4:3 USB_PHY1_TSTO_RX_SQUELCH
EMC_04 F2 EMC ALT5 SEMC_DATA04 PWM4_A2 SAI2_TX0 XBAR_INOUT06 FlexIO1:4 GPIO4:4 USB_PHY1_TSTO_RX_DISCON_DET
EMC_05 G5 EMC ALT5 SEMC_DATA05 PWM4_B2 SAI2_TX_SYNC XBAR_INOUT07 FlexIO1:5 GPIO4:5 USB_PHY1_TSTO_RX_HS_RXD
EMC_06 H5 EMC ALT5 SEMC_DATA06 PWM2_A0 SAI2_TX_BCLK XBAR_INOUT08 FlexIO1:6 GPIO4:6 USB_PHY2_TSTO_RX_FS_RXD
EMC_07 H4 EMC ALT5 SEMC_DATA07 PWM2_B0 SAI2_MCLK XBAR_INOUT09 FlexIO1:7 GPIO4:7 USB_PHY1_TSTO_RX_FS_RXD
EMC_08 H3 EMC ALT5 SEMC_DM0 PWM2_A1 SAI2_RX0 XBAR_INOUT17 FlexIO1:8 GPIO4:8 USB_PHY1_TSTI_TX_DP
EMC_09 C2 EMC ALT5 SEMC_ADDR00 PWM2_B1 SAI2_RX_SYNC CAN2_TX FlexIO1:9 GPIO4:9 USB_PHY1_TSTI_TX_EN
EMC_10 G1 EMC ALT5 SEMC_ADDR01 PWM2_A2 SAI2_RX_BCLK CAN2_RX FlexIO1:10 GPIO4:10 USB_PHY1_TSTI_TX_HIZ
EMC_11 G3 EMC ALT5 SEMC_ADDR02 PWM2_B2 I2C4_SDA USDHC2_RESET_B FlexIO1:11 GPIO4:11 USB_PHY2_TSTO_RX_HS_RXD
EMC_12 H1 EMC ALT5 SEMC_ADDR03 XBAR_IN24 I2C4_SCL USDHC1_WP PWM1_A3 GPIO4:12 USB_PHY1_TSTO_PLL_CLK20DIV
EMC_13 A6 EMC ALT5 SEMC_ADDR04 XBAR_IN25 UART3_TX MQS_RIGHT PWM1_B3 GPIO4:13 USB_PHY2_TSTO_PLL_CLK20DIV
EMC_14 B6 EMC ALT5 SEMC_ADDR05 XBAR_INOUT19 UART3_RX MQS_LEFT SPI2_CS1 GPIO4:14 USB_PHY2_TSTO_RX_SQUELCH
EMC_15 B1 EMC ALT5 SEMC_ADDR06 XBAR_IN20 UART3_CTS SPDIF_OUT QTIMER3_TIMER0 GPIO4:15 USB_PHY2_TSTO_RX_DISCON_DET
EMC_16 A5 EMC ALT5 SEMC_ADDR07 XBAR_IN21 UART3_RTS SPDIF_IN QTIMER3_TIMER1 GPIO4:16
EMC_17 A4 EMC ALT5 SEMC_ADDR08 PWM4_A3 UART4_CTS CAN1_TX QTIMER3_TIMER2 GPIO4:17
EMC_18 B2 EMC ALT5 SEMC_ADDR09 PWM4_B3 UART4_RTS CAN1_RX QTIMER3_TIMER3 GPIO4:18 SNVS_VIO_5_CTL
EMC_19 B4 EMC ALT5 SEMC_ADDR11 PWM2_A3 UART4_TX ENET_RX_DATA1 QTIMER2_TIMER0 GPIO4:19 SNVS_VIO_5_B
EMC_20 A3 EMC ALT5 SEMC_ADDR12 PWM2_B3 UART4_RX ENET_RX_DATA0 QTIMER2_TIMER1 GPIO4:20
EMC_21 C1 EMC ALT5 SEMC_BA0 PWM3_A3 I2C3_SDA ENET_TX_DATA1 QTIMER2_TIMER2 GPIO4:21
EMC_22 F1 EMC ALT5 SEMC_BA1 PWM3_B3 I2C3_SCL ENET_TX_DATA0 QTIMER2_TIMER3 GPIO4:22
EMC_23 G2 EMC ALT5 SEMC_ADDR10 PWM1_A0 UART5_TX ENET_RX_EN GPT1_CAPTURE2 GPIO4:23
EMC_24 D3 EMC ALT5 SEMC_CAS PWM1_B0 UART5_RX ENET_TX_EN GPT1_CAPTURE1 GPIO4:24
EMC_25 D2 EMC ALT5 SEMC_RAS PWM1_A1 UART6_TX ENET_TX_CLK ENET_REF_CLK GPIO4:25
EMC_26 B3 EMC ALT5 SEMC_CLK PWM1_B1 UART6_RX ENET_RX_ER FlexIO1:12 GPIO4:26
EMC_27 A2 EMC ALT5 SEMC_CKE PWM1_A2 UART5_RTS SPI1_SCK FlexIO1:13 GPIO4:27
EMC_28 D1 EMC ALT5 SEMC_WE PWM1_B2 UART5_CTS SPI1_MOSI FlexIO1:14 GPIO4:28
EMC_29 E1 EMC ALT5 SEMC_CS0 PWM3_A0 UART6_RTS SPI1_MISO FlexIO1:15 GPIO4:29
EMC_30 C6 EMC ALT5 SEMC_DATA08 PWM3_B0 UART6_CTS SPI1_CS0 CSI_DATA23 GPIO4:30
EMC_31 C5 EMC ALT5 SEMC_DATA09 PWM3_A1 UART7_TX SPI1_CS1 CSI_DATA22 GPIO4:31
EMC_32 D5 EMC ALT5 SEMC_DATA10 PWM3_B1 UART7_RX CCM_PMIC_READY CSI_DATA21 GPIO3:18
EMC_33 C4 EMC ALT5 SEMC_DATA11 PWM3_A2 USDHC1_RESET_B SAI3_RX_DATA CSI_DATA20 GPIO3:19
EMC_34 D4 EMC ALT5 SEMC_DATA12 PWM3_B2 USDHC1_VSELECT SAI3_RX_SYNC CSI_DATA19 GPIO3:20
EMC_35 E5 EMC ALT5 SEMC_DATA13 XBAR_INOUT18 GPT1_COMPARE1 SAI3_RX_BCLK CSI_DATA18 GPIO3:21 USDHC1_CD_B
EMC_36 C3 EMC ALT5 SEMC_DATA14 XBAR_IN22 GPT1_COMPARE2 SAI3_TX_DATA CSI_DATA17 GPIO3:22 USDHC1_WP
EMC_37 E4 EMC ALT5 SEMC_DATA15 XBAR_IN23 GPT1_COMPARE3 SAI3_MCLK CSI_DATA16 GPIO3:23 USDHC2_WP
EMC_38 D6 EMC ALT5 SEMC_DM1 PWM1_A3 UART8_TX SAI3_TX_BCLK CSI_FIELD GPIO3:24 USDHC2_VSELECT
EMC_39 B7 EMC ALT5 SEMC_DQS PWM1_B3 UART8_RX SAI3_TX_SYNC WDOG1_B GPIO3:25 USDHC2_CD_B
EMC_40 A7 EMC ALT5 SEMC_RDY GPT2_CAPTURE2 SPI1_CS2 USB_OTG2_OC ENET_MDC GPIO3:26 USDHC2_RESET_B
EMC_41 C7 EMC ALT5 SEMC_CSX0 GPT2_CAPTURE1 SPI1_CS3 USB_OTG2_PWR ENET_MDIO GPIO3:27 USDHC1_VSELECT