'Power line and Serial Link'
Does anyone know of a link to somewhere for power line and serial
transmission on the same two wires.
I have several different 12c508 parts that I would like to network with
only two wires.
I dont think that this is a difficult thing to accomplish, but I haven't
been able to find much and be able to do it really cheap and with very
Also there could be as many as 28 chips plus the master who will control
all of the traffic, I plan to use a protocol similar to the I2C.
Any links would be very helpful
Cory D. Raak
"You either do or do not. There is no try." Yoda
> Does anyone know of a link to somewhere for power line and serial
> transmission on the same two wires.
I'm not aware of any URL's, but there are four approaches I've heard of to
accomplish this task:
 The end of the wire supplying the power modulates the voltage on the
cables; the recipients send their return data by varying their current
draw. In this case, communication may be as fast or as slow as desired
without either end needing to store energy.
 Current is supplied through an inductor or gyrator (or, in a pinch, a
resistor); data is output capacitively coupled to the wire. This method
works excellently for analog signals (it's how telephones work) but it
will most likely require extra circuitry to exchange digital data.
 The device supplying the current sends data by briefly stopping the cur-
rent flow; the device at the other end must then have a capacitor large
enough to keep the device powered through the outage. The power-receiv-
ing device may return data by sourcing power to the unpowered line. Note
that if the line is loaded excessively, however, the device could lose
 The device supplying the current reverses the current flow to send data.
The downstream device then uses a full-wave rectifier to power itself.
This approach eliminates the need for a large cap, while providing very
good noise immunity. Unfortunately, there isn't a really good way of
For a PIC-based application, I'd guess that number 3 is probably the best.
If you don't mind sitting your chips directly on the power wire, the
implementation should be really simple:
For your "master" device, wire its VDD and Vss as normal. One of the two
wires in the cable should be grounded; the other should go to a port pin.
Except when the CPU is sending data or looking for a response, it should
keep this port pin high.
The other end of the cable should have one side grounded and the other side
going to that CPU's port pin, along with a diode to that CPU's VDD; the CPU
should then have a decent-sized cap between VDD and Vss. Normally the CPU
should keep its port pin tri-stated (input). It will see a high on the pin
except when the other CPU is sending data or awaiting a response. To avoid
having the capacitor drained excessively, I'd recommend a protocol like the
Start of transmission:
Pulse the line hard low for 50us, then high
Send a one bit:
Pulse the line hard low for 10us, then high for 10us
Send a zero bit:
Pulse the line hard low for 5us, then high for 10us
Get a bit back:
Pulse the line hard low for 5us, then high for 2us, then tristate for
5us, sample the line, keep tristated for another 3us, then high for 10us.
The downstream device should be watching for the exact time it should send
its output bit, and it should only un-tri-state its output wire for 5us,
being careful not to overlap its output with the originating device's. If
a protocol such as this is used, the capacitor on the downstream PIC need
not be terribly large. If the PIC is drawing 20mA (including its I/O), a
1uF cap will keep the voltage sag down to 0.1 volts. Further, because the
communications wire will always be high when the downstream PIC switches on,
it won't have to use up energy outputting +5 to it even if the line has a
substantial degree of capacitance.
| >> Does anyone know of a link to somewhere for power line and serial
>> transmission on the same two wires.
P> I'm not aware of any URL's, but there are four approaches I've heard
P> of to accomplish this task:
P>  The end of the wire supplying the power modulates the voltage on
P> the cables; the recipients send their return data by varying their
P> current draw. In this case, communication may be as fast or as slow
P> as desired without either end needing to store energy.
P>  Current is supplied through an inductor or gyrator (or, in a
P> pinch, a resistor); data is output capacitively coupled to the wire.
P> This method works excellently for analog signals (it's how telephones
P> work) but it will most likely require extra circuitry to exchange
P> digital data.
P>  The device supplying the current sends data by briefly stopping
P> the current flow; the device at the other end must then have a
P> capacitor large enough to keep the device powered through the outage.
P> The power-receiving device may return data by sourcing power to the
P> unpowered line. Note that if the line is loaded excessively, however,
P> the device could lose power.
P>  The device supplying the current reverses the current flow to send
P> data. The downstream device then uses a full-wave rectifier to power
P> itself This approach eliminates the need for a large cap, while
P> providing very good noise immunity. Unfortunately, there isn't a
P> really good way of returning data.
P> For a PIC-based application, I'd guess that number 3 is probably the
Number 3 technique can be used only on small low-current systems, due to
each slave should be able to power all system during sending data.
Number 2 technique requires simple modem circuits and software and can use
almost all your program memory in small PICs, such us 12C508/509.
We use combination of number 1 and number 4 methods for really big PIC-based
networks: till 500 controllers, drawing about 1 mA each.
System have one master device, supplying all slaves. Data from master to slave
sended with line polarity reverses. Supplying current is limited to necessary
value. Each slave have rectifier bridge, diode D1, small electrolytic capacitor
after that and low-current voltage stabilizer (LM78L05, for example).
Stabilizer isn't necessary for small-distance systems with low wire resistance.
In our case it was about 5000 meters wires with resistance about 500 Ohm - 2.5
Volt fall on wires.
Slave devices send data to master with number 1 method - by short-time
line shortenings. One external transistor and current-limiting resistor before
diode D1 was used for this purpose. Master device have line voltage comparator
and receive data from slaves with line voltage changes. There are some problem
on master device with data receiving, if the total number of connected devices
can be varied, or their supply current varies depended from external
situations. A/D converter on master device with program level autocalibration
seems to be good solution in this case. (Master is only one for
all system and it's cost have no very big value). Possible communication speed
depends from the total current supplied. In our application 100 baud speed was
enough and we didn't try to increase it.
Another application of this technique was small networks (about 100 meters) with
about 20 slaves. We use about 1200 baud speed at this networks without
I plan to made some application of this technique available on the www in near
Alexey Vladimirov mail.ormix.riga.lvavlad
... more than 350 Microchip-related links now
--- GoldED/2 2.50+
|John Payson's comments reminded me of the X-10 control system which uses
AC lines for both slave device power and communication. A wide variety of
devices are available to "wirelessly" switch lights, appliances, garage
doors etc. The X-10 system is pretty slow by today's standards and not
known to be terribly reliable (or so I am told) but seems to be adequate
for it's intended purpose. (I've used my system for many years.)
In the X-10 protocol data is transmitted at the AC lines at the zero
crossing where line noise is hopefully at it's lowest. Data is sent in
1ms bursts with some redundancy for noise. Power for the slave device and
some masters is acquired from the mains.
I thought of X-10 not as a direct solution to your application but as a
source of information on what has been done implementing a solution on AC.
If your interested check out the faq at
Hope this is of some value.
P.S. Big disclaimer: I'm not an formally trained in electrical issues but
like to play with such things in my free time (when there is free time).
So it's entirely possible I'm way off the mark! ;)
: The views expressed herein are mine and not necessarily my employer's :
: Preston S. Gabel Email: Tek.Com : Preston.S.Gabel
: Tektronix, Inc :
: PO Box 500 (m/s 39-527) Voice: 503 627-4605 :
: Beaverton, OR 97077 FAX: 503 627-1388 :
|Nice post, John, (and so was the one about PID loops). As it happens,
I was looking into the same problem except the idea was to operate
one of those little CCD camera modules from a single coax cable. The
cable had to supply 12V and a sync pulse to the module, while allowing
the module to send back the composite video signal.
I chose John's solution number 1. The 'master' sends 16V down the
line, pulsed to 21V for the sync signal. The 'slave' camera module
draws a steady current for its own use, and uses a current mirror
to draw varying current from the line to send the video signal. The
module requires a steady 12V to operate. This is obtained by using
a current source from the line, feeding into a 12V zener. The zener
both regulates and absorbs excess current that the module does not
Unfortunately, a long cable can't be used because a current source
looks like a very high impedance. This does not match the coax cable's
characteristic impedance of about 75 ohms -- so cable capacitance is
a real killer in the long run. (This is somewhat mitigated by the
constant voltage on the line). Impedance matching is always going to
be a problem if you need high speed full-duplex data transfer, using
Why don't use a FM modulation on power line like the LM1893/LM2893
do ? It work fine, but perhaps you need something very cheap ?
Philippe. (insat.com) P.TECHER
More... (looser matching)
- Last day of these posts
- In 1997
, 1998 only
- New search...