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

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

 



Hi Manu,

Manu Abraham wrote:
Zoilo Gomez wrote:
Manu Abraham wrote:
Zoilo Gomez wrote:
Manu Abraham wrote:
Zoilo Gomez wrote:
Manu Abraham wrote:
Michel Verbraak wrote:
Manu, list,

I was testing DiseqC to control my rotor (Palm H-H 2100A) and
because i
could not get a scan done I finally pulled my rotor from my roof
top and
placed it next to the pc.

I found the following results:

- When I boot my pc and modprobe the mantis module the card powers
on. I
see a green light lighting up on my rotor.
- When I tried the goto position 0 diseqc command I saw my light
change
from green to red to green. This normal when the command string is
send
to the rotor ( I do have another card which show the same
effect). But
the rotor does not change position.
- When I tried the goto X diseqc command saw my light change from
green
to red to green.  But the rotor does not change position.

The only difference I could see is that the change in colour is
faster
for the VP-1034 card than my other card a VP-1020a (which is
working as
it should).

I think probably the MB86A16 driver could use some delays in between
for
communicating with SEC devices.
SEC devices are not taht fast in response and hence could possibly
be an
answer for the problem.
Was this ever resolved?

I think so, I think Michel got his positioner working a while back.

Today I tried to get diseqc running with my VP-1034, to control my
Spaun
switch, but no success.

With a KNC1 DVB-S card diseqc is working fine, switching correctly
between different feeds/sats etc. So this seems to point in the
direction of a problem with the diseqc implementation in the Mantis
driver ...

I tried to introduce some msleep_interruptible(100) calls, in
particular
before and after the 4-byte diseqc command is being sent, but no
positive results.
Do you get any I2C transaction errors ?
No.

The diseqc message itself is OK; I verified the message content as
it is
being written into the registers 0x18-0x1b.

Can you paste the logs ?
Here you go; I am trying to tune to 10832 H 22000 on the second
satellite out of 4, so "F6" seems to be the correct diseqc byte.



May  1 02:12:26 localhost mb86a16_write: writing to
[0x08],Reg[0x20],Data[0x04]

(... log file cut ...)

May  1 02:12:27 localhost mb86a16_write: writing to
[0x08],Reg[0x36],Data[0x06]
May  1 02:12:27 localhost mb86a16_set_fe: !!!!! No signal !!!!!, try
again...
If the frequency/symbol rate is correct, this does look like a bug (of
course this is not relevant to diseqc switching, but can also result
from switching positions)
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 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 or is it possible to send me a copy of the VP1034 register datasheet so I can fix things?


looking at which, can you change the tone function to look like this ?

static int mb86a16_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t
tone)
{
	struct mb86a16_state *state = fe->demodulator_priv;

	switch (tone) {
	case SEC_TONE_ON:
		if (mb86a16_write(state, MB86A16_TONEOUT2, 0x5b) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA |
						       MB86A16_DCC1_CTOE) < 0)

			goto err;
		if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0)
			goto err;
		break;
	case SEC_TONE_OFF:
		if (mb86a16_write(state, MB86A16_TONEOUT2, 0x5f) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA) < 0)
			goto err;
		if (mb86a16_write(state, MB86A16_DCCOUT, 0x00) < 0)
			goto err;
		break;
	default:
		return -EINVAL;
	}
	return 0;

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


 which is
applied simultaneously with the diseqc command. However, switching to a
different sat is impossible, because diseqc is not working.

i think the 22k tone might be failing and not DiSEqC. can you check
whether the mentioned change does help ?

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.

Z.


_______________________________________________
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