Re: Mantis and MB86A16 (VP-1034) and DiseqC commands not working.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>> Freq+symrate is correct; I tried several freqs / pols / symbol rates on
>>> sat=2.
>>>
>>> I am quite sure that the problem is simple and diseqc related, for the
>>> several reasons:
>>>
>>> => my normal sat receiver is working fine on all 16 sat feeds (4*4)
>>>
>>> => KNC1 DVB-C is also working fine on all sats / pols / bands; the fact
>>> that it is capable to select different sats proves that its diseqc
>>> commands are working.
>>>
>>> => however VP1034 is working only on first satellite (out of 4). This
>>> seems to be caused by 18/13V+22kHz signaling (not diseqc),
>>>     
>>
>>
>> So in fact DiSEqC is not failing for you, but 22k tone for SEC_A/B
>>   
> 
> I think that you are referring to the use of a 22 kHz tone to operate a
> switch to select between 2 satellite inputs (22 kHz ON/OFF)? I am not
> using 22k tone, not for SEC_A/B, and also not for band selection.
> 
> I am using (and in fact must use) DiSEqC 1.0 for my switch to operate
> properly (OK, DiSEqC uses 22 kHz pulse width modulation, but that is
> different).
> 
> Perhaps I haven't explained my setup very well.
> 
> I have a dish with 4 Quattro LNBs, ie. 16 cables. I use a Spaun 17089NF
> switch, with 16 inputs and 8 outputs. The switch is controlled by DiSEqC
> 1.0, and allows to select from 4 sats, 2 pols and 2 bands, i.e. 16
> possible combinations = 16 inputs. Inputs are aligned as follows:
> 1: sat=1 band=low pol=V
> 2: sat=1 band=low pol=H
> 3: sat=1 band=high pol=V
> 4: sat=1 band=high pol=H
> 5: sat=2 band=low pol=V
> 6: sat=2 band=low pol=H
> ...
> 16: sat=4 band=high pol=H
> 
> In order to select eg. sat=2/band=low/pol=H (i.e 10832H/22000 on second
> satellite) the VP1034 should send the following DiSEqC string: "e0 10 38
> f6", which will select input#6 from the switch as the source (see
> http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/applic_info_turner-receiver.pdf).
> I have verified that this the VP1034 is in fact sending (or trying to
> send) the correct string (see log file in previous email).
> 
> As mentioned: all of this works fine with KNC1 DVB-S. Also working
> perfect with any normal sat receiver.
> 
> But with VP1034 DVB-S it does not work; although the driver is logging
> the correct DiSEqC string. But in fact it switches to input#2, which has
> same pol and band, but is on sat=1. So I wondered how this was possible
> if DiSEqC wasn't working at all ... then I found out the reason: the
> VP1034 is sending both the appropriate DiSEqC command, and using the
> conventional 18/13V+22kHz signaling at the same time. So although DiSEqC
> is not working, my switch responds to 18V to select Horizontal
> polarization, and the absence of 22 kHz tone to select the lower band.
> Selection of the satellite however fails then of course, and apparently
> defaults to sat=1. So I end up being connected to input#2 instead of
> input#6.
> 
> To further verify my assumptions, I connected the VP1034 directly to
> input#6 feed (sat=2,low,H) of my Spaun switch, and it works immediately.
> This points to a selection problem, and shows that the freq+symrate etc
> is correct.
> 
> So it seems to me that either DiSEqC functionality is not switched on

sounds like you don't have the tone burst working. Looking in there..
Can you please try the modified burst callback ? You may/may not need to
play a bit with a bit of sleep after the break in each case.

static int mb86a16_send_diseqc_burst(struct dvb_frontend *fe,
fe_sec_mini_cmd_t burst)
{
	struct mb86a16_state *state = fe->demodulator_priv;

	switch (burst) {
	case SEC_MINI_A:
		if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_TONEOUT2, 0x00) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
						       MB86A16_DCC1_TBEN  |
						       MB86A16_DCC1_TBO) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0)
			goto err;
		break;
	case SEC_MINI_B:
		if (mb86a16_write(state, MB86A16_TONEOUT1, 0x5b) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_TONEOUT2, 0x00) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
						       MB86A16_DCC1_TBEN) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0)
			goto err;
		break;
	}

	return 0;
err:
	dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error");
	return -EREMOTEIO;
}

> properly in the register settings (I cannot verify if any DiSEqC pulses
> comes out, because my oscilloscope is broken) or perhaps there is some
> kind of timing problem. In fact I notice in the source code of the KNC1
> driver that there are some wait_diseqc_idle() calls and another
> diseqc-related functions call.
> 
> Are you working under NDA 

Yes

> 
> I tried these changes anyway, just to see what would happen, but no
> result. Anyway, my switch does not listen to sat-selection by 22 kHz
> tone, but uses 22 kHz tone or band selection (low/high) instead.
> 

ah, ok

_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux