Oscillator considerations
Andrew Bellinger
Posts: 7
Hello Everyone,
Currently, I am designing a board which will be using 11-12 SX-48BDs (I need a ton of I/O). I do not need to synchronize the SXs if I use interrupts, but synchronizing them could save·memory and clock cycles.· I have a few questions regarding oscillator considerations:
When using a TTL oscillator I noticed it only needs to be connected to the OSC-1 pin, but crystals get connected to OSC-1 and OSC-2.· OSC-2 is listed as·an output. Does it buffer the clock signal, and if so would it be possible to daisy chain many SXs' together in this fashion (allowing for propogation delay)?· Other possibilities I was looking at included using a clock distribution IC, but most are for LVDS or CMOS·signals, not TTL.
My other concern is·that the SX-48BD is a SMD, and I am going to need to add a header for in circuit programmability.· I have seen designs using a jumper to disconnect the oscillator during programming, but I am worried about passing a 50MHz clock signal through a jumper, particularly if it is from a crystal oscillator.· Could stray capacitances and contact resistance cause poor oscillation/stability?· Solutions I have been looking at include using an analog mux with a hi-Z state during programming or using a relay to open the crystal.·
I know that this is a lot to ask, and I would appreciate any input/suggestions.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Currently, I am designing a board which will be using 11-12 SX-48BDs (I need a ton of I/O). I do not need to synchronize the SXs if I use interrupts, but synchronizing them could save·memory and clock cycles.· I have a few questions regarding oscillator considerations:
When using a TTL oscillator I noticed it only needs to be connected to the OSC-1 pin, but crystals get connected to OSC-1 and OSC-2.· OSC-2 is listed as·an output. Does it buffer the clock signal, and if so would it be possible to daisy chain many SXs' together in this fashion (allowing for propogation delay)?· Other possibilities I was looking at included using a clock distribution IC, but most are for LVDS or CMOS·signals, not TTL.
My other concern is·that the SX-48BD is a SMD, and I am going to need to add a header for in circuit programmability.· I have seen designs using a jumper to disconnect the oscillator during programming, but I am worried about passing a 50MHz clock signal through a jumper, particularly if it is from a crystal oscillator.· Could stray capacitances and contact resistance cause poor oscillation/stability?· Solutions I have been looking at include using an analog mux with a hi-Z state during programming or using a relay to open the crystal.·
I know that this is a lot to ask, and I would appreciate any input/suggestions.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·
Comments
I use 50 MHz TTL oscillators in my designs and use jumpers to allow them to be disconnected for programming without any problems. You mentioned using a relay instead. If you think about, how could the much longer and more involved signal path of a relay possibly be a better solution than the simplicity of a jumper? Similarly, if you create a dual sided PCB and the clock has to pass from one side to the other through a few vias, it's really no different than having it pass through two tiny metal spikes and a jumper.
Use the jumper.
Thanks, PeterM
Bongo
Because·of my·experiences I have learned not to trust jumpers for anything above DC, and even DC sometimes.· I have just come across so many jumpers that will work "if you push on it this way", or have had to tin the header pins to get a tight fit.· This problem is also severly affected by temperature change. Jumpers cost about $.003· so·manufacturers tolerances tend to be·loose.
Reed relays·and RF relays·have guaranteed signal integrities from hundreds of MHz up in to the GHz. Also, they have a known resistance, and with RF relays, a very low capacitance, so·transition times are not affected.·
Also,·thanks for the suggestion to use registers to·expand IO.· I am going to be using this board to control duty cycle and for PWM however, and can not·afford to divide one processer between as many IO lines as I·need.· I·have actually been considering going with one of the Altera FPGA development kits for this project.
Has anyone had any experience with one of these?
http://www.parallax.com/detail.asp?product_id=60001
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
I wired the external oscillator to drive the SX clock input through a resistor, about 4.7K as I remember, and everything worked. The SX worked fine, and I was able to program it with the oscillator in place.
I asked the question in one of these forums of whether this might be overstressing the SX programmer, and a Parallax engineer said he thought the programmer would have no trouble at all driving the programming against the resistor load.
So maybe you could use an independent external oscillator to drive all the SXes like what I did.
David
That sounds very interesting.·· What type of refresh rate/how quickly do you think it could update the pwm of all 204 channel?· The MAX7313 sound like it might work very well for me.· I like how they added more device IDs via that creative scheme (connecting pins to SCL and SDA)· instead of just adding more select lines.
Are you or your friend using the MAX7313 to drive LEDs directly?.·· I may be driving banks of LEDs per channel, or using high power LEDs such as luxeon 3W and 5W, but I could just use the 7313 to switch a transistor that could handle the current.
Also, thank you for your input David.· I will have to try that out on·a bread board tonight.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
you need to disconnect the clock source from the OSC1 pin only when you want to debug an SX device with the SX-Key. For just reprogramming, usually, the clock source does not cause trouble when still connected to OSC1.
As an alternative, you might build this adapter: http://forums.parallax.com/showthread.php?p=465498
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Greetings from Germany,
G
The dimensions are 4" x 1.25"
BTW I used a surface mount SPDT switch on a board and it worked just fine.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
wow - good job!!!
BTW: Did you use Eagle to design the board (some details look familiar to me).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Greetings from Germany,
G
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
Looks very nice. You fit a lot in to 5 sq. inches, very symmetrical too (always makes boards nice to look at).··Let us know how it works out for you.
Andrew
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
I tried David's idea to solve a similar problem that's been bugging me for a month. Before programming with an SX-Key, the oscillator and other chips on that line had to be disconnected before it would work. It took a bit of experimentation, but if there is a 470 ohm resistor between the oscillator and the SX, everything can stay connected all the time.
Awesome!
JimC