我打算使用我的 AT90USB162(集成为 Minumus AVR USB 板)作为带有 COMPORT 的通信设备类。在Minimus AVR 主页中,它提供了在AVR-USB-162-CDC.zip中为我的芯片构建 COMPORT hex 的代码(此项目使用 WinAVR 4,但您也可以使用 WinAVR 5 构建它,请参阅Build AVR Studio AVR Studio 5 中的 4 个项目)。在构建代码时,我将 hex 文件加载到芯片中并进行重置。问题是我的 Windows 7-64 无法识别新 COMPORT 的添加,因此我无法从设备管理器访问它(因此也无法从超级终端访问),实际上当我将内置芯片插入 USB 端口时,它什么也没发生。
所以,我需要让我的 Windows 将我的芯片识别为我的 AT90USB162 的 USB COMPORT。我该怎么做?我没做什么?
我还尝试了来自AVR-CDC 站点的 .hex 文件和驱动程序,但实际上我的芯片的驱动程序不可用(我仍然尝试使用那里提供的其他驱动程序)。但没有回应。
更新
我在AVR-CDC Windows Driver Section中发现了一条注释:
(*) Vista/7 x64 不接受未经授权的内核模式驱动程序。您必须在系统启动期间关闭“驱动程序 > 签名强制”。有一个工具可以签署驱动程序。Driver Signature Enforcement Overrider 请参阅 /vista64/Readme64.txt 中的说明。
因此,当我下载驱动程序签名强制覆盖程序时,我按照 /vista64/Readme64.txt 上的说明进行操作。简而言之,它应该使 Windows 能够接收 AVR-CDC 驱动程序附带的 CDC 驱动程序 lowcdc.sys 和 lowcdc.inf。
但仍然没有得到回应。
更新
我测试了在 Windows XP SP3 机器上加载微芯片。所以这不是 Windows 7/64 的驱动程序签名强制问题。
更新
我发现了这个:Engbedded AVR Fuse Calculator,但不知道如何使用它。
更新
我从用户 clawson 的 avrfreaks 论坛得到以下答案:
“尝试下载 usbdeview.exe 以查看枚举期间发生的情况。可能是显示的 VID/PID 需要一个 .inf 文件来选择正确的驱动程序。
您可以做的一件事是下载 LUFA 并在其中构建一个 CDC 示例——它几乎可以正常工作。”
但仍然没有工作。我下载了usbdeview并尝试观看芯片。但是当我将它插入 USB 端口时,如果 .hex 烧录的文件是 CDC,它仍然没有任何反应。
我还下载了 LUFA 并尝试构建 CDC 示例。也没有成功。在 makefile 中,我设置了 MCU = at90usb162,F_CPU = 16000000,FLASH_SIZE_KB = 16,BOOT_SECTION_SIZE_KB = 4,其他参数我保持不变。我还将 AVR Studio 项目定义更改为设置为 at90usb162。生成的十六进制文件没有错误。但是当我尝试烧录芯片时,Flip 应用程序返回错误消息“Address us out of range.”。最后我意识到新的 .hex 文件与前一个文件相同(无需更改 makefile 和 AVR Studio 项目文件)。
那么,也许有人有更多的想法?
更新
可能是驱动的问题?(而不是.hex的问题?)任何解决方案?
更新
我在Atmel Application Notes 网站上找到了该芯片的 App Note AVR296: AVRUSBRF01 USB RF Dongle user's guide,其中描述了将此芯片用作 CDC 的方法,并提供.a90
用于烧录芯片的.inf
文件和用作 Windows 驱动程序的文件。我已经使用提供的文件烧录了我的芯片,AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90
并在我的 Windows 上安装了at90usbxxx_cdc.inf
驱动程序。并且Windows成功识别了COMPORT,所以问题不在芯片上,可能在CDC演示代码本身上。
那么,有人可以确定代码中的错误/错误在哪里吗?