Atmega16+32 not found with 16MHz crystal on some Hosts

General discussions about V-USB, our firmware-only implementation of a low speed USB device on Atmel's AVR microcontrollers
lcoenegr

firmware USB-driver not working on new PC-hardware

Post by lcoenegr » Fri Mar 07, 2008 6:49 pm

Hi there,

I am using the firmware driver for quite a long time now and with success.
Now we bought a bunch of new PC's (Dell Optiplex 755 with IHC9 controller) and the driver stops working on those machines. I have tried the USB-devices on some newer HP-pc's (7XXX) with the same problems "USB-device not recognized"
Compiling with debuglevel 2 gives the following result:
ff:
12: 80 06 00 01 00 00 40 00
20: 4b 12 01 01 01 00 00 00 08 12 36
ff:
..
ff:
12: 80 06 00 01 00 00 40 00
20: 4b 12 01 01 01 00 00 00 08 12 36
20: c3 c0 16 df 05 00 01 01 02 ca 9b
20: 4b 00 01 3f 8f
ff:
..
ff:
12: 80 06 00 01 00 00 40 00
20: 4b 12 01 01 01 00 00 00 08 12 36
20: c3 c0 16 df 05 00 01 01 02 ca 9b
ff:
20: 4b 00 01 3f 8f
ff:
..
ff:
12: 00 05 01 00 00 00 00 00
20: 4b 00 00
12: 80 06 00 01 00 00 12 00
20: 4b 12 01 01 01 00 00 00 08 12 36
20: c3 c0 16 df 05 00 01 01 02 ca 9b

With older PC's I get the normal result. I already changed crystal from 12 to 16 MHz and back, with no succes.
Originally the problem came up with AVR-Doper, and I changed from CDC- to HID-mode, with no success.
The hardware works with older PC's, but not on the newer ones with the IHC9 chipset.
Does anyone know how to cope with this problem.

Luc

lcoenegr

USB-firmware driver

Post by lcoenegr » Fri Mar 07, 2008 7:22 pm

Sorry Guys,

The problem I just spoke about in the group has nothing to do with the software, but with the hardware.
I used a 3V6 Zenerdiode, and the new chipsets are not accepting this.
For the moment I don't have something else but I'll try monday with a 3v3 Zener and see if it helps.

Thanks,

Luc

Grendel
Rank 4
Rank 4
Posts: 167
Joined: Sat Dec 16, 2006 9:53 pm
Location: Oregon, USA
Contact:

Post by Grendel » Fri Mar 07, 2008 9:39 pm

Odd. My original design uses a mega8 w/ 3V3 diodes and 82R resistors, 12/15/16MHz -- no problems an anything from 865-ICH9R. I recently modified one proto to 3V6, 68R w/o any different behavior. OTOH, I redesigned the device using an ATtiny461. It would not work w/ 3V3/68R but works fine w/ 3V6/68R. I think that is because the electrical characteristics for the inputs on newer AVR chips are slightly different -- the mega8 high/low thresholds for 5V Vcc are 1.8V/1.4V, but 2.6V/2.2V for the tinyX61 and 2.5V/2.4V for the megaX8.

christian
Objective Development
Objective Development
Posts: 1443
Joined: Thu Nov 09, 2006 11:46 am

Post by christian » Sat Mar 08, 2008 5:43 pm

When you use zener diodes, make sure that you use low power types (the tiny ones in the same package as the 1N4148). Higher power types require more current to reach their nominal voltage and have much higher capacitances. The higher capacitance distorts the timing.

I would recommend 3.6 V types over 3.3 V because the 1.5 k pull-up resistor does not source enough current to reach the nominal voltage. With 3.3 V diodes you may not reach the threshold voltage for device detection.

BTW: The debug log shows that some communication is taking place. This indicates that the voltage levels are OK and the zener diodes are probably not the cause of the problem. If this is the 16 MHz module, please upgrade to the latest version. There was a bug with enumeration which was timing dependent and occurred only with some host controllers.

Guest

Post by Guest » Fri Mar 14, 2008 4:41 pm

Hi and thanks a lot for this great projects!! You just saved me a bunch of time and headaches!!!!

Mon1018
Posts: 6
Joined: Fri Mar 14, 2008 12:01 pm
Location: Bergenfield,New Jersey
Contact:

Post by Mon1018 » Fri Mar 14, 2008 4:48 pm

Hi and thanks a lot for this great projects!! You just saved me a bunch of time and headaches!!!! (Guest is me)

Post Reply