Hello and welcome to Mik's page at DSP lab.


There's nothing much here except the presentation on making GUI interface with Matlab. Other than that, here's a brief info on what I used to do. Click here for chrnological order.


VHDL AND ABEL (CPLD, FPGA, ASIC)

DIGITAL AND ANALOG HARDWARE SIMPLE HARDWARE (Soldering, etc) ASSEMBLY, EMBEDDED CONTROLLER (low and mid range PIC, 80C196KD) ASSEMBLY, DSP (TI DSP, fixed and floating point) ASSEMBLY, MICROPROCESSOR (8088, Z-80, 6502) ENGINEERING SOFTWARE : HARDWARE ORIENTED (C++/builder, Matlab, Labview, VisualBASIC, HPVEE) ENGINEERING SOFTWARE : CONCEPT ORIENTED (C++/builder, Matlab, Labview, VisualBASIC, HPVEE) OTHER LANGUAGES : PASCAL, HYPERCARD, BASIC TROUBLESHOOTING SKILL WEB AND OTHER COMPUTER SKILLS OTHER SKILLS AND EXPERIENCE




ALMOST CHRONOLOGICAL ORDER

Through-hole soldering (1982) - Electronics class, built simple FM band Colpitts oscialltor, multivibrator, linear power supply.

BASIC with Apple II, TRS-80, Timex Sinclair 1000 (1983) - Learned BASIC to write video games. Very quickly found out that BASIC is way too slow for doing anything. Found some workarounds, such as using pointers and using BASIC compiler, but eventually had to learn assembly. Also implemented rudimentary computer graphics.

Z-80 Assembly (1983) - Writing video games using Z-80 assembly using Timex Sinclair 1000. Also found ways of implementing computer graphics using integer arithmetic with assembly and concept of quantizing.

Speak enough English (1983) to be conversant.

