nanoFramework.Iot.Device.Mcp23xxx 1.2.570
前缀已保留
dotnet add package nanoFramework.Iot.Device.Mcp23xxx --version 1.2.570
NuGet\Install-Package nanoFramework.Iot.Device.Mcp23xxx -Version 1.2.570
<PackageReference Include="nanoFramework.Iot.Device.Mcp23xxx" Version="1.2.570" />
paket add nanoFramework.Iot.Device.Mcp23xxx --version 1.2.570
#r "nuget: nanoFramework.Iot.Device.Mcp23xxx, 1.2.570"
// Install nanoFramework.Iot.Device.Mcp23xxx as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Mcp23xxx&version=1.2.570 // Install nanoFramework.Iot.Device.Mcp23xxx as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Mcp23xxx&version=1.2.570
Mcp23xxx/MCP23008/MCP23009/MCP23017/MCP23018 - I/O 扩展器设备系列
MCP23XXX设备系列提供8/16位通用并行的I2C或SPI应用程序I/O扩展。这些设备包括一系列寻址方案和I/O配置,包括上拉电阻、极性反转和中断。
注意:此端口从.NET IoT开始使用.NET nanoframework。目前只支持I2C设备。
文档
- 来自Adafruit的文档
- 从Adafruit学习课程中学习如何使用MCP23008和MCP23017与Python一起使用,这些课程用于创建绑定。
设备系列
MCP23XXX设备包含不同的标记来区分功能,如接口、包装和温度等级。例如,MCP23017包含I2C接口,而MCP23S17包含SPI接口。请查看具体的数据表以获取更多信息。
注意:MCP23X16 包含不同的内部电路,与该绑定不兼容。
用法
Mcp230xx I2C
// 0x20 is the device address in this example.
var connectionSettings = new I2cConnectionSettings(1, 0x20);
var i2cDevice = I2cDevice.Create(connectionSettings);
var mcp23S17 = new Mcp23017(i2cDevice);
Mcp23Sxx SPI
var connectionSettings = new SpiConnectionSettings(0, 0)
{
ClockFrequency = 1000000,
Mode = SpiMode.Mode0
};
var spiDevice = SpiDevice.Create(connectionSettings);
// 0x20 is the device address in this example.
var mcp23S17 = new Mcp23S17(spiDevice, 0x20);
寄存器分块和端口
在 16 位扩展器上,GPIO 端口分为 2 个 "端口"。通过 IGpioController
接口,我们将引脚逻辑上暴露为 0-15,其中第一个分块是 0-7,第二个是 8-15。
当使用 16 位芯片上的 ReadByte()
或 WriteByte()
时,您可以指定要写入的相应寄存器的 PortA
或 PortB
。默认为 PortA
。读取和写入 ushort
写入到两个端口。
内部电路具有分块概念,可以按端口寄存器或按寄存器类型分组。这使读取/写入方案具有不同的配置。虽然我们对分块样式有一些支持,但并未直接暴露。没有安全的方法来检测模式,并且大多数其他驱动程序仅支持默认设置。您需要直接从 Mcp23xxx
继承。
16 位设备的示例
// Read Port B's Input Polarity Port Register (IPOL).
byte data = mcp23S17.Read(Register.IPOL, Port.PortB);
8 位设备的示例
MCP23X08 只包含 1 个端口,因此在寻址寄存器时没有端口选择。
// Read port A's GPIO Pull-Up Resistor Register (GPPU).
byte data = mcp23S08.ReadByte(Register.GPPU);
控制器引脚
Mcp23xxx
在实例化设备时具有重载的引脚选项。这包括一个复位线,它是控制器到 MCP23XXX RST 输入引脚的输出引脚。其他引脚是中断选项,它们是控制器从 MCP23XXX INTA/INTB 输出引脚的输入。它们是可选参数。将不使用的引脚分配为 null
。
// Pin 10: Reset; Output to Mcp23xxx
// Pin 25: INTA; Input from Mcp23xxx
// Pin 17: INTB; Input from Mcp23xxx
var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);
如果使用复位引脚,MCP23XXX 将默认处于复位/禁用状态。您必须调用 Enable()
方法来激活设备。
var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);
mcp23S17.Enable();
// Can now communicate with device.
// Turn off again if needed.
mcp23S17.Disable();
待办事项:目前只能读取中断引脚。事件将在未来的 PR 中到来。
var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);
PinValue interruptA = mcp23S17.ReadInterruptA();
PinValue interruptB = mcp23S17.ReadInterruptB();
绑定说明
此绑定包含一个 Mcp23xxx
抽象类,以及为 8 位 Mcp23x0x
和 16 位 Mcp23x1x
变体提供的派生抽象类。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET Framework | net 是兼容的。 |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
- nanoFramework.System.Device.I2c (>= 1.1.16)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 仓库
此包未被任何流行的 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
1.2.570 | 86 | 6/14/2024 |
1.2.560 | 84 | 5/29/2024 |
1.2.548 | 91 | 5/15/2024 |
1.2.436 | 239 | 11/10/2023 |
1.2.329 | 161 | 5/26/2023 |
1.2.316 | 139 | 5/16/2023 |
1.2.313 | 136 | 5/12/2023 |
1.2.297 | 147 | 5/3/2023 |
1.2.203 | 297 | 12/28/2022 |
1.2.141 | 390 | 10/25/2022 |
1.2.122 | 415 | 10/12/2022 |
1.2.114 | 406 | 10/8/2022 |
1.2.95 | 401 | 9/22/2022 |
1.2.87 | 462 | 9/15/2022 |
1.2.73 | 374 | 9/8/2022 |
1.1.113.2032 | 403 | 6/23/2022 |
1.1.1 | 420 | 4/14/2022 |
1.0.300 | 393 | 3/31/2022 |
1.0.0-preview.31 | 106 | 3/25/2022 |
1.0.0-preview.16 | 104 | 3/18/2022 |
1.0.0-preview.11 | 106 | 3/15/2022 |
1.0.0-preview.4 | 112 | 3/8/2022 |
1.0.0-preview.1 | 104 | 3/8/2022 |
0.0.0 | 146 | 2/24/2022 |