hi Ben,
i got a project for you can you interface two micro controllers to transmit and receive data with a single wire no clock line should be added as both the micro controllers should be able to transmit and receive
hi Ben,
i got a project for you can you interface two micro controllers to transmit and receive data with a single wire no clock line should be added as both the micro controllers should be able to transmit and receive
It's not that hard to do, original (10MHz co-ax cable) Ethernet works like that, CAN works like that (although usually uses two wires in a differential mode but it doesn't have to).
So one reasonably easy way to do it is to use micros with CAN interfaces and some very simple non standard interface parts.
There isn't much point - the extra wire doesn't cost much.
There are lots of other single wire clockless interfaces in common use like LIN (automotive), Dalla One-Wire and so on.
In fact they always use 2 wires or more - even the One-Wire protocol uses a signal wire and a return or earth (or common).
MK
But still one cpu master and 1 slave the device. Right?
No, as long as you can detect collisions (both trying to transmit at the same time) you can have multiple masters. That is how Ethernet and CAN work.
Both of these protocols do use a clock however, it is "embedded" in the encoding of data stream.
CAN and Ethernet have no concept of Master or Slave.
LIN does and One-Wire sort of does but it can be worked round (although I wouldn't use it except as an utter last resort.)
If the OP can tell us what he wants to do it would be possible to make a more specific suggestion.
MK
RS-485 is often used to daisy-chain a master to a bunch of slaves. The master sends out a message that includes address bits and expects one of the slaves to respond. RS-485 is differential pair (a good idea if you're going any distance) but you can go single wire if you like. The UART has to ignore received data when it's transmitting -- this is called half duplex.
IMO the OP is probably better off with UART (two signal wires) or SPI (2, 3, or 4 wires depending on what you want to do).
As a footnote for your amusement, a lot of ARM processors use SWD (Single Wire Debug) in place of JTAG to talk to the chip's debug module. I've only seen SWD implemented as two signal wires: clock and bi-directional data. It's called SWD because there's an asynch version that uses a single data wire. But since everyone implements the two-wire synchronous version, it's pretty silly calling it SWD 