Contact me: hankecnc@gmail.com

D11 改变 PWM 频率 #981

推推 grbl 3年前 (2023-01-23) 199次浏览

打开
Mungbeanz 开启了这个问题 2021 年 1 月 4 日 · 2 条评论
打开

D11 改变 PWM 频率#981

Mungbeanz 开启了这个问题 2021 年 1 月 4 日 · 2 条评论

注释

D11 改变 PWM 频率 #981
绿豆 评论了 2021 年 1 月 4 日  

你好,

环顾四周,但对如何更改 D11 上的 PWM 频率有点困惑。
我计划在 eleks mana se 分线板上使用我的备用 arduino nano 来控制由 BlackBuck 8m 8A 驱动器驱动的 NUBM08。驱动器接受 4Khz 调制的 PWM 输入。

D11 应该在定时器 2 上。 TCCR2B
可能性表

//TCCR2B = TCCR2B & B11111000 | B00000001;    // set timer 2 divisor to     1 for PWM frequency of 31372.55 Hz
//TCCR2B = TCCR2B & B11111000 | B00000010;    // set timer 2 divisor to     8 for PWM frequency of  3921.16 Hz
//TCCR2B = TCCR2B & B11111000 | B00000011;    // set timer 2 divisor to    32 for PWM frequency of   980.39 Hz
  TCCR2B = TCCR2B & B11111000 | B00000100;    // set timer 2 divisor to    64 for PWM frequency of   490.20 Hz (The DEFAULT)
//TCCR2B = TCCR2B & B11111000 | B00000101;    // set timer 2 divisor to   128 for PWM frequency of   245.10 Hz
//TCCR2B = TCCR2B & B11111000 | B00000110;    // set timer 2 divisor to   256 for PWM frequency of   122.55 Hz
//TCCR2B = TCCR2B & B11111000 | B00000111;    // set timer 2 divisor to  1024 for PWM frequency of    30.64 Hz

在 CPU_MAP.H 文件中我只能看到

#define SPINDLE_TCCRA_REGISTER    TCCR2A
#define SPINDLE_TCCRB_REGISTER    TCCR2B
#define SPINDLE_OCR_REGISTER      OCR2A
#define SPINDLE_COMB_BIT          COM2A1

// Prescaled, 8-bit Fast PWM mode.
#define SPINDLE_TCCRA_INIT_MASK   ((1<<WGM20) | (1<<WGM21))  // Configures fast PWM mode.
// #define SPINDLE_TCCRB_INIT_MASK   (1<<CS20)               // Disable prescaler -> 62.5kHz
// #define SPINDLE_TCCRB_INIT_MASK   (1<<CS21)               // 1/8 prescaler -> 7.8kHz (Used in v0.9)
// #define SPINDLE_TCCRB_INIT_MASK   ((1<<CS21) | (1<<CS20)) // 1/32 prescaler -> 1.96kHz
#define SPINDLE_TCCRB_INIT_MASK      (1<<CS22)               // 1/64 prescaler -> 0.98kHz (J-tech laser)

我遇到的一些建议说 GRBL 可以编译为使用 3.92KHZ PWM。
它提到设置禁用快速 PWM,然后将预分频器设置为 8,然后设置相位校正 PWM 的时间。

从这里我把它注释掉
#define SPINDLE_TCCRA_INIT_MASK ((1<<WGM20) | (1<<WGM21)) // Configures fast PWM mode.

启用这个:
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS21) // 1/8 prescaler -> 7.8kHz (Used in v0.9)

我的想法正确吗?这应该给我 3.92 的 PWM 频率?

D11 改变 PWM 频率 #981
作者

订购基本示波器,自己测试并在 4-6 周内报告

D11 改变 PWM 频率 #981

希望大家补充一些测试信息

喜欢 (0)