在mm32f3270上为micropython创建PWM模块(1)

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

在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},
    {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值