mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2023-10-10 13:37:43 +02:00
0f05b1988a
- add modulator ioctl mutex - some more documentation about modulator properties
131 lines
3.3 KiB
Plaintext
131 lines
3.3 KiB
Plaintext
|
|
Modulator channels will automatically be enabled if you redirect data
|
|
from a demodulator to it.
|
|
E.g._:
|
|
|
|
first demod on bridge 0 TAB1, modulator on bridge 1.
|
|
|
|
echo "00 10" > /sys/class/ddbridge/ddbridge0/redirect
|
|
|
|
Currently it is fixed to QAM256. Controls will be added later.
|
|
Rate control is experimental and PCR correction also not
|
|
implemented yet. So, depending on the reception device
|
|
there can be disturbances in playback.
|
|
|
|
It is now also possible to chain redirects.
|
|
E.g., demod and modulator as above, CI on bridge 0 TAB 2:
|
|
|
|
echo "00 01" > /sys/class/ddbridge/ddbridge0/redirect
|
|
echo "02 10" > /sys/class/ddbridge/ddbridge0/redirect
|
|
|
|
The stream is also still available at the demux device
|
|
belonging to the demod devices.
|
|
|
|
Now write and start an application (not provided) that
|
|
talks to the CI to decrypt the desired services.
|
|
For testing one can use a standard application that
|
|
supports decryption. Additionally to seeing the
|
|
decoded service on the PC it will then also be streamed
|
|
into cable by the modulator.
|
|
|
|
|
|
|
|
The modulator device can be controlled with the
|
|
following properties:
|
|
|
|
MODULATOR_FREQUENCY:
|
|
|
|
Set the frequency on Version 2 (FSM) cards
|
|
units - Hz
|
|
range - 114000000-874000000
|
|
allowed values - 114 + 8000000*X
|
|
|
|
For older cards you have to use the
|
|
DVB_MOD_SET ioctl.
|
|
|
|
|
|
|
|
MODULATOR_SYMBOLRATE:
|
|
|
|
Set the symbol rate
|
|
units - Hz
|
|
range - Version 1 cards: only 6900000
|
|
Version 2 cards(FSM): X-7100000
|
|
|
|
|
|
MODULATOR_MODULATION:
|
|
|
|
Set the modulation type
|
|
range: QAM_16 .. QAM_256
|
|
|
|
|
|
|
|
MODULATOR_ATTENUATION:
|
|
|
|
range - 0-31
|
|
unit - 1 dB
|
|
|
|
|
|
MODULATOR_GAIN:
|
|
|
|
range - 0-255
|
|
unit - 0.125 dB
|
|
|
|
|
|
The MODULATOR_ATTENUATOR is based on a switched resistor network,
|
|
also it is backward compatible to our old modulator.
|
|
the MODULATOR_GAIN is based on a variable gain amplifier, so it is less
|
|
accurate then the attenuator.
|
|
High gain values will drive the output amplifier into clipping. The
|
|
limit depends on # of channels active.
|
|
|
|
|
|
|
|
|
|
MODULATOR_INPUT_BITRATE:
|
|
|
|
The modulator will ALWAY insert null packets if it
|
|
does not get enough data.
|
|
If you specify the input bitrate it will insert additional
|
|
null packets according to the difference between input
|
|
and output bit rate.
|
|
The latter is determined by symbol rte and modulation.
|
|
So, this property should be set last.
|
|
|
|
unit - 2^-32 Hz
|
|
|
|
|
|
|
|
Debugging features:
|
|
|
|
MODULATOR_STATUS and MODULATOR_RESET have been added to debug
|
|
possible problems with too high temperatures (overtemperature)
|
|
or PLL lock loss on FSM type cards.
|
|
|
|
The MODULATOR_STATUS property returns a __u32 with the following status bits:
|
|
|
|
- bit 0 : Lock status 1=lock OK, 0 = lock lost
|
|
|
|
- bit 1 : Sticky lock lost indicator
|
|
0 = no PLL lock loss since last status read
|
|
1 = lock has been lost since last status read
|
|
|
|
- bit 2 : 0 = no overtemperature
|
|
1 = overtemperature detected
|
|
|
|
- bit 4 : 0 = PCIe link OK
|
|
1 = PCIe link lost
|
|
|
|
In case of overtemperratur or PCIe link loss you will have to reboot the PC.
|
|
|
|
|
|
Putting a MODULATOR_STATUS property with value 2 will enable the lost lock
|
|
interrupt. This will set the gain to 0 and the attenuation to 31 in case
|
|
of a lost PLL lock.
|
|
|
|
|
|
The MODULATOR_RESET property can be used to reset the modulator without
|
|
needing to reload the driver or rebooting in case of PLL lock loss.
|
|
All channels should be stopped before using it and restarted after using it.
|
|
Otherwise, results are unpredictable.
|