乐鑫技术交流
直播中

王涛

7年用户 1234经验值
私信 关注
[问答]

***tt热泵项目需要i2c slave支持,可是为什么找不到?

我的 Wi-Fi/mqtt 热泵项目需要 i2c slave 支持,我找不到它,现在已经实现了。从我的搜索努力来看,其他人似乎也需要它。如果是这样,如何进行?
它基于 Arduino twi.c 代码并模拟 Atmega 328p hw。我没有担心现有的主支持,但我猜它仍然像以前一样工作。
该设计基于具有后台处理优势的中断。这在与 mqtt 甚至 OTA 更新支持相结合时非常有用。缺点是暴露于 ESP 的周期性中断延迟。
为了应对后者,需要主机支持时钟延展。此外,当延迟迫使 ESP 不同步时,实施超时以释放挂起的总线。尽管如此,当作为 master 与 Trinket Pro 通信时,总线可能会被 master 挂起。我目前希望该错误出现在 Adafruit 实现或 atmega 硬件中。热泵的长期测试正在进行中。那我们就知道了。
为了支持闪存中的 Wire-library 回调,使用了 prio-2 用户任务。我做了一个文件搜索,它似乎是免费的。prio-0 不起作用,prio-1 被循环任务占用。如果需要,可以与其他 HAL 共享该任务。
释放总线超时是使用单次定时器实现的。
我以大约 14kHz 的频率运行。由于中断延迟,100kHz 似乎无法实现。

更多回帖

发帖
×
20
完善资料,
赚取积分