开源改变世界!!

MPCNC V1.2.2(PWM 主轴)上无 PWM 输出 #964

推推 grbl 2年前 (2023-01-30) 67次浏览
关闭
tchleb 打开了这个问题 2021 年 9 月 9 日 · 2 条评论
关闭

MPCNC V1.2.2(PWM 主轴)上无 PWM 输出#964

tchleb 打开了这个问题 2021 年 9 月 9 日 · 2 条评论

注释

MPCNC V1.2.2(PWM 主轴)上无 PWM 输出 #964

你好,

我编译 ( 5316c64 ) 并在 MPCNC V1.2.2 板上刷写了 GBRL_ESP32。我有一个问题,当我尝试通过网络界面打开主轴时,GPIO16(3v3 级别)上没有 PWM 信号。我用范围检查了这个。

主轴启用(GPIO32)对我来说也没有设置为高

我使用维基上显示的相同DevBoard

有没有人有提示或已经有这样的错误?

托拜厄斯
_


mpcnc_v1p2.h


#pragma once
// 关闭 clang 格式

/*
mpcnc_v1p2.h Grbl_ESP32
的一部分

Pin assignments for the Buildlog.net MPCNC controller
https://github.com/bdring/Grbl_ESP32_MPCNC_Controller

2019    - Bart Dring
2020    - Mitch Bradley

Grbl_ESP32 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Grbl_ESP32.  If not, see <http://www.gnu.org/licenses/>.

## Stepper Driver Pins
# |-------|------------|----------|---------|--------------|
# | MOTOR | ENABLE pin | STEP pin | DIR pin | ENDSTOP pin  | 
# |-------|------------|----------|---------|--------------|
# |  X    |	  GPIO13   |  GPIO12  |  GPIO26 |    GPIO17	   | 
# |-------|------------|----------|---------|--------------|
# |  X2   |	  GPIO13   |  GPIO22  |  GPIO26 |    GPIO17	   |
# |-------|------------|----------|---------|--------------|
# |  Y    |	  GPIO13   |  GPIO14  |  GPIO25 |    GPIO04	   |
# |-------|------------|----------|---------|--------------|
# |  Y2   |	  GPIO13   |  GPIO21  |  GPIO25 |    GPIO04	   |
# |-------|------------|----------|---------|--------------|
# |  Z    |	  GPIO13   |  GPIO27  |  GPIO33 |    GPIO15	   |
# |-------|------------|----------|---------|--------------|

## Other inputs and outputs
# |---------------|---------|
# |    Function   |   PIN   |
# |---------------|---------|
# |    Hold       |  GPIO36 |
# |---------------|---------|
# |    Start      |  GPIO39 |
# |---------------|---------|
# |   GBRL_Reset  |  GPIO34 |
# |---------------|---------|
# |    Probe      |  GPIO35 |
# |---------------|---------|
# |  Spindle_EN   |  GPIO32 |
# |---------------|---------|
# |  Spindle_PWM  |  GPIO16 |
# |---------------|---------|
# | Spindle_Relay |  GPIO02 |
# |---------------|---------|

*/

// // Buildlog.net MPCNC 控制器的引脚分配

#define MACHINE_NAME “MPCNC_V1P2”

//#define DEFAULT_HOMING_SQUARED_AXES(位(X_AXIS)|位(Y_AXIS))#define DEFAULT_HOMING_SQUARED_AXES
Y_AXIS

#define X_STEP_PIN GPIO_NUM_12
#define X2_STEP_PIN GPIO_NUM_22 // 联动电机

#define Y_STEP_PIN GPIO_NUM_14
#define Y2_STEP_PIN GPIO_NUM_21 // 联动电机

#define Z_STEP_PIN GPIO_NUM_27

#define X_DIRECTION_PIN GPIO_NUM_26
#define X2_DIRECTION_PIN X_DIRECTION_PIN
#define Y_DIRECTION_PIN GPIO_NUM_25
#define Y2_DIRECTION_PIN Y_DIRECTION_PIN
#define Z_DIRECTION_PIN GPIO_NUM_33

