arm7 core with fast monolithic 12-bit ADC

Started by Jon Kirwan February 11, 2009
I'm just getting into a project which "prefers" the ARM7 for business
reasons, not technical ones.  I do _not_ have experience writing for
the ARM7 beyond some modest playing around, but will muddle through
that part when the time comes.

I'm looking for an ARM7TDMI core (or upward compatible) that includes
a monolithic (unless someone goes through all the trouble of
wire-bonding in packaging for reasonable prices) 12-bit minimum width,
1.5MHz minimum rate ADC (10.5-bit or so realizable at 2MHz with 1-2V
signals is fine.)  Pipelined sampling and conversion stages is okay to
get the speed, as only one signal needs to be measured.  Flash
programming of code, 1000-5000 pc qtys.  Other features are far less
important, but RAM should be at least 2k (4k would be safer) and flash
should be at least 32k-64k (128k would probably be massive overkill.)
I/O required is probably less then 20 I/O pins (12, I'm counting right
now, outside the ADC input.)  So a 44-pin package is well more than I
need.

There is a core algorithm involved that processes the data, but to be
honest I don't need a blazingly fast cpu here -- the core parts that
require very fast speed will be written in assembly.  I won't be using
floating point, except for a few custom routines I'll write.  A fully
combinatorial barrel shifter with the ability to find the leading bit
and record the number of shifts required is a plus, though.  I already
know that division is an issue for the ARM7 (software), but that is
okay as I keep division to a minimum, using wider 'registers' and
multiplicative sums and tracking divisors, holding the division parts
till the very end.

I've seen a few cases with fancy debug trace buffers available over
JTAG and that would be "high cotton" if I could find that, together
with the ADC.  But it really isn't necessary.

The main thing I'm looking for a fast, decent 12-bit or better ADC
inside an ARM7TDMI (or upward compatible) cpu.  The 1.5MHz minimum
requirement is a bit of a stretch, perhaps.  But it is important and
I'm currently using an external ADC for this (which easily reach much
higher than this and with decent bits.)  Pushing towards 2-3MHz would
be pure ecstasy.

Right now I'm just trying to compile a list for examination.  So even
things that are close (1MHz, for example) would be okay to include.
I'll talk it over, later, to see what we may have to accept.

