Author Topic: Why do people not like Microchip?  (Read 67947 times)

0 Members and 2 Guests are viewing this topic.

Offline SteveyG

  • Supporter
  • ****
  • Posts: 987
  • Country: gb
  • Soldering Equipment Guru
Re: Why do people not like Microchip?
« Reply #75 on: July 26, 2021, 09:00:26 am »
Yes, PIC24 is pretty nice, but higher cost, and no 5V operation.

PIC24FV are 5V.

There's also the dsPIC30 with the wider voltage range, though it's an older design.

YouTube Channel: https://www.youtube.com/user/sdgelectronics/
Use code: “SDG5” to get 5% off JBC Equipment at Kaisertech
 

Offline tszaboo

  • Super Contributor
  • ***
  • Posts: 7307
  • Country: nl
  • Current job: ATEX product design
Re: Why do people not like Microchip?
« Reply #76 on: July 26, 2021, 09:42:45 am »
First microcontroller I ever programmed was Microchip. PIC16F84, programmed in assembly. This was before I went to university, in high school.
It was the most accessible the tool cost was like 30 EUR, so I could pick it up with some pocket money and blink LEDs, do analog to digital converter stuff. It was before Arduino, before Cortex M3. The Mplab studio was self contained and it was relatively easy to start a project.

Fast forward a few years, I was programming them for a living.
ARM came, and indeed changed everything.

So no, I don't dislike Microchip. I don't really use them nowadays. Well, Atmel is technically Microchip now.
And yes they are expensive, somewhat oldschool, MplabX was quite bad in the beginning and I never bothered to check it out later.
And the Errata is sometimes longer than the Datasheet.
But I can still buy that 16F84 in DIP package today. I think it is OK to be different, we need diversity of strategies.
 
The following users thanked this post: Pineapple Dan

Offline chickenHeadKnob

  • Super Contributor
  • ***
  • Posts: 1054
  • Country: ca
Re: Why do people not like Microchip?
« Reply #77 on: July 26, 2021, 09:43:28 am »

There isn't a GCC for 8-bit targets AFAIK, except one: avr-gcc. It is GCC-based and officially supported by the GCC team. https://gcc.gnu.org/wiki/avr-gcc
So I guess some people used to AVR are probably wondering why the hell Microchip didn't go the same route. Now, I admit not knowing much about avr-gcc, but I'm pretty sure this was hard work and hard to maintain, so I don't blame whoever wouldn't want to go through this same mess. As to architecture, I admit I don't know the AVR architecture enough to judge how much easier it was than with the PIC, but certainly all the oddities of the 8-bit PICs were much more severe.


Atmel specifically designed the AVR for C.

Quote from an Atmel research whitepaper:
High    level    languages    (HLLs)    are    rapidly becoming       the       standard       programming methodology   for   embedded   microcontrollers(MCUs),  even  for  smaller  8-bit  devices.  The  C language is probably the most widely used HLLin  MCUs,  but  will  in  most  applications  give  an increased  code  size  compared  to  assembly programming. ATMEL identified the need of an architecture   developed   specially   for   the   C language in order to reduce this overhead to a minimum. The result is the ATMEL AVR MCU,that in addition to the optimized code size, is a true  single  cycle  RISC  (Reduced  Instruction Set   Computer)   machine   with   32   general purpose  registers  (accumulators)

http://www.compass-lab.com/pdf/AVR_RISC.pdf

there was another whitepaper comparing the AVR to the 8051 which Atmel also produced showing how the AVR was a better C target yet required the same or similar silicon area.
You think I could find the originals on the MicroChip website but that defeated my search-fu patience. Internets bit rot.
 

Offline JPortici

  • Super Contributor
  • ***
  • Posts: 3452
  • Country: it
Re: Why do people not like Microchip?
« Reply #78 on: July 26, 2021, 10:22:24 am »
Yes, PIC24 is pretty nice, but higher cost, and no 5V operation.

PIC24FV are 5V.

