3个版本 (破坏性)

使用旧Rust 2015

0.3.0 2021年7月27日
0.2.0 2021年3月30日
0.1.0 2019年3月10日

#958硬件支持

每月30次下载

MIT/Apache

78KB
1.5K SLoC

MAX7301串行I/O扩展器驱动程序

用于Maxim MAX7301串行I/O扩展器芯片的纯Rust驱动程序,适用于嵌入式HAL

描述

此驱动程序旨在在使用嵌入式HAL特质库的嵌入式平台上运行。它是no_std且不需要分配器。初始版本支持使用SPI接口的MAX7301。我希望(并且已经留下接口)扩展它以支持MAX7300,这是一个具有I2C接口的等效设备。

驱动程序允许三种不同的设备使用方式

  • 一种“原始”接口,它公开了最小抽象的方法,这些方法直接映射到设备实现的操作,但不映射到嵌入式HAL特质,
  • 一种立即模式接口,它允许创建单独的、可拥有的PortPin实例,这些实例实现了InputPinOutputPin特质,其中调用这些特质的任何方法都会立即启动总线事务以执行操作,
  • 一种事务性接口,它类似地允许创建PortPin实例,但HAL特质方法不会直接生成总线流量,而是与驱动程序内部写入缓存中的写入缓存交互。还有额外的控制写入缓存刷新或写入的方法,这些方法允许驱动程序利用设备的多个端口寄存器,在合理的情况下显著减少总线流量和延迟。

缺少的功能

  • MAX7300变种的I2C接口。
  • 用于使用设备的硬件转换检测和中断生成器的辅助方法。它可以启用和禁用,但这有点无意义,因为没有方法可以更改端口掩码,也没有方法在触发中断后清除它。

许可

许可为以下之一

任选。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外的条款或条件。

依赖项

~195KB