Maker Pro
Maker Pro

Does anyone have a simple UART-based P-S, S-P design?

L

Lasrsmith

Hello group,

I'm working on a small project that has 8 lines of parallel data that I'd like
to convert to serial, transmit and convert back to 8 lines parallel. Does
anyone have a hardware-only circuit using UARTs, shift registers, etc., without
the need for any software programming? I'm trying to help a friend out on this
project and he doesn't want to program a stamp, processor, etc.

Thanks in advance
 
B

Bill Sloman

Hello group,

I'm working on a small project that has 8 lines of parallel data that I'd
like to convert to serial, transmit and convert back to 8 lines parallel.
Does anyone have a hardware-only circuit using UARTs, shift registers, etc., > without the need for any software programming? I'm trying to help a friend > out on this project and he doesn't want to program a stamp, processor, etc.

You don't say what sort of speed you want, how long your serial line
is, or what sort of serial link you plan to use.

One - possibly over-kill - solution might be the National
Semiconductor low voltage differential signalling (LVDS) serialisers
and deserialisers.

http://cache.national.com/ds/DS/DS92LV1021A.pdf serialiser

http://cache.national.com/ds/DS/DS92LV1212A.pdf deserialiser

http://www.national.com/an/AN/AN-1238.pdf application note

You connect both chips to the same 16 to 40MHz clock, and they
multiply it internally by twelve to transmit ten bits of data across a
balanced serial link at the input clock rate. The data rate can go up
to 480Mbit/sec, so the serial link can't be too long or too
dispersive.
 
P

petrus bitbyter

Lasrsmith said:
Hello group,

I'm working on a small project that has 8 lines of parallel data that I'd like
to convert to serial, transmit and convert back to 8 lines parallel. Does
anyone have a hardware-only circuit using UARTs, shift registers, etc., without
the need for any software programming? I'm trying to help a friend out on this
project and he doesn't want to program a stamp, processor, etc.

Thanks in advance

Lasr,

Elector ever published a converter like that, meant to send parallel printer
data via a serial line. It may be hard to find a stand alone UART these
days. The last one I ever saw was a HD-6402 from Harris. Don't know whether
it's still available. I ever designed a UART from scratch, using a PROM to
control it. Whether you like it or not, the modern way to build this
function is using a micro with a build-in UART.

pieter
 
W

Wouter van Ooijen

I'm working on a small project that has 8 lines of parallel data that I'd like
to convert to serial, transmit and convert back to 8 lines parallel. Does
anyone have a hardware-only circuit using UARTs, shift registers, etc., without
the need for any software programming? I'm trying to help a friend out on this
project and he doesn't want to program a stamp, processor, etc.

Your post tickled me, I'll make a kit for this. It will use two
PICmicro controllers, but they will be pre-programmed. But making the
(small) PCB's for it will take some time. If you are interested in
being the guinea-pig (first user) let me know by email.


Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
 
W

Wouter van Ooijen

Your post tickled me, I'll make a kit for this. It will use two
PICmicro controllers, but they will be pre-programmed. But making the
(small) PCB's for it will take some time. If you are interested in
being the guinea-pig (first user) let me know by email.

If fact I programmed a solution last night. Just two programmed IC's
(PIC16F630, 14-pins), one as sender and one as receiver. Add two more
chips (75179, 8-pins RS-485 interfaces or something similar) if long
distance and/or noise immunity is needed. If the original poster is
still interested he can have a set (in exchange for his experiences).


Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
 
P

petrus bitbyter

Pieter Hoeben said:
I know that a loing time ago there has been something like this
in Elektor (Elektuur in the Netherlands), but I don't know
where and when.

Regards,

Pieter Hoeben

In the Netherlands it was the october 1984 issue.

pieter
 
W

Wouter van Ooijen

If fact I programmed a solution last night. Just two programmed IC's
Is it strobed (8 data inputs and a clock) or is it just reading
the input, and sending it to the other end, as often as possible?
Does the protocol have error correction/detection of some sort?

