Contact me: hankecnc@gmail.com

在 linuxcnc 2.8 中最终在 gpio 驱动程序中出现错误 #955

推推 grbl 3年前 (2023-01-30) 238次浏览
关闭
par-sixis 打开了这个问题 2020 年 10 月 3 日 · 0 条评论
关闭

在 linuxcnc 2.8 中最终在 gpio 驱动程序中出现错误#955

par-sixis 打开了这个问题 2020 年 10 月 3 日 · 0 条评论

注释

在 linuxcnc 2.8 中最终在 gpio 驱动程序中出现错误 #955
偏斜 评论了 2020 年 10 月 3 日  

在 linuxcnc 2.8 中最终在 gpio 驱动程序中出现错误
RPI4 J8 的前半部分使用 12 GPIO 如下(另一个测试条件)

pin—————-输出—————-
pin-i 将 GPIO 2,3,4 用于 xstep ystep zstep
pin-i 将 GPIO 14、15、17 用于 xdir ydir zdir
pin-i 将 GPIO 10 用于 zenable

pin—————-输入—————-
pin-i 使用 GPIO 18 27 22 用于 xlim ylim zlim (用于 + 和 – lims,也用于家庭)
pin-i 使用 GPIO 23 24 tim lim (pyvcp)

pin-gpio 引脚(不是 rpi 引脚!)
pin-2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
pin-7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2(gpio1&0 未使用)

pin-0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 目录掩码(0 表示输入 1 表示输出)dec 45319
pin-0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 排除掩码(0 表示使用 1 表示不使用)dec 26103544

loadrt hal_pi_gpio 目录=45319 排除=26103544

发现异常 RPI4 pin-15-in 不存在
发现异常 RPI4 pin-40-in 存在
解决方法,最终 gpio 驱动程序
loadrt 中的错误 hal_pi_gpio dir=45319 exclude=25579256 因为 GPIO21 与 RPI4 J8 pin-15-in
loadrt 相关hal_pi_gpio dir=45319 exclude=26627832 因为GPIO22与RPI4 J8 pin-40-in相关

loadrt hal_pi_gpio 目录=45319 排除=26627832

pin-03-out <== xstep
pin-05-out <== ystep
pin-07-out <== zstep
pin-08-out <== xdir
pin-10-out <== ydir
pin-11-out <== zdir
pin-12-in ==> xlim
pin-13-in ==> ylim
pin-15-in ==> zlim
pin-16-in ==> tim
pin-18-in ==> lim
pin -19-out <== zenable

RPI4_GPIO_test.txt

55 // Raspberry2/3:
56 static unsigned char rpi2_gpios[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 21, 23, 24, 25, 26, 27};
57 static unsigned char rpi2_pins[] = {3, 5, 7, 29, 31, 26, 24, 21, 19, 23, 32, 33, 8, 10, 36, 11, 12, 35, 38, 15, 40 , 16, 18, 22, 37, 13 };

在源代码行 56 中可见
static unsigned char rpi2_gpios[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 , 22, 21 , 23, 24, 25, 26, 27 };
rpi_gpio 数字顺序 20、22、21、23 未按预期继续 20、21、22、23而不是