There's also the dsPIC30 with the wider voltage range, though it's an older design.

As is the PIC24FV. I would bet that both were deliberately omitted :D
the dsPIC33EV though..
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13695
  • Country: gb
    • Mike's Electric Stuff
Re: Why do people not like Microchip?
« Reply #79 on: July 26, 2021, 10:46:57 am »
OK, "mostly no 5V" - according to Digikey 6.1% of PIC24s can do 5v  :)
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Online EEVblog

  • Administrator
  • *****
  • Posts: 37661
  • Country: au
    • EEVblog
Re: Why do people not like Microchip?
« Reply #80 on: July 26, 2021, 11:56:14 am »
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.

Often depends on the era you were bought up in.
If it's post Arduino then the majority will have been exposed to and used AVR, especially in the maker community.
Before Arduino in the hobby realm it was mostly Microchip, as they were were one of the first really affordable hobbyist micro's, and the first IIRC to be electrically reprogrammble (EEPROM before Flash). PIC were shipping in the billions before AVR first came along.

If you were exposed to micros in a work environment then you might have had the high priced development tools so might have used Motorola or TI or someone else.
People take for granted sub $10 development boards and free software, but before PIC and reprogability came along, it cost an absolute fortune for a dev kit and parts were OTP so development was expensive.
 

Offline IDEngineer

  • Super Contributor
  • ***
  • Posts: 1924
  • Country: us
Re: Why do people not like Microchip?
« Reply #81 on: July 26, 2021, 02:00:42 pm »
Ah, the good old days of Intel ICE's ($20K+ back when that was real money!), UV erasers for EEPROM's, etc. Young players today have no idea how good they have it. They can get started with embedded work for well under $100 and the laptop they already have!
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13695
  • Country: gb
    • Mike's Electric Stuff
Re: Why do people not like Microchip?
« Reply #82 on: July 26, 2021, 03:24:38 pm »
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.

Often depends on the era you were bought up in.
If it's post Arduino then the majority will have been exposed to and used AVR, especially in the maker community.
Before Arduino in the hobby realm it was mostly Microchip, as they were were one of the first really affordable hobbyist micro's, and the first IIRC to be electrically reprogrammble (EEPROM before Flash). PIC were shipping in the billions before AVR first came along.

If you were exposed to micros in a work environment then you might have had the high priced development tools so might have used Motorola or TI or someone else.
People take for granted sub $10 development boards and free software, but before PIC and reprogability came along, it cost an absolute fortune for a dev kit and parts were OTP so development was expensive.

The thing that PIC really revolutionised was the use of OTP for small-volume production, with the 16C5x and 7x series, before the C84 reprogrammable devices. This enabled single-chip designs at much smaller volumes than masked parts, and coupled with their willingness to support small volume users meant that for a while they were pretty much the only option in that area.
Prior to that, the only non-mask options were external EPROMs on an 8031 or very expensive onboard EPROMs on 8751 type parts, the latter being primarily aimed at prototyping before masking on the likes of the 8051. The only alternative I recall at the time was the Philips 87C751 EPROM and OTP parts.
Another interesting product at the time was the Basic Stamp, which used an OTP PIC to interpred code stored i an external EEPROM - this was the Arduino of its time ( and is still available, neary 20 years later!).

ISTR it took a good few years for Atmel to gain ground, and more years before C programming was common on either. 

Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 
The following users thanked this post: rsjsouza, nctnico, SiliconWizard

Offline woofy

  • Frequent Contributor
  • **
  • Posts: 321
  • Country: gb
    • Woofys Place
Re: Why do people not like Microchip?
« Reply #83 on: July 26, 2021, 04:09:03 pm »
There were ROMless and EPROM variants of those early PICs. The PIC1665 was ROMless and had address and data lines brought out.
Also there were EPROM versions of the PIC16C54 and PIC16C55, I have some from an ancient devkit.

Offline Siwastaja

  • Super Contributor
  • ***
  • Posts: 8110
  • Country: fi
