关闭 mac7988 开了这个issue 2019 年 10 月 27 日 · 3条评论 关闭 修改后的 CPU 映射不起作用#270 mac7988 开了这个issue 2019 年 10 月 27 日 · 3条评论 注释 mac7988 评论了 2019 年 10 月 27 日 我对 CPUMAP 进行了更改,仅此而已。当我上传它时,似乎没有任何效果。现在我只是想让 X 轴工作,所以不要注意其余的引脚图。 在编译和上传之前是否需要调整其他内容? ` /* cpu_map.h – 系统级命令和实时进程的标头 部分 Grbl 版权所有 (c) 2014-2016 Sungeun K. Jeon for Gnea Research LLC 2018 – Bart Dring 此文件已修改以用于 ESP32 CPU。不要将此与 Grbl 一起用于 atMega328P Grbl 是免费软件:您可以根据自由软件基金会 发布的 GNU 通用公共许可证条款重新分发和/或修改它,许可证 版本 3,或 (由您选择)任何更新版本。 Grbl 的分发是希望它有用, 但不提供任何保证; 甚至没有针对特定用途的适销性或适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。 您应该 随 Grbl 一起收到 GNU 通用公共许可证的副本。如果没有,请参阅http://www.gnu.org/licenses/。 */ #ifndef cpu_map_h //#define cpu_map_h /* 并非所有引脚都适用于所有功能。 在重新分配数字 之前检查上拉、pwm 等功能 (gpio34-39) 仅为输入,没有软件上拉/下拉功能 您必须使用外部上拉,否则噪声会导致问题。 与 AVR 版本不同,某些引脚不会强制进入同一端口。 因此,位掩码的使用方式不同,通常不应 更改。它们现在被保存下来,以便于 与 AVR grbl保持同步 */ //Set your pin definition //let -1 to use default board pin #define GRBL_SPI_SS -1 #define GRBL_SPI_MOSI -1 #define GRBL_SPI_MISO -1 #define GRBL_SPI_SCK -1 //设置频率 #define GRBL_SPI_FREQ 4000000 #define LIMIT_MASK 0 // 没有限制引脚 #ifdef CPU_MAP_MPCNC // 所有版本…在下面选择 // 这是 Buildlog.net MPCNC 控制器的 CPU 映射 // 取消注释以下版本之一 //#define V1P1 #define V1P2 // 也适用于 V1.2.1 #ifdef V1P1 #define CPU_MAP_NAME “CPU_MAP_MPCNC_V1P1” #else // V1P2 #define CPU_MAP_NAME “CPU_MAP_MPCNC_V1P2” #endif // 切换到正确的默认设置 #ifdef DEFAULTS_GENERIC #undef DEFAULTS_GENERIC #endif #define DEFAULTS_MPCNC #define USE_GANGED_AXES // 允许一个轴上有两个电机 #define X_STEP_PIN GPIO_NUM_4 #define X_STEP_B_PIN GPIO_NUM_22 // 联动电机 #define X_AXIS_SQUARING #define Y_STEP_PIN GPIO_NUM_14 #define Y_STEP_B_PIN GPIO_NUM_21 // 联动电机 #define Y_AXIS_SQUARING #define Z_STEP_PIN GPIO_NUM_27 #define X_DIRECTION_PIN GPIO_NUM_15 #define Y_DIRECTION_PIN GPIO_NUM_25 #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 #ifdef V1P1 #define SPINDLE_PWM_PIN GPIO_NUM_17 #else // V1p2 #define SPINDLE_PWM_PIN GPIO_NUM_2 #endif #else #define SPINDLE_PWM_PIN GPIO_NUM_16 #define SPINDLE_ENABLE_PIN GPIO_NUM_32 #endif #define SPINDLE_PWM_CHANNEL 0 // PWM 发生器基于 80,000,000 Hz 计数器 // 因此频率决定分辨率 // 80,000,000 / freq = 最大分辨率 // 对于 5000,即 80,000,000 / 5000 = 16000 // 向下舍入到最接近的位数SPINDLE_PWM_MAX_VALUE = 13bits (8192) #define SPINDLE_PWM_BASE_FREQ 5000 // Hz #define SPINDLE_PWM_BIT_PRECISION 8 // 务必将其与 SPINDLE_PWM_MAX_VALUE 匹配 #define SPINDLE_PWM_OFF_VALUE 0 #define SPINDLE_PWM_MAX_PRECISION 255 // (PINDLE_PWM_BIT_PRECISION 255) // #ifndef SPINDLE_PWM_MIN_VALUE #define SPINDLE_PWM_MIN_VALUE 1 // 必须大于零。 #万一 // 注意:只有在 USE_SPINDLE_RELAY 被注释掉时才取消注释。 // 继电器可用于主轴或任一冷却液 //#define COOLANT_FLOOD_PIN GPIO_NUM_2 //#define COOLANT_MIST_PIN GPIO_NUM_2 #ifdef V1P1 //v1p1 #define X_LIMIT_PIN GPIO_NUM_2 #else #define X_LIMIT_PIN GPIO_NUM_17 #endif //#define Y_LIMIT_PIN GPIO_NUM_4 //#define Z_LIMIT_PIN GPIO_NUM_15 #define LIMIT_MASK B111 #ifdef V1P2 #ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 没有 R/C 过滤器 #define ENABLE_SOFTWARE_DEBOUNCE #endif #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 // 注意:默认是 config.h 中的#define IGNORE_CONTROL_PINS // 取消对这些行的注释以使用它们 #ifdef IGNORE_CONTROL_PINS #undef IGNORE_CONTROL_PINS #endif #define CONTROL_RESET_PIN GPIO_NUM_34 // 需要外部上拉 #define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // 需要外部上拉 #define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // 需要外部上拉 #万一 // ================= 所有机器通用 =========================== ===== // 这些是程序需要的一些 ESP32 CPU 设置,但一般不会更改 #define F_TIMERS 80000000 // ESP32 定时器速度的参考 #define F_STEPPER_TIMER 20000000 // 步进脉冲定时器的频率 #define STEPPER_OFF_TIMER_PRESCALE 8 // 给出10MHz 的频率 #define STEPPER_OFF_PERIOD_uSEC 3 // 每个刻度是 #define STEP_PULSE_MIN 2 // uSeconds #define STEP_PULSE_MAX 10 // uSeconds // =============== Don't change or comment these out ====================== // They are for legacy purposes and will not affect your I/O #define X_STEP_BIT 0 // don't change #define Y_STEP_BIT 1 // don't change #define Z_STEP_BIT 2 // don't change #define A_STEP_BIT 3 // don't change #define B_STEP_BIT 4 // don't change #define C_STEP_BIT 5 // don't change #define STEP_MASK B111111 // don't change #define X_DIRECTION_BIT 0 // don't change #define Y_DIRECTION_BIT 1 // don't change #define Z_DIRECTION_BIT 2 // don't change #define A_DIRECTION_BIT 3 // don't change #define B_DIRECTION_BIT 4 // don't change #define C_DIRECTION_BIT 5 // don't change #define X_LIMIT_BIT 0 // don't change #define Y_LIMIT_BIT 1 // don't change #define Z_LIMIT_BIT 2 // don't change #define A_LIMIT_BIT 3 // don't change #define B_LIMIT_BIT 4 // don't change #define C_LIMIT_BIT 5 // don't change #define PROBE_MASK 1 // don't change #define CONTROL_MASK B1111 // don't change // ======================================================================= # endif` 所有者 培养 评论了 2019 年 10 月 27 日 我不明白。 您是否修改了 MPCNC cpu 映射? 你在什么硬件上运行? 你修改了什么? 你在 config.h 中改变了什么吗? 您可以粘贴在串行监视器中获得的启动文本吗? 作者 mac7988 评论了 2019 年 10 月 27 日 您是否修改了 MPCNC cpu 映射? 是的,我有不同的引脚布局。 你在什么硬件上运行? 这是我焊接测试的板。使用 esp32 devkit c 你修改了什么? 只是 CPU 映射 您是否更改了 config.h 中的任何内容? 否 您可以粘贴在串行监视器中获得的启动文本吗 作者 mac7988 评论了 2019 年 10 月 27 日 我想到了。我所要做的就是阅读您在 WIKI 上写的内容。 你写的这么好给我留下了深刻的印象。即使是像我这样的傻瓜。 我所做的是将配置更改为使用正确的地图。在这种情况下,我修改了 mpcnc 地图。 mac7988完成后 关闭 2019 年 10 月 27 日 喜欢 (0) 尝试从 PC 连接到 ESP Web 服务器时 ESP 重置 #269 SD卡读卡器建议 #271 2.8inch_ESP32-2432S028R无法获取任何菜单 #56 2.8inch_ESP32-2432S028R显示屏支持 #55 编译错误 #54 文本部分超出了板中的可用空间 #53 2.8inch_ESP32-2432S028R无法获取任何菜单 #562.8inch_ESP32-2432S028R显示屏支持 #55编译错误 #54文本部分超出了板中的可用空间 #53编译失败:SdFat.h:没有那个文件或目录 #50esp32c3支持吗? #49慢跑算法 #48启用 WiFi 后,STA & AP 模式会暂停发送 G 代码。 #46
我对 CPUMAP 进行了更改,仅此而已。当我上传它时,似乎没有任何效果。现在我只是想让 X 轴工作,所以不要注意其余的引脚图。
在编译和上传之前是否需要调整其他内容?
`
/*
cpu_map.h – 系统级命令和实时进程的标头
部分 Grbl
版权所有 (c) 2014-2016 Sungeun K. Jeon for Gnea Research LLC
2018 – Bart Dring 此文件已修改以用于 ESP32
CPU。不要将此与 Grbl 一起用于 atMega328P
Grbl 是免费软件:您可以根据自由软件基金会
发布的 GNU 通用公共许可证条款重新分发和/或修改它,许可证
版本 3,或
(由您选择)任何更新版本。
Grbl 的分发是希望它有用,
但不提供任何保证;
甚至没有针对特定用途的适销性或适用性的默示保证。有关详细信息,请参阅
GNU 通用公共许可证。
您应该
随 Grbl 一起收到 GNU 通用公共许可证的副本。如果没有,请参阅http://www.gnu.org/licenses/。
*/
#ifndef cpu_map_h
//#define cpu_map_h
/*
并非所有引脚都适用于所有功能。 在重新分配数字
之前检查上拉、pwm 等功能
(gpio34-39) 仅为输入,没有软件上拉/下拉功能
您必须使用外部上拉,否则噪声会导致问题。
与 AVR 版本不同,某些引脚不会强制进入同一端口。
因此,位掩码的使用方式不同,通常不应
更改。它们现在被保存下来,以便于
与 AVR grbl保持同步
*/
//Set your pin definition
//let -1 to use default board pin
#define GRBL_SPI_SS -1
#define GRBL_SPI_MOSI -1
#define GRBL_SPI_MISO -1
#define GRBL_SPI_SCK -1
//设置频率
#define GRBL_SPI_FREQ 4000000
#define LIMIT_MASK 0 // 没有限制引脚
#ifdef CPU_MAP_MPCNC // 所有版本…在下面选择
// 这是 Buildlog.net MPCNC 控制器的 CPU 映射
// 取消注释以下版本之一
//#define V1P1
#define V1P2 // 也适用于 V1.2.1
#ifdef V1P1
#define CPU_MAP_NAME “CPU_MAP_MPCNC_V1P1”
#else // V1P2
#define CPU_MAP_NAME “CPU_MAP_MPCNC_V1P2”
#endif
// 切换到正确的默认设置
#ifdef DEFAULTS_GENERIC
#undef DEFAULTS_GENERIC
#endif
#define DEFAULTS_MPCNC
#define USE_GANGED_AXES // 允许一个轴上有两个电机
#define X_STEP_PIN GPIO_NUM_4
#define X_STEP_B_PIN GPIO_NUM_22 // 联动电机
#define X_AXIS_SQUARING
#define Y_STEP_PIN GPIO_NUM_14
#define Y_STEP_B_PIN GPIO_NUM_21 // 联动电机
#define Y_AXIS_SQUARING
#define Z_STEP_PIN GPIO_NUM_27
#define X_DIRECTION_PIN GPIO_NUM_15
#define Y_DIRECTION_PIN GPIO_NUM_25
#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
#ifdef V1P1
#define SPINDLE_PWM_PIN GPIO_NUM_17
#else // V1p2
#define SPINDLE_PWM_PIN GPIO_NUM_2
#endif
#else
#define SPINDLE_PWM_PIN GPIO_NUM_16
#define SPINDLE_ENABLE_PIN GPIO_NUM_32
#endif
#define SPINDLE_PWM_CHANNEL 0
// PWM 发生器基于 80,000,000 Hz 计数器
// 因此频率决定分辨率
// 80,000,000 / freq = 最大分辨率
// 对于 5000,即 80,000,000 / 5000 = 16000
// 向下舍入到最接近的位数SPINDLE_PWM_MAX_VALUE = 13bits (8192)
#define SPINDLE_PWM_BASE_FREQ 5000 // Hz
#define SPINDLE_PWM_BIT_PRECISION 8 // 务必将其与 SPINDLE_PWM_MAX_VALUE 匹配
#define SPINDLE_PWM_OFF_VALUE 0
#define SPINDLE_PWM_MAX_PRECISION 255 // (PINDLE_PWM_BIT_PRECISION 255) //
#ifndef SPINDLE_PWM_MIN_VALUE
#define SPINDLE_PWM_MIN_VALUE 1 // 必须大于零。
#万一
// 注意:只有在 USE_SPINDLE_RELAY 被注释掉时才取消注释。
// 继电器可用于主轴或任一冷却液
//#define COOLANT_FLOOD_PIN GPIO_NUM_2
//#define COOLANT_MIST_PIN GPIO_NUM_2
#ifdef V1P1 //v1p1
#define X_LIMIT_PIN GPIO_NUM_2
#else
#define X_LIMIT_PIN GPIO_NUM_17
#endif
//#define Y_LIMIT_PIN GPIO_NUM_4
//#define Z_LIMIT_PIN GPIO_NUM_15
#define LIMIT_MASK B111
#ifdef V1P2
#ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 没有 R/C 过滤器
#define ENABLE_SOFTWARE_DEBOUNCE
#endif
#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
// 注意:默认是 config.h 中的#define IGNORE_CONTROL_PINS
// 取消对这些行的注释以使用它们
#ifdef IGNORE_CONTROL_PINS
#undef IGNORE_CONTROL_PINS
#endif
#define CONTROL_RESET_PIN GPIO_NUM_34 // 需要外部上拉
#define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // 需要外部上拉
#define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // 需要外部上拉
#万一
// ================= 所有机器通用 =========================== =====
// 这些是程序需要的一些 ESP32 CPU 设置,但一般不会更改
#define F_TIMERS 80000000 // ESP32 定时器速度的参考
#define F_STEPPER_TIMER 20000000 // 步进脉冲定时器的频率
#define STEPPER_OFF_TIMER_PRESCALE 8 // 给出10MHz 的频率
#define STEPPER_OFF_PERIOD_uSEC 3 // 每个刻度是
# endif`