CC3200系列是德州仪器(Texas Instruments,简称TI)推出的高性能Wi-Fi解决方案,非常适合物联网(IoT)项目。PWM(脉冲宽度调制)是一种可以用于控制电机速度、调整LED亮度等场景的技术。在CC3200系列教程中,作者提供了一个关于如何使用CC3200的PWM模式的学习文档。
文档指出了CC3200的PWM具有16位宽度。在微控制器的PWM功能中,16位意味着计数器可以产生从0到65535(2^16-1)的计数值。然而,文档也提出了一个知识点,即尽管计数器是16位,但其在背后却是通过一个24位的机制来实现的。这个24位机制包括了16位的计数器和一个8位的分频器,将时钟信号分频后再供给计数器使用。这种设计是为了提供更灵活的定时分辨率和频率调整范围。
接下来,文档阐述了PWM的三个关键参数:溢出值、比较值和输出电平。在PWM信号的生成中,计数器的值会在溢出之前不断递增,直到达到溢出值。当计数器的值与设置的比较值相匹配时,PWM输出的电平会发生翻转,从而生成所需的波形。
值得注意的是,文档提到了计数器的计数方向向下,但并未明确说明是否支持向上计数。通常,在PWM应用中,向下计数更为常见,因为这与常见的定时器配置一致。如果CC3200支持向上计数,那么这将为用户提供了更多的配置灵活性。
进一步地,文档解释了CC3200的PWM计数器实际上是由24位构成的,但常规寄存器只有16位。这就意味着,尽管寄存器是16位的,但实际上比较值的高8位是被分配在另一个寄存器中。因此,当设置PWM时,需要对两个寄存器进行配置。
此外,文档中提到了一个关键的库函数:TimerPrescaleMatchSet(ulBase,ulTimer,69)。这个函数用于设置PWM的分频值。由于CC3200的例程可能没有设置分频器,如果开发者希望设置分频,必须使用这个函数来调整分频寄存器。在这个过程中,开发者需要确保分频器的值正确地反映了他们希望实现的时钟分频比例。
文档中也提到了学习者在学习过程中遇到问题时的联系方式,作者提供了QQ和电子邮箱作为答疑和讨论的通道,这有助于学习者在遇到技术障碍时获得及时的帮助。
总结上述内容,CC3200的PWM具有以下特性:
1. 计数器位宽为16位,配合8位分频器,实际使用为24位的计数能力。
2. PWM的工作原理基于计数器与比较值的匹配,通过改变比较值来调整PWM的占空比。
3. 分频器用于降低PWM频率,通过TimerPrescaleMatchSet函数进行设置。
4. 计数方向在文档中没有明确指出是否支持向上计数,但在PWM应用中向下计数是常见的。
5. 比较值需要在两个寄存器中设置,其中高8位和低16位分别存放。
通过这些知识点的学习,开发者可以更好地掌握CC3200的PWM功能,为各种需要定时或周期性控制的应用编写代码。