Re: Why do people not like Microchip?
« Reply #84 on: July 26, 2021, 05:08:51 pm »
Often depends on the era you were bought up in.
If it's post Arduino then the majority will have been exposed to and used AVR, especially in the maker community.
Before Arduino in the hobby realm it was mostly Microchip

But there was this interesting era around maybe 1998-2005, pre-Arduino, when AVR gained quite remarkable market share among hobbyists, and did that quickly.

Having born in 1985, I happened to get into microcontrollers just at the early stage of this era, maybe 1998-99 or so. AVR was "brand new" and clearly a competitor and alternative to the "old" classic PIC every hobbyist had been using for a decade or longer. But still it was already just mature enough for people to be able to recommend it, give advice and so on. It was some poster in a Finnish Usenet newsgroup (where I posted extremely stupid and embarrassing beginner questions, good times) who suggested the AVR for me, so I really never did touch a PIC. Maybe if I was just one year earlier to get into MCUs, it would have definitely been PICs.

Around 2005-2006 when Arduino was just around the corner, everyone was using AVR controllers at the electronics club in Uni I attended.

Clearly it was such AVR hobbyists that gave birth to the Arduino as well, less than a decade after the "AVR semi-revolution" started.

And, the AVR CPU architecture is excellent, compared to PIC. C programmability is excellent, having GCC ported from the beginning was one of the key strong points.

It's just that in the real world, peripherals and documentation matter much more than the core. PICs are completely fine in this regard, possibly better than AVRs when it comes to some specialized needs of peripherals. Professionals especially are used to accepting closed tools, and "crappy" CPU core is a non-issue for 99.9% of microcontroller use cases (peripherals do the heavy lifting anyway), besides, if raw CPU performance is needed, neither AVR nor PIC is the solution.
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14297
  • Country: fr
Re: Why do people not like Microchip?
« Reply #85 on: July 26, 2021, 05:32:09 pm »
I agree with Dave here, and @Siwastaja: it looks a bit like you're "embellishing" the whole AVR story a bit here.

But one thing for sure - at least from my experience, and that corresponds to what Dave also said, is that 1/ it probably depends a bit on the part of the world you were at the time, and 2/ mostly, the exact time period!

As Dave and I said, Microchip MCUs became extremely popular in the late 90's-early 2000's, particularly among hobbyists. I absolutely do remember that students started to come up with AVR-based designs (I remember interns and fresh engineers) around 2004-2005. It's think that's the approximate time period when AVR became popular in universities indeed. So for anyone older than this - but not as old as, as I mentioned earlier, sort of "despising" Microchip for the exact reason that it looked too hobbyish for serious work - you would have been exposed to, used and liked Microchip PICs.

It's almost all a matter of date. Depending on what age you were between 2000 and 2005, it would with a high certainty imply whether you would be more in the "PIC" team or in the "AVR" team. I think Dave must be approx. the same age as I.

As to Arduino and hobbyists, I don't know for sure the whole story, but I think you're over-emphasizing the "revolution" here. From the little I know, it's just a matter of a couple guys having this idea of a simple-to-use development environment, and they probably had the age and experience which matched what I said above: they were "AVR guys". I'm not sure they did this because AVR was so popular at the time. They did it because AVR was a decent architecture, the parts were cheap and easy to get, the dev tools were good (without GCC, and notably without a C++ compiler, Arduino wouild have not existed as it is.) Oh, and from what I remember, by the time Arduino became *really* popular, the AVR parts were already pretty old stuff.

Just a few thoughts.
 

Offline rcbuck

  • Frequent Contributor
  • **
  • Posts: 346
  • Country: us
Re: Why do people not like Microchip?
« Reply #86 on: July 26, 2021, 06:01:08 pm »
The first reprogrammable part I remember using was the Motorola MC68HC705P3. I first used it in 1991. I don't know if the PICs had EEPROM parts at that time or not.

