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.

[参考译文] SK-TDA4VM:从 MCU1_0 设置 WKUP_GPIO0_3 引脚

Guru**** 2419530 points
Other Parts Discussed in Thread: SK-TDA4VM, TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1541239/sk-tda4vm-setting-the-wkup_gpio0_3-pin-from-mcu1_0

器件型号:SK-TDA4VM
Thread: TDA4VM 中讨论的其他器件

工具/软件:

您好、

我正在定制板上使用 SDK RTOS-09_02_00_05、该定制板具有与 SK-TDA4VM 相同的原理图。

WKUP_GPIO0_3 连接到 TCAN1046 收发器 STB1 引脚:

我正在尝试将 WKUP_GPIO0_3 引脚复位为低电平以启用收发器、但输出仍保持高电平状态。 Pinmux 配置:

    {
        PIN_WKUP_GPIO0_3, PIN_MODE(7) | \
        ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
    }


我使用的以下命令:
#define MCU_MCAN0_ENABLE_PIN            (0x3)

GPIOSetDirMode_v0(CSL_WKUP_GPIO0_BASE, MCU_MCAN0_ENABLE_PIN, GPIO_DIRECTION_OUTPUT);
GPIOPinWrite_v0(CSL_WKUP_GPIO0_BASE, MCU_MCAN0_ENABLE_PIN, GPIO_PIN_HIGH);

什么是我的缺失? 还是未配置某些功能?

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

    您好、

    我正在定制板上使用 SDK:rtos-09_02_00_05、该定制板具有与 SK-TDA4VM 相同的原理图。

    完整的 RTOS SDK 不会在 SK-TDA4VM 板上运行、因为我们提供了适用于 SK 板的特定固件构建器包。

    您只是尝试将 WKUP_GPIO0_3 引脚设置为低电平吗? 为什么要使用 GPIO_PIN_HIGH 进行写入?

    此外、您能否提供 padconfig 寄存器的转储文件?

    谢谢、

    Neehar

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

    Hy Neehar、

    完整的 RTOS SDK 将不会在 SK-TDA4VM 板上运行、因为我们有适用于 SK 板的特定固件构建程序包。

    是的、我知道、但我们想为 MCU R5F 内核编写特定的代码。

    您只是尝试将 WKUP_GPIO0_3 引脚设置为低电平吗? 为什么要使用 GPIO_PIN_HIGH 编写?

    我输入了错误、我正在使用 GPIO_PIN_LOW、但 GPIO PIN 无法正常工作。

    此外、您能否提供 padconfig 寄存器的转储?

        {
            PIN_WKUP_GPIO0_3, PIN_MODE(7) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },

    这是 pinmux。 这很好吗?

    此致、
    Tamas

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

    尊敬的 Tamas:

    您还能提供 padconfig 寄存器的转储吗? 这将确认 pinmix 正确设置寄存器。

    谢谢、

    Neehar

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

    嗨、Neehar、

    请举例说明我如何做到这一点。

    此致、
    Tamas

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

    尊敬的 Tamas:

    查看 TDA4VM 数据表中的图像、您需要转储地址为 0x04301C0BC 的寄存器、

    此外、您能否确认您正在使用适用于 SK-TDA4VM 的固件构建器包?

    谢谢、

    Neehar

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

    你好 Neehar、

    感谢您的帮助、我回读了以下值: 0xE59FF018。  

    此致、
    Tamas

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

    尊敬的 Tamas:

    根据下面的 padconfig 寄存器详细信息、似乎未正确设置 MUXMODE、因为 WKUP_GPIO0_3 的 MUXMODE 应该为 7。 如果没有 您当前的多路复用模式值、焊盘不会多路复用到任何信号。  

    您能否仔细检查并确认 0xE59FF018 是来自 padconfig 寄存器 (0x04301C0BC) 的实际值? 您转储的寄存器值看起来与 padconfig 寄存器的一般预期值非常不同。

    您能否将 padconfig 寄存器 (0x04301C0BC) 设置为 0x00040007 并 测试结果?

    谢谢、

    Neehar

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

    你好 Neehar、

    根据下面的 padconfig 寄存器详细信息、似乎没有正确设置 MUXMODE、因为对于 WKUP_GPIO0_3、MUXMODE 应该为 7。 如果没有 您当前的多路复用模式值、焊盘不会多路复用到任何信号。  [/报价]

    这真的很有趣、不过其他引脚配置也可以正常工作。

    您能否仔细检查并确认 0xE59FF018 是 padconfig 寄存器 (0x04301C0BC) 中的实际值? [/报价]

    是的、我将与您分享我的代码:

    uint32_t regVal = HW_RD_REG32(0x04301C0BC);
    snprintf(buffer, sizeof(buffer), 
                        "DUMP of PADCONFIG: 0x%08X\n",regVal);
    uart_write(DEBUG_UART, buffer);

    打印内容如下:
    PADCONFIG 的转储:0xE59FF018

    [报价 userid=“574070" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1541239/sk-tda4vm-setting-the-wkup_gpio0_3-pin-from-mcu1_0/5942403

    您能否将 padconfig 寄存器 (0x04301C0BC) 设置为 0x00040007 并 测试结果?

    [/报价]

    我已经尝试将该值写入寄存器、但没有任何变化。 可能有 2 种可能性:

    1、我搞砸了一些东西

    2.我是否需要设置另一个寄存器才能写入该寄存器?

    此致、
    Tamas  

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

    尊敬的 Tamas:

    [报价 userid=“600131" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1541239/sk-tda4vm-setting-the-wkup_gpio0_3-pin-from-mcu1_0/5943833

    我已经尝试将该值写入寄存器、但没有任何变化。 可能有 2 种可能性:

    1、我搞砸了一些东西

    2.我是否需要设置另一个寄存器才能写入该寄存器?

    [/报价]

    您确实需要设置另一个寄存器来写入 Padconfig 寄存器、因为它是 CTRL_MMR 寄存器的一部分。 您可以使用以下命令对其进行写入:

    #define PADCONFIG                       (0x04301C0BC)    /* WKUP_PADCONFIG27 */
    
    Board_init(BOARD_INIT_UNLOCK_MMR);
    
    *((uint32_t *)(PADCONFIG)) = 0x00040007;

    您是否在使用 u-boot? 要将输出设置为低电平、您需要执行以下简单步骤:

    root@tda4vm-sk:/opt/edgeai-gst-apps devmem2 0x04301C0BC w 0x00004007

    root@tda4vm-sk:/opt/edgeai-gst-apps devmem2 0x42110010 w 0xFFFFFFF7

    要清除:

    root@tda4vm-sk:/opt/edgeai-gst-apps devmem2 0x4211001C w 0x00000008

    设置:

    root@tda4vm-sk:/opt/edgeai-gst-apps devmem2 0x42110018 w 0x00000008

    谢谢、

    Neehar

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

    你好 Neehar、

    您确实需要设置另一个寄存器来写入 Padconfig 寄存器、因为它是 CTRL_MMR 寄存器的一部分。 您可以使用以下命令来写入:

    这解决了我的问题。 通过使用*((uint32_t *)(PADCONFIG)) = 0x00040007;、信号进入低电平状态、TCAN 收发器进入空闲状态。

    感谢您的帮助!

    此致、
    Tamas