Forum: HF, Funk und Felder FM Radio Modul RDA5807M


von Eumel (Gast)


Lesenswert?

Gerade bei Ebay gesehen die Teile, hat jemand die schonmal ausprobiert? 
Taugen die was?

: Verschoben durch Moderator
von Michael G. (mjgraf)


Lesenswert?

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?

von Eumel (Gast)


Lesenswert?

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 
;)

von pegel (Gast)


Lesenswert?

RDS - Zeiteinstellung für µC?

von Eumel (Gast)


Lesenswert?

Na ja, hab mir mal eins bestellt, kostet ja nicht die Welt :)

von Harald W. (wilhelms)


Lesenswert?

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

von Eumel (Gast)


Lesenswert?

So, ist angekommen. Funktioniert 1A, klang ist wie ein ganz normales 
Radio, die Ansteuerung ist ziemlich simpel und das Datenblatt 
ausreichend genau.

von Harald A. (embedded)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

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.

von Anfänger (Gast)


Lesenswert?

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ß

von Frank (Gast)


Lesenswert?

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 ...

von Pete K. (pete77)


Lesenswert?

Eine Library gibt es hier:
http://www.electrodragon.com/w/FM_Radio_Module_RDA5807M

Deswegen hat es wohl nicht so lange gedauert :-)

von Anfänger (Gast)


Lesenswert?

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.

von Anfänger (Gast)


Lesenswert?

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 :-(

von Paul Baumann (Gast)


Lesenswert?

Anfänger frog:

>Ist es irgendjemandem gelungen, das Ding zu entpacken?

Ja, mir.

(Windows 7 und Winzip als Entpacker)

MfG Paul

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe es auf dem iMac problemlos ausgepackt und erneut eingepackt, s. 
Anhang ...

von Anfänger (Gast)


Lesenswert?

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 :-)

von Michael M. (do7tla)


Lesenswert?

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.

von SE (Gast)


Lesenswert?

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.

von Pete K. (pete77)


Lesenswert?

20 Stück für zusammen 12,40$ aus China inkl. Versand. Wahnsinn...

von Egbert O. (horace)


Lesenswert?

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

von Eumel (Gast)


Lesenswert?

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.

von Pete K. (pete77)


Lesenswert?

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
von Diodenes (Gast)


Lesenswert?

"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

von Horace (Gast)


Lesenswert?

@Diodenes

Ok, Danke, das hilft weiter (hoffentlich ist das Eingangsteil bei diesem 
Chip ähnlich.....)

Viele Grüße,

Horace

von Pete K. (pete77)


Lesenswert?

Achtung: Das Teil kommt im Rastermaß 2mm!

Wie habt ihr das Modul eingebaut/angeschlossen (Foto)?

von Pete K. (pete77)


Lesenswert?

So, hab das Teil jetzt zwischen zwei Stiftleisten geklennt, die ich 
etwas verbogen habe.

von Eumel (Gast)


Lesenswert?

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 ;)

von Pete K. (pete77)


Lesenswert?

Eumel, könntest Du vielleicht Deinen Code hier posten?

von Eumel (Gast)


Lesenswert?

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.

von Elmar F. (elmar-faber)


Lesenswert?

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

von Maronimann (Gast)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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?

von Harald (Gast)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

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.

von Harald A. (embedded)


Lesenswert?

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
von Andreas J. (antibyte)


Lesenswert?

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
von Rudolph (Gast)


Lesenswert?

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.

von Pete K. (pete77)


Lesenswert?


von peter (Gast)


Lesenswert?

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).

von Egbert O. (horace)


Lesenswert?

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

von Harald (Gast)


Lesenswert?

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.

von Horace (Gast)


Lesenswert?

hast du da auch einen Codeschnipsel?????

von Harald (Gast)


Lesenswert?

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.

von Harald A. (embedded)


Angehängte Dateien:

Lesenswert?

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ß!

von Maronimann (Gast)


Lesenswert?

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.

von Harald A. (embedded)


Lesenswert?

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).

von Rudolph (Gast)


Lesenswert?

Gestern ist mein neues "Radio" angekommen.
Boah sind die Dinger winzig. :-)

von Hoermann (Gast)


Angehängte Dateien:

Lesenswert?

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

von Harald (Gast)


Lesenswert?

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.

von Lebkuchenesser (Gast)


Lesenswert?

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?

von Eumel (Gast)


Lesenswert?

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?

von Harald (Gast)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

Harald schrieb:
> Chinese New Year

Genau das meinte ich auch, dann stehen da ja erstmal alle Fabriken still 
;)

von M. G. (looking)


Lesenswert?

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?

von Andreas (Gast)


Lesenswert?

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.

von manni (Gast)


Lesenswert?

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

von Andreas (Gast)


Lesenswert?

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 :)

von Pete K. (pete77)


Lesenswert?

Gibt es Bilder von fertigen Radios? Wie sieht eure Antenne aus?

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

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

von Harald (Gast)


Lesenswert?

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.

von Oliver R. (orb)


Lesenswert?

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?

von Ivan (Gast)


Lesenswert?

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();  }