The 705 was a strange animal and somewhat expensive. You had to first write the code and burn it to a 27256 EEPROM. You then built a programmer with a socket for the 27256 and the MC68HC705P3 and a couple of 74HC753 buffers. You plugged the 705 and 27256 into the sockets, powered the programmer up, and pressed the program button. There was a red and green LED on the programmer. After the programmer finished programming the 705 if the green LED came on you were good to go. If the red LED came on you had to figure out what went wrong. Red usually meant there was a problem with the timing. Even though the programmer was crystal controlled there was a warning in the data book that programming had to be done at room temperature.

I'm glad those good old days are gone.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26755
  • Country: nl
    • NCT Developments
Re: Why do people not like Microchip?
« Reply #87 on: July 26, 2021, 06:06:32 pm »
I'm wondering why people aren't bringing up Motorola's 68HC11. Also has internal EEPROM and was easy to program. AFAIK this one was also popular in the mid 90's. In the end there is a whole flurry of microcontrollers out there which where popular in some crowds. It is not just PIC or AVR.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: rsjsouza, newbrain

Offline rsjsouza

  • Super Contributor
  • ***
  • Posts: 5980
  • Country: us
  • Eternally curious
    • Vbe - vídeo blog eletrônico
Re: Why do people not like Microchip?
« Reply #88 on: July 26, 2021, 06:17:31 pm »
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.

Often depends on the era you were bought up in.
If it's post Arduino then the majority will have been exposed to and used AVR, especially in the maker community.
Before Arduino in the hobby realm it was mostly Microchip, as they were were one of the first really affordable hobbyist micro's, and the first IIRC to be electrically reprogrammble (EEPROM before Flash). PIC were shipping in the billions before AVR first came along.

If you were exposed to micros in a work environment then you might have had the high priced development tools so might have used Motorola or TI or someone else.
People take for granted sub $10 development boards and free software, but before PIC and reprogability came along, it cost an absolute fortune for a dev kit and parts were OTP so development was expensive.

The thing that PIC really revolutionised was the use of OTP for small-volume production, with the 16C5x and 7x series, before the C84 reprogrammable devices. This enabled single-chip designs at much smaller volumes than masked parts, and coupled with their willingness to support small volume users meant that for a while they were pretty much the only option in that area.
Prior to that, the only non-mask options were external EPROMs on an 8031 or very expensive onboard EPROMs on 8751 type parts, the latter being primarily aimed at prototyping before masking on the likes of the 8051. The only alternative I recall at the time was the Philips 87C751 EPROM and OTP parts.
I am not entirely surely what is the timeframe you are referring and that may depend on the place but, from my recollection, Brasil in late 80s and early 90s had 8051 reigning supreme, followed by HC05 and HC11 for more serious applications (HC08 was never much popular here) and a COP8 here and there (already with OTP variants). My internship in '93 had 80C51FA/FB/FC all around (all EPROM) and Atmel's 8051 variants were a distant second. Microchip was just showing up on the horizon and started becoming popular in mid 90's, together with the new AVR.

Another interesting product at the time was the Basic Stamp, which used an OTP PIC to interpred code stored i an external EEPROM - this was the Arduino of its time ( and is still available, neary 20 years later!).
Basic Stamp was becoming quite popular at the time as well, but import tariffs blocked many from purchasing cheap kits.
Vbe - vídeo blog eletrônico http://videos.vbeletronico.com

