Für die einen ist es Schrott, für die anderen der wohl billigste Selbstbau UKW-Radio der Welt ! ---------------------------------- Okay, nicht so ganz so ernst nehmen (auch wenn ich in "freudiger Erwartung" derer die die "du machst nur Schrott-Schreiber" bin, hier das bisherige Ergebnis mit den Experimenten mit dem Padauk PFS154 (und weil in einem Nachbarthread eben gefragt wurde, was das Radio den so kann): Schaltplan hier im Anhang zu sehen, die notwendigen Dateien sind ebenfalls im Anhang hier zu finden. Die Binärprogramme, die das Makefile aufruft sind für 64-Bit Linux geschrieben und sollten wohl auf allen Linux-Derivaten laufen. Als Compiler wird ein installierter SDCC 4.03 erwartet. Zusätzlich zu dem Radio sind im Archiv noch Quellcode enthalten für: - blinkende LED mit delay - blinkende LED mit Timerinterrupt - 16- und 20- Digit charliegeplexte LED - I2C Bus mittels Bitbanging (wird auch vom Radio verwendet) - i2C Bus-Scanner - Portexpander mit PCF8574 (I2C) - UART mittels Bitbanging (Transmit und Receive implementiert) - mein obligatorisches "my_printf" (welches hier für mich sogar sehr notwendig war, weil ich für den Padauk keinen Debuger habe und mir das in Verbindung mit UART bei der Fehlersuche geholfen hat). -------------------------------- Ich werde wohl dieses "Mini-Framework" für den Padauk weiter ausbauen mit den Dingen, die für mich sinnvoll sind. Video vom Radio gibt es hier: https://www.youtube.com/watch?v=UotCtPmJTLY
... ach so ja, vergessen habe zu erwähnen: Bauteilekosten (ohne Netzteil, ohne PCB oder Steckbrett) liegen bei unter 50 cent (nach Bauteileorderung von www.lcsc.com) ------------------------ für mich ist es allerdings ein teures Radio geworden, weil ich sämtliche 50 georderte Controller verschlampt habe und nicht mehr finde ... :-(
Super Projekt! Hier gibt es übrigens eine assembleroptimierte print_int funktion, die noch ein paar bytes sparen könnte: https://github.com/cpldcpu/SimPad/blob/master/Toolchain/library/PDK_softuart.c Aber anscheinend passt es ja auch schon so in einen PFS154
Hi Tim, deine Assemblerfunktionen hatte ich schon zuvor gesehen gehabt und ich finde die gut gemacht. Einzig: ich habe mich so an meine eigene Version von printf gewöhnt (nicht "nur" eine Integerausgabe), dass ich die für mich verwende. Wieviel Bytes die jetzt wirklich schluckt weiß ich nicht mehr aus dem Handgelenk, aber ich war erstaung, wie wenig das ist. Meine printf-Version in Verbindung meiner UART-Funktionen hatte glaube ich so nicht ganz die Hälfte des Flashspeichers benötigt gehabt, so dass noch einiges für eine Anwendung vorhanden ist. Sollte der Speicher knapp werden, kann ich das Parsing von printf weglassen und nur meine Integerausgabe herausnehmen. Bspw. kann ich eine "Pseudokommazahl" mit dem von mir eingeführten Formater %k ausgeben: printfkomma= 1; // eine Nachkommastelle my_printf("Zahlenwert: %k", 2318); my_printf("Hexzahlenwert: 0x%x", 33); gibt dann aus: Zahlenwert: 231.8 Hexzahlenwert: 0x21 -------------------------------------------------- Mal sehen, was so alles mit dem Winzling geht, heute realisiert: 2 stellige gemultiplexte 7-Segmentanzeige, die ich dann mit der nächsten Aufgabe kombinieren möchte: Der PFS154 soll eine (halbwegs stabile) Konstantstromquelle schalten (bestehend aus Transistor, 2 Widerständen und einem Kondensator) und die Kondensatorrampe wird dem Komparator zugeführt um daraus einen (sehr einfachen) ADC zu machen. Desweiteren werkel ich parallel dazu an einer Textmode IDE (wie ich sie für mich schon länger verwende), die zu großen Teilen aus der IDE des FreePascal / FreeVision besteht. Ziel ist es, einen Ordner in ein beliebiges Verzeichnis zu entpacken und darin kann dann für den PFS gewerkelt werden (hierfür wird dann die benötigten Dateien vom SDCC auch in diesen Ordner kopiert und das Makefile ruft den Compiler relativ zu diesem Ordner auf, so dass der SDCC nicht wirklich installiert werden muss). Schaun ma mal !
Ich hatte mir auch mal ein Suchlaufradio fürs Bad gekauft. Ich habs in den Müll geschmissen, so ein Suchlauf ist einfach die Krätze. Wenn ich das Datenblatt richtig verstehe, kann man auch die Kanalnummer direkt setzen. Es sollte also möglich sein, mehrere Speichertasten anzuschließen, um seine Lieblingssender auswählen zu können. Und über RDS sollte sich auch der Sendername bequem anzeigen lassen. Der Chip sieht ja nicht schlecht aus, man kann sogar bei schwachen Sendern auf Mono schalten. Kann heute kaum noch ein Radio. Wie ist denn so die Empfangsqualität im Vergleich zu einem herkömmlichen Radio?
ja, das ist richtig, die Kanalnummer lässt sich direkt setzen. Ich hatte mich vor 2 Jahren mal mit dem RDA5807 Modul befasst und hierbei ein Design nach ähnlichem Prinzip wie hier, aber mit fest eingespeicherten Frequenzen und für einen ATtiny44 erstellt. Zu finden hier: http://tneveling.bplaced.net/radiobasteln.html Die dort erwähne Variante mit OLED zeigt mittlerweile auch RDS Text und Uhrzeit an (siehe Foto).
Ralph S. schrieb: > - Portexpander mit PCF8574 (I2C) Ein PCF8574 ist um ein Vielfaches teurer als der PFS154. Wäre es nicht besser hier auch einen PFS154 (oder anderen Padauk) als Portexpander zu verwenden? Ein langsames I2C target müsste in Software eigentlich auch auf einem Padauk machbar sein. Oder wenn nicht, dann ein alternatives Protokoll verwenden. Der Padauk hat im Vergleich zum PCF8574 den Vorteil echter Push-Pull-Ausgänge.
Ralph S. schrieb: > verschlampt habe und nicht mehr finde ... :-( Da mußte ich gleich einen Pluspunkt vergeben. :) Guter Thread. Der HXJ8002, wenn einer der Widerstände nicht im IC wäre, könnte dieser als Stereoverstärker verwendet werden. Aber wenn man Bias abtrennen würde und dort mit einem Widerstand inverse einkoppeln könnte, wäre vielleicht eine Zweckentfremdung vielleicht doch möglich. Bei dem Preis nimmt man natürlich besser zwei Verstärker.
Peter D. schrieb: > Ich hatte mir auch mal ein Suchlaufradio fürs Bad gekauft. Ich habs in > den Müll geschmissen, so ein Suchlauf ist einfach die Krätze. Sagen wir es mal so: ein "komfortables" Radio sollte Suchlauf, manuelle Senderwahl und Stationstasten haben. Richtig gut wirds dann, wenn er noch DAB+ und Internetradio zum UKW hat und eine gute Endstufe mit wertigen Lautsprecherchasis. Den Aufwand hierfür kann man richtig nach oben treiben. Der Suchlauf hier von diesem Teil funktioniert allerdings wirklich gut. Peter D. schrieb: > Wenn ich das Datenblatt richtig verstehe, kann man auch die Kanalnummer > direkt setzen. Es sollte also möglich sein, mehrere Speichertasten > anzuschließen, um seine Lieblingssender auswählen zu können. Es wäre dann möglich, hätte der Controller einen Flash oder ein internes EEProm dass man zur Laufzeit beschreiben könnte um zur Laufzeit eben Stationstasten zu belegen. Im übrigen verwendet das Programm nicht die integrierten Möglichkeiten zum Sendersuchlauf, sondern ich verwende die empfangene Feldstärke. D.h. ich stelle die Lautstärke stumm, stelle neue Kanalnummer ein, frage Feldstärke ab und wenn diese nicht unter einem vorgebbaren Level liegt hört die Suche auf und die Lautstärke wird wieder eingeschaltet. Mir ging es wie gesagt darum zu schauen, ob ich das Radio grundsätzlich mit dem PFS154 hinbekomme. Peter D. schrieb: > Der Chip sieht ja nicht schlecht aus, man kann sogar bei schwachen > Sendern auf Mono schalten. Kann heute kaum noch ein Radio. > Wie ist denn so die Empfangsqualität im Vergleich zu einem herkömmlichen > Radio? Die Empfangsqualität ist erstaunlich gut und das erzeugte NF-Signal hört sich gut an (früher hatte ich mal einen Testsender und eine Klirrfaktormeßbrücke, die steht mir nicht mehr zur Verfügung, so kann ich da nur "sensorisch" mit meinen Ohren bewerten). Die Antennenempfindlichkeit könnte etwas besser sein, deswegen hatte ich mal einen einfachen Antennenverstärker hierfür gemacht gehabt: Beitrag "Re: FM Radio Modul RDA5807M" Peter D. schrieb: > RDS sollte sich auch der Sendername bequem anzeigen lassen. Sollte zwar gehen und jemand hat das scheinbar schon gemacht gehabt, aber ich bin daran bisher gescheitert, den RDA5807 hatte ich schon an AVR, STM8 und STM32F030. Jemand hat das wohl schon hinbekommen wie oben jemand geschrieben hatte und ich muß mir das mal wieder anschauen. Thomas N. schrieb: > ja, das ist richtig, die Kanalnummer lässt sich direkt setzen. Ich hatte > mich vor 2 Jahren mal mit dem RDA5807 Modul befasst und hierbei ein > Design nach ähnlichem Prinzip wie hier, aber mit fest eingespeicherten > Frequenzen und für einen ATtiny44 erstellt. Zu finden hier: > > http://tneveling.bplaced.net/radiobasteln.html > > Die dort erwähne Variante mit OLED zeigt mittlerweile auch RDS Text und > Uhrzeit an (siehe Foto). Mit einem Tiny44 hatte ich das im Rahmen eines kleinen Frameworks und dem preiswerten I2C - OLED Display schon gemacht gehabt: Beitrag "Re: (sehr) kleines "FrameWork" für ATtiny44" ein RDS (wie oben allerdings geschrieben habe ich noch nicht ausgewertet bekommen, hier interessiert mich deine Lösung und ich schau mir das mal dann genauer an). Gerd E. schrieb: > Ein PCF8574 ist um ein Vielfaches teurer als der PFS154. Stimmt, es geht mir ja darum, mögliche Funktionalitäten auszuloten. Der PCF8574 ist der einfachste I2C Chip den ich kenne und mit dem kann ich dann gut testen, ob der Bus funktioniert oder nicht. So werde ich bspw. auch Code für einen TM1637 (u.a. vierstellige 7-Segmentanzeige) für den PFS154 portieren wobei es preiswerter ist, mit dem PFS154 einen Anzeigetreiber zu realisieren (und das behalte ich jetzt mal so im Kopf: 4-stellige 7-Segmentanzeige mit seriellem Dateneingang nach RS232-Protokoll) Gerd E. schrieb: > Wäre es nicht besser hier auch einen PFS154 (oder anderen Padauk) als > Portexpander zu verwenden? > > Ein langsames I2C target müsste in Software eigentlich auch auf einem > Padauk machbar sein. Oder wenn nicht, dann ein alternatives Protokoll > verwenden. Diese Überlegungen habe ich bereits schon, wobei ein I2C Slave bei mir wohl herausfällt, da wohl die Resourcen nicht so ganz reichen. Vllt. mit einem eigenen Protokoll wie das CPLDCPU Tim mit seiner skalierbaren 7-Segmentanzeige gemacht hat. Dieter D. schrieb: > Der HXJ8002, wenn einer der Widerstände nicht im IC wäre, könnte dieser > als Stereoverstärker verwendet werden. Na ja, smile: wenn, hätte, könnte ! Der 8002 ist grundsätzlich als Brückenendstufe konzipiert und solcher auch zu nutzen. Der Vorteil hier ist eine hohe Ausgangsspannung an jedem Verstärkerzweig nahe der Versorgungsspannung und ultra preiswert. Wenn ich keinen Kopfhörerbetrieb habe, würde ich mit 5V keinen Stereoverstärker ohne Brückenschaltung haben wollen, weil die Ausgangsleistung dann wirklich richtig klein ist. Hierfür gibt es andere sehr preiswerte "Endstufen" im 8-pol. Gehäuse. Dieter D. schrieb: > Bei dem Preis nimmt man natürlich besser zwei Verstärker. Smile: Genau (und wie gesagt ist hier dann eben auch die max. Leistung um bis zu Faktor 4 höher: doppelte Ausgangsspannung = 4-fache Ausgangsleistung)
Hier ein Projekt aus einer höheren Liga: https://www.heise.de/news/Mit-2-Euro-SDR-Chip-Arduino-wird-zum-Weltempfaenger-4941272.html
Bernd schrieb: > Hier ein Projekt aus einer höheren Liga: > > https://www.heise.de/news/Mit-2-Euro-SDR-Chip-Arduino-wird-zum-Weltempfaenger-4941272.html Es gibt ewig viele Projekte und auch Projekte zum Thema Radio. Hrmpf, hier habe ich aber nur einen Port für PFS154 vorgestellt. Mehr nicht ! Warum nur muß man dann auf eine "höhere" Liga (was ist das überhaupt ?) verweisen, die weder mit dem PFS154 noch mit dem RDA5807 etwas zu tun haben? Zu dem Heise-Artikel: Ich kenne den SI4730, ich kenne 1,8" Displays (obwohl das auf dem Aufmacherfoto des Heise-Artikels ein 1,44" Display 128x128 Pixel ist), ich kenne Arduino und ich kenne Impulsdrehgeber. Da ist genau so viel außergewöhnliches dabei wie mit jedem anderen Artikel, hier ist wenigstens der verwendete Controller relativ neu. Abgesehen davon steht im Heise Artikel: Baukosten ca. 20 Euro (bei vorhandenem Arduino), das Radio hier hat Baukosten < 50 Cent, inklusive des Controllers ! Von daher: preislich spielt das SI4730 Radio wirklich in einer anderen Liga !
anbei wie angefragt der C-Code für das RDA5807 Radio mit RDS Funktionen (ATtiny45). Der RDS Text wird ungefiltert als Laufschrift ausgegeben, was in der Praxis recht gut funktioniert; selten erscheinen falsche Buchstaben. Eine entsprechende Assembler Implementierung ist mir ebenfalls gelungen, nicht jedoch die Auswertung der Block Error Register des RDA5807 zur Fehlerkorrektur. Wenn hierzu jemand Erfahrungen hat, wäre das interessant für mich.
Ralph S. schrieb: > Mit einem Tiny44 hatte ich das im Rahmen eines kleinen Frameworks und > dem preiswerten I2C - OLED Display schon gemacht gehabt: An den ATtinyx4 habe ich auch gedacht. Oder den ATmegax8A mit 32kHz Quarz als RTC. Damit könnte man sich ein schönes Weckradio basteln. Fast alle käuflichen Weckradios gestatten leider nicht die 10-er Tastatur als komfortable Weckzeiteingabe. Man muß sich mit den hoch/runter-Tasten abquälen.
Thomas N. schrieb: > Eine entsprechende Assembler Implementierung ist mir > ebenfalls gelungen Ich sehe hier keinerlei Vorteile, die Assembler hätte. Danke für den C-Code, den werde ich mir mal ansehen. Warum hast Du das I2C nicht auch in C geschrieben?
Thomas N. schrieb: > anbei wie angefragt der C-Code für das RDA5807 Radio mit RDS Funktionen > (ATtiny45). Auch von mir ein Dankeschön für die RDS-Funktionen. Den Code werde ich mir ansehen (wenn ich auf den Padauk keine Lust mehr habe) und ihn höchstwahrscheinlich für STM8 portieren (weil mein kleines Kellerradio als Controller den STM8 drin hat).
Peter D. schrieb: > Warum hast Du das I2C nicht auch in C geschrieben? ... pure Faulheit ;-) Ihr seid sicher im Vergleich zu mir die erfahreneren C-Codierer. Verbesserungsvorschläge sind daher willkommen.
Thomas N. schrieb: > ... pure Faulheit ;-) > > Ihr seid sicher im Vergleich zu mir die erfahreneren C-Codierer. > Verbesserungsvorschläge sind daher willkommen. Absolut erlaubt. Warum das Rad immer neu erfinden, du hast halt Software von Peter Fleury verwendet und diese funktioniert und höchst wahrscheinlich ist der erzeugte Code auch kleiner als der von mir. Aber ich freu mich, dass ich in deinem Radiocode immer noch Teile von meinem ursrünglichen entdecke ! Grundsätzlich: erlaubt ist, was funktioniert (und dein Radio funktioniert ja)
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.