Which uC and other great newbie questions? - Page 2

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

Translate This Thread From English to

Threaded View
Re: Which uC and other great newbie questions?

Quoted text here. Click to load it

A strange one.  ;)  The interface module I've got planned for a little
ways down the track will be the main code hog culprit.  And I've got to
make sure chunks of code can be upgraded on-the-fly, without missing a
beat.

Each node will be designed to operate independently, or in a network.
I've also got a couple distribution-related side projects for which I'd
like to use the extra processor time.  In that regard, code banking could
probably help to add a layer of security, but I don't much like the
clunkyness it would introduce.

One of the modules in particular would be considered "realtime", and will
demand quite a lot of attention from the CPU.  Especially if there's more
than one of them on that node (n+1 interrupts, 100 times a second, unless
I can figure out a better way -- as it is I'm going to have quite a bit of
fun dealing with cases where two interrupts fall excessively close
together). Prioritized interrupts would be of great benefit.  I'm planning
to keep the number of modules on a node to no more than 8, so they can be
addressed by physical bit-shifting in the bus.  900 interrupts a second
may not be all that many, but I don't want them stepping on each others
feet, and it still needs room for network data flow, etc.

Anyhow, so the code is strictly limited to 64k, while the paging system
allows the data to range over however much space is needed?
That may well fit...  I was going on the assumption that the 64k window
would have to be divided between code and data.  It's paging code sections
that I'm particularly dubious about.  A true split code/data system is
something I haven't had much opportunity to play with yet, so I'm a little
unfamiliar with the details there.

From a software side, most of this little project is already mapped out.
I'd planned to start it in my final year of university.  Hardware and
basic modules.  Then if I was lucky, expand on it into a few deeper issues.


Quoted text here. Click to load it

Updates shouldn't be that often anyhow...  Only when modules are changed,
or code updates injected.  And I don't really expect it to still be around
in 10 years anyhow...  Someone's got to test the next model!  ;)


Right now I'm thinking of looking very hard at 32-bit uC's...  See if any
of them can be used fairly easily, and at relatively low speeds.  Or
perhaps that 24-bit Z80...  The version I produce for other people will
spend 90% of its time idling, and probably will fit quiet nicely into 64k.
But the initial version, with excess debugging features, and a host of
optional extras I'm planning on implementing...  I'm rather dubious about
it all fitting into such a tight space.


Fredderic

Re: Which uC and other great newbie questions?


Quoted text here. Click to load it

Take a look at the philips arm parts.
http://www.semiconductors.philips.com/markets/mms/products/microcontrolle =
rs/key_solutions/32bit/index.html
http://www.semiconductors.philips.com/pip/LPC2106.html
 ARM7TDMI Family 1.8V High Speed Low-Power Flash 60MHz operation,20%
zero wait-state Flash, on-chip Real-Time Monitor and Trace20%

http://www.semiconductors.philips.com/news/content/file_999.html
 up to 256K bytes of embedded Flash memory, 10-bit A/D converters, 16K =
of SRAM, pulse width20%
modulation (PWM) timers, UARTS, serial peripheral interface (SPI) and up =
to20%
46 General-Purpose Input/Outputs in a small outline 64-pin package.20%


For a 16 bit micro look at the TI msp430 series.
(developed from the pdp11's) http://www.ti.com/sc/msp430

Even though you say you need 16 bit, I'm sure you could easily do what =
you need with an 8 bitter.
Have a look at either

cygnal   up to 100 mips 8051 with up to 1Mbit adc, some with usb
http://www.cygnal.com/products
http://www.cygnal.com/products/datasheets.htm
http://www.cygnal.com/about/news_20030908.htm
http://www.cygnal.com/products/C8051F120.htm
http://www.cygnal.com/products/C8051F060.htm

or dallas maxim especially 80c400  and or their tini boards
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3609
http://www.ibutton.com/TINI/index.html

For 8 or 16 bit advantage of msp430 or avrs is a gcc port.

Most 32 bit micros have a gcc port.

May also be worth your while having a look at some of the dsp's as well.
One of the dsp/micro hybrids may also suit your application.
http://www.bdti.com/faq/3.htm#32
http://www.bdti.com/faq/dsp_faq.htm
Have a look at news:comp.dsp

Had a few people rave about http://www.newmicros.com isopod
but haven't came across hardly anyone using them.

Alex

Re: Which uC and other great newbie questions?
Think I've got some reading to do.  ;)


Fredderic

Re: Which uC and other great newbie questions?
Quoted text here. Click to load it
[...]
Quoted text here. Click to load it
Not exactly. The code is limited to 128 KB(64k x 16, while RAM is
addressed in bytes), but the data address range limits external RAM to
~60 KB (and external RAM access is 2x slower than internal) + 4 KB
internal, so you must use banks for more. Harvard means no cute
self-modifying code (hehe), but the 128 can still program itself -
you'll have to make sure it fits your needs, though, since i think the
update code must be restricted to a certain address range.

For your networking, have you taken a look at standards? For example,
RS-422/423/485 (all with ranges up to 4000 ft and multiple receivers)?
That'd let you take advantage of the built-in USARTs and save some
interrupts.

Re: Which uC and other great newbie questions?

Quoted text here. Click to load it

So how does code addressing work?  Is it 20-bit, or paged?

The 4K internal ram would probably be used exclusively by the OS (for want
of a better term).  Could always just give each module its own 64k data
page.  ;)


Quoted text here. Click to load it

I've been pointed at the RS-4xx group...  Haven't had a chance to delve
into them very far though...  Still processing all the other suggestions.

4000ft is quite a distance...  How do they cope with two or more trying to
transmit at the same time?  I'm guessing I'd have to set up some kind of
arbitration.


Fredderic

Site Timeline