查看: 4957|回复: 3

IMXRT1050 flexPWM问题

[复制链接]

该用户从未签到

7

主题

15

帖子

0

注册会员

Rank: 2

积分
69
最后登录
2018-5-17
发表于 2018-1-9 15:41:14 | 显示全部楼层 |阅读模式
各位好,请问使用NXP提供的历程,将PWM1的子模块0,PWMA和PWMB配置为互补模式,但是用示波器测量时发现只有PWMB管脚有波形产生,PWMA管脚没有波形产生。请问这种情况有人遇到过么??

下面是管脚复用代码:
  1. IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B0_00_FLEXPWM1_PWMA00,0U);
  2. IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B0_01_FLEXPWM1_PWMB00, 0U);
  3. IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_00_FLEXPWM1_PWMA00, 0x10B0u);
  4. IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_01_FLEXPWM1_PWMB00, 0x10B0u);


复制代码
下面这个代码不知道是在做什么 :
  1.     /* Set the PWM Fault inputs to a low value */
  2.     XBARA_Init(XBARA1);
  3.     XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault0);
  4.     XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault1);
  5.     XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault2);
  6.     XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault3);
复制代码



回复

使用道具 举报

该用户从未签到

7

主题

15

帖子

0

注册会员

Rank: 2

积分
69
最后登录
2018-5-17
 楼主| 发表于 2018-1-9 15:44:08 | 显示全部楼层
下面是用到的管脚(图片贴不下):
Weld resister 0 Ω at R279, R280, R281. The PWM signal can be probed with an oscilloscope:
• AT J24-3  (PWMB)
• AT J24-6  (PWMA)

回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

15

帖子

0

注册会员

Rank: 2

积分
69
最后登录
2018-5-17
 楼主| 发表于 2018-1-9 16:07:39 | 显示全部楼层
  1.     PWM_GetDefaultConfig(&pwmConfig);                  //获得默认配置

  2.     /* Use full cycle reload */
  3.     pwmConfig.reloadLogic = kPWM_ReloadPwmFullCycle;
  4.     pwmConfig.pairOperation = kPWM_ComplementaryPwmA;   //PWMA 和 PWMB配置为互补模式
  5.     pwmConfig.enableDebugMode = LW_TRUE;

  6.     /* 初始化子模块0 */
  7.     if (PWM_Init(BOARD_PWM_BASEADDR, kPWM_Module_0, &pwmConfig) == kStatus_Fail)
  8.     {
  9.             PRINTF("PWM initialization failed\n");
  10.             return 1;
  11.     }

  12.     pwmSignal[0].pwmChannel = kPWM_PwmA;   
  13.     pwmSignal[0].level = kPWM_HighTrue;          //高电平为活跃
  14.     pwmSignal[0].dutyCyclePercent = 80;          /* 1 percent dutycycle */
  15.     pwmSignal[0].deadtimeValue = deadTimeVal;   //死区时间

  16.     pwmSignal[1].pwmChannel = kPWM_PwmB;
  17.     pwmSignal[1].level = kPWM_HighTrue;
  18.     //因为是互补模式,因此PWMB的占空比不关心
  19.     pwmSignal[1].dutyCyclePercent = 40;
  20.     pwmSignal[1].deadtimeValue = deadTimeVal;
  21.     //启动PWM1
  22.     PWM_SetupPwm(PWM1, kPWM_Module_0, pwmSignal, 2, kPWM_CenterAligned, pwmFrequencyInHz,
  23.                  pwmSourceClockInHz);
  24. 然后调用:PWM_SetPwmLdok和PWM_StartTimer;

  25. 感觉应该不是PWM控制器配置的问题,应该是管脚复用或者是那段看不懂的代码的问题?




复制代码

下面是初始化配置PWM控制器的代码:
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

15

帖子

0

注册会员

Rank: 2

积分
69
最后登录
2018-5-17
 楼主| 发表于 2018-1-10 10:43:14 | 显示全部楼层
已经解决了,是因为电阻没焊的原因。。。。。。。。。。。。。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-18 13:22 , Processed in 0.084844 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表