Shop OBEX P1 Docs P2 Docs Learn Events
Any interest in multi-MCU stamp boards? — Parallax Forums

Any interest in multi-MCU stamp boards?

pemspems Posts: 70
edited 2008-09-20 22:24 in Propeller 1
Hi

I've realized that it can be very useful to have Propeller mated to another MCU with a totally different set of advantages.
For instance, have prop doing what it excels at i.e very time sensitive tasks, and have the other MCU doing comms, floating point data crunching, further data filtering, periphery, etc, while both being on the same physical board and connected with a speedy interlink.

I hope i am not out of line talking on this forum about integration of prop with other brand's MCU. I think that the community could benefit greatly from availability of a relatively cheap stamp-style module that has prop + let's say Cortex M3 based STM32, with bunch of headers and a USB connector on board.
I know i could use such module for a bunch of my projects. One doesn't even need the flash chip, as the prop program can be uploaded into it by the other MCU (i already wrote firmware to do that), with ability to load it faster than either from flash chip or through propplug @115200.
EDIT: how about being able to stream 1Msps ADC samples into prop through a synchronous serial link (using periph-to-periph DMA, while keeping the main core absolutely unloaded)

It would be great if somebody can help by designing and fabricating such board (i personally have no experience fabricating SMT pcb's, but i will help to the best of my ability). If there is enough interest, that somebody can make some cash on the side by fabricating and selling these boards to community (to justify this effort).
Then I will initiate (rather continue) an open-source effort to create a firmware framework for all this jazz.
Not sure how yet, but with such setup, it may even be theoretically possible to protect the content (i.e the prop program IP) to some extent (probably not completely though)

Here are some theoretical costs:
- QFP prop: ~$12
- STM32 (STM32F103RBT6 or even better STM32F103RET6 for the same price): ~$15
- passive components, crystals, usb connector, headers, regulators: perhaps $13?
- PCB (depends on volume of course): let's say $10 (3-4 sq inches of PCB)

projected total cost: around $50

For those who don't know, STM32 (cortexm3) is supported by gcc and a bunch of free/open source toolkits, so is quite enthusiast-friendly. CortexM3 arch Is much easier to program for than say ARM7 (i've tried both) and is expected to be the "8051" of the future (in terms of popularity).

(in no way i am affiliated with STM or ARM for that matter, just hoping for this to be useful to fellow prop enthusiasts)

Cheers

Post Edited (pems) : 9/19/2008 10:37:35 PM GMT

