ICE40 based passive tap » History » Version 5
laforge, 01/06/2020 03:14 PM
1 | 4 | laforge | {{>toc}} |
---|---|---|---|
2 | |||
3 | 1 | laforge | h1. ICE40 based passive tap |
4 | |||
5 | In 12/2019, @tnt implemented a bi-directional passive E1 tap device that samples the entire raw 2MBps data stream in both directions. |
||
6 | |||
7 | This is useful in situations where the E1 line is not used channelized, i.e. not with individual 64kBps timeslots, such as in frame relay or 'wideband ISDN' (B-ISDN) use cases, where [[osmo-e1-recorder:]] and re-combining 64k slots in the capture has not always been successful. |
||
8 | |||
9 | Contrary to the "normal" (end-of-line) [[ICE40_E1_USB_interface]], this approach uses actual E1 LIU (Line Interface Unit) hardware in order to use their built-in equalizer and additional gain for passive tapping of long-haul E1 lines. |
||
10 | |||
11 | The setup conceptually looks like this: |
||
12 | |||
13 | {{graphviz_link() |
||
14 | digraph G { |
||
15 | rankdir = LR; |
||
16 | |||
17 | e1tap [label="osmocom e1-tap\ninserted into E1 line"]; |
||
18 | xcvr1 [label="osmo-e1-xcvr 1"]; |
||
19 | xcvr2 [label="osmo-e1-xcvr 2"]; |
||
20 | |||
21 | e1tap -> xcvr1 [label="E1 A->B"]; |
||
22 | e1tap -> xcvr2 [label="E1 B->A"]; |
||
23 | xcvr1 -> iCEpick [label="serial bits A->B"]; |
||
24 | xcvr1 -> iCEpick [label="SPI (ctrl)"]; |
||
25 | xcvr2 -> iCEpick [label="serial bits B->A"]; |
||
26 | xcvr2 -> iCEpick [label="SPI (ctrl)"]; |
||
27 | |||
28 | iCEpick -> PC [label="USB (ISO)"]; |
||
29 | } |
||
30 | }} |
||
31 | |||
32 | 5 | laforge | |
33 | h2. Bitstream / Firmware / Host PC Software |
||
34 | |||
35 | The firmware can be found in the @e1-recorder@ branch of the @ice40-playground@ git repository |
||
36 | * upstream source by @tnt: https://github.com/smunaut/ice40-playground/tree/e1-recorder |
||
37 | * some minor fixes to the host by @laforge: https://github.com/laf0rge/ice40-playground/tree/e1-recorder |
||
38 | |||
39 | 1 | laforge | h2. Pictures |
40 | 2 | laforge | |
41 | 3 | laforge | h3. APU2 assembly with 2x e1-xcvr and iCEpick |
42 | |||
43 | !apu-assembly.jpg! |
||
44 | |||
45 | h3. APU2 assembly with 2x e1 xcvr interconnected with e1tap |
||
46 | |||
47 | !assembly-interconnect-tap.jpg! |
||
48 | |||
49 | 2 | laforge | h3. Two E1 XCVR with LOS (Los Of Signal) ON |
50 | |||
51 | !e1xcvr-los-on.jpg! |
||
52 | |||
53 | h3. Two E1 XCVR with LOS (Los Of Signal) OFF |
||
54 | |||
55 | !e1xcvr-los-off.jpg! |
||
56 | 3 | laforge | |
57 | h3. iCEpick with LED cyan (all OK) |
||
58 | |||
59 | !icepick-cyan.jpg! |
||
60 | 4 | laforge | |
61 | h3. APU2 LEDs (labelled in German) |
||
62 | |||
63 | !apu-led.jpg! |