在mm32f3270上为micropython创建PWM模块(1)
PS: 对于以英文作为主要编码工具的软件工程师, 即使在中文编辑环境写文档, 使用英文标点符号还是比较方便的.
Requirements
micropython的开发手册中提供了关于PWM模块的API参考设计规范, 见:
https://docs.micropython.org/en/latest/library/machine.PWM.html
我又在micropython的代码仓库里看了一下, 只有rp2/esp32/esp8266三个平台上有machine_pwm.c的实现, 官方开发手册中的实现同rp2保持一致, esp系列另一套相近的实现.
在设计PWM模块的时候, 要考虑多个PWM公用同一个定时器的问题, 并且定时器的引脚有时不会很多, 不能支持很多PWM, 那么如果要支持更多的PWM输出通道, 还有可能考虑到多个定时器分组的问题.
rp2的实现有点炫富的味道, 从代码上看, 可能rp2的1定时器有8个通道(强大的定时器IP), 也可能是有8个定时器(强大的SOC), 每个定时器仅引出一路通道(A和B算一个).
STATIC machine_pwm_obj_t machine_pwm_obj[] = {
{
{
&machine_pwm_type}, 0, PWM_CHAN_A},
{
{
&machine_pwm_type}, 0, PWM_CHAN_B},
{
{
&machine_pwm_type}, 1, PWM_CHAN_A},
{
{
&machine_pwm_type}, 1, PWM_CHAN_B},
{

本文探讨了在MM32F3270上为MicroPython创建PWM模块的过程。分析了不同平台的实现方式,并计划采用ESP系列的实现模型,通过TIM3和TIM4提供6个PWM通道。
最低0.47元/天 解锁文章
2335

被折叠的 条评论
为什么被折叠?