IBM PC BASIC (1984) - Some school computers were IBM PC and PC jr. Programmed more graphics. A Korean word processor was designed using vector graphics. (I could've been a millionaire had I marketed this, but I was too young to be earning money at the time.)

IBM PC, Turbo Pascal (1985) - Moving to structured programming, designed games such as TRON light cycle game with computer opponent and multiple window text editor. Due to lack of speed, had to learn more assembly.

Microsoft BASIC for Mac (1985) - Worked on writing simple programs for Mac using "structured" basic from Microsoft. It's got good graphics, but very slow.

IBM PC, 8088 assembly (1985) - Trying to learn assembly on 45 minutes a day with no guidance is tough, especially when the teachers don't know. Figured out what "mnemics" sort of mean and that the registers sort of act as integer variables. I was on independent study since I finished the Pascal course ahead of schedule.

Word Processor, spreadsheet, database (1986) - What seemed like a backward move, computer science department decide to get us using premade programs rather than writing our own. Word Perfect, Lotus 123, dBase3.

More word processor on Mac platform (1987) - More reports are due and Word with WYSIWYG is tremendously helpful.

Sole employee of drive through market (1987) - Part time job to pay for school. I did almost everything other than going to the bank. I suppose I could be an owner of such store, but I have bigger goals for myself.

ICBM (1988) - Courier service on motorcycle covering most of Southern California, especially Orange County. On average, covered 300 miles per day on motorcycle. Became very familiar with Orange County roads and also known as the fastest biker (!) in town. Learned to ride while eating and looking at the map with no hand on handlebar.

OpAmp circuits design (1990) - Class project to design feedback audio amplifier circuit. Designed and implemented simple audio amplifier with multipole low pass filter to cut high frequency noise.

Copier and Fax repair technician (1990) - Repair and maintenance of Toshiba/Sharp Copiers and Fax machine. Received factory training on high end Toshiba Copier and Laser/memory Fax machines.

Laboratory Technician, Physics and Engineering (1991) - Wrote lab instructions, repair broken equipment, design new experiements and equipment, set up computer networks, consulting to other department on computers. Designed "multimedia video" system with Apple II. Wrote Hypercard programs for data logging and multimedia control. Designed the web page for the department. The list goes on and on.

Web design and HTML (1993) - A computer science friend in UT Austin has a web page; I can't let myself get behind a computer science person so I learn HTML and made web page. Since GUI for HTML wasn't available or expensive, all code was written with text editor.

Computer Graphics (1993) - Used Photoshop, Illustrator, some Page Maker to aid in web page design.

6502 assembly (1994) - Wrote 6502 assembly programs for real time control of VCR and built the interface controller.

Computer interface to AC (1994) - Designed and built several AC switches to connect to the computer. The signal from the computer was passed through inexpensive mechanical relay (diode is very important!!!) for isolation and TRIAC for power switch. Subsequent implementation used Optoisolators in place of relay.

Macintosh programming with Hypercard (1994) - Wrote programs with Hypercard to do simple file modifications and control of video disk player.

Macintosh programming with Future BASIC (1995) - Using Pascal-like structure and BASIC syntax, Future BASIC allowed easier GUI programming than C or C++ at the time. Simple programs for launching programs, and file modifications are written and released as shareware.

Logic design with Abel for CPLD (1995) - Used Abel to design and implement 4 bit RISC microprocessor using several CPLD. Register, control, and ALU were implemented with CPLD and several discrete logic gates and RAM/ROM were used. Simple instruction set was implemented with branches, conditionals, etc.

Engineeing shareware (1995) - To avoid having to buy HP48 calculator, root locus calculator program is written in Hypercard. The program was released as shareware, but I have yet to receive the trillion dollar shareware fee. There was one job offer, but it was too far away in Illinois. Pspiceshell, a program to ease the use of SPICE for Mac, is written and released as shareware. Many e-mails of thanks, but as yet to receive my shareware fee of trillon dollars.

Labview (1995) - Instrumentation lab, wrote Labview VI module to collect real time samples for plotting iron core Hysteresis. Worked with "slow" A/D box from National Instruments and built OpAmp and Hall effect sensor signal conditioning circuit.

Matlab (1995) - Brief introduction to Matlab. Due to its slow performance, wrote only rudimentary programs. See below for more Matlab work.

Neural network (1995) - Indepent study on concept of Neural Network. Read about basic concepts of feed forward and back propagation from various books and literature. See below for hardware implementation.

Intel Microcontroller (1996) - Worked with Intel 80C196KD microcontroller in implementing real time neural network controller. The theory behind the controller, written by another engineer, was stable, but the real system showed instability. Matlab simulations were so slow they were useless for more than 10,000 iterations; C was used for simulating above 100,000 iterations and indeed the instability was shown.

TMS320C50 assembly (1996) - Designed and implemented digital filters using TI assembly. Simple FIR and IIR filters were designed and implemented, taking advantage of parallel execution.

VHDL with FPGA (1997) - As a part of a larger design, high speed serial port was designed in VHDL. The VHDL code was to be downloaded to FPGA from host PC.

TMS320C40 C programming (1997) - Designed simple DMA based IO for TI DSP using Spectrum DSP card for PC. This was a part of the larger one-man design involving VHDL/FPGA and Labview, but the project was cancelled.

RF circuits control with Visual BASIC (1997) - Wrote instrument and control program for RF system. This involved figuring out synthesizer words, reverse engineering existing script formats, and general pain in the xxxx.

Instrumentation control with IEEE488/GPIB/HPIB (1997) - Using IEEE488 bus, wrote programs to control several instruments. Wrote programs to understand text file scripts so the user would only have to edit simple text files rather than modifying the program for new control sequences.

DTMF circuit (1997) - Designed DTMF circuits to interface to computer and phone line. The equipment would then call my pager if there is any failure or if it ran through the sequence without problems. Different codes were used to communicate type of failure or success. Wrote software interface for use with other applications.

Instrumentation control with Visual BASIC (1997) - Using ingenious (!) scheme, wrote script based program to control a $1,000,000 proprietary equipment that wasn't designed for external control. Automated the equipment operation to run 24 hours.

C++ builder (1997) - Ansi C++ was learned in school, but that wasn't too useful for making "modern" GUI programs. C++ builder is used to write GUI programs, some of them are serial port display in timing diagram, sending events to other applications, screen savers. See below for database program with modem.

PIC microcontroller assembly (1998) - Wrote programs in assembly for PIC micro controller. RS232 to LCD, RS232 to serial, digital data logger (aka, PMLA -- poor man's logic ananlyzer), see below for real product.

PIC and C++ builder (1998) - Wrote program for RF modem control with OOK and land line modem control. Hardware was implemented by another engineer, but I implemented software for both PIC and GUI database with C++ builder.

VHDL for CPLD (1997) - After ordering VHDL book from Cypress semiconductor, learned VHDL on my own time for CPLD. Their compiler has few bugs (found one, maybe two), and their simulator is terrible (logic sim, not VHDL sim), but they have lowest price for VHDL synthesis tool.

VHDL for FPGA (1998) - Wrote VHDL code for generating OQPSK signal. This was modification of existing design and only involved code for programmable frequency synthesis.

VHDL for ASIC (1998) - Wrote VHDL test bench for testing the serial port of ASIC. The code had provisions for generating variable bit rate data from time stamped text files and recording serial data to time stamped text file. Model Sim was used as simulator.

Instrumentation control with HP VEE (1998) - Implemented GUI based and automated RF power measurement system with HP VEE. The result was written out to excel readable format

Switching modulator for CDMA PA (1998) - This project didn't get very far. The goal was 80 MHz switching frequency with over 90 % efficiency rating. Another was to have 5 MHz bandwidth with 90 dBc rejection with 1 dB ripple in passband. One can design very good elliptic filters with LC, but the goal is impossible with commercially available components. A prototype 1 MHz switcher with 85% efficiency is built.

Matlab GUI programming (1998) - As a research assistant, GUI front end is provided for spectrogram project involving user interaction of the sound file, generation and display of spectrogram, modifications of the spectrogram and reconstruction of sound file from modified spectrogram. This project does what it claims to do with platform independent Matlab code. That also means it's rather slow. GUI with Matlab tutorial is available and the result of the tutorial is useful general purpose graph program.

Web page design (1999) - Worked on modifying web page for digital signal processing lab. All text was already available, but provided toolbar for nonframes web page. Subsequently, the pages were changed to frames format.