high-speed 4-bit inter-processor comms?

I've always used SPI for this sort of thing in the past, but I need something *much* faster.

I need to transfer 4-bit data between two MCUs, in one direction, between a slave and master, as fast as possible (I actually need to transfer 24 bits in total). Both are on the same PCB and share the same clock. Would it be feasible to, say, raise an output on the master when it needs the data, the slave, when it sees the corresponding input go high, will then send six nibbles one after the other and the master will receive them, without any additional handshaking. I can't see any problems with this arrangement, can anyone else?

MCUs are AVR 2313s, BTW.

The actual application is a software DDS running on the master (generating sinusoidal 17 kHz to 25 kHz), which needs updating with frequency data in the main program loop, without generating any glitches in the output. The slave handles the user I/O - two push-buttons (up and down) and an LED.

Thanks for any input.

Leon

--
Leon Heller, G1HSM
leon_heller@hotmail.com
http://www.geocities.com/leon_heller
Reply to
Leon Heller
Loading thread data ...

That works if the variation of the time to recognize the request line is less than the nybble clock interval. That should work if either the slave is sitting in a tight loop, or sleeping and the request generates an interrupt.

What is your output update rate? The transfer will generate some glitch in the output if the update rate is high enough. A possible alternative is to make the master loop execution time constant, but it would grab a single (or more) nybble in the loop if it is ready. With that design, the transfer takes longer, but could be completely seamless. I have used that technique with a processor which was doing data encoding for transmission, in which output bit timing could not vary, but data was coming into the encoder while encoded data was being transmitted.

Another alternative is to use a DDS chip.

Thad

Reply to
Thad Smith

between a

bits

be

the

any

can

I was intending to have the slave in a tight loop.

(generating

in

I was going to make the master loop time constant. I've got plenty of time with an 8 MHz clock.

I wanted to use the Fairchild ML2036, but no-one has them in stock in the UK. Also, I might want to modulate the signal, which I can do easily in software.

Thanks, Thad.

Leon

--
Leon Heller, G1HSM
leon_heller@hotmail.com
http://www.geocities.com/leon_heller
Reply to
Leon Heller

It's the same as a SW UART, but you have a separate line for START and sample 4 bits wide, instead of one. Time domain issues are identical. Response to start will have a min value, plus opcode + (interrupt path) jitter - bit sampling will have the same jitter.

-jg

Reply to
Jim Granville

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.