Oh, the "whys" of the datasheets... The information is there not to be an axiomatic truth, but instead each speck of data must be slowly inhaled while carefully performing a deep search inside oneself to find the true metaphysical sense...
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: Why do people not like Microchip?
« Reply #89 on: July 26, 2021, 06:56:57 pm »
I messed with re-programmable (on-chip eeprom) i8748 in mid eighties.. :)
Bought my Basic Stamp 1 (the smallest one) in 1997/8 (around 100Euro in today's money) :) :)
Worked with pic12/16/18/24/dspic33/32mx/32mz and I do like MCHP. Around the end of millennia the best C I had handy for pic12/16 was the CC5x (still sold by Knudsen Data).
Arduino movement gathered its momentum because they took atmega8 - with its architecture specifically designed for C compilers, a "single clock" at 20MHz and with 5V I/O - better suited for homebrewers, imho.
At that time the pic16Fxxx and pic18Fxxx were slower, with small sram and not C optimized. The pic24F and dspic33 (ie. in DIL28 - 16bitters, 8/16kB sram, 12bit adc/dac, 128kB flash, 40-50mips) were way better than the atmegas deployed in arduinos, but they came a bit later and with 3.3V I/O and perhaps more expensive. Also not sure free C compilers were available for pic24/dspic33 at that time..
« Last Edit: July 26, 2021, 07:23:20 pm by imo »
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14297
  • Country: fr
Re: Why do people not like Microchip?
« Reply #90 on: July 26, 2021, 07:29:04 pm »
At that time the pic16Fxxx and pic18Fxxx were slower and not C optimized.

There were third-party C compilers for the 16F series, but I've never used them (just tried, but it wasn't worth it.) But those 16F parts had pretty small memory anyway (except for the bigger 16F877 AFAIR, but it was still pretty small), so using C didn't make a lot of sense anyway. I programmed them in assembly and it wasn't all that bad. The banks were annoying but just something you'd get used to (just required some planning), and the assembly was easy to master.

Then the 18F series appeared, with a hardware multiplier, more memory and better performance. Microchip had their own compiler at this point, called MCC18. I only ever used C on the 18F series, and it worked absolutely great. I frankly couldn't care less whether the architecture was really adapted to C or not, it just worked.

I can't tell if the AVR MCUs of the time were indeed more powerful than the PIC18F series or not. But the 18F were certainly pretty capable 8-bitters, with a nice set of peripherals.

The pic24F and dspic33 were way better than the atmegas deployed in arduinos, but they came a bit later and with 3.3V I/O and perhaps more expensive. Also not sure free C compilers were available for pic24/dspic33 at that time..

And you're missing a major step. The dsPIC line started with the dsPIC30F series, which had a wide Vdd range of 2.5 V to 5.5 V (so perfectly usable in a pure 5 V system), and were a lot more powerful than ATMEGA stuff. The Microchip C compiler was MCC30. I don't quite remember if it was really available for free or not, but I can tell you for sure that you could use it 100% free with no nasty hack involved. (When Microchip introduced the XC line of compilers, there was a free version - with limited optimizations - available right from the start, but I don't remember their policy for MCC18 and MCC30.)

As to this 5 V thing, this was largely completely idiotic, but out of habit, I remember that as a hobbyist, I was also a bit afraid of switching to the 3.3 V world for some reason. That was more than 20 years ago. It turned out there was absolutely no rational reason for this.

But unless it's a specific requirement for some environment - which is almost never the case as a hobbyist, unless maybe you're designing vintage electronics, there's absolutely no reason to stick to 5 V logic these days. This fear of "lower than 5 V", that, as I said, I admit having as well at some point in the past, is hard to understand in hindsight even 20 years ago, but in 2021, hello? It's completely irrational.
 

Offline bson

  • Supporter
  • ****
  • Posts: 2265
  • Country: us
Re: Why do people not like Microchip?
« Reply #91 on: July 26, 2021, 07:45:47 pm »
I don't like architecture lock-in.  I've worked on way too many large assembly projects in the 80s to ever make that mistake again - too much good code simply abandoned.  If it doesn't come with or support a half decent C compiler, then I don't use it.  If the architecture doesn't have a flat address space and isn't friendly to anything this side of Fortran, then I avoid it.  And that's pretty much it.  With MSP430 there's no reason to bother with PICs; they run the same code as ARM, which makes it very easy to reuse tried and true code.  If you've already debugged say a ring buffer implementation, or freelisting, or bit field operations, or... many other useful things, and write even somewhat portable POSIX code, then it's a snap to reuse on a different processor - and it will work just as well there.  On a PIC however, the code emitted will look like something the cat dragged in.
« Last Edit: July 26, 2021, 07:50:41 pm by bson »
 
The following users thanked this post: nctnico

Offline iMo

  • Super Contributor
  • ***
  • Posts: 4675
  • Country: nr
  • It's important to try new things..
Re: Why do people not like Microchip?
« Reply #92 on: July 26, 2021, 07:48:21 pm »
And you're missing a major step. The dsPIC line started with the dsPIC30F series..
Yep, I skipped the dspic30 family, never worked with it, too power hungry afaik, I jumped over to dspic33..
Btw, the CC5x compiler is still one of the best for pic16, imho, I think there is the pic16 version free now. As I can remember I did a lot of projects with it without a problem, switching the sram banks is done by the compiler, indeed :) It includes 16/24/32bit floating point lib, afaik, with all usual transcendental functions.. And the complete 32bit fp math fits into a 16f88.. ;)
« Last Edit: July 26, 2021, 07:52:55 pm by imo »
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1663
  • Country: us
