Hallo, obwohl es gemäß RDA5807M Datenblatt möglich sein sollte, gelang es mir lange Zeit nicht, Empfang mit dem Baustein bereits auf Frequenzen ab 50 MHz durchzuführen. Ab 65 MHz war es kein Problem, aber der 50 MHz-Bereich war auf die übliche Weise mit Eingabe der gewünschten Sollfrequenz in das Register 3 nicht aufrufbar. Nach langer Internetsuche kam mir da ein russisches Mikrocontroller-Forum zu Hilfe, in dem sich ein Beitrag mit der alternativen Nutzung des FRQ-Direkt-Modes beschäftigte. Hierbei wird folgendermaßen vorgegangen: Nach dem Start-Reset ist im Register 3 das Frequenzband 3 ( ab 65 bzw. 50 MHz ) aufzurufen. Weiterhin sind im Register 7 sowohl das Bit zur Aktivierung des 50 MHz-Modes, als auch das Bit für den Frequenz-Direktmode zu setzen. Anschließend ist lediglich noch die gewünschte Sollfrequenz in das Register 8 zu schreiben. Diese können im Bereich von 50.000 bis 115.535 MHz liegen ( 1 KHz-Raster ). Zur Berechnung der Eingabewerte sind als Megahertz vorliegende Sollfrequenzen mit dem Faktor 1000 zu multiplizieren und um den Wert der Startfrequenz 50000 zu reduzieren. Danach ist das Ergebnis in einen vierstelligen Hexwert zu wandeln und auf die übliche Weise als Hi- und Low-Byte im Register 8 abzulegen. PS: Mit weitgehend identischen Betriebsparametern und Steuerbefehlen ist auch der RDA5820NS anzusprechen. Im Vergleich zum RDA5807M besitzt er zusätzlich eine Sendefunktion mit u.a. analogen Line-Audioeingängen und einer Pout von max. +3dBm. ************************************************************************ * Hier ein einfaches ( ohne spezielle Library auskommendes ) Arduino-Programmbeispiel für den RDA5807M für Ausgangsfrequenzen von 51.51 Mhz oder ( ausgeklammert ) 98.7 MHz #include <Wire.h> void setup() { Wire.begin(); Wire.beginTransmission(0x11); Wire.write(0x02); Wire.write(0xC0);Wire.write(0x03); // RESET_1 Wire.endTransmission(); delay(100); Wire.beginTransmission(0x11); // RESET_2 Wire.write(0x02); Wire.write(0xC0);Wire.write(0x0D); Wire.endTransmission(); delay(100); Wire.beginTransmission(0x11); Wire.write(0x03); Wire.write(0x00);Wire.write(0x0C); // BAND 3 (>50/65 MHz) Wire.endTransmission(); delay(100); Wire.beginTransmission(0x11); Wire.write(0x07); Wire.write(0x4C); // >50 MHz Wire.write(0x01); // DIREKT-FRQ-MODE Wire.endTransmission(); delay(100); Wire.beginTransmission(0x11); // DIRECT-FRQ-MODE Wire.write(0x08); Wire.write(0x5E);Wire.write(0x6H); // 51510-50000=1510 // 1510 = 0x5E6H //Wire.write(0xBE);Wire.write(0x3C); // 98700-50000=48700 // 48700 = 0xBE3C Wire.endTransmission(); } void loop() { }
KORREKTUR: FALSCH: Wire.write(0x5E);Wire.write(0x6H); // 51510-50000=1510 // 1510 = 0x5E6H RICHTIG: Wire.write(0x05);Wire.write(0xE6); // 51510-50000=1510 // 1510 = 0x05E6
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.