Shared clock?
Fabian Nunez
Posts: 29
Sorry if this seems like a dumb question, but I am still very wet behind the ears on this whole electronics thing...
I am planning on using a Propeller in a circuit with another CPU, and gut feel tells me that my life will be a lot simpler if I have one clock signal shared by both CPUs rather than each having its own clock.· Thing is, the CPU I'm trying to connect to needs a clean square wave as a clock source (can't just connect a crytal to it), and according to the propeller manual (at least, from my understanding of it) you can't use the Prop's PLL if you want to use something other than a crystal.· My question is: I want to use the Prop to generate video, the other CPU won't be running at anything like 80MHz and I'd prefer to keep my circuit as simple as possible, so is the way to go having an 80MHz oscillator·tied to a binary counter to lower its frequency for the non-Prop CPU, or·can·I connect the same 5MHz·crystal to the Prop and the other CPU, using something like a Colpitts oscillator to get my square wave·pretending the Prop's not there? (or does the Prop,as I suspect,·implement most of the Colpitts oscillator with its XI/XO pins and I just need to add something like a 74LS04 to get a clean square wave for the other CPU)
Thanks for your patience
·
I am planning on using a Propeller in a circuit with another CPU, and gut feel tells me that my life will be a lot simpler if I have one clock signal shared by both CPUs rather than each having its own clock.· Thing is, the CPU I'm trying to connect to needs a clean square wave as a clock source (can't just connect a crytal to it), and according to the propeller manual (at least, from my understanding of it) you can't use the Prop's PLL if you want to use something other than a crystal.· My question is: I want to use the Prop to generate video, the other CPU won't be running at anything like 80MHz and I'd prefer to keep my circuit as simple as possible, so is the way to go having an 80MHz oscillator·tied to a binary counter to lower its frequency for the non-Prop CPU, or·can·I connect the same 5MHz·crystal to the Prop and the other CPU, using something like a Colpitts oscillator to get my square wave·pretending the Prop's not there? (or does the Prop,as I suspect,·implement most of the Colpitts oscillator with its XI/XO pins and I just need to add something like a 74LS04 to get a clean square wave for the other CPU)
Thanks for your patience
·
Comments
But I haven't tested this setup yet - I have the components on the breadboard but haven't had time to wire it up. I think it will work ok, and I'll let you know when I have some results with it. I don't think it's really that important to synchronize the clocks simply because each processor is going to take different numbers of clock cycles to execute different instructions, so things will be happening at different timings even if the clocks are synchonized. I also find that it seems to make circuits more robust when each part is as independent as possible, even if that means duplicating some parts of the circuit. It makes it easier to localize the point of failure when things go wrong, because a problem with one part doesn't stop another part from operating.
David
My plan is to make the Prop look like a plain, asynchronous SRAM to the '02, exposing an 8KB framebuffer. That way I don't have to worry about implementing DMA; that's all handled by the rotating bus inside the Prop (which, if you think about it, is a lot like the traditional Phi1/Phi2 method of implementing DMA on 6502s, only with 8 "clock phases" instead of 2). The worst that can happen that way is that the Prop ends up as "slow RAM" on the 6502 bus, if I can't implement a fast enough bus handler in the Prop and need to insert wait states when accessing it. I was initially thinking of doing a simple monochrome 320x200 (don't want to eat up too much of the 6502's address space!) but seeing Chip's way cool vga tile mode driver very quickly changed my mind.
Dude, you rock. That sounds like a kick *** project.
I have a 6502 board that came out of a pinball machine. It has a 6502, a combination RAM + I/O chip, and two RAM/ROM slots all on the same board. And nothing else!! The memory map will be easy to reverse engineer, and the I/O chip gives me general purpose I/O without extra hardware. It's like, wow, a perfect 6502 single board computer / development kit right there. I've been thinking it would be neat to turn it into some kind of demo project, maybe with an LCD or serial terminal. Any suggestions on what I should make out of it?
I was thinking of doing a similar project with the Z-80: since the Z-80 clock can slow all the way down to DC, I thought I might make a Propeller-Z80 trainer where the Propeller spoon feeds every data and clock signal to/from the Z80.
My goal is to someday do at least one project with every major line of DIP-packaged processors.