Clockless serial to parallel interface options???......  - Page 1
Forum section: electronics / projects

author: Smokey
author_rank: Super Contributor
timestamp: June 14, 2024, 09:54:53 pm
content: I have a widget with a single data output line that I need to use as the input to a serial to parallel converter. This would be trivial with a simple shift register, but I don't have any extra data lines to use for clock and OE.I need to "upgrade" this existing design that I cannot change so I'm stuck with that single data line.Other requirements:1) I only actually need 4bits parallel output.2) Data rate on the serial input does not need to be crazy fast. No need for Mbps here. If I could change the parallel output at about 1kHz or faster, that would be fine.3) Normal 3.3V - 5V supply ranges.4) Not a microcontroller. Besides the digital design purist aspect of a micro here should not be necessary, it's also a production step I don't want.5) Pretty much any serial data format is acceptable. I can tweak the firmware on the widget to output what I need. I just can't change the hardware interface from the single data line.It's hard to search for this since most serial to parallel shift registers are clocked and that's never used as a parameter in the parametric search.I've so far found the SN74LV8153, which looks like it will work fine. But it's a little expensive, and I don't need 8 bits of parallel output so having to send it two packets for a total of 16bits is unnecessary. The addressing is also unnecessary since I'll only be using one of these.https://www.ti.com/lit/ds/symlink/sn74lv8153.pdfAre there any other clockless serial to parallel interfaces that you guys can think of? Preferably 4 bits?

author: Benta
author_rank: Super Contributor
timestamp: June 14, 2024, 09:59:55 pm
content: RS-232.Standard since decades.You can choose between 7- and 8-bit transfers.

author: Smokey
author_rank: Super Contributor
timestamp: June 14, 2024, 10:09:11 pm
content: Quote from: Benta on June 14, 2024, 09:59:55 pmPart numbers?I looked at "uart to parallel" and "RS232 to parallel" and didn't see anything reasonable in IC form.

author: Benta
author_rank: Super Contributor
timestamp: June 14, 2024, 10:15:46 pm
content: You're right. The old standard UARTs don't seem to exist any more.Another option is Manchester coding, which is self-clocking. However, you'll need to think about some kind of start/stop frame timing, which needs additional logic. A small 14-pin, 50-cent MCU would really be the best solution. I know of no off-the-shelf parts.

author: Smokey
author_rank: Super Contributor
timestamp: June 14, 2024, 10:26:19 pm
content: I'm pretty sure SN74LV8153 does the job here. If that's all that there is, I can live with the down sides I mentioned above.Hell, even a tiny 8 pin micro with minimal memory should do what I'm looking to do here. But not having a firmware programming/testing step in production is a big enough deal that I'm going to explore the pure hardware first.

author: Benta
author_rank: Super Contributor
timestamp: June 14, 2024, 10:30:24 pm
content: OK.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: June 15, 2024, 05:10:59 am
content: Quote from: Smokey on June 14, 2024, 09:54:53 pmThat's single sourced, but it does tick your boxes, and the price is not lunatic levels.Has a fixed first bit for easy auto-baud and managed 2-24k Baud. Could be useful to clone, as it is well documented, and supports up to 8 x 8b.How many are you making ? You can get many MCUs programmed by the distributor, which makes them hassle free in production.Quote from: Smokey on June 14, 2024, 09:54:53 pmAnother bus is SENT = Single Edge Nibble Transfer, which uses a pulse width scheme.The formal SENT has an autobaud pulse then data, but you could use a Logic approach of 74HC590 = 8b Counter + Latch.Drive /CLR & RCLK and you have a pulse-width capture to 8bits. Then all you need is a good enough clock.Your 4 bits can tolerate a few % clock, so common & cheap Oscillators look to be 32.768kHz or 1MHz/2Mhz/4MHz 16-25c at lcsc32kHz is a bit tight for your 1kHz (counts to 32, but allow LSB clock jitter), but 2MHz can manage 4 bits 8us quanta in 128us max ( 0b1111 ) pulses.You may even find a 'good parts' RC oscillator is good enough, for 4 bits ?What is your host MCU clock speed and precision ?

author: ArdWar
author_rank: Frequent Contributor
timestamp: June 15, 2024, 05:38:45 am
content: Random idea: WS2814(F)Need to send the entire 32bit but it's dirt cheap for sure.Of course mind the usual problem with consistency, reliability and supply chain.Slightly fancy: TCA5405

author: pcprogrammer
author_rank: Super Contributor
timestamp: June 15, 2024, 06:23:49 am
content: There is the one wire protocol.For instance the DS2408 can be used to address 8 bidirectional lines. Not sure if you can reach a toggle speed of 1KHz.

author: ArdWar
author_rank: Frequent Contributor
timestamp: June 15, 2024, 06:25:31 am
content: The problem with OG 1-Wire parts are basically their Dallas/Maxim/Analog tax...LTC/ADI parts are at least usually engineering marvels that work like a charm. This one however feels like expensive for no reason.

author: mariush
author_rank: Super Contributor
timestamp: June 15, 2024, 07:42:08 am
content: Have you looked at some more uncommon chips that you could maybe repurpose, like for example let's say some infrared detector to parallel (what may have been used in a tv to read pulses from an infrared sensor and decode them) or maybe something like s-video/composite to something decoder?

