From bead72f65b5f0fcdb5839fd6bfe24c60adb0f480 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 14 May 2013 09:17:59 +0200 Subject: initial commit --- Pitfalls.txt | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Pitfalls.txt (limited to 'Pitfalls.txt') diff --git a/Pitfalls.txt b/Pitfalls.txt new file mode 100644 index 0000000..b5faede --- /dev/null +++ b/Pitfalls.txt @@ -0,0 +1,61 @@ +If something does not work as it should, please check the following list. +It is compiled from the feedback we received so far. + + +FIRMWARE: +- If you use an ATMega or other device with internal RC oscillator, make sure + that you flash the fuse for the external crystal oscillator. +- Make sure that all USB inputs (D+, D- and the interrupt) are configured as + inputs with no internal pullup resistor. You must write a "0" to the port + output bit and to the data direction bit of each input line. +- Make sure that you have updated the defines in usbconfig.h to reflect your + pin assignments. + + +HOST DRIVER: +- On Linux you must be root in order to use libusb (unless you have configured + hotplug appropriately). The command line utility must therefore be executed + by root. +- Our host software can be compiled on Windows using MinGW and libusb-win32. +- libusb-win32 version 0.1.10.1 (others have not been tested) has a bug with + suspend mode. Once the PC was in suspend mode, the device is "lost". + + +HARDWARE: +- EMI: Our reference implementation is susceptible to EMI problems. We found + out that the chip performs a reset although the external reset pin does + not change level (checked with a DSO connected to reset and triggered by + USB reset). This may be a consequence of over-clocking (we had the AT90S2313 + in stock and it just worked). We recommend EMI precautions in any case: + (1) Use the watchdog timer of the device, (2) generate an USB reset state + for an extended period of time after device reset (this is outside the USB + spec, but it works: the hub or host interprets it as disconnect). Otherwise + the host's and device's notion of the device-ID may get out of sync. +- If you use the EEPROM, it is very likely that you need some kind of brownout + protection. A capacitor of several 100 microfarads in the supply is enough + to reliably cause brownout problems. See Atmel's Application Note AN180 + for more information. Your local supplier's price table may be a better + selection guide for brownout protection chips, though. Newer AVRs have + brownout protection built-in. It can be configured with the fuse bits. +- Operating Voltage: PowerSwitch has been designed to operate at 3.5 V in + order to meet the data signal voltage specification. The circuit does + not work reliably with 5 V levels on D+ and D-. These levels exceed the + common mode range of the USB I/O driver chips found in some hosts and hubs. + We therefore recommend that you either reduce the CPU's supply voltage or + add 3.6 V zener diodes to USB D+ and D- to clamp the voltage at 3.3 V. + + +AVR DEVICES CONFIRMED TO WORK: +Although the driver should work with all AVR microcontrollers which meet the +criteria, it may be good to know that somebody has actually tried a particular +chip. If you have built an AVR-USB project with a chip not listed here, +please drop us a note. The following chips have been tested: + + AT90S2313 works, although it is overclocked + ATTiny2313 + ATTiny45 + ATMega8 + ATMega88 + ATMega8535 + ATMega32 + -- cgit v1.2.3