Gerade bei Ebay gesehen die Teile, hat jemand die schonmal ausprobiert? Taugen die was?
:
Verschoben durch Moderator
Mir fehlt gerade ein wenig die Fantasie -- angenommen, ich habe bereits ein Radio (oder mehrere), deren Klang vermutlich um einiges besser ist als das, was man mit diesem Modul zusammenlöten kann -- was mache ich dann damimt?
Michael Graf schrieb: > Mir fehlt gerade ein wenig die Fantasie -- angenommen, ich habe bereits > ein Radio (oder mehrere), deren Klang vermutlich um einiges besser ist > als das, was man mit diesem Modul zusammenlöten kann -- was mache ich > dann damimt? Die Frage stellt sich hier bei ziemlich vielen Projekten. Ich hatte z.b. an ein schönes Radio mit LCD Display und Touch Tasten gedacht. Klar, es wird wahrscheinlich ein klanglich besseres Radio für weniger Geld im handel geben aber nach solchen Kriterien frag ich nicht ;)
Michael Graf schrieb: > Mir fehlt gerade ein wenig die Fantasie -- angenommen, ich habe bereits > ein Radio (oder mehrere), deren Klang vermutlich um einiges besser ist > als das, was man mit diesem Modul zusammenlöten kann -- was mache ich > dann damimt? Bei ebay verkaufen? :-) Gruss Harald
So, ist angekommen. Funktioniert 1A, klang ist wie ein ganz normales Radio, die Ansteuerung ist ziemlich simpel und das Datenblatt ausreichend genau.
So schnell angekommen? Der Versender aus Deutschland? Lass uns doch mal teilhaben, bei einer Inbetriebnahme in so kurzer Zeit finde ich das auch sehr interessant.
Harald A. schrieb: > So schnell angekommen? Der Versender aus Deutschland? Ja. Also es war nicht groß schwierig wenn man schonmal I2C benutzt hat geht es relativ Einfach. Ich hatte bis jetzt allerdings nur Kopfhöher dran, will man mehr braucht man wohl noch einen Verstärker. http://www.szspw.com/PIC/PIC/20127271747330.pdf Das ist das Datenblatt. Ab Seite 9 fangen die Registerdefinitionen an. Dann hab ich halt alles so eingestellt wie ich es für richtig erachtet habe, einen starken Sender bei mir aus der Umgebung ausgewählt und plopp war der Ton da :) Die zusätzlichen Möglichkeiten wie Sendersuchlauf oder die Übertragung von Daten hab ich jetzt allerdings noch nicht ausprobiert.
Hi Eumel, magst Du nicht mal Deinen Code hochladen? Das wäre für so manchen Anfänger bestimmt ganz interessant und hilfreich. Danke und schönen Gruß
Also der "Klang" eines Radios hängt heutzutage doch wohl eher an den Endstufen und den verwendeten Lautsprechern, weniger am Empfangsteil. Aber ich finde das Modul auch cool. Man müsste mal eine richtig schöne Design-Studie machen, mit Alu und so. Abgesehen von den klassichen 19-Zoll Anlagen wie Denon, Yamaha usw. ist das Aussehen der meisten Radios heutzutage eher ein Grund, den "Designer" standrechtlich zu erschießen ...
Eine Library gibt es hier: http://www.electrodragon.com/w/FM_Radio_Module_RDA5807M Deswegen hat es wohl nicht so lange gedauert :-)
Frank schrieb: > Man müsste mal eine richtig schöne > Design-Studie machen, mit Alu und so. Der eigentlich anspruchsvollste Teil beim Design derartiger Produkte scheint mir heutzutage eher das Entwerfen einer intuitiven und spielerisch-selbsterklärenden Benutzerschnittstelle zu sein. Wenn ich mir da aber selbst vermeintlich "einfache" Geräte a la "Küchenradio" o.ä. ansehe, dann ist die eindeutige Mehrzahl dieser Möhren inzwischen ohne Bedienungsanleitung praktisch unbenutzbar - ein kollektives Armutszeugnis für die ganze Branche.
Pete K. schrieb: > Eine Library gibt es hier: > http://www.electrodragon.com/w/FM_Radio_Module_RDA5807M > > Deswegen hat es wohl nicht so lange gedauert :-) Ist es irgendjemandem gelungen, das Ding zu entpacken? 7-zip und Windows-Bordmittel streiken bei mir :-(
Anfänger frog:
>Ist es irgendjemandem gelungen, das Ding zu entpacken?
Ja, mir.
(Windows 7 und Winzip als Entpacker)
MfG Paul
Ich habe es auf dem iMac problemlos ausgepackt und erneut eingepackt, s. Anhang ...
Paul Baumann schrieb: > Ja, mir. > > (Windows 7 und Winzip als Entpacker) Habe es gerade auf einem anderen Rechner probiert (Win7 mit 7-zip) -> ging wieder nicht. Frank schrieb: > Ich habe es auf dem iMac problemlos ausgepackt und erneut eingepackt, s. > Anhang ... Aber das hat dieses komische 7-zip jetzt gefressen. Viel Dank euch beiden! 7-zip heißt bei mir ab sofort 08/15-zip :-)
Frank schrieb: > Also der "Klang" eines Radios hängt heutzutage doch wohl eher an den > Endstufen und den verwendeten Lautsprechern, weniger am Empfangsteil. Nicht nur ! Auch das was im Sendestudio durch den Klangverbieger (Kompressor, Limiter u.s.w.) geht beeinflusst den Klang erheblich.
Das Modul sieht sehr interessant aus. Hab direkt eins bei ebay bestellt. Hier übrigends noch 7 Stück für je 2,50 (inkl. Versand) aus Detmold: http://www.ebay.de/itm/200984492148 Danke für den Hinweis Eumel.
Ich hab von HF Technik keinen Plan, wie koppelt man da am besten das FM Signal aus einem 75 Ohm Coax Kabel ein? Irgendeine Schaltungs-Idee? Grüße, Horace
Anfänger schrieb: > Hi Eumel, magst Du nicht mal Deinen Code hochladen? Das wäre für so > manchen Anfänger bestimmt ganz interessant und hilfreich. > Danke und schönen Gruß Bin momentan nicht an dem Rechner auf dem ich den code habe aber wenn interesse daran besteht kann ich die Konfiguration die ich verwendet habe angeben.
Mirko B. schrieb: > Ich hab von HF Technik keinen Plan, wie koppelt man da am besten das FM > Signal aus einem 75 Ohm Coax Kabel ein? Irgendeine Schaltungs-Idee? Man könnte eine Wurfantenne mit einer Buchse anschließen. Oder direkt das Kabel an das Modul löten. Schirm geht dann wohl auf GND. http://www.rm-computertechnik.de/Shop/8991_Antennenkupplung_9.5mm_Print.html
:
Bearbeitet durch User
"Finger" hat auch dieses Thema - neben ungefähr tausend anderen Fingereien - mal abgearbeitet: http://www.fingers-welt.de/phpBB/backup/53/38505_1.htm?q=75+Ohm&art=r#b1
@Diodenes Ok, Danke, das hilft weiter (hoffentlich ist das Eingangsteil bei diesem Chip ähnlich.....) Viele Grüße, Horace
Achtung: Das Teil kommt im Rastermaß 2mm! Wie habt ihr das Modul eingebaut/angeschlossen (Foto)?
So, hab das Teil jetzt zwischen zwei Stiftleisten geklennt, die ich etwas verbogen habe.
Pete K. schrieb: > So, hab das Teil jetzt zwischen zwei Stiftleisten geklennt, die ich > etwas verbogen habe. Ich hab einfach Draht genommen und darunter ein kleines Stück Lochrasterplatine mit 2,54 mm Rastermaß. Also ein quick and dirty Adapter ;)
Hier meine Konfiguation, Code habe ich gerade nicht zur Hand aber mit I2C ein paar Bytes rüberschieben ist ja keine Hexenwerk. Reg: OOH da steht die Chip ID in 15:8 drin der Wert ist 0x58, so kann man erstmal checken ob die Verbindung läuft Reg: 02H Bits: 11000100 00000001 Reg: 03H Bits: Die ersten 10 bit sind die Epfangsfrequenz da muss man halt einen starken Sender aus der Umgebung auswählen. 00000 Reg: 04H Bits: 00000000 Reg: 05H Bits: 10001000 00001111 Das sollte erstmal reichen ums was zu hören, der Rest wird dann für andere Features gebraucht z.b. die Datenübermittlung.
Hallo, hat denn schon mal jemand hier die RDS Daten ausgelesen und könnte mir da mit einem Beispiel behilflich sein oder zumindest das Prinzip erläutern? Viele Grüße Elmar
Hat hier wer vielleicht ein Minimalbeispiel, wie man das Teil zum laufen bekommt? Ich versuche das Teil an einem Arduino zum laufen zu bekommen. Bei mir funktioniert es noch nicht. Könnte allerdings auch an den Arduino Wire.h Libraries liegen, die ich benutze. Falls da wer was hat, wäre es sicher hilfreich.
Habe gerade einfach mal das Beispiel mit Arduino ausprobiert: http://www.instructables.com/id/FM-Radio-the-easy-way/ Bin ja sonst kein Arduino-Fan, hatte aber auch keine Lust, ein Testprogramm mit einem ARM LPC aufzusetzen. Auf jeden Fall bin ich von der Empfangsleistung, Klang (testhalber direkt auf hochwertige Kopfhörern) und Rauschfreiheit BEGEISTERT. 6 Bytes per I2C hin und schon spielt dat Dingens. Macht echt Laune! Wenn man mal bedenkt, dass die Platinen auf Aliexpress für 50 Cent gehandelt werden, was mag der Chip verhandelt in Stückzahlen kosten? 5 Cent?
Kennt jemand eine fertige RDS-Library? Der RDA5807 spuckt ja schon die 4x16 Bit direkt aus, die müsste man "nur noch" decodieren. Leider ist das, wenn man es richtig machen möchte (ASCII-Codetables etc.), schon relativ aufwändig.
Ich bin in Sachen analoge Elektronik ziemlich unbeholfen. Mit Köpfhörern klappt alles soweit aber was für eine Schaltung wäre geeignet um z.b. zwei 8 Ohm 1 Watt Lautsprecher anschließen zu können? Das würde ja für normales zimmerlautes Radio lauschen locker reichen.
Such mal auf Aliexpress oder dx.com nach PAM8403, das ist eine Class-D Endstufe 2x3 Watt, extrem günstig. http://www.technobase.jp/eclib/OTHER/DATASHEET/pam8403.pdf Suche auch PAM8403 auf youtube, da gibt es ein paar Videos dazu. Fertige Boards z.B. hier: http://dx.com/s/pam8403 Wenn Du magst kann ich Dir wohl 1-2 "nackte" SMD-IC PAM8403 zukommen lassen. Die Schaltung müsstest Du aber selbst aufbauen, mit einem SO-16 auf DIL Adapter aber kein Problem. Diesmal habe ich mich eingeloggt, Adresse bitte per PN. Fraglich ist noch, ob die Digitalendstufe negative Auswirkungen auf die Empfangsleistung hat.
:
Bearbeitet durch User
RDA5807 und PAM8403 Module zusammen 1,50€ Lohnt sich aber wegen Porto erst wenn man mehr bestellt. http://www.electrodragon.com/?s=amplifier&post_type=product
:
Bearbeitet durch User
Danke für den Tipp! Hab mir auch erstmal so ein Ding bei EBay gekauft, mich interessieren vor allem die RDS Daten. Das verlinkte Datenblatt ist nett, fett "Confidential" drüber. :-) Aber beim Hersteller bekommt man das Datenblatt leider auch nicht direkt zum Download.
Hier noch ein kleiner Verstärker für wenig Geld: http://www.aliexpress.com/item/TDA7266-power-amplifier-module-audio-amplifier-module/1243719256.html
SE schrieb: > Das Modul sieht sehr interessant aus. > Hab direkt eins bei ebay bestellt. > > Hier übrigends noch 7 Stück für je 2,50 (inkl. Versand) aus Detmold: > http://www.ebay.de/itm/200984492148 Falls noch jemand schnell eins möchte: http://www.ebay.de/itm/200988394597 Der Preis hat sich allerdings verdoppelt. Da hat wohl jemand kleine Dollarzeichen vor den Augen. :-) Falls der Verkäufer allerdings noch eine Ladung in China bestellt hat und verkaufen will, ist es rechtlich gesehen vermutlich kein Privatverkauf mehr (-> Gewinnerzielungsabsicht).
Ich hab mir dir Teile aus China bestellt ... So viel Vorfreude muss sein ;-) + TDA7266 bei Kessler (via Ebay- bisher nur gute Erfahrungen !) Grüße, Mirko
Habe jetzt mal den RDS Modus aktiviert und mir die Rohdaten ausgeben lassen, d.h. einfach nur die PI in Block A und die (meist) ASCII Daten in Block C und D. Man kann sehen, dass da auf jeden Fall verwertbare Daten ankommen. Wenn man nur die nötigsten Daten aus dem RDS beziehen möchte und auf internationale ASCII-Codetables verzichtet, ist das Decoding nicht einmal besonders aufwändig.
Sicher, kann ich heute noch einstellen, ist aber eben nur Rohdaten-Ausgabe. Das RDS Decoding (sortieren der Daten) ist noch nicht enthalten. Das Decoding werde ich machen, wenn ich den Code von Arduino auf eine ernstzunehmende Plattform portiert habe.
Sooo, wie heute Mittag versprochen in der Anlage der Arduino-Testcode. Noch zur weiteren Erläuterung: Man kann den RDA5807 auf drei verschiedenen Adressen ansprechen: 0x60 : TEA5767 compatible mode 0x10 : RDA5807 mode, sequential register address 0x11 : RDA5807 mode, random access mode. Beim ersten Modus kann man den RDA ansprechen wie ein TEA5767, d.h. bei einer bestehenden Schaltung kann man ohne SW-Anpassung den RDA5807 einsetzen (clevere Idee, senkt die Hemmschwelle beim Schaltungswechsel) Bei 0x10 kann man bei jeder neuen Übertragung ab 0x02 schreiben und ab 0x0A lesen. Die Adresse wird immer wieder neu gesetzt. Man spart sich die Übertragung des Registers und die Umschaltung des Write/Read beim Lesen aus den Registern. Im Beispiel habe ich den letzteren random-access gewählt, das ist am flexibelsten. Auf der seriellen Konsole werden einfach nur die RDS-Infos ausgegeben. Viel Spaß!
Hallo, vielen Dank für den Code. Ich kann es gerade nicht ausprobieren, werde es aber die Tage mal testen. Das schöne in diesem Modus ist dann auch, dass man die Lautstärke digital regeln kann. Ich habe mir zusätzlich noch DS1307 Echtzeitmodul und ein LCD gekauft. Das ganze kostet ja nicht viel.
Habe oben noch die Beschreibung des "random access" mode vergessen, den ich im Beispiel verwende. Dort ist es so, dass man ähnlich einem EEPROM-Zugriff nach der Startadresse die gewünschte Registeradresse übergibt. Bei Lesezugriff muss ich zunächst den Device-Code (R/W=0) senden, dann die Registeradresse, einen I2C-Restart, nochmals den Device-Code (R/W=1) und dann kann ich von dieser Adresse lesen, beliebig viele Bytes bis zum Stop. Alle Register sind als 16-bit organisiert. Leider sind die Datenblätter sehr rar, dazu nicht komplett. Einiges habe ich mir auch aus dem chinesischen Programming Manual zusammengereimt, z.B. die verschiedenen Adressierungsmodi. Noch etwas zum RDS: Wenn man entsprechend googelt, findet man bereits verwendbaren Code. Es geht eigentlich nur noch darum, dass man anhand des GT (group type) die ASCII-Bytes richtig zusammenpuzzelt, schon hat man Sendername, Radiotext und Uhrzeit. Vorher muss man noch in den RDA5807-Registern prüfen, ob die Daten gültig sind. Den ganzen Aufwand davor mit dem Bitmultiplexing und der Fehlerkorrektur kann man sich dagegen sparen, das macht der RDA schon intern. Wie bereits oben beschrieben sind in den einfachen RDS-Decodern keine ASCII-Codetables enthalten, d.h. es könnte bereits bei franzözischen oder belgischen Sendernamen (oder deutschen Umlauten?) problematisch werden (Vermutung).
Gestern ist mein neues "Radio" angekommen. Boah sind die Dinger winzig. :-)
Habe ein Programm geschrieben, das zeigt, was mit dem Winzling alles moeglich ist: - Tune to FixStation - Volume Tune - Senderinfo - Uhrzeit auslesen - Radiotext anzeigen Als Ardunio habe ich einen NANO 328 verwendet, als Terminal Putty
Sieht sehr gut aus, schöne Arbeit! Danke fürs Einstellen! Wie sind deine Erfahrungen bzgl. der Empfangsleistung? Am Anfang dachte ich super Empfang, mittlerweile sehe ich das aber als durchaus durchwachsen an. Wenn man den Specs glauben kann liegt die Empfindlichkeit bei ca. 2µV, die besten Autoradios hatten früher ca. 0.5µV.
Man müsste die Schaltung versuchshalber vielleicht mal mit einem zusätzlichen HF-Vorverstärker ausstatten. Hat das mit dem RDA5807 schon mal einer getestet?
Hoermann schrieb: > Habe ein Programm geschrieben, das zeigt, was mit dem Winzling alles > moeglich ist: > - Tune to FixStation > - Volume Tune > - Senderinfo > - Uhrzeit auslesen > - Radiotext anzeigen > > Als Ardunio habe ich einen NANO 328 verwendet, > als Terminal Putty Super, vielen Dank dafür! Wirklich tolle Module. Meine sind schon "alle". Leider hat der Verkäufer keine mehr, nur LCDs. Werd ich mir wohl welche in China bestellen müssen. Hat einer Erfahrung ob die noch vor dem Neujahresfest kommen wenn ich jetzt bestelle?
Chinese New Year 2014 fällt auf den 31. Januar (unser Neujahr interessiert die nicht) Das klappt locker, dass die Ware bis dahin außer Landes ist.
Harald schrieb: > Chinese New Year Genau das meinte ich auch, dann stehen da ja erstmal alle Fabriken still ;)
Hoermann schrieb: > Habe ein Programm geschrieben, das zeigt, was mit dem Winzling alles > moeglich ist: > - Tune to FixStation > - Volume Tune > - Senderinfo > - Uhrzeit auslesen > - Radiotext anzeigen > > Als Ardunio habe ich einen NANO 328 verwendet, > als Terminal Putty Danke für das Programm. Ich habe es für den Duemilanove w/ATmega328 kompiliert. Leider wird egal welcher Befehl eingetippt wird immer nur folgendes ausgegeben: "I dont know howto" Der String "s_cmd" ist immer leer. Hat das Problem noch jemand? Scheint wohl ein Problem mit der Stringverarbeitung zu sein?
Ich hab mir auch mal zwei Module bestellt. Jetzt stellt sich mir aber ne große Frage: Das Modul läuft ja mit 3,3 Volt, der I2C vom Arduino aber mit 5 Volt - gibts da keine Probleme? Wenn ja, würd ich das ganze schnell auf nem Breadboard mit nem ATMega8 und 3,3 Volt aufbauen, aber an den Arduino ist das ganze halt schnell angeschlossen.
Andreas schrieb: > Das Modul läuft ja mit 3,3 Volt, der I2C vom Arduino aber mit 5 Volt - > gibts da keine Probleme? Du darfst das RDA5807M-Modul auf keinen Fall mit 5V betreiben. Schließe es an 3,3V an und verbinde die beiden I2C-Leitungen mit den entsprechenden Arduino-Pins und zusätzlich jeweils über einen 4,7k-Widerstand mit 3,3V (Pull-Ups). Erfahrungsgemäß funktioniert dies - es kommt eben darauf an, ob der Arduino den entspr. Level noch als High ansieht. Mehr Infos (u.a. zuverlässigere, aber aufwändigere Methoden): http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
Super, vielen Dank. Der Weg mit den 4k7-Widerständen reicht für meine Zwecke vorerst aus. Wenns damit nicht klappten sollte, weiss ich ja was zu tun ist. Jetzt fehlen nur noch die Module aus China :)
Unabhängig von diesem Thread hier hab ich heute mit den beiden "Radio-Chips" TDA7021 (keine Controllersteuerung) und dem RDA5807 "herumgespielt". Genau wegen der Empfangsempfindlichkeit dieser Chips(der RDA5807 wird mit ATmega168 und AVR-GCC Programm angefahren). Weil die Eingangsempfindlichkeit der Antenne wirklich nicht soooooo der "Bringer" ist hab ich eben genau daran "gespielt". Ich kann zwar (mangels Meßgeräten) nicht den db- Gewinn angeben die meine Schaltung erreicht, ich kann nur sagen, dass der Empfang (sehr) merklich besser geworden ist. Wer die Schaltung also gebrauchen kann: Bitte bedienen (für die Benutzer des RDA5807 hier: der Ausgang des Verstärkers ist Pin 5 des RDA5807 anzuschließen). Zu den Transistoren: Sie sind deshalb gewählt worden, weil ich sie hatte (smile sie waren halt schon sehr lange die preiswertesten die Rei**** im Sortiment hat). Viel Erfolg, Ralph
Mir ist noch eine Anwendung für den RDA5807 eingefallen, die vielleicht zunächst einmal nicht sofort auf der Hand liegt. Und zwar als Zeitzeichenempfänger als Ersatz für ein DCF-Modul! Die DCF Geschichten sind ja hier und da recht hakelig im Betrieb. Im Falle des RDA5807 stelle ich mir das folgendermaßen vor. - Autotuning bis Sender gefunden - RDS Informationen vorhanden? Falls nein, weiter tunen. - wenn gültige RDS-Daten vorhanden, RDS-Multiplexer für Zeit abwarten - Optional noch Datum auslesen - Fehlerbits prüfen, evtl. noch einmal Uhrzeit plausibilisieren. - Ruhezustand bis zum nächsten Abgleich mit der internen Uhr Im Ergebnis ein sehr günstiger Zeitzeichenempfänger mit I2C, stromsparend und mit einfacher Antenne. Vom Programmieraufwand in einer kleinen Statemachine realisierbar. Nur als Anregung zu verstehen, ich selbst habe derzeit keine Anwendung und auch keine konkreten Fragen.
Kann es sein, daß die RDA5807M extrem taub sind und einen Verstärker vor dem Antenneneingang benötigen oder bin ich nur zu blöd? Bei fünf verschiedenen Modulen bekomme ich mit Wurfantenne gar keinen Sender, bei angeschlossenem Kabelanschluß liegen die Sender da wo sie sein sollten, gehen aber im Rauschen unter (RSSI ausgelesen aus 0x0b bei 5-6). Gibt es da irgendwo ein Bit das ich übersehen habe oder hab ich Ausschuß geliefert bekommen?
Hi, the attached program is a great help for who's starting! Thank you Harald. Keep us informed on further development. Answering to MG, I was in trouble too with command input. Than I solved change the line (587): if (i_key==13){CLI_exec(); } to if (i_key==10){CLI_exec(); }
@Oliver: der RDA5807 ist sicher nicht das empfangsstärkste Radio auf diesem Planeten, aber eigentlich lassen sich die starken Sender relativ gut empfangen. Vielleicht stört der Mikrocontroller, mit dem Du das Modul betreibst? Sind die I2C-Flanken vielleicht zu steilflankig und eine häufige Kommunikation stört den Empfang. Evtl. nach dem Init mal den uC abschalten? @Ivan: Thank you, but since then I have made no progress. It was just a project for a few hours to check the performance. Maybe I continue soon with a small project where the RDA5807 acts as a nice and convenient replacement for a DCF time receiver. Keep you informed here.
Guten Tag! Mozhete unterstützen die Arbeit an RDA5807FP . Es scheint zu funktionieren , aber irgendwie seltsam: 1) Kein Team Ergebnisse: Register_02H : =% 11000011 ; Register_02L : =% 00000101 ; Register_03H : =% 00000000 ; Register_03L : =% 00001000 ; Register_04H : =% 01000010 ; Register_04L : =% 00010000 ; Register_05H : =% 10001000 ; Register_05L : =% 10001111 ; SREG_I_bit : = 0; TWI_Init (100.000) ; Initialisieren TWI -Kommunikation TWI_Start (); TWI_Write (% 00100001 ); Register_0AH : = TWI_Read (1); Register_0AL : = TWI_Read (1); Register_0BH : = TWI_Read (1); Register_0BL : = TWI_Read (0); TWI_Stop (); TWI_Close (); SREG_I_bit : = 1; Findet Kanäle, sondern in einer fremden Sequenz MHz : 76,6 -> 109,9 -> 102,2 -> 106,6 -> 102,2 -> 106,6 -> 101,1 -> 102,2 -> 76,6 -> 109,9 -> 106,6 -> 101,1 In der Regel einige Unsinn ohne Logik . 2) Es ist die Formel für die Bestimmung der Frequenz Datenblatt nicht funktioniert: BAND = 1 oder 2 Frequenz = Kanalabstand (kHz) x READCHAN [ 09.00 ] + 76,0 MHz Aber es funktioniert und erkennt die richtige Frequenz : Frequenz = READCHAN [ 09.00 ] + 76,0 MHz Lesen Register so getan habe: Vorgehensweise RDA5807FP_read (); beginnen SREG_I_bit : = 0; TWI_Init (100.000) ; Initialisieren TWI -Kommunikation TWI_Start (); TWI_Write (% 00100001 ); Register_0AH : = TWI_Read (1); Register_0AL : = TWI_Read (1); Register_0BH : = TWI_Read (1); Register_0BL : = TWI_Read (0); TWI_Stop (); TWI_Close (); SREG_I_bit : = 1; zu beenden; Bestimmung der Frequenz: tmp : = Register_0AL ; wenn Register_0AH.0 = 1, dann tmp : = tmp 256 ; wenn Register_0AH.1 = 1, dann tmp : = tmp 512 ; tmp : = 760 + tmp; FREQ : = tmp; Wenn nicht schwer , zeigen Sie mir bitte. Sergey Shteynle
Sorry, im letzten Bericht, anstelle des Befehls Schreib-, Lese-Befehl aufgezeichnet. Suche Befehl sieht wie folgt aus: Register_02H: =% 11000011; Register_02L: =% 00000101; Register_03H: =% 00000000; Register_03L: =% 00001000; 10 = 76 bis 108 MHz (weltweit), 00 = 100 kHz Register_04H: =% 01000010; Register_04L: =% 00010000; Register_05H: =% 10001000; Register_05L: =% 10001111; TWI_Init (100.000); Initialisieren TWI-Kommunikation TWI_Start (); TWI_Write (% 00100000); TWI_Write (Register_02H); TWI_Write (Register_02L); TWI_Write (Register_03H); TWI_Write (Register_03L); TWI_Write (Register_04H); TWI_Write (Register_04L); TWI_Write (Register_05H); TWI_Write (Register_05L); TWI_Stop (); TWI_Close (); SREG_I_bit: = 1; Sergey Shteynle
Lebkuchenesser schrieb: > Man müsste die Schaltung versuchshalber vielleicht mal mit einem > zusätzlichen HF-Vorverstärker ausstatten. Hat das mit dem RDA5807 schon > mal einer getestet? Ralph S. schrieb: > Weil die Eingangsempfindlichkeit der Antenne wirklich nicht soooooo der > "Bringer" ist hab ich eben genau daran "gespielt". > > Ich kann zwar (mangels Meßgeräten) nicht den db- Gewinn angeben die > meine Schaltung erreicht, ich kann nur sagen, dass der Empfang (sehr) > merklich besser geworden ist. > > Wer die Schaltung also gebrauchen kann: Bitte bedienen (für die Benutzer > des RDA5807 hier: der Ausgang des Verstärkers ist Pin 5 des RDA5807 > anzuschließen). Vielen Dank, den Thread hatte ich ja völlig aus den Augen verloren. Sobald ich wieder gesund bin, werde ich das mal ausprobieren. Sergey schrieb: > Die Frage wird entfernt, alles funktionierte - > Youtube-Video "VID 20140602 211231" Sehr schickes Radio, das Du da gebaut hast! Nackig, aber sexy ;-)
Gestern schließlich verlötet sein Radio-Programm und podshamanit - https://www.youtube.com/watch?v=6c9tcjwxiL8&feature=youtu.be Ich verstehe immer noch nicht: 1) funktioniert nicht, wenn Sie Such Schritt 25kHz fragen 2) Wenn ich nicht arbeite mit Quarz auf der anderen von 32768 Datenblatt. Sergey Shteynle
SPI? Klar! TEA5767 oder SI4684 Aber warum sollte ausgerechnet das Interface eine Rolle im Projekt spielen?
Harald schrieb: > TEA5767 oder SI4684 Naja, der SI4684 scheint zumindest tot zu sein. Und NXP kennt den TEA5767 garnicht. Die Frage war jetzt weniger, ob es sowas mal gegeben hat. :-) > Aber warum sollte ausgerechnet das Interface eine Rolle im Projekt > spielen? Weil I2C zumindest mit den AVRs stinkt weil es viel zu Software-lastig ist.
Du fragtest, ob es so etwas mit SPI gibt. Gibt es. Silabs FM Tuner waren schon immer etwas schwierig in der Direktbeschaffung. Muss man schon ein wenig Aufwand treiben. Problem ist da eher die Doku unter NDA. TEA5767-Module gibt es bei aliexpress und ebay bis zum Abwinken zum Spotpreis. I2C als Master ist mit AVR ein Klacks, außerdem gibt es zig fertige Libs. Das ist nun wirklich leichter als Brot essen. Außerdem könnte man ja auch einen zeitgemäßen Controller wählen.
Harald schrieb: > TEA5767-Module gibt es bei aliexpress und ebay bis zum Abwinken zum > Spotpreis. Naja, ich kaufe einfach keine toten Chips. > I2C als Master ist mit AVR ein Klacks, außerdem gibt es zig fertige > Libs. Das ist nun wirklich leichter als Brot essen. I2C ist mit den AVRs blöd weil die TWI-Unit einem quasi garnichts abnimmt, jedes einzelne Byte das übertragen wird muss man bewerten und entsprechend reagieren, da ändert eine Library so überhaupt nichts dran. Da ist SPI einfach besser, dadurch das die Bausteine direkt per Select angesprochen werden fällt der Adressierungs-Overhead weg und SPI ist auch noch schneller so das die Übertragungszeit so kurz ist das man schonmal drauf warten kann ohne alles zu blockieren. Eine TWI-Einheit wie die CAN-Controller oder auch die neueren LIN-Einheiten hätte was gehabt, aber so wie es ist fasse ich I2C nicht wieder an.
Rudolph schrieb: > I2C ist mit den AVRs blöd weil die TWI-Unit einem quasi garnichts > abnimmt, jedes einzelne Byte das übertragen wird muss man bewerten und > entsprechend reagieren, Kann es sein, daß Du nur mit Tinys und USI gearbeitet hast? Schau Dir mal Megas mit echtem TWI an
Oliver R. schrieb: > Kann es sein, daß Du nur mit Tinys und USI gearbeitet hast? Nope, und das ist mal richtig übel, SPI bei dem man den Takt selber generieren darf. > Schau Dir mal Megas mit echtem TWI an Ich empfehle Dir, das selber mal zu tun und I2C zu implementieren damit anstatt Code anderer Leute aufzurufen. Abdul K. schrieb: > Nimm einfach eine der vielen Bitbanging-Libs. Autsch. Aber das traurige an Atmels TWI Unit ist, dass das nichtmal wirklich einen Unterschied machen würde.
Hier, das meinte ich damit das man jedes einzelne übertragene Byte bewerten und entsprechend reagieren muss. Das finde ich schon ganz schön übel für eine Interrupt-Funktion einer Hardware-Unit. Da ziehe ich SPI einfach vor und wäre immer noch interessiert an einem FM Radio Chip der vor allem auch RDS kann, der nicht nur auf dem Grabbeltisch existiert und der auch beschaffbar ist.
Na dann ist ja alles gut. Gott sei Dank bestehst Du auf RDS. Sonst müsstest Du ja noch einen Projektstart "befürchten", sobald Dir jemand nachweist, dass der TEA5767 bei NXP doch nicht abgekündigt und "full production" ist. Lass diesen Thread doch bitte nicht in einen Glaubenskrieg ausarten, in dem Du der Welt kundtust, dass SPI doch viel geiler als I²C ist.
Och naja, ich habe doch nur gefragt, ob es sowas auch mit SPI gibt. Mein Fehler war jetzt die Frage nach dem warum zu beantworten. Den TEA5767 kann ich bei NXP einfach nicht finden. Weder über die Suche, noch über die Produkte. Ich finde nur, dass der TEA5767HL/V2 2007 abgekündigt wurde und der TEA5767HN/V3 der Ersatz-Typ sein soll. Bei Digikey werden die gelistet, ohne Bestand, da gibt es sogar ein Datenblatt, Rev. 05 vom Januar 2007. Ganz oben steht der Hinweis drüber, dass ab August 2008 die Wireless Operations von NXP in eine neue Firma verschoben wurden: "ST-NXP Wireless". Mit einem Link auf http://www.stnwireless.com Aber was auch immer da zu sehen ist, das hat nichts mit Chips zu tun. :-)
Rudolph schrieb: >> Schau Dir mal Megas mit echtem TWI an > > Ich empfehle Dir, das selber mal zu tun und I2C zu implementieren damit > anstatt Code anderer Leute aufzurufen. > > Abdul K. schrieb: >> Nimm einfach eine der vielen Bitbanging-Libs. > > Autsch. > Aber das traurige an Atmels TWI Unit ist, dass das nichtmal wirklich > einen Unterschied machen würde. Nach dieser Ansage wirst du nicht mehr viel Hilfe bekommen, schätze ich. Der Ton ist falsch und rein technisch ist deine Behauptung auch sehr fragwürdig. Was ist schwer daran einfach i2c_init i2c_start i2c_sendByte i2c_RecAck, usw. i2c_stop aufzurufen und vorher dem Compiler noch zu sagen welche Pins er doch benutzen soll? Auf der Ebene würde es bei SPI ziemlich genau gleich aussehen! Was die Hersteller implementieren kann man halt nicht großartig beeinflussen. Bei NXP würde man auch automatisch an i2c denken ;-) Was den TEA angeht, digikey halt zwar fast alles aber nicht alles. Da scheint die momentane Liste von NXP zu sein: http://www.nxp.com/technical-support-portal/#/tid=50812,sid=50821,tab=datasheets Vielleicht findest du in Fernost was besseres mit SPI :-)
Abdul K. schrieb: >> Aber das traurige an Atmels TWI Unit ist, dass das nichtmal wirklich >> einen Unterschied machen würde. > > Nach dieser Ansage wirst du nicht mehr viel Hilfe bekommen, schätze ich. Gut das ich nicht um Hilfe mit I2C gebeten habe. > Was ist schwer daran einfach i2c_init i2c_start i2c_sendByte i2c_RecAck, > usw. i2c_stop aufzurufen und vorher dem Compiler noch zu sagen welche > Pins er doch benutzen soll? > Auf der Ebene würde es bei SPI ziemlich genau gleich aussehen! An der Ebene bin ich nicht interessiert und das kann ich so auch nicht gebrauchen, eine Ebene tiefer macht es einen deutlichen Unterschied. > Was den TEA angeht, digikey halt zwar fast alles aber nicht alles. Anders herum, ich habe nicht bei Digikey speziell gesucht sondern nur bei Digikey gelistet gefunden. > Vielleicht findest du in Fernost was besseres mit SPI :-) Fernost ist irgenwie immer noch nicht besser als vor 15 Jahren, selbst wenn der Hersteller eine Homepage haben sollte bekommt man normalerweise weder die Bauteile noch irgendwelche Infos.
Moin! Ich habe gestern (und heute Morgen) endlich mal mit dem RDA5807 gespielt. Um nur mal schnell die Grundfunktion zu testen habe ich die Initialisierung aus dem instructables Link genommen. Aber es tat sich nichts. Ich habe auch kein Ack vom Chip bekommen, wenn ich ihn mit der Adresse 0x60 anspreche. Beim durchwühlen des Datenblatts http://www.electrodragon.com/w/images/5/5f/RDA5807M_datasheet_v1.pdf ist mir aufgefallen, das hier nur die 7-Bit Adresse "0010000b" angegeben wird. Mit R/~W Flag also "00100000b" also 0x20. Wenn ich den Chip damit anspreche, bekomme ich ein Ack. Aber wie kommen dann diese Adressen zustande: Harald A. schrieb: > Noch zur weiteren Erläuterung: Man kann den RDA5807 auf drei > verschiedenen Adressen ansprechen: > 0x60 : TEA5767 compatible mode > 0x10 : RDA5807 mode, sequential register address > 0x11 : RDA5807 mode, random access mode. Und wo kann man den TEA kompatiblen Modus nachlesen? Wenn ich dann den Chip mit 0x21 Adressiere und auslese, sind ein Teil der Registerwerte schlüssig. Zum Beispiel die default-Werte von 0x0C bis 0x0F passen. Initialisieren kann ich jedoch nicht. Der 32kHz Quarz ist still und der Audio-Out ebenfalls. ---------------- Als Hardware nutze ich ein Arduino Mini Pro, welchen ich normal über ISP und AVR Studio programmiere. Die Arduino Software (inkl. Bootloader) habe ich geöscht. Für I2C nutze ich die I2C Library von Peter Danegger aus dem Forum. ---------------- Hat jemand noch weitere Datenblätter? Gibt es ein Applikation Note zu dem Teil? Vg! SE
Ein paar Selbsterkenntnisse: Nr.1: Die Arduino "Wire" Bibliothek wird in den Beispielen immer mit 7-Bit Adressen befüttert. Ich selbst arbeite "schon immer" mit 8-Bit Adressen. (Bei mir gehört das R/~W Flag schon immer dazu.) Mit den sortierten Adressen funktioniert alles wie gehabt. Nr.2: Bei meiner Platine ist der Quarz defekt !!! Die Controlregister konnte ich schreiben und lesen, aber am Ausgang und am Quarz tat sich nichts... Den habe ich ersetzt gegen einen aus der Grabbelkiste und schon hörte ich Musik. :-) Nr.3: Es gibt anscheinend nur das ominöse Chinesische Programming Guide, wo jedes 10te Zeichen Latein ist. Aber mit den Super Beispielen aus diesem Thread kann man sich alles nötige zusammenreimen.
Die Silabs Si4705 und Si4706 gehen wirklich gut. Empfindlichkeit sehr gut. Und die Voreinstellungen der Register auch. Bei Philips bekommt man nicht mal ein Datenblatt. Auf deren Internetseiten sind nicht mehr als Übersichtsfolder ohne Details. Anfragen selbst von Firmen werden offensichlicht direkt auf dev/null geschoben. Silabs dagegen bietet alle Infos (fast) inklusive allgemeiner AppNotes zum Thema jedem zum Download. Die Infos zum RDA5807 fand ich auch ziemlich spärlich.
Ich brauche mal eure Hilfe. Und zwar versuche ich den Arduino Code in nicht-Arduino Code zu übersetzen. Gegeben:
1 | void RDA5807_ReadW(int i_cnt) |
2 | {
|
3 | Wire.beginTransmission(RDA5807_adrr); // Device 0x11 for random access |
4 | Wire.write(0x0C); // Start at Register 0x0C |
5 | Wire.endTransmission(0); // restart condition |
6 | Wire.requestFrom(RDA5807_adrr,2*i_cnt, 1); // Retransmit device address with READ, followed by 8 bytes |
7 | for (int i=0; i<i_cnt; i++) // Loop for Read data |
8 | {aui_RDS[i]=256*Wire.read()+Wire.read();} // Read Data into Array of Unsigned Ints |
9 | Wire.endTransmission(); |
10 | }
|
Und hier meine Übersetzung mit Fleury Lib i2cmaster.h:
1 | void RDA5807_ReadW(int i_cnt) |
2 | { int readL, readH; |
3 | char buffer[50]; |
4 | |
5 | i2c_start(RDA5807_adrr); // Device 0x11 for random access |
6 | i2c_write(0x0C); // Start at Register 0x0C |
7 | i2c_rep_start(RDA5807_adrr+I2C_READ); // restart condition |
8 | for (int i=0; i<i_cnt; i++) // Loop for Read data |
9 | { readH=i2c_readNak(); |
10 | readL=i2c_readNak(); |
11 | aui_RDS[i]=256*readH+readL; |
12 | sprintf(buffer,"Read: aui_RDS[%i]=%x\n",i,aui_RDS[i]); |
13 | uart_puts(buffer); |
14 | |
15 | } // Read Data into Array of Unsigned Ints |
16 | i2c_stop(); |
17 | }
|
Ich bekomme komische Werte heraus, daher ist meine Abfrage wohl falsch. Read: aui_RDS[0]=18ff Read: aui_RDS[1]=ffff Read: aui_RDS[2]=ffff Read: aui_RDS[3]=ffff Da die Fleury_Lib mit 8-bit i2c-Adressen arbeitet, ist RDA5807_adrr=0x11<<1;
:
Bearbeitet durch User
Irgendwie funktioniert das seekup/seekdown bei dem RDA5807 nicht.
1 | int RDA5807_SeekUp() |
2 | {
|
3 | uart_puts("Seek Up\n"); |
4 | aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] | 0x0300; // Enable Seekup |
5 | aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] & 0xFFBF; // Seek-Wrap enable |
6 | RDA5807_Write(); |
7 | aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] & 0xFCFF; // Disable Seekup |
8 | return 0; |
9 | }
|
Bit 8+9 werden gesetzt und dann verschwindet auch die eingestellte Radiostation. Also es passiert etwas (aktuelle Station verschwindet), aber das Modul findet keine neue Station. Bit 7 sollte eigentlich dafür sorgen, dass ein Überlauf beim Seek stattfindet. Ein Dump der Freqeuenz sagt 119Mhz, hmmm. Hat jemand eine Ahnung, ob noch mehr Parameter eingestellt werden müssen?
In Register 05 Bits 11-8 gibt es das Threshold für die Empfindlichkeit bei der Suche. Vielleicht ist die Voreinstellung bei deinen Empfangsbedingungen zu hoch?
Ich habe mir mal die RAM-Werte des 02H Registers ausgeben lassen vor dem Seek und nach dem Seek: ----- Status ----- R02=D00B //vor Seek R03=2950 R04=1400 R05=84D1 R06=4000 R07=0 Mhz=103.60 PI=-11432 Stereo NoRDS RSSI 2 Sekunden Pause nach dem Write der Register: ----- Status ----- R02=84D1 // nach Seek R03=2950 R04=1400 R05=84D1 R06=4000 R07=0 Mhz=103.60 PI=-11432 Mono NoRDS RSSI Da wird irgendwie der CLK_Mode von 000 auf 110 gesetzt (?). Und Mute wird auch gesetzt.
:
Bearbeitet durch User
Anbei ein Programming Manual für RDA7805P. Werde mich mit Google Translate mal durchkämpfen. Da scheint auch etwas über Seek drinzustehen: Step1: - Mov 0x0150, 03H //Set channel number to 87.5MHz, space to 100KHz, band to 87_108MHz *Wait for GPIO2=0 //optional, wait for tune complete, if use interrupt *Wait for STC=1 //optional, wait for tune complete, if use polling method - Read 0A, 0BH //read stauts - Wait 1ms //guarantee STC is cleared Step2: - Mov 0xD381, 02H // set SEEK and SEEKUP for seek operation *Wait for GPIO2=0 //optional, wait for seek complete, if use interrupt *Wait for STC=1 //optional, wait for seek complete, if use polling method - Read 0A, 0BH //read stauts - Wait 1ms //guarantee STC is cleared - If SF=1, go to step3; else memorize READCHAN and go to step2. Step3: - Stop Seek
:
Bearbeitet durch User
Und hier auch noch das Programming Manual für den SP von 2010. Nach poweron stehen hier delay_ms(600) drin.
Rudolph schrieb: > Gibt es sowas eigentlich auch mit SPI? Ja, RDA5807SP oder RDA5807P. nur der RDA5807M kann das nicht.
Der Thread ist schon Jahre alt, aber wenn Martin ihn schon neu aufgemacht hat - ein paar Warnungen: Der RDA5807 scheint eine mäßige Kopie des Silab-Chips zu sein, selbst die Register sind nahezu identisch. Wenn er denn einen Sender empfängt ist er soweit OK, aber Sendersuchlauf oder RDS-Empfang sind sehr buggy. Dafür nicht zu gebrauchen. Da man mittlerweile die diversen Silab-Chipsman diversen Ecken bekommt, würde ich absolut zum Original raten.
Martin schrieb: > Ja, RDA5807SP oder RDA5807P. nur der RDA5807M kann das nicht. Also in den Datenblättern die ich zu den beiden spontan finde konnte steht I2C drin und SPI wird nicht erwähnt.
Ralph S. schrieb: > Unabhängig von diesem Thread hier hab ich heute mit den beiden > "Radio-Chips" TDA7021 (keine Controllersteuerung) und dem RDA5807 > "herumgespielt". Genau wegen der Empfangsempfindlichkeit dieser > Chips(der RDA5807 wird mit ATmega168 und AVR-GCC Programm angefahren). > > Weil die Eingangsempfindlichkeit der Antenne wirklich nicht soooooo der > "Bringer" ist hab ich eben genau daran "gespielt". > > Ich kann zwar (mangels Meßgeräten) nicht den db- Gewinn angeben die > meine Schaltung erreicht, ich kann nur sagen, dass der Empfang (sehr) > merklich besser geworden ist. > > Wer die Schaltung also gebrauchen kann: Bitte bedienen (für die Benutzer > des RDA5807 hier: der Ausgang des Verstärkers ist Pin 5 des RDA5807 > anzuschließen). > > Zu den Transistoren: Sie sind deshalb gewählt worden, weil ich sie hatte > (smile sie waren halt schon sehr lange die preiswertesten die Rei**** > im Sortiment hat). > > Viel Erfolg, Ralph Hallo, ich weiß, dass der Beitrag schon 4 Jahre alt ist. Dennoch benötige ich hierzu Hilfe. Und zwar habe ich den Vorverstärker von Ralph S. nachgebaut. allerdings habe ich statt dem BF241 Transistor einen BF494 benutzt. Jetzt bekomme ich keinen Empfang und frage mich, was ich anpassen muss. Ich habe leider von Empfangstechnik sehr wenig Ahnung. Ab und zu kommt es vor, dass der Vorverstärker funktioniert und ich einen super Empfang habe. Besser als bei jedem anderem Radio. Es kommt nur sehr selten vor. Ich bin dankbar um jede Hilfe. Habe schon einige Tage bzw. sehr viel probiert. Vielen Dank im Vorraus! Anbei der Schaltplan von Ralph S. Gruß
setze einen SI4703 ein - damit wird es wenigstens was. RDS hatte ich nie richtig zum gelaufen gebracht - aber mit den SI4703 war dass kein Problem
Carsten schrieb: > allerdings habe ich statt dem BF241 Transistor einen BF494 benutzt. Der erstere hat eine Transitfrequenz von knapp 500MHz, der zweitere 120MHz. Da ist sogar der BC547 noch besser... https://www.edaboard.com/showthread.php?131619-What-is-fT-of-a-transistor Zudem ist in dem geposteten Bild auch kein BF241 zu sehen. Aber auch der dortige BF324 hat 450MHz..
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Zudem ist in dem geposteten Bild auch kein BF241 zu sehen. Aber auch der > dortige BF324 hat 450MHz.. ... eigentlich sind beide zu sehen. Hm, für mich nicht ganz ersichtluch warums mal geht und mal nicht. Prinzipiel richtig: je höher die Transitfrequenz desto gut...
unbekannt schrieb: > setze einen SI4703 ein - damit wird es wenigstens was. > RDS hatte ich nie richtig zum gelaufen gebracht - aber mit den SI4703 > war dass kein Problem Ich habe vor über einem Jahr mit dem RDA5807 gespielt, der Radioempfang meiner Regionalsender ist recht manierlich. Carsten will wohl Radio hören, das sollte gehen. Aber: Eine HF-Vorstufe, da lasse ich die Finger weg, dazu braucht man Erfahrung und Meßtechnik. Meine Idee war aber, mir per RDS die Uhrzeit zu holen - da habe ich viele Stunden drin versenkt und dann aufgegeben. Egal, was ich probiert habe, es kamen niemals stabile Daten aus dem Ding heraus.
Hallo, Vielen Dank für die Antworten! Ich habe nochmal in den letzten Ecken meiner Elektroniker-Bestände gesucht und tatsächlich einen bf241 gefunden. Jetzt kann ich super Radio hören. Zudem habe ich noch etwas an der Spule herumgebogen (nur sehr leicht). Danke für den Tipp mit der Transitfrequenz. Ist mir jetzt auch einleuchtend. Bevor ich auf den SI4703 umsteige probiere/teste ich noch ein wenig. Dennoch danke für den Vorschlag! Gruß Carsten
gibts solch Radio fix und fertig ohne den Arduino-Scheiß? Ich will sowas kaufen, einschalten und staunen, was es alles kann! Mir nützt weder der Arduino, Rasperry oder wie das Zeuch heißt, etwas, ich hab keine Ahnung von diesem Schlaugetuezeugs. Ich kann weder was programmieren, noch kann ich mit solchen Texten und Libs was anfangen! Ich such ganz einfach ein fertig aufgebautes Radio mit RDS und bissel Schnickschnack, was man auch mal reparieren kann, wenns einen Defekt oder andre Macken aufweiist!. YKann aus Silabs, RDA,Beken- Chipserierien sein, Hauptsache das Ding hat Stereo, Display mit RDS und Mp3-Wiedergabe inclusive IR-Fernbedienung. Meinetwegen spezifischließlich Akkubetrieb und portable nutzbar. Erwähnte ich schon dass keine Arduino und Rasperrysch .. das sein darf? Also hat jemand ein aufbaubares einfach fernbedienbares RDS-Radio mit Mp3-Wiedergabe von SD u USB? Ja, dann schreib den Preis hier. Bausatz kein Problem, Nur kann und will ich weder was erst programmieren muessen, wovon ich wie ne Kuh Fliegenschiß verstehe, noch soll das Ding für genau den ganz normalen Verbraucher mit Hyroglyphensprache nicht verständlich sein. Habt ihr sowas zum Verkauf anzubieten, was ich nur mit Strom versorgen und einschalten kann? Her damit.. Ihr tut doch immer alle so superschlaue Profis zu sein, so zeigt ,was ihr aufm Kasten habt oder schweigt lieber für immer. Wenn ihr so schlau seid, wie ihr hier rumprahlt, warte ich mal, ob es solche Schlautuer nur anonym oder tatsächlich ausgewiesene Profis sind, die sich im Netz tummeln. Von Lügnern,, Betrug, Beschiß und Abzockern halte ich nämlich ebensowenig, wie von Klugscheißermachos und selbsernannten Machoprofis!
www.mediamarkt.de Gehäuse drum wegschrauben und wieder dranbauen. Sofern das nicht zu kompliziert ist.
Ja, ich kenne 3 Projekte die deinen Vorgaben entsprechen, eines auch als Kit. Aber bei deinem Tonfall werden die dir auch nicht zusagen. Du mokierst dich über Pseudo..xxx, bist aber selbst als Gast hier. Somit kann ich dir keine Info per PM zukommem lassen. Das Projekt mit Bauteilesatz hat zusätzlich noch Bluetooth, muss aber nicht bestückt werden. Stückliste ist bei Reichelt als Warenkorb verfügbar, Platine beim Verfasser.
Kurze Rückmeldung für andere, die auch mit dem Modul experimentieren: Ich konnte den Empfang noch einmal verbessern, indem ich in das Register 05h 0xF0 (plus Lautstärke in den unteren 4 Bits) geschrieben habe. Zusätzlich habe ich noch den "OPEN_Mode" 06h_bit<14,13> = 11 aktiviert. RDS-Daten kommen jetzt schon fehlerfrei an (ohne Plausibilitätsprüfung o.Ä.). Achja ich programmiere ohne Arduino und Raspberry, sondern verwende den PIC18F45K50. Einschalten und staunen... Gruß
Hallo Michael. Michael G. schrieb: > Mir fehlt gerade ein wenig die Fantasie -- angenommen, ich habe bereits > ein Radio (oder mehrere), deren Klang vermutlich um einiges besser ist > als das, was man mit diesem Modul zusammenlöten kann -- was mache ich > dann damimt? Du könntest Dir damit ein Radio bauen, das von der Bedienung her um einiges besser ist als die grottigen Implementierungen die Du kaufen kannst. ;O) Das mit dem Klang liegt meistens an der Größe des Lautsprechers, und ob die Spannungsversorgung die Endstufe bei den Peaks im Bass noch ausreichend beliefern kann. Der Klang ist tatsächlich auch für viele eher nebensächlich, die weniger Musik als zum Beispiel Nachrichtenlastige Programme wie DLF oder WDR5 oder vergleichbares hören. Da legt man den Frequenzgang besser aus wie z.B. bei Handfunkgeräten. Jedenfalls empfinde ich z.b. die Implementierung des FM-Radios in meinem Wouxun Handfunkgerät oder meinem SwissOne Handy als missglückt. Und auch mein neues "Küchenradio" hat zwar einen guten Klang, verweigert mir aber über die Rauschsperre und die AFC den Empfang von Programmen, die ich hier nur verrauscht empfange. Merke: Gebaut wird kommerziell nur dass, was man meint, dass man es den Leuten gut anbieten kann. Das sind aber gerade im Konsumerbereich nur oberflächliche billig Lösungen. Weil gerade den "Konsumern" meistens auch die Fantasie fehlt, was möglich wäre und was sie damit machen können und deshalb auch nicht verlangt wird. Beispiel: Bedienung nicht über Taster, sondern über Dreh- oder Schiebeschalter mit Knöpfen, deren Position sich gut erfühlen lässt. Dann muss ich nicht zum Bedienen hinschauen. Wenn das ganze auch noch etwas schwergängiger und versenkt montiert ist, sind die Schalter auch gegen versehentliches Betätigen besser geschützt. AFC und Squelch müssen abschaltbar sein. Frequenzgang auf Sprache und nicht auf Musik ausgelegt. Robuste Versorgung aus verschiedenen Spannungsquellen. Robustes Gehäuse. Dafür würde ich dann ein ein uncooleres optisches Design gerne in kauf nehmen. ;O) Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.dl0dg.de
Bernd W. schrieb: > Beispiel: Bedienung nicht über Taster, sondern über Dreh- oder > Schiebeschalter mit Knöpfen, deren Position sich gut erfühlen lässt. > Dann muss ich nicht zum Bedienen hinschauen. Wenn das ganze auch noch > etwas schwergängiger und versenkt montiert ist, mein Radio erfüllt diese Kriterien ... und funktioniert wieder richtig gut, nachdem 3 Kondensatoren und das magische Auge ersetzt wurden. Mittlerweile steht das gute Stück im Wohnzimmer und hat dahinter über den TA Eingang eine Bluetoothbox und ein I-Net Radio zur Verfügung. Allerdings muß ich sagen, dass ich das relativ selten nutze. Aus meiner Sicht der Dinge ist der Klang sensationell (und hat Bass und Höhe getrennt und, sehr fortschrittlich für 1959: Tasteneinstellbare Frequenzfilter für Sprache, Klassik, Solo und Jazz)
Hallo Bitch. YourBitchpassed schrieb: > Ich such ganz einfach ein fertig aufgebautes Radio mit RDS und bissel > Schnickschnack, was man auch mal reparieren kann, wenns einen Defekt > oder andre Macken aufweiist!. YKann aus Silabs, RDA,Beken- Chipserierien > sein, Hauptsache das Ding hat Stereo, Display mit RDS und > Mp3-Wiedergabe inclusive IR-Fernbedienung. Meinetwegen > spezifischließlich Akkubetrieb und portable nutzbar. Erwähnte ich schon > dass keine Arduino und Rasperrysch > .. das sein darf? > Also hat jemand ein aufbaubares einfach fernbedienbares RDS-Radio mit > Mp3-Wiedergabe von SD u USB? Alles, was Du möchtest, RDS, "bissel Schnickschnack" Mp3 von SD/USB geht nur im Zusammenhang mit einem Kleinstrechner . Den haben auch die Geräte intern verbaut, die Du im Laden kaufen kannst. Es wird nur nicht explizit dazugeschrieben, aber die Funktionalität dieser Bauteile ist in etwa mit denen eines Arduinos oder Raspberrys vergleichbar. Der einzige Unterschied ist, sie sind etwas abgespekter und dafür hast oft keine Chance, sie selber zu Programmieren (selbst wenn Du Programmieren gelernt hast) oder als Ersatzteil zu bekommen. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.dl0dg.de
Auch wenn der thread schon etwas älter ist: Ich bastele (für ein Projekt mit Schülern) auch gerade mit dem RDA5807 herum. Eigentlich funktioniert alles, (danke übrigens an Carsten mit dem Tipp "Register 05h 0xF0"), aber bei mir säuft das Ding wie ein Loch. Ich messe im Normal-Mode bis zu 70mA bei 3V und der Chip wird 45°C heiss. Das kann doch nicht normal sein. Im Datenblatt stehen ja typ. 20mA. Ich habe die Teile natürlich auch vom Chinesen, kann daher auch sein, dass es Ausschussware ist. Aber ich würde trotzdem mal gerne hören, ob Ihr ähnliche Erfahrungen gemacht habt, d.h. wie hoch die Stromaufnahme bei euren RDA5807 war/ist. Da es ein Schülerprojekt werden soll, ist die Stromaufnahme wichtig, weil mit 2 AAA-Batterien versorgt werden soll. Danke im voraus.
cassini schrieb: > Ich messe im Normal-Mode bis > zu 70mA bei 3V und der Chip wird 45°C heiss. Auch wenn der Thread uralt ist: Die 70mA kann ich mir nur so erklären, dass du an den RDA5807 Lautsprecher direkt OHNE Auskoppelkondensator angeschlossen hast...
Hallo zusammen, ich versuche gerade solch ein Modulk zu nutzen. Ich kann mit ihm kommunizieren, aber es bleibt inaktiv, Strom ~0.012mA (trotz erfolgreicher I2C Com?). -> Also, wie zu erwarten: Was mache ich falsch? Chip ist RDA5807FP im SO16, Code:
1 | void FM_init () { |
2 | |
3 | i2c_start_wait(FM+I2C_WRITE); |
4 | i2c_write(0x02); |
5 | i2c_write(0xC0); |
6 | i2c_write(0x0D); // seek enabled, RDS off |
7 | i2c_stop(); |
8 | _delay_ms(100); |
9 | |
10 | }
|
11 | |
12 | |
13 | void FM_setfreq (int frequency) { |
14 | |
15 | int freq_tmp; |
16 | char freqH, freqL; |
17 | |
18 | freq_tmp = frequency - 870; |
19 | freqH = freq_tmp>>2; |
20 | freqL = (freq_tmp&3)<<6; // Shift channel selection for matching register 0x03 |
21 | |
22 | i2c_start_wait(FM+I2C_WRITE); |
23 | i2c_write(0x03); |
24 | i2c_write(freqH); // write frequency into bits 15:6, set tune bit |
25 | i2c_write(freqL + 0x10); |
26 | i2c_stop(); |
27 | |
28 | }
|
EDIT: Der 32k Quarz schwingt, ich koppel über einen kleinen Kerko direkt in einen 32 Ohm Kopfhörer aus. Danke, Klaus.
:
Bearbeitet durch User
Ohne jetzt in deinen Code einzusteigen, hast Du einen Logic Analyzer? Falls nein, kaufe dir dringend einen, kostet dich ca. 10€. Zur Fehlersuche bei genau solchen Problemen Gold wert. Es sind ja nur Codeschnipsel, das Problem kann ja auch ganz woanders liegen. Mit einem LA siehst Du genau, was der Chip bekommt und kannst mit dem Datenblatt bzw. anderen Tutorials aus dem Netz vergleichen.
...ein I2C Display läuft, dass eeprom auch. Daher liegt es mMn nicht am Bus, zumal das Modul ja ein ACK sendet. Da ich nicht mehr weiß woher ich das habe und ob es schon verwendet wurde, habe ich mal zwei neue geordert. Warten ist jedoch eine harte Probe ;) Klaus.
Klaus R. schrieb: > i2c_write(0x0D); // seek enabled, RDS off Das passt doch irgendwie nicht, Seek ist auf Bit 7. Mit 0x0D ist Bit 3, Bit 2 und Bit 0 gesetzt. Also RDS enable (macht nichts), „New Method“ und Enable. Schreibe da doch zweimal rein, einmal mit Soft-Reset Enable und einmal ohne. Vielleicht hilft es.
Frank schrieb: > Also der "Klang" eines Radios hängt heutzutage doch wohl eher an > den > Endstufen und den verwendeten Lautsprechern, weniger am Empfangsteil. > > Völlig falsch!!! Der Klang wird schon bei der Aufnahme im Studio vermurkst! Da lässt sich nicht mehr viel verbessern. Früher gab es Sprachschulen, diese Personen die RF und FS moderieren sind allesamt nicht geschult und haben grottenschlechte Stimmen. Zudem! Außerdem gab es Tontechniker die das Klangbild optimier n könnten. Alles eingespart damit diese unverschämten Riesengehaelter und Pensionen gezahlt werden können.
Hm - das will auch mit einem neuen Modul einfach nicht klappen, so komplex sind die Register ja auch nicht. Also nochmal die Bitte um Hilfe: 1) der uC kommuniziert mit dem Modul, denn ändere ich die Adresse auf einen flaschen Wert bleibt er hängen 2) das modul hängt über 7.5k gg VCC und 1.5k in Serie an einem 5V uC System (falls relevant) - muss aber gehen, siehe 1) EDIT: Habe das Ganze mit reinem 3.3V System geprüft, neues Modul - selbes Ergebnis (wie erwartet) 3) der 32kHz Quarz schwingt (ist also nicht defekt - es soll Fälle gg haben, wo das so war und man trotzdem die Register schreiben konnte) 4) das modul nimmt leider nie mehr als 0.1mA auf, was zu wenig ist (aber passen kann, da es ja auch kein Audio gibt) Code ist - auschnittsweise - wie folgt:
1 | #define FM 0x21
|
2 | |
3 | int FM_freq=1043; // Energy zum Test |
4 | |
5 | FM_init(); |
6 | |
7 | _delay_ms(500); |
8 | |
9 | FM_activate (); |
10 | |
11 | _delay_ms(500); |
12 | |
13 | FM_setfreq (FM_freq); |
14 | |
15 | |
16 | void FM_init () { |
17 | |
18 | i2c_start_wait(FM+I2C_WRITE); |
19 | i2c_write(0x02); |
20 | i2c_write(0xC0); |
21 | i2c_write(0x03); |
22 | i2c_stop(); |
23 | _delay_ms(100); |
24 | |
25 | i2c_start_wait(FM+I2C_WRITE); |
26 | i2c_write(0x03); |
27 | i2c_write(0x00); |
28 | i2c_write(0x00); |
29 | i2c_stop(); |
30 | _delay_ms(100); |
31 | |
32 | i2c_start_wait(FM+I2C_WRITE); |
33 | i2c_write(0x04); |
34 | i2c_write(0x0A); |
35 | i2c_write(0x00); |
36 | i2c_stop(); |
37 | _delay_ms(100); |
38 | |
39 | i2c_start_wait(FM+I2C_WRITE); |
40 | i2c_write(0x05); |
41 | i2c_write(0x88); |
42 | i2c_write(0x0F); |
43 | i2c_stop(); |
44 | _delay_ms(100); |
45 | |
46 | }
|
47 | |
48 | void FM_activate () { |
49 | |
50 | i2c_start_wait(FM+I2C_WRITE); |
51 | i2c_write(0x02); |
52 | i2c_write(0xC0); |
53 | i2c_write(0x01); |
54 | i2c_stop(); |
55 | _delay_ms(100); |
56 | |
57 | }
|
58 | |
59 | void FM_setfreq (int frequency) { |
60 | |
61 | int freq_tmp; |
62 | char freqH, freqL; |
63 | |
64 | freq_tmp = frequency - 870; |
65 | freqH = freq_tmp>>2; |
66 | freqL = (freq_tmp&3)<<6; // Shift channel selection for matching register 0x03 |
67 | |
68 | i2c_start_wait(FM+I2C_WRITE); |
69 | i2c_write(0x03); |
70 | i2c_write(freqH); // write frequency into bits 15:6, set tune bit |
71 | i2c_write(freqL + 0x10); |
72 | i2c_stop(); |
73 | |
74 | }
|
Danke für jegliche Unterstützung. ich rästel schon länger... Klaus.
:
Bearbeitet durch User
...nun, vll hilft mir ja doch noch jmd: Ich wollte die Chip-ID, laut DaBla 0x58, auslesen, bekomme aber 0x34 zurück. Hm - merkwürdig. Also mal schnell nochn 24C08 dazu, um den Code zu testen - 10 Bytes mit irgendwas vollgeschrieben, dann wieder ausgelesen - passt. Ergo funktioniert auslesen grdstzl auch... Ich habe jetzt 3 I2C Komponenten im System, tw aber aktuell im code deaktiviert wg momentanem debugging, mit KEINER gabe es Probleme, nur mit diesem verf**** RDA5807. -> Was könnte ich noch testen? Wieso lese ich nicht 0x58 aus? Klaus.
Klaus R. schrieb: > das modul hängt über 7.5k gg VCC Was heißt denn das? Kannst du das mal aufzeichnen und notfalls per Foto hier einstellen? Klaus R. schrieb: > Also mal schnell nochn 24C08 dazu, um den Code > zu testen - 10 Bytes mit irgendwas vollgeschrieben, dann wieder > ausgelesen - passt Wenn Du parallel einen anderen Baustein dranhängst und der funktioniert heißt das das in Bezug auf den RDA nur wenig. Ich habe da deine Versorgung im Verdacht.
...so sieht das aus. Vermtl ist das ein no-go ohne Pegelwandler :/ ? Klaus.
So, nun mit Level Converter & neuem Modul - keine Änderungen. - reagier nur auf die angg I2C Adressen bzw bleibt I2C_write sonst hängen (vermtl wg fehlendem ACK) -> ergo "lebt" das Modul... - man ließt aus Register 0x00 nur 0x34 statt 0x58 aus (mit dem 24C08 hat das jedoch einwandfrei geklappt) -> es lebt, aber nicht "richtig"... Ratlosigkeit. Klaus.
:
Bearbeitet durch User
Also das mit dem 7k5 Widerstand war definitiv falsch. Mal doch bitte noch einmal auf, wie die neue Schaltung aussieht. Übrigens, wie versorgst Du den RDA5807? Ich denke nach wie vor, dass Du ein elektrisches Problem hast. Dass der 32kHz schwingt heißt noch nicht viel, auch wenn sich das erst nach einem Befehl an das Modul einstellen sollte. Es könnte nämlich sein, dass der Baustein bis zu dieser Einstellung so gut wie nichts braucht und aufgrund eines Fehlers in der Versorgung ab dann nicht mehr richtig reagiert.
...der 7.5k zieht SCL & SDA auf der 5V Seite ggf VCC, alle I2C slaves dort laufen auch - SCL + SDA gehen dann an einen HV/LV levelshifter mit BSS138, standardware von ebay. Doie LV Seite wird aus den 5V mit einem AMS1117-3.3 erzeugt (gefiltert mit 100nf). Ich glaube auch, dass es nicht am Modul selbst liegt, allerdings habe ich die Module schon getauscht - ohne Ergebnis. Die Versorgung von extern bereitgestellt (Netzteil auf 3V) - ohne Ergebnis. Der erste showstopper ist halt, dass ich aus Reg 0x00 nicht die Chip ID 0x58 auslese, sondern immer & bei allen Modulen 0x34...beim 24C08 hat das schreiben & lesen hingegen ohne Probleme funktioniert, daher weiß ich, dass es nicht an der Leseroutine liegt (die ich sonst nicht benutze). Ich komme wrkl nicht drauf, was in meiner Systematik noch falsch ist, um das Problem eingrenzen zu können. Klaus.
0x58 = 01011000 0x34 = 00110100 Klaus R. schrieb: > daher weiß ich, dass es nicht an der Leseroutine liegt > (die ich sonst nicht benutze). Zwischen obigen Werten liegt eine gewisse Ähnlichkeit, wenn man anders herum liest. Sicher, dass die Leseroutine richtig herum liest?
...wie gesagt, bei einem 24C08 liest sie (TWI master von peter fleury) korrekt das aus, was ich rein schreibe. Bei dem RDA in allen Registern nur 0x34, egal was ich rein schreibe. So langsam wäre ein Referenzsystem interessant, um sicher sein zu können, dass die Module auch iO sind :) Klaus.
Da war doch irgendwie noch die Sache mit der Interpretation der I2C Adresse. Manche Datenblätter definieren die Adresse inkl. R/W-Bit=0, manche ohne. Liegt da vielleicht das Problem? Hast Du Arduino-Beispiele, die es ja zum RDA gibt, nachvollzogen? Alle Register lesen 0x34? Was passiert, wenn man den RDA ganz entfernt. Liest Du dann auch noch 0x34?
...so, ich lese zwar immer noch müll aus, aber zumindest "Energy" empfange ich nun sehr beschissen - ich befürchte fast, ich habe die I2C Adresse 10001 für "random access" falsch auf das 8 Bit Format transponiert* - iwo las ich mal 0x21, was aber nicht stimmen würde :/ Grmpf. *) Was beim Rest der I2C slaves nicht passiert ist, weil ich mich da nicht auf iwieclhe Arduino libs verlassen habe, sondern selbst "nachgedacht". Klaus.
:
Bearbeitet durch User
...und "softmute" schlägt auch sehr schnell zu, dann hört man ebenfalls nix mehr. Hm, wenigstens läuft das Teil nun - der Empfang wird hoffentlich auf einer "richtigen" Platine besser, ist sehr verrauscht. Danke für die Geduld & Moderation :) Klaus.
Is ja auch noch keine gescheite Antenne dran, oder? Auf Dauer kann ich Dir sowieso empfehlen, auf das Original von Silabs zu wechseln, der RDA ist zwar billiger, aber er ist und bleibt eine schlechte Kopie. Spätestens wenn Du dich mit RDS beschäftigst (ganz interessant, nicht so schwierig) wende dich bitte vom RDA ab. Gerade im RDS sind so einige Bugs drin. Der Umstieg auf das Original ist übrigens nicht schwierig, es kann fast alles so bleiben.
Ja, Danke - hab im Rahmen der Probleme schon alles darüber gelesen :) RDS wäre "cool", aber erstmal reichen mir 6 feste Stationen und ein Such-Modus, das fkt nun, bis auf den beschissenen Empfang - Antenne ist eine Krokoklemme, da Energy hier "S9+" hat sollte das reichen...reicht aber nicht :/ Klaus.
Klaus R. schrieb: > reicht > aber nicht :/ Vielleicht noch einen Abblockkondensator am Modul hinzufügen?
"Ich konnte den Empfang noch einmal verbessern, indem ich in das Register 05h 0xF0 (plus Lautstärke in den unteren 4 Bits) geschrieben habe." -> So, damit wäre auch das letzte Geheimnis gelöst...man man man. Klaus.
Tja, mir ging es ähnlich, zunächst freut man sich über ein solch minimalistisches Radio, dann tritt die Ernüchterung ein. Empfangs- und RDS-Leistung sind dann aber doch relativ bescheiden. Aber egal, so aus reinem Bastelgedanken heraus eine nette Sache. Mich persönlich hat die Empfangstechnik ab Transistor ein Leben lang begleitet, es wurde immer integrierter und digitaler, mittlerweile baut man einen FM Empfänger samt RDS auf einem Quadratmillimeter - ohne Spulen und HF-Zeugs, faszinierend.
...ja, es ist schon "geil" aber iwie auch gruselig - all in a box, man sieht nix, kann nix messen - man verzweifelt nur :) Was das Gehemnis mit dem 0xF0 in Reg 5 soll, erschließt sich mir aus dem DaBla auch nicht sofort - aber ohne ist es "Essig". Zumindest für meinen Anwendungsfall ist nun alles gut, auch wenn ich leider etwas viel Zeit dafür verbraten habe :) Klaus.
Hi, nachdem dieser Thread doch sehr hilfreich war, und ich jetzt trotzdem einige Stunden gekämpft habe, hier ein paar Hinweise, wie die Uhrzeitabfrage jetzt doch recht gut klappt: 1. Recht hilfreich finde ich: http://www.g.laroche.free.fr/english/rds/groupes/listeGroupesRDS.htm 2. In 5H low byte: 1011_1111 LNAP, LNA 3 mA, max volume Diese Einstellung bringt -jedenfalls in meinem Setup- max Signalstärke. 3. Strategie für relativ zügiges Finden gültiger Daten: Die RDSdaten werden alle 10ms abgefragt. Wenn RDS synchronisiert gemeldet wird und nicht BlockE und weder in BlockA noch in BlockB Fehler gemeldet werden, dann werden die RDSDaten ausgewertet. Wenn dann zusätzlich Gruppe 4A (Zeit und Datum) vorliegt, dann werden die Stunde, korrigiert um den aktuellen Offset, und Minuten jeweils in 3 stufige Fifos geschrieben. Wenn die aktuell gemeldeten Stundendaten übereinstimmen mit solchen aus einer der 3 alten Positionen der Fifos, dann werden sie als gültig anerkannt und zum Stellen der Rechneruhr verwendet. Bei den Minuten wird auch anerkannt, wenn in einer der Fifo-Positionen die Vorminute steht. Bei Signalstärke 163dez in 0Bhex high byte wird mit dieser Methode die Uhrzeit regelmäßig bei Minutenwechsel erkannt. Gruß Christof
:
Bearbeitet durch User
So, doch noch mal ein update: Während die im letzten Post genannte Methode recht befriedigende Ergebnisse am "Entwicklungsstandort" bei ca 15km Distanz zum Sender gebracht hat, gab es unregelmäßig Schwierigkeiten am Zieleinsatzort mit 40km zum Sender. Soweit ich verstehe, wird immer wieder eine falsche Gruppe als 4A erkannt und dann fehlerfrei übertragene Daten völlig falsch als Zeit/Datum interpretiert. Letztlich konnte ich das System nur damit zum stabilen Laufen bringen, dass ich zusätzlich eine Batterie- gepufferte Uhr installiert habe und Daten nur dann als gültig werte, wenn das Datum komplett stimmt und die Zeit nur wenig abweicht. Auch eine Stunde Abweichung ist zulässig für Sommer/Winterzeit. Zeitkorrektur jede Nacht um 4.00 Uhr.
Christof schrieb: > Während die im letzten Post genannte Methode recht befriedigende > Ergebnisse am "Entwicklungsstandort" bei ca 15km Distanz zum Sender > gebracht hat, gab es unregelmäßig Schwierigkeiten am Zieleinsatzort mit > 40km zum Sender. Soweit ich verstehe, wird immer wieder eine falsche > Gruppe als 4A erkannt und dann fehlerfrei übertragene Daten völlig > falsch als Zeit/Datum interpretiert. Hier kommt NDR2 mit sehr guter Feldstärke, als simples Radio taugt der RDA5807, von dem es scheinbar auch Varianten gibt. Ich habe mich 2017 mehrere Tage mit dem Ding befasst, wollte aus per RDS die Uhrzeit holen. Es hätte ja einen Spielreiz, wenn eine µC-Anwendung nebenbei auch noch Radio quäken kann - die Modulchen kosteten etwa einen Dollar. Ich hab's aufgegeben, der RDS-Decoder in dem IC taugt nichts und die gelieferten Werte waren dermaßen wirr, dass ich keine Plausibilitätskontrolle fertig gebracht habe.
Manfred P. schrieb: > Ich hab's aufgegeben, der RDS-Decoder in dem IC taugt nichts und die > gelieferten Werte waren dermaßen wirr, dass ich keine > Plausibilitätskontrolle fertig gebracht habe. Das kann ich ebenfalls zu 100% unterschreiben. Wollte es als billigste Quelle für automatischen Uhrzeit/Datumsbezug einsetzen.
Moin, ich grabe das Thema mal wieder aus... Ber RDA5807 hinterläst gemischte Gefühe. In meinem Fall ist die FP-Variante, welche Audio auch digital via I2S ausgeben kann, Die Empfangsleistung ist durchaus gut. Als reiner FM-Empfänger völlig ausreichend. RDS geht auch, setzt aber ein sauberes Eingangssignal voraus. Der Chip is sich selbst seine schlimmste Antenne, sprich selbst ganz ohne Antenne empfängt er im Nahfeld noch sehr viel - außer RDS, weil er auch alle Störungen einfängt, die im direkten Umfeld sind. Mir fehlt der Verlgiech mit den billigen Fertigmodulen, da ich gleich ein eigenes Modul zusammengeschustert habe. Darauf wird der Chip anstelle des billigen Uhrenquartz durch einen weitaus stabileren TCXO getaktet. Am Anteneneingang vir per Bandpass vorgefiltert, ein zusätzlicher LNA gleicht die Dämpfung des Bandpasses wieder aus und anschließt erfolt noch eine Impedanzanpassung auf die rund 300 Ohm Eingangsimpedanz des Chips. Das ganze sitzt dann in einem Blechgehäuse. Der RDS-Dekoder ist nur rudimentär. Die Fehlerkorrektur... naja. Aber er läuft und man bekommt brauchbare Daten raus. Der FIFO-Modus tuts nicht. Den sollte man besser ausgeschaltet lassen. Der wird auch nicht von allen Varianten unterstützt. Weil irgendwo angemerkt wurde, dass die Fehlerschwelle frür die Gruppen C und D fehlen... Die Finden sich im undokumentiereten Read-Register 0x10 in Bit 15+14 für Gruppe C und in Bit 13+12 für Gruppe D. Unter der Vorraussetzung, dass man die RDS-Daten nur dann als gültig betrachtet, wenn die entsprechenden Bits dies signalisieren (Read-Register 0x0A bit 12 (RDS synchronized) und bit 15 (RDS group ready)) und man die Daten nur dann verarbeitet, wenn alle 4 Gruppen mit NULL Fehlern dekodiert wurde, dann sind die Daten auch durchaus plausibel. Irgendwo in den read-Registern finden sich wahrscheinlich auch die Rohdaten vor der Fehlerkorrektur. Danach zu suchen, war mir allerdings zu müßig. Eins, was mir noch aufgefallen ist... im Fall RDA5707FP sollte man nicht den I2S-Ausgang aktivieren, solange man die analogen Audioausgänge nutzt. Es sei denn, man will sich mit einem 12kHz Daueton auf den analogen Ausgängen quälen lassen. Micha
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.