Contact me: hankecnc@gmail.com

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431

推推 grbl 3年前 (2023-01-30) 195次浏览
关闭
 打开了这个问题 2020 年 6 月 13 日 · 5 条评论
关闭

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。#431

 打开了这个问题 2020 年 6 月 13 日 · 5 条评论

注释

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431
 评论了 2020 年 6 月 13 日  

请回答以下问题:

你读过关于如何编译的维基吗?— –是的

您使用的是哪个版本的 Arduino IDE?…. 1.8.12

您使用的是用于 ESP32的 Arduino 内核的哪个版本(提交日期) ?…. 1.0.4

你在使用 Grbl_ESP32 的主分支吗?…..是的

您是否对固件进行了任何编辑或配置更改(列出)?
在 config.h 中编辑 SSID 和密码

 #include "Machines/lowrider_v1p2.h" in machine.h

编辑 \Machines 中的 lowrider_v1p2.h 以读取

    #define SPINDLE_TYPE SPINDLE_TYPE_RELAY
    #define SPINDLE_OUTPUT_PIN GPIO_NUM_2
#else
    #define SPINDLE_TYPE SPINDLE_TYPE_PWM
    #define SPINDLE_OUTPUT_PIN         GPIO_NUM_16

    #define SPINDLE_ENABLE_PIN      GPIO_NUM_32
#endif

// Note: Only uncomment this if USE_SPINDLE_RELAY is commented out.
// Relay can be used for spindle or either coolant
#define COOLANT_FLOOD_PIN     GPIO_NUM_2
//#define COOLANT_MIST_PIN      GPIO_NUM_2


#define X_LIMIT_PIN             GPIO_NUM_17
#define Y_LIMIT_PIN             GPIO_NUM_4
#define Z_LIMIT_PIN             GPIO_NUM_15
#define LIMIT_MASK              B111


#ifndef ENABLE_SOFTWARE_DEBOUNCE   // V1P2 does not have R/C filters
    #define ENABLE_SOFTWARE_DEBOUNCE
#endif


#define PROBE_PIN               GPIO_NUM_35

// The default value in config.h is wrong for this controller
#ifdef INVERT_CONTROL_PIN_MASK
    #undef INVERT_CONTROL_PIN_MASK
#endif

#define INVERT_CONTROL_PIN_MASK B1110


#define CONTROL_RESET_PIN           GPIO_NUM_34  // needs external pullup
#define CONTROL_FEED_HOLD_PIN       GPIO_NUM_36  // needs external pullup
#define CONTROL_CYCLE_START_PIN     GPIO_NUM_39  // needs external pullup

#define DEFAULT_STEP_PULSE_MICROSECONDS     3
#define DEFAULT_STEPPER_IDLE_LOCK_TIME      255 //  255 = Keep steppers on

#define DEFAULT_STEPPING_INVERT_MASK    0 // uint8_t
#define DEFAULT_DIRECTION_INVERT_MASK   0 // uint8_t
#define DEFAULT_INVERT_ST_ENABLE        0 // boolean
#define DEFAULT_INVERT_LIMIT_PINS       1 // boolean
#define DEFAULT_INVERT_PROBE_PIN        0 // boolean

#define DEFAULT_STATUS_REPORT_MASK      1

#define DEFAULT_JUNCTION_DEVIATION  0.01 // mm
#define DEFAULT_ARC_TOLERANCE       0.002 // mm
#define DEFAULT_REPORT_INCHES       0 // false

#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
#define DEFAULT_HARD_LIMIT_ENABLE 0  // false

#define DEFAULT_HOMING_ENABLE           1  // false
#define DEFAULT_HOMING_DIR_MASK         3 // move positive dir Z,negative X,Y
#define DEFAULT_HOMING_FEED_RATE        100.0 // mm/min
#define DEFAULT_HOMING_SEEK_RATE        200.0 // mm/min
#define DEFAULT_HOMING_DEBOUNCE_DELAY   250 // msec (0-65k)
#define DEFAULT_HOMING_PULLOFF          2.0 // mm

