我是USB新手,为设计硬件的客户开发支持USB的嵌入式设备。目标是STM32F4。
用例是这个设备A)当连接到计算机时,应该显示为COM端口。B)当连接到外围设备时,可以作为主机通过COM端口与其通信。例如,初始外设将提供DB9连接,因此在我的嵌入式设备和外围设备之间可能存在USB到RS232加密狗。因此,在这种情况下,我认为我们的外围设备将是加密狗。C)长期目标是支持其他外围设备,例如闪存驱动器和用户输入设备。
上面的项目A)已经使用ST的CDC类驱动程序实现。我有很多关于如何处理这个的问题。
我对On The Go Supplement的理解是,基本上有两种方法可以解决这个问题 - 无论是作为嵌入式主机还是使用OTG。
1)规范似乎表明,如果使用嵌入式主机模型,则必须支持至少两个USB连接,可能需要支持micro上的多个端口,一个配置为主机连接,一个配置为外围连接。它是否正确?
2)客户计划使用OTG并将ID信号硬接线到微型地面(主机),并根据需要切换角 {MOD}(可能通过HNP,如果两者都支持OTG?)。我不相信这会起作用,因为当连接到PC时PC会认为它是主机,对吗?
3)我对CDC(ACP)和VCP之间的关系感到有些困惑。似乎VCP是一种特定类型的CDC,但我不清楚它是如何扩展它的。鉴于客户已经使用ST CDC驱动程序实现了上述A),对我来说,如果没有VCP,这似乎很奇怪?
4)如果我想在上面实施B)(假设使用OTG)我的身边需要什么,因为该设备已经充当外设CDC?即作为外设时,除了驱动程序中已有的CDC连接之外,还需要什么才能充当CDC连接的主机?
此帖出自
小平头技术问答
一周热门 更多>