[linux-dvb] Pinnacle PCTV Sat HDTV Pro USB (PCTV452e)

garlicdevel at ntlworld.com garlicdevel at ntlworld.com
Sun Oct 28 15:46:39 CET 2007


> You can change the GPIO1 initialisation to 0x02 instead of 0x82. 
> this will switch the led to green when the frontend gets open()'ed.
> To switch it back to orange insert
>  stb0899_write_reg(state, STB0899_GPIO01CFG, 0x82);
> in the stb0899_sleep() function.
> (this should be somehow limited to the pctv452e as the GPIOs might 
> have different meanings on other devices)
> 
> Dominik

I've recently updated perl script to get the correct reg names
and uploaded a typical output from the script for tuning to BBC1 as "output.log"
this shows the order in which the registers are being set typically under the win environment to give us some more clues

I just spotted the above in the log for GPIO01CFG
and tried this out in the driver and it now works :) I had the values the wrong way round for orange / green
which is a relief (I was worried there might have been a bigger problem somewhere with setting the registers)
I've now set the light to come on during tuning / device access (this is usually the same time when there is power for the LNB)

updated the patch for stb0899_reg.h with a couple more minor changes (probably makes no difference)
based on the output of the win driver / the order the registers are set in
pulled off a newer release of stb0899 as the Unlocking error seemed to be a bit random
but this check has been removed recently I think

for szap the one I've been using is located here
http://abraham.manu.googlepages.com/szap.c
this is the latest one mentioned by manu
I've put up a small tar.bz2 file containing a script and the needed files to compile, just to make this easier for anyone who wants to try this


at the moment I'm slowly working my way through the registers and manu's code
to try and work out how everything fits together
I think I've got diseqc figured out now at least from looking at the log
pulled the diseqc specs from here http://www.eutelsat.com/satellites/4_5_5.html
The win driver appears to probe for any diseqc devices attached to the Bus using "E2 00 00"
the 00 specifies all devices on the bus and the E2 requires a response from any slaves attached looking at the specs

when nothing is found, the LNB power is switched on then the following command is issued "E0 10 38 f0"
I think this means set the switcher to the first position based on szap / specs
this looks like it's always the same which makes me think the win driver is ignoring the diseqc setting at the moment and always
selecting the first switch option

Also I think that when we init the FIFO register at the beginning this doesn't output onto the bus
as it looks as if the precharge bit has to be set within DISCNTRL1 before anything is output
It also looks as if the win driver writes values in a slightly different way
I think with the current linux code we enable precharge set one byte then disable precharge to send one at a time
with the win driver it looks as if it's possible to send more than one byte at a time into FIFO
set precharge, send in all the bytes to FIFO, unset precharge
DISSTATUS then counts down to zero, I think using the first 4 bits (could be wrong on this)
the 5th bit is set to on when data is still being sent (0x13, 0x12, 0x11) then the 6th bit is set as well when the fifo is
marked as clear (0x30)

still if it isn't broke don't fix it, if it works as is at the moment in the linux driver then this is good enough for me :)
I haven't got a switch in place but I do have a motor
I'll need to experiment with different commands later on to see if I can get the thing to move and twirl around using vdr

--Richard

-----------------------------------------
Email sent from www.virginmedia.com/email
Virus-checked using McAfee(R) Software and scanned for spam




More information about the linux-dvb mailing list