NXP TEF6686 auf Arduino

Das Radioforum. Hier dreht sich alles um die technischen Seiten des Radio- und TV-Empfangs.
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Ist doch schön wenn es für dich passt ,
ich bin noch nicht zu 100% zufrieden mit der Anzeige .
Ich bin noch am überlegen ob man sich die arbeit machen sollte und das ganze so umzuschreiben.
Das man den pi code in kurzer zeit miteinander vergleicht und erst dann anzeigt.Bin mir aber nicht sicher ob sich das überhaupt loht .
Das ist nur meine kleine Theorie .
Was mir auch noch aufgefallen ist wenn man auf ein AM Band schaltet wird als pi code immer 2083 angezeigt :gruebel:

Mit dem Empfang bin ich ja auch sehr zufrieden.

Kann mir einer von euch sagen ob er in den weiten des web mal so ein Grafik LC Display gesehen hat wie es an den normalen Radios verbaut ist ,also nicht blau oder grün
sondern so wie z.B. im ATS 909, kann es gerade nicht anders beschreiben. :kopf:

MfG
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
Radio-DX
Beiträge: 849
Registriert: Fr 31. Aug 2018, 22:08
Wohnort: Nähe Neustadt a.d. Orla (Ostthüringen)

Re: NXP TEF6686 auf Arduino

Beitrag von Radio-DX »

Das man den pi code in kurzer zeit miteinander vergleicht und erst dann anzeigt.
Das macht ein RDS-Decoder doch schon.
Jedenfalls unser vor vielen Jahren selbst gebastelter. (So wurde einst berichtet)
Der PI muss mehrmals gleich eingelesen werden und wird dann erst angezeigt.
Der PS (Sendername) muss noch deutlich öfters eingelesen werden.
Darum wird er auch immer erst später angezeigt. (oder auch nicht :) )
Leider kommt es aber trotzdem zu falschen Anzeigen.
Hm. :confused:
QTH: Nähe Neustadt a.d. Orla (Ostthüringen)
Empfangsrekord mit RDS-PS: 3075 km (Madeira: 88,0 MHz, Radio Renascenca, Sporadic-E am 12.06.2013)
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Achso das macht dann die Software im Tuner selbst ,ich habe ja an die Arduino Software gedacht.
Denn da kann ich nichts sehen das etwas verglichen wird , natürlich kann ich mich auch Irren.
Ich werde mir mal am Wochenende das noch mal anschauen ob ich etwas entdecken kann oder was man da machen kann .
Kann mir den einer sagen wie häufig der code gesendet wird.
Ich bin ja noch auf der Suche nach einer Möglichkeit die Filter anzuzeigen.
Wenn jemand eine Idee hat bitte schreiben .

:dx:
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
carkiller08
Beiträge: 1685
Registriert: Fr 31. Aug 2018, 17:01
Wohnort: Sachsen-Anhalt / Harzvorland

Re: NXP TEF6686 auf Arduino

Beitrag von carkiller08 »

Wegen Filter abfragen: Wahrscheinlich müsste die Tuner_Drv_Lithio.cpp erweitert werden oder
man muß selbst die Daten via wire / I2C auslesen.

Auszug Tuner_Drv_Lithio.cpp

Code: Alles auswählen

uint16_t devTEF668x_Radio_Get_Quality_Level (uint8_t fm,uint8_t *status,int16_t *level)
{
	uint8_t buf[4];
	uint16_t r;
	
	r = devTEF668x_Get_Cmd(fm ? TEF665X_MODULE_FM : TEF665X_MODULE_AM,
			TEF665X_Cmd_Get_Quality_Data,
			buf,sizeof(buf));

	if(r == 1){
		*status = (int16_t)((0x3fff&Convert8bto16b(buf))/10);
		*level = (int16_t)(((int16_t)Convert8bto16b(buf+2))/10);
	}

	return r;
}

/*
status	= 1 � 320 (* 0.1 ms) = 0.1 � 32 ms after tuning
level		= -200 ... 1200 (0.1 * dBuV) = -20 ... 120 dBuV RF input level
usn		=  0 � 1000 (*0.1 %) = 0 � 100% relative usn detector result
wam		=  0 � 1000 (*0.1 %) = 0 � 100% relative wam detector result
offset	 = -1200 � 1200 (*0.1 kHz) = -120 kHz � 120 kHz radio frequency error
bandwith	 = FM 560 � 3110 [*0.1 kHz] = IF bandwidth 56 � 311 kHz; narrow � wide
			AM 30 � 80 [*0.1 kHz] = IF bandwidth 3 � 8 kHz; narrow � wide
modulation	 = FM 0 � 1000 [*0.1 %] = 0 � 100% modulation = 0 � 75 kHz FM dev.
				1000 � 2000 [*0.1 %] = 100% � 200% over-modulation range
			AM 0 � 1000 [*0.1 %] = 0 � 100% AM modulation index
			1000 � 2000 [*0.1 %] = 100% � 200% peak modulation range
			
*/
uint16_t devTEF668x_Radio_Get_Quality_Data (uint8_t fm,uint8_t *usn,uint8_t *wam,uint16_t *offset)
{
	uint8_t buf[14];
	uint16_t r;
	int16_t temp;
	
	r = devTEF668x_Get_Cmd(fm ? TEF665X_MODULE_FM : TEF665X_MODULE_AM,
			TEF665X_Cmd_Get_Quality_Data,
			buf,sizeof(buf));

	if(r == 1)
	{
		//*status = ((0x3fff&Convert8bto16b(buf))/10);
		//*level = (((int16_t)Convert8bto16b(buf+2))/10);
		*usn = (Convert8bto16b(buf+4)/10);
		*wam = (Convert8bto16b(buf+6)/10);
		temp = (((int16_t)Convert8bto16b(buf+8))/1);
		*offset = temp<0? (0-temp) : temp;
		//*bandwidth = (Convert8bto16b(buf+10)/1);
		//*modulation = (Convert8bto16b(buf+12)/10);
	}

	return r;
}
Offenbar wird der Bandbreite-Wert durch die Kommentierung nicht ausgewertet.

