Newbie Recommendation

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hello,

What would you all recommend for a beginner looking to get into embedded
systems programming for somebody with Ix86 Assembly and C experience,
but relatively no experience in electronics?

The two most popular I've heard of are the Atmel (Atmega RISC based
processors) as well as the various PIC line of microcontrollers.

I'm looking for something capable of dealing with analog signals from
various devices (such as an ultrasonic range finder), as well as PWM's
to control servos.  I2C isn't really necessary, but I wouldn't turn a
processor down just because it's there.  I also have no preferences
between the Harvard and von Neumann architectures.  I'd really prefer to
stay away from BASIC in general in favor of developing code in either
Assembly, C, or a combination of the two.

What do you recommend?

Thank you,

--
Sean

Re: Newbie Recommendation

Quoted text here. Click to load it


If you want to go 8-bit, then I would say that the AVR series is the
best choice.  It is probably the most "C friendly" 8 bit chip.  It
does have a Harvard architecture, which can make programming with lots
of string constants a bit awkward in C.

However, if I was starting out I would go directly to the 32 bit ARM
chips, e.g. the LPC2000 series. ARM looks like becoming the industry
workhorse for embedded systems, much like the 8051 is/was. Just about
every cpu manufacturer seems to make them in some variation. The price
premium for 32 bits vs 8 bits seems to be vanishing (except for high
volume manufacturing).

Both of these product lines (AVR and ARM7 / LPC2000) have a large
active user community with high quality free tools (gcc) and
inexpensive development boards.

--

John Devereux

Re: Newbie Recommendation
Quoted text here. Click to load it

To be honest, I didn't actually even consider 8-bit versus 32-bit
architectures.  That's probably something I should give a little
consideration to.

Quoted text here. Click to load it

I keep hearing a lot about the arm processors, but I know next to
nothing about them (all I know is that it appears that multiple
manufacturers have ARM-based CPU's, but I have no clue what ARM actually
is, yet).  I'll have to do some research because I'm not even sure what
they're primarily targeted at or how to program them (although after
reading on in your message, it appears that gcc will work just fine).

Quoted text here. Click to load it

One of the things that lead me to the AVR in the first place was the
large number of free tools available (e.g. gcc).

That was great information.  Thank you much!

--
Sean

Re: Newbie Recommendation
I highly recommend Zilog Encore microcontrollers. They have an incredible
deal (US$40) for a development kit, including IDE with C/Assembler, lots
of great documentation and inexpensive powerful uC's.
http://www.zilog.com/products/family.asp?fam23%2



Re: Newbie Recommendation
Quoted text here. Click to load it

I have to admit that I hadn't heard of these processors, but after
reading what they have to offer, this might be exactly what I'm looking
for --inexpensive and simple development boards to get me started
quickly.  And they all appear to come standard at 20 MHz, which is more
than enough for my current needs.

I'll definitely include these processors in my research and give them
some serious consideration.  Thank you!

--
Sean

Re: Newbie Recommendation
On Wed, 28 Sep 2005 07:46:08 -0400, "Fao, Sean"

Quoted text here. Click to load it

Actually, since you mention both analog signals and servo control, and
you come from a 32-bit background, take a look at TI's C28xx family of
DSPs.

http://dspvillage.ti.com/paramsearch/docs/parametricsearch.tsp?&familyId51%0&totalCount16%8&showAdditionalParameters=no&lc20%01216&lc20%00062&lc20%01226&lc20%01227&lc20%01215&lc20%00059&lc20%01213&lc20%01211&lc20%01212&lc20%00061&lc20%00603&lc20%00607&lc20%01218&compare=yes&download=yes&sort=yes&customize=yes&paramResults=yes&paramCriteria=yes&familyTree=yes&military=no&baSystem=yes&paramTable=no&sortOption=&sortMode=&searchPaths10%00322&searchPaths10%00326&searchPaths10%00044&pageId44%&templateId51%21&navigationId12%447&family=dsp&paramTable=no&military=no&compare=yes&download=yes&sort=yes&customize=yes&paramResults=yes&paramCriteria=yes&familyTree=yes&military=no&baSystem=yes&paramTable=no&sortOption=&sortMode=&searchPaths10%00322&searchPaths10%00326&searchPaths10%00044&pageId44%

