开源改变世界!!

PA1 用于主轴 pwm 输出? #24

推推 grbl 2年前 (2023-02-09) 173次浏览
打开
MeKeCNC 开启了这个issue 2022 年 10 月 25 日 · 11 条评论
打开

PA1 用于主轴 pwm 输出?#24

MeKeCNC 开启了这个issue 2022 年 10 月 25 日 · 11 条评论

评论

PA1 用于主轴 pwm 输出? #24
贡献者

可以用PA1代替PA8作为主轴pwm输出吗?

PA1 用于主轴 pwm 输出? #24
贡献者

似乎有可能,根据 PA1 规范:必须为此修改USART2_RTS(9)/ADC12_IN1/TIM2_CH2(9)
driver.hSTEPPER_TIMER ,必须更改它并将其映射到定时器 2。

你能行的?

PA1 用于主轴 pwm 输出? #24
贡献者作者

我会努力去做的。如果我不成功,我会通知你,

PA1 用于主轴 pwm 输出? #24
贡献者作者
美客CNC 评论了 2022 年 12 月 2 日  

似乎有可能,根据 PA1 规范:必须为此修改USART2_RTS(9)/ADC12_IN1/TIM2_CH2(9) driver.hSTEPPER_TIMER ,必须更改它并将其映射到定时器 2。

你能行的?

我已经修改了PA1上SPINDLE PWM的driver.h文件,当SPINDLE_PWM_TIMER_INV设置为1时输出,设置为0时输出不工作

//定义定时器分配。
#define STEPPER_TIMER TIM5
#define PULSE_TIMER TIM3 #define DEBOUNCE_TIMER
TIM4

#ifdef SPINDLE_PWM_PORT_BASE

#if SPINDLE_PWM_PORT_BASE == GPIOA_BASE
#if SPINDLE_PWM_PIN == 1 // PA1 – TIM2_CH2
#define SPINDLE_PWM_TIMER_N 2
#define SPINDLE_PWM_TIMER_CH 2
#define SPINDLE_PWM_TIMER_INV 1
#define SPINDLE_PWM_AF_REMAP 0
#endif
#if SPINDLE_PWM_PIN == 8 // PA8 – TIM1_CH1
#define SPINDLE_PWM_TIMER_N 1
#define SPINDLE_PWM_TIMER_CH 1
#define SPINDLE_PWM_TIMER_INV 0
#define SPINDLE_PWM_AF_REMAP 0
#endif
#elif SPINDLE_PWM_PORT_BASE == GPIOB_BASE
#if SPINDLE_PWM_PIN == 0 // PB0 – TIM1_CH2N
#define SPINDLE_PWM_TIMER_N 1
#define SPINDLE_PWM_TIMER_CH 2
#define SPINDLE_PWM_TIMER_INV 1
#define SPINDLE_PWM_AF_REMAP 0b01
#endif
#endif

我想要这个信号的正常输出
PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24
贡献者

我已经修改了PA1上SPINDLE PWM的driver.h文件,当SPINDLE_PWM_TIMER_INV设置为1时输出,设置为0时输出不工作

这有点奇怪,这是克隆的 MCU 还是真正的 MCU?

我想要这个信号的正常输出

范围跟踪没有告诉我任何信息。它有什么问题?应该是5KHz吗?

PA1 用于主轴 pwm 输出? #24
贡献者作者
美客CNC 评论了 2022 年 12 月 4 日  

范围跟踪没有告诉我任何信息。它有什么问题?应该是5KHz吗?

我想我没有完全解释这个问题。示波器的输出表明生成信号的输出是反相的。期望的信号应该和示波器上的信号相反,应该怎么设置呢?

生成的 PWM 信号应该是 BESC 主轴的信号,如下所示出现在示波器上。

扩展 pwm 输出信号
PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24
贡献者作者

这有点奇怪,这是克隆的 MCU 还是真正的 MCU?

真正的单片机,​​我正在使用 BTT SKR MINI E3 V2.0 3D 打印机板

PA1 用于主轴 pwm 输出? #24
贡献者
terjeio 评论了 2022 年 12 月 4 日  

$16=4作品?($$=16供参考)

PA1 用于主轴 pwm 输出? #24
贡献者作者
美客CNC 评论了 2022 年 12 月 4 日  

$16=4作品?($$=16供参考)

$16=4 ,我什么也没做
$$=16
0 – 主轴使能 (1)
1 – 主轴方向 (2)
2 – PWM (4)
反转主轴,逆时针和 PWM 信号(低电平有效)。

PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24
贡献者作者

#define SPINDLE_PWM_TIMER_INV 1

当 SPINDLE_PWM_TIMER_INV 设置为 0
#define SPINDLE_PWM_TIMER_INV 0

PA1 无 pwm 输出

PA1 用于主轴 pwm 输出? #24

PA1 用于主轴 pwm 输出? #24
贡献者

这里有一个讨厌的错误,想知道是不是这个错误导致了 PA1 的错误?该行应该是:

SPINDLE_PWM_TIMER->CCER |= SPINDLE_PWM_CCER_EN;

PA1 用于主轴 pwm 输出? #24
贡献者作者
美客CNC 评论了 2022 年 12 月 6 日  

这里有一个讨厌的错误,想知道是不是这个错误导致了 PA1 的错误?该行应该是:

SPINDLE_PWM_TIMER->CCER |= SPINDLE_PWM_CCER_EN;

很好,现在可以用了。也就是说,我们可以为 BTT SKR MINI E3 V2.0 3D 打印机板上的 pwm 主轴输出使用两个不同的引脚(PA1 和 PA8)。driver.h 中的最新修订代码如下

//定义定时器分配。
#define STEPPER_TIMER TIM2
#define PULSE_TIMER TIM3
#define DEBOUNCE_TIMER TIM4

#ifdef SPINDLE_PWM_PORT_BASE

#if SPINDLE_PWM_PORT_BASE == GPIOA_BASE
#if SPINDLE_PWM_PIN == 1 // PA1 – TIM5_CH2
#define SPINDLE_PWM_TIMER_N 5
#define SPINDLE_PWM_TIMER_CH 2
#define SPINDLE_PWM_TIMER_INV 0
#define SPINDLE_PWM_AF_REMAP 0
#endif
#if SPINDLE_PWM_PIN == 8 // PA8 – TIM1_CH1
#define SPINDLE_PWM_TIMER_N 1
#define SPINDLE_PWM_TIMER_CH 1
#define SPINDLE_PWM_TIMER_INV 0
#define SPINDLE_PWM_AF_REMAP 0
#endif
#elif SPINDLE_PWM_PORT_BASE == GPIOB_BASE
#if SPINDLE_PWM_PIN == 0 // PB0 – TIM1_CH2N
#define SPINDLE_PWM_TIMER_N 1
#define SPINDLE_PWM_TIMER_CH 2
#define SPINDLE_PWM_TIMER_INV 1
#define SPINDLE_PWM_AF_REMAP 0b01
#endif
#endif

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
PA1 用于主轴 pwm 输出? #24PA1 用于主轴 pwm 输出? #24

喜欢 (0)