主题中讨论的其他器件: MSP430WARE
工具/软件:Code Composer Studio
MSP430专家、您好!
我一直通过使用 MSP430F5152 MCU 参考 PMP7605参考软件来设计 MPPT 控制器。
由于计时器 D0/D1被记录为在高分辨率模式中使用向上/向下计数模式来建立适当死区时间有问题,
我尝试使用 TEC 清除命令 TEC1XCTL2 |=TECAXCLREN & TD0CTL0 |= TDCLR 来同步计时器 D1/D1。
尽管使用了与 TD0CCTL0/1/2和 TD1CCTL0/1/2相同的值、但生成的 PWM 波形不同步。
但随附的示波器捕获会产生大约800nsec 的时间差。 还连接了 S/W 例程。
您能不能建议出什么问题吗?
unsigned int Duty =304、duttime =25;
{
get_TLV_Info (TLV_TIMER_D_CAL、0、&bTD0CAL_bytes、(无符号整型**)&pTD0CAL);
//Get TimerD0校准值(实例0)
if (bTD0CAL_bytes = 0x0)
{
//未找到 TimerD 自由运行校准数据
while (1); //此处循环
}
//配置主计时器实例- TimerD0、高分辨率校准模式
TD0CTL0 = MC_1 + TDSSEL_2; // TDCLK = SMCLK = 25MHz =高分辨率输入时钟选择
TD0CTL1 |= TD2CMB + TDCLKM_1; //选择高分辨率本地时钟
TD1CTL0 |= MC_1 + TDSSEL_2; //向上计数模式、
TD1CTL1 = TD2CMB + TDCLKM_2;// TD1时钟=主定时器实例的辅助时钟源
TD0HCTL1 = pTD0CAL->TDH0CTL1_128; //读取128Mhz TimerD TLV 数据
TD0HCTL0 = TDHEN + TDHM_0; // calen=0 =>自由运行模式;启用高分辨率模式
TD1HCTL0 = TDHEN + TDHM_0; // calen=0 =>自由运行模式;启用高分辨率模式
//此处、Timer D 配置为以128Mhz 运行
TD0CCR0 = 696; //针对非交错运行1通道 TimerD
TD0CCR1 =占空比-死区时间; //高侧 PW_H1 >> PW_H2
TD0CCR2 = 696 -死区时间; //低侧 PW_L1 >> PW_L2
TD0CCTL2 |= OUTMOD_7; // TD1CCR2、设置/复位
TD1CCR0 = 696; // 128M/696 = 182.xxKhz 是降压级的工作频率
TD1CCR1 =占空比-死区时间; //
TD1CCR2 = 696 -死区时间;
TD1CCTL2 |= OUTMOD_7;//+ CLLD_1; // TD0CCR2、设置/复位
//同步主控(TD0)和受控(TD1)定时器实例
//
TEC1XCTL2 |= TECAXCLREN; //通过启用从机计时器的辅助清零来启用同步清零
// TEC0XCTL2 = TECAXCLREN; //通过启用从机计时器的辅助清零来启用同步清零
TD0CTL0 |= TDCLR;//+ TDCLGRP_1;清除 TDR、启动计时器启动
// TD1CTL0 |= TDCLR;//+ TDCLGRP_1; TD1CCTL2 = OUTMOD_7;//+ CLLD_1;
TD0CCTL2 = OUTMOD_7;//+ CLLD_1; TD1CCTL1 = OUTMOD_7 + CLLD_1;
init_ios ();
}
空 Init_IOS (空)
{
P2SEL |= BIT0 + BIT3;// BIT0 // P2.0/TD0.2、P2.2/TD1.1、P2.3/TD1.2、选项选择
P2DIR |= BIT0 + BIT3 + BIT6 + BIT4; //、
谢谢、
YS Kim