Shop OBEX P1 Docs P2 Docs Learn Events
Considering an array of 4 propellers or more. — Parallax Forums

Considering an array of 4 propellers or more.

BitsBits Posts: 414
edited 2012-07-03 16:15 in General Discussion
I am considering making a PCB that used an array of propellers, perhaps starting out with 4 the moving on to more.

Questions:

1.) Is it so simple that I could share the xtal and eeprom?. So the PCB would have 4 props, 1 xtal, 1 eeprom. My concern would be boot up and eeprom, and capacitance for the xtal, but this may have already been accomplished.

2.) Could I PWM a I/O pin using the 4 propeller array but timing them so that each propeller pulses right after the previously one so that its 4 times faster than a single propeller?

Thanks,

Comments

  • mindrobotsmindrobots Posts: 6,506
    edited 2012-06-27 10:57
    Have you seen jazzed's tetraprop?

    There are also several ways to cluster Propellers using PropForth depending on what resource you need to multiple (pins, COGs, memory, etc.)

    There have been other threads discussing the crystal issues.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2012-06-27 11:07
    I think Clock Loop could load 55 Propellers at once. I don't recall what he did about EEPROM.

    Have you seen Jazzed TetraProp board? He uses separate EEPROM.

    I personally would prefer each Prop to have its own EEPORM. I've had several projects with multiple Props each running the same code. I'd assign each Prop a unique ID which would be stored in upper EEPROM. Each Prop would then know which tasks it was to perform and when based on this ID.

    Jazzed boards use separate crystals but there have been several threads about sharing cyrstals.

    I doubt you'd be able to get any increase of resolution in your PWM signal from using extra Props.
  • BitsBits Posts: 414
    edited 2012-06-27 11:34
    Duane Degn wrote: »
    I doubt you'd be able to get any increase of resolution in your PWM signal from using extra Props.

    Is this a guess? I am convinced that I can although ill admit its going to be tricky.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2012-06-27 12:47
    Bits wrote: »
    Is this a guess?

    Yes, it's a guess. I wish you luck in proving me wrong.
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2012-06-27 13:06
    One trick used in silicon to obtain greater than 1GHz speeds is to implement a ring oscillator and stagger identical stages, only to re-combine the efforts at the end.

    I was part of the team that put together the GigPhyter (DP83865) for National Semiconductor and there was a similar strategy to get the 10/100/1000 Ethernet speed selections.
    That process only allowed for about 300-400 MHz, so to get anything higher the function needed to be staggered.

    A ring oscillator is a singular oscillator with various output taps that provide different phases of the output clock.
    In theory, each of the four Propellers would receive one of these taps... keep in mind the base frequency would still be 5MHz, only phase delayed between the Propellers by 90 Deg.

    The hardest part would be syncing them and combining the efforts to a singular output such as a PWM pin with external circuitry. Not impossible, but there are plenty of obstacles to overcome. mainly propagation delays.

    That said, the effective throughput could be 4X what a single Propeller could do.
  • LeonLeon Posts: 7,620
    edited 2012-06-27 13:09
    What speed PWM do you need?
  • prof_brainoprof_braino Posts: 4,313
    edited 2012-06-27 16:41
    Yes, more info on the PWM.

    I think Clock Loop had 55 props loaded from the same EEPROM, I don't think they worked together (per se) after that.

    As MindRobots said, in propfroth there is a an easy method to string together N props in series (or parallel or both). We can use one prop to drive the clock lines for the subsequent props, the sync between any two props is pretty exact but of course there is a delay as you go further down the line (I think). I don't know if this is the effect you want to use till we see more about what you have in mind.

    Sounds like a cool idea.
  • BitsBits Posts: 414
    edited 2012-06-28 21:57
    Beau you are describing similarly to what I am am thinking, the only difference is it seems yours is more complex and thought out.

    My question would be could these 4 high speed signals, sign or square, be sent into a IC and this IC would buffer the 4 signals to keep the sum frequency stable with a type of LC or L or C circuit buffering. The buffering would allow slight deviations to be compensated for.


    Honestly I am not after PWM speeds. I have bigger fish to fry (or I am day dreaming again). I want to try to design a propeller array that will be used for high speed I/Os and logic operations using a 4 dimension matrix. Eventually I would write the code in 4 dimensions.
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2012-06-28 23:02
    "My question would be could these 4 high speed signals, sign or square, be sent into a IC and this IC would buffer the 4 signals to keep the sum frequency stable with a type of LC or L or C circuit buffering. The buffering would allow slight deviations to be compensated for."

    Look up "ring oscillator" in combination with 'phase' or 'phase tap' ... What might be a problem is that a typical ring oscillator requires an odd number of stages, starting with 3. So 4 Propellers might not be a solution.... 5 would work.

    Each stage would definitely need buffering.

    5MHz is 200ns, so to get the Phase right for 4 Propellers, each clock would need to be phase delayed by 50ns ... If done right, a single propeller could simulate what you wanted to do within 4 COGs, since each instruction at 80MHz takes 50ns.

    But I don't think that's what you really want to do, I think you need to introduce the phase delay at 80MHz meaning the clock would actually need to be phase delayed in 3.125ns increments and NOT 50ns. The frequency still however would only be 5MHz driving each Propeller, just on the 4 phase taps, slightly off by a small amount.

    This isn't impossible, but not exactly easy either. There may be a way to generate the 4 necessary phases needed with a dedicated Propeller and making use of the video output, but I'm not positive on how to do that. Finding the right propagation delay in discrete components would be another possibility, but temperature could become a problem with drift. ... similar to a ring oscillator, If you just drive one end at 5MHz. Each buffer stage would provide a specific propagation delay, but the output of each buffer would still be at 5MHz... If you have the real-estate the buffer could literally be nothing more than a length of wire, but I think at that frequency and that amount of phase delay it's still close to 3 feet of wire needed for that kind of delay.

    I might have to do a propagation delay test or two this weekend.... hmmm
  • prof_brainoprof_braino Posts: 4,313
    edited 2012-06-29 08:18
    Bits wrote: »
    Eventually I would write the code in 4 dimensions.

    I have no idea what you mean, but it sounds totally cool. You may need to shield against lectroids. :)
  • BitsBits Posts: 414
    edited 2012-06-29 09:15
    lol, thanks for the advice shielding against the lectroids. I had to Google that!
  • ratronicratronic Posts: 1,451
    edited 2012-06-29 09:41
    Bits here is a pwm object by Phil Pilgram that uses a cog using the video generators to provide 8 channels pwm. Although I have never change the resolution it can be changed according to the notes at the beginning. I am not sure if this will be any value for what you want.
  • BitsBits Posts: 414
    edited 2012-06-29 09:46
    Thanks ratonic but I am not specifically after PWM. Its a concept that I am trying to visualize mentally so that I may postulate more complex computing afterwards.
  • jmgjmg Posts: 15,183
    edited 2012-06-29 20:42
    Bits wrote: »
    1.) Is it so simple that I could share the xtal and eeprom?. So the PCB would have 4 props, 1 xtal, 1 eeprom. My concern would be boot up and eeprom, and capacitance for the xtal, but this may have already been accomplished.

    Share the xtal :
    The devil is in the details here : See other threads. One issue is during reset/reboot, the Xtal Osc is disabled.
    So a multi-chip variant really needs an externally derived Oscillator,unless you like Russian Roulette ?

    Share the eeprom: That's tougher, as the first boot phase is internally timed, and they clearly cannot all read at once.
    While you could phase reset release, the ROM codes all fetches to be from the same small-device base address.

    2.) Could I PWM a I/O pin using the 4 propeller array but timing them so that each propeller pulses right after the previously one so that its 4 times faster than a single propeller?

    - and then externally AND/OR them ? To do this, you need to somehow externally phase the clocks, so the PLLs have edges that are 3ns shifted. Possible in theory, (to the limit of the PLL jitter/sync), but the simpler question then becomes, if you have now added fancy external hardware that is 3ns capable, why not just use that, for the x4 precision gain ?
  • jmgjmg Posts: 15,183
    edited 2012-06-29 20:50
    Duane Degn wrote: »
    I doubt you'd be able to get any increase of resolution in your PWM signal from using extra Props.

    Not from any single Prop, but you could get finer edge control using phased Props.

    There are already many Microcontrollers shipping, that have PWM resolutions well above the Clock speeds. to 1ns, or even into pico-seconds.

    They do this with what are effectively tapped delay lines.

    I have yet to see one that can CAPTURE to those precisions, which would be great.
  • jmgjmg Posts: 15,183
    edited 2012-07-03 15:19
    But I don't think that's what you really want to do, I think you need to introduce the phase delay at 80MHz meaning the clock would actually need to be phase delayed in 3.125ns increments...

    I saw a newsrelease today, on a device that could be use for fine delay tuning : 32 step Digital Capacitors. Up to 300MHz, for RF tuning.

    http://www.psemi.com/content/products/DTC/DTC.html

    These could be used in RC, or LC delay lines, or as a higher frequency VCO driving a johnson counter multi-phase clocker.

    Or, if you need many, another more single-chip solution could be a Si5351C, which seems to include 6 x 7 bit phase registers, with a 333ps LSB.
  • Mark_TMark_T Posts: 1,981
    edited 2012-07-03 16:15
    jmg wrote: »
    I saw a newsrelease today, on a device that could be use for fine delay tuning : 32 step Digital Capacitors. Up to 300MHz, for RF tuning.

    http://www.psemi.com/content/products/DTC/DTC.html

    These could be used in RC, or LC delay lines, or as a higher frequency VCO driving a johnson counter multi-phase clocker.

    Or, if you need many, another more single-chip solution could be a Si5351C, which seems to include 6 x 7 bit phase registers, with a 333ps LSB.

    Some RF transceiver chips have digital capacitors for fine tuning the xtal oscillator - its just an analog multiplexer and a set of capacitors with 2^N area ratio AFAICT
Sign In or Register to comment.