Watch out for line wrap!

16 analog channels for ADC, quadrature encoder inputs (if needed), and
up to 12 PWM outputs, can drive six brush DC motors or two 3-phase
motors simultaneously.

Has SPI built in, not I2C, but you might be able to do I2C with the
McBSP serial peripheral.  Check the app notes.

--
Jack Klein
Home: http://JK-Technology.Com
We've slightly trimmed the long signature. Click to see the full one.
Re: Newbie Recommendation
Quoted text here. Click to load it

Ever since I played with my first TI-8x calculator, I've always wanted
to learn how to program on the TI CPU.  They were always incredibly fast
and --as I understood it-- had great floating point capability.  The
thing that always steered me away from these processors, however, is
that they were always priced more than double that of other processors I
was considering.

Quoted text here. Click to load it

The thing here that caught my eye is that you mention quadrature encoder
inputs.  If I'm not mistaken, this is how a ball mouse works, right?
The reason I ask is because at an instrument company I used to work for,
they developed robots that had to detect both direction of movement, as
well as provide the ability to "count" the number "steps" in any
direction that an arm was moved (intentionally moved with software or
unintentionally moved by a foreign object forcing the arm to move).  As
far as I know, the engineers just simply used the analog channels
available on the processor (I could be wrong).  Is this possible?  If so
--and you don't mind a little explanation-- how exactly do you benefit
from having a quadrature encoder input?  Does it simplify the processes
or is this the only way to detect such movements?  Basically, what I'm
wondering is whether or not it's possible to implement the same design
using the analog channels (possibly with a little more work).

I could potentially have a project (in the distant future, of course)
that would require quadrature encoder inputs, so this is a very
interesting find, for me.  Naturally, all this assumes that I'm even
talking about the right thing ;-).

Quoted text here. Click to load it

As of now, I2C isn't really a big concern of mine.  I probably only
mentioned it because it was something I recognized from editing the
Linux kernel configuration for my system and knowing that it provided
the ability to read temperature and fan speed for various devices in my
PC.  I have seen some pretty cool I2C devices online, such as
ultra-sonic range finders, and such.  For now, though, I prefer to
implement these peripherals on the analog channels.

Thank you much for your response.

--
Sean

Re: Newbie Recommendation

Quoted text here. Click to load it

Well the TI-8x calculators use Zilog Z8 CPUs.... not TI CPUs :)

or, at least they did when I learned to program them in assembler a few
years back....

--buddy

Re: Newbie Recommendation
Quoted text here. Click to load it

You can do it in software with two digital inputs. But if the software
doesn't respond quickly enough, it can miss steps, which can of course
be bad if you need to keep track of your absolute position. The
hardware needed to handle quadrature inputs is very simple, though, and
can handle much faster rates, all else being equal.

(All that quadrature means is that you have two sensors connected
to the same wheel or shaft, but one of them is offset by ninety
degrees.  The offset lets you tell whether the shaft is rotating
clockwise or counterclockwise, according to whether sensor #1 is
giving you pulses slightly ahead of sensor #2, or behind. At that
point it's just a matter of counting pulses, and counting up or
down depending on which way the shaft is going.)

--

Re: Newbie Recommendation

Quoted text here. Click to load it

You could have answered the second question as well.

The quadrature encoder is quite simple as has been indicated and is often
quite innexpensive to implement. It can be done with optical or magnetic
proximity sensors.

An alternative position/motion sensor is the resolver or synchro motor
which provides an indication of absolute position of its shaft. For linear
motion the LVDT is a similar style of position sensor.

--
********************************************************************
We've slightly trimmed the long signature. Click to see the full one.
Re: Newbie Recommendation
Quoted text here. Click to load it

Well, the CPU in TI calculators are very _slow_ and have very poor
floating-point performance :)

Al

Site Timeline