NXP’s LPC1114 ARM microcontroller is in a class all of it’s own. ARM microcontrollers are a dime a dozen, but this fabulous chip is the only one that’s housed in a hacker and breadboard friendly PDIP package. However, breadboard setups usually won’t have the luxuries of a true development platform such as flashing the part, single stepping through the code, and examining memory. [Steve] found an interesting solution to this problem that involves a Dremel and hacking up even more hardware.
[Steve] found a few LPC1769 dev boards that include a debugger and a way to program these chips. Simply by hacking off the programmer and debugger portion of this dev board with a Dremel tool, [Steve] had an easy to use interface for his breadboardable ARM.
After connecting the power rails to his breadboarded chip, [Steve] connected his programmer up and set up a gcc toolchain. For about $25, he has a breadboard friendly ARM microcontroller with full debugging capabilities.
This isn’t the first time we’ve seen a few people play with this DIP28 ARM chip; someone even milled this 600 mil chip down to 300 mils for even easier prototyping. Still, this is the best and cheapest way we’ve seen yet to turn this ARM into a proper prototyping platform.
At the risk of starting a religious war, I switched from ARM to Microchip’s PIC32 because it has several different chips in 28 pin DIPs. NXP only has 2.Some of the PIC32 DIPs even support USB OTG.
The PICkit 3 in-circuit programmer/debugger is cheap and easy to wire to a breadboard. The IDE/compiler/debugger are free ($0) from Microchip, have no code size limitations, and are integrated for you – no messing around assembling the Eclipse/gcc/gdb toolchain from multiple sources. And the toolchain is supported by the chip manufacturer! It gets upgrades and it gets plug-ins like project wizards.
It would be great if Microchip offered 40 pin DIP PIC32s. It would also be great if an ARM manufacturer would integrate and support a free toolchain.
http://launchpad.net/gcc-arm-embedded
“ARM employees are maintaining this project.”
Yeah, but it’s C without C++, there’s no IDE there, there’s no debugger, there’s no vendor-specific peripheral library. You have to gather those from the four corners of the world, get them working together, and you still have a solution that’s more generic than one that’s tailored for your target microcontroller.
Microchip just makes it so much easier than any free solution in the ARM world. Microchip gives you, for free, what IAR and Keil sell for a thousand dollars or more.
What are you talking about?
I use that toolchain to compile stm32plus, pure C++.
That toolchain includes arm-none-eabi-gdb
NOBODY is talking about spending $1000 on tools, except your straw man.
I’m building and running and debugging ARM Cortex M4F (with hardware floating point supportt) with pure free tools, all out of the can.
OK, I apologize; I didn’t know that it includes C++ (the referenced page says “Programming Languages: C”) or gdb (no mention of it on the referenced page).
But does it include an IDE? Does it include the CMSIS for your microcontroller? Does it include a project wizard that builds projects that target your microcontroller? Yes, I know you can assemble all that; I’ve done it myself when I was using the STM32. My point is that with Microchip, that work is done for you and the resulting integration is supported.
And I know no one here is going to spend $1000 on tools. My point there is that if you want the convenience of what Microchip provides, you would have to spend $1000+ in the ARM world. And yes, that’s horribly overpriced.
Finally, I’m not saying that anyone should migrate to PIC32. I would much prefer it if STM32 users started yelling at ST Micro and NXP users started yelling at NXP, saying “Look at what your competitor provides. Why do you make us choose between cobbling together our own development environment, or paying $1000 for IAR or Keil? Why can’t you put together an IDE+toolchain configured for your products, make it freely downloadable from your site, and support it?”
See, Microchip has decided that they’re in the business of selling chips, and having a free and easy development environment helps sell them. I’d love to see ST and NXP come to the same conclusion. If they had, I never would’ve switched to PIC32.
I use emacs for my IDE, been using it for 30+ years as an IDE. Works great. Installed by default on every linux, trivial install on any other platform. Runs on EVERYTHING. It fully supports syntax highlighting, building, and source code control and source-level debugging. You can also use it to build programs for linux or OSX or Windows or Android or bare metal, one tool does them all.
stm32plus doesn’t need CMSIS.
here is my “project wizard”:
cd demo-project ; tar cf – . | ( cd new-project ; tar xf – )
ARM makes the processor in ARM chips, what is wrong with ARM writing the compiler? They know it best.
Personally I prefer my tools to be made by the people who make tools. Chip companies make chips.
All that “spiffy” GUI stuff just gets in the way. make is the only tool you need for building, this way your projects are tiny and your users don’t need to install anything besides the compiler toolchain to build your code.
I should also point out that people like you who say stuff without researching don’t get hired very often.
I’m very happy for you F. I have absolutely no interest in debating the merits of emacs vs. Eclipse/Netbeans/Visual Studio and the like. Some people prefer IDEs and I hope you can grant them their dignity. I’ve been programming professionally since the 1970s. I’ve used TECO, I’ve used vi, I’ve used emacs, I’ve used IDEs, and I refuse to consider myself inferior because I prefer IDEs.
And I’m not saying that chip vendors should write the compilers. Microchip doesn’t, and I wouldn’t expect ST Micro or NXP too either.
Look, every cheapskate ( :-) ) who wants to use ARM goes through the same cr*p: where do I get the compiler? where do I get the debugger? Where do I get the peripheral library? Where do I get the IDE, if that’s what I want to use? How do I get them all to work together? How do I create a boilerplate project for this microcontroller? Yes, they finally succeed, but it’s a PITA.
There’s lots of web sites giving conflicting advice, old versions, 20-step procedures, different procedures for each OS.
All I’m saying is that it would be nice if the vendors assembled all this stuff into a single installation package that made it quick, cheap, and easy to get up and running – without code size limits. Why am I getting an argument from you over this? Even you, with emacs, still needed to find the toolchain and somehow stumble across STM32plus. Even you would’ve had an easier time if ST’s website said “download this to get everything you need to develop for STM32”.
“I should also point out that people like you who say stuff without researching don’t get hired very often.”
That sort of comment is completely uncalled for.
I’ve worked as a software engineer since 1978. I have never had the slightest difficulty getting a job. But thank you for your concern.
Beating a dead horse here but you can install a full ARM development environment on ubuntu by just running the ubuntu package manager. No “searching to the ends of the earth” required. On OSX you can install a full environment with “brew”. On windows you can get everything from cygwin.
“Where do I get the compiler, debugger … ” geez, man, it’s one download.
“Where do I get the standard peripheral library” why from the chip vendor of course.
Do you really think that these are legitimate arguments for choosing a platform? Oh man I had to download and untar two files. How horrible.
If you REALLY want a spiffy GUI environment for ARM Cortex with EVERYTHING, all ready to go, including vendor libraries and demo programs, Coocox is the way to go. It’s windows only but it’s 100% free.
If you are going to argue about something, you should at least know what you are talking about. Your ignorance is just as offensive as my remark, that was what I was driving at.
F do you have a link to where I can find a guide for Mac Homebrew and ARM toolchains? I’m working with the NXP LP4330 and I have grown sick of their LPCXpresso IDE and I much rather install the tool chain manually and start learning the make.
Bob, I don’t think you’ve done very thorough research. I have. First of all, if you want to do basically the exact same thing covered in this post, but you want an IDE, check out this blog post I wrote:
http://mc2.unl.edu/2013/10/04/lpcxpresso-hello-world-and-breadboard-led-blinking/
LPCXpresso is NXP’s ARM development environment. Although it’s code-size limited, it’s limited at 256 KB (which is more than I’ve ever used on any project). I’m not sure what your gripe about CMSIS libraries is for — just import the library folder provided by your manufacturer.
If you want to use other ARM chips, I wrote another blog post that provides an overview of the ARM ecosystem:
http://mc2.unl.edu/2013/10/03/getting-started-with-arm-microcontrollers/
TL;DR: there are a ton of free IDEs out there for ARM development. Some of them, like CooCox CoIDE, are completely free. Some, like KEIL uVision, are code-size limited. Many ARM vendors have their own toolchains which are usually free or reasonably code-size limited (this includes Code Composer Studio, Atmel Studio, Freescale Code Warrior, DAVE3 from Infineon, etc)
The fact that you conveniently neglected to mention any of these demonstrates that you really have no idea what you’re talking about. I used to use Microchip, but I’m tired of paying $5 for an 8-bit micro that a $1.60 ARM MCU is comparable to (or better than).
funkathustra, I think it’s great that NXP is now providing exactly what I was suggesting they provide. In defense of my ignorance, their first non-alpha version, 0.51, appears to have been released in 11/2012. I switched from ARM to PIC32 in mid 2012.
“I’m not sure what your gripe about CMSIS libraries is for — just import the library folder provided by your manufacturer.” My gripe is that it’s necessary to import basic building blocks from more than one place. NXP has fixed that. You and F might think I’m crazy, but apparently NXP agrees with me. Maybe you two should go argue with NXP that they never should’ve provided an integrated package for their customers.
Seriously, I don’t know why you guys are even arguing this. If my facts are wrong – if a company like NXP has come out with what I’m suggesting – you can point it out to me. But you guys sound like you’re disputing the value of an integrated development environment from the chip manufacturer!
“Many ARM vendors have their own toolchains which are usually free or reasonably code-size limited …”
TI, Atmel, Freescale, and Infineon don’t sell ARMs in DIP packages. That *is* what this post was originally about. Yeah, I know some people are able to use SMD. I have a congenital tremor and it’s hard for me.
“I used to use Microchip, but I’m tired of paying $5 for an 8-bit micro that a $1.60 ARM MCU is comparable to (or better than).” Huh? PIC32s start at $2.50 at Digikey.
This chip is also supported by the mbed online compiler. http://mbed.org/platforms/LPC1114FN28/
I find programming using the Microchip IDE an absolute horror. I spent about half a week trying to build command line tools for Linux, which is a topic completely ignored by Microchip. Compared to that, installing the ARM tools is a piece of cake.
Trui, are you referring to MPLAB 8 (which was, indeed, horrible) or the new NetBeans-based MPLAB X (which isn’t as good as Visual Studio, but is on par with Eclipse)?
As for C vs. C++: that’s another war, like emacs vs. IDEs, that’s I’m not interested in waging. You use C, I’ll use C++, we’ll both be happy.
I used MPLAB 8. Then I got my command line tools working, so I don’t need no stinking IDE anymore. I tried MPLAB X recently, just for importing a hex file and programming a chip, but found it too confusing, so I quickly got rid of it and reinstalled MPLAB 8. I run MPLAB in a virtualbox environment, just so I can program the devices. I do all development in Linux using vi+make, switch to Windoze, import hex, burn, and then quickly switch back to Linux. I’d love to have a command line programming tool too, so I can avoid all the switching back and forth.
C++ is a piece of crap language anyway, and doubly so on a limited microcontroller. Just stick with C.
Bob, there are plenty of free of charge IDE’s supporting ARM. You should check Coocox for example which is based on Eclipse. I agree though that ARM manufacturers are not supporting the amateurs by making breadboard-friendly (DIP packages) ARM based chips. At least NXP has done a first step, although I would expect something better (including at least an integrated USB device module since UART comms are really slow) and with more GPIO.
The reason NXP comes out with DIP packaging is so that manufacturers can put it on super cheap phenolic circuit boards. These boards are too flimsy to support surface mount, so they need DIP. For the same reason it’s a 600 mil wide DIP, so it allows easy single sided routing. These boards are then used in white good equipment, where there’s plenty of space.
Of course, NXP listens to these manufacturers to decide what features to include. Unless USB becomes ubiquitous on your clothes washer, don’t expect it on these chips anytime soon.
George, I tried Coocox last year when I was still using STM32s. It wasn’t quite ready for prime time yet. If it’s improved since then, that’s great.
I switched to PIC32 from ARM because I wanted (1) DIP packages, (2) USB functionality in those DIP packages, and (3) a free, integrated IDE/toolchain with support for my target uC. I’m mostly satisfied now. It’s great that NXP is now offering (1) and (3). But to get me to switch back to ARM, someone needs to not only match what I now have, but surpass it in a way that’s relevant to my needs.
This is no way means that anyone else should do what I did. People here have different needs and, unlike some people here, I wouldn’t insult them for that. All I’m saying is what *I* wanted to have and what I had to do to get it.
Trui, you are probably right but I think that they are missing a big part of the pie that has to do with the hobbyists,university/technical students,small companies etc etc. I don’t think that burning a USB module into their die would cost them that much.
Bob, I totally understand the need for DIP packages and I agree that Microchip is trying to satisfy all of the needs and not just the big fat greedy manufacturers. I just hope that NXP will get us something more rich in the near future in a DIP package. SMD parts would be great for a finalized project but not for something that might need minor or major redesign every now and then.
George, anybody who doesn’t use phenolic can use the SMT devices. They can be used bare on your own PCB, or you can get a device pre-mounted on an devboard, like the lpcxpresso for very low cost, or you can use an adapter board.
The market for people who are afraid to use SMT is probably too small for NXP.
They used mixed SMT + through holes parts on single sided phenolic PCB
inside my 10+ years old TV. There is a SMT Picture-in-picture chip that
has 28 pins and is only available in SOIC (SMT) package.
Have a look here: http://www.stcmcu.com/ (in Chinese, but use Google translate)
Their current flagship is a 8051 in a 8-pin DIP to 40-pin DIP and a couple of SMD’s.
It is running at 35Mz Xtal speed, some others faster, and it is doing one instruction per clock cycle. So true 35MIPS. At about US$0.7 each. About a dollar in low volume. Built-in ‘hardware bootloader’ with a terrible Windows uploader. Not exactly for a customer to upgrade his products firmware.
That is a lot of MIPS for your buck, but, how does it compare to a PIC32-bit device at 50MHz?
Most variables are 8-bit and fewer 16-bits. So are the rest of the bits just zeroes in a 32-bit cycle? Then a 32-bit is a huge waste.
So let’s compare price. That testosterone 8051 is less then a dollar, runs at one instruction per cycle, so true 35MHz.
What about the PIC32, 50MHz, running one instruction per cycle? 50MIPS? I saw some prices at Microchips website, US$2 – 3 for I guess 1-10k quantity. So not so much MIPS for your bucks.
Please tell me there is a HUGE difference in speed between 32-bit and 8-bit because that is what I want to hear. If a 32-bit at 50 MHz is the same as an 8-bit at 200MHz, then I’ll do the switch tomorrow.
Hi,
I hate having to buy so much peripheral stuff just to build a little robot so I designed my own small µController board that I can use almost any DIP chip or module on … add a few jumpers and plug peripherals directly to the board eliminating a lot of hassle …
Meet RoboGuts;
http://brainless.org/MultiMedia/Robotics/RoboGuts/RoboGuts+Chips&Modules.jpg
The design is nearly complete … I am working on rev.3 in a few weeks which makes it even cheaper to build up …
Having fun testing the board with a BS2;
BobbyBot3 + RoboGuts DanceTest 1
https://youtu.be/rFc5olFjio8
I am also building BillyBots using the PICAXE 28X2 module and 20M2 chips as I can afford to buy parts.
http://brainless.org/OPEC/PICAXE/instructions/IMG_3519-20150425-BuildingBillyBot4-ce600.JPG
http://brainless.org/OPEC/PICAXE/instructions/BillyBot1.jpg
Everything will be documented in the 2nd edition of my $5 eBook soon …
OR you get a stm32 development board from abusemark (timecop, in the multicopter scene): http://abusemark.com/store/index.php?main_page=product_info&cPath=5&products_id=40
You can use a regular FTDI cable to program an LPC1114. It can even be the 5V version–the LPC1114’s inputs are 5V tolerant. Connect the TXD and RXD lines. If pin 24 is grounded when the chip starts up, it enters programming mode. (You can hook up a pushbutton to make this easy) Then use lpc21isp to flash the firmware.
Just about every ARM Cortex processor can be bootstrapped in the same manner. Some can bootstrap using USB DFU, so you don’t even need an FTDI cable.
“this fabulous chip is the only one that’s housed in a hacker and breadboard friendly PDIP package.”
*cough* LPC810
STM32F051K8T6 is a 32 pin QFP for $3.00
for pennies you can get a 32 pin QFP to DIP adapter
32 QFP is utterly trivial to solder, even with a cheap radio shack iron
STM32F051K8T6 has 64K flash, 8K SRAM
LPC1114FN28 has 32K flash, 4K SRAM
okay maybe not pennies but QFP 32 adapter is $0.80 from futurlec.com
And not a single decoupling cap to be seen…
Don’t confuse hacking with kindergarten(or for $DEITY sake, Arduinos)..
What was the problem to use the 1769 already on the rest of the board? You can solder headers and plunk it into a breadboard, and even so, running signals at a bit over 1Mhz in a breadboard is funny, the crosstalk alone is great to drive some people crazy.
If you use QFP 32 chip and adapter you can solder the crystal directly to the adapter, skip installing header pins to those pins and avoid high frequencies on the breadboard. Not so much with DIP.
There are some good prices on ebay too.
http://www.ebay.ca/itm/5pcs-QFP32-44-64-to-DIP-Pinboard-SMD-to-DIP-0-8mm-Pin-Pitch-Adapter-/130946921408?pt=LH_DefaultDomain_0&hash=item1e7d0b73c0
The “decoupling cap” is way up there on the power rail, not close enough for my comfort.
Especially when the manufacturer has gone through the trouble of putting
the power and ground pin side by side make it easier to put a decoupler
cap on each rail. Also they put the power at the middle part of the
package where the lead frame are shortest to minimize the inductance…
mikroe-1367 is ARM Cortex M4F @168 MHz on a 40-pin DIP, $28.95 from mouser
reset button and USB are on-board, consuming no pins
What’s so desirable about a through-hole chip for breadboarding? Just make a breadboard adapter for an SMD part, that way you can have the most sensitive parts on the adapter board (crystal, capacitors) and you could even have the debugging and programming ports on the adapter.
What’s so desirable about breadboarding anyway ?
While i don’t do it myself since i like my prototypes to be somewhat usable i can understand why it’s desirable to be able to test things in that fashion, i don’t get the excitement about a specific type of chip turning up in a DIP package though.
Also i am almost certain it’s not being provided for breadboarding, but for low cost through hole production.
My problem with breadboards is that they are incredibly limited in what they can do, and their electrical characteristics are totally horrible.
Trui, that true. But what do you use instead when you’re putting together and testing a new circuit?
@Bob: Etch a proto pcb? works a hell of a lot better for RF stuff than a breadboard
For testing out simple but tricky circuits, I stick them on a piece of perfboard or copper clad. Other stuff I put straight on the PCB. If I want to test a new microcontroller, I just get an eval board and experiment with that. All my designs use SMD anyway, and often with 0.5 mm pitch TQFP or QFN, so there’s no way it’s going to work without a proper PCB. If I’m really unsure, I sometimes make a prototype PCB just for testing one or two new ideas.
jcg, fair enough. Etching a proto pcb is, of course, a lot slower and messier than wiring a breadboard, but I can appreciate that for RF circuits, it might be the only option.
I mostly do digital circuits at “hobbyist frequencies” (e.g. even if the uC is running at 80MHz, the I/O pins don’t use anywhere near that speed). Breadboards have worked just fine for me. I love ’em.
Etching is messy, and also very hard for 2-layer fine pitch with plenty of vias (let alone multilayer). I always have my PCBs professionally made. That’s even slower (takes about 10 days), but since I usually work on multiple projects, it’s usually not a big deal to switch to another project while the boards are being made.
Signal integrity issue has more to do with edge rate i.e. the high
frequency component of you signal during switching. It is a matter of
driver characteristics and not with how often you toggle your I/O. The
modern day chips are faster and have faster edge rates.
I can make a toner transfer double side PCB for doing SMT in about 2
hours at home with minimal equipment. I won’t be able to do complex
things like using a fine pitch (below 0.5mm) or BGA part or a daisy
chain busses that requires a lot of vias and parallel connections.
Microcontrollers have memory built-in, so they are easier to deal with.
I can do some limited pins swapping on CPLD to simplify routing.
You can get pre-made breadboard-like-layout PCBs for not too much at Radio Shack and presumably much cheaper at the usual online sources. Through-hole, 0.1″ spacing, gap down the middle and half-rows of 5 connected holes, power bus down the side. That’ll let you do your initial layout on breadboard and then solder it in to a real board if you’re keeping it.
futurlec ET-STM32 stamp is bigger than DIP but it “straddles” just fine
If you want ARM on your breadboard there are LOTS of ways to do it.
HaD, you do more than anyone else to keep people in the dark ages of 1980s through hole technology.
What is this “through hole” you speak of?
“through hole” is 99%+ of my parts (1980’s era) bin.
That’s stuff from 30 years ago! I have tons of stuff from back then
too. If I haven’t used them since means I won’t miss them either.
It is one thing to reuse old parts, but another to insist on having the
new parts using old style packaging or old voltages.
Perhaps I misunderstand, but isn’t this using a an item in exactly the way the manufacturer intended?
“The on-board JTAG debugger provides high-speed USB to JTAG/SWD interface to the IDE, and it can be connected to other debug targets such as a customer prototype.”
Where’s the Hack?
“a ARM”? D:
I’ve always found ARM processors to be out of my league, not sure why.
The Arduino is ARM, isn’t it? Is that really out of your league?
No, the main Arduino is AVR, the 8-bit ATmega328 through-hole PDIP for the classic Arduino (or 168 for the older ones.) Arduino have recently come out with an ARM board and a few other new things (such as a surface-mount AVR version in their Leonardo board), but when people say Arduino they’re talking AVR 8-bit stuff.
Cmon, we don’t call anybody who request for DIP chip a hacker, there is a word for them, they called NOOBS. Thats it. If you cant solder a tqfp than, you are really low qualified for electronics hacking.
So physical dexterity and good eyesight are prerequisites for being a hacker? It’s news to me.
I agree Bob. In fact, I know a hacker/maker who is legally blind.
I have worked for places that had technicians, but they don’t work
outside of regular office hours when you are trying to debug/verify your
project(s) on a tight time line.
As companies downsizes, the techs were the first to go and other duties
are passed onto them. So at some point, the engineers were(are) expected to be
able to soldering mods or probe points for prototypes.
Breadboardable chips aren’t just about avoiding the hassle of SMT soldering, they’re about avoiding the development latency involved with soldering at all. Pop the CPU in the breadboard, pop whatever support and peripheral chips you need, and start programming. Want to tweak your design or reconfigure the whole thing? Just unplug the components and go.
Through-hole is fine for low-volume production, and if you want to go to the trouble of buying and setting up SMT soldering equipment so you can do production work, go ahead. But I’m not doing production, I’m hacking.
The NXP ARM chips have a hardware serial bootstrap, it couldn’t possibly be easier to program them on a breadboard….
Yeap, I was going to say the same thing. You only need a serial cable and Flash Magic and with Coocox or other free IDE (or even bear metal gcc if you are not lazy) you are ready to unleash your creativity…
I’ve been playing with these chips for a while just using lpc21isp and a cheap usb serial connector from ebay. Some might find this spreadsheet link useful, I mapped all the pins and their alternate functions with hover over detail from the datasheet :
http://goo.gl/Bik6JN
No one seems to get it!
No one seems to be in small to medium production!
With BGA and upwards SMD mounted devices we are forced to buy the amount of MCU’s
the production batch is, which is maybe 1000pcs, so I have to buy 1000 pcs of expensive MCU’s and then keep the mounted PCB in stock, now a very high stock value. A lot of money sitting on my shelves.
With companies now starting to make DIP’s again it means we can easily make a 1000 even 10.000 PCB with cheap IC socket and buy the MCU’s as we get the orders and pop them in just before delivery.
I have been waiting for this. SMD MCU’s was a sales trick.
JCooper
JCooper… Great Point! Plus the pinout of the LPC1114 DIP is 1:1 compatible with the higher end SMD chips. You can start out small 10, 50, 100pcs runs in DIP mode and go to SMD at the correct cross over point.
Steve (article author)
Thanks for agreeing, but the LPC1114 is like an old 8051 called an ARM, 64kb is nothing when using a color TFT display. 1 UART, etc. Another trick again. We want lots of flash and RAM and at least 200MHz true speed, 8 bit would be fine but in a DIP or PLCC package, why is that so difficult to understand. He who makes this first will be the winnner. At least until the other give up on the SMD sales trick. Wouldn’t surprise me if the Arduino guys or someone unexpected came out with this at viable production price. Look at Taiwanese/Chinese STC making super highspeed 8051’s at less than a dollar for DIP’s and PLCC’s. But they are also low on flash due to the 8051 structure.
Waiting for Godot,
JCooper
Nobody in the real world cares for DIP or PLCC for high performance applications.
Trui, by “real world”, I presume you mean “industry”. Hack A Day strikes me as a hobbyist-focused site, and hobbyists definitely do care about DIPs.
But I wonder if it’s true that no one in industry cares about DIPs. The 8-bit microcontroller market still has lots and lots of DIPs available. They’re less common in the 32-bit market, but Microchip has 20 different models of 32-bit DIP uCs. Is all this just to be generous to hobbyists? If it was just a matter of indulging hobbyists, I’d expect them to just do what NXP has done: release only one or two DIP uCs.
Wooaaw, I didn’t Microchip had that many DIP’s now. BUT I need 4 UART’s…sob sob. If they do the PIC32MX330 in DIP I will be their slave forever!
But I can do with the 2 UART versions for another product.
Bob, do you know off-hand if the PIC32MX210-270 have a factory burnt-in bootloader?
Yes, industry. But I said “high performance”. I suspect the Microchip DIPs are not available in 200 MHz. The problem is that the DIP package is not suitable to very high frequencies, due to high inductance of the lead frame.
DIP packages are still used in the high volume industry, but mainly because it allows the use of cheap, single sided phenolic circuit boards. This automatically means that the application area will be cheap and relatively low performance consumer goods like clock radios, toys or washing machines. For higher performance applications, they’ll use SMD.
Because the core is running at 200MHz it doesn’t mean I am going to swing a pin at that speed, but I need the speed internally for calculations. 8-bits or similar low speed ARM’s just won’t make the calculation in time. The IO is slow UARTS but A lot of calculations needed internally, but can not delay the UART IO too much. Can’t have a lag, so the faster core internally the better. It would actually be good if some pins were slew-rate limited, then it would be less problems with the EMC testing and certifying. Internally, under the hood, we want the speed of light!
JCooper
JCooper
JCooper, this is what caused me to switch to the Microchip PIC32 line. They have 20 different models in 28 pin DIPs (0.3″ wide instead of the LPC1114’s 0.6″). They max out at 128K flash, 32K RAM, 50MHz, with USB. Their IDE and C++ compiler are free and have no program size limits. It’s nice not to have to cobble together the IDE, compiler, and debugger from different sources, as many people do in the ARM world. It’s also nice to have the result supported by the chip vendor, so that features get added that are relevant to the chip you’re using.
Sorry, my reply came in the wrong place, it is above…
Or here again…
Wooaaw, I didn’t Microchip had that many DIP’s now. BUT I need 4 UART’s…sob sob. If they do the PIC32MX330 in DIP I will be their slave forever!
But I can do with the 2 UART versions for another product.
Bob, do you know off-hand if the PIC32MX210-270 have a factory burnt-in bootloader?
JCooper
Bob, my ultimate wish regarding loading the software into the flash is via a USB Memory Stick. Then the uploading of the software is totally platform and OS independant.
Bob, do you know if Microchip has such a Application Note or software etc.
The STM32F4 Discovery Evaluation board have a software example for this. It worked beautifully. Just plug in the USB Memory Stick, press reset while holding the bootloading button, let go with reset, and then the software started loading into the Flash memory. When done, it reset itself and the software was running. So simple, no need of special software on a PC, Mac, Android, whatever. Anyone can copy a bin file to USB stick. This with a DIP! Then it will be peace on earth…
JCooper
JCooper, I agree that the fact that the DIP PIC32s have only one UART is a big drawback. I’m grateful that Microchip makes DIP PIC32s, but I wish they’d stuff more features into them. You can never have too many features! ;-)
Microchip Direct will let you buy chips pre-loaded with any software you want (and Microchip does offer bootloader code for PIC32s – Application Note AN1388). See https://www.microchipdirect.com/programming/default.aspx. I don’t know about pricing.
I don’t use a bootloader. I program the PIC32 with a PICkit 3, which costs $45. At first, it appears more cumbersome than a USB bootloader, but I actually consider it to be superior: it allows you to set breakpoints while debugging. My understanding is that Arduino and other bootloader-based environments don’t offer breakpoints. Arduino is supposed to be easy for beginners, but I can’t help thinking that if Arduino users knew what breakpoints were and how they greatly eased debugging, they’d be annoyed by Arduino’s lack of them.
Bob, the PIC32 DIP version has 2 UARTs according to the datasheet.
If they are not immediately available you must remap the pins. I hope the MPLabX does have some kind of wizard to set the pins, it is a nightmare to begin using the chip if one have to start with this manually. The new TI’s Tiva series have a good software for setting the pin matrix.
MicrochipDirect only seem to preload the software for us, our own software, not writing it. I’d like that already done by some example like the STM32F Discovery, it was one of the sample codes coming with the evaluationboard.
Regarding the bootloader, I don’t care what I use myself during development. It is when there is a bug I have made in a sold product. How do I make the customer update the software? I can’t tell him to buy a PICKit3! And I don’t want him to upload via a PC, because he might have a MAC!
So for a sold product there has to be a simple way to upload the new software. It is impossible for the products to be returned to the country they were manufactured in and the software update is made there and then the product is sent back again. FedEx are good but expensive and who will pay. Distributors can maybe do it but not all will have technical staff.
So the customer must be able to do the update himself.
JCooper
JCooper, you’re right, it has 2 UARTs.
If the reason for a bootloader is to let your end-users upgrade the firmware, I would think the fact that Microchip makes its bootloader code available for free to developers would suffice; it doesn’t need to be pre-loaded by Microchip.
Also, the STM32 Discovery series has bootloaders, but that’s like saying the chipKit boards (which use PIC32s) have bootloaders. It’s not the same as buying a raw IC with a bootloader on it. If you were selling a product, you wouldn’t have a Discovery board or a chipKit board inside it; you’d have the raw chip (be it STM32 or PIC32) and you’d put the bootloader on it yourself.
I don’t mind loading a USB Memory stick bootloader at production. But who’s goung to write it? I’m sure the bootloading section in the data sheet is like 50 pages, and doing USB with a new (to me) will be a big uphill. Of course doable but how many manhours needed. Not a biggie, will find a solution on this.
But my real wonder about the PIC32 at 50MHz, how much faster is that compared to an AVR at 20 MHz, just 2.5 times faster?
I don’t have 32bit variables in my software.
JCooper
All I can say is, check out Microchip’s free USB firmware. They might have an example for reading a USB drive. Then cut and paste some of their bootloader code. If you’re really lucky, Googling might reveal an already-built solution you can use.
As for PIC32 vs. AVR with 8 bit code: you’d probably have to run your own benchmarks. I doubt there’s many people out there comparing 8051s to 32 bit uCs using 8 bit data; they’d use 32 bit data to show off how wonderful the 32 bit processors are. But I remember, with every upgrade of the Intel x86 processors, the message was that there’s no real performance improvement unless you’re running code that uses the new features.
I found a great Application Note from Microchip called AN1388. MMC/Sd, HID USB or via Ethernet.
As for speed, jumps over a big memory span is of course faster on a 32-bit chip.
I have an oldish dev board with a PIC32MXsomething with a TFT display. I will change the xtal and see if the TFT becomes unbearably slow. It has a MMC/SD socket, so there I could do the bootloading! A MMC/SD card is kind of OS and platform independant. I think the AN1388 said it must be FAT32 formatted, so not so independant…
JCooper
Have a look here: http://www.stcmcu.com/ (in Chinese, but use Google translate)
Their current flagship is a 8051 in a 8-pin DIP to 40-pin DIP and a couple of SMD’s.
It is running at 35Mz Xtal speed, some others faster, and it is doing one instruction per clock cycle. So true 35MIPS. At about US$0.7 each. About a dollar in low volume. Built-in ‘hardware bootloader’ with a terrible Windows uploader. Not exactly for a customer to upgrade his products firmware.
That is a lot of MIPS for your buck, but, how does it compare to a PIC32-bit device at 50MHz?
Most variables are 8-bit and fewer 16-bits. So are the rest of the bits just zeroes in a 32-bit cycle? Then a 32-bit is a huge waste.
So let’s compare price. That testosterone 8051 is less then a dollar, runs at one instruction per cycle, so true 35MHz.
What about the PIC32, 50MHz, running one instruction per cycle? 50MIPS? I saw some prices at Microchips website, US$2 – 3 for I guess 1-10k quantity. So not so much MIPS for your bucks.
Please tell me there is a HUGE difference in speed between 32-bit and 8-bit because that is what I want to hear. If a 32-bit at 50 MHz is the same as an 8-bit at 200MHz, then I’ll do the switch tomorrow.
JCooper, I’m sorry but I think I might’ve initially misunderstood what you were looking for. I saw you mention the LPC1114 and didn’t quite realize you were looking for an alternative to an 8051, rather than an alternative to the LPC1114. My bad.
I think the PIC32s are better for hobbyists than the ARMs. I don’t know how they compare to 8051s when processing 8 bit values only. My *personal* preference is to do my hobby in luxury: I want DIPs, I want breakpoints, and I want C++. I’m here to have fun, and cost and high performance aren’t big issues in my hobby projects. If your requirements are different, e.g. 200MHz processing of 8 bit data, then it’s no surprise if you end up with a different solution.
No, I am looking for let’s say an Atmel ATmega2560 with 4 serial ports mixed with a PIC32 with DIP package mixed with the STM32F4 on the discovery board. Actually the STM32F4 in a DIP, that is what I an looking for. Fast ARM or fast PIC32 doesn’t matter. Or if it is possible to do CPU’s in GHz speed, why can’t someone make an AVR, PIC or 8051 with a 1GHz core? I/O speed can be as on all chups today but the core must be fast. actually the 8051 is ruled out due to it’s limited 64k memory arcitecture.
What’s on the STM32F4 discovery board I want in a DIP chip but with less pins.
That’s all! Simple as that, and I think many more do too.
JCooper
There’s not much sense in a 1GHz core attached to slow memory. Even on 100 MHz core, the flash is usually only on the order of 25 MHz. So the core would be mostly idle, waiting for data. And 1 GHz already requires long pipelines, making slow memories even more painful during pipeline flushes.
Why use slow flash, do it as the guys doing 1Gig chips but with 28 pins on it. Or a 44-68 PLCC so we can buy and plug in the chips when an order is received. I just keep unpopulated PCB’s in stock. The PCB’s have all the other small unexpensive stuff mounted. That I can easily carry in stock. But not a lot of PCB’s with a lot of expensive SMD chips on them. And very easy to repair if chips can be removed.
Look at this IC. Atmel ATtiny1634. I think it is quite new. Nice little goodie with dual uart, 4 PWM channels and the ordinary stuff.
And then they only do it in SOIC and smaller!!! I mean, who is the head of Atmel?? really? Even ARMs are going back to DIP so one can begin prototyping and Microchip PIC32’s are coming out in skinny DIP’s. This also means very cheap production costs just plugging in chips. Not everything has to be fitted into a watch!!!
Now Atmel goes against the stream and have no DIP option to this nice chip for small things. What matters now is what goes into the school rooms, read Arduino, and Atmel just missed out on this one not realizing the power of DIP. Every design have to start somewhere. The new Atmel bosses failed to see this! I’m sure you all seen the new Atmel logo meaning internal changes. This new chip ATtiny1634 is a small sign of the management are not on par with what is going on now.
Why start at SOIC??? Why not start at DIP and from there go down in size.
It’s a sales trick so we have to buy reels. They don’t want us to buy DIPs!
Viva viva boycot Atmel!
JCooper