用于 Atmel 微芯片 CDC 的标准 COM 端口命令

Posted

技术标签:

【中文标题】用于 Atmel 微芯片 CDC 的标准 COM 端口命令【英文标题】:Standard COM port commands for Atmel's microchips CDCs 【发布时间】:2011-11-19 18:00:00 【问题描述】:

我正在尝试使用AT90USB162 Atmel 芯片作为通信设备类 (CDC),以便将某些外部传感器与某些 Windows 应用程序进行通信。

在Atmel Application Notes site for this chip 中,我找到了应用说明AVR296: AVRUSBRF01 USB RF Dongle user's guide,其中描述了一种将此芯片用作 CDC 的方法(用于RF 的目的,但这不是这里的问题)。此应用笔记附带压缩文件AVR296.zip,其中包含用于烧录芯片的.a90 文件和用作Windows 驱动程序的.inf 文件。

所以我使用提供的AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90 文件烧毁了我的芯片,并在我的Windows 上安装了at90usbxxx_cdc.inf 驱动程序。最后Windows成功识别了COM口,现在我正在尝试通过CDC机制与芯片进行通信。

那么,是否有一个标准的命令列表可以与作为 CDC 的 Atmel 微芯片一起使用?

我想做的是在 C++ 中,在 Windows 中,用于访问通过 USB 连接的微芯片以读取特定引脚状态的常驻应用程序,例如:

ComPort1->WriteStr("read?\n");
Response : String;
ComPort1->ReadStr(Response, 50);

【问题讨论】:

【参考方案1】:

由于没有人回答,我在其他论坛上也问过,并将在此处发布回复以供 SO 社区了解。

起初,答案是否定的。不过……

来自avrfreaks,感谢@glitch:

cdc 代码只是 AVR 方程的一半。 cdc 代码所做的只是模拟 cdc 设备,因此您的 pc 代码可以与设备交互,就好像它通过串行端口连接一样。您现在需要在 AVR 上编写您自己的代码,该代码与 cdc 代码链接,实现您想要的任何协议以及您想要的任何功能。 cdc 代码不执行此操作。 【你还需要写pc端。或者,如果您实现的协议是基于 ascii 的,您可以使用标准终端应用程序]

感谢@dakk64:

Here 是菜单驱动界面的示例,实现为原型线程,但您可以将其放入主循环中。

因为有874个LOC,我就不把整个代码贴在这里了,你可以去看看。

所以没那么简单,没有默认列表(例如,旧的 AT 调制解调器代码),但知道这是一个开始。

【讨论】:

以上是关于用于 Atmel 微芯片 CDC 的标准 COM 端口命令的主要内容,如果未能解决你的问题,请参考以下文章

智能家居芯片主要用哪些厂家?

328p芯片引脚间距

什么是T5557卡?

USB CDC ECM

电源管理芯片MAX17048驱动

用于 Atmel AVR 的车辆 GPS 跟踪