Re: Advice on uC selection wanted - driving microsteppers etc



"Peter Dickerson" <firstname.lastname@xxxxxxxxxxxxxxxx> wrote in message
news:LvqQj.70207$Ff4.33555@xxxxxxxxxxxxxxxxxxxxxxx
I've just got involved in a project that basically doesn't work. All
sorts
of design issue. It needs a complete overhaul of the electronics. I
have
experience with ARM based devices having just completed a product range
of
12 different products based on the same NXP (nee Sharp) chip. So for
this
new project I hope to use a NXP or Atmel single chip device.

This new project needs to drive two normal stepper motors, which I can
do
with GPIO, and two micro-stepper motors. The micro-steppers need to
accelerate and run with no jitter, so I need a programmable clock pulse

and a direction pin per motor, plus a reset/powerdown GPIO. A solution

that can directly drive a H-bridge would be good, too, because then I
can
use a cheap H driver rather than a micro-stepper special. I also need a

USB device that looks like a serial port - I've used FTDI into a UART
before and am happy with that because there is no PC driver development

and no USB stack on the uC, but am happy for it to be integrated as
long
as all the software is easily available because I don't have the time
or
the inclination to handle it myself. There is a bunch of other stuff
that
is basically opto end-stop sensors and other GPIO and an SPI type
interface to an ADC.

My experience with other projects in a similar vein and quick estimates

suggest I need about 256K Flash and 64K RAM. The thing has to do quite
a
lot of calculations to do but any half decent ARM7 would have no
trouble.
If I'm wrong with my estimates it would be nice to have a pin
compatible
upgrade/downgrade :-) I suspect 32K RAM might fit but I'm not confident

enough to go with that just yet.

Because the timescales are tight I need something that is easy to get
up
and running and doesn't have too many surprises - I don't want to
discover
late in the day that timers have to be stopped to be updated etc. So,
if
you have any suggestions and any experience with devices to consider
that
would be great. I am not wedded to ARM but I would need some convincing
to
move from tools and performance I'm used to. Currently I use GCC and am

entirely happy with it.

OK, I'll follow up on myself. I am now looking at the STR911FAW42X6 (or
even
STR912FAW44X6) from ST. It has 96K RAM and 256K+32K Flash (or 512K+32K).

Thats more than I budgeted for and at 96 MHz is about twice the speed I

I'd suggest looking at Renesas for a company with a great track record for
EOLed silicon. A lot of other chip makers seem to be going in and out of
the hands of venture capitalists, so long-term support for silicon may be
in question at other top-tier suppliers.

You'll probably want t achip with lots of PWM and DMA to off-load the
motor control processing. I've seen microstepping done with very old 8 bit
controllers - and it was done well. But you need the right peripherals.

The M16C/M32C series offers a lot of options that I think you'd like: 15+
independent 16 bit PWM channels; lots of timers; very flexible vectored
interrupt control built into the core (not a peripheral); and many DMA
channels you can allocate. Check out the M32C/87 chip here:
http://america.renesas.com/fmwk.jsp?cnt=m32c80_series_landing.jsp&fp=/products/mpumcu/m16c_family/m32c80_series/

Another option that includes the USB device function is the H8S series
(from Hitachi lineage). The H8S/2215R has a USB device peripheral, multiple
PWM channels (using the 8 and 16 bit timers); and DMA. But perhaps the best
thing is the Data Transfer Controller which would let you set up "channels"
to feed PWM values to the timers (like DMA).
http://america.renesas.com/fmwk.jsp?cnt=h8s2215_root.jsp&fp=/products/mpumcu/h8s_family/h8s2200_series/h8s2215_group/

If you are familiar with using GCC compilers, you'll have no trouble
moving to an H8 or M32C based on your ARM7 experience - and the effort
might even be less than moving to an ARM from ST.

--CG
.



Relevant Pages

  • [RFC 4/7][PATCH] AMBA DMA: Add a driver module for the DMA controller.
    ... The ARM PL080 PrimeCell AMBA DMA controller is used as an example. ... In addition to the driver files, ... int length, unsigned int packet_size, pl080_lli * setting){ ...
    (Linux-Kernel)
  • Re: degrading performance in system
    ... >> PC seems to stutter, this affect video, sound, control everything it ... >> seems to take complete control of my PC, I'm pretty sure it used to be ... If the system encounters a series of errors on the ide bus, ... > it reverts the hard drive to Pio instead of DMA. ...
    (uk.comp.homebuilt)
  • Re: A simple question about DMA, please help me.
    ... They negotiate for control ... you don't have a DMA transaction. ... I do have to disagree with the statement: "you don't have a DMA ... The term "DMA" simply indicates data transfer between memory and an I/O ...
    (comp.lang.asm.x86)
  • Re: degrading performance in system
    ... > PC seems to stutter, this affect video, sound, control everything it ... > seems to take complete control of my PC, I'm pretty sure it used to be ... If the system encounters a series of errors on the ide bus, ... it reverts the hard drive to Pio instead of DMA. ...
    (uk.comp.homebuilt)
  • Re: WDF Scatter/Gather Elements Number
    ... note that the SG list size is controlled by the OS, KMDF does not control it nor influence it. ... For Windows XP, WDF 1.5, we noticed that for small DMA lengths (less ... descriptors, plus another last call with 1 or 2 SG descriptors. ...
    (microsoft.public.development.device.drivers)