Another interesting small mcu is the nrf51822 which is 3.5x3.8mm , it includes bluetooth low energy transceiver and dc-dc converter + 256K/16K flash/ram and it supports the mbed/arduino. It would be also possible to write/adapt a low energy mesh protocol for it.
Another interesting one: stm32f401, cortex-m4 ,84mhz,512KB flash, 96 KB ram, low power and can run python(micro python) - at only 3X3 mm.
Don't forget the battery, wifi and other electronics needed for fully functional system. It would make the entire device 5 times bigger. But its getting there when the entire system is as small as this.
I don't think you'd put a full system in a cable, but you'd make smart cables like Apple's lightning cable or their video adapters that actually convert signals.
Thin film batteries + solar cells are already being mass manufactured so thats not a problem. RF chips are shrinking rapidly too and you'd need little more than a CC3000 from TI which is already pretty small (16.3 x 13.5 x 2mm)
Freescale seems to mention IoT only because it is the buzzword du jour, there doesn't seem to be anything that makes this new chip particularly IoT oriented. It doesn't even have any built-in internet (or any network for that matter) connectivity, which is kinda important for IoT.
In comparison Atmels use of IoT in that case seems more justified by the fact that they are marketing a solution with network connectivity. And imho the integration of connectivity and microcontroller is far more significant than 15% reduction of already ittybitty package size.
Freescale's IoT angle has been delivering the cheapest MIPS per watt. IoT isn't all about wireless communication in their eyes - you also need a capable data acquisition and processing system that can run on sub-milliamp power for long periods of time.
AVR's are 8-bit microcontrollers, Cortex-M's are 32-bit and are generally more powerful and have more features (even the Cortex-M0's) than both AVR's tiny and mega series.
I wonder if it's the beginning of the end 8-bit and 16-bit micro. Prices of 32-bit micros are so low now, they are so small, it just doesn't seem worth the hassle of dealing with an 8/16bit. I'm sure they'll exist in legacy designs for another 20+ years, but new designs? Less and less.
Actually 4-bit MCUs (mostly mask-programmed) are still quite popular at the extreme low end, because they're absolutely tiny (<1mm^2 bare die, in COB packaging) and cheap (<$0.01) and good enough for their application; ultracheap 4-function calculators, electric teethbrush, multifunction flashlights, toys, etc.
8 bit code takes much less space than 32bit code. You can almost pack in 2 to 4 times as much code in the same space as fixed instruction width 32bit code. Perhaps less when compared with ARM thumb but still significant.
You'd think, right? Luckily the ARM dudes came up with Thumb-2, so most (all but 6) of the Cortex-M0+ instructions are actually 16 bit, not 32. (Nice chart at http://en.wikipedia.org/wiki/ARM_Cortex-M .)
But what's even more interesting is to actually compile apps and compare code size. Miro Samek did this for a couple of RTOS-like framesworks and compared across a mix of 8, 16 and 32 bit micro architectures (PIC, 8051, M8C, 68HC08, AVR, MSP430, M16C, ARM7 Thumb, and ARM Cortex-M3 Thumb2). For his test, the MSP430 was the most dense, but Thumb2 wasn't far behind. (http://embeddedgurus.com/state-space/2009/03/insects-of-the-...)
I guess I'm nitpicking, but Cortex-M0+ and Cortex-M0 are basically Thumb only. The only Thumb-2 instructions implemented by these cores are the ones for barriers and transferring data between general purpose registers and special registers. These are:
1) Without an equivalent Thumb instruction
2) Required on the ARM architecture
3) A tiny, tiny percentage of instructions executed or just not used by typical application code.
Regarding the linked test, the toolchain and optimisation flags are going to make a significant difference. I wonder how GCC (which is free and probably the most popular) and armcc (which generally produces significantly better output) would fit in there.
Flash memory used for program storage is much much cheaper than ram. One of the only wins that 8 bit code has over even thumb code is a faster instruction bus, but for a pipelined processor that doesn't matter anymore.
8 bit would be dead if the 32 bit parts included all of the peripherals engineers actually need to build stuff (SPI,analog,timers,etc).
There are lots of 32bit micros with all those peripherals, I think it's just that the embedded industry moves slowly and adopts new products with caution. I think it's only a matter of time before all microcontrollers are ARM and the various 8/16 bit architectures die off.
There are, but the AVR parts for example have an amazing balanced of needed peripherals that still makes those parts attractive. It Atmel replaced their AVR cores with a cortex-m0 but kept all the peripherals in place and the pinouts and the part numbering scheme the same, they would have a huge boost in market share.
AVR is so old school now and has been for years. AVR only lives on because of the hobbyist, like Arduino. Professionals have switched to Cortex M0, because of size, price, and power consumption.
Old school yes, but the hobbyist market it only a drop in the bucket. Around 1,000,000 Ardunios have been sold total. Atmel doesn't give numbers, but the 8-bit MCU market is around 6.7 billion units per year, AVR is a large share of that.
You can get a FRDM-KL25Z dev board with a 48Mhz M0+ for $12.95
It even works with the Mbed system, so you don't need to worry about setting up a compiler environment becuase you can do it all online (unless you want to - it works with GCC)
Shameless plug: I've written a program that combines a terminal (for the Freedom board's debugging serial output) with one-click uploading of newly build code. It's called Freemon, is GTK+ and GPLv3, and is available here: https://github.com/unwind/freemon. It's really handy when doing "bare-metal" development on the Freedom board.
ChibiOS seems to work OK for me, though I haven't fully tested it yet. I'm running a port on both the M4 and M0 cores of an LPC4357, the 204mHz part. It's pretty quick.
I'd love to have 100 of them! It probably wouldn't be $0.75/ea for only 100, probably closer to $1.00 each, but still. $100 for 100 MCUs to throw into projects would be awesome. 48Mhz is a lot of hertz to throw at a lot of problems.
Hell, at that price, you can afford to do stupid shit with them, like put them in your friends' LED lightbulbs to screw with them, or build a physical neural-network computer, just so you can hook up LEDs between all the interconnects and make a blinklichten display.
The only problem is that they are ball grid array devices. I wouldn't necessarily say that BGA is impossible for a hobbiest, but typically you're just not going to find that kind of equipment at your local hackerspace.
In some ways BGA is even easier, aiming a hot air gun requires less general accuracy than a fine soldering iron tip. The only difficult part is the size of the things.
Though, if the goal is to have a really cheap, programmable chip that doesn't consume a lot of power, then the MSP430 is probably a better bet. 16MHz MCU with admittedly very little memory of its own for about $0.35/ea for a thousand.
Not the chip in the article, but still a Cortex M0+
http://www.nxp.com/products/microcontrollers/cortex_m0_m0/lp...
These are about £0.71 at single unit quantities and are very hobbyist friendly in a DIP package. Not sure what I will do with them, but I feel the need to buy 100.
Note that as far as I know MCUs from that series don't have an ADC, which can be a real PITA.
Personally, I've switched to using MCUs in QFP packages a while ago. You get a lot more pins, peripherals, speed, etc for the physical dimensions and price. If you decide to make a custom PCB for a project you don't end up stuck with a huge DIP package or having to evaluate and port the software to a new MCU in an SMD package.
QFPs are perfectly easy to hand solder with the right tools, which are in fact really basic: either a temperature controlled soldering station or a hot air station and solder paste.
I'm now experimenting with QFN packages, which reduce cost and size compared to QFP. Hand soldering seems to work ok, but I have yet to see the yield for small batch manual assembly.
We've worked with an assembly house that does manual assembly for small-quantity (10-20) batches. Usually they ask for extras due to attrition, but so far we've not lost any.
I usually check the quality of their assembly under a 20x microscope. I've only found 1 board that had a bit of stray solder between 2 pins which was easy to clean. So, yes, manual assembly seems to work, but that may depend on the assembler proficiency.
Yep, I keep trying to find an excuse to use then, largely though I end up wanting more IO than you usually find in the DIP ARM packages. With a controller as tiny as those in the article, it should be possible to turn it into a 14/16 pin DIP-like; I'm assuming that you could throw an XTAL on the adapter board, or that you can reduce the pins further since there's likely more than one ground and vcc. It would certainly be a nice toy to play with for projects since I usually don't need more than 10 i/o and if I do, i can get away with shift registers when I need more.
Another interesting one: stm32f401, cortex-m4 ,84mhz,512KB flash, 96 KB ram, low power and can run python(micro python) - at only 3X3 mm.