[Any] idea is dead without a good application for it. So “California Dreamin’” USB virtual peripheral could be a very nice sample of academic research, but hardly anybody is going to build a keyboard or mouse using it. I have been thinking for a while what to do with it as well. First project that came to my mind was building a hardware key logger for USB keyboards, something like www.keyghost.com, built for PS2 protocol using PIC16F877.
It was quite simple to implement USB part using SX, serial EEPROM and a few switching IC’s. Furthermore I found out that built-in features of SX MCU would help to create a device able to work not only with pure low-speed USB keyboards, but also composite, built-in-hub, things, hence covering all existing systems (SUN, Mac, PC). Recording keystrokes is fun, but if we can do that, why not go further and try to record all low-speed USB traffic. No problem for SX again, problem for the memory. Serial EEPROM is just to slow to handle it. Solution was www.ramtron.com FRAM with 1MHz two-wire interface (let me pay credit here to www.svtehs.com, who happens to advertise it). Finally “California Dreamin’” found a real life application in the world’s smallest low-speed USB analyzer “Atapchi” (stands for a small fruit in Singapore, tastes like apricot). I hope you find this project interesting (mail your questions to chinook at pacific.net.sg)
Ataphchi Features
- Full support for low-speed USB specifications
- 500 transactions capacity in non-volatile memory
- Signal quality checking
- CRC match checking
- Bit stuffing checking
- Data overflow checking
- One device dedicate capturing
- External triggering
- Bus powered
Atapchi Applications
- Development of HID class low-speed USB peripheral devices
- Development of small scale USB based networks
The list of MCUs you can use with Atapchi (not full)
- Cypress: CY7C630/1XX, CY7C3X/5XX, CY7C636XX, CY7C632XXA, CY7C637XX
- Microchip: PIC16C745, PIC16C765, PIC16F747, PIC16F767, PIC16F745, PIC16F765
- Motorola: MC68HC908BD48, MC68HC08JB1, MC68HC908JB8, MC68HC05JB3, MC68HC05JB4
- ST: ST7261X, ST7262X, ST7263
Atapchi Architecture
- Ubicom SX48BD/TQ micro controller with 100% software implementation of USB (improved version of “California Dreamin”)
- Ramtron FM24C64-S 64Kb FRAM Serial Memory with 1MHz two wire interface
- Murata CSTCW5000MX03-T 50 MHz small footprint ceramic resonator
- Switching circuits (other manufacturers)
- No USB interface (Atapchi is to be used with USB repeaters)
For more Detail: World’s Smallest Low-speed USB Analyzer using PIC16F877