|
|
View previous topic :: View next topic |
Author |
Message |
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
Slightly OT: PIC vs ARM |
Posted: Tue Feb 03, 2015 2:18 pm |
|
|
Hey PIC Veterans,
I've been playing with an ARM M0 from STmicro and it's kinda funny how everyone is running to 32bit for the simplest of tasks.
but when I look at the machine code, all those extra instructions to do byte-sized or word-sized work that don't exist even for 16bit PICs (I didn't compare to PIC32 -- since I know it's kinda messy like ARM)..
But the inefficiency of the instruction sets for ARM vs. PIC 8/16bit.
Kinda interesting to observe.
Anyone else jump into these other venues recently for a PIC Comparison?
-Ben
p.s. I'm so unhappy with XC8. OMG that's another thread entirely. _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19494
|
|
Posted: Tue Feb 03, 2015 3:40 pm |
|
|
In terms of sheer chip quantity the small processors still win. When you are putting together things like a smart card that is supplied in 6digit numbers you don't want the power use/cost of anything bigger.
However it is sad that Microchip haven't produced a really 'enhanced' mid end PIC family. Kept the same basic architecture, but with all the peripherals re-mappable (some are getting close on this), and then had single cycle save of all the main registers (this was on the Z-80, something like 30 years ago - a swap instruction that switched between two register sets). Suddenly for the cost of a very few bytes of RAM, you have tiny interrupt latency. Add a hardware divide, and you'd have a single chip that could be used to replace just about all the existing PIC18's, and some of the PIC24's etc., without having to have the 'plethora' of models, which perhaps tends to put people off the PIC.
The 'PIC-18X', would be a dream for so many things..... |
|
|
jeremiah
Joined: 20 Jul 2010 Posts: 1344
|
|
Posted: Tue Feb 03, 2015 7:03 pm |
|
|
Unless I am misunderstanding yall, the PIC24 family has some of that:
1. Byte, word, and double modes for some instructions (not all, but MOV off the top of my head has this option).
2. Remappable pins (at least on the main family lines I have used)
3. PUSH.S, POP.S for single instruction context save
4. Hardware divide (and multiply)
Am I misunderstanding? |
|
|
ELCouz
Joined: 18 Jul 2007 Posts: 427 Location: Montreal,Quebec
|
|
Posted: Wed Feb 04, 2015 6:12 pm |
|
|
jeremiah wrote: |
4. Hardware divide (and multiply)
Am I misunderstanding? |
I can confirm that the PIC24 have Arithmetic Logic Unit (ALU)...
Multiply/Dividing/Multi Bit shifting all done in hardware
I think the perfect PIC18 is a PIC24 in DIP/PDIP that support 5V completely would be the best thing happening to the hobbyist community! _________________ Regards,
Laurent
-----------
Here's my first visual theme for the CCS C Compiler. Enjoy! |
|
|
RF_Developer
Joined: 07 Feb 2011 Posts: 839
|
|
Posted: Thu Feb 05, 2015 3:13 am |
|
|
ELCouz wrote: |
I think the perfect PIC18 is a PIC24 in DIP/PDIP that support 5V completely would be the best thing happening to the hobbyist community! |
As a professional, I've not used any through-hole ICs in the last ten years, and have no wish to ever again. For my work, the QFP packages are generally most suitable, because they offer reasonably good density (bang per mm2 of board space), acceptable track layout and can be built using manual production techniques if required. We have been using more and more (leadless) QFNs but these offer some "challenges" to manual assembly, especially getting the under chip pad soldered correctly - fine in reflow, not so fine manually.
I've not yet bitten the bullet and gone for BGAs. Luckily, there are relatively few PICs, and no 16/18s that I can think of, that offer that package option.
ARMs however are often a different kettle of fish. On the whole ARMs are placed at higher price/performance/capability than PICs. They have more RAM, more bits, and more pins. All the ARMs I've used were BGA and were all built using pick & place and reflow. There are now more lower end ARMs that have moved price/performance-wise into PIC territory. But so far in my current employment I've not had any application that would necessitate a move up to ARMs (though the threat if having to deal with colour touch screens and plug-in software technology would have done it had it materialised) There would be quite a lot of costs associated with such a move. We'd have to buy and maintain the toolset for a start, and there could well be the BGA issue, not to mention the step-up in complexity that necessitated it in the first place.
Personally I like ARMs. They have the power and ease of use to do anything I want them to. They have had the wherewithal to cope with anything I've thrown at them - tons of memory in linear addressing space in particular - none of the Harvard limitations and issues - with fast, capable CPUs. I like PICs too, but they are much more like old-fashioned computers, with limitations and issues to be got round, than "modern" processors. On balance, if I had a free choice, and didn't have to foot the bill, I'd choose to work exclusively with ARMs, and not faff around with PICs. But then I don't have a free choice: in my day job I inherited the use of PICs and I'm fairly stuck with them, and actually they aren't all that bad :-)
While I used to be an avid electronics hobbyist, but right from the early days of micros I found them very limited and much preferred working with "real" computers :-). I've never played with PICs, only worked with them professionally. These days I really don't like having busmen's holidays. In my free time I prefer to sing, take photos, do historical reenactment and, well, anything other than electronics and computers. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19494
|
|
Posted: Thu Feb 05, 2015 5:08 am |
|
|
Some of the PIC24's are moving that way, but there are major shortfalls.
First, push, and pop don't help much with the register saving. They only save _one_ register at a time. Want to save twenty registers, and it is twenty push's, and twenty pop's to get them back. The PIC24, takes as long as a PIC16 or 18, to get into or out of the interrupt handler. The point about quite few older processors, was they had single cycle operations, that saved all the critical registers, either by moving a memory pointer, to relocate the working registers, or by having ghost copies of the registers, and switching. Really fast responses to interrupts are critical for an embedded processors and it is an area where the PIC does increasingly badly. Increasingly, because each chip generation has more and more registers....
For ElCouz, I have to say 3.3v, is honestly easier than 5v now.
The PIC18's only have 8*8 hardware multiply. The multiplication/division on the PIC24's, not that much better. Really slow by modern standards.
Yes, the family has some parts of this, but I find myself wanting to have a single slightly 'upmarket' PIC, without having to choose from a hundred models, so I can have a smaller part bin. Imagine something in the PIC24 family, with the pin layout/peripherals of the 18FxxK22, an improved ALU, and a single instruction response to interrupts at a couple of priority levels, and all the peripherals re-mappable.
I'm a great believer in using more powerful chips for more complex tasks (ranging from Arduino's through embedded PC's), but love the PIC for simpler tasks, but want something that just fills the gap a little more above the current models. |
|
|
jeremiah
Joined: 20 Jul 2010 Posts: 1344
|
|
Posted: Thu Feb 05, 2015 11:32 am |
|
|
I've really enjoyed using the PIC24 family, specifically variants of the PIC24FJ64GA004.
1. Single Instruction multiply
2. Majority of the pins and peripherals are remappable, which makes it very flexible.
3. Single Instruction context save for interrupts using the Shadow Register hardware. Makes interrupts faster, which I like.
4. Decent RAM (8+k) and ROM
5. Multiple interrupt levels
6. Low power variants (10s of nA in sleep mode)
7. Small package options
I've been working with them for over 7 years now and aside from the occasional errata issue, I have really enjoyed them. I'm still looking for an ARM that is 16bit bit or higher with good low power options and size all at the same time. I would like to branch out some. |
|
|
guy
Joined: 21 Oct 2005 Posts: 297
|
|
Posted: Thu Feb 05, 2015 1:58 pm |
|
|
I never worked with anything other than PICs so I am amazed over and over again at what they squeeze into those tiny parts at a ridiculous price (for example take a look at the peripherals on the PIC16F1704 at $0.67 ! There's a whole PCB full of parts inside). I also enjoy the DIP packages for those early prototyping stages. As a freelance you pay for your design mistakes
Recently I did a project with the PIC24. Again I was dazzled - user-friendly DMA, high MIPS, plenty of resources but at the end of the day, also due to CCS compiler's bugs I didn't quite enjoy working with it.
Another downside was that there is no mentioning of protection diodes for the pins (to VSS and VDD). This adds A LOT of parts to the BOM + placement costs. I think they forgot about the concept of a microCONTROLLER rather than a uProcessor.
Altogether I'm very happy with the combination of PICs + CCS and option of [rarely] inserting a few lines of assembly in the code. Can't seem to let go of MPLAB |
|
|
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
|
Posted: Fri Feb 06, 2015 10:02 am |
|
|
guy wrote: | also due to CCS compiler's bugs I didn't quite enjoy working with it. |
Wait until you use XC8/16 where the "optimization" you pay for in the PRO version is really the compiler you should get while the free compiler has lots of trash instructions thrown in to make it crappy and suck up space.
So now -- the paradigm is that the developers have to worry about when to insert and remove trash instructions -- and when they MISS one, they end up screwing up your code with compiler bugs that they can't seem to fix (I know, I sent DETAILED ASM pointing to the offending instruction only to have support give me dumb looks through email).
And if they HAVE fixed it - their response is to upgrade to the latest version, which, if you're not on support - your stuck.
A little different from CCS whereas if you find a bug that's a real stopper, they give you a free update that fixes that bug. Microchip -- no such luck.
And I found about 5-6 such bugs strewn throughout various versions of XC8 between PRO and Free versions.
So even though the compiler is "ok" -- (even CCS runs into bugs too) -- Microchip's handling is "all about the money" now because they don't own XC8 -- it's pretty much licensed Hi-Tech C. (IIRC) _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
guy
Joined: 21 Oct 2005 Posts: 297
|
|
Posted: Fri Feb 06, 2015 10:55 am |
|
|
Microchip doesn't know know software... Never did.
A friend had saved my life by recommending CCS. Other compilers have registers and addresses #DEFINEd in the code which makes the code non-migrateable - out of the question. |
|
|
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
|
Posted: Fri Feb 06, 2015 11:06 am |
|
|
Their compiler would be ok if it just WORKED...
I get it that bugs happen.
but their model of designing in a "crappy compiler mode" which now distracts from just focusing on writing the best compiler they can coupled with their new pay-to-get-stuffed licensing model...
And their incompetent tech support.
Ugh.
Microchip should just hire the Gurus here (if they didn't already have full time jobs, I'm sure.)
Sorry - I didn't mean to turn this into a Microchip rant. _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
ELCouz
Joined: 18 Jul 2007 Posts: 427 Location: Montreal,Quebec
|
|
Posted: Fri Feb 06, 2015 11:21 am |
|
|
I just wished that the microchip supported open source compiler such as GCC from the beginning like Atmel.... we would have PICduino instead of arduinos now...
I completed the 2015 CCS survey....
I asked for PIC32 (Good thing to do if they want to survive in long term)
And more drivers (less time we spent doing drivers is better for us)
PS: I know the PIC32 is a very different beast but they should support it ... the minimum at least so they could continue to compete with Microchip XC32 compiler... _________________ Regards,
Laurent
-----------
Here's my first visual theme for the CCS C Compiler. Enjoy! |
|
|
ELCouz
Joined: 18 Jul 2007 Posts: 427 Location: Montreal,Quebec
|
|
Posted: Sun Feb 08, 2015 5:36 pm |
|
|
I wonder if the effort is so great and worth it to switch to the PIC32 family than learn any other better ARM platform?
If I understand at this point PIC32 is no more a microcontroller (more like a processor)
Do anyone here tried the PIC32 platform since it's launch in 2007? _________________ Regards,
Laurent
-----------
Here's my first visual theme for the CCS C Compiler. Enjoy! |
|
|
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
|
Posted: Sun Feb 08, 2015 9:50 pm |
|
|
I've done a couple designs for customers based on the PIC32 with built-in ethernet.
-Ben _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
ELCouz
Joined: 18 Jul 2007 Posts: 427 Location: Montreal,Quebec
|
|
Posted: Mon Feb 09, 2015 4:36 am |
|
|
bkamen wrote: | I've done a couple designs for customers based on the PIC32 with built-in ethernet.
-Ben |
How hard is the transition from 8-bit to 32-bit platform?
I know we can only compare to MPLAB (because CCS don't offer any PIC32 support yet)... _________________ Regards,
Laurent
-----------
Here's my first visual theme for the CCS C Compiler. Enjoy! |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|