【发布时间】:2011-12-18 06:37:32
【问题描述】:
我打算使用我的 AT90USB162(集成为 Minumus AVR USB 板)作为带有 COMPORT 的通信设备类。在Minimus AVR home site 中,它提供了在AVR-USB-162-CDC.zip 中为我的芯片构建COMPORT hex 的代码(此项目使用WinAVR 4,但您也可以使用WinAVR 5 构建它,请参阅Build AVR Studio 4 project in AVR Studio 5)。在构建代码时,我将 hex 文件加载到芯片中并进行重置。问题是我的 Windows 7-64 无法识别新 COMPORT 的添加,因此我无法从设备管理器访问它(因此也无法从超级终端访问),实际上当我将内置芯片插入 USB 端口时,它什么也没发生。
所以,我需要让我的 Windows 将我的芯片识别为我的 AT90USB162 的 USB COMPORT。我该怎么做?我没有做什么?
我还尝试了来自AVR-CDC site 的 .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 site for this chip 中找到了应用笔记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演示代码本身。
那么,有人能找出代码中的错误/错误在哪里吗?
【问题讨论】:
标签: gcc windows-7 arduino avr atmel