差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:dtanalysis [2024/10/20 16:26] robindigi:arm-embedded:ccmp2:dtanalysis [2024/10/28 13:27] (当前版本) – [后记:GPIO和DI调整] robin
行 108: 行 108:
 </code> </code>
  
-<code> + ccmp25_timers1_ch3_4_pins: ccmp25-timers1-ch3_4 {
-       ccmp25_timers1_ch3_4_pins: ccmp25-timers1-ch3_4 {+
  pins {  pins {
- pinmux = <STM32_PINMUX('D',  9,  AF8)>/* TIM1_CH3_PWM */ + pinmux = <STM32_PINMUX('D',  9,  AF8)>/* TIM1_CH3_PWM */ 
-                        pinmux = <STM32_PINMUX('D',  8,  AF8)>; /* TIM1_CH4_PWM */+              <STM32_PINMUX('D',  8,  AF8)>; /* TIM1_CH4_PWM */
  bias-disable;  bias-disable;
  };  };
行 119: 行 118:
  ccmp25_timers1_ch3_4_sleep_pins: ccmp25-timers1-ch3_4_sleep {  ccmp25_timers1_ch3_4_sleep_pins: ccmp25-timers1-ch3_4_sleep {
  pins {  pins {
- pinmux = <STM32_PINMUX('D',  9, ANALOG)>/* TIM1_CH3_PWM */ + pinmux = <STM32_PINMUX('D',  9, ANALOG)>/* TIM1_CH3_PWM */ 
-                        pinmux = <STM32_PINMUX('D',  8, ANALOG)>; /* TIM1_CH4_PWM */+              <STM32_PINMUX('D',  8, ANALOG)>; /* TIM1_CH4_PWM */
  };  };
  };  };
- 
 </code> </code>
  
行 130: 行 128:
 在smartIOMUX中,pwm名称后有DI的序号,相邻的两个DI为一组,因此通过smartIOMUX可以很快查到对应编码器接口所对应的定时器和引脚,同原理图匹配: 在smartIOMUX中,pwm名称后有DI的序号,相邻的两个DI为一组,因此通过smartIOMUX可以很快查到对应编码器接口所对应的定时器和引脚,同原理图匹配:
  
-{{:digi:arm-embedded:ccmp2:pasted:20241017-152223.png}}+{{:digi:arm-embedded:ccmp2:pasted:20241021-204115.png}}
  
 在smartIOMUX上把pwm和对应的编码器接口整理列表如下,以方便设备树修改: 在smartIOMUX上把pwm和对应的编码器接口整理列表如下,以方便设备树修改:
行 145: 行 143:
  
 为了方便版本管理,可以用git的方式来管理设备树源码,并以链接文件的形式通过deyaio工具来编译,请进一步参考:[[digi:arm-embedded:ccmp2:customdt|自定义设备树的实现]] 为了方便版本管理,可以用git的方式来管理设备树源码,并以链接文件的形式通过deyaio工具来编译,请进一步参考:[[digi:arm-embedded:ccmp2:customdt|自定义设备树的实现]]
 +
 +====后记:GPIO和DI调整====
 +一般地,为了让编码器的输入使用同一个定时器的通道,我们在设计时应先添加DI,把PWM输出放在后面,最后添加GPIO。如果您使用Digi开发板作为参考,保留了原先GPIO和PWM等接口,在添加较多的定时器输入捕获资源时,有时会碰到无法把两个通道放在同一个定时器的情况,这时可以手动修改。
 +首先,在SmartIOMux里,把不同定时器的其中一个通道lock取消,这时可以看到,有中一个定时器通道可以选择,如下所示:
 +{{:digi:arm-embedded:ccmp2:pasted:20241028-125201.png}}
 +但在添加时会告诉你无法解决冲突,我们这时可以去Pads处,查看可选的pad,本例是AC_7(但显示为黄色,表示有冲突可解决),
 +{{:digi:arm-embedded:ccmp2:pasted:20241028-125621.png}}
 +
 +这样我们再到Table View里查找AC_7,发现是某个GPIO占用了,先记录一下这个GPIO的相关定义和功能,把这个GPIO先暂时删除,添加好PWM对应的DI后,再把这个GPIO添加回来,让系统自动选择可用的GPIO即可。
 +
 +疑问:作为编码器的输入,是否要使用lowpower的定时器,因为官方spec在这些定时器的功能中有专门的encoder mode, 但如果只要普通的input capture,只需普通的定时器即可。此外,还有TIM1和TIM8是高级控制功能的定时器,是否有专用的功能需要保留不用它们?
 +
 +