// 可以注释掉以将 pin 用于其他功能
#define STEPPERS_DISABLE_PIN GPIO_NUM_13

// 注意:如果你使用 PWM 而不是继电器,你可以将 GPIO_NUM_2 映射到雾或洪水
//#define USE_SPINDLE_RELAY

#ifdef USE_SPINDLE_RELAY
#define SPINDLE_TYPE SpindleType::RELAY
#define SPINDLE_OUTPUT_PIN GPIO_NUM_2
#else

#define SPINDLE_TYPE SpindleType::PWM
#define SPINDLE_OUTPUT_PIN GPIO_NUM_16

#define SPINDLE_ENABLE_PIN GPIO_NUM_32

#万一

// 注意:只有在 USE_SPINDLE_RELAY 被注释掉时才取消注释。
// 继电器可用于主轴或任一冷却液
//#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

#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 没有 R/C 过滤器
#define ENABLE_SOFTWARE_DEBOUNCE
#endif

#define PROBE_PIN GPIO_NUM_35

// 这个控制器在 config.h 中的默认值是错误的
#ifdef INVERT_CONTROL_PIN_MASK
#undef INVERT_CONTROL_PIN_MASK
#endif

#define INVERT_CONTROL_PIN_MASK B1110

#define CONTROL_RESET_PIN GPIO_NUM_34 // 需要外部上拉
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // 需要外部上拉
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // 需要外部上拉

#define DEFAULT_STEP_PULSE_MICROSECONDS 3
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = 保持步进器开启

#define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t
#define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t
#define DEFAULT_INVERT_ST_ENABLE 0 // 布尔值
#define DEFAULT_INVERT_LIMIT_PINS 1 // 布尔值
#define DEFAULT_INVERT_PROBE_PIN 0 // 布尔值

#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 // 假
#define DEFAULT_HARD_LIMIT_ENABLE 0 // 假

#define DEFAULT_HOMING_ENABLE 1 // false
#define DEFAULT_HOMING_DIR_MASK 3 // 移动正方向 Z,负方向 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 // 毫秒(0- 65k)
#define DEFAULT_HOMING_PULLOFF 2.0 // 毫米

#ifdef USE_SPINDLE_RELAY
#define DEFAULT_SPINDLE_RPM_MAX 1.0 // 必须为 1,因此 PWM 占空比始终为 100% 以防止继电器损坏
#else
#define DEFAULT_SPINDLE_RPM_MAX 24000.0 // 可以更改为您的主轴最大值
#endif

#define DEFAULT_SPINDLE_RPM_MIN 0.0 // 转/分

#define DEFAULT_LASER_MODE 0 // 假

#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 // 毫米/分钟
#define DEFAULT_Y_MAX_RATE 8000.0 // 毫米/分钟
#define DEFAULT_Z_MAX_RATE 3000.0 // 毫米/分钟

#define DEFAULT_X_ACCELERATION 200.0 // 毫米/秒^2
#define DEFAULT_Y_ACCELERATION 200.0 // 毫米/秒^2
#define DEFAULT_Z_ACCELERATION 100.0 // 毫米/秒^2

#define DEFAULT_X_MAX_TRAVEL 500.0 // mm 注意:必须为正值。
#define DEFAULT_Y_MAX_TRAVEL 500.0 // mm 注意:必须为正值。
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm 注意:必须为正值。


机器.h


#pragma一次

// 此文件是您选择机器类型的地方,方法是包括
// 一个或多个机器定义文件,如下所述。

#ifndef MACHINE_FILENAME

// !!! 对于初始测试,从禁用
// 所有 I/O 引脚的 test_drive.h 开始
// #include “Machines/atari_1020.h”
//# include “Machines/test_drive.h”

// !!! 对于实际使用,更改上面的行以从 // Machines/ 中选择一个板
,例如:
#include “Machines/mpcnc_v1p2.h”

// === OEM 单文件配置选项
// 希望发布为
特定机器配置的源代码的 OEM 可以将他们所有的配置定义
// 直接放在这个文件中,而不包括上面的任何其他文件。

#别的

