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.

[参考译文] TDA4AL-Q1:我们可以将 MCU_ADC1_AINx 设置为 GPIO 吗

Guru**** 2477065 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1456579/tda4al-q1-could-we-set-mcu_adc1_ainx-as-a-gpio

器件型号:TDA4AL-Q1
主题中讨论的其他器件:DA8XX

工具与软件:

您好、亲爱的专家。

我们需要将 MCU_ADC1_AIN0、 MCU_ADC1_AIN1、MCU_ADC1_AIN2 、 MCU_ADC1_AIN3设置为 GPIO

查看数据表后、我认为这些引脚仅支持 GPIO 输入。 引脚多路复用模式应为"7"(PADCONFIG 位0~位3)

但我仔细检查 TRM 寄存器的 PADCONFIG 位0~位3设置、发现这些位是保留位

 

我觉得有点混乱、这些引脚是否可以设置 GPIO?

谢谢!

Gibbs

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

    由于节假日、将从12月25日到1月2日推迟答复。 感谢您的耐心。

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

    嗨、Gibbs、

    只能将这些引脚设置为 GP (输入)。 它们不受 PADCONFIG 寄存器 MUXMODE 位控制、而是由另一个 CTRLMMR 寄存器控制。

    从中删除  5.5.1.2 ADC 集成详细信息 其余部分。

    谢谢。此致、
    标记

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

    尊敬的 Mark:

    我正在尝试将   MCU_ADC1_AIN0配置为正常 GPIO 输入。
    App_Console 45cf ("@@ CSL_MCU_CTRL_MMR0_CFG0_BASE + CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL:%x \n"、CSL_MCU_CTRL_MMR0_CFG0_BASE+ CSL_MCU_CTRL_MMR_CFG0_MCU_MCU_MCU_ADC1_CTRL);

    regVal = CSL_REG32_RD (CSL_MCU_CTRL_MMR0_CFG0_BASE + CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL);

    App_Console 8.45f ("@@读取 CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL 原始 regVal:%x \n"、regVal);

    App_Console 45cf ("@@写入 GPI 模式 CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL_GPI_MODE_EN_MASK \n");

    HW_WR_FIELD32_RAW (CSL_MCU_CTRL_MMR0_CFG0_BASE + CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL、CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL_GPI_MODE_EN_MASK、CSL_MCU_CTRL_MMR_MCU_MMR_CFG0_MCU_MCU_MCU_MCU_ADC1_MODE_EN_SHIFG);

    regVal = CSL_REG32_RD (CSL_MCU_CTRL_MMR0_CFG0_BASE + CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL);
    App_Console 8.45f ("@@ CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL 原始 regVal:%x \n"、regVal);
     
     40f040b4寄存器的原始值:0x1。  
    我无法将其更改为 GPIO 输入模式。
    您能帮助检查出了什么问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hans:

    CTRL_MMR 锁定/脚踢保护寄存器是否已解锁?
    我认为它们应该分别在0x40F05008和0x40F0500C 处是 lock1_KICK0和 lock1_KICK1。

    此致、
    标记

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

    尊敬的 Mark:

    我现在可以在解锁这些寄存器后从 MCU_ADC1_AINx 引脚读取值。

    顺便说一下、我可以在 ti-u-boot 引导加载程序中实现这些功能吗?

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

    尊敬的 Hans:

    很高兴听到!

    对于 ti-u-boot 引导加载程序、您是否指的是修改器件树以将它们配置为 GPI?

    此致、
    标记

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

    尊敬的 Mark:

    我在 j721s2_init.c 中看到了 mMR_unlock API、我将在 ti-u-boot 中遵循相同的规则。

    我在 MCU 端使用 GPIOPinREAD_V0、我在 ti-u-boot 中找不到类似的 API。
    您能告诉我如何在 ti-u-boot 中从 GPIO 读取值吗?


    如果我可以使用 MMR_UNLOCK 更改寄存器值、应该注意设备树吗?

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

    尊敬的 Hans:

    [报价 userid="634598" url="~/support/processors-group/processors/f/processors-forum/1456579/tda4al-q1-could-we-set-mcu_adc1_ainx-as-a-gpio/5598677 #5598677"]

    您能告诉我如何在 ti-u-boot 中从 GPIO 读取值吗?

    [报价]

    您可以尝试 da8xx_gpio.c 驱动程序;这是常规 GPIO 使用的。 在设备树中查看 GPIO 的兼容性、您可以查找具有相应兼容性的驱动程序、在本例中为"ti、keystone-gpio"。

    如果我可以使用 MMR_UNLOCK 来更改寄存器值、我该怎么办?

    应该为 GPIO 添加一个设备树节点、以便探测驱动程序。

    此致!
    Jared

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

    尊敬的 Jared、Mark、

    解锁该寄存器并将 CSL_MCU_CTRL_MMR_CFG0_MCU_ADC1_CTRL 0x40f040b4设置 为 regVal:10001。  

    #define CSL_WKUP_GPIO0_BASE                        (0x42110000UL)
    #define MCU_ADC1_AIN0               (0x4F)//(79)

    使用  value = readl (CSL_WKUP_GPIO0_BASE + MCU_ADC1_AIN0); 在 ti-u-boot 中、即使我将寄存器配置为 GPIO 输入、也无法从 GPIO 读取值。

    但在 th MCU 侧使用  GPIOPinREAD_V0 (CSL_WKUP_GPIO0_BASEMCU_ADC1_AIN0);它可以从 GPIO 读取值。

      ti-u-boot 模式下的 MCU_ADC1_AIN0 WKUP_GPIO0_79寄存器地址是多少?

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

    尊敬的 Hans:

    CSL_WKUP_GPIO0_BASE + MCU_ADC1_AIN0不是引脚状态的地址。

    GPIO 引脚的状态将在 GPIO 组4内、因为它是79号 GPIO。

    银行编号 GPIO 范围
    0 15:0
    1. 31:16
    2. 47:32.
    3. 63:48
    4. 79:64

    WKUP_GPIO0组4的寄存器为0x42110070 [15:0];具体而言、引脚将为位15。

    此致!
    Jared

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

    尊敬的 Jared:

    读取 WKUP_GPIO0组4的寄存器是0x42110070 [15:0];具体而言、引脚将是位15。

    我也想知道其他银行0-1, 2-3映射寄存器地址.

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

    尊敬的 Hans:

    组0和1:0x42110020

    组2和3:0x42110048

    此致!
    Jared

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

    尊敬的 Jared:

    感谢您提供的信息。 这解决了我的问题。

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

    尊敬的 Hans:

    很高兴您的问题得到解决。 请将该回复标记为已解决您的问题。

    此致!
    Jared