Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Alles zum Thema DAB(+) Digitalradio.
Andi_Bayern

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von Andi_Bayern »

df1bb hat geschrieben: Hier sind die Rohdaten während der Initialisierung:
...
Danke. :)
Mittlerweile bin ich soweit bekommen, dass ich eine FW laden und booten kann. Ich mache es jetzt so, dass ich während dem Laden der Firmware nicht auf Interrupts achte, sondern per READ_RESPONSE prüfe, ob das CTS-Bit gesetzt ist.

Jetzt bin ich dran, die Kalibrierparameter (FM_TUNE_FE_VARM und FM_TUNE_FE_VARB) zu setzen.
Danach kann es hoffentlich "richtig" losgehen.

Viele Grüße,
Andi
PsychoMantis

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von PsychoMantis »

Andi_Bayern & df1bb
Leute, ihr seid schon krass. Obwohl ich gelernter IT-Systemelektroniker mit Linux-Kenntnissen bin, ist es schwer euch beiden zu folgen (besser gesagt zu verstehen, was genau ihr macht).
Respekt!

Ich versuche mal zu verstehen:
Man muss jedes mal nach dem Einschalten des Chips eine Firmware darauf laden. Erst dann kann man ihn nutzen (also Befehle geben per I²C wie z.B. "suche die nächste Frequenz wo gesendet wird" und dann kommt aus der I²S-Schnittstelle Musik raus). Firmware kann man darauf laden mit dem teueren Evaluation-Board oder auch ohne. Ihr versucht es jetzt ohne und habt es mittlerweile geschafft.
Habe ich es richtig verstanden?
Oder lasst mich ganz anders fragen: Wie weit seid ihr davon entfernt diesen Chip mit dem Raspberry Pi zu verheiraten, so dass ich RPI+Si4668 als Radio nutzen kann?
(Falls kein RPI vorhanden, kann ich gerne eins spenden für das Projekt).
df1bb

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von df1bb »

Andi_Bayern hat geschrieben: ...
Jetzt bin ich dran, die Kalibrierparameter (FM_TUNE_FE_VARM und FM_TUNE_FE_VARB) zu setzen.
Danach kann es hoffentlich "richtig" losgehen.
Sehr schön :-) Bei mir funktioniert der FM_TUNE_FREQ Befehl übrigens direkt ohne vorher noch andere Einstellungen vorzunehmen.
PsychoMantis hat geschrieben: ...
Habe ich es richtig verstanden?
...
Alles richtig. Den Chip mit dem Pi zu nutzen dürfte kein großes Problem sein. Die Kommunikation sollte über die Hardware SPI vom PI klappen.
Leider braucht man für den analogen Audio Ausgang vom SI4688 noch eine Verstärker Stufe.
Oder man verbindet den I2S Ausgang mit dem Pi und gibt den Ton dann über eine andere
Soundkarte wieder aus.
Sobald meine Platinen da sind und ich Zeit dazu finde, probiere ich das mal aus.
Andi_Bayern

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von Andi_Bayern »

df1bb hat geschrieben:...
Sehr schön :-) Bei mir funktioniert der FM_TUNE_FREQ Befehl übrigens direkt ohne vorher noch andere Einstellungen vorzunehmen.
Gut zu wissen. Das Programming Guide las sich so, als ob man diese beiden vorher setzen müsste.
(Um die zu ermitteln, ist etwas Aufwand erforderlich - man muss an beiden Enden des Frequenzbandes jeweils eine Frequenz einstellen, und dann einen Parameter so lange variieren, bis die RSSI maximal wird. Daraus kann man dann die beiden Parameter berechnen).


Viele Grüße,
Andi
PsychoMantis

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von PsychoMantis »