Re: Why do people not like Microchip?
« Reply #93 on: July 26, 2021, 11:29:58 pm »
My MCU experience is divided between hobby and commercial use.

For hobby purposes I only use 32-bit MCUs. All of my projects are one-offs, so there's no point in using an 8-bit or 16-bit micro just to save a few bucks. In many cases, a 32-bit MCU is complete overkill, but so what? I'm not one of those guys who enjoys making things work with the bare minimum of resources--quite the opposite in fact--I prefer to not have to worry about running out of RAM or FLASH, or any other resource.

I use both ARM Cortex-M and PIC32 parts in projects and often alternate between them just for variety. I don't find one significantly better than the other in core features or peripherals. I think the ARM architecture is more modern than MIPS, but I have no particular beefs with the MIPS architecture either. In fact, MIPS is simpler and isn't constantly being enhanced with new stuff, like TrustZone, which I don't need anyway. My particular interest is in RTOS's, and I've written one for personal use that runs on either Cortex-M or PIC32 and I didn't find one architecture to be easier or harder than the other to implement an RTOS on (but 99% of any RTOS is written in C anyway). One area where PIC32 can't compete with ARM is CPU clock rate. PIC32MZ is stuck at 252 MHz, whereas Cortex-M7 parts are available at >500 MHz.

PIC32 peripherals are generally simpler than those on most Cortex-M MCUs, but they get the job done. My only real beef with PIC32 MCU peripherals is that the built-in RTC doesn't have a battery-backed power domain and most of my PIC32 designs therefore require an external RTC part. ARM peripherals are all over the map with every manufacturer doing things differently.

As far as tools go, I think both options are comparable. Eclipse (which is what most MCU manufacturers base their tools on) and MPLAB-X are similar enough that I rarely notice the difference. MPLAB-X performance has never been an issue on the development machine I use. I use workarounds to get around the XC32 optimization issue, but optimization is rarely an issue for my projects because I'm not right at the bleeding edge of performance anyway. I've never been a big fan of Eclipse, so for ARM I prefer to use either Rowley CrossWorks (or its free-for-non-commercial-use clone Segger Embedded Studio). I do prefer J-Links over the ICD3 or ICD4, but either works well enough for me. I consider the PICKit3 to be unusably slow, especially on PIC32s with lots of FLASH.

Quality MCU documentation is very important to me, and I find Microchip documentation to be generally better than just about anyone else's.

On the commercial side, it's strictly Cortex-M for me.
Complexity is the number-one enemy of high-quality code.
 

Offline AaronLee

  • Regular Contributor
  • *
  • Posts: 229
  • Country: kr
Re: Why do people not like Microchip?
« Reply #94 on: July 27, 2021, 12:15:27 am »
If you were exposed to micros in a work environment then you might have had the high priced development tools so might have used Motorola or TI or someone else.
People take for granted sub $10 development boards and free software, but before PIC and reprogability came along, it cost an absolute fortune for a dev kit and parts were OTP so development was expensive.

