J
John Walliker
Guest
On Friday, 5 August 2022 at 16:30:03 UTC+1, Joe Gwinn wrote:
margin of well over 10dB I don\'t think optical cable length will be an
issue here.
The originally proposed 6-bit encoding scheme included the data bit
followed by its complement, so that will have removed any dc baseline
fluctuation issues.
SFPs are remarkable tolerant of optical abuse. I have tried using
multimode fibre with single mode SFPs and single mode SFPs with
multimode fibre over lengths of around 50m at 1 and 10Gbit/s. Every
combination works fine despite the optical losses in some of those
configurations.
John
With optical fibre losses of a few tenths of a dB/km and a likely linkOn Thu, 04 Aug 2022 16:40:43 -0700, John Larkin
jlarkin@highland_atwork_technology.com> wrote:
On Thu, 04 Aug 2022 16:40:53 -0400, Joe Gwinn <joeg...@comcast.net
wrote:
On Wed, 03 Aug 2022 14:48:12 -0700, John Larkin
jlarkin@highland_atwork_technology.com> wrote:
On Wed, 03 Aug 2022 16:32:53 -0400, Joe Gwinn <joeg...@comcast.net
wrote:
On Wed, 03 Aug 2022 10:19:49 -0700, John Larkin
jlarkin@highland_atwork_technology.com> wrote:
On Wed, 03 Aug 2022 12:35:16 -0400, Joe Gwinn <joeg...@comcast.net
wrote:
On Wed, 03 Aug 2022 08:52:08 -0700, jla...@highlandsniptechnology.com
wrote:
Is a byte always 8 bits? What can I call a 6-bit byte? A clump?
It would still be a byte. Univac 1108, with 36-bit words.
A byte was always a fraction of a word, but the length of a word was
whatever the computer was designed for. All sizes were tried.
I\'ve worked on digital computers with the following word sizes (in
bits): 12, 16, 24, 32, 36, 48, 64.
There were just as many floating-point formats.
Now days, it has settled down, and words are multiples of 8 bits in
size, usually a power of two. And all FP is IEEE.
The standards folk came up with \"octet\" because byte was so
ill-defined.
Half an octet was sometimes called a nybble. And so on.
I want to send data over an SFP optical link, in 6-bit things.
0 1 1 0 d \\d repeated, roughly 100 Mbits/sec
is DC balanced, which SFP likes.
If you use 8-bit patterns (best for component availability), but use
only the DC balanced subset, does that suffice?
We could do 8b10b, but that would need an FPGA to generate and
receive. I\'m thinking about a spare-time thing that I could design
without an FPGA or uP, all hardware. My digital people are swamped
with big projects and I need something fun to design.
Or, turn it around. Figure out how many DC-balanced patterns you
need, double it (for growth), and figure out long a word is needed.
Don\'t forget to include some control patterns.
The data is a 1-bit steam from a delta-sigma ADC. I just want to
transport it over fiber, and SFP is the easy way to do that. But SFP
is intended for telecom, ac coupled, intolerant of dc imbalance. Most
SFPs won\'t pass anything below about 1 MHz. But they are crazy fast
and have great AGC.
Is it 100 million bits per second, or symbols per second?
The ADUM7703 can be clocked up to 20 MHz, but we really don\'t need to
do that. 10M would be plenty.
What is being digitized? Voice? Data of some kind?
Some customer\'s analog voltage. Might be a strain gage load cell, for
example. We\'d have some input ranges.
All very low bandwidth stuff. Is it required to transmit absolute
values, or is just the \"AC\" part enough?
Sounds like for instance actual strain values are desired.
Is there a maximum latency and latency jitter requirement?
Neither, actually. I just want to transport the ADC output correctly.
OK.
One-bit delta samples are usually signed, so the minimum is two
symbols. If the voltage being sent is zero, then we\'ll get a steady
+,-,+,-,+, stream, which will have very strong RF spurs and thus
emissions, so need to break this up.
The ADC has a one-bit output over +-320 mV input, and averages 50%
duty cycle at 0 volts in. I just want to transport that bit over a
fiber link.
So the ADC output is a signed bit per sample.
It\'s an ADUM7703 delta-sigma a/d converter; it doesn\'t actually sample
but runs its stuff continuously. It has a clock input and a single bit
logic output. The duty cycle of the output reports the analog input:
0% duty cycle is -320 mV and 100% is +320 mV. It\'s fully isolated and
crazy precise. Once we convey that logic level to a destination, we
\"decimate\" it into a 16 or 18 or 20 bit value that reflects the input
voltage. The decimation is typically digital, a sinc3 filter, but I
might do it all analog in this case. Decimation becomes a lowpass
filter.
The fact that the ADUM7703 is clocked implies that is samples on the
clock. Otherwise, why require a clock input? Datasheet page 4 shows
the relationship.
More at end.
A zero symbol makes it three, and an idle symbol, makes it four
symbols.
Gigabit Ethernet does something like this, only grander, with two
patterns for every possible symbol to be sent, and they track current
DC balance, and choose which pattern to use that will reduce the
running DC balance.
8b10b does elaborate long-term DC balancing like that. Too much work.
SFPs usually tolerate a little DC imbalance. You can send PWM at, say,
35% to 65%.
Yes, too much trouble. But if you use table lookup, you can get close
enough.
I don\'t want an FPGA or a uP in this box. All my coder-people are too
busy on other projects now. So, a few gates and flipflops.
OK. This too can be done, given a large ratio between optical bit
rate and ADC bitrate.
The AGC in the SFP is pretty fast, but the optical bitrate must be
much faster, or the AGC will flatten the desired signal. The SFP
datasheet should define the AGC response speed.
The combination of AGC and AC coupling makes SFPs not work well at
data rates below about 1 MHz. That varies a lot with specific parts.
So, pick a convenient optical signaling (flash) rate well above the
AGC reaction speed, so you will be able to recover the sent pattern at
the SFP output.
Here is one possible design:
Choose a ADC sample rate a fraction of the optical rate. The fraction
is determined by choosing orthogonal codes to represent +1, zero, or
-1 ADC outputs to be sent. Also need a frame-start symbol.
The orthogonal codes are chosen from the standard Gold Codes:
.<https://en.wikipedia.org/wiki/Gold_code
The codes have odd length, and are fairly close to balanced, so one
ought to be able to find some truncated Gold codes of even length
(drop last bit) that are exactly balanced. We need only four such
symbol codes, and a 16-bit code would allow the optical rate to be 16
times the code (ADC output) rate.
There must be a steady stream of ADC symbols, even if ADC output is
zero, to keep the SFP AGC stable.
Generation. Drive a 16-line demux with the optical clock. Make or
don\'t make connections from the demux to an adder, as dictated by the
symbol to be sent. The adder output is used to drive the SFP TX
input.
Reception. Lock a phase-lock loop to the optical flash rate, to
recover the optical clock.
Have one correlator per symbol type, all running in parallel. Given
the near-perfect correlation behavior of Gold codes, the correlator
output will be roughly one unit amplitude except at the pattern
center, where the peak will be about 16 units, so a threshold set at 8
units should enable perfect recovery.
The frame sync symbol is used if we are switching between a reference
voltage and the strain-gage output voltage, to mark where reference
starts. May need an ref-end symbol.
If no correlator peaks for more than a few symbol periods, complain.
The SFP will also tell you if any optical power is being received, if
I recall.
Design the receiver first, as it\'s usually the harder of the two, then
design the transmitter to make the receiver happy.
It\'s really simple; just move the 1-bit logic level output of the ADC
to the destination and recover a clock to know where the bits are.
We\'d clock the ADC at 20 or maybe 10 MHz.
If I\'m understanding the timing diagram on datasheet page 4, one can
have a long string of ones, or of zeros, depending on the input analog
voltage, which has fairly low bandwidth and so can linger at a voltage
for very long durations.
It\'s these long rafts of ones or zeros that I worry will baffle the
SFP\'s AGC function, causing data-dependent link failures.
What make and model of SFP are you looking at?
But one could use two Gold-code symbols, encoding MDATA one and MDATA
zero, and a pair of correlators at the other end of the fiber-optic
link to recover the original MDATA stream.
And, optical SNR matters. If the minimum SNR is high, the tolerance
for non-zero DC balance, is increased. What is the maximum optical
cable length contemplated?
margin of well over 10dB I don\'t think optical cable length will be an
issue here.
The originally proposed 6-bit encoding scheme included the data bit
followed by its complement, so that will have removed any dc baseline
fluctuation issues.
SFPs are remarkable tolerant of optical abuse. I have tried using
multimode fibre with single mode SFPs and single mode SFPs with
multimode fibre over lengths of around 50m at 1 and 10Gbit/s. Every
combination works fine despite the optical losses in some of those
configurations.
John