AT90USB162上的CDC演示COM端口代码(Minimus AVR)

时间:2011-10-30 16:38:31

标签: gcc windows-7 arduino avr atmel

我打算将我的AT90USB162(集成为Minumus AVR USB板)用作COMPORT的通信设备类。在Minimus AVR home site中,它提供了一个代码,用于在AVR-USB-162-CDC.zip中为我的芯片构建COMPORT十六进制(此项目使用WinAVR 4,但您也可以使用WinAVR 5构建它,请参阅Build AVR Studio 4 project in AVR Studio 5) 。在构建代码时,我将hex文件加载到芯片中并进行重置。问题是我的Windows 7-64无法识别添加新的COMPORT,所以我无法从设备管理器访问它(因此也不能从Hyperterminal访问它),实际上当我在USB端口上插入构建的芯片时,它什么也没发生。

所以,我需要让我的Windows识别我的芯片作为我的AT90USB162的USB COMPORT。我该怎么做?我不做什么?

我还尝试了来自AVR-CDC site的.hex文件和驱动程序,但实际上我的芯片的驱动程序不可用(我仍尝试使用其他可用的驱动程序)。但没有回应。

更新

我在AVR-CDC Windows Driver Section中发现了一条说明:

  

(*)Vista / 7 x64不接受未经授权的内核模式驱动程序。您必须在系统启动期间关闭“Driver> Signature Enforcement”。有一个工具可以签署驱动程序。 Driver Signature Enforcement Overrider   请参阅/vista64/Readme64.txt中的说明。

因此,当我下载Driver Signature Enforcement Overrider时,我按照/vista64/Readme64.txt上的说明进行操作。简而言之,它应该使Windows能够接收CDC驱动程序lowcdc.sys和lowcdc.inf,后者附带AVR-CDC驱动程序。

但仍然没有回应。

更新

我测试了在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项目定义更改为设置为90usb162。 hex文件生成没有错误。但是当我尝试刻录芯片时,Flip app会返回错误消息“我们超出范围。”。最后我意识到新的.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演示代码本身。

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

2 个答案:

答案 0 :(得分:0)

  

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

仅当您忘记其中一条USB数据线上的1.5 kOhm上拉电阻时,才会发生这种情况。没有它就没有USB通信。在某些情况下,这个电阻是片内电阻,其他电阻需要外部电阻。

答案 1 :(得分:0)

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

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

如果您希望Atmel代码能够正常运行,最好通过他们提供的支持设施联系Atmel。 AVR Freaks上的某个人很可能会使用这个特定的电路板,我怀疑你可能会在这里找到答案,这对你正在研究的参考设计是特定的。