I studied electronics at a private school in Holland. We learned a lot about the basic/traditional electronics like resistors, caps, (FE) transistors, etc. etc. Also programming in C and C++ was involved but working with controllers wasn't teached.
After I swiched electronics for an IT job about 8 years ago (java developer, and since one year C#) all the electronics knowledge got somewhere in my toes.
Two years back I was playing with a GPS antenne and found out how extremly simple it was to use that bit of hardware with a PC. It made all the electronics knowledge bubble up again and made me so freaking eager to do hands-on electronics stuff again. So I got myself a mission.
Buy an AP1 cockpit en start finding out de exacte signal specs for VSS en ECT and build my own converter accordingly to fit everything in my EE8 afterwards.
So that's where my journey started. I grabbed all my meters, parts and breadboard from the shed and started playing around with the stuff. Because I never use PICs, AVRs or ARMs I was looking for a solution with traditional electronics. This was harder then I thought. After talking to Mark Lamond (who didn't want to give me any details about the AP1 signals) he encouraged me to start learn stuff about controllers.
I desided to start with a PIC and PICbasic as there were tons of simpel tutorials to start with and there were (more or less) free tools to start developing code and simulate the program.
One year after I started learning to use PICs and finding out the signal details for ECT and VSS, without a scope or an S2000!! (yes, I'm insane!!!) I created my first working AP1 converter.
Now I'm at a point that I feel comfortable with PICs and I want to start to use C with AVR controllers.
PICs aren't that structured as you would like. Porting a program from one PIC to another (because you want to use a bigger PIC with extra options) always (at least in 99% of the cases) you need to rewrite your program to have the inputs and outputs match the previous PIC pin design.
AVRs are far more structured with regard to inputs and outputs.
Now people are talking about ARM I'm getting curious. If getting familiar with ARM is as simple/difficult to learn as AVR, It's better to go with ARM I think.
Hopefully there are good and not to expensive (development)tools to start playing with ARM.
For me it's just hobby.
If you want to play with PIC (or AVR or ARM) you need a level of basic electronics skills.
Think about you need to know how to create a stable 5V power supply. (with an 7805 for example)
You also need to know how to use LEDs on 5V by calculating the correct resistor value.
Think about pull-up and pull-down resistors and debouncing mechanical switches (the old VSS in 4th gen civics for example are very noisy and need propper debouncing)
Next you need some programming skills in any language.
And get comfortable with reading datasheets.
Assembler is complex and hard to read and learn. If you're playing with PIC/AVR/ARM for just hobby purpose, stay away from Assembler and use a next generation language like Basic or C. Assembler is way to intimidating.
some links:
PICBasic dev:
Proton by CrownHill
PIC simulation:
PIC Simulator IDE by OshonSoft (also available for AVR, Z80 and 8085 processors)
Circuit and PCB design:
Eaglenote for PIC Sim from Oshonsoft... the free version works for two hours each time you start the program. And can just be started an X number of times.
Use this reg key (from a .reg file) every time you start PIC Sim and the X counter will say "this is the 2nd time you start PIC sim"
Code:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Data\Microsoft]
"Address"="10485760"
Yes... Oshon hides the counter in the IE section of the registry.
REGMON found this key for me.
With this trick you can use the Oshon simulator unlimited number of times. You only need to start the program after every two hours. That's all.
To program a PIC or AVR you need a programmer. That can be a universal programmer like the one from Willem.org.
But you can also choose to build your own (jet very simple!!) ICSP programmer by using your pc's COM/LPT port.
Advantage of ICSP... no need to pull the processor from the board every time you want to change your software (firmware)
ICSP = In Circuit Serial Programming
example of simple ICSP boards:
Galve-Wisp (COM port)
best-microcontroller-projects (LPT port)
This post isn't a complete overview but just some tips and links where to start.
oh... LOL...
The "hello world" example for new software developers is equal to the "blinking LED" example for new electronics developers.
So... first thing... try to make a LED blink.
good luck!
Warning.... it's very veeeeeeery addictive, so think before you start