4
votes

I intend to use my AT90USB162 (integrated as Minumus AVR USB board) as a Communication Device Class with COMPORT. In Minimus AVR home site, it gives an code for building a COMPORT hex to my chip, in AVR-USB-162-CDC.zip (this project uses WinAVR 4, but you can build it using WinAVR 5 too, see Build AVR Studio 4 project in AVR Studio 5). As I build the code, I load the hex file into the chip and make an reset. The problem is that my Windows 7-64 does not recognize the addition of the new COMPORT so I cannot access it from Device Manager (and thus neither from Hyperterminal), actually when I plug the built chip on the USB port, it happens nothing.

So, I need to make my Windows recognize my chip as an USB COMPORT for my AT90USB162. How can I do it? What didn't I do?

I also tried the .hex files and drivers from AVR-CDC site, but actually a driver for my chip is not available (still I tried using other ones available from there). But no response.

Update

I found a note in AVR-CDC Windows Driver Section saying:

(*) Vista/7 x64 does not accept unauthorized kernel-mode drivers. You have to turn "Driver > Signature Enforcement" off during system boot- up. There is a tool to sign the driver. Driver Signature Enforcement Overrider See the instruction in /vista64/Readme64.txt.

So as I downloaded the Driver Signature Enforcement Overrider, I followed the instructions on /vista64/Readme64.txt. In brief, it should enable Windows to receive the CDC drivers lowcdc.sys and lowcdc.inf, which comes with AVR-CDC drivers.

But still got no response.

Update

I tested loading the microchip on a Windows XP SP3 machine. So it's not a Driver Signature Enforcement problem from Windows 7/64.

Update

I've found this: Engbedded AVR Fuse Calculator but don't have any idea on how using this.

Update

I got the following answer from avrfreaks forum from user clawson:

"Try downloading usbdeview.exe to see what happens during enumeration. It could be that the VID/PID presented requires a .inf file to select the correct driver.

One thing you could do is download LUFA and build a CDC example in that - it's almost bound to work."

But still did not work. I downloaded usbdeview and tried to watch the chip. But when I plug it in USB port, it still happens nothing if the .hex burned file is the CDC.

I also downloaded LUFA and tried to build the CDC example. Got no success too. In makefile I set MCU = at90usb162, F_CPU = 16000000, FLASH_SIZE_KB = 16, BOOT_SECTION_SIZE_KB = 4 and the other parameters I let unchanged. I also changed AVR Studio project definitions to set at90usb162. The hex file is generately without errors. But when I try to burn the chip, Flip app returns me error message "Address us out of range.". And finally I realized that the new .hex file is equal to the previous one (without changing makefile and AVR Studio project file).

So, maybe does someone more have an idea?

Update

Maybe it's a driver problem? (and not a problem from the .hex?) Any solution?

Update

I found in Atmel Application Notes site for this chip the App Note AVR296: AVRUSBRF01 USB RF Dongle user's guide, which described a way to use this chip as CDC and supplies the .a90 file to burn the chip and the .inf file to use as a Windows driver. I have burned my chip with the AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90 file provided and installed the at90usbxxx_cdc.inf driver on my Windows. And Windows recognized the COMPORT successfully, so the problem is not with the chip, probably is on the CDC demo code itself.

So, could someone identify where is the error/mistake in the code?

2

2 Answers

0
votes

when I plug the built chip on the USB port, it happens nothing.

This only happens when you forgot the 1.5 kOhm pullup resistor on one of the USB data lines. There is no USB communication without it. In some cases this resistor is on-chip, others need an external one.

0
votes

It is certainly a very good idea to try using LUFA, may be for starters you need to ignore the wireless sub-system - just see if you can get some of the basic USB device examples working.

If that works, see how to integrate the driver for the radio. You may also wish to have a look at TinyOS and/or Contiki. You probably will not be able to use 6loWPAN, if I remeber correct, Nordic had no IEEE 802.15.4 chips. But you can still use Rudolph in Contiki or ActiveMessage in TinyOS.

If you would like to get the Atmel code to work, it's probably best to contact Atmel via support facilities they provide. It is more quite likely that someone on AVR Freaks could have used this particular board, I doubt that you may find an answer here, which would be specific to the reference design which you are looking at.