| ??? 10/19/02 05:14 Read: times |
#31085 - RE: 8051vsPIC & Literature |
I guess I have to throw my two cents in on this debate too. I have used PICs, 8052s, and Motorola 'HC05 - HC11 & HC08 architecture parts. Most work has been done in assembler language. I tend to agree that for any given project there is one processor out there that will beat all the others in some specific way.....but in general I think I could do most any project with any of the processors. But that said I can make some points...
- The early PICs (todays lowest cost stuff) is a total pain to program....with the obtuse banked code memory, register memory, lack of any interrupts, hardware stack and VERY old fashioned instruction set. I used them more years ago becasue they were some of the fastest things around (you could get 5 MIPs out of them @ 20MHz xtal). - I did many projects with the 8051/8052 style parts. I found the parts definately easier to program than the PICs. The comments prior in this thread regarding the interrupts and the somewhat more CISC like architecture a lot easier to program in assembler. Speed of the parts was always an issue with the silly /12 clock. I also always found the HARVARD style architecture of the 8051 (and also the PIC for that matter) to be a moderate pain. It always seemed silly to me that there were so limited ways to access code or extended data memories. - I have always found the various flavors of the Motorola stuff the very easiest to program when using assembler language. Most recently I have done tons of work with the 'HC908GP32. This part offeres 32K FLASH on a part that you can get up to 8MHz bus clock going. Even though the Mot parts have few "registers" I never found this to be an issue becasue all page 0 data memory acts like registers anyway. The '08 architectire suits code generation in C quite a bit better than the 8052 because the instruction set includes a whole set of stack relative addressing modes. And the code space, stack space, and the data space are one and the same addessing space. In todays world I have come to move away from programming in assembly language unless I have no other choice. By using C for embedded applications it is no longer so much an issue as to which instruction set is easier to work with. It becomes far more important to look at the whole product development cycle and determine what is the best way to design code, program it, debug it, and then maintain it through the product life cycle. When I look back on all the scores of projects I have worked on in 25 years of embedded work I find that almost every time the real decision of what processor and/or architecture to use came from these three things... 1) Are cost effective tools available, 2) Can I avoid a develpment process that has a "make a ROM and test blindly mode" of program debug, 3) and How easy is it going to be to update the code in the maintence cycle part of a product life. At the current stage I am now centered on Cygnal 8051 clones. I get FLASH (lots if I need it). I get lots of speed. I get a reasonable platform for C coding. And I get to use an in circuit debug facility and JTAG debug mode support that is second to none that I have used to date. So there you have it....I will use Cygnal for any new design -- for reasons that have less to do with the fact that it is an 8051 platform than the things that will make a Cygnal based product superior through its development and maintenance cycles. Still willing to dialog more ... so lets talk. Mike Karas |