Code: Alles auswählen

uint16_t devTEF668x_Radio_Get_Quality_Level (uint8_t fm,uint8_t *status,int16_t *level) // CMD 128
uint16_t devTEF668x_Radio_Get_Quality_Data (uint8_t fm,uint8_t *usn,uint8_t *wam,uint16_t *offset) //CMD 129
Und hier ist er nicht als Parameter enthalten.

Lt Datenblatt
32 / 33 FM / AM
128 Get_Quality_Status FM : | status, level, usn, wam, offset, bandwidth, modulation
AM : | status, level, noise, co_channel, offset, bandwidth, modulation
129 Get_Quality_Data
.
.
6 bandwidth
[ 15:0 ]

IF bandwidth
FM 560 … 3110 [*0.1 kHz] = IF bandwidth 56 … 311 kHz; narrow … wide
AM 30 … 80 [*0.1 kHz] = IF bandwidth 3 … 8 kHz; narrow … wide
.
.
Application example FM_Get_Quality_Status (1, (status))
FM_Get_Quality_Data (1, (status .. modulation))
I²C example (hex)

[ w 20 80 01 [ r 0014]
[ w 20 81 01 [ r ???? ???? … ???? ]
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Ja genau ,das habe ich schon gesehen wenn man diese Teil verändert ,funktioniert leider der Suchlauf nicht mehr richtig.
Aber es wird die Filter ausgegeben.
Ich habe mir auch die Software von µTube angeschaut wo das ja geht ,aber leider hat er fast alles umbenannt,so das es echt kompliziert ist
das nachzuvollziehen .Wenn ich versuche denn code zu erweitern dann sagt die Ide" nein nein so geht das nicht ".
Ich bin ja auf der Suche nach einer Idee ,wie ich noch mal neu ansetzen kann.
Ich denke , man sollte ein neue "Funktion"schreiben .

Das wird eine lange Nacht :) .


MfG
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

An alle die es interessiert ,nach einem reset meines Hirns (Danke carkiller08). :confused:
Habe ich es geschafft das der filter angezeigt wird.

ich habe für euch ein kleines Demo Video.
Jetzt kann man schon beim Empfang sagen kommt noch RDS oder nicht.
In der Theorie könnte man die pi anzeige koppeln und nur wenn ein bestimmter filter da ist zeige
ich auch was an.
Es ist auch möglich sich die andren Sachen anzeigen zu lassen .
Aber ich bin mir nicht sicher was die über den Empfang aussagen bzw was sie bedeuten. :gruebel:
z.B. usn ,& wam usw.

Wenn jemand noch Info oder so brauch ,einfach melden.

https://youtu.be/Asr7whX8DBI

:dx:
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
DXHR
Beiträge: 348
Registriert: Sa 27. Apr 2019, 20:27

Re: NXP TEF6686 auf Arduino

Beitrag von DXHR »

Ist es beim Arduino Code möglich eine Art Eingabe einzubauen für die Steuerung über Putty oder bei einem Standalone System ohne PC?

Wenn man das Ding ohne PC bedienen will, dauert es bis man zu einer gewünschten Frequenz kommt, besonders, wenn man vom CCIR zum OIRT Band wechseln will.

Ich stell mir das vor, dass eine Taste die Eingabe einer Frequenz ermöglicht, und diese Frequenz dann bei Bestätigung gewählt wird.

Vielleicht weiß da einer von euch weiter
Standort: Wien, Österreich
Empfänger: Airspy HF+ Discovery, TEF6686 Portable, Dual MCR 200
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Ich denke ja wenn ich dich richtig verstanden habe möchtest du das band gezielt wechseln oder möchtest du auch noch die Frq. direct eingeben.
Das mit dem Band direct umschalten geht schon ,Frq direct eingeben noch nicht.
:dx:
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Jetzt habe ich mir deine frage noch mal durchgelesen,wenn ich dich richtig verstehe mochtest du nur eine Frq wählen oder.
Das geht sogar relativ einfach.
Ich brauch aber noch ein paar infos von dir dann kann ich dir eine Lösung vorschlagen.


:dx:
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
DXHR
Beiträge: 348
Registriert: Sa 27. Apr 2019, 20:27

Re: NXP TEF6686 auf Arduino

Beitrag von DXHR »

Sorry, wenn das unverständlich war :D

Ja, genau, ich möchte einfach per Eingabefeld die Frequenz ändern können.

Z.b. ich hab ein 4x4 Nummernfeld, wenn ich dort den Knopf "A" drücke, erscheint dann am I²C Display "Bitte Frequenz eingeben". Ich tippe 92.0 ein und drücke auf die "B" Taste zum Beispiel, welche als Enter fungiert. Dann wird genau 92.0 gewählt sein und, meinem Gebiet entsprechend, OE1 abgespielt.

Welche Infos wären benötigt?
Standort: Wien, Österreich
Empfänger: Airspy HF+ Discovery, TEF6686 Portable, Dual MCR 200
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Genau das habe ich auch noch nicht hin bekommen. Stand aber auch noch nicht ganz oben auf der Liste.
Ich habe gedacht du möchtest einfach nur ich drücke Taste 1 und er springt zu Frq. 92.0 Mhz. oder Taste 2 und er geht zu 104.0 z.B.
So eine Art kleiner Senderspeicher,
Weil das geht ja mit den Hausmitteln schon, allerdings ist es da in der normalen Software auf FM begrenzt.
In den AM band geht das nicht, ich habe mir da eine andere Funktion gebastelt.
Wenn dir das erst mal langt kann ich das mal aufschreiben.
Das andere braucht noch etwas Zeit , ich möchte bei mir erst den Drehencoder .einbauen in die Software,
so das man wie bei einem normalen Radio durch die Band kurbeln kann.

:dx:
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
carkiller08
Beiträge: 1685
Registriert: Fr 31. Aug 2018, 17:01
Wohnort: Sachsen-Anhalt / Harzvorland

Re: NXP TEF6686 auf Arduino

Beitrag von carkiller08 »

In der Putty-Version hatte ich die Tastaturabfrage-Route mal ergänzt,
so dass ich mit den Tasten 1 bis 9 verschiedene Frequenzen direkt einstellen konnte (Presets).

Beispiel: Taste 1 stellt 88,4MHz ein:

Code: Alles auswählen

else if (ch == '1') {
radio.setFrequency(8840);
frequency = 8840;
//displayInfo();
radioGui(true);
}
Mit zusätzlichen Tastern am Mega2560 geht das freilich auch ohne PC.
Die Frequenzen wären dann im Programmcode festgelegt.
Wenn man die Frequenzen quer übers Band verteilt, kann man so auch
andere Frequenzen deutlich schneller einstellen.

Oder ihr bastelt euch noch 2 Taster für eine "grobe" Frequenzeinstellung rein.
z.B Taster 1 erhöht um 1MHZ , Taster 2 verringert um 1 MHz.
So wäre man auch ruck-zuck durchs Band durch.

Wäre das selbe Prinzip wie bei der Feineinstellung, nur statt +/-1 wären es dann +/-100 .
Zuletzt geändert von carkiller08 am Sa 6. Jun 2020, 09:18, insgesamt 1-mal geändert.
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

ich habe noch ein kleines Video gemacht wo ich den Filter umschalte im AM Band.
Jetzt kann man auch sehen was für ein Filter aktiv ist.

Ich bin mir aber nicht sicher, ob noch jemand mit dem Tuner MW KW von euch hört.


"Kleine Umfrage"
Schreibt doch mal was dazu .

https://youtu.be/8K2mroGctvs

MfG
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
DXHR
Beiträge: 348
Registriert: Sa 27. Apr 2019, 20:27

Re: NXP TEF6686 auf Arduino

Beitrag von DXHR »

Man müsste nur herausfinden wie man ein Eingabefeld im Code einbauen kann, wie z.b. in Java geht's mit "Scanner".

Den Wert dann einfach in eine Variable abspeichern und in radio.setFrequency() einsetzen.
Standort: Wien, Österreich
Empfänger: Airspy HF+ Discovery, TEF6686 Portable, Dual MCR 200
Fredfrei
Beiträge: 65
Registriert: Di 25. Feb 2020, 22:37

Re: NXP TEF6686 auf Arduino

Beitrag von Fredfrei »

Hier habe ich mal einen Link.zu ein Beispiel Sketch wo man mal ein paar Sachen testen kann.
Die ino habe ich zum Test mal für den Serial gebaut .
Vielleicht kann das einer von euch mal testen.
Achtung noch habe ich nicht alles in der ino was geht,da noch nicht fertig bzw getestet.

https://drive.google.com/drive/folders/ ... TQKsiLU6tW

Ich hoffe das funkt
Über Rückmeldungen wäre ich dankbar.
Onkyo 4970 / Pioneer F 502 / Yamaha CT-610 /Seangean DT 800 / Sony XDR-S60DBR / Sangean ATS 909/TEF6686 Der letzte seiner Art
Antworten