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.

[参考译文] TDA4VM:有关唤醒 F24 引脚 PWM 的问题

Guru**** 2422250 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1543930/tda4vm-question-about-wakeup-f24-pin-pwm

器件型号:TDA4VM


工具/软件:

我的目标是将唤醒引脚 F24(特别是 MCU_TIMER_IO6)配置为作为 PWM 输出运行。

我已经尝试了下面的过程、但 PWM 波形没有出现在引脚 F24 上。
我想询问是否需要进一步的设置、或者这是否表示错误。

1、引脚多路复用 설정 Ω
- pdk_j721s2_09_02_00_30/packages/ti/board/j721s2_evm/J721S2_pinmux_data.c src


静态 pinmuxPerCfg_t gMcu_dmtimer0PinCfg[]=

/* MyMCU_DMTIMER1 -> MCU_TIMER_IO6 -> F24 */

PIN_WKUP_GPIO0_8、PIN_MODE (4)|\
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) 和 (~PIN_PULL_DIRECTION))
}、
{PINMUX_END}
};

static pinmuxModuleCfg_t gMcu_dmtimerPinCfg[]=

{0、true、gMcu_dmtimer0PinCfg}、
{PINMUX_END}
};

pinmuxBoardCfg_t gJ721S2_WkupPinmuxData[]=

{0、gMcu_adcPinCfg}、
{1、gMcu_cpsw2gPinCfg}、
{2、gMcu_i2cPinCfg}、
{3、gMcu_i3cPinCfg}、
{4、gMcu_mcanPinCfg}、
{5、gMcu_mdioPinCfg}、
{6、gMcu_ospiPinCfg}、
{7、gMcu_uartPinCfg}、
{8、gWkup_gpioPinCfg}、
{9、gWkup_i2cPinCfg}、
{10、gWkup_uartPinCfg}、
{11、gMcu_dmtimerPinCfg}、
{PINMUX_END}
};

2.代码  

#define CTRLMMR_MCU_TIMER6_CTRL 0x40F04218
#define MCU_TIMER6_CFG_BASE_ADDRESS (0x40460000U)
#define MCU_TIMER6_TCLR_ADDRESS (MCU_TIMER6_CFG_BASE_ADDRESS+0x38)
#define MCU_TIMER6_TCRR_ADDRESS (MCU_TIMER6_CFG_BASE_ADDRESS+0x3C)
#define MCU_TIMER6_TLDR_ADDRESS (MCU_TIMER6_CFG_BASE_ADDRESS+0x40)
#define MCU_TIMER6_TMAR_ADDRESS (MCU_TIMER6_CFG_BASE_ADDRESS+0x4C)
uint32_t regVal
uint32_t rvalue = 0
uint32_t= 0

regVal =
(
(1 << 29U)|//WKUP_EN
(1 << 16U)|//禁用上拉/下拉
(1 << 2U)//多路复用模式 4
);
issLogPrintf(“读取 J721S2_CTRLMMR_WKUP_PADCONFIG56 ADD 值:0x%8x\n“J721S2_CTRLMMR_WKUP_PADCONFIG56);
issLogPrintf(“写入 J721S2_CTRLLMMR_WKUP_PADCONFIG56 reg value:0x%8x\n“regVal);

HW_WR_REG32 (J721S2_CTRLMMR_WKUP_PADCONFIG56regVal);
regVal = HW_RD_REG32 (J721S2_CTRLLMMR_WKUP_PADCONFIG56);
issLogPrintf(“读取 J721S2_CTRLLMMR_WKUP_PADCONFIG56 reg value:0x%8x\n“regVal);

//将 MCU_TIMER6 配置为由 TMCU_TIMER6 输出驱动
HW_WR_REG32 (CTRLMMR_MCU_TIMER6_CTRL0x00000110);

//为 30Hz 操作配置计时器
HW_WR_REG32 (MCU_TIMER6_TLDR_ADDRESS0xfff63C00);//加载值
HW_WR_REG32 (MCU_TIMER6_TMAR_ADDRESS0xfffb0000);//匹配值
HW_WR_REG32 (MCU_TIMER6_TCRR_ADDRESS0xfff63C00);//计数器值
值=
(
(0 << 14u)|// PWM 输出
(1 << 12U)|//切换调制。
(1 << 11U)|//匹配和溢出事件
(0 << 10U)|//匹配和溢出事件
(0 << 7U)|// PWM 引脚处的默认值为高电平
(1 << 6U)|//禁用比较功能
(0 << 5U)|//禁用预分频器
(1 << 1U)|//自动重新加载模式
(1 << 0U)// 计时器启动
);
HW_WR_REG32(MCU_TIMER6_TCLR_ADDRESS,值)//计时器控制

regVal = HW_RD_REG32 (MCU_TIMER6_TCLR_ADDRESS);
issLogPrintf(“读取 MCU_TIMER6_TCLR_ADDRESS reg value:0x%8x\n“regVal);
我期待您的详细答复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它已经解决了。 谢谢你。

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

    好的、谢谢。

    此致

    Tarun Mukesh