df1bb hat geschrieben: Oder man verbindet den I2S Ausgang mit dem Pi und gibt den Ton dann über eine andere Soundkarte wieder aus.
Das klingt gut. RPi hat ja I²S-Schnittstelle. Daher wäre es interessant Den I²S-Ausgang mit dem RPi zu verbinden, so dass der Radio-Sound dann entweder aus dem analogen Ausgang oder aus dem HDMI des RPi rauskommt. Ich hoffe jetzt mal der Weg I²S -> Analog ist nicht so CPU-lastig.
Andi_Bayern

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von Andi_Bayern »

PsychoMantis hat geschrieben: ... Ich hoffe jetzt mal der Weg I²S -> Analog ist nicht so CPU-lastig.
Dürfte kaum Last erzeugen, solange du keine SampleRate-Konversion o.ä. machen willst.

In der Zwischenzeit habe ich mein Testprogramm (für Windows) soweit gebracht, dass Setzen einer FM-Frequenz und Abfragen grundlegender Qualitäts-Parameter möglich ist.

[attachment 3582 TestGui.png]
(Die Anzeige von SNR, RSSI und Multipath fehlt noch, daher sind da nur leere Rahmen. Abgefragt vom Chip werden die Werte schon).

Um mit den "Eigenarten" der Interrupt-Leitung des Si468x besser zurechtzukommen (insbesondere damit, dass sie nach manchen Befehlen den Logik-Wert ändert und dann bis zum nächsten Interrupt beibehält, bei anderen hingegen - wie man es erwarten würde - nur einen kurzen Impuls ausgibt) *, habe ich auf meiner Adapter-Platine etwas Logik implementiert.
* -> Siehe z.B. die Screenshots von df1bb oben

[attachment 3583 Bild7.jpg]

Damit erhalte ich nach jeder Logikpegel-Änderung der INTB-Leitung einen Low-Pegel an meinem "Interrupt-Eingang", der bis zum nächsten Kommando (fallende Flanke von SSB [aka ChipSelect) bestehen bleibt.
Mit dieser Erweiterung kann ich die Interrupts jetzt für alle Kommandos nach dem Laden des Bootloader-Patches nutzen.

(Den unteren Teil für den Reset habe ich gestern schon gemacht, das ist nichts besonderes).

Viele Grüße,
Andi
PsychoMantis

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von PsychoMantis »

df1bb hat geschrieben:Ich hatte die Tage 10 Stück SI4688 bei Arrow aus den USA geordert.
Kannst du mir eins davon vielleicht verkaufen?
mobi

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von mobi »

PsychoMantis hat geschrieben:
df1bb hat geschrieben: Oder man verbindet den I2S Ausgang mit dem Pi und gibt den Ton dann über eine andere Soundkarte wieder aus.
Das klingt gut. RPi hat ja I²S-Schnittstelle. Daher wäre es interessant Den I²S-Ausgang mit dem RPi zu verbinden, so dass der Radio-Sound dann entweder aus dem analogen Ausgang oder aus dem HDMI des RPi rauskommt. Ich hoffe jetzt mal der Weg I²S -> Analog ist nicht so CPU-lastig.
ui jetzt wirds langsam interessant!
PsychoMantis

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von PsychoMantis »

Und wie interessant das wird! Dieses Thema verfolgen sehr sehr viele Leute.
Es gibt nämlich nach wie vor keine nennenswerte, funktionierende (und preiswerte) Lösung DAB+RPI.
df1bb & Andi_Bayern sind wohl die ersten, die mit riesigen Schritten in Richtung "Finisch" schreiten.
drahtlos

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von drahtlos »

....insbesondere auch, weil das erweiterte Chipset mehr könnte als nur DAB....
Andi_Bayern

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von Andi_Bayern »

drahtlos hat geschrieben: ....insbesondere auch, weil das erweiterte Chipset mehr könnte als nur DAB....
Aus der Familie der Si468x-Chips wäre da vor allem der letzte (Si4689) zu nennen:
Si4682 FM/HD Radio Receiver w/ RDS
Si4683 FM/AM/HD Radio Receiver w/ RDS
Si4684 FM/DAB Receiver w/ RDS
Si4688 FM/HD Radio/DAB Receiver w/ RDS
Si4689 FM/AM/HD Radio/DAB Receiver w/ RDS

[attachment 3589 Si468x_Family.png]
Aber den scheint es noch nicht im Handel zu geben.

Viele Grüße,
Andi
df1bb

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von df1bb »

Schöne Idee mit der Schaltung Andi.

Ich habe mal ein einfaches Layout zum Anschluss des SI468x ans Pi gemacht.
Das meiste war Copy&Paste von meinem anderen Board das hoffentlich bis zum nächsten Wochenende da ist.
Vielleicht kann nochmal jemand kurz drüberschauen. Dann würde ich heute Abend mal 10
Platinen davon zum Testen ordern. Wer Interesse an einer hat, kann sich gerne per PN melden.
Ich würde diese auf Wunsch auch bestücken.

[attachment 3590 DABPi_v1_PCB.png]
[attachment 3591 DABPi_v1_SCH.png]

Eagle Files: DABPi_v1.zip

Gruß
Björn
Andi_Bayern

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von Andi_Bayern »

df1bb hat geschrieben: ...
Ich habe mal ein einfaches Layout zum Anschluss des SI468x ans Pi gemacht.
...
Sehr schön. :)

