开源改变世界!!

修改后的 CPU 映射不起作用 #270

推推 grbl 2年前 (2023-01-29) 129次浏览
关闭
mac7988 开了这个issue 2019 年 10 月 27 日 · 3条评论
关闭

修改后的 CPU 映射不起作用#270

mac7988 开了这个issue 2019 年 10 月 27 日 · 3条评论

注释

修改后的 CPU 映射不起作用 #270

我对 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`

修改后的 CPU 映射不起作用 #270
所有者

我不明白。

  1. 您是否修改了 MPCNC cpu 映射?
  2. 你在什么硬件上运行?
  3. 你修改了什么?
  4. 你在 config.h 中改变了什么吗?
  5. 您可以粘贴在串行监视器中获得的启动文本吗?
修改后的 CPU 映射不起作用 #270
作者

您是否修改了 MPCNC cpu 映射?
是的,我有不同的引脚布局。
你在什么硬件上运行?
这是我焊接测试的板。使用 esp32 devkit c

你修改了什么?
只是 CPU 映射
您是否更改了 config.h 中的任何内容?

您可以粘贴在串行监视器中获得的启动文本吗

修改后的 CPU 映射不起作用 #270
作者

我想到了。我所要做的就是阅读您在 WIKI 上写的内容。
你写的这么好给我留下了深刻的印象。即使是像我这样的傻瓜。

我所做的是将配置更改为使用正确的地图。在这种情况下,我修改了 mpcnc 地图。