Just trying to tickle you a bit more ;)

At the moment: sends as often as possible, no error checking. Both
could be done. Note: it does *not* use the standard asynchronous
protocol, because that is not very reliably been two PICs on internal
clock.


Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
 
F

Frank Bemelman

Wouter van Ooijen (www.voti.nl) said:
At the moment: sends as often as possible, no error checking. Both
could be done. Note: it does *not* use the standard asynchronous
protocol, because that is not very reliably been two PICs on internal
clock.

And the F630 having no UART, it would make it lot more comlicated
too, so a self-clocking datastream is easier to handle as well ;)
Still, it is a nice gadget, since it can be made with this cheap
convenient components.
 
F

Fred Bloggs

Wouter said:
At the moment: sends as often as possible, no error checking. Both
could be done. Note: it does *not* use the standard asynchronous
protocol, because that is not very reliably been two PICs on internal
clock.
Wouter van Ooijen
http://www.voti.nl
PICmicro chips, programmers, consulting

What protocol does it use?
 
B

Byron A Jeff

Hello group,

I'm working on a small project that has 8 lines of parallel data that I'd like
to convert to serial, transmit and convert back to 8 lines parallel. Does
anyone have a hardware-only circuit using UARTs, shift registers, etc., without
the need for any software programming? I'm trying to help a friend out on this
project and he doesn't want to program a stamp, processor, etc.

Just a stream of conscientiousness here:

1) The hardware shown in this thread shows the compilcations of using discrete
ICs.

2) Wouter rigging up a two PIC system in less than a day shows the power of
programming.

It's the reason we all use computers for information and communications
tasks today: programmability of fixed hardware to perform a multitude of
different tasks.

So I'd advise getting Wouter's WISP628 or my Trivial Programmer, grab a
handful of PICs (be sure to check out both Wouter's and my which pic to
choose at http://www.voti.nl/swp and http://www.finitesite.com/16F628.html
respectively) and get going.

You can program in hardware or you can program software, but in any case you
are going to be programming.

BAJ
 
W

Wouter van Ooijen

And the F630 having no UART, it would make it lot more comlicated
too, so a self-clocking datastream is easier to handle as well ;)

Not realy, I use my own compiler & libraries (Jal), which has an
off-the-shelve bit-banged UART. But I wrote this protocol some time
ago, so I had it available too.

Note that it is not self clocking in the sense that there is no clock
tolerance requirement at all: no single wire protocol can do that.


Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
 
W

Wouter van Ooijen

What protocol does it use?

Roughly: a zero is 1 ms high followed by 2 ms low, a one is 2 ms high
followed by 1 ms low. Actual times are different, and there is some
added complexity to detect a byte boundary.

As an excercise for the reader: how much difference in the sendand
receive clock does this protocol allow?

Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
 
F

Frank Bemelman

Wouter van Ooijen (www.voti.nl) said:
Roughly: a zero is 1 ms high followed by 2 ms low, a one is 2 ms high
followed by 1 ms low. Actual times are different, and there is some
added complexity to detect a byte boundary.

As an excercise for the reader: how much difference in the sendand
receive clock does this protocol allow?

16.7% ?

Just a wild guess!
 
F

Fred Bloggs

Wouter said:
Roughly: a zero is 1 ms high followed by 2 ms low, a one is 2 ms high
followed by 1 ms low. Actual times are different, and there is some
added complexity to detect a byte boundary.

As an excercise for the reader: how much difference in the sendand
receive clock does this protocol allow?

Wouter van Ooijen

-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting

Quite a bit- like 1/2 Tclk error before bad reception. Detecting bytes
and errors becomes less of problem if the byte is encoding an ASCII
character.
 
U

Uns Lider

Note that it is not self clocking in the sense that there is no clock
tolerance requirement at all: no single wire protocol can do that.

What if you use a protocol similar to the encoding used for mag stripes?

-- uns
 
Top