author: Smokey
author_rank: Super Contributor
timestamp: June 15, 2024, 08:06:37 am
content: Quote from: ArdWar on June 15, 2024, 05:38:45 amThe WS2814 is way out of the box, but I like it! I bet that would work. It would probably work as a 4 channel DAC of sorts as well by sending it various brightness for each output.The TCA5405 is right down the bulls eye though. 1MHz serial input frequency is much faster, and it's cheaper."The bit period can be any value between 1µS and 10mS."And it's just one packet.https://www.digikey.com/en/products/detail/texas-instruments/TCA5405RUGR/2625884How did you find that? Considering it's categorized under "Interface, Specialized" in digikey, that's not very searchable.

author: dmendesf
author_rank: Frequent Contributor
timestamp: June 15, 2024, 12:22:10 pm
content: Use a 4060 to generate a counter and a 16:1 mux (going from the first to tenth input) to fake 10 bits of RS232 data (start bit + 8 data bits + stop bit).

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 15, 2024, 02:43:12 pm
content: Well, some ideas:- Line codings are wildly too-heavy-weight, I'm guessing. (Good way to get high bitrates with integrated clock, but clock recovery and data separation requires a state machine.)- You can always run a UART without an MCU. You're limited to whatever data formats it supports, and newer ones may be more complicated than is worth (e.g. you need to drive a data/address sequence to initialize control registers). Granted, you might have to go back quite far in history to find one with a minimum of registers and maximum configuration pins (e.g. did any do it where baud can be jumper selected?).- Async with assumed timing, or something simple like Manchester where clock is integral and easily recovered, are likely options.- Making your own async transmitter from gates isn't very difficult; a shift register clocked slow (or clock-enabled once every N clocks) and preloaded with parallel bits is all that's needed, including hard-wired '1' for start-of-frame and '0' for end. (Can even build your own XOR parity chain if you want.) Or if data are stable (or it doesn't matter when they're sampled), a mere counter+mux to sequence the bits will do. I once did this in an experimental converter controller I built in a MAX7000 CPLD, to blink out status/fault codes, but, granted a CPLD may be a bit "cheating" for here.- PWM and PPM are always "free". They're very much the "OG" protocols, for example ADCs on the Apollo guidance computer were PPM based (>10 bits I think). You can do them in pure analog if you don't mind a bit of error (16 levels = 4 bits would require modest precision resistors, and a proper timer and comparator setup, not going to be winging it with a crude RC timing ramp and few transistors), and they're very easily received (pulse or delay counters). Probably assumes consistent timing between tx/rx, with PWM being readable without matching clock (or clock at all, as with analog filtering).- That said, you could modify PPM into a pulse-burst coding: as long as a counter is counting up, emit a pulse AND'd with CLK. When count complete, set to zero. The burst would be variable number of pulses, and the delay between bursts fixed so that a missing-pulse detector (analog) or counter can receive it. (Complete analog rx simple enough, too: simply integrate the pulses, S&H, and reset intergrator after timeout.)Tim

author: xvr
author_rank: Frequent Contributor
timestamp: June 15, 2024, 06:27:47 pm
content: How many IC in reciever you can afford? Some kind of PWM demodulator can be build in 2 IC: 74HC595 and 74HC123.Protocol is analog of WS2814: short pulse code 0, long - 1. Super long pause ended transfer.First half of 74HC123 runs from positive pulse of input and trigger in middle of short/long pulse interval. Its output clocked in data to 74HC595 (by end of interval). Data to 595 comes from input signal.Second part of 123 form end-of-sequence pulse. It triggered from positive pulse of input and retrigged for each input pulse. When it finish its pulse contents of 595 shift register to its output latch.On sender end you just send bits from SPI (3 bit of SPI for each bits to output). Logical 0 send as 100, logical 1 as 110.You need 12 SPI bit (for 4 output bit), so you need 2 SPI byte to be send.Brif shema attached. No power nets, no RC nets.Time constants for monostable generators expressed in period of SPI.

author: zapta
author_rank: Super Contributor
timestamp: June 15, 2024, 09:11:20 pm
content: Is a SPLD acceptable? This one for example has enough resource to implement a single line serial to parallel.https://www.mouser.com/ProductDetail/Renesas-Dialog/SLG46826G?qs=%252B6g0mu59x7Lz4SMy5idICg%3D%3D

author: langwadt
author_rank: Super Contributor
timestamp: June 15, 2024, 09:45:35 pm
content: cheapest mcu with enough pins ?

author: PCB.Wiz
author_rank: Super Contributor
timestamp: June 15, 2024, 11:53:23 pm
content: Quote from: xvr on June 15, 2024, 06:27:47 pmThat's valid too.The OP might choose a HC594 if they want a latch-clear for power up reset.The TI SN74HCS594 and Nexperia 74LVC594 have Schmitt pins, so the monostable can simplify to smaller parts.The data pin can be a simple RC, and the storage clock can be an open drain + RC monostable on the CLK signal.Another RC on the RCLR pin can give POR if needed.

author: ArdWar
author_rank: Frequent Contributor
timestamp: June 16, 2024, 09:31:13 am
content: Quote from: Smokey on June 15, 2024, 08:06:37 amI just stumbled on that partyearsago and just remember it existed.Surely you had got one of those project where the design requirement is so out there that you still remember what parts you use almost a decade later. Heck, I even surprised this part isn't discontinued or even NRND'ed yet considering how niche and specific it is.

author: Smokey
author_rank: Super Contributor
timestamp: June 16, 2024, 10:27:16 am
content: Quote from: ArdWar on June 16, 2024, 09:31:13 amEpic. That's why I love this place.However much I would like to go ULTRA purist and make a solution out of a bunch of discrete logic, I think the TCA5405 is the winner this time....You guys are the best.