Ich hätte auf jeden Fall Interesse an 2 solcher Boards (wenn möglich, bestückt - normale SMD-Bauteile kann ich zwar löten, aber den Si468x eher nicht...)

Einen Verbesserungs-Vorschlag hätte ich noch: Könntest du noch die NVxxx-Pins anbinden (also den 2. SPI zum Anschluss eines Flash-ROMs)? Aus diesem Flash kann der Chip ja per FLASH_LOAD die Firmware laden (und zwar viel schneller, als per HOST_LOAD, da dieser "Flash SPI" mit bis zu 40 MHz laufen kann - im Gegensatz zu den max. 10 MHz des Host-SPI).

Es würde ja reichen, wenn du diese Pins an Pads für ein SO8 anbindest (oder auf einen Pfostenstecker führst).


Edit:
Evtl. in die 3.3V vor dem Regler noch eine kleine Induktivität reinhängen zum Filtern.
Den 1µ-Kondensator am Reglerausgang evtl. auf 10µ erhöhen.

Edit:
Ah, ich sehe - das ist i.W. die Schaltung aus der AN650, "APPENDIX C—APPLICATION CIRCUIT FOR EMI MITIGATION". :)

Edit:
Die VA (-> 1.8V für den Analogteil) sollten am Besten auch noch über eine kleine Induktivität von den "digitalen" 1.8V abgefiltert werden.
Ich schlage vor: vom Regler-Ausgang die 1.8V wie folgt verzweigen:
a) Über eine kleine Induktivität auf VCORE und VMEM
b) Über eine kleine Induktivität auf VA


Viele Grüße,
Andi

Edits: Ergänzungen.
PsychoMantis

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von PsychoMantis »

Zum Layout: ich bin nicht sicher wie belastbar der 3,3V-Ausgang des RPI ist (50 mA max?). Vielleicht sollte man daher gleich einen DC-DC-Wandler verwenden (5V Eingang, Ausgang 3v3 und 1v8).
Normaler analoger Audio-Ausgang ist eigentlich nicht nötig, da der RPI ihn schon hat.
Ich bräuchte eine bestückte Platine, da meine SMD-Löterfahrung nicht nennenswert ist.
drahtlos

Re: Si4684 / Si4688 - FM / DAB(+) Empfängerchip

Beitrag von drahtlos »

hallo miteinander

ich weiche zwar leicht ab vom Thema und auch zu SiLab, möchte aber kurz fragen, ob jemand von euch einen Lieferanten für dieses NXP-DIRANA-Board kennt? Bei NXP habe ich nichts mehr zum Thema SAF775x gefunden.

[attachment 3592 NXPSAF775xDIRANABoard.jpg]

[attachment 3594 TestboardSAF775x.jpg]
Antworten