AT76C651

Sklaventreiber
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: AT76C651

Beitrag von bellum »

rhabarber1848 hat geschrieben:newcode hat den Patch für das V13-Modul erstellt und mir freundlicherweise zur Verfügung gestellt.
Mit seiner Erlaubnis habe ich den Code im ULC hinterlegt: at76c651.c
Mensch, Mensch, dass sich hier noch was tut hätt ich nicht gedacht und dann auch noch sowas. Ja ist denn heut schon Weihnachten :D :gruebel:
Ich war ja bis dato immer ein großer Fan von AudioSlyers V8u und hab dafür auch einige Verrenkungen gemacht (backdate auf Kernel 2.4.34, etc.) aber die V13 ist noch besser. Noch geringere BERs, bisher keine Ruckler, gute Umschaltzeiten und auch noch mit Sourcen, was will man mehr...
Jedenfalls Danke an den Coder und den Supplier. Werde weiter Testen und berichten...

Gruß bellum
MajorK
Einsteiger
Einsteiger
Beiträge: 328
Registriert: Freitag 9. Mai 2003, 09:55

Re: AT76C651

Beitrag von MajorK »

Gibt's die V13 auch für Kernel 2.4.36 ? Der o.g. Link bringt mich zu 2.4.34 :gruebel:

Cheers,
Major K.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

MajorK hat geschrieben:Gibt's die V13 auch für Kernel 2.4.36 ? Der o.g. Link bringt mich zu 2.4.34 :gruebel:
Der letzte Link in diesem Thread führt zum Sourcecode vom V13-Kernelmodul,
welches auf Kernel 2.4.36.2 problemlos kompiliert werden kann.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:
MajorK hat geschrieben:Gibt's die V13 auch für Kernel 2.4.36 ? Der o.g. Link bringt mich zu 2.4.34 :gruebel:
Der letzte Link in diesem Thread führt zum Sourcecode vom V13-Kernelmodul,
welches auf Kernel 2.4.36.2 problemlos kompiliert werden kann.
Und hier gibt es die Binärversion dazu: Entfernt, Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Freitag 23. Januar 2009, 18:12, insgesamt 2-mal geändert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

Hier möchte ich einige Infos der Allgemeinheit zur Verfügung stellen, die
ich per PM von newcode, dem Programmierer des V13-Moduls, erfahren habe.

Zu den verschiedenen Registern, die vom Treiber initialisiert werden, kann ich
nichts sagen. Aber die Doku zum Chip wurde hier im Thread bereits erwähnt.

Code: Alles auswählen

@@ -207,6 +233,8 @@
 		return -EINVAL;
 
 	div = (freq + 36118750 + 31250) / 62500;
+	if (freq < 122000000) div+=4;
+	else div+=3;
 
 	if (freq > 401250000)
 		vu = 1;	/* UHF */
newcode hat geschrieben:Es geht hier um die Programmierung des PLL Chips. Die 36 MHz die da addiert werden
sind wohl die ZF des demodulierten Signals. Raus kommt der Teiler mit dem der
PLL Chip gefüttert wird um den Transponder "freq" zu demodulieren. Diesen Takt
bekommt der Tuner.
Ich habe festgestellt, daß der BER Wert sinkt wenn man den Tuner leicht nach oben verstimmt.
Die Verstimmung ist bei 113 und 121 Mhz (4*62500)= 250KHz
und sonst (3*62500) = 187,5 KHz.

Code: Alles auswählen

@@ -388,14 +415,16 @@
 		*ber = (at76c651_readreg(fe->i2c, 0x81) & 0x0F) << 16;
 		*ber |= at76c651_readreg(fe->i2c, 0x82) << 8;
 		*ber |= at76c651_readreg(fe->i2c, 0x83);
-		*ber *= 10;
+//		*ber *= 10;
 		break;
 	}
 
 	case FE_READ_SIGNAL_STRENGTH:
 	{
-		u8 gain = ~at76c651_readreg(fe->i2c, 0x91);
-		*(u16 *)arg = (gain << 8) | gain;
+		u8 gain = at76c651_readreg(fe->i2c, 0x91);
+//		*(u16 *)arg = (gain << 8) | gain;
+*(u16 *)arg = gain;
+//if ((gain << 7) + *(u16 *)arg < 0xFFFFu) *(u16 *)arg += (gain << 7); 
 		break;
 	}
 
