TDA4VM: AUTOSAR MCAL CAN通訊DEMO 開發提問

Part Number: TDA4VM

使用的SWEB提供的ACP_8.8.9這個版本.
首先想嘗試GPIO拉動HIGH、LOW功能,例如J721E上的WKUP_GPIO0_6這個Test point,但GPIO Default為INPUT,請問如何在MCAL上更改設定為OUTPUT?
參考範例app發現於Register上有保護機制,這部分又該如何整合至MCAL 來解除lock呢?

再者,若要mcan0 EN/STB (wkup_gpio0_0/ wkup_gpio0_2) 這兩個gpio目前也是處於鎖定無法致能,導致CAN無法正常通訊。如何改動上述狀態,並整合在MCAL內容?

  • 您好

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 您好

    首先想嘗試GPIO拉動HIGH、LOW功能,例如J721E上的WKUP_GPIO0_6這個Test point,但GPIO Default為INPUT,請問如何在MCAL上更改設定為OUTPUT?

    通常应使用MCAL中的PORT模块来完成此操作,但TI未提供MCAL的PORT模块。因此,我们不得不直接在MCAL中写入寄存器。在我们的DIO示例中,DioApp_Startup API部分已展示更改DIO实例、引脚方向和初始值的步骤。

    參考範例app發現於Register上有保護機制,這部分又該如何整合至MCAL 來解除lock呢?

    若需向CTRL_MMR寄存器写入数据,必须先解锁这些寄存器,再进行访问。

    再者,若要mcan0 EN/STB (wkup_gpio0_0/ wkup_gpio0_2) 這兩個gpio目前也是處於鎖定無法致能,導致CAN無法正常通訊。如何改動上述狀態,並整合在MCAL內容?

    如上所述,如果寄存器是CTRL_MMR,如果它们被锁定(通常由SBL锁定),我们就不能直接写入。

    TRM中提到了CTRL-MMR寄存器的分区

    For Example:

    /* Unlock lock key registers for Partition 7: IO PAD
    configuration registers in MAIN_CTRL_MMR */
    /* write Partition 7 Lock Key 0 Register */
    LLD_REG32_WR(CSL_WKUP_CTRL_MMR0_CFG0_BASE + 0x1D008, 0x68EF3490);
    /* write Partition 7 Lock Key 1 Register */
    LLD_REG32_WR(CSL_WKUP_CTRL_MMR0_CFG0_BASE + 0x1D00C, 0xD172BC5A);
    /* Check for unlock */
    regVal = LLD_REG32_RD(CSL_WKUP_CTRL_MMR0_CFG0_BASE + 0x1D008);
    while ((regVal & 0x1) != 0x1U)
    {
    regVal = LLD_REG32_RD(CSL_WKUP_CTRL_MMR0_CFG0_BASE + 0x1D008);
    }