Age | Commit message (Collapse) | Author | Files | Lines |
|
Because the Pirelli DP-L10 display initialization has very
strict timing requirements, implement compiler version agnostic
delay functions using inline assembly.
As it turned out, our delay routines always were way off:
delay_ms(1000) with GCC 4.8.2 was actually 400ms,
and with GCC 11.2.0 480ms were measured, the latter resulting
in the DP-L10 display not working anymore.
As the new routines now actually wait the time they should,
scale all existing delay times by 0.4 to get the same behavior
as previously with the old GCC version.
|
|
|
|
|
|
Change-Id: Ic731e258f370ee9afcf5b6c60518f154ca6e6408
|
|
Change-Id: I22950d32296129ad9b27268f975718d239f8f7f3
|
|
Change-Id: Id1a95324c4fc7bb2527026e47c5e524b0d563f82
|
|
Change-Id: Id35d5929ebabbfd2b3580efa461435c26bdcf9c9
|
|
Change-Id: Ida258588538a8a76d97a8c1e8855b2fd28c63be7
|
|
According to osmo-trx README:
SETSLOT sets the format of the uplink timeslots in the ARFCN.
The <timeslot> indicates the timeslot of interest.
The <chantype> indicates the type of channel that occupies the timeslot.
A chantype of zero indicates the timeslot is off.
CMD SETSLOT <timeslot> <chantype>
RSP SETSLOT <status> <timeslot> <chantype>
Change-Id: I63c81155c84fc35cff1704734fd8d2732235c5a4
Related: OS#2944
|
|
As dsp_extcode breaks power measurement and eventually other things,
dsp_excode is only loaded with trx app, not with layer1 nor rssi.
|
|
Thanks to Andreas for pointing this out
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
|
|
|
|
|
|
|
|
This way it is possible to restart a phone without restarting transceiver
application. The operation of TRX is continued.
|
|
It is still not required to transmit dummy bursts, synchronization bursts
and frequency correction bursts. If they are not provided by the
transceiver, they are filled automatically, depending on current slot
configuration.
|
|
|
|
|
|
|
|
|
|
There is no more one-to-one relation between application state, trx
instance and l1ctl link to the phone. An application can have many trx
instances and many l1ctl links to phones. Additionally each trx can have
up to 8 relations to one or different l1ctl links, one for each time slot.
This allows to split one TRX into several phones. (use only one ARFCN)
Also it allows to use multiple phones for multiple TRX. (use multiple
ARFCN)
|
|
Each mask is used to define first time slot number and number of timeslots
per frame. The transceiver needs to choose different masks, depending on
single phone or multi phone operation.
Note: Currently the code only works with very limited number of mask
values.
|
|
|
|
By checking peak level of RACH's training sequence, only peaks that are
good enough are forwarded to the TRX interface. If any received noise
would be forwarded, there would be too many false detection, due to weak
CRC protection of RACH.
|
|
Instead of forwarding access bursts that are above some average noise
floor, the strongest of burst of a multiframe is always forwarded, no
matter how weak it is.
Since bandwidth of serial interface is limited, it is not possible to
forward all received access bursts. If there are suddenly many access
bursts or if a temporary noise causes detection of several bursts, only
the strongest of them is forwarded. This prevents overflow of serial
interface.
Detection of bursts is possible, no matter how weak they are. Tests have
shown that detection works up to 100%, even at border of BTS coverage.
|
|
The TOA of the received access burst is added to the TOA of the
demodulator. This sum is the actual access delay.
|
|
For access burst, the TOA offset is used as offset when reading the 88 IQ
values from DSP buffer.
|
|
|
|
|
|
|
|
|
|
Scheduling of NB/AB/SB/FB depends on given slot type by transceiver
application.
|
|
By using single frame only, loss of packets is reduced. For normal data
frames (and for TCH/H speech), one out of four parts of data gets lost.
For TCH/F speech, only one out of eight parts of data gets lost. The error
correction can compensate the missing parts.
The sync code can use the extended DSP task, but it is currently disabled,
because the current DSP code does not allow scheduling TSC for each
individual task, but we need to use TSC of sync cell here.
|
|
|
|
To alter default gain of 0, the gain can be altered by using SETRXGAIN
control command.
Please use a gain of 0, for normal use.
|
|
The gain of RX does not follow the sync-cell anymore. It still uses the
appropiate gain for sync-cell, but for RX of BTS bursts it uses a gain
that is suitable for a receive level of -47 dBm (by default). This is a
gain level of 0.
The low gain of 0 is the best start value, if phones are close to
the BTS, but also for low RX levels below -100 dBm, as several tests
showed.
|
|
|
|
|
|
Build is optional because it depends on some extra libraries
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
This is a generic interface to submit and retrieve bursts to be
transmitted. By default it has a dummy implementation that does
nothing and it's up to the 'application' to provide a correct
implementation.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
We use the extended mode to have a better control
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|