newcode hat geschrieben:
rhabarber1848 hat geschrieben:Den Patch für die Berechnung von FE_READ_SIGNAL_STRENGTH habe ich
entfernt, damit erscheinen nun wieder SIG-Werte, die größer als 255 sind.
Gab es ein Problem, das mit der gepatchten Berechnung gelöst werden sollte?
Da gab es kein Problem. Der SIG Wert beruht auf einem 8 BIT Register. Es ist
überschaubarer den Wert unverändert auszugeben als ihn mit -257 zu
multiplizieren.
Nur müßte hier Neutrino angepasst werden, damit die vorhandene Skala ausgenutzt wird.
Ohne den Patch habe ich z.B. SIG-Werte von ~10000, die ca. 15% auf der Skala sind.
NoX1911
Interessierter
Interessierter
Beiträge: 50
Registriert: Montag 16. Februar 2004, 16:13

Re: AT76C651

Beitrag von NoX1911 »

rhabarber1848 hat geschrieben:
rhabarber1848 hat geschrieben:
MajorK hat geschrieben:Gibt's die V13 auch für Kernel 2.4.36 ? Der o.g. Link bringt mich zu 2.4.34 :gruebel:
Der letzte Link in diesem Thread führt zum Sourcecode vom V13-Kernelmodul,
welches auf Kernel 2.4.36.2 problemlos kompiliert werden kann.
Und hier gibt es die Binärversion dazu: at76c651.o
Die ist für 2.4.35.3 kompiliert. Muss unter 2.4.36.2 also auch mit -f geladen werden. War das in deiner Absicht?
MajorK
Einsteiger
Einsteiger
Beiträge: 328
Registriert: Freitag 9. Mai 2003, 09:55

Re: AT76C651

Beitrag von MajorK »

NoX1911 hat geschrieben: Die ist für 2.4.35.3 kompiliert. Muss unter 2.4.36.2 also auch mit -f geladen werden. War das in deiner Absicht?
Also bei mir (JTG 2.3 v. 11.6.) hat's so geklappt... einfach nach /var/lib/modules kopiert und die 113 MHZ Sender (u.a. das Erste) laufen wieder.
Danke!
Major K.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

NoX1911 hat geschrieben:
rhabarber1848 hat geschrieben:Und hier gibt es die Binärversion dazu: at76c651.o
Die ist für 2.4.35.3 kompiliert. Muss unter 2.4.36.2 also auch mit -f geladen werden. War das in deiner Absicht?
Ich habe das Modul mit dem aktuellen CVS kompiliert, d.h. Kernel 2.4.36.2
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: AT76C651

Beitrag von GetAway »

Hi,

Wenn du mit nem Editor reinschaust, steht irgendwo 2.4.35.3 :wink:

Gruß GetAway
trulli

Re: AT76C651

Beitrag von trulli »

rhabarber1848 hat geschrieben:
rhabarber1848 hat geschrieben:
MajorK hat geschrieben:Gibt's die V13 auch für Kernel 2.4.36 ? Der o.g. Link bringt mich zu 2.4.34 :gruebel:
Der letzte Link in diesem Thread führt zum Sourcecode vom V13-Kernelmodul,
welches auf Kernel 2.4.36.2 problemlos kompiliert werden kann.
Und hier gibt es die Binärversion dazu: at76c651.o
Hi,

ist das tatsächlich der V13 von Newcode?
Oder ist er schon verändert worden?

Die Ergebnisse mit dem "originalen???" V13 von Newcode sind bei weitem besser.

Es werden zwar jetzt wieder "plausible" Werte angezeigt, aber es ruckelt ohne Ende.

MfG
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Wenn du mit nem Editor reinschaust, steht irgendwo 2.4.35.3 :wink:
In meiner lokalen Datei ist dem nicht so, nur in der heruntergeladenen Datei ist das der Fall.

