NXP MCU 技术论坛
直播中

听风说梦

10年用户 965经验值
擅长:可编程逻辑 嵌入式技术 EMC/EMI设计
私信 关注
[问答]

在IMX RT1170的POR期间,PWM引脚变为高电平是怎么回事?

我使用GPIO_AD_00生成 PWM 信号,并且工作正常。但是当我在 RT1170 中执行 POR作时。然后 PWM 引脚变高,直到电路板启动。启动后,它按预期生成 PWM 信号。但我不希望 PWM 引脚在执行 POR 时变为高电平,直到电路板启动。您能否就此问题帮助我。

回帖(1)

lique

2025-4-2 18:12:39

在IMX RT1170中,POR期间PWM引脚(如GPIO_AD_00)出现高电平的问题,通常与复位期间引脚的默认配置相关。以下是逐步解决方案:


1. 确认复位期间的引脚默认状态



  • 参考手册:查阅IMX RT1170参考手册的“System Boot”和“IOMUXC”章节,确认POR期间GPIO_AD_00的默认复用模式(MUX)、上下拉电阻状态(PUS)和输出值。

  • 默认模式:复位时,引脚可能被配置为GPIO输入模式且内部上拉电阻启用,导致高电平。


2. 调整软件初始化顺序



  • 尽早配置引脚:在启动代码的最初阶段(如main()函数开始或复位处理函数中),立即将引脚配置为低电平输出:
     // 示例代码(基于SDK)
    GPIO_PinWrite(GPIO1, 0, 0);        // 将GPIO_AD_00输出低电平
    IOMUXC_SetPinMux(IOMUXC_GPIO_AD_00_PWM1_OUT, 1); // 复用为PWM功能

  • 关闭上拉电阻:在复用为PWM前,禁用内部上拉:
     IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_00_PWM1_OUT, 0x10B0); // 关闭上下拉


3. 配置PWM模块的初始极性



  • 设置PWM极性:在初始化PWM时,确保输出极性为低电平有效(根据硬件需求调整):
     pwm_config_t pwmConfig;
    PWM_GetDefaultConfig(&pwmConfig);
    pwmConfig.polarity = kPWM_LowTrue; // 低电平有效
    PWM_Init(PWM1, kPWM_Module_0, &pwmConfig);


4. 硬件调整(可选)



  • 外部下拉电阻:在PCB上添加一个4.7kΩ的下拉电阻到GPIO_AD_00,强制在复位期间拉低电平,直到处理器控制引脚。


5. 验证启动配置选项



  • 检查BOOT CFG:确保BOOT配置引脚(如BOOT_MODE)未错误地启用上拉或影响GPIO状态。


6. 测试与验证



  • 使用示波器监测POR期间GPIO_AD_00的电平变化,确认软件修改是否有效缩短高电平时间。


通过上述步骤,可以在复位期间将PWM引脚保持低电平,确保系统启动后正常输出PWM信号。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分