#ifdef USE_SPINDLE_RELAY
    #define DEFAULT_SPINDLE_RPM_MAX 1.0 // must be 1 so PWM duty is alway 100% to prevent relay damage
#else
    #define DEFAULT_SPINDLE_RPM_MAX 1000.0 // can be change to your spindle max
#endif

#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm

#define DEFAULT_LASER_MODE 0 // false

#define DEFAULT_X_STEPS_PER_MM 200.0
#define DEFAULT_Y_STEPS_PER_MM 200.0
#define DEFAULT_Z_STEPS_PER_MM 800.0

#define DEFAULT_X_MAX_RATE 8000.0 // mm/min
#define DEFAULT_Y_MAX_RATE 8000.0 // mm/min
#define DEFAULT_Z_MAX_RATE 3000.0 // mm/min

#define DEFAULT_X_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Y_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
#define DEFAULT_Z_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2

#define DEFAULT_X_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value.
#define DEFAULT_Y_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value.
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm NOTE: Must be a positive value.

代码编译但没有 PWM 输出。信号 SPINDLE_ENABLE 在使用 M3 命令启用时为低电平,在使用 M5 命令(向后)关闭时为高电平,因此 PWM 信号无法通过 3 至 5v 电平转换器。如果我取消评论

  // #define INVERT_SPINDLE_ENABLE_PIN // Default disabled. Uncomment to enable. 

然后 SPINDLE_ENABLE 信号变为高电平有效,但 PWM 输出也从高电平有效变为低电平有效。似乎没有 INVERT PWM 选项。

对不起,如果这是在错误的地方。随意移动/删除

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431  加了 把招工广告 需要额外注意标签 2020 年 6 月 13 日
MitchBradley 添加了引用此问题的提交 2020 年 6 月 14 日

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431
Fix #431 
由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431

试试这个修复https://github.com/bdring/Grbl_Esp32/tree/Fix431看看它是否符合你的要求。除了现有的 INVERT_SPINDLE_ENABLE_PIN 之外,它还添加了一个单独的配置选项 INVERT_SPINDLE_OUTPUT_PIN 。

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431

如果您只想将补丁应用于您的树,则该补丁为66ac0ea 。

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431
作者

好的,我尝试了补丁,它添加了反转 pwm 输出引脚功能的选项。如果我同时启用主轴启用反转和主轴 PWM 反转,则 pwm 信号仍然是错误的,但现在您已经添加了选项,如果我将反转主轴输出引脚注释掉,则一切正常。IE

// Inverts the spindle enable pin from low-disabled/high-enabled to low-enabled/high-disabled. Useful
// for some pre-built electronic boards.
#define INVERT_SPINDLE_ENABLE_PIN // Default disabled. Uncomment to enable.

// Inverts the spindle PWM output pin from low-disabled/high-enabled to low-enabled/high-disabled.
// #define INVERT_SPINDLE_OUTPUT_PIN // Default disabled. Uncomment to enable.

已启用 M3 和 PWM 脉冲高电平
命名法对我来说似乎全是屁股,但它有效。

谢谢

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431

提出一个不同的名称,然后编写说明。

由于 SPINDLE_ENABLE 反转,PWM 输出缺失。 #431
作者

对不起米奇,这可能是错误的,现有的脚本声明 SPINDLE_ENABLE_PIN 和 SPINDLE_OUTPUT_PIN 都应该处于高电平状态,而在我的情况下,这不是正在发生的事情。我无意冒犯并感谢您和 Bart 付出的所有努力,无需重写,因为它现在可以正常工作,而且我也不知道该怎么做,我只是认为这是您的孩子,您可能对根本原因更感兴趣,而不仅仅是编写修复程序。
感谢你付出的努力。