Intel D2000 micro-controller with Quark core, any better?
samuell
Posts: 554
Hi all,
Someone suggested that there are better micros than the Propeller (I doubt that, in some regards). Then I saw that Intel is producing a cheapo micro-controller, only about $4 a piece, retail price. The thing is it is a single core that runs at 32MHz (at best). I guess that, unlike any real processor, floating point operations are emulated.
Do, is there any advantage to the D2000 when compared to the P8X32A? I'm not looking to start a war, nor I'm looking for P1 alternatives, as I'm already satisfied, bud did anyone had any experience with this dirt cheap micro?
Kind regards, Samuel Lourenço
Someone suggested that there are better micros than the Propeller (I doubt that, in some regards). Then I saw that Intel is producing a cheapo micro-controller, only about $4 a piece, retail price. The thing is it is a single core that runs at 32MHz (at best). I guess that, unlike any real processor, floating point operations are emulated.
Do, is there any advantage to the D2000 when compared to the P8X32A? I'm not looking to start a war, nor I'm looking for P1 alternatives, as I'm already satisfied, bud did anyone had any experience with this dirt cheap micro?
Kind regards, Samuel Lourenço
Comments
As such, not much comparable to a Prop. Old school, single core, have to use interrupts kind of programming.
It's not clear that this thing can be programmed from Linux yet. I can't find any clue that anyone has done it already.
"The board can also be developed with Intel System Studio for Microcontrollers IDE with support for GCC 5.2.1, Intel-enhanced GDB 7.9, Integrated Performance Primitives for Microcontrollers 1.0, Floating Point Emulation library, sample applications, a BSP for the Intel Quark Microcontroller Software Interface (Intel QMSI)
OpenOCD 0.8.0, TinyCrypt 0.1.0, Python 2.7.10, and more. The IDE works in Linux 64-bit (Ubuntu 14.04 LTS, and Fedora 21), and Windows 7/8.1/10 64-bit. All manufacturing and hardware design files have been released (Cadence Allegro), and documentation includes hardware and user’s guides."
and then the Intel site tells us this:
"Develop efficiently in an Eclipse-integrated* development environment (IDE)"
Oh boy!!! It's Eclipse, too!!! What could be better???
But wait a minute: "Floating Point Emulation library" is it so that this thing does not have floating point hardware! Forget it, I'm sticking to the STM32F4.
That is why I also like the Propeller. Just use SimpleIDE or any other tool you like. Simple to program. Done. That and eight cores at 80MHz (can be up to 128MHz if OV to 4.0V, and it is still stable). No peripherals? DACs and ADCs on PCB at your pleasure.
Well, I'm still to find a competitor for the P1 (and one that comes with an open source IDE and it is easy to work with).
I won't lose any sleep if I can't say "Intel Inside"!
Whoa, another memo I must've missed.
What memo would that be? This came from experimentation using a 8MHz crystal, and the PLL multiplier set to 16x. Yes, it is possible if the supply is set to at least 3.8V. You can even supply it 4.3V, but you don't need to.
Kind regards, Samuel Lourenço
With 8 cores that's about 209 MIPS.
But realistically if you are spreading an algorithm over 8 cores you are only getting about 3 times speed up so say 80MIPS.
And if your code won't fit in COGS you need to use LMM so divide that by 4 or 5.
Say 15 MIPS to 25 MIPS is what you can get out of a Propeller.
Of course this is outside of the specifications on the Data Sheet, and not supported by Parallax.
The max I have seen Parallax support is 3.3 Volts @ 6.25 Mhz (100 Mhz). I know Cluso runs higher speed, but I don't know if he bumps the voltage.
Just sayin', I would not put it into production at 8Mhz and 4.0 volts.
You cannot build a Raspberry Pi with a Prop, nor can the Prop solve a 3mm package problem.
That may be 'dirt cheap' for intel, but when you can buy MCUs for 30c+ in modest volumes, $4 is clearly a long way from 'dirt cheap'.
For intel, in the MCU space, this is ground breaking stuff, and a real back to the future moment.
intel were market leaders in Microcontrollers ( but IIRC, never actually made a Flash one)
Lack of Flash was partly what killed intel's MCU's - they got too large, and had too much inertia to move to flash, but others were more nimble.
( Of course, you could argue intel still do not make a Flash MCU, as this is unlikely to go thru any intel FAB )
Q&A here is revealing :
http://hackaday.com/2016/03/31/intel-ups-the-dev-board-ante-with-the-quark-d2000/
http://www.mouser.com/Search/Refine.aspx?Keyword=intel+d2000
This shows it is not actually binary compatible with x86, tho at 32kF/8kR, that's moot anyways...
“The CPU borrows IA-32 instruction encoding, but is not an IA-32 processor and is not compatible with existing IA-32 applications or operating systems. Specifically, the Intel® Quark™ microcontroller D1000 CPU supports only a subset of the full IA-32 instruction set. Likewise, the CPU architecture excludes many legacy features such as segmentation. The CPU implements system software features not available or solved differently on IA-32. Software written for IA-32 processors requires porting to the Intel® Quark™ microcontroller D1000.”
It does have variable length opcodes, with many 1 byte in size.
The thing to watch, will be what comes next.
eg A Flash Quark connected to a HyperFLASH Memory for XIP, would start to get very interesting.
So, this all becomes a software problem, and that likely needs more effort than releasing a chip.
Of course, even releasing a Flash Chip as a marketing/branding plaything costs serious $$, but mere pocket change to intel.
The software does look quite good, at first blush, but then intel has had a toe in this area for a couple of years.
Some details roll the eyes, like the typical 40s flash times, really intel ?
- but they do have HS USB connected Hardware Debug, with Terminal link, all on that Board.**
That puts them on a par with most leading MCU vendors, even ahead, if their SW is solid.
475 pages is modest by today's standards. I have a sub $2 MCU manual open, at 1717 pages !
** Addit: With the FT232H only able to do JTAG or UART, I was unsure how their Terminal demo could work.
More careful reading of the Eval Docs, shows they connect an external USB-UART device for that Debug Run.
That oops goes in the minus column, as having to find and connect another board and wires, is a royal pain.
They really should have used FT2232H.
Collected features summary, with spec details
* CPU: Intel® Quark™ microcontroller D2000 SoC 32 MHz ( 8mA typ @ 32MHz, 272uA 4MHz Halt, 3.4uA RTC )
* 32 KB flash memory (internal)
* 8 KB OTP flash (internal)
* 4 KB OTP Data flash (internal)
* 8 KB SRAM (internal)
* 1x I2C (Master/Slave) to 1Mb/s, 7b & 10b Addr, 16 Deep FIFO Rx & Tx, DMA
* 1x SPI master supports up to 4 CS, CLK <= 16MHz, 4~32b frame, 16B (32B?) FIFOs, DMA, 16b Frame Counter
* 1x SPI slave, as above, but 3.2MHz Max.
* 2x UART, 5~9b, 16550, DMA + 16B FIFO, supports 9-bit addressing mode & RS485 300bd~2Mbd < 2% error, Fractional Baud
Hardware Handshake Interface supports DMA
* ADC 2.28 MSps SAR 19ch 6/8/10/12-bit (12-bit at 2.28 MSps and 6-bit at 4 MSps).
* 19 Comparator, Rail to rail input, Choice of (<600nA, .5us or <9.8uA, < 250ns), VREF (0.95V +/- 10%) or PinRef.
* 2x 32b timers, as either
PWM 32b HI, 32b LO set, or 32b Timers - No Capture or External Clock modes ?
* 25 GPIOs, INTs + Debounce on all pins. 12mA & 16mA drive, VOL spec, no VOH drive spec ? (but does have DDR)
* Real-time clock, 32.768kHz Xtal, 32b timer, 32B RAM battery backed
* Watchdog timer (seems to CLK from only 32MHz ?)
* 6x6 mm 40-pin QFN
* Regulator 1.8V Switchmode, but needs 47uH, 47uF, 470nF components.
* Clocks : 32.768 RTC kHz 32MHz Xtal or (RC Osc 2% after trim ?, says 10 bit trim code from OTP)
32MHz Xtal Osc trims 5.55 pF to 15.03 pF, in 16 steps
* Price : Mouser stock, 250+ $2.53
Summary:
As a MCU, ignoring the core, just looking at Clocks+Peripherals, I'd rate :
Oscillators : Quite good, but watchdog from 32MHz is surely an oops. Sparse specs on RC osc modes.
ADC: Quite good
Comparator: Good choice of power, and on 19 pins.
Serial : Quite good, with FIFO and DMA and reasonable Speeds. SPI has 4-32b & frame counter.
Unclear if this can support i2s ?
Timers: They are 32b, but options are Quite Poor, just 2, as PWM or Timers, no capture or External Clock modes ?
FIFOs : Muddled info on depths, various claims of 8,16,32B ?
CPU: Limited info exposed - eg Mul/ Divide - how many bits and cycles ?
Addit:
Confusingly, there is also a D1000, and a 'D2000 series'. The 'D2000 series' are quite different, and the D1000 seems almost exactly the same as D2000 - almost like D1000 is rev 1 silicon. Price is the same.
In the Data mostly small diffs show up, like
Feature : D1000 , D2000
SPI frames : 4~16b 8w fifo, 4~32b 32w fifo ?
i2c Clock : 400k, 8B fifo, 1M, 16B fifo ?
PWM modes : ? none , 2 Timers can do PWM
IO : 24io , 25io
RS485/HWfc: ?? not found , Has hardware Flow control.
ROM : 8k , No mention (has 8k OTP?)
Mouser Stk@Price: 4311@2.53 , 3695@2.53
Opcodes:
Hard to find D2000 info, still early ?
However, there is D1000 info here, which could give some guidelines :
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/quark-d1000-programmer-reference-manual.pdf
which indicates
* opcodes efficiently support 8b and 32b, and 16b are there, at a prefix byte size cost.
* DIV,IDIV seems to be 64b/32b -> q32:r32, and IMUL,MUL looks to be 32b*32b -> 64b
* Branches support rel8, rel32 for shorter opcode size
* Usual mix of Add/Sub/And/Or/Xor/Test/Push/Pop/Call/Ret found in most MCUs
Check this article:
http://www.dvhardware.net/article61586.html
The D2000 has OTP, but the D1000 hasn't.
I can find a reference to the same Nov 2014 cluster, here
http://hackerboards.com/new-mcu-like-intel-quarks-sip-power-but-skip-the-linux/
Yes, if the forum software was not so broken, that would have been more obvious in my lists.
I see what stocks there were of the D2000 Eval have quickly sold, and all Mousers 1st 2 drops are pre-sold.
QFP seems to top out at about 7.3MHz x16. DIP seems to top out at 15MHz x8. I have not tried overvoltage.
Current boards use 12MHz x8 because I want 96MHz for USB.
Running linux?
[Edited: oops I see people have already commented on this]
My source was a YouTube video. But my guess is that I've confused the CPU with the MCU, as both are named Quark.
I suspect intel is going for some ARM-Like branding here, where ARM Cortex-M0 is not binary compatible with ARM Cortex-M7, but both are called Cortex by marketing.
This means 'Quark' brand now covers many things.
As always 'The BIG print giveth, and the fine print taketh away' - the DOCs say not quite IA-32, No segments, and no XCHG, so not downward binary compatible.
Where opcodes do exist, they seem to match, so it may be upward binary compatible ? Not seen comments on that yet.
Given the large commonality, a IA-32 hosted PC Simulator should be simple, and fast, wonder if intel plan any ?
Now D2000 would make sense if it had:
say 32k RAM
and 32k Flash
and based on a revamped x86 core that you could use a copy of Borland C or Turbo Pascal to write code for it.
However Intel seems to have a tin ear for embedded controllers.
Nice aspiration. Anyone got the source for Turbo Pascal ??
I'd guess quite a lot of work would be needed, to change from 16b segmented, to 32b no-segments...
Closely related to that, I did find this : http://www.xpl0.org/
and that does have 32b source. Would need a tweak to output Quark.2000 binaries, and add Debug info.
I thought so, but they are slowly improving.
This part has quite good COMs, good math-ops, and a small package and a price (for intel) that is new territory.
As you say, just a nudge more resource would be good. Let's see what they do next.
And a floating point processing unit, while we are at it. PIC32s have them, and Intel has the IP to implement it. I really don't understand why they implemented the FPU on the CPUs, but "missed" to add that on the MPUs.
As an aside, it is not the first time that Intel doesn't follow a coherent naming. For instance, you have the E3700 Pentium and the E3700 Core Duo, and those are very different CPUs from one another. I guess it is the same thing with the Quark MCU and the Quark CPU.
If we look at more experienced players, like Freescale, their K10 series shows a FPU only on some models, and they choose to put this only on the very top end 512/1M Flash large parts, at prices 2x that of intel's.