The other thing was for mass market products, even with the flash MCUs, they were too expensive per part compared to masked parts. I was deep into developing products at that time, with the expensive development tools, plus the stress of needing to get the firmware 100% perfect. If not, you just trashed a huge amount of money for masking 10k or more parts which then just had to be thrown out. At the time I was using exclusively Japanese masked MCUs, due to the nature of the products being produced, and the Japanese MCUs having specific devices targeting that use. When I first saw them introduce flash devices, but at 10x the cost of the masked devices, I started dreaming of the day when they'd be equal or at least similar in price, and we could switch to the flash versions, and dramatically reduce the stresses of developing firmware that was 100% perfect the first time. I remember inheriting a project that another engineer did and got fired over having a bug in the masked MCU which wasn't discovered until after production was finished and the customer tested a unit. At the time the Microchip flash devices were new, I think, and we ended up making a small PCB with a tiny Microchip in between the the regular MCU and the rest of the board to patch the bug. We spent several days straight cutting the lines on the existing board and wiring in the patch board to fix the bug. While sometimes I reminisce about the old days, and how thrilling and exciting it was to be a part of the industry at that time, I certainly never miss the masked MCUs.

 

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2728
  • Country: ca
Re: Why do people not like Microchip?
« Reply #95 on: July 27, 2021, 12:48:37 am »
- ARM: Load address of GPIOA->ODR into the register (pointer)
           Get the value
           Modify the bit(I barely know any thumb/arm asm, but I guess it uses a OR/AND/XOR mask, so at least another 2 instructions)
           Write back the new modified data using the already set pointer
           But also arm is pipelined, so the real behavior is different.
All ARM MCUs I've ever used have dedicated set/reset/toggle registers for MMIO, so you can do either of those operations atomically and without a need of reading the value first - for example, if you want to set some bits high, you write a mask (it will have "1" in those bit positions which you want to set high) into "set" register, and HW will ensure those bits will be set. The same for reset and toggle.

Offline AaronLee

  • Regular Contributor
  • *
  • Posts: 229
  • Country: kr
Re: Why do people not like Microchip?
« Reply #96 on: July 27, 2021, 12:58:37 am »
As far as tools go, I think both options are comparable. Eclipse (which is what most MCU manufacturers base their tools on) and MPLAB-X are similar enough that I rarely notice the difference. MPLAB-X performance has never been an issue on the development machine I use. I use workarounds to get around the XC32 optimization issue, but optimization is rarely an issue for my projects because I'm not right at the bleeding edge of performance anyway. I've never been a big fan of Eclipse, so for ARM I prefer to use either Rowley CrossWorks (or its free-for-non-commercial-use clone Segger Embedded Studio). I do prefer J-Links over the ICD3 or ICD4, but either works well enough for me. I consider the PICKit3 to be unusably slow, especially on PIC32s with lots of FLASH.

Glad to see someone else picked up on that. Yep, Rowley CrossWorks / Segger Embedded Studio with a Segger J-Link for ARM stuff. Designed by a real developer, and it totally shows.

I really don't understand what the attraction is to Eclipse, other than it's free. In my opinion, the person who designed it was either an idiot or never used an IDE before. Coming from the Windows world, Alt-F then C has been the standard for ages to close the current file you're editing, but in Eclipse it closes the project. STUPID!!!! If you can't make your application conform to the standard it's running on, then don't design it, PERIOD! And for common tasks that are done repeatedly and constantly during development, there should be default keyboard shortcuts. All the building and standard debugging functions need keyboard shortcuts. Even if you can add them, the fact that they're absent by default to me indicates the designer knows nothing about development. And Eclipse is just way too slow. It seems to have improved recently, perhaps just due to running higher spec'd hardware, or maybe they've made some changes. But years ago I found it impossible to edit in the IDE at all, due to the slow speed.