Ich habe die Datei in den Bereich Binaries hochgeladen, dort gab es von einem anderen User
bereits eine Datei gleichen Namens. Wird dann mein Upload ignoriert?

Es scheint der Fall zu sein, der von mir gepostete Link, der mir nach dem Upload angezeigt
wurde, zeigt auf eine Datei mit der Beschreibung:
at76c651.o von PandinusImperator
vom 27.10.2007 :dash:

Also nochmal das ganze: at76c651.o_newcode_v13_2.4.36.2
trulli

Re: AT76C651

Beitrag von trulli »

Hi,

das sieht jetzt schon besser aus.

Ist auch sofort dann die richtige Grösse.

Die anderen beiden Links sind wohl "verlinkt" worden. Die Treiber sind alleine schon von der Grösse viel zu klein,

als dass das der V13 hätte seien können.

MfG
MajorK
Einsteiger
Einsteiger
Beiträge: 328
Registriert: Freitag 9. Mai 2003, 09:55

Re: AT76C651

Beitrag von MajorK »

Komisch, dass meine Sagem mit dem "anderen" Treiber eigentlich super läuft. :gruebel:
Wohl so 'ne Placebo-Nummer.... ;-)

Major K.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

Die Registeranpassungen des V13-Treibers, portiert auf Kernel 2.6:

Code: Alles auswählen

--- driver/dvb/drivers/media/dvb/frontends/at76c651.c	2008-07-19 19:10:47.000000000 +0200
+++ driver/dvb/drivers/media/dvb/frontends/at76c651.c	2008-07-19 19:30:53.000000000 +0200
@@ -133,10 +133,17 @@
 	 */
 
 	at76c651_writereg(state, 0x10, 0x06);
-	at76c651_writereg(state, 0x11, ((state->qam == 5) || (state->qam == 7)) ? 0x12 : 0x10);
+	at76c651_writereg(state, 0x11, ((state->qam == 5) || (state->qam == 7)) ? 0x12 : 0x17);
 	at76c651_writereg(state, 0x15, 0x28);
-	at76c651_writereg(state, 0x20, 0x09);
-	at76c651_writereg(state, 0x24, ((state->qam == 5) || (state->qam == 7)) ? 0xC0 : 0x90);
+	at76c651_writereg(state, 0x20, 0x01);
+
+	switch (state->qam) {
+	    case 5:
+	    case 7: at76c651_writereg(state, 0x24, 0xC0); break;
+	    case 8: at76c651_writereg(state, 0x24, 0xB0); break;
+	    default: at76c651_writereg(state, 0x24, 0x90);
+	    }
+
 	at76c651_writereg(state, 0x30, 0x90);
 	if (state->qam == 5)
 		at76c651_writereg(state, 0x35, 0x2A);
@@ -150,6 +157,10 @@
 		at76c651_writereg(state, 0x2F, 0x13);
 	}
 
