This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G3507: MCU作为从机,I2C SCL短接到GND 1秒后松开,SCL无法恢复高电平

Part Number: MSPM0G3507

如题,本来MCU作为从机,I2C可以正常被外部主机读写,但是无意中把SCL短时间内拉低(如1秒),然后松开,SCL居然无法恢复。

经排查是3507这边的问题(重启主机无效,重启从机恢复)。

开启所有中断标志位,无法响应,甚至TimeoutA设置也无法响应。

目前看不知道这个问题出现的原因,且3507作为从机自身也没有标志位可感知此异常:

  • 补充:看现象3507作为从机把SCL给拉住了(0电平)

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SYSCONFIG_WEAK void SYSCFG_DL_I2C_init(void) {
    DL_I2C_setClockConfig(I2C_INST,
    (DL_I2C_ClockConfig *) &gI2CClockConfig);
    DL_I2C_disableAnalogGlitchFilter(I2C_INST);
    /* Configure Target Mode */
    DL_I2C_setTargetOwnAddress(I2C_INST, I2C_TARGET_OWN_ADDR);
    DL_I2C_setTargetTXFIFOThreshold(I2C_INST, DL_I2C_TX_FIFO_LEVEL_BYTES_1);
    DL_I2C_setTargetRXFIFOThreshold(I2C_INST, DL_I2C_RX_FIFO_LEVEL_BYTES_1);
    DL_I2C_enableTargetTXEmptyOnTXRequest(I2C_INST);
    DL_I2C_enableTargetClockStretching(I2C_INST);
    /* Configure Interrupts */
    DL_I2C_enableInterrupt(I2C_INST,
    DL_I2C_INTERRUPT_TARGET_RXFIFO_TRIGGER |
    DL_I2C_INTERRUPT_TARGET_START |
    DL_I2C_INTERRUPT_TARGET_STOP);
    /* Enable module */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 急急急!! 

    这是有什么处理办法?还是说是这个芯片的硬伤(无法解决?)。

  • 有没有TI工程师可以解答一下。我感觉这有点像是芯片bug。

  • 求解答!!!

  • 哪位能帮忙看下这个问题?

  • 求解!!!

  • 有会的吗?

  • 您好 

    您可以尝试disable SCLKSTRETCH