The other option is to use a non-ARM7TDMI compatible cpu, if that is
the only way to get there (for example, Atmel's XMEGA.)  I'm hoping
there are some options in the ARM7 field, though.

Thanks very much in advance for any suggestions to add to the list.

Jon
"Jon Kirwan" <jonk@infinitefactors.org> wrote in message
news:ooh6p4psc5jl9d2lmtjso9gpihkkb4dv96@4ax.com...

> There is a core algorithm involved that processes the data, but to be > honest I don't need a blazingly fast cpu here -- the core parts that > require very fast speed will be written in assembly. I won't be using > floating point, except for a few custom routines I'll write. A fully > combinatorial barrel shifter with the ability to find the leading bit > and record the number of shifts required is a plus, though. I already > know that division is an issue for the ARM7 (software), but that is > okay as I keep division to a minimum, using wider 'registers' and > multiplicative sums and tracking divisors, holding the division parts > till the very end.
If clz and division are important then you might want to consider Cortex-M3 instead, for example the LM3S628 (8x 1MHz adc, 50MHz, 32KB flash, 8KB SRAM, 48 LQFP). Wilco
Jon Kirwan wrote:

> I'm just getting into a project which "prefers" the ARM7 for business > reasons, not technical ones. I do _not_ have experience writing for > the ARM7 beyond some modest playing around, but will muddle through > that part when the time comes. > > I'm looking for an ARM7TDMI core (or upward compatible) that includes > a monolithic (unless someone goes through all the trouble of > wire-bonding in packaging for reasonable prices) 12-bit minimum width, > 1.5MHz minimum rate ADC (10.5-bit or so realizable at 2MHz with 1-2V > signals is fine.) > Right now I'm just trying to compile a list for examination. So even > things that are close (1MHz, for example) would be okay to include. > I'll talk it over, later, to see what we may have to accept.
12 bits and Multi MHz is a stretch, Analog devices have 12 bits and 1MHz, in ARM7. NXP have Cortex cores at 1MHz / 12 bits, and Atmel AT91SAM3 seems to have slipped - I think that was 12 bits/ 1MSPS too . Documents suggesting Q3/Q4 08 SAM3 samples, have not been correct, and their newest ARM family guide, skips the SAM3 entirely
> The other option is to use a non-ARM7TDMI compatible cpu, if that is > the only way to get there (for example, Atmel's XMEGA.) I'm hoping > there are some options in the ARM7 field, though.
XMega is a little short on ADC speed ?.
> > Thanks very much in advance for any suggestions to add to the list.
If you already have an ADC chip, why not morph slightly, and make that a TI Picolo : $3 for 12 bit ADC 325ns conversion, high precision timers, (and a free DSP), and then any-old-arm can do the rest. ? -jg
On Wed, 11 Feb 2009 22:32:36 -0000, "Wilco Dijkstra"
<Wilco.removethisDijkstra@ntlworld.com> wrote:

>"Jon Kirwan" <jonk@infinitefactors.org> wrote in message
news:ooh6p4psc5jl9d2lmtjso9gpihkkb4dv96@4ax.com...
> >> There is a core algorithm involved that processes the data, but to be >> honest I don't need a blazingly fast cpu here -- the core parts that >> require very fast speed will be written in assembly. I won't be using >> floating point, except for a few custom routines I'll write. A fully >> combinatorial barrel shifter with the ability to find the leading bit >> and record the number of shifts required is a plus, though. I already >> know that division is an issue for the ARM7 (software), but that is >> okay as I keep division to a minimum, using wider 'registers' and >> multiplicative sums and tracking divisors, holding the division parts >> till the very end. > >If clz and division are important then you might want to consider Cortex-M3 >instead, for example the LM3S628 (8x 1MHz adc, 50MHz, 32KB flash, >8KB SRAM, 48 LQFP).
Actually, division is less important. I've got those operations down to a bare minimum and can tolerate some execution time. I'm still hoping for something more than 1MHz on a monolithic ADC, which will put a small kink into the idea of moving away from an outboard ADC. I'm a bit unhappy at 1Mhz. It might be livable, but the extra bit of speed would be worth going after. If you don't know of one, then I guess there may be nothing staring me in the face that I've missed on a quick search this morning. But don't get me wrong. I'm not opposed to an M3. I'm just waffling about the ADC speed. Jon
On Wed, 11 Feb 2009 15:59:53 -0800 (PST), -jg
<Jim.Granville@gmail.com> wrote:

>Jon Kirwan wrote: > >> I'm just getting into a project which "prefers" the ARM7 for business >> reasons, not technical ones. I do _not_ have experience writing for >> the ARM7 beyond some modest playing around, but will muddle through >> that part when the time comes. >> >> I'm looking for an ARM7TDMI core (or upward compatible) that includes >> a monolithic (unless someone goes through all the trouble of >> wire-bonding in packaging for reasonable prices) 12-bit minimum width, >> 1.5MHz minimum rate ADC (10.5-bit or so realizable at 2MHz with 1-2V >> signals is fine.) >> Right now I'm just trying to compile a list for examination. So even >> things that are close (1MHz, for example) would be okay to include. >> I'll talk it over, later, to see what we may have to accept. > >12 bits and Multi MHz is a stretch,
Yes, I'm kind of thinking so, too.
>Analog devices have 12 bits and 1MHz, in ARM7.
Yes, I had only this morning before posting noted the ADuC7022 from Analog.
>NXP have Cortex cores at 1MHz / 12 bits, and Atmel AT91SAM3 >seems to have slipped - I think that was 12 bits/ 1MSPS too >.
I think I saw an LPC175x series with 12-bit. But no information on when it will be sampling. Apparently, not now anyway. On the XMEGA with 2MHz 12-bit pipelined ADC, Digikey told me yesterday that it was at least sometime April before they'd see any there to ship. Maybe longer. Which just may... may... be okay.
>Documents suggesting Q3/Q4 08 SAM3 samples, have not been correct, >and their newest ARM family guide, skips the SAM3 entirely
Thanks.
>> The other option is to use a non-ARM7TDMI compatible cpu, if that is >> the only way to get there (for example, Atmel's XMEGA.) I'm hoping >> there are some options in the ARM7 field, though. > >XMega is a little short on ADC speed ?.
Well, supposedly I saw an ATxmega16A4 (up to 128A4) variety with 2MHz and 12bit, nicely pipelined for my needs. So in one-off conversions, it is too slow. But free-running it looks good and would suit the application (well, I haven't checked through the specifications in any detail, so there might be something there that would kill the idea.)
>> Thanks very much in advance for any suggestions to add to the list. > >If you already have an ADC chip, why not morph slightly, and >make that a TI Picolo : $3 for 12 bit ADC 325ns conversion, high >precision >timers, (and a free DSP), and then any-old-arm can do the rest. ?
I hadn't even thought to look at that one. It kind of defeats the idea using two big chips -- I'm looking to reduce the chip and supplier count, not increase it. But if there is, say, 12-14 I/Os there and if I can set up RS232 on it then I might not need anything else. The 64kb flash and 12kb ram seems okay. This application used to run on an ADSP21xx, so I'm perfectly comfortable with DSPs for this. I just didn't like my earlier experiences with the TI C30/C40 clan. If this is another roll of one of those cores, I'm not going to be happy unless they've learned a lot more about their own chips, enough that they can explain an observed cycle count running out of cache. They couldn't tell me why a 7 cycle count loop in cache took 11 cycles, years back. We spent weeks on the phone with their technical folks pouring carefully over various ways of forced interlock waits and never got anywhere. Thanks for the thought. I'll take a closer look. Jon
On Wed, 11 Feb 2009 15:59:53 -0800 (PST), -jg
<Jim.Granville@gmail.com> wrote:

><snip> >TI Picolo : $3 for 12 bit ADC 325ns conversion ><snip>
I'm seeing towards $4. But then I won't really know until an order is placed. Can you say anything about the tool chains you've experienced for this device? Cost, support reponsiveness, etc. Alternative development tools you looked at but didn't actually wind up trying out? Jon
> > I'm seeing towards $4. =A0But then I won't really know until an order is > placed. =A0Can you say anything about the tool chains you've experienced > for this device? =A0Cost, support reponsiveness, etc. =A0Alternative > development tools you looked at but didn't actually wind up trying > out?
Not on this family yet, but I did like the look of the Peripheral mix, so it is on our radar for future use... . Very fast ADC, and high resolution timers. TI are pushing some low-cost stuff Experimenter Kit w/ControlCARD I see in stock at Newark for ~$82, Piccolo controlSTICK is a USB stick, for $40.50 so that would be an easy way to quickly try the latest tools ?. -jg
On Wed, 11 Feb 2009 23:20:12 -0800 (PST), -jg
<Jim.Granville@gmail.com> wrote:

>> I'm seeing towards $4. &#2013266080;But then I won't really know until an order
is
>> placed. &#2013266080;Can you say anything about the tool chains you've
experienced
>> for this device? &#2013266080;Cost, support reponsiveness, etc.
&#2013266080;Alternative
>> development tools you looked at but didn't actually wind up trying >> out? > >Not on this family yet, but I did like the look of the Peripheral mix, >so it is on our radar for future use... >. >Very fast ADC, and high resolution timers.
Yeah. I'm impressed.
>TI are pushing some low-cost stuff >Experimenter Kit w/ControlCARD I see in stock at Newark for ~$82, >Piccolo controlSTICK is a USB stick, for $40.50 > >so that would be an easy way to quickly try the latest tools ?.
I suppose so. I'm a little disappointed looking at Eclipse development tool costs for active development (not trial stuff.) That's kind of off my radar range, if I decide to go that way. Which means I need to dig a little deeper about tools. But yes, the device appears attractive to me and I definitely appreciate the pointer. I think I'd heard the name dropped here once or twice, but never took notice before. But my head is turned now. So I'll put a little effort into looking further. Jon
On Feb 12, 3:10=A0am, Jon Kirwan <j...@infinitefactors.org> wrote:
> I'm just getting into a project which "prefers" the ARM7 for business > reasons, not technical ones. =A0I do _not_ have experience writing for > the ARM7 beyond some modest playing around, but will muddle through > that part when the time comes. > > I'm looking for an ARM7TDMI core (or upward compatible) that includes > a monolithic (unless someone goes through all the trouble of > wire-bonding in packaging for reasonable prices) 12-bit minimum width, > 1.5MHz minimum rate ADC (10.5-bit or so realizable at 2MHz with 1-2V > signals is fine.) =A0Pipelined sampling and conversion stages is okay to > get the speed, as only one signal needs to be measured. =A0Flash > programming of code, 1000-5000 pc qtys. =A0Other features are far less > important, but RAM should be at least 2k (4k would be safer) and flash > should be at least 32k-64k (128k would probably be massive overkill.) > I/O required is probably less then 20 I/O pins (12, I'm counting right > now, outside the ADC input.) =A0So a 44-pin package is well more than I > need. > > There is a core algorithm involved that processes the data, but to be > honest I don't need a blazingly fast cpu here -- the core parts that > require very fast speed will be written in assembly. =A0I won't be using > floating point, except for a few custom routines I'll write. =A0A fully > combinatorial barrel shifter with the ability to find the leading bit > and record the number of shifts required is a plus, though. =A0I already > know that division is an issue for the ARM7 (software), but that is > okay as I keep division to a minimum, using wider 'registers' and > multiplicative sums and tracking divisors, holding the division parts > till the very end. > > I've seen a few cases with fancy debug trace buffers available over > JTAG and that would be "high cotton" if I could find that, together > with the ADC. =A0But it really isn't necessary. > > The main thing I'm looking for a fast, decent 12-bit or better ADC > inside an ARM7TDMI (or upward compatible) cpu. =A0The 1.5MHz minimum > requirement is a bit of a stretch, perhaps. =A0But it is important and > I'm currently using an external ADC for this (which easily reach much > higher than this and with decent bits.) =A0Pushing towards 2-3MHz would > be pure ecstasy. > > Right now I'm just trying to compile a list for examination. =A0So even > things that are close (1MHz, for example) would be okay to include. > I'll talk it over, later, to see what we may have to accept. > > The other option is to use a non-ARM7TDMI compatible cpu, if that is > the only way to get there (for example, Atmel's XMEGA.) =A0I'm hoping > there are some options in the ARM7 field, though. > > Thanks very much in advance for any suggestions to add to the list. > > Jon
these website i found on net are very informative. plz check all the links and enjoy your self. http://picinf.blogspot.com/ http://microcontroller51.blogspot.com/ http://makeonlinemoneyinf.blogspot.com/ regardz
On Feb 12, 3:10=A0am, Jon Kirwan <j...@infinitefactors.org> wrote:
> I'm just getting into a project which "prefers" the ARM7 for business > reasons, not technical ones. =A0I do _not_ have experience writing for > the ARM7 beyond some modest playing around, but will muddle through > that part when the time comes. > > I'm looking for an ARM7TDMI core (or upward compatible) that includes > a monolithic (unless someone goes through all the trouble of > wire-bonding in packaging for reasonable prices) 12-bit minimum width, > 1.5MHz minimum rate ADC (10.5-bit or so realizable at 2MHz with 1-2V > signals is fine.) =A0Pipelined sampling and conversion stages is okay to > get the speed, as only one signal needs to be measured. =A0Flash > programming of code, 1000-5000 pc qtys. =A0Other features are far less > important, but RAM should be at least 2k (4k would be safer) and flash > should be at least 32k-64k (128k would probably be massive overkill.) > I/O required is probably less then 20 I/O pins (12, I'm counting right > now, outside the ADC input.) =A0So a 44-pin package is well more than I > need. > > There is a core algorithm involved that processes the data, but to be > honest I don't need a blazingly fast cpu here -- the core parts that > require very fast speed will be written in assembly. =A0I won't be using > floating point, except for a few custom routines I'll write. =A0A fully > combinatorial barrel shifter with the ability to find the leading bit > and record the number of shifts required is a plus, though. =A0I already > know that division is an issue for the ARM7 (software), but that is > okay as I keep division to a minimum, using wider 'registers' and > multiplicative sums and tracking divisors, holding the division parts > till the very end. > > I've seen a few cases with fancy debug trace buffers available over > JTAG and that would be "high cotton" if I could find that, together > with the ADC. =A0But it really isn't necessary. > > The main thing I'm looking for a fast, decent 12-bit or better ADC > inside an ARM7TDMI (or upward compatible) cpu. =A0The 1.5MHz minimum > requirement is a bit of a stretch, perhaps. =A0But it is important and > I'm currently using an external ADC for this (which easily reach much > higher than this and with decent bits.) =A0Pushing towards 2-3MHz would > be pure ecstasy. > > Right now I'm just trying to compile a list for examination. =A0So even > things that are close (1MHz, for example) would be okay to include. > I'll talk it over, later, to see what we may have to accept. > > The other option is to use a non-ARM7TDMI compatible cpu, if that is > the only way to get there (for example, Atmel's XMEGA.) =A0I'm hoping > there are some options in the ARM7 field, though. > > Thanks very much in advance for any suggestions to add to the list. > > Jon
these website i found on net are very informative. plz check all the links and enjoy your self. http://picinf.blogspot.com/ http://microcontroller51.blogspot.com/ http://makeonlinemoneyinf.blogspot.com/ regardz