Maker Pro
Maker Pro

Best choice of controller + IDE (Linux) for use with MMC?

R

Richard Rasker

Hello,
As mentioned in a previous post, I need to store non-trivial amounts of data
(> 100kB) over longer periods of time, using a stand-alone controller-based
system.
I got the advice here to look into MMC cards, which, contrary to SD cards,
don't require licensing and other strings attached.

Now I've taken a more in-depth look at what's involved in using MMC cards,
and I find that I the PIC controllers I'm used to (the 16F series, mostly)
are completely unsuitable -- especially FAT support requires more far
program and data memory than available in this series.

For the same reasons, I need to migrate to a C-based development environment
(so far, I did most things in assembly), with a possible extra complication
that I use Linux exclusively.

So I have a few more questions:
- What controller family (brand, types) would be best suitable for the job?
- what development environments are available under Linux?
- What hardware tools are available for use with Linux?

Since I don't expect to be working on this type of projects on a daily
basis, I don't want to spend many thousands of dollars on development
stuff -- this data acquisition project is a one-off, and I have no similar
future projects on the horizon.

Thanks for any hints and suggestions,

Best regards,

Richard Rasker
 
N

Nico Coesel

Richard Rasker said:
Hello,
As mentioned in a previous post, I need to store non-trivial amounts of data
(> 100kB) over longer periods of time, using a stand-alone controller-based
system.
I got the advice here to look into MMC cards, which, contrary to SD cards,
don't require licensing and other strings attached.

Now I've taken a more in-depth look at what's involved in using MMC cards,
and I find that I the PIC controllers I'm used to (the 16F series, mostly)
are completely unsuitable -- especially FAT support requires more far
program and data memory than available in this series.

For the same reasons, I need to migrate to a C-based development environment
(so far, I did most things in assembly), with a possible extra complication
that I use Linux exclusively.

So I have a few more questions:
- What controller family (brand, types) would be best suitable for the job?

NXP has a broad range of ARM controllers. Very cost effective as well.
- what development environments are available under Linux?

Codesourcery.com has GCC compilers for free for several platforms.
- What hardware tools are available for use with Linux?

The NXP ARM controllers only need a serial port to program them. There
is a simple tool for Linux: http://www.pjrc.com/arm/lpc2k_pgm/
Since I don't expect to be working on this type of projects on a daily
basis, I don't want to spend many thousands of dollars on development
stuff -- this data acquisition project is a one-off, and I have no similar
future projects on the horizon.

Thanks for any hints and suggestions,

I could take some work off your hands. I use NXP's ARM controllers
almost exclusively.
 
S

Spehro Pefhany

Richard, I cannot remember the details but I recall something about avoiding
the FAT reqirements by using a single large file on the MMC cards, allowing
use of low end pic's. If this is just a one off project it may be worth you
having another look at it.

IIRC you can find code to use SD cards in SPI mode, including a FAT
file system, for the PIC24, which is pretty cheap and easy to use. The
C compiler is free forever if you don't use optimization, AFAIR (but
check license terms if that's important to you). The Windows-based IDE
is free. I'm sure there is info out there for Linux, but I'm not
familiar with it. You can also implement a USB host and use a flash
drive mass memory device, with a somewhat higher end micro.

All this kind of flash memory has an upsetting tendency to just go
away for substantial periods of time when you write to it (as much as
hundreds of ms), even though the peak and average throughput may be
quite high, so make sure you use a micro with enough RAM to buffer
your data for a goodly amount of time.
 
R

Richard Rasker

John said:
....

Do you need a file structure, or can you just dump your data
sequentially or in blocks to storage? You can buy a Numonix M25P16
16Mbit/2M bytes SO8 serial flash chip for a dollar or so and interface
to it through 4 port pins, SPI or just bit-bang.

I've thought about such a solution, but the main requirement is that the
user must be able to read (and erase) stored data with as little hassle as
possible, in a more or less universal way. And I find that the best way to
do this is to use an MMC card.