I've been using Visual Studio forever, and even the predecessor Visual C back in the DOS days. While it might not be the best, it's very speedy, and it's what I prefer. So still today, if I'm forced to use Eclipse due to it being what the MCU manufacturer chose for their development environment, I only use it for building/downloading/debugging, and use Visual Studio for editing.

For me, an IDE is all about quickly getting through the editing, building, debugging cycle. Quick speedy operation and 100% keyboard usage only (no need to remove hands to use the mouse) where one cycle can be completed in a matter of seconds (for simple matters), not minutes. This cycle is repeated hundreds of times in a day for a developer like me, and really needs to be thoughtfully optimized, not just some horrible kludge that Eclipse is.

Sorry for the Eclipse rant, but for the life of me I cannot understand how it ever got to the position it's in today.
 

Offline all_repair

  • Frequent Contributor
  • **
  • Posts: 716
Re: Why do people not like Microchip?
« Reply #97 on: July 27, 2021, 01:20:24 am »
Trump-like banning their use.
 

Offline AaronLee

  • Regular Contributor
  • *
  • Posts: 229
  • Country: kr
Re: Why do people not like Microchip?
« Reply #98 on: July 27, 2021, 01:21:29 am »
Quality MCU documentation is very important to me, and I find Microchip documentation to be generally better than just about anyone else's.
Except that they still (last time I checked) give example code in assembly language. Ok, I'm very familiar with assembly language on lots of CPUs/MCUs, but if I'm not an expert on the particular Microchip device, how hard is it to give the example in C as well? And not just in C, but in C for bare metal use, C for PLIB use, C for Harmony use, to cover all the bases, because who has time to figure out how to convert from the documentation's usage to the environment being used? Sure, it's not difficult to do, but it would be SO much nicer to just be able to cut and paste the code, with confidence that it's already correct. When they're currently pushing Harmony, yet still giving examples in assembly language, something's not quite right. It's my one pet-peeve about Microchip documentation.

On the commercial side, it's strictly Cortex-M for me.

While I use the Cortex-M, sometimes the Cortex-A in bare metal is a much better solution for some of my applications. Problem is that most Cortex-A manufacturers don't provide a bare metal solution, rather only Linux and maybe Android, both of which have unacceptable boot times, in my opinion. I cringe whenever I use test equipment or some other device where startup time is very important, yet it's obvious that they're using a Cortex-A or similar and running in Linux. I'm not a hater of Linux, as it has it's purposes, but for most embedded devices I design, it's really not practical due to startup speed. Yet you need to access all the peripherals (USB, Ethernet, Video, etc.) in an easy manner.  I've ended up having to analyze Linux driver source code and datasheets in order to write my own bare metal library in order to use a Cortex-A the way it's meant to be used (in my opinion). I look forward to the day when (hopefully the day will come) chip manufacturers really realize the huge benefit for their customers to be able to design applications for their CPUs under bare metal. Though in actuality, the absence of such gives me a huge advantage, being all my customers realize their product is so much more impressive than their competitors due to the almost instant on feature, which I can give them, so it keeps my services always in demand.
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14297
  • Country: fr
Re: Why do people not like Microchip?
« Reply #99 on: July 27, 2021, 01:36:58 am »
Quality MCU documentation is very important to me, and I find Microchip documentation to be generally better than just about anyone else's.
Except that they still (last time I checked) give example code in assembly language.


Yes. I remember that as well. Sometimes annoying: for some features, you would need tose use builtin functions in C, and would have to dig for that in the compiler's manual, with absolutely no complete example in C indeed.

I look forward to the day when (hopefully the day will come) chip manufacturers really realize the huge benefit for their customers to be able to design applications for their CPUs under bare metal.

Well sure. But look at how that works out already for "small" MCUs. A good half of users find that vendors' libraries are ugly, buggy, awfully bloated, you name it. Given the complexity of a typical Cortex-A SoC, vendors' libraries for using them baremetal would be even bigger and more complex. And almost everyone would just bitch about them, with a good half coming up with their own libraries anyway. That's almost a guarantee here. ;D
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf