I am about to jump into the world of MCU programing, precisely at the 8-bit MicroChip family.
However, i have fallen into a complex world, with lots of topis to be read, questions to be answered, so much more that i have been searching for the last few weeks, and i still feel clueless.
I'm eager to post new topics to "ask this", "ask that" continuously, but that would completely spam the forum. And something tells me more clueless like me are around here.
So i get this idea: a topic with a FAQ and some How To's, to help new guys like me. I could do that to this topic as long as i get contributions, help, sugestions from you gurus at this matter!
So, first things first i guess:
1-What MCU should i buy?
2-What MCU programer to buy?
3-What Software should i use to write the code?
My guess is one close to you, based on the more modern Pic18xxx
I have heard that, on the microchip brand, the code is incompatible between each "family" of MCU's, so i will have to choose between a pic16xxx, pic18xxx, pic24xxx, pic32xxx, dsPic, etc etc.
pic16 are obsolete, so my best bet is pic18xxx right?
ICD2 has been known as the better programer due to better debugging (what's that?) and faster updates to support new MCU's.
However, Pickit2 is much cheaper and it is getting better, and with the suppoert of the comunity it's getting close to ICD2, and will surpass it acording to some expert's.
What is Pickit4? a New version?
MPlab IDE, with the compiler C18, to program the pic18xxx. I do have some knowledge of C, so i'm gonna start there.
That's it. Care to add anything?
Do you know where to get some code already made to see examples?
Is there any fan site for MicroChip, like there's for AVR (www.avrfreaks.com)?
Any help apreciated
Sorry to jump on this thread so late in process- but maybe there is still interest.
I think the reason there is so little in the way of 'answers' to these common questions is- there are no 'right' answers. And I think you will find that people who have set themselves on a particular path will tend to be subjective- since by definition that is the path they chose.
For me, I can say that I have used ARM7/9 cores, the 68CH11 family, some Atmel, and most PIC core types. My current preference is with Microchip- partly because they have a variety of chip types within each family that allow you to address specific problems. Some PICs have basically 'everything' onboard, like the newer 24HJ stuff. The performance is very good, the cost is low, and the support from Microchip is superb. Downsides are- their assembly instruction set is not fantastic, and they tend to have a lot of errata on newer parts.
From a compiler perspective, the 18F PIC seems to have the most support in terms of number of vendors. That is an advantage for obvious reason. My preference is with the 24H/F family- there are no downsides with them other than errata (and those are being cleared in the next couple of months). You have lower cost, lower power usage, much higher performance, more memory, good security, and a lot of flexibility with peripherals (some even have crossbar capability so you can remap peripherals to most any pins you want- a great help for PCB layouts, and for post-proto modifications). And, since they are 16-bit, there are other inherent advantages. Plus, the migration to the dsPIC family is simple since you remain in the 16-bit scope, with similar registers- and some dsPICs are very powerful indeed if you need that type of dsp functionality.
If you go 32-bit, that is a whole other ballgame IMO. To leverage them, you tend to need a deeper application (i.e. RTOS), and often the advantages come with some significant complexity in compiler use, physical interfaces. PCB layouts, etc.
There are a lot of programmer types and tools out there. Best bet is to download them and have a look around- and to hit the message boards- see the sorts of interactions in play. You might find that some are very 'intro' and some are too advanced for you. I use the MikroElectronica tools- and could not be happier. I dont know if Proton supports the 24x series yet, but they have a good IDE for the 18F.
With MikroElectronica, there are a number of sample projects installed with the compiler, so that you can see how things are done. They do not tend to show more complex examples (like DMA usage, or much in the way of interrupt processing), but that is because this is specific to processor and application. They also have a few online books on their site that are VERY useful- regardless of what vendor/tools you select.
At the end of the day- I think the one strong suggestion I would make is- start with hardware that is likely to apply to your projects over the next 2 years. If you buy for a current need, you invest 6 months learning everything about the solution, and then find that you need to migrate up for some new capability, etc- and adapting to new hardware (i.e. 8 -> 16bit) is often a challenge (habits are hard to drop). In the PIC world, the 24x series is no more difficult to use, and in some cases simpler, than the 18F (interrupt vectors come to mind), and the 24x family is often substantially cheaper than the 18F family.
So- there are a few thoughts