+	at76c651_writereg(state, 0x33, 0x8a);
+	at76c651_writereg(state, 0x34, 0xad); //v12 bd
+	at76c651_writereg(state, 0x51, 0x12); //11
+
 	at76c651_disable_interrupts(state);
 
 	/*
Ich habe in der Kernel 2.6-Version von at76c651.c leider nicht die Stelle gefunden,
in der im 2.4er-Treiber die Frequenzeinstellung etwas verändert wird.
Kann vielleicht jemand anderes weiterhelfen?
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 19:50

Re: AT76C651

Beitrag von Zwen »

Spricht eigentlich was dagegen den Treiber (V13) so ins CVS einzuchecken ?
Bei mir läuft der auch deutlich besser als der originale ? Oder braucht irgendwer das original so noch ?
Sonst müsste man das halt alternativ über nen Modul-Parameter machen.
Ich finds immer doof, wenn sowas nicht im CVS landet, irgendwann gehts verloren...

Zwen
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: AT76C651

Beitrag von seife »

Machs rein. Wenn sich jemand beschwert, können wir immer noch einen Modulparameter machen.
Ich halte mich immer mit Sachen zurück, die ich nicht testen kann => von Kabeltreibern lasse ich die Finger :)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: AT76C651

Beitrag von PauleFoul »

Der V13 läuft meiner Meinung nach perfekt! Also rein damit... :wink:


Gruß
____Paule
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Re: AT76C651

Beitrag von prodigy7 »

Okay ... vielleicht nur eine Schönheitskorrektur:

Vorher:

Code: Alles auswählen

proc_bus_at76c651 = create_proc_read_entry("at76c651", 0, proc_bus, &at76c651_proc_read,i2c);
Nachher:

Code: Alles auswählen

proc_bus_at76c651 = create_proc_entry("driver/at76c651", 0666, NULL);
D.h. es wird jetzt in /proc/bus/driver ein Eintrag angelegt oder? Wenn ja, wäre das hier falsch:

Code: Alles auswählen

         if (!proc_bus_at76c651) {
                 printk(KERN_ERR "Cannot create /proc/bus/at76c651\n");
                 return -ENOENT;
         }
Müsste

Code: Alles auswählen

         if (!proc_bus_at76c651) {
                 printk(KERN_ERR "Cannot create /proc/bus/driver/at76c651\n");
                 return -ENOENT;
         }
lauten.
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 19:50

Re: AT76C651

Beitrag von Zwen »

gut aufgepasst, habs geändert...
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:Die Registeranpassungen des V13-Treibers, portiert auf Kernel 2.6:
Hier als Patch: EDIT: Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Freitag 23. Januar 2009, 18:55, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: AT76C651

Beitrag von seife »

Habe ich (mit ein paar CodingStyle-Korrekturen und Kommentaren) so eingecheckt.
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Re: AT76C651

Beitrag von Token »

ich hoffe und glaube das ich hier richtig bin:

ich arbeitete bis dato mit einen newmake-enigma ohne groessere probleme (stand 03.2009).
jetzt habe ich mir ein newmake-neutrino zusammengeschraubt, und mit meiner cable-sagem
grosse probleme mit dem empfang im TC-/KDG-netz.
ich habe untersch. sender getestet, als bsp. nenne ich hier ard=113mhz und zdf_neo=450mhz.
(die 450mhz deshalb, damit das 113mhz/s02 problem ausgeklammert wird)
es treten nach einer bestimmten zeit freezer auf, die BER steigt auf 262144 (also unendlich),
bleiben eine zeitlang bestehen, und fallen dann wieder ab auf BER=0. (das geschieht relativ "rythmisch")
im sysinfo unter findet man dann auch PCR discontinued mit 2 hex-werten die erheblich voneinander
abweichen ... dann wird vermutlich wieder ein sync gemacht, das ganze bis zum naechsten freeze.
entsprechende tests mit einem newmake-enigma reiche ich nach .....

token

edit: enigma laeuft einwandfrei
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Re: AT76C651

Beitrag von mrvica »

im CVS Treiber gibts kleinen Schönheitsfehler, AGC (Signal Strength) ist immer bei Null, bitte folgenden Code so ändern

Code: Alles auswählen

case FE_READ_SIGNAL_STRENGTH:
	{
		u8 gain = at76c651_readreg(fe->i2c, 0x91);
		// *(u16 *)arg = gain;
		*((u16 *)arg) = (gain << 8) | gain;
		// if ((gain << 7) + *(u16 *)arg < 0xFFFFu) *(u16 *)arg += (gain << 7); 
		break;
	}
// *(u16 *)arg = gain;
nach
*((u16 *)arg) = (gain << 8) | gain;
ändern
was die längere Zeile macht
// if ((gain << 7) + *(u16 *)arg < 0xFFFFu) *(u16 *)arg += (gain << 7);
habe ich nicht getestet, lassen wir es kommentiert drin
von wem die Kommentarzeilen sind, habe ich nicht rausfinden können, die AGC Anzeige funktioniert jetzt, pendelt so zwischen 70-99 %

mrvica
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: AT76C651

Beitrag von rhabarber1848 »

mrvica hat geschrieben:die AGC Anzeige funktioniert jetzt, pendelt so zwischen 70-99 %
Funktioniert auch hier, committed, danke!
http://article.gmane.org/gmane.comp.vid ... x.scm/1985