Electronics > Microcontrollers

Why do people not like Microchip?

(1/40) > >>

Pineapple Dan:
Inspired by comments in the other thread I created

I have never really used any other MCU unless it came pre-packaged on another board (Arduino, pyBoard) but anything I designed the PCB for I have used PIC8 and PIC16. Not trying to start a flame war just interested to see what people don't like about them and what do they use instead.

For me the biggest problem is how finnicky the ICD3 and Mplab have always been - ordered a Pickit 4 so hopefully this will be better. Just when I think i'm getting somewhere with a project I get random 'Transmission error on endpoint -2' messages, next thing the MCU has blown up, soldering on a new one has failed, rebooting yields new error messages and before I know it the PCB is completely shagged and I'm miles out at sea with no life jacket and a large shark fin circling around me.

I miss good quality c compiler. Architecture of their 8 and 16bit micros  does not allows efficient stack implementation.
Compiler needs to be smart when needs to use 8 bit pointers and when 16 or 32 bit pointer.
I am forced to use CCS compiler that is like a toy. They sell it without mentioning that does not support any C standard.
If you have larger array of data trying to achieve atomic operation is mission impossible. They even not support PIC's built in instructions for efficient index operation.
Never tried Microchip's XCC compiler. Would like to  hear opinions.
ICD4 is garbage and never tried Pickit4 although pickit3 is very stable.

Debugging USB implementations is difficult   without USB analyzer. Sometimes USB stack on pc side is in inconsistent state if device stops responding due to some breakpoint.
Frequent PC restarts are required.
My experience is that micros are well designed and stable. Only issue I had with them was that RC oscillator frequency was dependent on power supply voltage and temperature.
Easily goes out of spec when both are changing.

Why do people not like Microchip?

Perhaps because people who are happy with Microchip just don't make a noise. For me, Microchip are the goto processor supplier. I'm reasonably familiar with the architecture and tools, so I select the lowest cost processor that gets the job done.
I mostly use the XC compilers, so the architecture is irrelevant, either it gets the job done or it doesn't.

Expensive microcontrollers.
Expensive evaluation boards.
Expensive C compiler.
Not compatible with other manufacturers.

Just the opposite of ARM microcontrollers.

I personally used to like Microchip. They had nice chips and were well positioned IMO. Pretty good documentation too. Until, I would say, about 10 years ago.

At that point, I started to lose interest in their products. The offering for ARM-based MCUs (from very low power to pretty powerful stuff) literally exploded, and you could use 100% free and open-source tools with them. MPLAB X was also not really good news either for me. Not being able to use standard JTAG on most of their MCUs ended up sucking really bad too.

Sure they now also have ARM-based MCUs with ATMEL, but that kind of was too late for me. They kind of missed the train with the PIC32 line. Don't get me wrong, it wasn't bad at all, but their venture with MIPS was eventually questionable, and the end result was less powerful and more power hungry than many other 32-bit MCUs from competitors.

That said, even though I think it's not as good as it used to be, Microchip's documentation is still pretty good compared to many other vendors. Oh, and I rather liked the DMA in PIC32. Pretty cool.
Another point is that if you stick to the 8-bit or 16-bit Microchip MCUs, they are much simpler than most 32-bit MCUs on the market, much easier to master, so that can be a real plus. I personally don't have a need for those anymore, but they are certainly still plenty usable in many applications.

But really - as many others think too - the main issue is with their dev tools IMO at the moment.


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version