A decade ago, I probably would have opted for a flash chip, a serial
(RS-232) connection, and a handful of simple commands to retrieve the data.
However, serial ports are getting increasingly rare these days, especially
on laptops, so that isn't a viable solution any more.

Some sort of USB interface would in fact be favourite, but then I'd still
have to store data in a file system, and/or create host drivers to read it
from a flash chip -- which would mean even more overhead compared to the
MMC card solution.

Richard Rasker
 
R

Richard Rasker

Nico said:
NXP has a broad range of ARM controllers. Very cost effective as well.


Codesourcery.com has GCC compilers for free for several platforms.


The NXP ARM controllers only need a serial port to program them. There
is a simple tool for Linux: http://www.pjrc.com/arm/lpc2k_pgm/


I could take some work off your hands. I use NXP's ARM controllers
almost exclusively.

This sounds really interesting, I'll think about your suggestion, and your
offer for assistance -- I may not have any similar projects coming up right
now, but in my experience, new applications materialize almost instantly as
soon as I acquire a new skill or technological advancement. So chances are,
you'll hear from me shortly.

Thanks already, best regards,

Richard Rasker
 
R

Richard Rasker

Spehro said:
....
All this kind of flash memory has an upsetting tendency to just go
away for substantial periods of time when you write to it (as much as
hundreds of ms), even though the peak and average throughput may be
quite high, so make sure you use a micro with enough RAM to buffer
your data for a goodly amount of time.

No problem there. At the most, I need to write one 512-byte block every two
or three minutes or so, for a total of one hour per day max.
The only time I ever had trouble in this area was with a Windows Vista
machine, which would lapse into seconds or sometimes even minutes of
unresponsiveness upon even the slightest attempt at data transfer. And that
problem was easily fixed by installing Linux.

Richard Rasker
 
H

hamilton

Hello,
As mentioned in a previous post, I need to store non-trivial amounts of data
(> 100kB) over longer periods of time, using a stand-alone controller-based
system.
I got the advice here to look into MMC cards, which, contrary to SD cards,
don't require licensing and other strings attached.

Now I've taken a more in-depth look at what's involved in using MMC cards,
and I find that I the PIC controllers I'm used to (the 16F series, mostly)
are completely unsuitable -- especially FAT support requires more far
program and data memory than available in this series.

For the same reasons, I need to migrate to a C-based development environment
(so far, I did most things in assembly), with a possible extra complication
that I use Linux exclusively.

So I have a few more questions:
- What controller family (brand, types) would be best suitable for the job?
- what development environments are available under Linux?
- What hardware tools are available for use with Linux?

Since I don't expect to be working on this type of projects on a daily
basis, I don't want to spend many thousands of dollars on development
stuff -- this data acquisition project is a one-off, and I have no similar
future projects on the horizon.

Thanks for any hints and suggestions,

Best regards,

Richard Rasker

I have just finished an ATmega32 controller with an SD card interface.

The SD card FAT16/FAT32 code takes up less that 8K of code space.

If you going to re-design the board anyway, may as well use debugged code.

http://www.roland-riegel.de/

hamilton
 
R

Richard Rasker

hamilton said:
I have just finished an ATmega32 controller with an SD card interface.

The SD card FAT16/FAT32 code takes up less that 8K of code space.

If you going to re-design the board anyway, may as well use debugged code.

http://www.roland-riegel.de/

hamilton

OK, great, thanks, this looks like the easiest solution so far -- the one
where someone else has done all the hard work :)

I'll definitely look into it, and if I decide to use it and redesign the
board (it'll be SMD stuff all around), the least I could do is offer you a
board as well -- built according to your specifications, of course (.

Anyway, I'm very pleased with all the great responses so far. I'll take a
few days to check things out, before deciding exactly what to use.

Richard Rasker
 
R

Richard Rasker

Nico Coesel wrote:


[snip]
I could take some work off your hands. I use NXP's ARM controllers
almost exclusively.

Hello again Nico,

I'm quite interested in your offer, but perhaps my e-mail to your address
hasn't reached you. Please substitute 'spamtrap' with my last name if you
want to send me an a-mail message.

Thanks again, best regards,

Richard Rasker
 
Top