How to use one crystal to clock multiple props?

MarcGMarcG Posts: 14
edited February 2011 in Propeller 1 Vote Up0Vote Down
I was wondering how I can have one crystal, clock multiple props.

Will this work... Can I daisy chain the XO pin of one prop to the XI pin of another and continue this way for a total of 10 props spread out across a 17 inch span. (See attached PDF.) If it will work, then would I set the slave props OSCMx register to XINPUT?

If above idea won't work, or if there is a better way. please let me know. Thanks

Comments

  • 13 Comments sorted by Date Added Votes
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 20,602
    edited February 2011 Vote Up0Vote Down
    No, you can't do it that way. The XO pin doesn't have enough drive and should never be used to drive a long trace. It would be better to dedicate an output pin from the master device to drive the XI pins of the slave devices.

    -Phil
    “Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.

    -Antoine de Saint-Exupery

    We had many discussions at the galley table and there had been many honest attempts to understand each other's thinking. There are several kinds of reception possible. There is the mind which lies in wait with traps for flaws, so set that it may miss, though not grasping it, a soundness. There is a second which is not reception at all, but blind flight because of laziness, or because some pattern is disturbed by the processes of the discussion. The best reception of all is that which is easy and relaxed, which says in effect, "Let me absorb this thing. Let me try to understand it without private barriers. When I have understood what you are saying, only then will I subject it to my own scrutiny and my own criticism."  This is the finest of all critical approaches and the rarest.

    The smallest and meanest of all is that which, being frightened or outraged by thinking outside or beyond its pattern, revenges itself senselessly; leaps on a misspelled word or a mispronunciation, drags tricky definition in by the scruff of the neck, and, ranging like a small unpleasant dog, rags and tears the structure to shreds.


    -John Steinbeck, The Log from the Sea of Cortez
  • Mike GreenMike Green Posts: 22,342
    edited February 2011 Vote Up0Vote Down
    You can

    1) Have a separate crystal for each Propeller
    2) Designate one Propeller as master and use an I/O pin for a clock. This requires that the program in that Propeller initialize the I/O pin and one of the cog counters in the "main" cog so that the I/O pin outputs the necessary clock.
    3) Have a single external crystal oscillator that's connected to each of the Propellers' XI and set up all the Propellers with XINPUT clock mode.

    Note that the Propellers initialize themselves using the fast internal RC clock. Once this is done and a program is loaded from EEPROM or an attached PC, the Prop switches over to whatever clock is specified in the program.
  • jazzedjazzed Posts: 11,791
    edited February 2011 Vote Up0Vote Down
    I've used the XO side to drive a buffer which in turn drives one or more other Propellers on the XI and will be doing it again soon since I need to have synchronized Propellers. Works just fine.
  • MarcGMarcG Posts: 14
    edited February 2011 Vote Up0Vote Down
    Thanks for the responses. I will probably go for using a crystal oscillator feeding all the props XIN pins.
  • Toby SeckshundToby Seckshund Posts: 2,009
    edited February 2011 Vote Up0Vote Down
    This is a common question. When I tried to do this I fell foul of the Prop that had the Xtal being separately reset, this left the slave Prop clockless whilst the master went through its RC Fast reboot. The slave seldom picked up again with out a reset of its own.

    On common powering up, and simutaneous resets the two of then got on fine.

    (this was with the Master being a Blade2 and the Slave being a PropCMD/VT100)
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 20,602
    edited February 2011 Vote Up0Vote Down
    Toby,

    'Interesting observation! When this happened, was the slave clock configured for PLL and/or did you have other PLL counters running? Without any PLLs running, I would think that the Prop would behave in a totally static manner. Of course, having PLLs with a 4-8 MHz capture range changes all of that. So it's probably not a good idea, in general, to drive one Prop from another's counter output.

    -Phil
    “Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.

    -Antoine de Saint-Exupery

    We had many discussions at the galley table and there had been many honest attempts to understand each other's thinking. There are several kinds of reception possible. There is the mind which lies in wait with traps for flaws, so set that it may miss, though not grasping it, a soundness. There is a second which is not reception at all, but blind flight because of laziness, or because some pattern is disturbed by the processes of the discussion. The best reception of all is that which is easy and relaxed, which says in effect, "Let me absorb this thing. Let me try to understand it without private barriers. When I have understood what you are saying, only then will I subject it to my own scrutiny and my own criticism."  This is the finest of all critical approaches and the rarest.

    The smallest and meanest of all is that which, being frightened or outraged by thinking outside or beyond its pattern, revenges itself senselessly; leaps on a misspelled word or a mispronunciation, drags tricky definition in by the scruff of the neck, and, ranging like a small unpleasant dog, rags and tears the structure to shreds.


    -John Steinbeck, The Log from the Sea of Cortez
  • Cluso99Cluso99 Posts: 12,308
    edited February 2011 Vote Up0Vote Down
    It is definately not the thing to connect props together using 1 xtal. Also be careful that the PLL failure does not bite. If you want to synchronise and use 1 xtal (e.g. the 5MHz), use the 74LVC1GX04.
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • BigFootBigFoot Posts: 259
    edited February 2011 Vote Up0Vote Down
    Our new dual Prop board just uses two crystals, this way you can reset one without effecting the other.
  • Toby SeckshundToby Seckshund Posts: 2,009
    edited February 2011 Vote Up0Vote Down
    Both of the Props were trying to do a x8 off of a 12MHz xtal, initially the same xtal but I soon put on a second.

    A common reset button would have probably worked.
  • jazzedjazzed Posts: 11,791
    edited February 2011 Vote Up0Vote Down
    Cluso99 wrote: »
    If you want to synchronise and use 1 xtal (e.g. the 5MHz), use the 74LVC1GX04.
    That's my plan except I need to use a 6MHz crystal. I used the inverter successfully on the OctoProp driving 4 slaves with a short clock line. I have 3 boards now that I need to test with the configuration. My reset is common.
  • Cluso99Cluso99 Posts: 12,308
    edited February 2011 Vote Up0Vote Down
    The 74LVC1GX04 will handle many values. Don't forget to read the spec and use the R's & C's suggested for reliable operation. There should be no problems driving 4+ (10 sould be workable at 6MHz) slaves without buffering. Use a larger track width and some protection ground traces if they run beside signal tracks.

    There is also a 74LVC1104 IIRC.
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Toby SeckshundToby Seckshund Posts: 2,009
    edited February 2011 Vote Up0Vote Down
    On some AVR bits I had done, using the internal inverter's output to feed the slave seemed ok. This was so because the xtal osc starts up on powering and keeps on going, even through resets.

    The Prop starts up using its internal RC clocks and then, code permitting, fires up the external xtal and PLL bits (powersaving I suppose). Even if the Prop is static, clock wise, the interuption did crash the second (VDU) Prop every time. If I had gone even cheaper and not put on the reset switches I may have never noticed.
Sign In or Register to comment.