A long time ago in a galaxy far, far away (around 2005 in Czech republic) there lived young boy interested in programming and electronics. He attended to general nontechnical high school, but still he could write few algorithms in C and knew how the basic electronics works. After he built some flashing lights and circuits emitting funny sounds he started to think about how to develop more complex devices with display and keyboard that can do some useful tasks. So he fared through the world to get some experience and knowledge (using google.com of course). At the end of the adventurous journey through Internet world he find the magic symbol MCU. This abbreviation completely changed the young boy’s view of electronics. Until then he can’t even imagine that there could be complete computer with CPU, RAM and HDD alternative inside small package that costs less than few dollars.
This is how my journey through MCU world begins. My English wasn’t so good in that time, so I was searching for information about microcontroller programming in Czech language. I found few articles about programming PIC family from Microchip. So I asked my friend to get me one piece of PIC12F and PIC16F MCUs and components to make simple programming dongle. Then I began to study weird assembler language, which was the only possible choice to program these MCUs. I tried to write few examples but soon I discovered AVR architecture and ATmega8 MCU, that offered more features for even lower price.
I started coding for AVR using assembler because I was convinced that higher languages in limited MCU environment is waste of resources. Soon I realized that I won’t fill available memory using single assembler instructions. C language compiler for AVR was available for free, so I started to work with this “higher” language. Coding in C for ATmega8 was enough for several years and many projects. These were in scope from RC model telemetry transmission attempts, through CNC controlling unit to microcontroller driven charger. During development of complex projects I encountered missing on-chip debug support. This complication was partially solved using more advanced simulator in VMLAB IDE. True behavior was however very often different from simulated behavior. The final impulse to search for alternatives was price raise of ATmega8 to more than 300% of original price.
I decided to buy STM32 VL Discovery board which determined my next step in MCU world. STM32 VL Discovery contains STM32F100 line MCU with ARM Cortex-M3 core and embedded on-chip debugger, which can also be used to debug external devices. For such a low price it was irresistible offer. With powerful Cortex-M3 core and rich peripheral set I am now able to develop applications that was not possible with AVR architecture. There are no STM32 devices in DIL packages, but my technology of homemade PCBs improved enough to solder LQFP packages with 0.5 mm pins spacing. So for developing purposes I have created simple LQFP48 to DIL40 break board. STM32 microcontrollers are quite a new toys for me and I hope I will stay with them for some time in future.