【问题标题】:ATSAM4s8b, how to wait until a usb device has been connectedATSAM4s8b,如何等到 USB 设备已连接
【发布时间】:2016-04-20 04:38:50
【问题描述】:

我对 C 和嵌入式编程非常陌生。

我只是想让我的主线程等到 USB 设备插入我的嵌入式设备。

但是,无论我怎么看,我都找不到有关如何检查 USB 是否已插入的文档或示例。 我正在使用 ATSAM4S8B。

编辑:

其实我觉得usb功能是内置在芯片里面的,我可以使用Atmel ASF库。

我希望只有一个库函数可以调用以查看 USB 是否也已连接,但我找不到类似的东西。

【问题讨论】:

  • 哪种类型的 SPI usb:部件号?为什么要使用 SPI USB 而不是嵌入到 SoC 中的 USB?
  • 没有语言“嵌入式 C”(不再)。
  • 在 ASF 目录 common/services/usb/udc/ 中查找有关 VBUS 监控的文档,以便在状态更改时设置回调。然而,这可能很复杂。出于您的目的,识别 VBUS 连接到的 I/O 引脚可能更容易,并且像任何其他 I/O 引脚一样读取状态。
  • @DKrueger 嘿,所以我正在查看该文档,但它似乎很轻,并没有完全向我解释该怎么做,有没有什么例子可以给我一个更好的主意?我一直在寻找,但还没有什么好东西。尤其是刚刚说“//通过GPIO或其他实现自定义VBUS监控”的部分
  • @DKrueger 所以我认为这个模型没有可用的 vbus 监控,因为启用 vbus 监控功能总是返回 false,文档说这意味着它不可用。如何找到我想要查看的 I/O 引脚?

标签: c embedded usb connect atmel


【解决方案1】:

有两种检测USB连接的方法:

  • 等待 USB 事件发生并在硬件寄存器中触发特殊 USB 标志,如果启动进程启动,这将发出信号。此解决方案取决于您使用的特定芯片和烧录到 MCU 中的固件。

  • 使用感应 IO 引脚。通过 1k 电阻将 USB 5V 连接到 MCU 的引脚。引脚上的高电平表示 USB 已连接。不要忘记使用高值(>10k)的下拉电阻,当 USB 断开时,它会将输入拉低。

【讨论】:

  • 感谢您的回答,我正在尝试找到这个熄灭的标志,但我似乎找不到任何与 USB 相关的标志或通知。
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
相关资源
最近更新 更多