有人知道如何控制某个USB端口上的USB引脚吗?我认为在汇编程序中肯定是可能的,但是C ++或C#呢?
我希望能够将USB电池用作LED的电源或类似的东西。那么一个程序就可以启动它并关闭电源使其闪烁。
我知道这听起来毫无意义,但我需要做一些很棒的事情。
我也知道它可能需要自定义驱动程序。
答案 0 :(得分:10)
您不能简单地切换USB端口上的引脚。期。 USB是一种串行协议。连接器包含
如果您想获得一些IO端口,则需要更多逻辑。您至少需要遵循USB协议的东西,这意味着某种微控制器(或像FTDI USB控制器这样的特殊USB设备控制器.FT232和FT245特别适合使用)。对于基于低端微控制器的解决方案,V-USB driver for AVR controllers可能很有趣。
为了便于PC上的bit-banging IO引脚,请使用并行端口。 USB真的不适用于此。
答案 1 :(得分:7)
USB并非易事,所以我猜你会遇到一些问题(误)使用它。你可以/很多/更好(IMHO)标准串口,已经用于很多年的东西,有大量的例子可用。如果目标计算机上没有可用的串行端口,则可以使用USB->串行接口电缆。
话虽这么说,你可能想看看@: http://sourceforge.net/projects/libusbdotnet/
LP, 德扬
答案 2 :(得分:6)
根据http://www.gniibe.org/development/ac-power-control-by-USB-hub/index
USB 2.0名义上支持每端口电源切换:
Hub Descriptor:
[...]
wHubCharacteristic 0x0089
Per-port power switching
[...]
可悲的是,作者报告称,虽然集线器的固件声称支持这一点,但制造商已经在电路板上偷工减料。
答案 3 :(得分:3)
USB端口的电源和接地引脚没有软件控制,至少在PC芯片组上是这样。这是由USB控制器在硬件中处理的。如果您想通过软件控制TTL电压,请查看USB并口适配器。
答案 4 :(得分:3)
我认为尝试打开和关闭USB电源并不是一个很好的方法:你的USB控制器有可能做到这一点,但它不是一个“正常”的事情
可能最简单的方法是使用FTDI FT245 USB->并行芯片。如果你只是试图闪烁一些闪烁的灯光,可能会出去买一个标准的USB - >并行打印机电缆和接口...你可以通过非常简单的软件控制获得8位输出,而且只需要一点点工作就能获得更多。
或者全力以赴,购买内置USB的微控制器...可能性无穷无尽!
答案 5 :(得分:1)
我认为您正在寻找USB设备。可以制作一个简单的充电器,通过放置或升压调节器来升高5v或调节器以驱动到较低的充电电压。打开或关闭它需要USB设备。
答案 6 :(得分:1)
您尝试做的最好的选择是构建一个实际与计算机通信的USB设备(可能通过自定义驱动程序,但您也可以使用标准驱动程序,如HID设备)。您可以让计算机向您的设备发送“开”或“关”(或任何其他您可以想到的东西),这可以解释您认为合适的信号(可能是通过打开和关闭您正在谈论的LED)。这并不像听起来那么难。您可以购买带有USB接口的微控制器,例如Arduino或一些高端PIC。这些微控制器的许多制造商都提供了解释如何与它们进行USB接口的文档。
答案 7 :(得分:1)
实际的电源和接地引脚无法实现。你应该阅读维基百科USB文章的this部分。
答案 8 :(得分:1)
您需要的是带可编程I / O引脚(a.k.a。 PIO )或UART(RS232)的开发板。
最简单的方法是将LED连接到清除发送(CTS)以及接地或VCC。 CTS线路上的输出将打开或关闭LED,具体取决于另一端是否接地。可以使用正常的I / O引脚,但它们用于UART中的串行数据传输。 UART通常从这些引脚构建一个8位字符;但直接通过RTS(请求发送)和CTS值。
使用PIO时,您只需在变量中设置一个位并将该变量写入PIO集的地址即可。您可能还需要锁定位。一些PIO引脚会记住该值,直到写入下一个值(称为锁存),其他PIO引脚会记住该值,只要它被写出即可。
答案 9 :(得分:0)
问题是控制USB的安培数大多数答案未能考虑到USB的各种mA及其对电压的影响。
通用USB 1.0和2.0输出等于500 mA或0.5 A. 500mA乘以5伏等于2.5瓦功率。
1 A将为您提供全功率5瓦,华硕Ai充电器可以操作USB 2.0输出1.2 A或1200 mA,为您提供6瓦输出。