Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: TCAN1043
Tool/software:
Hi.
I'm using TDA4VH-Q1 evm board. I'm trying to control MCAN3 or MCAN5 using MCU2_1 which is R5F.
I changed pinmux just like below and checked the MCAN3_H, MCAN_L pin is up to 2.5V.
However, I couldn't receive any can message from it. Please help me if there with this.
Board_IoExpCfg_t ioExpCfg[] = {
/*Set CANUART_MUX_SEL1 to LEVEL_HIGH*/
{
.i2cInst = BOARD_I2C_IOEXP_DEVICE1_INSTANCE,
.socDomain = BOARD_SOC_DOMAIN_MAIN,
.slaveAddr = BOARD_I2C_IOEXP_DEVICE1_ADDR,
.enableIntr = false,
.ioExpType = TWO_PORT_IOEXP,
.portNum = PORTNUM_1,
.pinNum = PIN_NUM_4,
.signalLevel = GPIO_SIGNAL_LEVEL_HIGH,
},
{
.i2cInst = BOARD_I2C_IOEXP_DEVICE2_INSTANCE,
.socDomain = BOARD_SOC_DOMAIN_MAIN,
.slaveAddr = BOARD_I2C_IOEXP_DEVICE2_ADDR,
.enableIntr = false,
.ioExpType = THREE_PORT_IOEXP,
.portNum = PORTNUM_0,
.pinNum = PIN_NUM_7,
.signalLevel = GPIO_SIGNAL_LEVEL_LOW,
},
/*Set CANUART_MUX1_SEL0 to LEVEL_HIGH */
{
.i2cInst = BOARD_I2C_IOEXP_DEVICE2_INSTANCE,
.socDomain = BOARD_SOC_DOMAIN_MAIN,
.slaveAddr = BOARD_I2C_IOEXP_DEVICE2_ADDR,
.enableIntr = false,
.ioExpType = THREE_PORT_IOEXP,
.portNum = PORTNUM_1,
.pinNum = PIN_NUM_5,
.signalLevel = GPIO_SIGNAL_LEVEL_HIGH,
},
/*Set CANUART_MUX2_SEL0 to LEVEL_HIGH */
{
.i2cInst = BOARD_I2C_IOEXP_DEVICE2_INSTANCE,
.socDomain = BOARD_SOC_DOMAIN_MAIN,
.slaveAddr = BOARD_I2C_IOEXP_DEVICE2_ADDR,
.enableIntr = false,
.ioExpType = THREE_PORT_IOEXP,
.portNum = PORTNUM_1,
.pinNum = PIN_NUM_6,
.signalLevel = GPIO_SIGNAL_LEVEL_HIGH,
},
/*Set CANUART_MUX_SEL1 to LEVEL_HIGH*/
{
.i2cInst = BOARD_I2C_IOEXP_DEVICE2_INSTANCE,
.socDomain = BOARD_SOC_DOMAIN_MAIN,
.slaveAddr = BOARD_I2C_IOEXP_DEVICE2_ADDR,
.enableIntr = false,
.ioExpType = THREE_PORT_IOEXP,
.portNum = PORTNUM_1,
.pinNum = PIN_NUM_7,
.signalLevel = GPIO_SIGNAL_LEVEL_HIGH,
},
};
for (int i = 0; i < sizeof(ioExpCfg) / sizeof(ioExpCfg[0]); i++) {
status = Board_control(BOARD_CTRL_CMD_SET_IO_EXP_PIN_OUT, &ioExpCfg);
}




