4

我打算使用我的 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演示代码本身上。

那么,有人可以确定代码中的错误/错误在哪里吗?

4

2 回答 2

0

尝试使用LUFA无疑是一个非常好的主意,对于初学者来说,您可能需要忽略无线子系统 - 看看您是否可以让一些基本的 USB 设备示例正常工作。

如果可行,请参阅如何集成无线电驱动程序。您可能还想看看TinyOS和/或Contiki。您可能无法使用6lowPAN,如果我没记错的话,Nordic 没有IEEE 802.15.4芯片。但是您仍然可以在Contiki中使用Rudolph或在TinyOS中使用ActiveMessage

如果您想让 Atmel 代码正常工作,最好通过他们提供的支持设施联系 Atmel。AVR Freaks上的某个人更有可能使用过这个特定的板,我怀疑您是否可以在这里找到答案,这将特定于您正在查看的参考设计。

于 2011-11-24T12:22:09.187 回答
0

当我将内置芯片插入 USB 端口时,它什么也没发生。

这只发生在您忘记了其中一根 USB 数据线上的 1.5 kOhm 上拉电阻时。没有它就没有 USB 通信。在某些情况下,该电阻器是片上的,而其他情况下则需要一个外部电阻器。

于 2011-10-30T16:49:26.363 回答