Forum: HF, Funk und Felder FM Radio Modul RDA5807M


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Eumel (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Gerade bei Ebay gesehen die Teile, hat jemand die schonmal ausprobiert? 
Taugen die was?

: Verschoben durch Moderator
von Michael G. (mjgraf)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
RDS - Zeiteinstellung für µC?

von Eumel (Gast)


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

von Harald W. (wilhelms)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es auf dem iMac problemlos ausgepackt und erneut eingepackt, s. 
Anhang ...

von Anfänger (Gast)


Bewertung
0 lesenswert
nicht 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. (Firma: DO7TLA) (do7tla)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:
Ebay-Artikel Nr. 200984492148

Danke für den Hinweis Eumel.

von Pete K. (pete77)


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

von Mirko B. (horace)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
@Diodenes

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

Viele Grüße,

Horace

von Pete K. (pete77)


Bewertung
0 lesenswert
nicht lesenswert
Achtung: Das Teil kommt im Rastermaß 2mm!

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

von Pete K. (pete77)


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

von Eumel (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Eumel, könntest Du vielleicht Deinen Code hier posten?

von Eumel (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von peter (Gast)


Bewertung
0 lesenswert
nicht 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:
> Ebay-Artikel Nr. 200984492148

Falls noch jemand schnell eins möchte:
Ebay-Artikel Nr. 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 Mirko B. (horace)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
hast du da auch einen Codeschnipsel?????

von Harald (Gast)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Hoermann (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Harald schrieb:
> Chinese New Year

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

von M. G. (looking)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Gibt es Bilder von fertigen Radios? Wie sieht eure Antenne aus?

von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Die Frage wird entfernt, alles funktionierte - 
Youtube-Video "VID 20140602 211231"

von Lebkuchenesser (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Gestern schließlich verlötet sein Radio-Programm und podshamanit - 
Youtube-Video "MVI 1053"
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:

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

von Sergey (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gut für Sie! Es gibt ein Video von seiner Arbeit?

Sergey Shteynle

von Rudolph (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gibt es sowas eigentlich auch mit SPI?

von Harald (Gast)


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

von Rudolph (Gast)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht lesenswert
Nimm einfach eine der vielen Bitbanging-Libs.

von Rudolph (Gast)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht lesenswert
Du scheinst damit in gar keine Ebene zu passen.

von SE (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ich brauche mal eure Hilfe. Und zwar versuche ich den Arduino Code in 
nicht-Arduino Code zu übersetzen.

Gegeben:
void RDA5807_ReadW(int i_cnt)
{
   Wire.beginTransmission(RDA5807_adrr);            // Device 0x11 for random access
   Wire.write(0x0C);                                // Start at Register 0x0C
   Wire.endTransmission(0);                         // restart condition
   Wire.requestFrom(RDA5807_adrr,2*i_cnt, 1);       // Retransmit device address with READ, followed by 8 bytes
   for (int i=0; i<i_cnt; i++)                      // Loop for Read data    
   {aui_RDS[i]=256*Wire.read()+Wire.read();}        // Read Data into Array of Unsigned Ints
   Wire.endTransmission();                  
} 

Und hier meine Übersetzung mit Fleury Lib i2cmaster.h:
void RDA5807_ReadW(int i_cnt)
{  int readL, readH;
   char buffer[50];

   i2c_start(RDA5807_adrr);                    // Device 0x11 for random access
   i2c_write(0x0C);                                // Start at Register 0x0C
   i2c_rep_start(RDA5807_adrr+I2C_READ);                         // restart condition
   for (int i=0; i<i_cnt; i++)                      // Loop for Read data    
   {  readH=i2c_readNak();
      readL=i2c_readNak();
      aui_RDS[i]=256*readH+readL;
    sprintf(buffer,"Read: aui_RDS[%i]=%x\n",i,aui_RDS[i]);
    uart_puts(buffer);

    }        // Read Data into Array of Unsigned Ints
   i2c_stop();                  
} 

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)


Bewertung
0 lesenswert
nicht lesenswert
Irgendwie funktioniert das seekup/seekdown bei dem RDA5807 nicht.
int RDA5807_SeekUp()
{
  uart_puts("Seek Up\n");
  aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] | 0x0300;   // Enable Seekup
  aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] & 0xFFBF;   // Seek-Wrap enable
  RDA5807_Write();
  aui_RDA5807_Reg[2]=aui_RDA5807_Reg[2] & 0xFCFF;   // Disable Seekup
  return 0;
}

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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Rudolph schrieb:
> Gibt es sowas eigentlich auch mit SPI?

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

von Harald (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

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

von Manfred (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-7 lesenswert
nicht 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)


Bewertung
3 lesenswert
nicht lesenswert
www.mediamarkt.de

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

von Peter (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

void FM_init () {

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x02);
  i2c_write(0xC0);
  i2c_write(0x0D);    // seek enabled, RDS off
  i2c_stop();
  _delay_ms(100);

  }


void FM_setfreq (int frequency) {

  int freq_tmp;
  char freqH, freqL;

  freq_tmp = frequency - 870;
  freqH = freq_tmp>>2;
  freqL = (freq_tmp&3)<<6;                  // Shift channel selection for matching register 0x03

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x03);
  i2c_write(freqH);                     // write frequency into bits 15:6, set tune bit
  i2c_write(freqL + 0x10);
  i2c_stop();

  }


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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

#define FM    0x21

int FM_freq=1043; // Energy zum Test

  FM_init();

  _delay_ms(500);

  FM_activate ();

  _delay_ms(500);

  FM_setfreq (FM_freq);


void FM_init () {

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x02);
  i2c_write(0xC0);
  i2c_write(0x03);
  i2c_stop();
  _delay_ms(100);

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x03);
  i2c_write(0x00);
  i2c_write(0x00);
  i2c_stop();
  _delay_ms(100);

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x04);
  i2c_write(0x0A);
  i2c_write(0x00);
  i2c_stop();
  _delay_ms(100);

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x05);
  i2c_write(0x88);
  i2c_write(0x0F);
  i2c_stop();
  _delay_ms(100);

  }

void FM_activate () {

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x02);
  i2c_write(0xC0);
  i2c_write(0x01);
  i2c_stop();
  _delay_ms(100);

  }

void FM_setfreq (int frequency) {

  int freq_tmp;
  char freqH, freqL;

  freq_tmp = frequency - 870;
  freqH = freq_tmp>>2;
  freqL = (freq_tmp&3)<<6;              // Shift channel selection for matching register 0x03

  i2c_start_wait(FM+I2C_WRITE);
  i2c_write(0x03);
  i2c_write(freqH);                     // write frequency into bits 15:6, set tune bit
  i2c_write(freqL + 0x10);
  i2c_stop();

  }


Danke für jegliche Unterstützung. ich rästel schon länger...

Klaus.

: Bearbeitet durch User
von Klaus R. (klaus2)


Bewertung
0 lesenswert
nicht lesenswert
...nix, niemand eine Idee gg mein Brett vorm Kopf?

Klaus.

von Klaus R. (klaus2)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

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

Klaus.

von Klaus R. (klaus2)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Klaus R. schrieb:
> reicht
> aber nicht :/

Vielleicht noch einen Abblockkondensator am Modul hinzufügen?

von Klaus R. (klaus2)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.