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.

[参考译文] TI 低功耗微控制器

Guru**** 1640390 points
Other Parts Discussed in Thread: MSP430F5336, MSP430FR2355, MSP430F5172
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/770742/ti-low-power-microcontroller

主题中讨论的其他器件:MSP430F5336MSP430FR2355MSP430F5172

HII

我的项目需要高分辨率 PWM。对于100kHz 的 PWM 频率、我选择的硬件只能生成分辨率仅为9位的 PWM。 在浏览文献后、我发现了一个"PWM 抖动"概念、用于提高 PWM 分辨率。 您能解释一下这一概念及其在 TI 微控制器中的实现

此致

Mudit Mittal

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

    PWM 所需的系统频率为100kHz×2位。 显然、您选择的硬件以50MHz 的频率运行。 最快的 MSP430可以在25MHz 下运行。

    PWM 抖动在两个 PWM 值之间持续切换、以便正确输出平均值。 例如、如果代码在每次计时器溢出时在123/65536和124/65536之间切换、则平均输出电压将为123.5/65536。

    您需要 PWM 信号的用途是什么? 使用具有 DAC 的微控制器(例如 MSP430F5336或 MSP430FR2355)可能是一个更好的主意。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mudit、
    PWM 是否是您的应用中唯一的时序关键功能? 您的应用程序中是否正在运行通信?
    您选择了哪种 MSP430衍生产品?

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    很抱歉耽误您的回答。

    我们正在为电动汽车应用设计车载充电器。 控制循环应该是数字的。为了防止转换器中的循环限制,条件足够:

    1、PWM 的分辨率应至少比 ADC 分辨率大1位(12位)

    由于我的 PWM 频率为100kHz、因此获得至少14位 PWM 分辨率的系统时钟将处于 GHz 范围内、这实际上是不可行的。为了克服时钟问题、我尝试实施"PWM 抖动"以提高分辨率。

    您能告诉我在 TI 微控制器中实现的过程吗?


    Mudit Mittal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mudit、
    没问题。
    因此、对于抖动、您必须在具有特定占空比的两个相邻 PWM 步长之间切换。 这可能是50/50、您可以在每个 PWM 周期的阶跃之间切换、但也可以使用不同的占空比进行切换以提高分辨率、如1/3、1/4。 基本上、您可以实现您想要的任何占空比。
    现在介绍如何执行该操作。 如您所知、通常 PWM 在运行时没有任何 CPU 交互、不包括必要的初始化。
    在更改 PWM 占空比时、您需要知道何时更改、以便能够以受控方式执行它。 例如、这可以通过计时器溢出中断或 PWM 开关信号的中断来完成。 为此、您需要启用相应的中断、一个或另一个中断。 在相应的中断服务例程中、您需要执行 PWM 的受控更改。
    这是什么意思受控? 定时器逻辑与激活的 PWM 一起永久比较用于 PWM 的 CCRx 寄存器与 TAR 寄存器中的定时器值。 在匹配条件下、它执行由使用的 PWM 模式选择的开关活动。
    现在、当用一个有效的 PWM 更新 CCRx 寄存器时、在写入访问时、特别是在异步模式下、意味着使用一个相对于定时器时钟的异步时钟来操作 CPU、可能会发生错误的比较匹配事件。 这将导致有源周期的 PWM 占空比错误。 尤其是在永久切换 CCRx 设置时、这一点至关重要。

    为了避免这种情况、PWM 输出状态需要在更新前被冻结、然后重新激活。 这可以由之前提到的中断触发、然后将 PWM 模式(TAxCCTLn 中的 OUTMOD)切换到模式、其中输出由 TAxCCTLn 寄存器中的 OUT 位控制。 然后对 CCRx 进行更新、清除潜在的 IFG、最后切换回 OUTMOD 以实现有源 PWM。

    您可以看到、这可以使您的 CPU 保持相当繁忙、因为您需要在每个 PWM 周期内提供中断。

    一个可能不同的选项是在 MSP430F5172中使用 Timer_D。 这是一款特殊的高分辨率计时器、集成了经工厂校准的256MHz 振荡器。 这将为您提供具有100kHz 分辨率的11.x 位。 并非如您所愿的完美12位、但可能是可行的解决方案。 您是否考虑过这个?

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

    感谢您的回复。 完成您的帖子后、以下是我的查询

    假设系统时钟为72MHz、PWM 频率为100kHz、定时器寄存器的最高值将为
    =72000000/100000
    = 720-1
    =719

    硬件的分辨率将大于9位、但小于10位。

    因为系统需要12位的分辨率、所以额外的 PWM 位将来自抖动。

    假设我的当前占空比为40%、这与比较寄存器中的值(720*40)/100)-1相对应、该值与计时器比较寄存器中的287相对应。

    由于额外的分辨率需要8个时钟周期来提高分辨率、因此组合如下所示

    [1、0、0、0、0、0、0]、[1、0、1、0、1、0、1、0]等




    1、7个时钟周期是否需要发送40%的占空比、1个时钟周期是否需要发送41%的占空比、逻辑是否正确?
    如果不是如何选择占空比来增加分辨率、即如果我发送40%的占空比、那么占空比的下一个值将是41%或42%等
    如何选择一组组合来实现 PWM 抖动。例如、它可以是[1、0、0、0、0、0]还是[1、0、1、0、1、0、1、0]

    此致
    Mudit Mittal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mudit、
    也许我们应该首先澄清您打算使用的器件、以确保我们使用正确的参数、例如、MSP430不能以72MHz 运行。
    请您澄清这一点吗?

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

    你(们)好

    抱歉、它的50MHz 太差了。

    此致

    Mudit Mittal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mudit、
    抱歉、也没有 MSP430能够以50MHz 运行。
    MSP430F5172中之前提到的 Timer_D 是一个例外、在这个例外情况下、只有 Timer_D 能够以高达250MHz 的频率运行、但是器件的其余部分能够以高达25MHz 的频率运行。
    这是 MSP430产品系列中的最大值。

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

    你(们)好

    我发布的示例是一个通用控制器。我只是为了了解我实现 PWM 抖动的方法、对不对。 之后、我可以根据控制器系统频率调整 PWM 的分辨率。 请帮我解决这个问题

    此致

    Mudit Mittal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mudit、
    很抱歉、这是一个与产品相关的支持论坛、旨在为特定 TI 产品的用户提供支持、此特定论坛专门针对 MSP430相关的技术问题。 这不是通用 MCU 支持论坛。
    就您的问题而言、要关闭这个、例如、在4位抖动下、您将具有以下可能的模式:
    [0、0、0、0]、[0、0、0、1]、[0、0、0、0]、[1、0、0]、[0、1、0、1]、[1、0、0]、[1、1、0]、[1、0、1]、[1、0、1]、[1、1、1]、[1]、[1、1、1、1、1、1]
    具有相同数量的1/0的1是冗余的

    此致
    Peter