常规Windows 10 PC的USB转GPIO / SPI / I2C / UART?模拟到Raspberry Pi 40针标题

时间:2018-03-08 21:38:18

标签: c# windows gpio i2c spi

有没有人知道有一家公司为普通的非物联网Windows 10 PC销售USB线缆,可以将USB转换为40针Raspberry pi头上的所有以下总线?示例:USB-> GPIO,I2C,SPI,UART等。

我能找到的最接近的是:

Digital Discovery Logic Analyser from digilentinc.com

这可以将PC USB转换为GPIO / I2C / SPI等...除了我正在寻找更小,更少线路的东西......只有40针或更少...类似覆盆子pi 40针头除了从连接到PC的USB驱动之外......有没有人看到这种类型的产品可以从PC-USB转换为40针头与所有列出的总线?

此外,我希望能够使用" Windows.Devices"通过 Windows UWP 对此USB转换设备进行编程。 Api而不是专有的驱动程序DLL API ......还没有真正找到...示例:

// C# Program GPIO connected to USB dongle of regular PC...
using Windows.Devices.GPIO;
...
private void InitGPIO()
{
    var gpio_ctrl = GpioController.GetDefault();
    // Check GPIO state
    if (gpio_ctrl == null)
    {
        this.pin = null;
        this.status.Text = "ERROR: No GPIO controller found!";
        return;
    }
    // Setup the GPIO pin
    this.pin = gpio_ctrl.OpenPin(LED_PIN);
    // Check to see that pin is Ok
    if (pin == null)
    {
        this.status.Text = "ERROR: Can't get pin!";
        return;
    }
    this.pin.SetDriveMode(GpioPinDriveMode.Output);
    this.pinValue = GpioPinValue.Low; // turn off
    this.pin.Write(this.pinValue);
    this.status.Text = "Good to go!";
}

我知道我可以在覆盆子pi上运行与Windows IoT核心类似的东西,但是,我想使用我的普通笔记本电脑。

2 个答案:

答案 0 :(得分:0)

下面的分组讨论板类似但是,我不确定是否与Rasperry PI头相同,因为这个FTDI文档说它只有一个串行通道可配置为任何协议(i2c,spi等)。相比之下,Raspberry Pi为您提供了多个串行通道,仅提供数据和时钟信号以及gpio。但是,它至少部分类似于覆盆子pi头。

Adafruit FT232H Breakout

FT232H芯片能做什么?这款来自FTDI的芯片与其USB转串口转换器芯片类似,但增加了一个“多协议同步串行引擎”,允许它讲多种常见协议,如SPI,I2C,串行UART,JTAG等等!甚至还有一些数字GPIO引脚,您可以读取和写入以执行诸如闪光LED,读取开关或按钮等操作。 FT232H突破就像为您的计算机添加一个用于串行协议的瑞士军刀!

适用于Windows,Mac,Linux的USB驱动程序。

Adafruit FT232H Breakout Documentation

FT-232H Datasheet

答案 1 :(得分:0)

如果您编写“串行端口服务器”并将其加载到Arduino上,您可以从Windows PC访问任何Arduino或Rasberry pi板的所有传感器和GPIO,I2C,SPI等...或Raspberry-Pi板,然后使用C#程序将串行端口读/写命令发送到该板...

例如,Arduino板通过PC的USB供电,此USB也用于连接串行端口,您可以从C#程序连接。您可以简单地将Arduino草图上传到电路板,然后启动C#程序连接到Arduino串口。它不如在Windows.Devices下使用IoT API那么好,但它可以让您通过串口访问所有相同的设备。 (它的主要问题是串行端口是一个没有唯一DeviceID的匿名端口......如果有多个串行端口连接到您的系统,会导致混淆。)

请注意,书中有一个很好的例子,“JavaFX 9 by Example,3rd edition”。 (但是,没有理由不能使用C#/ WPF和.NET串口API)

您还可以使用连接到控制卡作为客户端的PC的IoT卡,使用以太网,WiFi和蓝牙端口对服务器端口进行类似设置。

为了完整性,还有FPGA解决方案。创建一些包含UART串行端口的Verilog或VHDL以及所需的所有其他外设(如I2C,SPI等)......将它们连接在一起,在UART周围添加一些自定义逻辑,使其像一个可以通过串行端口从Windows PC写入的地址/数据总线。