PDA

View Full Version : Any advice on multiple propellers



Chad George
03-24-2009, 07:29 AM
I'm considering using two propellers in a single design.

There are two main reasons:
1. I'm pretty sure I'm not going to have enough cogs and/or program space (there's a lot of peripherals)
2. I'm really short on pins and having to use alot of extra ICs to consolidate functionality (decoders, i2c I/O, mux's, etc)

I know there's been alot of discussion about general purpose parallel systems, but I'm looking for more specific advice on the best practices for a two propeller system.

Here's some questions I've been thinking about:
1. What is the best way to handle clocks?
- separate / isolated crystals
- 1 shared oscillator for both Props
- 1 crystal on one Prop with an I/O pin feeding the other prop's clock input

2. What is the best way to program and debug a two prop system with existing Tools?
- individual uarts on each prop (like FTDI's dual usb->serial, or 2 prop plugs)
- 1 uart shared between both props (some kind of switch to select 1 prop at a time)
- individual eeproms?
- 1 large (512K+) EEPROM connected to PropA, then emulate the EEPROM connection for PropB from the unused/upper portion of the EEPROM)
- one issue here is what happens when you have to debug both Props simultaneously...

3. What is the best way to communicate between the two Props (I know this is a loaded question)
- async serial
- sync serial
- is there a big advantage to having multiple "channels" of communication between the props or does this just complicate things more than its worth.
- parallel is probably not an option...I don't have enough pins.
- also how might the answer to question #1 play a factor here

Another design constraint I'm under is this circuit is going to be used for multiple projects. So one prop has to provide all the functionality for the basic/cheaper projects, then the second prop supports the extra peripherals for the more complex/expensive projects. There's almost certainly going to be a strong master/slave relationship between the two props if that makes any difference on people's insight on these topics.

Mike Green
03-24-2009, 08:23 AM
1) I'd go with two separate crystals. It simplifies things and you don't have to set up anything on a "master" Prop.

2) I'd use two PropPlug connectors and use one PropPlug at a time. First I'd debug one Prop, then the other. You could always use one PropPlug connector and jumpers. You could always have one Prop download to the 2nd connecting the 3 active leads on one Prop to 3 I/O pins on the 2nd Prop along with Chip's Prop-to-Prop downloader.

3) I'd stick with one async serial channel each way unless raw speed is vital. In that case, I'd use Beau's high speed SPI code. Multiple channels just complicates things unless there's a legitimate need for multiple simultaneous channels.

Harley
03-24-2009, 08:55 AM
Chad,

Just throwing in my 2¢ on this, as I have a two-Prop board mostly working. Because of number of I/Os required two Props had to be used. Here's my setup on your questions.

1. I'm using one 5 MHz crystal and in the 'master' Prop I'm using one counter to generate 5 MHz square wave. Downside, uses 1 pin on master. See AN1 for counter details.
2. Am using one 4 x 1 pin header for programming each prop; using PropPlug.
3. I'm using FullDuplexSerial to communicate between Props; only takes 2 pins each prop.

For debugging I also use TV_text to drive a monitor (a DVD player with video in jack; a Sony FX810, works great). Some variables from Prop#2 are returned to Prop#1 to aid in debugging. This helps a bit for the 'simultaneous' debugging situation. PASD for assembly code is used and ViewPort to view the I/Os in use.
http://forums.parallax.com/images/smilies/yeah.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko

Cluso99
03-24-2009, 02:37 PM
Chad,

See my TriBladeProp schematic on the thread in my signature link. My first thoughts were to use 1 xtal oscillator common to my original 6 prop design. But my updated design (3 props) uses separate xtals at about 50c so·not worth the trouble - besides I can always generate the clock on an output pin and wire it to the xtal inputs of the others anyway, but I lose a pin for no reason.

I have 3 separate PropPlug input headers and an on-board PropPlug circuit with an output header (actually the same). I have links to put them together for communications between the props. This makes it easy to confirm all props are working individually, then link them later. While I have code working in each Prop (all 3), I have not yet fitted the EEPROMs.·There is very little difference in price for the·24C512 versus 24C256, but a 24C1024 is nearly double the 24C512. If you require one prop to load another, don't forget you will need to control the other prop's reset line.

I am going to use high speed serial comms between the 3 props on 2 wires.·One prop has links to swap the comms and the·on-board PropPlug (PC) between P30 & P31 and P26 & P27.

Hope this·helps you http://forums.parallax.com/images/smilies/cool.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBladeProp (http://forums.parallax.com/showthread.php?p=786418), SixBladeProp (http://forums.parallax.com/showthread.php?p=780033), website (Multiple propeller pcbs) (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index (http://forums.parallax.com/showthread.php?p=778427))
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Chad George
03-24-2009, 08:43 PM
Thanks for the suggestions. Mostly you've all confirmed what I was thinking myself.

Has anybody had experience using an external oscillator to drive one or more Props (probably not much reason to use them with only one Prop).

What are the downsides or pitfalls to using one of these oscillators vs just a crystal (I'm guessing accuracy vs cost is one big reason).

I'm not planning on doing any video output, so the only thing I'm worried about timing wise is the async uart output (I like using Hanno's high speed serial stuff).

I seen a lot of talk previously about the "determinancy" (if thats a word) of the Propeller. I'm curious how practical it is to use this for synchronized serial between two props without having a serial clock signal (using the shared clock). Has anybody ever tried it? How well does it work?

mctrivia
03-24-2009, 08:57 PM
resonators work(ground middle pin and connect outsides to XO and XI) they are not as accurate though but accurate enough for most serial comunications. the real question is why when a crystal is supper acurate and only $1

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Need to make your prop design easier or secure? Get a PropMod (http://propmodule.com) has crystal, eeprom, and programing header in a 40 pin dip 0.7" pitch module with uSD reader, and RTC options.

Cluso99
03-24-2009, 08:58 PM
An oscillator vs xtal will give the same accuracy given the same specs (xxxppm). Oscillators are much more expensive.

There is thread discussing a high speed test done (by Chip or Beau??) transmitting and receiving between 2 props on 2 wires without xtal synchronisation at > 1Mbps (may have been >1MBps) using start+32bits+stop. The thread had a recent update (maybe listed in my TriBladeProp thread???).

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBladeProp (http://forums.parallax.com/showthread.php?p=786418), SixBladeProp (http://forums.parallax.com/showthread.php?p=780033), website (Multiple propeller pcbs) (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index (http://forums.parallax.com/showthread.php?p=778427))
· Search the Propeller forums (via Google) (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Bob Lawrence (VE1RLL)
03-25-2009, 02:10 AM
Cluso99 said...
There is thread discussing a high speed test done (by Chip or Beau??)


It was Beau. Here you go:

http://forums.parallax.com/showthread.php?p=691952

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Aka: CosmicBob

Bill Drummond
03-25-2009, 04:57 AM
How about a Prop/ARM board. The prop for HID, SD storage and the ARM for Processing and AtoD.