开源改变世界!!

将 I2C I/O 扩展器添加到卡 #50

推推 grbl 2年前 (2022-10-20) 447次浏览 0个评论
打开
tknapstad 打开了这个问题 2018 年 11 月 8 日 · 6 条评论
打开

将 I2C I/O 扩展器添加到卡#50

tknapstad 打开了这个问题 on 8 Nov 2018 · 6 条评论

注释

将 I2C I/O 扩展器添加到卡 #50

我建议在卡中添加一个 I2C I/O 扩展器,以提供更大的灵活性并解决使用 SD 卡等时的限制。TI 的示例。

TCA9555 16bit I2C I/O 扩展器

这增加了 16 条 I/O 线,仅使用 ESP32 板上的 3 个引脚(SDA、SCL 和一个中断引脚),这些引脚可承受 5V、ESD 保护并提供开漏输出。非常适合限位开关、雾、探头、门等。

它只增加了大约 1.50 美元的 BOM 成本。

将 I2C I/O 扩展器添加到卡 #50
所有者

婚戒 评论 2018 年 11 月 8 日

我将其添加到路线图中。您所说的大多数 I/O 都使用中断。我看到有一个中断引脚选项。我得再看看。

您对如何将其添加到 cpu_map.h 和 config.h 有任何建议吗?

将 I2C I/O 扩展器添加到卡 #50
作者

特克纳普斯塔德 评论 2018 年 11 月 8 日  

另一种选择是 Microchip 的这款芯片,它有两条中断线,一个用于每个 8 针端口。多消耗一个 ESP32 引脚,但提供更多灵活性:
https ://www.microchip.com/wwwproducts/en/MCP23018

直到现在我还没有看代码。我的初步印象和想法:

  • 我不认为 config.h 需要被触及
  • 需要添加一个 ioexp.h/.cpp 模块来处理 IO 扩展器中断和 I2C 通信。
  • 引脚号可以在 ioexp.h 中定义。IO扩展器引脚的高位可以设置为1,所以我们从127开始(#define GPIO_EXP_NUM_1 127)
  • 在 cpu_map.h 中包含 ioexp.h,以便我们可以将 IO 扩展器引脚分配给 PROBE_PIN 等功能
  • 至少 Arduino 函数 pinMode、digitalRead、digitalWrite 和 attachInterrupt 需要一个抽象级别,以便我们可以以与 Grbl 代码相同的方式处理常规引脚和 IO 扩展器引脚。我建议添加一个 gpio.h/.cpp 模块来处理这个问题。必须重构现有代码以调用即“gpio_set_pin_mode”而不是Arduino“pinMode”函数。
  • IO 扩展器中断处理程序必须读取所有引脚的状态并调用适当的现有中断处理程序(例如,如果触发了任何限位开关,则为 isr_limit_switches)

大部分工作似乎是为 GPIO 处理(pinMode 等)创建一个抽象层并为 IO 扩展器实现 I2C 协议。

将 I2C I/O 扩展器添加到卡 #50 bdring 添加了 增强 新功能或请求标签 2018 年 11 月 10 日
将 I2C I/O 扩展器添加到卡 #50

我从未使用过它,但我一直在寻找 I2C IO 扩展器并遇到了这些:
https ://www.semtech.com/uploads/documents/sx150x_89b.pdf

Digikey 以 2.55 美元的价格出售
它们是 QFN

Sparkfun 有一个分线板,也有代码。

将 I2C I/O 扩展器添加到卡 #50

创客天堂 评论 2019 年 2 月 5 日  

便宜的 PCF8575 作为端口扩展器怎么样?那里有很多芯片和模块,并且在简单性方面几乎是黄金标准。

http://www.ti.com/lit/ds/symlink/pcf8575.pdf

此外,端口扩展器可用于释放 i/o 以在 ESP32 上进行额外的步进/dir 驱动,诸如终点站或主轴速度的反馈进入扩展器。

将 I2C I/O 扩展器添加到卡 #50

这家伙使用 esp8266 和移位寄存器来控制 GRBL 8 轴。https://github.com/gcobos/grblesp & youtube 视频https://www.youtube.com/watch?v=EGESCcurkwA对于一个好的控制器,我们需要像 g2core 这样的 9 轴https://github.com/synthetos/g2

将 I2C I/O 扩展器添加到卡 #50

最后的人都来到PLC。这就是为什么我试图用这种模块化设计来解决所有这些 I/O 问题。
https://gitlab.com/m10cube/m10
恐怕我们在重新设计方面有点落后(新 PCB 为 90×90),但你明白了。欢迎任何帮助

喜欢 (0)

您必须 登录 才能发表评论!