von Harald (Gast)


Lesenswert?

@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.

von Sergey (Gast)


Lesenswert?

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

von Sergey (Gast)


Angehängte Dateien:

Lesenswert?

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

von Sergey (Gast)


Lesenswert?

Die Frage wird entfernt, alles funktionierte - 
https://www.youtube.com/watch?v=wyP4cPTlWRk

von Lebkuchenesser (Gast)


Lesenswert?

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 ;-)

von Sergey (Gast)


Lesenswert?

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

von papadkostas (Gast)


Angehängte Dateien:

Lesenswert?

Check this is my project on STM32F429-Discovery
https://github.com/papadkostas/RDA5807M/

von Sergey (Gast)


Lesenswert?

Gut für Sie! Es gibt ein Video von seiner Arbeit?

Sergey Shteynle

von Rudolph (Gast)


Lesenswert?

Gibt es sowas eigentlich auch mit SPI?

von Harald (Gast)


Lesenswert?

SPI? Klar!
TEA5767 oder SI4684
Aber warum sollte ausgerechnet das Interface eine Rolle im Projekt 
spielen?

von Rudolph (Gast)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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.

von Rudolph (Gast)


Lesenswert?

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.

von Oliver R. (orb)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Nimm einfach eine der vielen Bitbanging-Libs.

von Rudolph (Gast)


Lesenswert?

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.

von Rudolph (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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.

von Rudolph (Gast)


Lesenswert?

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. 
:-)

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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 :-)

von Rudolph (Gast)


Lesenswert?

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.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Du scheinst damit in gar keine Ebene zu passen.

von SE (Gast)


Lesenswert?

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

von SE (Gast)


Lesenswert?

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.

von Andi B. (Gast)


Lesenswert?

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.

von Pete K. (pete77)


Lesenswert?

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
von Pete K. (pete77)


Lesenswert?

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?

von Harald (Gast)


Lesenswert?

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?

von Pete K. (pete77)


Lesenswert?

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
von Pete K. (pete77)


Angehängte Dateien:

Lesenswert?

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
von Pete K. (pete77)


Angehängte Dateien:

Lesenswert?

Und hier auch noch das Programming Manual für den SP von 2010.
Nach poweron stehen hier delay_ms(600) drin.

von Martin (Gast)


Lesenswert?

Rudolph schrieb:
> Gibt es sowas eigentlich auch mit SPI?

Ja, RDA5807SP oder RDA5807P. nur der RDA5807M kann das nicht.

von Harald (Gast)


Lesenswert?

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.

von Rudolph R. (rudolph)


Lesenswert?

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.

von Carsten (Gast)


Angehängte Dateien:

Lesenswert?

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ß

von unbekannt (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
von Ralph S. (jjflash)


Lesenswert?

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...

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Zudem ist in dem geposteten Bild auch kein BF241 zu sehen.

von Manfred (Gast)


Lesenswert?

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.

von Carsten (Gast)


Lesenswert?

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

von YourBitchpassed (Gast)


Lesenswert?

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!

von Harald (Gast)


Lesenswert?

www.mediamarkt.de

Gehäuse drum wegschrauben und wieder dranbauen. Sofern das nicht zu 
kompliziert ist.

von Peter (Gast)


Lesenswert?

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.

von Carsten (Gast)


Lesenswert?

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ß

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

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)

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

von cassini (Gast)


Lesenswert?

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.

von Ralph S. (jjflash)


Lesenswert?

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...

von Klaus R. (klaus2)


Lesenswert?

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
von Harald (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Lesenswert?

...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.

von Harald (Gast)


Lesenswert?

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.

von RF Fuzzy (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Lesenswert?

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
von Klaus R. (klaus2)


Lesenswert?

...nix, niemand eine Idee gg mein Brett vorm Kopf?

Klaus.

von Klaus R. (klaus2)


Lesenswert?

...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.

von Harald (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Angehängte Dateien:

Lesenswert?

...so sieht das aus. Vermtl ist das ein no-go ohne Pegelwandler :/ ?

Klaus.

von Klaus R. (klaus2)


Lesenswert?

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
von Harald (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Angehängte Dateien:

Lesenswert?

...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.

von Harald (Gast)


Lesenswert?

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?

von Klaus R. (klaus2)


Lesenswert?

...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.

von Harald (Gast)


Lesenswert?

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?

von Klaus R. (klaus2)


Lesenswert?

...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
von Klaus R. (klaus2)


Lesenswert?

...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.

von Harald (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

Klaus R. schrieb:
> reicht
> aber nicht :/

Vielleicht noch einen Abblockkondensator am Modul hinzufügen?

von Klaus R. (klaus2)


Lesenswert?

"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.

von Harald (Gast)


Lesenswert?

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.

von Klaus R. (klaus2)


Lesenswert?

...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.

von Christof (cebersp)


Lesenswert?

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
von Christof (cebersp)


Lesenswert?

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.

von Manfred P. (pruckelfred)


Lesenswert?

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.

von Harald A. (embedded)


Lesenswert?

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.

von Michael O. (michaelor)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.