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.

[参考译文] AM62P:如何从 Linux 访问 MCU_CAN?

Guru**** 2468770 points
Other Parts Discussed in Thread: AM62P, TDA4VM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442776/am62p-how-to-access-mcu_can-from-linux

器件型号:AM62P
主题中讨论的其他器件: TPS65224TDA4VM

工具与软件:

您好、TI 团队:

我想从 Linux 端访问 MCU_CAN、我已按照以下链接中提供的说明对其进行了访问:

https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/10_00_07_04/exports/docs/linux/Foundational_Components /内核/MCAN/MCAN.html#mcan Kernel_Drivers

但它会产生误差 "无法找到器件"mcu_mcan0"。

之后、我还尝试启用相关器件树叠加"k3-am62x-sk-mcan.dtbo"、但我在/boot 目录下未找到此文件、并且无法正常工作。

因此、请指导如何从 Linux 端启用/访问 MCU_MCAN。

此外、您能否共享用于在 AM62P 上禁用看门狗的命令?

此致、

Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shrikant:

    您使用了什么命令来启用 DT 叠加?

    看起来覆盖文件未正确应用、因此无法识别 mcu_mcan0。

    请分享 dmesg | grep can 的输出

    此致、
    Aparna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好

    感谢您的快速响应。

    我使用了以下命令来启用 DT 覆盖:

    setenv name_overlays ti/k3-am62x-sk-mcan.dtbo 
    引导

    dmesg 输出如下:

    root@am62pxx-evm:~# dmesg | grep can
    [   0.385449] HugeTLB: 0 KiB vmemmap 可以为1.00 GiB 页面释放
    [   0.398785] HugeTLB: 0 KiB vmemmap 可以为32.0 MIB 页面释放
    [   0.412121] HugeTLB: 0 KiB vmemmap 可以为2.00 MIB 页面释放
    [   0.425457] HugeTLB: 0 KiB vmemmap 可被释放用于64.0 KiB 页
    root@am62pxx-EVM:~#

    如果您需要任何其他详细信息、请告诉我。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shrikant:

    DT 覆盖不会应用在基本 DTB 之上。

    您能分享的输出吗 => ls MMC 1:2 boot/dtb/ti U-boot 提示符下完成

    AM62P 应该有一个单独的 dtbo 文件

    还可以尝试运行

    setenv name_overlays .dtbo 
    引导

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 

    的输出 LS MMC 1:2 boot/dtb/ti 在 U-boot 提示符下、如下所示:

    => ls MMC 1:2 boot/dtb/ti

          409.
          4096 .
               3313 k3-am62p5-SK-DSI-RPI-7inch-panel.dtbo
                928 k3-am62p5-sk-dss-shared-mode.dtbo
                936 k3-am62p5-sk-eQEP.dtbo
               3124 k3-am62p5-sk-mcan.dtbo
               1983 k3-am62p5-sk-microtips-mf101hie-panel.dtbo
               1531 k3-am62p5-sk-microtips-mf103hie-lcd2.dtbo
               2545 k3-am62p5-sk-rpi-hdr-ehrpwm.dtbo
              60449 K3-am62p5-sk.dtb.
               1915 k3-am62x-sk-csi2-imx219.dtbo
               1886 k3-am62x-sk-csi2-ov5640.dtbo
               1886 k3-am62x-sk-csi2-tevi-ov5640.dtbo
               2131 k3-am62x-sk-csi2-v3link-FUSION.dtbo
               1345 k3-am62x-sk-hdmi-audio.dtbo
                478 k3-am62x-sk-hdmi-disable-fastboot.dtbo
               4232 k3-am62x-sk-lmm-wkup-sources.dtbo

    我也尝试过"etenv name_overlasters ti/k3-am62p5-sk-mcan.dtbo"命令、但运气差。

    对于命令、我不确定要使用哪个.dtbo 文件。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shrikant:

    尝试以下操作:

    setenv name_overlays ti/k3-am62p5-sk-mcan.dtbo 

    引导

    此致

    Aparna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 

    我能够使用以下命令加载.dtbo 文件:

    setenv name_overlays k3-am62p5-sk-mcan.dtbo 

    现在、我可以启动 MCU_MCAN 接口。
    您能告诉我们,如何在 AM62P 上禁用 Watchdong 吗?

    此致、
    Shrikant
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否尝试在 AM62P 的 DTS 文件中禁用看门狗状态

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/10_00_07_04/exports/docs/linux/Foundational_Components /内核/ Kernel_Drivers / Watchdog.html

    此致、
    Aparna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的,这是一个可能的选项,但我正在寻找命令将写入一个寄存器禁用看门狗.

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    默认情况下、禁用看门狗。 您不需要额外禁用它。

    请从 Linux 提示符中检查 RTI0、RTI1等的值。 该值应为0x5312ACDE、这意味着 WDT 被禁用。

    此致、
    Aparna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好
    外部看门狗的过程是否也一样?

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shrikant、您好!

    一旦安全装置 启动、内部安全装置不能被禁用。

    我不确定您是否在与哪个看门狗通话? PMIC 看门狗?

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 

    我将介绍 PMIC 看门狗(PMIC TPS65224)。 我想通过写入 WD_THR_CFG 寄存器的 WD_EN 位来禁用看门狗、但无法通过 Linux I2C 实用程序访问 I2C 器件。 PMIC 连接到 WKUP_I2C0。 进一步了解后、我了解到 k3-am62p-wakeup.dtsi 本身中的 wkup_i2c0器件节点被禁用。 与 TDA4VM 不同、PMIC 没有 DTS 节点。 请建议一种在 AM62P 上禁用 PMIC 看门狗的方法。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shrikant、您好!

    MCU+SDK 提供了 WAKUP I2C 示例。

    我需要确定需要发送哪个命令来禁用看门狗。

    我可以在明天更新状态。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shrikant、您好!

    MCU+SDK 中提供了 PMIC 示例。

    现在以 PMIC 为例、尝试从示例中禁用看门狗。

    路径: \ti\mcu_plus_sdk_am62px_10_00_00_14\examples\drivers\PMIC

    示例中没有看门狗禁用支持。

    但是,该驱动程序也可用于控制看门狗禁用。

    请调用下面的 API 并将其禁用。

    下面的示例是启用看门狗、但在您想禁用看门狗的情况下、我希望以下示例适合您、可以尝试使用此示例。

    如果您遇到任何问题、请告知我们。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Shrikant、您好!

    问题是否已解决?

    您需要帮助吗?因为您发布了一个回复并将其删除。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Swargam、
    此问题尚未解决。 我们正在我们的使用 TPS6522430W RAHRQ1 PMIC 的定制电路板上执行这些步骤。 我们尝试按如下所示修改了现有的 pmic_user_reg_cfg 示例。

    void pmic_user_reg_cfg_main(void *args)
    {
        uint32_t status = SystemP_FAILURE;
    
        /* PMIC interface handle initialized by PMIC_open */
        Pmic_CoreHandle_t *coreHandle = gPmicConfig[CONFIG_PMIC0].pmicCoreHandle;
        DebugP_assert(NULL != coreHandle);
    
        DebugP_log("\r\n");
        DebugP_log("Starting PMIC user space register configuration example !!\r\n\n");
    
    /*    status = PMICApp_configureADC(coreHandle);
        if(SystemP_SUCCESS == status)
        {
            status = PMICApp_thermalMonitoring(coreHandle);
        }
    
        if(SystemP_SUCCESS == status)
        {
            status = PMICApp_voltageMonitoring(coreHandle);
        }
    
        if(SystemP_SUCCESS == status)
        {
            status = PMICApp_configureGPIO(coreHandle);
        } */
        
        status = Pmic_wdgDisable(coreHandle);
    
        if(SystemP_SUCCESS == status)
        {
            DebugP_log("All tests have passed!!\r\n");
        }
        else
        {
            DebugP_logError ("Some tests have failed!!\r\n");
        }
    
        return;
    }
    

    我们还使用 SYSCFG-GUI 在定制电路板上完成了 PMIC 配置。 请找到随附的屏幕截图以供参考。

    使用更新的系统配置编译了修改后的 pmic_user_reg_cfg 示例。 我们正在得到"所有测试都通过了!" 日志、但未禁用看门狗。 我们能否快速打电话来探讨这个问题。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shrikant:

    该主题专家目前在本周和下周不在办公室。 请预计响应会延迟。 感谢您的耐心。

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好

    我们在这个问题上被阻止了很长一段时间、等待两周将是困难的。 因此、请您将问题转给另一位专家。 此外,你可以建议的事情,我们可以尝试在我们结束通话之前.

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Shrikant、您好!

    您可以期待 EOD 的回复。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
    我们能快速打电话来讨论这个问题吗? 这将帮助我们更快地解决问题。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Shrikanth ,

    很抱歉回复延迟。

    我查看的是 PMIC 数据表、今天我会推荐一种方法。 如果这不起作用、我们可以进行呼叫。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
    这里只是想补充一下之前的详细信息。 我已在评估板以及定制板上执行以下代码。 代码在评估板上运行良好、我得到寄存器默认值、禁用看门狗后、更新的值会反映、但在我们的定制板中、我始终得到寄存器值为0x00000000。

    void pmic_user_reg_cfg_main(void *args)
    {
        uint32_t status = SystemP_FAILURE;
        bool    wdgEnabled = false;
        uint8_t regVal = 0x0U;
    
        /* PMIC interface handle initialized by PMIC_open */
        Pmic_CoreHandle_t *coreHandle = gPmicConfig[CONFIG_PMIC0].pmicCoreHandle;
        DebugP_assert(NULL != coreHandle);
    
        DebugP_log("\r\n");
        DebugP_log("Starting PMIC user space register configuration example !!\r\n\n");
        
        status = Pmic_commIntf_recvByte(coreHandle, PMIC_WD_THR_CFG_REGADDR, &regVal);
        if (PMIC_ST_SUCCESS == status)
        {
        	DebugP_log("regval before WDG disable = %p\r\n",regVal);
        }
        
        status = Pmic_wdgGetEnableState(coreHandle, &wdgEnabled);
        if(SystemP_SUCCESS == status)
        {
            DebugP_log("Fetched Watchdog state successfully!!\r\n");
        }
        else
        {
            DebugP_logError ("Unable to fetch the Watchdog state !!\r\n");
        }
        
        if(wdgEnabled)
        {
    	status = Pmic_wdgDisable(coreHandle);
    
    	if(SystemP_SUCCESS == status)
    	{
    		DebugP_log("Watchdog disabled successfully!!\r\n");
    	}
    	else
    	{
    		DebugP_logError ("Watchdog disable failed!!\r\n");
    	}
        }
        
        status = Pmic_commIntf_recvByte(coreHandle, PMIC_WD_THR_CFG_REGADDR, &regVal);
        if (PMIC_ST_SUCCESS == status)
        {
        	DebugP_log("regval After WDG disable = %p\r\n",regVal);
        }
    
        return;
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shrikant、您好!

    您可以确认 在定制硬件上与 PMIC 连接了多少个 I2C 吗?

    在 EVM 侧、我们连接了两个 I2C 和一个 I2C、专用于看门狗 QA 模式支持。  

    您是否还可以确认您在 CUSTOM 和 EVM HW 上尝试的示例是什么?

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否确认 在定制硬件上与 PMIC 连接了多少个 I2C?

    我们在定制电路板上连接了2个 I2C、一个是 MCU_I2C0、另一个是 WKUP_I2C0。 请参阅

    下图下方供参考:

    您能否同时确认您在自定义和 EVM HW 上尝试过哪一个示例?

    我尝试了"PMIC_QA_WATCHDOG_RESET"和"PMIC_USER_reg_cfg"示例。

    此致、

    Shrikant

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Shrikant、您好!

    您可以采用 PMIC QA 看门狗示例、并将示例中突出显示的红色标记代码复制到同一位置并编译。

    编译后、连接调试器并从 CCS 加载示例、然后看到看门狗仍然启用或禁用。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我尝试了您的解决方案、但收到以下错误:

    正在启动 Q&A 看门狗中断示例!!
    根据通信模式为 Q&A 看门狗配置 PMIC GPIO 引脚... 停止更新的
    [错误] Sciclient 事件配置失败!!!
    0:assert:0.12501s:../board.c:Sciclient_gpioIrqSet:98:false 失败!!

    我们是否可以打电话来讨论这个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Naman Kumar

    上面的示例表明、我已经在 EVM 上进行了验证、它正在工作。

    是从 SCI 客户端错误得到的错误。 这可能来自您的 Linux 应用程序。

    MCU GPIO 端口已在 Linux 应用程序中使用。

    如果是这种情况、请尝试以下步骤。  

    GPIO 组中断一次只能路由到一个内核。 例如、如果 GPIO 中断路由到 Linux A53内核、则无法将相同的中断路由到其他内核(M4/R5)。在具有 Linux 内核的处理器上运行 GPIO 输入中断示例之前、请禁用 Linux devicetree 板级配置文件中的任何重叠条目。 通过修改器件树板文件(arch/arm62P/boot/dts/ti/k3-am642-evm.dts)、可以将 GPIO 从 Linux 器件树中排除

    &MCU_GPIO0{
    STATUS ="保留";
    };
    &mcu_gpio_intr{
    STATUS ="保留";
    };
    如果您仍然面临这些问题、请安排 FAE 的电话。
    此致、
    Anil。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我检查了 sciclient_defaultBoardcfg_rm.c

    我没有找到任何 路由到 Linux A53和 (M4/R5)内核的 GPIO 组中断。

    共享快照

    我们使用的是 TISCI_DEV_MAIN_GPIOMUX_INTROUTER0、这里我们可以看到、  对于 Linux A53和 (M4/R5)内核、start_resource 是不同的。

    我的理解是否正确?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    团队成员、您好!

    目前、由于这个问题、我们一直处于开发阶段? 您能回答这个问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Naman、

    您需要查看 LINX 设备树文件并检查 Linux 内核是否使用 MCU GPIO。

    如果 Linux 内核使用 MCU GPIO 端口、则需要应用以下方法。

    [报价 userid="525901" url="~/support/processors-group/processors/f/processors-forum/1442776/am62p-how-to-access-mcu_can-from-linux/5628403 #5628403"]
    &MCU_GPIO0{
    STATUS ="保留";
    };
    &mcu_gpio_intr{
    STATUS ="保留";
    };
    [报价]

    此致、

    Anil。