I wrote drivers for the following devices:
Power devices ¶
- DC-motors — Both on/off cw/ccw and PWM drive.
- Stepper motors — With real-time stepping control, dynamic acceleration ramps, homing state-machine, etc.
- Peltier cells and PWM heaters
Sensors ¶
- A/D converters — Interrupt-driven, high-speed sampling and data processing
- D/A converters — Employing PWMs, multiplexing of multiple channels and other advanced techniques
- GPIO lines — Direct or multiplexed, interrupt driven, polled, etc.
- NTCs, Thermo-couples — Temperature control
- Photocells — Light intensity measurement
User interface ¶
- 7-segment BCD and british-flag alphanumerical displays
- Alphanumerical LCD displays — Like the popular Hitachi HD44xxx controller.
- B/W bitmap LCD displays — Using a homebrew library to draw text and graphics (see DevLib).
- Thermal Printers — Both serial and full printing head control.
- Keyboards — Simple and matrix scan, with debounce and complex input gestures.
- RTC Clocks — Like the Dallas DS1302 and compatibles.
Communication and Networking ¶
- Serial ports — RS232, RS485, SPI, I2C and many other custom serial lines, both interrupt-driven and software buffered.
- Ethernet — CS8900A and RTL8019 (NE2000 compatible).
- USB — With HCI drivers provided by manufacturer.
Storage ¶
- NOR flash devices — Using several programming algorithms.
- Serial EEPROMs — Like the I2C 24Cxxx chips.
A few sample drivers for the most generic devices are available in DevLib.