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

Standard COM port commands for Atmel's microchips CDCs

本文关键字:COM 命令 标准 Atmel 微芯片 CDC 适用于      更新时间:2023-10-16

我正在尝试使用AT90USB162 Atmel芯片作为通信设备类(CDC),用于将一些外部传感器通信到一些Windows应用程序。

在该芯片的Atmel应用笔记站点中,我发现了应用笔记AVR296: AVRUSBRF01 USBRF加密狗用户指南,其中描述了将该芯片用作CDC的方法(用于RF目的,但这不是这里的关注)。这个应用程序笔记伴随着压缩文件AVR296.zip,其中包含.a90文件刻录芯片和.inf文件用作Windows驱动程序。

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

那么,是否有一个标准的命令列表用于使用Atmel的微芯片作为cdc ?

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

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

由于没有人回答,我也在其他论坛上询问,并将回复张贴在这里,以获得SO社区的知识。

一开始,答案是否定的。然而…

来自avrfreaks,感谢@glitch:

cdc代码只是AVR方程的一半。所有的cdc代码所做的是模拟一个cdc设备,所以你的pc代码可以与设备交互,如果它是通过串行端口连接。你现在需要写你自己的代码,在AVR上,与cdc代码链接,实现你想要的任何协议,以及你想要的任何功能。疾控中心的代码不做这些。你还需要编写PC端。或者你可以使用一个标准的终端应用程序,如果你实现的协议是基于ASCII的]

和感谢@dakk64:

这是一个菜单驱动界面的例子,作为一个原型线程实现,但你可以把它放在你的主循环中。

由于有874个loc,我就不把整个代码贴在这里了,但是你可以去那里看看。

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