Comments

  • evanhevanh Posts: 15,658
    edited 2008-09-20 04:12
    They seems to be doing the same job. The ARM is traditional and GCC supported. The Prop would just be more pins for I/O. The STM32 has got a decent amount of MIPS and intensive interrupt and DMA handling. About the only thing the Prop could excel at is bit bashing something the that STM32 has missed.

    If I was already setup with one of these and was wanting more MIPS I'd be looking far higher end than the Prop.

    Looking at it from the Prop view is not much different. The Prop can do it all already. Maybe somewhat short on pins but that is a not so much a feature deficit as just the limit of the 32 I/O pins.


    Evan
  • hippyhippy Posts: 1,981
    edited 2008-09-20 04:22
    The only thing I feel missing from the Prop ( putting aside it could have more memory, run faster ) is in-built ADC. While that can be added through external ADC or sigma-delta it's just so much nicer ad convenient to be able to take an analogue signal straight into the chip.
  • ErNaErNa Posts: 1,751
    edited 2008-09-20 13:38
    I had a similar idea: it should be possible to have a mcu with flash, e.g.http://forums.parallaxinc.com/www.silabs.com/products/mcu/mixed-signalmcu/Pages/default.aspx. This mcu has (with a firmware) to emulate a flash memory, so the propeller uses the mcu as a the "normal" flash memory and on the other hand, it is a i/o-expander, a fpu or anything else. It also weakens the problem of IP-protection, the way that the propeller load an loader which then reads the encrypted program to the propeller and only inside the propeller the program is decoded.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-09-20 13:50
    hippy said...
    The only thing I feel missing from the Prop ( putting aside it could have more memory, run faster ) is in-built ADC. While that can be added through external ADC or sigma-delta it's just so much nicer ad convenient to be able to take an analogue signal straight into the chip.

    @hippy (you'll appreciate this) I think you are right on here..
    I've been looking at the popular ADC options for the Propeller and thinking that it might be
    easier to use something like the PICAXE to collect multiple ADC lines and pass them to the
    Propeller over a single serial connection. I'm I seeing the current ADC options as too complex?
    or does this sound interesting?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with a Propeller Protoboard?
    Check out: Introduction to the Proboard & Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • Brian FairchildBrian Fairchild Posts: 549
    edited 2008-09-20 14:25
    Oldbitcollector said...

    ... I'm I seeing the current ADC options as too complex?
    Surely using one of the I2C or SPI ADCs is the way to go? The Microchip MCP3221 single channel ADC is around $2 for a SOT23 device. If you want more channels, the Maxim MAX1112 gives you 8 8-bit channels for the same money.
  • RsadeikaRsadeika Posts: 3,837
    edited 2008-09-20 14:29
    I also looked into using the ADC, but found it to be way to complex. So, I used a Cubloc CB220 with a serial hook up to the Prop at 230400 BAUD, it worked out really well. I am thinking more of the Prop being a CPU, with some of these other processors doing the real work, I do not know how far that will go. The big problem is that there is no clean way of containtment for all this stuff.

    Ray
  • pemspems Posts: 70
    edited 2008-09-20 14:49
    don't get me wrong, I do acknowledge the fact that many things can be done on propeller. The question is at what cost? (in terms of resource utilization)
    I also acknowledge that there is SPIN which simplifies complexities of larger size code. But i see the greatest advantage of prop in very simple very repetitive operations (and write them in ASM with self-mod tricks). For instance, i think it's great there are x16 io connected 32bit counters/timers on a prop. No cheap MCU that i know of has that many. In fact, before i knew about prop, i thought the only way of having that many io mated counters would be to use a CPLD/FPGA, which i hear are much more tricky to master than prop.

    So while i am not saying things cannot be accomplished on a prop alone, I advocate extracting the full potential from the prop by restricting the tasks that run on it to the ones which map very well to the props architecture, while leaving everything else to "the other" chip.

    I've started with SiLabs f120. It was a great intRo into the embedded world, but i found the 8bit-ness a limiting and sometimes irritating factor. With 32bit modern mcu's costing same or less, there really is no reason to stick with 20yr old 8051 arch.
  • ConeheadConehead Posts: 12
    edited 2008-09-20 16:04
    I have attached two boards.· The first,·probe.pdf,·is a general purpose·board that I did for a client that uses a PIC to read from a TI ADS1256 24 bit A/D and send the readings.· The second, UTM.pdf,·is a board I am doing right now that uses the Prop to read from 3 ADS1256s, control 3 stepper motors and send the readings to a PC through an FTDI chip.· It also uses a PIC to expand the digital IO.

    To keep things simple, I am using a cog for each 1256 and each motor.· Ignore the MPG3904s and the resistors and capacitors.· They are just for static protection.

    The 1256 is a nifty A/D that reads four differential or 8 single ended channels at up to 30k samples per second.· The only problem with it is that the timing is a real bear to figure out.· I can't attach the PicBasic Pro program·for the client's board since he owns that, but I will post the ADS1256 SPIN object for the second board when it is finished.
  • ConeheadConehead Posts: 12
    edited 2008-09-20 16:58
    Please ignore the LTC1799 oscillator circuit connected to the prop in the UTM.pdf file.· It is incorrect.
  • hippyhippy Posts: 1,981
    edited 2008-09-20 17:38
    Oldbitcollector said...
    @hippy (you'll appreciate this) I think you are right on here..
    I've been looking at the popular ADC options for the Propeller and thinking that it might be
    easier to use something like the PICAXE to collect multiple ADC lines and pass them to the
    Propeller over a single serial connection. I'm I seeing the current ADC options as too complex?
    or does this sound interesting?

    PICAXE is what I've used, cheap and cheerful, easier to program than the equivalent vanilla PICmicro. PDIP so easy to work with and I don't need high-speed or high resolution ( 10-bits is good enough for me ). I don't need differential inputs or anything fancy, usually I just want to hang a set of pots on to control things etc.

    The comms is serial so just one I/O line, PICAXE sends a 'break' then churns out the readings for its ADC's, repeats. A Spin Cog bit-bangs in serial, filling an array of ADC readings synched to 'break'. Simple.

    Similar to what Conehead and Rsadeika are doing but low-tech to meet my low-tech requirements.

    I've also used PICAXE for text LCD control to get round 3V3 problems.
  • kwinnkwinn Posts: 8,697
    edited 2008-09-20 22:24
    I have found using more than one mcu (whether the same or different architectures) can make some projects much simpler. I am currently looking at using 3 Prop chips to upgrade an older piece of equipment ( it requires 40 counters ) and maybe even a fourth possibly different chip to act as a master. In a low volume custom app it makes more sense than trying to make one chip do everything. It would still be less expensive than using a CPLD/FPGA and the software would be simpler as well.
Sign In or Register to comment.