Shop OBEX P1 Docs P2 Docs Learn Events
PCB board design — Parallax Forums

PCB board design

electric550electric550 Posts: 122
edited 2008-08-11 14:59 in Propeller 1
Most of this has been covered. I·just wanted to check and make sure info is good before I purchase.

1. 64 kbyte eeprom from dev board discussed in other post...
  • I assume no code change necessary between 32k and 64k for program that fits on 32k? If I were to swap the two there would be no noticable change in operation?

2. 6MHz krystal oscillator
  • Can two props share one Crystal oscillator? Should I have one for each? From reading and dlp prop I assume no prob with 96Mhz, 6X16pll faster speed.

3. Connecting 2 props.
  • I am planning on 3 line synchronous serial. What is the fastest way to communicate between two props being limited to 3 I/O lines?

Comments

  • PhilldapillPhilldapill Posts: 1,283
    edited 2008-08-06 07:53
    I could be wrong, but I don't think two props can share the same crystal. I think you can have the crystal running one prop, then have an output of that prop be fed into the crystal input on the second. Again, I THINK that should work.
  • AleAle Posts: 2,363
    edited 2008-08-06 08:35
    If it is a crystal oscillator (not just the crystal using the prop's oscillating circuit) there should be no problems.

    A three line sync... a two line sync is far easier because you have an even number of bits. In the case of three... well it will end up with 33 bits, so 11 transfers, yo have to take the last 2 bits or the first two.. whatever is easier/better. It will be faster than 2 bits and shorter from a code stand point. You use waitpeq/waitpne to detect the start of a frame. If you transmit longs instead of single bytes you gain from having smaller overhead. I currently use a 4 bit bidi bus (not bidirectial at the same time) and I get something like 2.5MB/s well a bit less due to the overhead, but the transfer occurs at 10 Mbit per second @ 80 MHz. The lanes are around 3 cm long. No problems smile.gif

    With the EEPROM you should have no issues. The internal bootloader only reads 32k, so it is up to you to get the rest of it.
  • electric550electric550 Posts: 122
    edited 2008-08-06 15:57
    Thanks for the help. When you say 4 bit bidi bus do you mean it has 4 data lines?
  • electric550electric550 Posts: 122
    edited 2008-08-06 17:02
    Also from reading the manual it seem the external EEprom is not necessary. Is the correct? I need the max number of IO pins on one propeller. I was wondering if I could just leave out the EEprom on one of them.
  • simonlsimonl Posts: 866
    edited 2008-08-06 17:11
    You'll need the EEPROM only if you want to store the Propeller's firmware for quick boot. If you are OK with downloading the firmware from a PC every time you want to use the Prop', then you won't need the EEPROM. (Do you really want to do that?)

    <edit>
    Just read your post again: You would be able to leave the EEPROM off one of the Prop's, but you'd need to load it's firmware from somewhere. One option would be to use Chip's Propeller Bootloader object...
    </edit>

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Cheers,

    Simon
    www.norfolkhelicopterclub.co.uk
    You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
    BTW: I type as I'm thinking, so please don't take any offense at my writing style smile.gif
  • electric550electric550 Posts: 122
    edited 2008-08-06 17:36
    LOL. I was just about to repost that. It seems that I have to speak it before I see it. thank you!
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-08-06 18:01
    This thread raises an interesting question. What really happens on reset when there's no EEPROM?

    1. Does the ROM-based firmware recognize it right away when it doesn't receive ACKs on the I2C bus?
    2. Does it load a bunch of $FFFF_FFFFs (assuming SDA pullups, or garbage if not) into RAM and determine that there aren't any valid Spin headers?
    3. Or does it try to execute the $FFFF_FFFFs (or garbage), sending it off into la-la land?

    -Phil

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    'Still some PropSTICK Kit bare PCBs left!
  • Mike GreenMike Green Posts: 23,101
    edited 2008-08-06 18:14
    You'd have to check the source for the bootloader, but I know it stops if there's no PC or EEPROM with all cogs stopped. I suspect it's #1.
  • HarleyHarley Posts: 997
    edited 2008-08-06 20:26
    electric550,

    I'm a bit late on this, FYI I have a design using two Props and two EEPROMs but one 5 MHz crystal. One Prop uses the crystal and generates a 5 MHz output for the 2nd Prop. The 2 Props are separated just over 3 inches. No problems on this two-sided, thru-hole pcb.

    The reason I had to go to two Props was for all the I/O lines needed. Final configuration has just 4 pins spare on one and two on the other. These I sometimes use for debugging purposes.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Harley Shanko
  • BradCBradC Posts: 2,601
    edited 2008-08-06 21:10
    Phil Pilgrim (PhiPi) said...
    This thread raises an interesting question. What really happens on reset when there's no EEPROM?

    1. Does the ROM-based firmware recognize it right away when it doesn't receive ACKs on the I2C bus?


    Yes.. if it does not get a knock from a PC over the serial, it tries to load EE. If it does not get a proper ACK then it just shuts down immediately.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pull my finger!
  • Ken PetersonKen Peterson Posts: 806
    edited 2008-08-06 21:15
    I wonder if anyone has configured multiple Propellers to use the same EEPROM. Seems you could cascade them together and have each one boot and then bring the next one out of reset.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • electric550electric550 Posts: 122
    edited 2008-08-06 23:22
    Thanks I think I am going to go with one crystal and send the clock to the other. I assume this would sync them well for some fast sync comm.
  • electric550electric550 Posts: 122
    edited 2008-08-07 01:37
    So from reading connection is as follows??? 6MHZ xtal x16pll on prop one for 96MHZ. 0utput pin from prop 1 at 96mhz goes to the XI pin of the second propeller with Xo floating.Prop 2 @ 96Mhz x1pll. Will this have them at the same speed? Also will they be synchonized enough to to run full duplex synchronoous serial for parallel data transmission on two line tx/Rx?
  • Ken PetersonKen Peterson Posts: 806
    edited 2008-08-07 01:46
    I would send 6MHz to the second prop, not 96MHz. The PLL in the second prop will generate its own system clock at 96 MHz. Use the counter to divide the 96MHz down to 6MHz to send to the second prop.

    You can't perfectly synchronize two props very easily...you will still need clocking on your serial line for high speed data transfer. You may want to consider using SPI.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Post Edited (Ken Peterson) : 8/7/2008 1:51:27 AM GMT
  • electric550electric550 Posts: 122
    edited 2008-08-07 02:02
    Thanks I will look into that. Let me know if there is a particular spi object around here that you would recommend using.
  • hinvhinv Posts: 1,253
    edited 2008-08-07 04:31
    If it is synchronization you want, wouldn't sending it a 96MHz clock give more of a deterministic startup? Would there be any difference after that? I know that sending a 96MHz signal to the second prop would draw more power on the first, but any other disadvantages?

    Why not boot the second prop off the first, and use p28-p31 as your 4 bit bidi(whatever that means) bus after you have the second one booted?

    As far as EEPROM goes, I think there are even 128KB ones now.
  • electric550electric550 Posts: 122
    edited 2008-08-07 06:36
    That seem like a good idea. So after boot up I will just pause for a while and use the tx/rxl ines and one of the eeprom lines on prop 1 to communicate with the other prop. I will look into that. I am not sure how the eeprom would react if it was in parallel with the communications from the first prop to the second prop. I will have to look into that. Has anyone had experience with that?
  • AleAle Posts: 2,363
    edited 2008-08-07 07:57
    I use 4 lines, PA0..3 in one prop connected to PA24..PA27 in the other one.
  • electric550electric550 Posts: 122
    edited 2008-08-07 23:34
    why do you use 4 lines? I was just going to use one clock line for the sync clock, Then have two more lines (tx/Rx) for the communication.
  • hippyhippy Posts: 1,981
    edited 2008-08-11 14:53
    Ken Peterson said...
    I wonder if anyone has configured multiple Propellers to use the same EEPROM. Seems you could cascade them together and have each one boot and then bring the next one out of reset.

    It should be possible if done carefully. A problem is that Propeller booting drives SCL hard high or low which is a potential problem with Propeller's fighting each other. Blocking diodes ( pointy-ends to Propeller ) with pull-up would make that effectively a soft-drive but I haven't tested that.

    Alternatively gating could select which SCL went to the Eeprom, or the first out of reset could program the others via RX/TX straight to RAM.
  • Ken PetersonKen Peterson Posts: 806
    edited 2008-08-11 14:59
    Hippy: As I mentioned, I think the easiest way would be to have them boot one at a time with one Prop bringing the next one out of reset. If I'm not mistaken, when a Propeller held in reset all the IO pins are high impedance.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"I have always wished that my computer would be as easy to use as my telephone.· My wish has come true.· I no longer know how to use my telephone."

    - Bjarne Stroustrup
Sign In or Register to comment.