For Non-Commercial Use Only
I would appreciate to be credited within your project, if you use any of the source code below. If you have an interesting project going on, I'll be glad about feedback.
The software below comes with no guarantee or warranty
except for my good intentions. Further the use of this code
implies that the user has a fundamental understanding of
electronics and its risks. I'm not responsible for any harm or
damage, caused by inproper use of any of the code below.
Any commercial use of parts or all of this code requires the
permission of the
author.
"Design and test of electronic circuits are 1% inspiration and 99% perspiration."
(Freely derived from Thomas Alva Edison's famous phrase:
"Genius is 1% inspiration and 99% perspiration.")
FPGA/ASIC Projects
Mandelbrot/Julia Fractals
on Xilinx FPGA
Dhrystone Benchmark on
PowerPC 440 CPU
Whetstone Benchmark on
PowerPC 440 CPU
Real-Time MIMO-OFDM
Testbed
PIC Microcontroller Projects
Altimeter
Project
Precision Digital
Altimeter
Keyboard
Projects
AT Keyboard
Interface V1.xx
AT Keyboard
Interface V2.xx
AT Keyboard
Interface V3.xx
AT Keyboard Box
V2.xx
AT
Keyboard Interface with Morse Code Support V1.xx
AT
Keyboard Interface with Morse Code Support V2.xx
PIC Microcontroller Test
Routines
RS232 Test
Programs
Simple
RS232 Interface
RS232
Communication Test Routine with LCD (1)
RS232
Communication Test Routine with LCD (2)
Dual RS232
Communication Routine with LCD
RS232 Scope
V1.02 Test Interface
LCD Test
Programs
LCDx Test
Routine
Binary to
Decimal Test Routine
Debugging Routine / Bitstream
Visualization
AT Keyboard Test
Programs
AT Keyboard
Scan Code Debug Routine
Numeric
Foil-Keypad Calibration Routine
ADC Test
Programs
NSC
ADC12130 Test Interface
DCF77 Test
Programs
DCF77 Test
Interface
Arithmetic Test
Programs
Test
Routine for 16-bit Macro Libary
Mandelbrot/Julia Fractals on Xilinx FPGA [Toc] [Top] | |
Floating-point
performance assessment of PowerPC 440 RISC
CPU This project shows the implementation of a fractal kernel on the Xilinx ML507 Virtex-5 FPGA prototyping board, including visualization on a TFT display. One of the main objectives of this project was the characterization of the embedded PowerPC 440 compute performance with absent/present single-/double-precision floating-point unit. |
Dhrystone Benchmark on PowerPC 440 CPU [Toc] [Top] |
Performance
assessment of embedded PowerPC 440 RISC CPU using the
Dhrystone 2.1 benchmark This project seeks to verify the numerous Dhrystone performance numbers of the IBM PowerPC 440 RISC CPU claimed by various press releases and data sheets, as those numbers are almost always listed without any compiler specifics. |
Whetstone Benchmark on PowerPC 440 CPU [Toc] [Top] |
Performance
assessment of embedded PowerPC 440 RISC CPU using the
Whetstone 1.2 benchmark This project seeks to assess the Whetstone performance of the IBM PowerPC 440 RISC CPU with present and absent double-precision floating-point unit (FPU) running as CPU coprocessor. |
Real-Time MIMO-OFDM Testbed [Toc] [Top] | |
My Ph.D. study in
the field of fourth-generation MIMO wireless
communication It was a mixed FPGA/ASIC project with embedded real-time signal processing. My research focus was on VLSI circuits for MIMO preprocessing, with emphasis on QR decomposition-based architectures. The depicted testbed terminal could act either as access point or station, and performed all PHY and MAC layer tasks associated with 4x4 wireless MIMO communication. Additional Ethernet connectivity allowed to establish a wireless network of multiple testbeds and to demonstrate live video streaming across our prototyping system. |
Precision Digital Altimeter [Toc] [Top] |
MPXS4100 absolute pressure
sensor, PIC16F84 and wireless transmitter &
receiver Altimeter for my radio controlled modelplanes, but can also be used for hiking, climbing, mountaineering and other outdoor activities. Has an excellent resolution of 1 meter and a range of 4100 meters. I still work on it. |
AT Keyboard Interface V1.04 [Toc] [Top] |
AT keyboard interface with
RS232 link using PIC16F84 AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and sends them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. There is no visual interface at the terminal like a LCD display. Unidirectional data flow: keyboard to RS232 target device. |
AT Keyboard Interface V2.04 [Toc] [Top] |
RS232 terminal with LCD
display using PIC16F84 AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This implementation features a LCD display as visual interface, but only for transmitted characters typed on the local keyboard (unidirectional data flow). RS232 data transmission is carried out using a software routine. No reception of characters sent from RS232 target device, because no RS232 modules with preemptive data reception available yet. |
AT Keyboard Interface V3.05 [Toc] [Top] |
Fully operating RS232 terminal
with LCD display using PIC 16C74A AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This microcontroller application features a dot matrix LCD display, and makes best use of the microcontroller-internal USART, i.e. completely hardware-based RS232 data transmission and reception. Reception of external serial data is done using an interrupt-based acquisition scheme. Visualization of received data on the first line, user-entered data on the second line of the dot matrix LCD display. This application is best used with a 2 line by 20 or 40 characters LCD display. |
AT Keyboard Box V2.05 [Toc] [Top] |
Fully operating RS232 terminal
with LCD display and numeric foil-keypad using
PIC16F77 AT keyboard to RS232 interface with completely bi-directional communication capabilities. Multiple input devices are attached, such as an AT keyboard and a small numeric foil-keypad. The application features a dot matrix LCD display to visualize the data received from the RS232 client on the first line, and the characters typed on the locally attached keyboard on the second line. There is also a piezo-beeper for acoustic feedback. This program converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. RS232 communication is carried out by the microcontroller-internal USART, i.e. completely hardware-based RS232 data transmission and reception. Dynamic configuration of RS232 baud rate setting at start-up (user-customization with 1200 baud - 115200 baud), with 12 seconds inactivity time-out. In case the time-out applies, the user-customization process terminates with the current setting. Default setting after power-up is 9600 baud. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This application is best used with a 2 line by 20 or 40 characters LCD display. |
AT Keyboard Interface with Morse Code Support V1.02 [Toc] [Top] |
AT keyboard interface with
RS232 link and Morse code PWM output using
PIC16F84 Technical data as AT Keyboard Interface V1.03 above. Additional pulse-width modulated (PWM) Morse code output. Further parameterizable acoustic Morse code feedback through Piezo beeper. |
AT Keyboard Interface with Morse Code Support V2.02 [Toc] [Top] |
AT keyboard interface with LCD
display, RS232 link and Morse code PWM output using
PIC16F84 Technical data basically as AT Keyboard Interface V2.03 above (except direct Ctrl-Hex and Alt-Dec entry). Additional pulse-width modulated (PWM) Morse code output. Further parameterizable acoustic Morse code feedback through Piezo beeper. |
Simple RS232 Interface [Toc] [Top] |
Shows briefly the use of the various RS232 modules (m_rs048,
m_rs096, m_rs192). It is more or less the same as the RS232
Communication Test Routine (1), without LCD display. The
controller sends approximately every 10 seconds a stand-by
statement to the terminal screen and echoes to every
character the device gets. RS232 reception is based on
PortB0 interrupt. |
RS232 Communication Test Routine with LCD (1) [Toc] [Top] |
Fully software controlled
reception & transmission on interrupt featured
PICs Complete RS232 communication routine for PIC16F84, which allows to display sent characters from the PC on a dot matrix LCD Display and send an acknowledge back to the PC. RS232 reception is based on PortB0 interrupt. Shows the implementation and function of the modules m_rs232.asm, m_wait.asm, m_lcd.asm and m_lcdv08.asm on the PIC16F84. |
RS232 Communication Test Routine with LCD (2) [Toc] [Top] |
Fully hardware controlled
reception & transmission on PIC16F77
(PIC16C74A) Complete RS232 communication routine using hardware USART of PIC16F7x, which allows to display sent characters from the PC on a dot matrix LCD Display and sends an acknowledge back to the PC. Shows the implementation and function of the modules m_wait.asm, m_lcd.asm and m_lcdv08.asm on the PIC16F77 (PIC16C74A). |
Dual RS232 Communication Routine with LCD [Toc] [Top] |
Dual RS232 reception &
transmission on PIC16F77 Microcontroller terminal featuring two independent RS232 interfaces: One RS232 link uses the hardware USART and interrupts, the other one is software-based using only interrupts on PortB0. Display of received ASCII characters and corresponding decimal values on LCD. ASCII values entered on one terminal window are transmitted by RS232 to the controller, displayed on the LCD, and further transmitted to the other terminal window. Shows the simultaneous use of both hardware- and software-based RS232 communication on the PIC16F77. |
RS232 Scope V1.02 Test Interface [Toc] [Top] |
This is the test routine for the serial 16 bit data capture from an
Excel 97 worksheet. It shows the implementation of a 16 bit table read in both directions (top-down and bottom-up) to save space. The Excel worksheet visualizes the received data using graphs. This test program implements one building block of the digital altimeter. |
LCDx Test Routine [Toc] [Top] |
Demonstrates the implementation of self-defined
characters on a dot matrix LCD display with the module
m_lcdx.asm. |
Binary to Decimal Test Routine [Toc] [Top] |
A counter from 0 to
65'535 on a dot matrix LCD display demonstrates
the function of the m_lcdv16.asm module on the
PIC16C84. |
Debugging Routine / Bitstream Visualization [Toc] [Top] |
Demonstrates the 16 bit binary debugging routine with
the module m_lcdb16.asm. Requires a dot matrix LCD
display. I've written it to debug the SSP (Synchronous Serial Port) interface to the NSC ADC12130 for my altimeter. |
AT Keyboard Scan Code Debug Routine [Toc] [Top] |
RS232 based scan pattern debug
routine for PIC16F84 AT keyboard test routine to visualize and verify scan patterns sent by the keyboard. The scan patterns are fetched by the controller and afterwards sent to the RS232 target device, in this case the PC and an Excel 97 worksheet programmed with Visual Basic to visualize the scan patterns. |
Numeric Foil-Keypad Calibration Routine [Toc] [Top] |
RS232 based debug and
calibration routine for PIC16F77 AT keyboard test routine to visualize and verify the analog values acquired by the PIC microcontroller to convert the numeric foil-keypad entries to decimal values. The setup is basically the same as the AT Keyboard Box V2.05 above. |
NSC ADC12130 Test Interface [Toc] [Top] |
Serial interface to 12 bit A/D
Converter Shows the implementation of the synchronous serial connection to the A/D Converter. Auto-Calibration, Auto-Zero and Status Read are made as initial procedures, afterwards the unsigned 12 bit data will be fetched and displayed on the LCD display in binary format. |
DCF77 Test Interface [Toc] [Top] |
Software-based PWM decoding on
PIC16F84 of DCF77 time information Incorporates standard DCF77 RF to PWM decoder unit based on Temic 4224. Visualization and translation of DCF77 data is done using an Excel 97 work sheet with the ability to acquire and log RS232 data. |
Test Routine for 16-bit Macro Libary [Toc] [Top] |
Functional Verification of
Macro Library using Microchip MPSIM
Simulator Seeks to verify the arithmetics of the 16-bit macro library m_16bit.asm, i.e., CLR16, MOV16, NEG16, ADD16, SUB16, CMP16, LSR16, LSL16, INC16, and DEC16 operations and the corresponding immediate operations, if applicable. For CMP16 and SUB16 operations, special attention was put on the correct handling of the important status bits, i.e., zero and carry flags. |
Last updated: 2012/12/30