What's the usual capacitance? Any stability issues there? I was planning on using a 1uF X7R ceramic cap on the AREF pin of an ATMega2560, in order to be able to use its internal bandgap reference. I saw people using 0.1uF and 0.47uF. The datasheet is silent about stuff like that, as usual.
Sometimes you need it. A while ago I even had a switcher design that would have been totally impossible to do without a uC. But it does raise eyebrows if I request timers and port pins and MIPS, probably because of my analog background. "YOU want some of the uC resources? What for?"
Sounds to me like you need FPGA resources moreso than an MCU. Are you using the ADC or DAC, guess so or are you using the reference for the brownout or something else? DACs are easy in FPGAs, ADCs not as easy. Otherwise FPGAs do everything an MCU does plus...
I nearly always need ADC capability. Not for the brownout, I never trust anything on those chips for that, the POR/BOR/WDT goes external. FPGA have some downsides, they tend to become large, expensive and sometimes power-hungry when you need math capability or an MCU core. But the main issue for many projects is people. If the client has the experts in house like in this case, fine. But if not then one is better off using a uC where one can find a programmer in nearly every town. This is one reason I am often partial to the 8051.
Of course the beauty of FPGA is that the availability of very fast glue logic. Most uC are sorely lacking in that domain.
If your FPGA designs are expensive or power hungry, then you are doing things you can't do in an MCU or you are not using FPGAs properly. They don't need to use any more power than an MCU and in many cases less. They certainly don't need to be significantly more expensive unless you consider every dollar in your designs. At the very low end MCUs can be under $1 and still have reasonable performance. For $1 you can't get much in the way of programmable logic. For $3 however, you can get a chip large enough for a CPU (with math) and room for your special logic.
Do you work in *every* town? I find if I need a skill, it doesn't matter where the worker is. I also find FPGA design is pretty common these days. If you are ever short on FPGA design skills, give me a shout.
Yes, the ideal chip would add a section of FPGA fabric to a conventional MCU and vary the size just as they do the RAM and Flash. I think at this point the problem is cultural. Most FPGA companies are all about the big iron selling for $100 a chip min and the MCU makers don't understand programmable logic. Xilinx and Cypress is good examples. Zync is a very high end solution, great if it matches your problem. PSOC is not a bad idea, but their idea of programmable logic isn't worth much.
Give me a good $10 MCU/FPGA combo and I'll design the world! In the meantime I'll be using soft cores. They are a lot easier to program than an MCU anyway.
That is often the problem. Sometimes a buck fifty is the pain threshold. Not in this ATMega case, the 2560 is very expensive but comes with lots of ADC and analog muxes and all that. Things that will cost extra with a FPGA solution and eat real estate.
For $3 however, you can get a
For $3 I can get a big DSP.
Not in every town but sometimes way out there. For most work it doesn't matter where the worker is but with uC programming that is often not so. Mainly because things have to be optimized right there at the big machine which for one reason or the other can't be moved into a programmer's bedroom corner in Upper Sendusky. Then it does begin to matter whether or not you have to start flying in people.
It's the same with myself. For many assigments I could as well live on East Rarotonga. But not for EMC or noise fixing jobs with larger installations.
What I often find is people only doing Altera or only Xilinx. With uC it's a bit easier, a PIC guy can be cajoled into programming an AVR, usually.
Things quickly unravel when you start relying on real hardware that is on uC but not on FPGA. Comparators, ADCs, analog muxes, for example.
Last week I reviewed a design with some larger FPGA on there. What I found fairly disgusting was how much they had to be babied with the power sequencing. uCs don't have that problem.
What "big" DSP can you get for $3? It has been a while since I looked hard at DSP chips, but I don't recall any I would call remotely "big" for $3. The TI chips that would be "big" are the TMS6xxx line which start somewhere around $20 the last time I looked and that requires all memory and I/O to be separate. The smaller DSP chips that you can get for the $3 range are not "big" in any sense and only a very few of them include Flash memory. So you still need another chip.
Even a "small" FPGA can run rings around a DSP when it comes to performance. Usually "big" in DSPs means fast and when you want really fast DSP you use an FPGA with all the parallelism you can handle. DSPs can't touch FPGAs for speed, even with low power.
I'm confused. Are you saying that on most jobs you don't care where the programmer lives and works? I think that is what you said, but it sounds like you are trying to disagree with me.
I'm totally device agnostic. I have worked with all brands other than MicroSemi (formerly Actel). I even worked with Lucent which was bought by Lattice and I believe is still sold and supported (but not the GD XP line which I had designed into a cash cow product and will have to redesign now). Ever hear of Concurrent? They were bought by Atmel. Their devices were followed by the AT40K. I worked with the Concurrent devices. lol So you can see I go way back.
I've used schematic based tools and both VHDL and Verilog. I've worked with the vendor's tools and third party tools including the NeoCAD tools which became Xilinx tools when Xilinx bought them.
If anyone tells you they only know one brand of FPGA you are talking to an FPGA weenie. I find MCUs to vary a *great* deal more than FPGAs in terms of usage. MCUs need all sorts of start up code and peripheral drivers, clock control, etc, etc, etc. FPGAs not so much. They mostly have the same features and most of that can be inferred from the HDL so you never need to look too hard under the hood.
In short, there is a lot of FUD about FPGAs. Talk to someone who doesn't buy into the FUD.
If you really need it all on a single chip, then yes, you won't find that on so many FPGAs although Microsemi has their Fusion line with analog. My cash cow uses a single FPGA and a stereo CODEC. That was smaller than any MCU design because the MCU would still require the CODEC (CD quality) and some of the control logic and interface could not be done with any conventional MCU. I had to vary the speed of the CODEC clock via an ADPLL to synchronize it with an incoming data stream. I don't know how to do that with an MCU and no logic. But I can do it all with FPGA logic and no MCU.
If you want to work with the wrong device, then you will find it hard to work with. There are still single voltage devices on the market. If this was an old design, most likely it was a Spartan 3 or similar era device when they (for still unknown reasons) used three, yes, count them, *three* voltages on the FPGA. The 2.5 volt aux supply was there solely for the configuration interface which was normally to a 3.3 volt device! Only from Xilinx...
If this was a new device, then I guess they picked one based on something other than ease of use, eh? Don't assume all FPGAs are the same.
You are aware that there are Flash based FPGAs that don't require the external Flash chip, right?
I've never used an FPGA, microcontrollers have increased in speed faster than my needs so far. So I can usually bitbang everything or use a peripheral. I used PLDs for glue logic back in the day but that's it. Oh and I bought a small xilinx dev kit which I got to make a led flash then put in a drawer for 15 years.
But could you give an example of your $3 one? Or a favorite?
A startup company called Silicon Blue came out with a line of FPGAs targeted to the high volume, low power market that exists for portable devices. They were preparing their second device family and were bought by Lattice Semi. The first family was dropped and the second family is the iCE40 (for 40 nm). They are very low power although smallish. The largest one has 8 kLUTs, the smallest 384 LUTs.
Last winter I was looking at designing a very low power radio controlled clock to run in one of these. They were still playing a shell game with the devices in the lineup and the 640 LUT part I wanted to use was dropped... :( The only real problem I have with these devices is the packaging. Because of the target market the packages are mostly fine pitch BGAs. Great if you are making a cell phone, not so great if you are designing other equipment.
You can get the 1 kLUT parts for under $3 and possibly the 4 kLUT parts. It has been a while since I got a quote. The 1 kLUT part is big enough for a soft core MCU plus some custom logic.
BTW, with MCUs Digikey will give you a realistic price quote. In the FPGA world the distis never give you a good price unless you ask for a quantity quote. I have gotten prices quoted to me that were half the list price. FPGA companies play a different marketing game and have a lot of room to negotiate in order to buy a socket.
Most of the really powerful FPGA that I connected to or had to review designs with them in there were painfully expensive.
Yes, on most but _not_ all. That's key.
I disagree with the statement "it doesn't matter where the worker is". Because sometimes (not always) it does matter. And when it does, close proximity is very important. Then you need to literally work side-by-side. Done it many times.
Our local SW guy sold his horse ranch and moved out of California. Only to Reno which is under 2h drive but that's already a bit far. And in winter you might not get through the pass or can't get back home.
My only foray into the world of programmable logic was an old Intel series. Because it was the first that didn't guzzle power as if it was free. But in hindsight I was glad I abandoned that. Because Intel did.
Yeah, maybe next time I need major logic we should talk. But better not about politics :-)
Hmm, I was looking at audio interfacing just yesterday because I am going to need that on one new project. There's plenty out there that should be directly adressable via MCU. For me it's probably going to be something from the PCM290x series but there's also SPI variants and so on.
Anyhow, I am also going to need ADC and comparator, including muxes for them, so this one will likely be a uC case again because otherwise all this has to be added externally.
Well, this guy is a real expert on high-end FPGA and the project requires stuff with tons of horsepower.
We pay less than that for the largest of the ADI sigma DSPs. I just received a quote for the smallest CPLD for around $.75. I have use for CPLDs and FPGAs but they're simply too expensive for most of my applications.
Comparing the two is silly. Each has its place.
The difference anymore is very small. The only reason I prefer one over the other is software and that takes a back seat to most other variables (in rough order of importance, 1. cost, 2. cost, 3. cost).
The one feature that isn't universal is programming modes. This can make a big difference in indirect costs (field upgrade, SKU personalization, etc.) that may not show up directly on the raw BOM.
Sure, the feature set and peripherals of micros varies widely. We use a variety of SoCs from just about everyone. Since most are settling on ARM, switching from one to the other is pretty simple. Our last port from one manufacturer to the other took a couple of weeks.
The FUD is on both sides. The support costs aren't as low as you pretend.
Nonsense. DSPs are also available with CODECs, as are UCs.
I thought you just said that there weren't many differences between FPGA manufacturers?
It seems that the "when all you have is a nail..." argument is prevalent on both sides of this discussion.
Everyone has $3 parts, now. It's a matter of finding the FPGA that fits the application. The line between CPLDs and FPGAs isn't very sharp anymore and is mostly marketing. CPLDs go well under a buck.
A very good point. I've beat up all of the FPGA supplier on exactly this point. I can't use fine-pitch BGAs. Less than .8mm pitch is a real problem, though with some arm twisting we can go to .5mm. The business case for an FPGA hasn't materialized (it affects the entire board design), though. There is always another solution.
IMO, a soft core MCU negates the whole reason for an FPGA. You're using *expensive* realestate to do what a cheap piece of silicon can easily do. There is probably an application somewhere that makes sense but I've always found a better/cheaper solution.
"DigiKey" and "realistic quote" don't belong in the same sentence. For any quantity catalogs just don't cut it.
Yeah, the old haggle game. Beats my why they still cling to such medieval sales tactics. The only other market where that is customary is with used car salesmen.
They don't even know how much in business opportunity they are missing because of this. Guys like me need pricing info here, this minute, right now. If there is even as much as a label "Call" I usually move on.
I don't see it for $3. Did you get a quote for your project? TI says it is $5 to $8 at qty 1k depending on the flavor. You still need to add Flash.
Yes, and many FPGAs have "tons" of memory on board although not for $3... but then this isn't a $3 part either...
Because you were looking at FPGAs that were "painfully" large I'm sure. How many pins, 256, 400+...? 20,000 LUTs, 40,000 LUTs?
So you could use FPGA instead of an MCU on most of your designs? I'm still confused. Are you saying if you can't use a part on all of your designs you don't want to use it on any?
I have done many jobs remotely and it has *never* been a problem. If debugging is needed in the field, that is not the same thing as saying the developer has to be in the field. You are welcome to disagree on this.
I can only remember one time where I iterated through design changes in the field and that was actually a case where I could have done it all remotely, but I was pleasing the customer to be there. Turns out he wasn't initializing the design right and it was hard to detect.
One big advantage to FPGAs is the ability to simulate at a low level. it is very easy to emulate the I/O in an HDL simulation. I don't know how they do that with MCUs, but in the FPGA world I've never had a problem.
Wow! That was a *long* time ago. FPGAs have changed a lot. Just not so much from Xilinx.
Yeah... Even if you need minor logic let's talk. I find the real advantage to FPGAs is in the fact that I can do almost *anything* in one. I don't need to add stuff unless it is very application specific like the CD quality CODEC on my current production board. I could get CD quality from an FPGA design, but it wouldn't be worth the work to save a $3 part.
You do know that it is not hard to add an ADC to an FPGA? No need for a mux if all the inputs can be connected to separate pins. It all depends on the resolution you need. 8 bits is easy, 16 bits - not so easy.
That's fine, just don't judge all FPGAs by the ones you have seen. If the only MCU you had worked with were ARM 11s using 3 Watts and running a cell phone down in 8 hours, would you think the PIC MCUs were the same?