// 通过使用外部环境来定义 MACHINE_FILENAME,
// 可以在不编辑此文件的情况下选择配置。
// 这对自动化测试脚本很有用。
//
// 例如,
在 Linux 下使用 platformio 编译环境 // 时,您可以发出以下命令行:
// PLATFORMIO_BUILD_FLAGS=-DMACHINE_FILENAME=3axis_v4.h platformio run
//
// 在 Windows 下,使用 PowerShell,命令将是:
// $env:PLATFORMIO_BUILD_FLAGS=’-DMACHINE_FILENAME=3axis_v4.h’; platformio run
//
// 使用 Arduino IDE 时,没有简单的方法将变量
// 传递给编译器,因此此功能对 Arduino 没有用。
//
// MACHINE_FILENAME 不能包含 Machines/ 路径前缀;它是
// 自动提供的。

// MACHINE_PATHNAME_QUOTED 构造适合#include 的路径

定义 MACHINE_PATHNAME_QUOTED(name) <src/Machines/name>

包括 MACHINE_PATHNAME_QUOTED(MACHINE_FILENAME)

#endif // MACHINE_FILENAME


串口日志


rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip:0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
模式:DIO,时钟 div 1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:Grbl_ESP32 Ver 1.3a Date 20210424]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:MPCNC_V1P2]
[MSG:Axis count 3]
[MSG:RMT Steps]
[MSG:重置引脚 GPIO(34) 上的
开关] [MSG:保持引脚 GPIO(36) 上的
开关] [MSG:启动引脚 GPIO(39) 上的开关]
[MSG:Init Motors]
[MSG:全局步进器禁用引脚:GPIO(13) )]
[MSG:X Axis Standard Stepper Step:GPIO(12) Dir:GPIO(26) Disable:None Limits(0.000,500.000)]
[MSG:X2 Axis Standard Stepper Step:GPIO(22) Dir:GPIO(26) Disable:None Limits(0.000,500.000)]
[MSG:Y Axis Standard Stepper Step:GPIO(14) Dir:GPIO(25) Disable:None Limits(0.000,500.000)]
[MSG:Y2 轴标准步进器步进:GPIO(21) Dir:GPIO(25) 禁用:无限制(0.000,500.000)]
[MSG:Z 轴标准步进器步进:GPIO(27) Dir:GPIO(33) 禁用: None Limits(-80.000,0.000)]
[MSG:PWM spindle Output:GPIO(16), Enbl:GPIO(32), Dir:None, Freq:5000Hz, Res:13bits]

[MSG:Client Started]
[MSG:Connecting myWifi]
[MSG:Connecting.]
[MSG:Connecting..]
[MSG:Connecting…]
[MSG:Connecting….]
[MSG:Connected with 192.168.178.87 ]
[MSG:使用主机名启动 mDNS:http://grblesp.local/]
[MSG:SSDP 已启动]
[MSG:HTTP 已启动]
[MSG:TELNET 已启动 23]
[MSG:引脚 GPIO(2) 上的喷雾冷却剂]
[ MSG:引脚 GPIO(17) 上的 X 轴限位开关]
[MSG:引脚 GPIO(4) 上的 Y 轴限位开关]
[MSG:引脚 GPIO(15) 上的 Z 轴限位开关]
[MSG:引脚 GPIO(35) 上的探头)]

Grbl 1.3a [‘$’寻求帮助]

MPCNC V1.2.2(PWM 主轴)上无 PWM 输出 #964
所有者

尝试手动发送 M3 S1000。

如果可行,请尝试使用 WebUI 按钮。在 M3 执行任何操作之前,主轴需要一个速度值。随时发送 Sxxxx,其中 xxx 是 RPM 将设置 Rpm。

您可以使用 $G 命令检查当前的 rpm。

MPCNC V1.2.2(PWM 主轴)上无 PWM 输出 #964
作者
切莱布 评论了 2021 年 9 月 10 日  

感谢你的回复。

我发现我的问题…

电平转换器一定是由于 5v 导轨上的电涌而损坏。这将 gpio16 和 32 拉到地。在我交换电平转换器后,pwm 输出现在可以工作了:)