This device was built using AVRUSB firmware developed by Objective Development.
Meanwhile, a very similar Release 1.6 exists.
This Low-Speed device violates following USB specification rules:
- Detachable cable (must be captive for Low-Speed)
- Output drivers with 5 V (must be 3.3 V, but USB is 5 V tolerant)
- No differential data input (only one line D- is sampled)
- No data clock regenration while receiving (only at packet start)
- No error detection of input data (OUT direction), no time for CRC16
- Data transfer using BULK pipes (not specified for low-speed, but works on Windows – for Linux there is an "Alternate Setting" with INTERRUPT pipes instead)
- Suspend detection and lowered suspend current (below 500 µA)
Electronic Components
You need:
Pieces | Description | Reichelt Order Code | Price in € (2007) |
---|---|---|---|
1 | ATmega8 in TQFP32 package or ATmega48 | ATMEGA 8-16 TQ ATMEGA 48-20 AU | 1,70 1,45 |
1 | Crystal 12000 kHz | 12,0000-HC49U-S | 0,24 |
1 | Electrolytic capacitor 10 µF | rad 10/35 | 0,041 |
1 | USB receptacle MiniB through-hole | USB BWM | 0,50 |
1 | SubD receptacle 25 pin | D-SUB BU 25 | 0,15 |
1 | Yellow LED 3 mm | LED 3mm ST ge | 0,051 |
1 | Resistor array 220Ω | BCN16 | 0,02 |
2 | Ceramic capacitor 22 pF 0603 | NPO-G0603 22p | 0,051 |
1 | Ceramic capacitor 100 nF 0603 | X7R-G0603 100n | 0,051 |
1 | Resistor 10 kΩ 0805 or 4.7 kΩ for ATmega48 | SMD-0805 10k SMD-0805 4,70k | 0,10 |
1 | Housing | Kappe CG25G | 0,13 |
1 | USB cable 1 m | AK 673-A | 0,98 |
1 | Two-sided PCB (see below) | UL-15 | 5,00 |
Schematic
PCB
Wiring
- That's right, my USB2LPT5 only needs two port pins for USB, no additional INT pin. I use the Input Capture interrupt of Timer1. As a side effect, I can exactly measure the time between two SOFs.
- For Windows driver and AVR firmware, and how-to-use instructions.
- That download you need for running the device on your host PC:
- Driver for Windows 98/Me/2k/XP/Vista/7 (1.3M, Thursday, 02-Dec-2010 00:07:02 MET)
These drivers are not so much plug'n'play. Up to three LPT port address rages are automatically captured. Up to 10 devices may be connected due to naming scheme. The driver and software appears english on non-German Windows. All other languages may be added by modifying the resources and the .INF file. Windows does the automatic selection.Note: For Low-Speed USB2LPT 1.5 und 1.6 with Vista/7 the driver uses the second “Alternate Setting” of the USB2LPT 1.5 and 1.6 firmware that uses INTERRUPT instead of BULK pipes. As a real bad consequence, emulation speed drops by factor 8.
New: There are two new pages for “Properties” in Device Manager. All 4 pages are available in 11 languages.
That download you only need to upgrade the firmware: - Firmware for serial EEPROM (AN2131)
- Firmware for serial EEPROM (FX2LP)
It simply puts USB OUT transfers to the OUT port, and answers to IN transfers. ECP are EPP are simulated too.
- If you don't got an installation manual:
- a Pamphlet.doc as WinWord2000 file
Known PCB bugs
- R2 must be 10 kΩ or at least 4.7 kΩ for right voltages on USB!
1.5 kΩ is only suitable for 3.3V operation using LD1117
Solder Jumper
This revision 5 (USB2LPT 1.5) has three solder jumpers:- SJ1 connects pin 25 of SubD receptacle:
- open: to nothing (free pin)
- right shorted: to ground (default)
- left shorted: to 5 Volt
- SJ2, shorted by default, cut at delivery: Activation of RESET pin for programming the ATmega chip.
- SJ3, shorted by default, for optional 3.3 Volt regulator, or for measuring power consumption.
Usage
Have a look to Device Manager! In the “Connections (COM & LPT)” tree, you will find a new parallel port. Its property dialog has two extra sheets:
- Emulation: Here you can set up properties like the port address emulated, the usage of debug registers, etc.
- Statistics: Here you can inspect how USB2LPT is working, and maybe shooting some trouble
"\\.\LPT1"
(or LPT2 if you already have one), and transfer IN/OUT data with (see USB2LPT.A51, label "upv") via a single call of DeviceIoControl. This part of API is not subject to change in the future. (The IOCTL code is $222010.) Of course, a helpful documentation must follow.Via IOCTL code IOCTL_VLPT_AnchorDownload, you can inject additional firmware to speed-up your applications. Therefore, USB2LPT is aPocket Development Kit for EZUSB AN2131/CY7C68013 too.
No comments:
Post a Comment