Project

General

Profile

E1 tracer » History » Revision 6

Revision 5 (tnt, 10/29/2020 03:41 PM) → Revision 6/13 (roh, 12/18/2020 05:26 PM)

h1. e1-tracer 

 This page is about the "production" version of the setup described in [[ICE40_based_passive_tap]]. 

 It is a bi-directional, high-impedance passive tap for E1 (PRI/S2M) tracing.    It traces both directions of a link simultaneously via two LIU (Line Interface Units) attached to an iCE40 FPGA with E1 framer + USB softcores.   

 The traces are sent as isochronous USB transfers to the host PC, where they can (for example) be stored on disk. 

 h2. hardware  

 Hardware files can be found at: http://git.osmocom.org/osmo-e1-hardware/tree/hardware/e1-tracer and are available as Open Source Hardware. 

 !e1_tracer.jpg! 

 h3. design files 

 We originally started with a prototype from an iCE40 evaluation board plus two osmo-e1-xcvr and one e1-tap as described in [[ICE40_based_passive_tap]]. 

 Meanwhile, we have designed a fully integrated board.    Design files are part of the @osmo-e1-hardware.git@ repository. 
 * Schematics: 
 ** EAGLE: source:hardware/e1-tracer/e1-tracer.sch 
 ** PDF: source:hardware/e1-tracer/e1-tracer_sch.pdf 
 * Board layout 
 ** EAGLE: source:hardware/e1-tracer/e1-tracer.brd 
 ** PDF: source:hardware/e1-tracer/e1-tracer_brd.pdf 
 ** Gerber: source:hardware/e1-tracer/gerber 
 * Bill of Materials 
 ** gnumeric spreadsheet: source:hardware/e1-tracer/e1-tracer_eBOM.gnumeric 
 ** CSV export: source:hardware/e1-tracer/e1-tracer_eBOM.csv 

 

 h3. gateware + firmware 

 The FPGA gateware and RISC-V softcore firmware are found in the @osmo-e1-hardware.git@ repository, under the @gateware@ and @firmware/ice40-riscv/e1-tracer@ directories respectively. 

 h3. flashing 

 to bring up the board after manufacturing there are 2 steps: 

 * flash the padded bootloader into spi flash 
 * flashing the runtime gateware and application via dfu 

 h4. flashing the bootloader 

 this involves pulling the _CRESET line on the spi programming header next to ground (the next pin nex to it) to keep the fpga in reset while we access the flashchip. 
 the board can be powered via usb for this, but the spi programming cable should not have a vcc line connected then. 
 the 1M0xff.bin file consists of 0xFF and is used as padding for the unused flash areas. 
 the tool used for flashing here is flashrom via a stm32(bluepill) based adapter ("STM32 virtual serprog for flashrom") but virtually any spi programmer can be used. 

 <pre> 
 cat e1tracer-bootloader-20200822.bin 1M0xff.bin > tmp 
 dd if=tmp of=flashme1M.bin bs=1024 count=1024 
 rm tmp 
 flashrom -p serprog:dev=/dev/ttyACM3:4000000 -w flashme1M.bin 
 </pre> 


 h4. flashing the runtime 

 to access the bootloader the first time, before any runtime is flashed you need to reset the board (power) while SW1 (button) is pressed to force bootloader(dfu) mode. 

 flashing itsel is easy since it only needs the regular userspace tool dfu-util and firmware from http://ftp.osmocom.org/binaries/e1-tracer/firmware/ (for now on https://people.osmocom.org/tnt/stuff/e1-recorder/ ) 

 <pre> 
 dfu-util -d 1d50:6150 -c 1 -a 0 -D riscv_usb.bin 
 dfu-util -d 1d50:6150 -c 1 -a 1 -D fw_app.bin -R 
 </pre> 

 h3. availability 

 Fully assembled products based on this hardware are going to be made available by "sysmocom":https://sysmocom.de/ 

 h2. software 

 The host software is found in the @e1-recorder@ branch of @ice40playground.git@, see https://github.com/smunaut/ice40-playground/tree/e1-recorder/projects/riscv_usb/sw 

 There are two related programs: 

 * @main@ - the program used to perform recordings and store them 
 * @dump@ - the program to analyze recordings
Add picture from clipboard (Maximum size: 48.8 MB)