icE1usb: update manual to reflect firmware 0.2 (GPS-DO, 2 ports)
Change-Id: I9dac5b9479af37270dc13e334a278f91f260c7ce
This commit is contained in:
parent
24eb3e308a
commit
9df9995d2f
|
@ -145,3 +145,70 @@ information to the user.
|
|||
=== Use of the Multi-Color RGB LED
|
||||
|
||||
FIXME: describe how it is used.
|
||||
|
||||
|
||||
=== Firmware <-> USB Host Interface
|
||||
|
||||
The icE1usb firmware provides a USB 1.1 full-speed (FS) device with
|
||||
|
||||
* one configuration
|
||||
* 5 interfaces
|
||||
** E1 port 0
|
||||
** E1 port 1
|
||||
** CDC-ACM (control + data)
|
||||
** DFU (device firmware upgrade)
|
||||
|
||||
The interfaces have self-explanatory string descriptors like
|
||||
|
||||
----
|
||||
iInterface 6 E1 port 0
|
||||
iInterface 8 E1 port 1
|
||||
iInterface 9 GPS (CDC control)
|
||||
iInterface 10 GPS (CDC data)
|
||||
iInterface 11 DFU runtime
|
||||
----
|
||||
|
||||
==== E1 ports
|
||||
|
||||
There are two physical E1 ports in the icE1usb. Each is exposed via its own USB _interface_.
|
||||
|
||||
Each port (USB _interface_) contains two _altsettings_:
|
||||
|
||||
* one altsetting with no data endpoints (E1 disabled, this is the default)
|
||||
* one altsetting with isochronous IN/OUT endpoints (E1 enabled)
|
||||
|
||||
In order to activate one E1 port, the driver must perform a USB standard
|
||||
request to activate the _enabled_ altsetting.
|
||||
|
||||
NOTE:: Please note that on many XHCI host controllers there seem to be
|
||||
implementation flaws in the XHCI host controller firmware preventing the
|
||||
activation of both icE1usb ports simultaneously. The XHCI controller
|
||||
firmware erroneously claims that there is insufficient bus bandwidth.
|
||||
However, the same icE1usb hardware/firmware works perfectly fine with
|
||||
OHCI, UHCI and EHCI host controllers.
|
||||
|
||||
As most modern [PC] hardware has XHCI host controllers, you need to
|
||||
choose your hardware carefully if concurrent operation of both icE1usb
|
||||
ports is required in your application.
|
||||
|
||||
==== CDC-ACM with GPS NMEA
|
||||
|
||||
There's a CDC-ACM (virtual com port) interface available in the icE1usb.
|
||||
This will be supported by the standard `cdc_acm` driver of your
|
||||
operating system, and will expose a `/dev/ttyACMx` device on Linux.
|
||||
|
||||
The port provides read-only access to the GPS receiver on-board the
|
||||
icE1usb. You can use this to
|
||||
|
||||
* determine the GPS fix (and hence 1PPS frequency reference)
|
||||
availability
|
||||
* obtain the GPS position of the device
|
||||
|
||||
NOTE:: Write access to the GPS receiver is not permitted as the icE1usb
|
||||
firmware needs to control the GPS receiver for frequency reference
|
||||
purposes.
|
||||
|
||||
==== DFU (Device Firmware Upgrade)
|
||||
|
||||
There's a DFU interface available in order to update the icE1usb
|
||||
gateware and firmware. For more information, see [[firmware]] above.
|
||||
|
|
|
@ -7,8 +7,8 @@ enclosure).
|
|||
It's main building blocks are:
|
||||
|
||||
* an iCE40 FPGA
|
||||
* Two E1 line interface (transformers, biasing networks and ESD protection) footnote:[Only one E1 line supported by firmware so far]
|
||||
* a GPS receiver module with 1PPS output to the FPGA footnote:[GPS-DO supported by firmware yet]
|
||||
* Two E1 line interface (transformers, biasing networks and ESD protection) footnote:[Second interface requires firmware >= 0.2 and OHCI/OHCI/EHCI host controller]
|
||||
* a GPS receiver module with 1PPS output to the FPGA footnote:[Requires firmware >= 0.2]
|
||||
|
||||
=== Schematics
|
||||
|
||||
|
|
|
@ -3,13 +3,19 @@
|
|||
Host Software is software running on the USB host computer to which the
|
||||
icE1usb is attached.
|
||||
|
||||
At the time of this writing, the only software implementing icE1usb
|
||||
support is `osmo-e1d`.
|
||||
At the time of this writing, there are two options for icE1usb driver interfaces:
|
||||
`osmo-e1d` and `DAHDI`.
|
||||
|
||||
=== `osmo-e1d`
|
||||
|
||||
`osmo-e1d` utilizes `libusb` to talk to the icE1usb hardware and offers
|
||||
a unix domain socket based interface to application software.
|
||||
`osmo-e1d` is a pure user-space driver, not requiring any specific Linux kernel,
|
||||
kernel patches or out-of-tree kernel modules. It utilizes `libusb` to
|
||||
talk to the icE1usb hardware and offers a unix domain socket based
|
||||
interface to application software.
|
||||
|
||||
In theory, `osmo-e1d` should work on any operating system with libusb
|
||||
support for isochronous transfers. However, official support is limited
|
||||
to GNU/Linux at this point.
|
||||
|
||||
Software such as `osmo-bsc` and `osmo-mgw` can interface `osmo-e1d` via
|
||||
the `libosmo-abis` support for `osmo-e1d`.
|
||||
|
@ -23,6 +29,11 @@ DAHDI (Digium Asterisk Hardware Driver Interface) is an extremely
|
|||
popular driver for a variety of POTS/PSTN and also TDM interface boards
|
||||
by originally Zaptel, later Digium and now most recently Sangoma.
|
||||
|
||||
DAHDI is available only for Linux, and is provided as source code for a
|
||||
set of out-of-tree kernel modules. You must compile those modules for
|
||||
each specific Linux kernel version you are using. Keep this in mind
|
||||
when performing kernel upgrades and the like.
|
||||
|
||||
DAHDI is supported by a wide range of open source PBX / softswitch software,
|
||||
including Asterisk, FreeSWITCH and yate.
|
||||
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>2</revnumber>
|
||||
<date>January 17, 2022</date>
|
||||
<authorinitials>HW</authorinitials>
|
||||
<revremark>
|
||||
Update documentation to firmware 0.2 (GPS-DO, second E1 port)
|
||||
</revremark>
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1</revnumber>
|
||||
<date>December 13, 2020</date>
|
||||
|
@ -24,7 +32,7 @@
|
|||
</authorgroup>
|
||||
|
||||
<copyright>
|
||||
<year>2020</year>
|
||||
<year>2020-2022</year>
|
||||
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
||||
</copyright>
|
||||
|
||||
|
|
Loading…
Reference in New Issue