Forum: Mikrocontroller und Digitale Elektronik DAB+ Modul KeyStone 8650


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 Gerrit W. (gerrit198)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

Dies ist der Projektthread zur Sammelbestellung des DAB+ Moduls.
(siehe auch: Beitrag "[Sammelbestellung] DAB+ Modul KeyStone 8650"
 sowie: Beitrag "[S] DAB+ Modul oder Bausatz")
Zunächst mal Danke an Marco, der die Bestellung angestoßen und 
durchgeführt hat.
Für diejenigen, die nicht an der Sammelbestellung teilgenommen haben, 
aber trotzdem interessiert sind, kann man das Modul auch unter 
http://www.coolcomponents.co.uk/t2-l4a-8650c-dab-dab-dab-radio-fm-radio-module.html 
bekommen.

Anfangen möchte ich damit, die bisher geposteten Infos zum Modul hier 
zumindest ansatzweise zusammenzutragen:
Das Modul wird u.a. auf dem Monkeyboard eingesetzt. Auf der Homepage 
(monkeyboard.org) gibt es auch einige Infos und Programmschnipsel. Die 
genauen Datenblätter gibt es aber offiziell lediglich per NDA. Bei wem 
und wie man diese beantragen muss, sollte hier nochmal beschrieben 
werden (bei den Jungs von Monkeyboard oder beim Modulhersteller).
Vom Modul wird neben FM (87.5~108MHz) und dem Band-3 (174~240MHz) auch 
das L-Band (1452MHz~1492MHz)  unterstützt. Das letztgenannte ist aber 
wohl nicht so interessant.

Unter anderem Namen habe ich im Thread des 1. Links gepostet, dass ich 
zum Empfang vom Band-3 hervorragende Erfahrungen mit 
Amateuerfunk-Dualband-Antennen für 2m/70cm gemacht habe. Das gilt aber 
eigentlich nur für schwache Empfangsgebiete. Alle anderen sollten wohl 
auch bequem mit einer einfachen Zimmerantenne fürs TV klarkommen.

Ich werde das Modul zunächst auf ein Stück Lochrasterplatine befestigen 
und mit Fädeldraht an die externen Bauteile anschließen. Ich denke, wir 
können uns da bei (dem open-source Projekt?) monkeyboard bedienen. 
Zunächst möglichst einfach, z.B. wird der PIC entfallen, der wohl nur 
USB-UART-Funktionen hat. Ich werde das Modul direkt per Raspberry an den 
UART anschließen, da brauch ich den PIC nicht. Da sowohl Raspberry als 
auch das Keystone-Modul 3,3V-UART-Pegel haben, ist ein direktes 
Anschließen ohne Pegelwandler möglich. Einen ersten Schaltplan erstelle 
ich zur Zeit.

Bei der Software bin ich zur Zeit unschlüssig: Es gibt recht viel beim 
monkeyboard-Projekt, auch für den Raspberry. Außerdem in 
unterschiedlichen Programmiersprachen (VB.net, Python, LabView). 
Zunächst werde ich aber die Funktionen direkt per UART testen, wohl auch 
in Python.


Gruß

Gerrit

von Gerrit W. (gerrit198)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hier, wie versprochen, ein erster Schaltplan. Wie gesagt, ist dies die 
Vereinfachung des Monkeyboard.
Die Induktivitäten L2 und L3 sind vmtl. bei sehr wenigen Anwendungen 
notwendig(?).
Die Bestellliste rechts unten enthält nur Reichelt-Bestellnummern von 
Bauteilen, die ich hier nicht in meiner Bastelkiste habe.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Du hast sogar ein neues Symbol für das Modul gemacht, nicht das vom 
Monkeyboard übernommen?
Ich würde auch I2C und SPI anschließen, als schnellere 
Kommunikationspfade. Da können hoffentlich auch Bilder rauskommen, DMB 
Video hierzulande leider nicht mehr.
Hoffentlich kommt sogar I2S Audio raus, das passt vielleicht an P5 von 
neueren Raspberries.

Allgemein:
Auf die Gefahr hin was überlesen zu haben, mir ist nicht ganz klar was 
"unser" Modul eigentlich kann. Der Chip hat internes Flash, da ist eine 
Firmware drin. Ja nach Anwendung kann das fix und fertig ein Radio sein, 
mit Display, Tasten, Drehgeber und IR-Fernbedienungsempfänger. Das wäre 
lt. Datenblatt der "Master Mode", eine Kommunikation über UART/I2C ist 
aber trotzdem noch möglich?
Dann gibt es noch den "Slave Mode" ohne Tasten und Display. Etliche Pins 
haben eine Doppelfunktion, aus der Tastatur wird digitales I2S Audio 
(was mich sehr interessiert!), aus dem Display wird SPI.
Haben wir immer den Slave Mode, oder wie wird der ausgewählt?
Ich habe keine Kommandos gefunden die etwas umkonfigurieren, wie z.B. 
eine Art I2S Enable.

Es gibt wohl unterschiedliche Firmware, für das Monkeyboard eine andere 
als für Keystone-Kunden. Zitat von 
http://monkeyboard.org/86-technical-documents/81-keystone-dab-fm-module-programming-api 
"Although our boards use KeyStone’s module, the API were created 
differently and will act different from modules sourced directly from 
KeyStone Semiconductor."
Das war für die Grund genug die Monkey-API in eine mir unzugängliche 
"Member Area" zu verschieben. Welchen Kommandosatz haben wir?

Jörg

von Gerhard W. (gerhard_w)


Bewertung
0 lesenswert
nicht lesenswert
ich frag mich gerade, welches Display im Mastermode unterstützt wird, 
bzw. ob es irgend eine Konfigurationsmöglichkeit gibt.
Irgendwie steig ich da noch nicht durch.

von Eugen K. (sieukrem)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
Ich habe heute auf 
http://www.coolcomponents.co.uk/t2-l4a-8650c-dab-dab-dab-radio-fm-radio-module.html# 
unter Resources eine Excel-Datei mit Kommandos entdeckt.

Versuche sie hier auch als Anhang hochzuladen.

PS: Ich finde es widersprüchlich im "Antwortformular" zu bitten, 
längeren Code als Datei anzuhängen, und dann zu verwarnen, dass nur 
Bilder erlaubt sind. Also wenn ich jetzt gegen die Regeln verstoße, dann 
bitte nur die Datei und nicht den Link löschen.

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Eugen Kremer schrieb:
> Ich finde es widersprüchlich im "Antwortformular" zu bitten,
> längeren Code als Datei anzuhängen, und dann zu verwarnen, dass nur
> Bilder erlaubt sind.

Das steht da nicht. Lies Dir den Text nochmal genauer durch.

Deine Excel-Datei ist also schon in Ordnung.

: Bearbeitet durch Moderator
von Gerrit W. (gerrit198)


Bewertung
0 lesenswert
nicht lesenswert
Hey

Die Excel-Datei ist ja super. Auf dem ersten Blick scheint die 
Slave-Mode-Kommunikation vollständig beschrieben.

Ich warte zur Zeit auf meine fehlenden Bauteile (und Urlaub) um an 
diesem Projekt weiter zu arbeiten.

Wie schonmal angesprochen, habe ich mich mal mit den Labview-Ressourcen 
vom Monkeyboard beschäftigt (siehe: 
http://www.monkeyboard.org/tutorials/78-interfacing/88-using-labview-to-control-the-dab-dab-fm-digital-radio-board). 
Die machen eigentlich nichts anderes, als eine DLL aufzurufen. Im Link 
beschrieben ist wohl ein 'Hello World', also eine Minimalkonfiguration 
um das System zu starten. Im Einzelnen ist dies (soweit ich das 
verstehe):

Step 1 - SYSTEMGetSysRdy - UART-OUT: FE 00 00 01 00 FD - UART-IN: ??
Step 2 - STREAMSetVolume - UART-OUT: FE 01 0C 01 01 08 FD - UART-IN: ??
Step 3 - STREAMPlay - UART-OUT: FE 01 00 01 05 00 00 00 00 00 FD - 
UART-IN:?
Step 4 - STREAMGetPlayStatus - UART-OUT: FE 01 05 01 00 FD - UART-IN: ??
Step 5 - STREAMGetProgrameName - UART-OUT: FE 01 0F 01 05 00 00 00 01 01 
FD - UART-IN: ??
Step 6 - STREAMGetEnsembleName - UART-OUT: FE 01 15 FE 05 00 00 00 01 01 
FD - UART-IN: ??
Step 7 - STREAMGetProgrameText - UART-OUT: FE 01 10 01 00 FD - UART-IN: 
??

Das wird verifiziert, wenn ich die Möglichkeit habe.

Es gibt ja offensichtlich neben diesem Slave-Mode einen Master-Mode (wie 
oben von Jörg angesprochen). Das ist mir aber zur Zeit zu wenig 
dokumentiert. Ich werde zunächst mal schrittweise den Slave-Mode testen.

Gerrit

von nicht Gast (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gibt es eigentlich jetzt irgendwo ein gescheites Datenblatt zu dem Modul 
wo unter anderem auch mal die Stromaufnahme der einzelnen 
Versorgungsspannungen definiert sind? Muss ja nicht immer ein LM317 sein 
wenn da nur wenige mA fließen.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
In diesem Beitrag wurden schon mal Datenblätter veröffentlicht:
Beitrag "Re: [S] DAB+ Modul oder Bausatz"

Drei Postings weiter oben wurde zum Modul auf auf coolcomponents.co.uk 
unter "Resources" verwiesen, auch da ist ein Datenblatt.

Die Stomaufname ist max. 75 mA auf 1,2V, 70 mA auf 1,8V.
Für die 1,2V ist ein LM317 nicht so gut, der geht nur bis 1,25V runter. 
Ist allerdings noch im Toleranzbereich.

Gerrit ist noch nicht auf meine Interfacing-Vorschläge für Rasberry Pi 
eingegangen. Ich habe gestern mal dran gemessen, Anschluß an der 
seriellen wäre ungünstig. Da gibt der Raspi eine Bootmeldung drauf aus 
und später eine Login-Shell. Könnte das Keystone-Modul verwirren...
Also besser I2C/SPI. Zur Not kann man ja noch unbestückte 0 Ohm zum UART 
vorsehen.

Jörg

von nicht Gast (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ok, danke. Jetzt habe ich es auch gefunden. Dann reichen ja kleine SOT23 
LDOs aus, schön.

von Gerrit W. (gerrit198)


Bewertung
0 lesenswert
nicht lesenswert
Für meine ersten Tests bin ich jetzt dabei, alles auf ein Stück 
Lochraster aufzubauen. Daher ist es zur Zeit für mich zweitrangig, ob 
ich mit den LM317 etwas großzügig bin. Es gibt noch ein paar Änderungen 
ggb. der ersten Schaltplanversion. Sobald ich fertig bin, werde ich 
meinen aktuellen Stand hier posten.
Der Hinweis mit den möglichen UART-Problemen ist gut. Die Kommunikation 
des Raspberry wird sich zwar mit Sicherheit irgendwo abschalten lassen, 
die Möglichkeit über I2C ist aber wohl interessanter. Lässt sich ja 
einfach verdrahten.
Es werden aber nicht alle hier Anwesenden mit dem Raspberry arbeiten 
wollen, sondern möglicherweise das System per PC anschließen. Da siehts 
mit dem I2C leider nicht so gut aus (zumindest ohne zusätzlichen 
Adapter). Da wäre RS232 eben besser gewesen.

von Gerrit W. (gerrit198)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
So. Wie versprochen habe ich den Schaltplan etwas überarbeitet.
Die wesentlichen Änderungen sind
1) eine kleine Analogausgabeverstärkerschaltung mit nachgeschaltetem 
PC-Lautsprecher, der für die ersten Tests ausreichen muss.
2) Verbindung der I2C-Leitungen zum Raspberry. Pullups werden wohl nicht 
benötigt, da auf dem Raspberry 1,8kOhm-Pullups vorhanden sind.
3) Ich hab dem 8650c noch ein paar 100nF-Kerkos an den Versorgungspins 
gegönnt.
4) ein paar Bugs wie z.B. fehlende Verbindungen gefixt

Im Anhang noch ein Bild von meinem Aufbau.

Ich werde jetzt mit der Software starten.
Gruß und schon mal schöne Weihnachten

Gerrit

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hallo Gerrit,

danke dir für den ersten Schaltplan. Leider ist die Schrift in der PDF 
irgendwie Crappy, sodass man die Werte nur schwer erkennen kann und im 
Datenblatt erst einmal nachlesen muss. Was für du für eine Spannung an 
C13 anliegen hast, kann ich leider absolut nicht erkennen. Imho steht da 
5V, müssten das aber nicht 3,3V sein?

Und mal eine Frage an alle:
Ich habe mir jetzt mal das Datenblatt zum Modul angesehen. Momentan 
sieht es für mich so aus, als ob ich den Sound des Radios über Pin 26/27 
LOUT/ROUT ausgeben müsste. Bei einem Digital-Radio würde es aber IMHO 
eher Sinn machen, das Signal digital auszugeben (SPDIF), entweder über 
Coax oder Glasfaser. Im Datenblatt habe ich aber leider keine Funktion 
gefunden, die so etwas macht. Was meint ihr?

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auch ich war lötend tätig, hier Bilder von meinem Testaufbau. Ohne 
Schaltplan, ist auch nichts besonderes dran, nur Spannungswandler, I2C, 
Kopfhörer- und Antennenbuchse. Der 1,2V Regler wurde sogar ein 
Schaltregler, ich hatte grad nichts anderes im Haus.

Nach erstem Test sind die Spannungen OK, aber das Modul antwortet nicht 
auf I²C, ein Scan mit dem Linux-Tool "i2cdetect" zeigt keinen neuen 
Teilnehmer.
Ich muß wohl doch mal die serielle anschließen...

Zum Digitalausgang: möchte ich auch haben. Dafür muß man zusätzlich 
einen Transmitterchip vorsehen, der aus I²S (nicht zu verwechseln mit 
I²C) ein S/PDIF-Signal macht. Z.B. DIT4096 von TI, TS8406 von Cirrus, 
AK4103 von Asahi Kasei.
Es gibt kleine TOSLINK-Transmitter (Everlight PLT13x) die man hinter die 
Klinkenbuchse montieren kann, um sie wahlweise auch zu einem optischen 
Ausgang zu machen.

Keine Ahnung ob I²S automatisch geht oder irgendwie eingeschaltet werden 
muß. Das ist eine Zweitfunktion der Display- und Tasten Anschlüsse.

Wie gesagt, mir ist unklar ob man eine bestimmte Firmware braucht, was 
unsere denn für eine ist und was die kann.

Jörg

: Bearbeitet durch User
von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hat denn schon irgendjemand mit den Modulen was erfolgreiches 
hinbekommen?

Mein Modul meldet sich nicht über I2C und über UART komme ich lediglich 
in einen Bootloader.
KeyStone DAB Boot Loader CE
1. Update UIP/DAB Code:
2. Update MCU/DAB Code:
3. Update DSP Code:
4. Update ZSP Code:
5. Update Boot Loader:
6. Reset System:
7. Update Resource:                                                
8. Check CS:                                                 
9. Update FT Code:                                                      
0. Restore to Default:

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, da war ja noch ein Projekt...

Ich habe nun einen RS232-Pegelwandler angeschlossen und erstmal die 
Leitung beobachtet. Etwa eine Sekunde nach dem Einschalten sehe ich da 
ein einzelnes Byte, ein 0xE5 mit 38400 Baud.

Dann habe ich die Windows-Software vom Monkeyboard ausprobiert. Zu 
meiner Freude hatte ich damit ziemlich sofort Radioempfang in FM, es 
kann sogar  RDS-Text, Beweisfoto anbei.

Allerdings auch nur FM, der DAB-Scan läuft durch ohne was zu finden. Als 
Antenne habe ich derzeit einen guten Meter fliegenden Draht. Sollte hier 
in der Stadt eigentlich ausreichen. FM ist aber recht lausig, obwohl es 
100% Feldstärke anzeigt selten in Stereo (und dann mit viel Rauschen), 
noch seltener mit RDS, nur wenig Stationen.

Ich hoffe noch auf ein Einstellungsproblem mit DAB, das wir hier andere 
Kanalfrequenzen haben als in Australien, oder sowas.

Jörg

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
0xE5 bekomme ich auch. Allerdings funktioniert die Software bei mir 
nicht. Nach der Portauswahl dauert es etwas und ich komme wieder zur 
Portauswahl.

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Update:

Es gibt erste digitale Zuckungen, nachdem ich die 2 Fonts installiert 
habe. Da besteht vermutlich kein Zusammenhang, der Empfang ist sehr 
wackelig.
Anbei also ein neues "Beweisfoto".

Hast du den seriellen Port vielleicht noch in einem Terminal offen? Das 
war erst mein Fehler. Die bei mir aktuell laufende Software habe ich 
selbst kompiliert weil ich erst dachte daß kein .exe dabei ist. Kann ich 
dir zum Test gern schicken.

Jörg

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich hatte den Port nicht in einem anderen Terminal offen.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Noch ein Update:

Ich habe jetzt etliche Meter Draht als Wurfantenne vor den Fenstern 
verlegt, damit klappt es schon besser. Die originale 
Monkeyboard-Software vom 17. November (der neueste Stand den man dort 
runterladen kann, ohne git zu bemühen) funktioniert bei mir.

Das Keystone-Modul kann nichts dafür, aber ich bin von DAB doch ziemlich 
enttäuscht. Die Bitrate ist unterirdisch, ich höre gurgelnde 
Kompressionsartefakte wie aus der mp3-Frühzeit. Nicht besser als 
Internetradio, mein Radio wird das nicht...
Ein durchschnittlicher Privatsender hat hier 72 kBit/s (Sprachformate 
noch weniger), die besten Stationen wie Deutschlandfunk haben 128 
kBit/s, mehr ist nicht.

Gute Nachrichten hingegen von I²S, das liegt einfach an, wie 
mittlerweile auf monkeyboard.org auch erwähnt. Man könnte da also einen 
SPDIF-Encoderchip anschließen. Bei der gebotenen Audioqualität kein 
Gewinn, aber mag "Medienbrüche" vermeiden.
Ein Rev2 Raspberry Pi kann theoretisch I²S sampeln, dann könnte man da 
das Audiosignal reinsaugen und über HDMI mit ausgeben.

Jörg

von Omega G. (omega) Benutzerseite


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Wie hast du das Modul denn beschaltet? Ich habe mal meinen Schaltplan 
angehängt, habe ich da etwas vergessen?

VCC geht auf 3 Spannungsregler, die Ausgangsspannungen der 
Spannungsregler passen und sind stabil.

von Jörg H. (idc-dragon)


Bewertung
1 lesenswert
nicht lesenswert
Sieht gut aus, ich habe mir das auch nur vom Monkeyboard abgeguckt. Der 
Pullup an BAT_DET hat bei mir 1k, der am Reset 100k, sonst finde ich 
keine Unterschiede.

Jörg

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg für deine Hilfe. Wichtig ist, dass BAT_DET 1k bekommt, statt 
10k.
Es funktioniert jetzt.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Na prima!
Und, wie ist der Empfang, wie das Programm?

Ich habe mittlerweile den I²S-Ausgang abgehorcht, mit einem LA (USBee) 
aufgezeichnet und per Script eine .wav daraus gemacht. Das funktioniert. 
Der Lautstärkeregler beeinflußt auch die I²S-Daten, wir haben einen 
geregelten Digitalausgang.

Jörg

von Eugen K. (sieukrem)


Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

> Ich habe mittlerweile den I²S-Ausgang abgehorcht, mit einem LA (USBee)
> aufgezeichnet und per Script eine .wav daraus gemacht.

Das klingt super! Kannst du vielleicht genauer beschreiben, script oder 
ein paar Links geben, wie man daraus eine wav macht?

Danke

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Empfang ist eher schlecht, könnte aber an meiner "Antenne" liegen. FM 
sind zwei bis drei Sender, über DAB(+) findet es zwar die ganzen HR und 
SWR Sender, stabil bekomme ich aber nur SWR solange ich mich nicht 
bewege.

klanglich ist DAB mit 120kb/s gar nicht so schlecht.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Omega G. schrieb:
> Wichtig ist, dass BAT_DET 1k bekommt, statt
> 10k.

Andersrum ist es ja interessant, das man mit größerem Widerstand in 
einen Bootloader kommt. Das könnte ja mal nützlich sein. Ließ sich 
dessen Menü eigentlich bedienen?

Jörg

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Eugen Kremer schrieb:
> Das klingt super! Kannst du vielleicht genauer beschreiben, script oder
> ein paar Links geben, wie man daraus eine wav macht?

Hast du denn eine USBee? Mein Weg ist recht spezifisch dafür, ansonsten 
schreibe ich mir hier ganz umsonst die Finger wund. ;-)
Es geht auch nicht kontinuierlich, sondern nur für ein paar Sekunden die 
in den Capture passen.

Jörg

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ja, das Menü lässt sich bedienen.
Man kommt da rein, in dem man mit 57600 Baud 0x81 sendet, bis das Menü 
erscheint.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Woa, ich habe gerade was entdeckt:

Der I²S-Output ist auch aktiv wenn man FM hört! Also ein UKW-Radio mit 
Digitalausgang.
Ich weiß nicht warum, ob das intern ein Software Defined Radio ist? 
Normalerweise ist UKW ja eine ziemlich analoge Sache, ich hätte erwartet 
daß dessen Output dem DAC des DAB-Dekoders analog zugemischt wird, um 
einen gemeinsamen Analogausgang zu haben. Stattdessen nimmt auch FM 
digitale Pfade.

Vielleicht wird es auch nur am Schluß digitalisiert, um auch durch den 
Equalizer und diese anderen optionalen Klangverschlimmbesserungen laufen 
zu können?
Dagegen spricht aber, das bei FM die Samples mit 32 kHz rauskommen, bei 
DAB mit 48 kHz.

Jörg

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

wenn ich mir das Modul und die ganzen Spezifikationen so anschaue, dann 
ist es eher ein SoC, als ein DAB/FM Modul. Jetzt denk mal an einen 
Kunden, der ein fertiges Radio mit dem Modul kauft. Wie schließt er es 
an seine Anlage an? Entweder über Stereo oder SPDIF. Ich würde auf jedem 
Fall SPDIF nehmen, da es einfach weniger Leitungen sind.

Ich denke, wir sind uns einig, dass dann das Digitalradio diesen 
Digitalweg nehmen soll bzw. kann. Doch was ist mit dem analogen? Soll 
der Kunde dann vier weitere Leiter legen für Stereo?

Deshalb macht es imho einfach Sinn, alles über SPDIF bzw. I2S 
rauszuhauen.

von Georg S. (strambauer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mein Modul an den rasperry pi über UART angeschlossen. An 
BAT_DET habe ich einem Pull-UP von 1k.

Nun habe ich das Problem, dass das Modul nicht auf Befehle reagiert. Es 
gibt lediglich nach einem Reset einmalig den Wert 0x1b aus.

wenn ich den Pull-Up Widerstand an BAT_DET auf 10k erhöhe gibt mir das 
Modul den Wert 0x1b ca. alle 7 Sekunden aus.

Hat vielleicht jemand eine Idee, was ich falsch mache bzw. was ich tun 
muss das das Modul reagiert?

Grüße
Georg

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Machst du denn am UART alles richtig? Hast du mal einen PC per 
Pegelwandler angeschlossen und die Beispielsoftware probiert?
Benutzt du den UART am Erweiterungsstecker vom Raspi? Da ist 
normalerweise eine Shell drauf aktiv, hast du die totgelegt?

Was schickst du dem Modul denn so?
Die Windows-Software sendet dem Modul als allererstes ein Paket mit FE 
00 00 01 00 00 FD, das Modul antwortet mit FE, 00, 01, 01, 00, 00, FD.
(Alles mit 57600 Baud)

Das einzelne 1B nach dem Einschalten sehe ich auch.

Jörg

von Georg S. (strambauer)


Bewertung
0 lesenswert
nicht lesenswert
Die Shell die auf die Header des Raspi geht habe ich deaktiviert und da 
ich das 1B nach einem Reset sauber empfange glaube ich auch am UART 
keinen Fehler gemacht zu haben.

Dem raspi schicke ich die Nachricht:
FE 00 00 01 00 00 FD

Für die 01 in der Nachricht habe ich auch schon andere Werte probiert, 
da zu diesem Byte in der Spec steht dass eine Nummer 0x01 und 0xFF 
verwendet werden darf.

Den UART hab ich auf 57600 eingestellt.

Einen Pegelwandler habe ich leider nicht zur Hand, ansonsten hätte ich 
es schon probiert ;-)

Georg

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Wie hast du die Shell deaktiviert, wie sendest und empfängst du?

Ich habe es auch gerade ausprobiert, mit folgendem Python-Skript:
import serial
import time

ser = serial.Serial('/dev/ttyAMA0', baudrate=57600, timeout=0.1)
while True :
        ser.write("\xFE\x00\x00\x01\x00\x00\xFD")
        answer = ser.read(7)
        print "answer:",
        for character in answer:
                print character.encode('hex'),
        print
        time.sleep(1)

Damit das läuft habe ich zuvor ein "sudo apt-get install python-serial" 
gemacht, sowie die Shell in /etc/inittab totgelegt, die letzte Zeile 
auskommentiert.

Das Skript liefert mir pro Sekunde eine Zeile in der Art:
answer: fe 00 01 01 00 00 fd

Beim ersten Schleifendurchlauf noch nicht, denn da wird 
merkwürdigerweise das 0xFE doppelt gesendet, mit etwas Lücke dazwischen. 
(Python-Bug, Puffer-Problem?)

Jörg

PS: einen Pegelwandler kann man mit 2 Transistoren und 3 Widerständen 
bauen...

: Bearbeitet durch User
von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Eigentlich habe ich heute was anderes ausprobiert, nämlich das Modul per 
SPI zu bespaßen. Das war leider genauso erfolglos wie I2C, ich sehe 
keine Antwort.

In der Doku habe ich kein Beispiel gefunden, wie denn ein SPI-Transfer 
aussähe, konnte nur rumprobieren. Ich habe alle 4 SPI-Modes probiert, 
mit und ohne die einrahmenden FE/FD Bytes, teils auch die Bit-Order 
gedreht, kein Effekt.

Es scheint, unsere Firmware hat nur den UART als Kommandoschnittstelle 
implementiert, schade.
Bei SPI und I2C ist unklar, ob das Modul ggf. Master sein will, für z.B. 
ein angeschlossenes Display.

Jörg

von Georg S. (strambauer)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

die Shell auf dem UART habe ich nach einer der vielen Anleitungen im 
Netz deaktiviert (in zwei Dateien etwas auskommentieren bzw. löschen).

Für meine Kommunikationsversuche mit dem Modul habe ich ein recht 
ähnliches Python Script geschrieben. Auch ein C-Programm habe ich schon 
geteste, leider beides ohne Erfolg.

Zur Ansteuerung des Moduls mit I2C gibt es in der "SlaveMode_spec" des 
Moduls eine recht gute Beschreibung. Ich habe die PDF Datei an diese 
Nachricht angehängt.

Georg

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nun doch eine Platine entworfen, siehe Anhang zur Diskussion. 
Basis war das Monkeyboard, aber dieses ist viel kleiner und bietet 
folgende zusätzliche Features:

- optischer Digitalausgang, durch die Audiobuchse hindurch geleuchtet 
(es gibt LWL-Kabel, die auf der einen Seite 3,5mm 
Klinkenbuchsen-kompatibel sind, z.B. Reichelt "LWL TOS 9".
- Betrieb "standalone" mit USB-Anschluß, es ist ein kleiner 
RS232/seriell Wandler drauf, oder:
- Betrieb als Raspberry Pi Aufsteckboard, dann bietet es zusätzlich noch 
folgende Optionen:
- IR-Empfänger, um daraus ggf. ein "vollständiges" Gerät mit 
Fernbedienung zu bauen
- Einspeisung des I2S-Digitalaudio für Rev.B Boards (wenn der Kernel das 
mal kann)
- Steuerung über I2C oder SPI ist auch vorgesehen, falls das Modul das 
irgendwann doch kann

Muß man aber nicht alles bestücken, man kann das auch ganz rudimentär 
lassen. Nicht-RasPi-User könnten links noch einen guten Zentimeter 
absägen, dann wird es sehr kompaakt. Nur das Modul ist auf der 
Rückseite, guckt bei RasPi-Montage nach oben, alles andere nach innen.

Die Platine misst ca. 55,25*34,3mm. Ich trage mich mit dem Gedanken, sie 
bei pcb-devboards.de fertigen zu lassen. (Der günstigste den ich kenne, 
habe ich aber noch nicht ausprobiert.) Gelegenheit für Trittbrettfahrer: 
Je nach Nutzengröße kostet eine Platine dann vielleicht 4€. Der nächste 
Fertigungstermin dort ist am 10.2., die Platinen hat man dann schon 
wenige Tage später.

Was meint ihr zu dem Design?

Es ist noch nicht ganz zuende gezupft, die Lage der Buchsen will ich 
noch genauer überprüfen. Ferner überlege ich, den L-Band Eingang per 
Bestückungsoption doch zugänglich zu machen, und ob man vielleicht ggf. 
das Kopfhörerkabel als Antenne mitnutzt. Bin aber kein HF-Experte.

Jörg

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Welche Impedanz hat denn die Leitung zu der SMA Antennebuchse?

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Das Modul hat lt. Datenblatt 50 Ohm Eingangsimpedanz. Auf dem Board weiß 
ich das nicht zu kontrollieren. Ich habe mich lediglich bemüht, die 
Verbindungen kurz zu halten. Wenn da jemand was zu beitragen kann, immer 
gern.

Jörg

von Holger S. (holger_s74)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte evtl. Interesse an einem Board!

Zur Impedanz:
Mit welchem Programm hast Du das Layout erstellt?

Altium kann z.B. wenn man die Board Parameter angegeben hat, 
Leitbahnimpedanzen simulieren, bzw. automatisch so Routen dass die 
Impedanz auf dem Board eingehalten wird.

Grüße Holger

von Alexander H. (alexander_h27)


Bewertung
0 lesenswert
nicht lesenswert
Würde auch Interesse an dem Board anmelden :)

von Holger S. (holger_s74)


Bewertung
1 lesenswert
nicht lesenswert
Hallo,

nach vielen misslungen Versuchen habe ich nun endlich rausgefunden wie 
man das Board per HTerm und HEX Befehlen zum spielen bekommt :-)

Porteinstellungen:
Baud: 57600 Data: 8 Stop: 1 Party: None

Dann sieht der Befehl für das Abspielen der UKW Frequenz 104,4Mhz wie 
folgt aus:

FE 01 00 01 00 05 01 00 01 97 D0 FD

Aufschlüsslung:

FE = Start-Byte
01 = Command type
00 = Command id
01 = Serial Number
00 = Length Byte 4 (MSB)
05 = Length Byte 5 (LSB)
01 = Stream mode = FM
00 = Frequenz in Hex MSB
01 = Frequenz in Hex
97 = Frequenz in Hex
D0 = Freqzenz in Hex LSB
FD = Stop-Byte

Das Modul antwortet dann:

FE 00 01 01 00 00 FD

Diese Antwort heißt "Command suceeds"

Sollte das Modul mit

FE 00 02 01 00 01 00 FD

antworten, bedeutet das "Command fails"

Falls vom Modul gar keine Antwort kommt, stimmt die Anzahl der 
Datenbytes nicht, welche über die beiden "Length Bytes" eingestellt wird 
nicht.

Hier gibt es jetzt zwei Fallen, es muss immer die Length eingestellt 
werden die in der Tabelle steht, und diese Byte müssen auch gesendet 
werden!

Und genau in der Lenght-Spalte liegt in der Excel-Tabelle eine böse 
Falle, hier steht nur das LSB drin, das MSB (h00) steht nicht drin! Muss 
allerdings zwingend gesendet werden, sonst macht das Modul nichts!

Hoffe es ist verständlich was ich meine.

Grüße Holger

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

(Glückwunsch an Holger zum Kommunikations-Durchbruch)

Ich habe mich etwas schlau gemacht zum Layout der Antennenverbindung, 
habe
einen Online-Rechner für Impedanzen auf Platinen gefunden:
http://www.eeweb.com/toolbox/microstrip-impedance/
Laut dem ist bei doppelseitiger 1,6mm dicker Standardplatine und 
FR4-Basismaterial mit
 eine 50 Ohm Leitung etwa 3mm breit. Ganz so dick kriege ich sie nicht 
hin, aber ich werde mal sehen was sich machen läßt.
Der Leiterbahnzug ist keine 2 cm lang, das ist deutlich kleiner als
 was bei 200 MHz 75 cm wären, aber die erscheinen glaube ich auch 
verkürzt um obige 4,7, macht 16 cm. Das ist also nicht wirklich ein 
Thema, wir machen keine Mikrowellen, das ist nur "aus Spaß" und weil 
noch Platz ist.

Die Platine ist mit Eagle erstellt, verräterisch grüne Leitungen und 
rote Symbole im Schaltplan. Altium kenne ich vom Hörensagen, in der 
Firma arbeiten die Kollegen damit. Das ist aber auch kein "Field 
Solver", der berechnet nur Dicke und Abstand (bei differentiellen 
Paaren).

Bisher zähle ich 3 Platinenmitbesteller, da kostet eine Platine doch 
mehr, etwa 7,50€. Beim Platinensammler Jakob sind es ziemlich genau 10€, 
plus umgelegte 5€ Bearbeitungsgebühr. Dafür gibt es auch 
Bestückungsdruck, bei pcb-devboards.de nicht.

Jörg


PS: ich habe mich hier erstmals am Formelsatz versucht, wie kriegt man 
denn den Text fließend drumrum?

: Bearbeitet durch User
von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jörg H. schrieb:
> Ich habe mich etwas schlau gemacht zum Layout der Antennenverbindung.
> Der Leiterbahnzug ist keine 2 cm lang, das ist deutlich kleiner als was
> bei 200 MHz dann 75 cm wären.

Funk habe ich bisher immer gemieden, aber die 75cm beziehen sich imho 
auf die Antenne. Also wenn du quasi deine Antenne auf dem Board 
unterbringen willst in Form von Kupferleitungen, dann muss sie 75cm lang 
sein bei Lambda/4. "Wir" wollen ja die Antenne nicht auf dem Board 
haben, sondern eine externe Antenne anschließen. Somit ist es nur 
"wichtig", dass die Leitungen dahin die 50 Ohm Impedanz haben.

Wobei ich momentan glaube, dass es eine relativ kleine Rolle spielt, was 
auf dem Board drauf ist, da die Zuleitung zur Antenne >> die 
Leitungslänge auf dem Board.

Jörg H. schrieb:
> Bisher zähle ich 3 Platinenmitbesteller, da kostet eine Platine doch
> mehr, etwa 7,50€.

Zwei Platinen würde ich auch nehmen. Wann wollt ihr die denn bestellen? 
Ich wollte auch noch ein Mal über das Layout drüberschauen, bevor ich 
die endgültig bestelle. Leider hat mir bisher die Zeit gefehlt, meine 
Module liegen momentan im Schrank und warten auf freie Zeit.

von Marco .. (tuding)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe bei meinem Testaufbau herumprobiert ob es empfangtechnisch 
etwas bringt, das Modul abzuschirmen. Habe dazu von einem alten Tuner 
Blech herausgeschnitten und entsprechend zugeschnitten. Das Keystone 
Modul hat ja angedeutete Flächen für einen Schirm und Schlitze zum 
Einsetzen und Verlöten. Ich kann einen besseren Empfang noch nicht 
beziffern, es scheint aber doch etwas zu bringen. Wenn ich meine 
DAB-Antenne habe kann ich mehr sagen.

von Horst W. (h-w)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
auch von meiner Seite würde ich mal Interesse an 2 Platinen anmelden :)

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nun sind doch ein paar Interessensbekundungen für Platinen 
zusammengekommen, 5 Stück hier öffentlich, 5 per PN, plus meine 2 macht 
12 Stück.
Von pcb-devboards.de bin ich mangels Bestückungsdruck wieder ab, 
aktueller Kandidat ist Fischer. Da komme ich mit deren Versandkosten 
umgelegt und MWSt auf ca. 6,50€, bei Lieferung in 10 Arbeitstagen, plus 
Versand zu euch.

An der Platine habe ich noch optimiert, der Trace der Antennenleitung 
ist kürzer und breit geworden (hat vielleicht 65 Ohm, 50 schaffe ich 
nicht), per optionalem 0 Ohm Widerstand kann auch L-Band angeschlossen 
werden.

Ich täte das wohl nach dem Wochenende bestellen, zu lange möchte ich 
nicht drauf warten.

Disclaimer: Die Platine ist naturgemäß noch nicht getestet, weil sie ja 
zum ersten Mal gefertigt wird. Ich kann keine Funktionsgarantie bieten. 
Sollte zwar eigentlich klappen, ich bin kein Anfänger, aber man weiß ja 
nie ob da noch was gepatcht werden muß.

Jörg

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier der aktuelle Stand zum "Peer Review". Die Verdrahtung um die 
Antennenbuchse ist wie besprochen neu, ferner habe ich einen 
Dämpfungswiderstand in die S/PDIF-Leitung eingefügt, weil die recht lang 
ist und dem Antenneneingang nahe kommt.

Zur Sammelbestellung:
sowas braucht klare Regeln, die ersten fragten mich schon. Also:

<diktatormodus>
Die Platinen kosten wenn alle dranbleiben 6,50€, Versand zu euch im 
schlanken 50 Gramm Brief 1€, andere Versandformen wenns sein muß extra.

Wer mitbestellen möchte, schicke mir bitte eine "verbindliche" PN mit 
Stückzahl und seiner Anschrift für den Versand. Das gilt auch für jene, 
die mir bereits geschrieben haben, Versandadresse kam nämlich noch von 
niemandem. Ich schicke euch dann eine Bestätigung mit meiner 
Bankverbindung.
Als Deadline setze ich Donnerstag, 13.2. um 12:00 Uhr fest, dann 
bestelle ich und feinjustiere ggf. den Preis. Bezahlung dann zur 
Bestellaufzeit, die dauert ja noch.
</diktatormodus>

Ich überlege noch, ob ich es mir antue auch Teilesätze anzubieten, ihr 
braucht ja auch Bauteile (meine habe ich allerdings schon), die von ca. 
3 Versendern jedem einzeln auch keinen Spaß machen. Das meiste gibt es 
bei Mouser, den USB-Chip leider nicht, die verbaute Klinkenbuchse ist 
von Reichelt weil ich von der weiß das sie hinten offen ist und ich sie 
schon mal verbaut habe, ein Symbol erstellt habe.

Viele Grüße,
Jörg

: Bearbeitet durch User
von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Wo bekommt man denn den exotischen PL2303SA her?

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
So, die Bestellung ist raus, ich habe den Beteiligten das auch gerade 
per Email bestätigt.
Außer dem Kollegen Holger S. (holger_s74) sind alle dabei die Interesse 
bekundet hatten, er hat sich bis zur Deadline trotz Extra-Einladung 
nicht  gemeldet.
Ich habe aber eine Platine mehr bestellt, zur Sicherheit. ;-)
Falls es eine Überproduktion gibt haben Nachzügler noch die Möglichkeit, 
das weiß ich aber erst in 2 Wochen.

Um den PL2303SA habe ich mich zugegeben nicht recht gekümmert, es gibt 
ihn in USA bei Saelig, oder vielleicht in China bei Alibaba/Aliexpress.
(Oder aus USB-Seriell Kabeln ausschlachten?)

Spricht für Bauteil-Sammelbestellung, an der es überwiegend Interesse 
gab. Kann aber auch gern jemand von euch machen...

Jörg

: Bearbeitet durch User
von Holger S. (holger_s74)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

sorry Jörg, dass ich mich nicht gemeldet habe, ich bin die letzte Woche 
so gut wie nicht ins Netz gekommen, und deine extra Einladung habe ich 
auch erst gesehen als es schon zu spät war :-(.
Super dass du eine extra Platine bestellt hast, wenn es möglich ist 
würde ich die nehmen ;-), PN geht gleich raus.

Grüße Holger

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Weil ich zu faul zum löten war und möglichst schnell mit dem Modul 
rumtüfteln wollte, hab ich mir das Monkey Board besorgt.

Erste Aktion: Pin 9 vom PIC ablöten! Damit kann man dann auch was hören 
wenn man mit z.B. HTERM Kommandos absetzt. Abgesehen davon ist das 
gezirpe auf der Audioleitung damit auch weg.

Nach der Initialisierung durch das mitgelieferte Programm lässt sich 
schon mal FM mit gewünschter Frequenz einstellen. Der Beep (Mode 3) 
funktioniert übrigens auch :O)

Bzgl. der restlichen Kommandos überlege ich die Daten vom mitgelieferten 
Programm zu sniffen.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Die Platinen sind angekommen. Es sind 22 Stück geworden, also haben auch 
Nachzügler noch Gelegenheit. Wer will nochmal, wer hat noch nicht?

2 Kollegen haben wenn ich mich nicht irre noch nicht bezahlt (ähem, Olaf 
und Holger), die Platinen an die anderen schicke ich hoffentlich morgen 
los. Zum Wochenende solltet ihr sie haben.

Jörg

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein bischen das Löten angefangen. Ist noch nicht fertig, weil 
ich doch noch nicht alle Teile habe. Es gibt ein paar Problemchen:

1. Den Kondensator C10 habe ich zu nah an dem Elko C21 plaziert, kann 
man in dem Layout ein paar Postings weiter oben auch sehen. Wenn man C10 
so "südlich" wie möglich einlötet sollte es aber noch passen.

2. Der schon erwähnte USB-Seriell-Wandler PL2303SA. Ich habe den 
verwendet weil er klein ist und quasi keine weiteren Bauteile braucht, 
die Beschaffung erstmal verdrängt. Es gibt ihn bei Saelig oder Alibaba:
http://www.saelig.com/IC2/PUSB007.htm
http://www.aliexpress.com/item/5PCS-PL2303SA-SOP8/1586332984.html
Ich tendiere zu den Chinesen. Ist ein nützliches Bauteil, kann man immer 
mal gebrauchen, ich würde einfach 20 Stück bestellen. Lieferung dauert 
dummerweise sehr lange.

3. Die Klinkenbuchse führt Reichelt nicht mehr, das hatte ich leider 
nicht überprüft. Das angehängte Datenblatt hatte ich seinerzeit dort 
runtergeladen, ich weiß aber nicht wer die Buchse herstellt. Bei 
Digikey, Mouser, Farnell, RS und Conrad habe ich mich durchgewühlt, 
nichts in der Art gefunden, vielleicht hat noch jemand eine Idee? Sie 
ist 4polig, was wir hier nicht brauchen, aber ich hatte das Symbol und 
die Buchse im Haus...
Durch Google habe ich sie hier zu kaufen gefunden:
http://www.soselectronic.de/?str=371&artnum=7610&name=jf35-4b-ts47
(Klaus-Conrad-Str. 1 in Hirschau, na sowas ;-)
Leider will der Shop 50€ netto Mindestbestellmenge. Findet da jemand 
noch was für sich? Wer will denn bei Buchsen-Sammelbestellung mitmachen? 
(Ich vermute alle, ohne Buchse müßte man ein Kabel anlöten und den 
optischen Ausgang ggf. anders lösen)

Grüße
Jörg

: Bearbeitet durch User
von Jörg H. (idc-dragon)


Bewertung
1 lesenswert
nicht lesenswert
So, ich war einkaufen, um für meine ungünstige Bauteileauswahl zu 
entschädigen. Wie angekündigt habe ich bei den Chinesen 20 Chips 
bestellt, mal schauen was da wann ankommt, kann 6 Wochen dauern.
Auch bei SOS Electronic habe ich bestellt, 22 Kopfhörerbuchsen, plus 40 
Elkos und 8 SMA-Buchsen um den Bestellwert aufzufüllen. Solche Elkos 
sind da gerade im Sonderangebot, und auch die SMAs waren mit Abstand 
günstig, finde ich sonst nicht unter 2€.

Mit umgelegten Versandkosten zu mir komme ich auf folgende Preise:
Kopfhörerbuchse 1,99€
Elko 0,052€
SMA-Buchse 1,22€

Ich hoffe ihr laßt mich vor allem nicht auf all den Kopfhörerbuchsen 
sitzen und nehmt mir pro Platine eine ab.
Während wir auf die China-Chips warten ist noch genug Zeit, um z.B. bei 
meiner nächsten Mouser-Bestellung weitere Bauteile mitzubestellen, damit 
es sich auch lohnt und der Teilesatz vollständiger wird. Dazu müßt ihr 
mit aber sagen, was euch noch fehlt, ich weiß ja nicht welche Optionen 
der Platine ihr aufbauen wollt (Digitalausgang, RasberryPi-Anschluß, 
USB).

Noch ein Aufbautipp:
Wenn ihr das Modul je wieder von der Platine runterkriegen wollt, dann 
empfehle ich, es mit etwas Luftspalt zu plazieren, z. B. ein Stück 
Isolierband auf die Rückseite kleben. Das hilft auch der Isolation der 
blanken Stellen am Modul, falls man sich nicht nur auf den Stopplack der 
Platine verlassen will. Dann kann man später zum Ablöten mit einem Stück 
Stahl- oder Kaptonfolie unter die Lötstellen drunterfahren. Ich nehme 
für sowas das 0,05mm-Blatt von Vaters alter Zündkerzen-Fühlerblattlehre. 
(In den 70gern mußte man wohl oft an den verschleißenden Kerzen 
justieren). Es gibt bestimmt auch passenderes zeitgemäßes Werkzeug... 
;-)

Jörg

von Jörg H. (idc-dragon)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Ich habe eine Teileliste erstellt, siehe Anhang. Für alles außer dem 
Hühnerfutter sind auch Bezugsquelle (i.d.R. Mouser oder ich), 
Bestellbezeichnung und Preise drin.
Im Schaltplan hatte ich nicht alle Bauteile korrekt benannt, das hier 
hilft hoffentlich, vorher waren z.B. noch offen:
Der IR-Empfänger (falls bestückt) muß 3V-tauglich sein, daher ist es ein 
anderer als im Schaltplan.
Der S/PDIF Transmitter ist ein CS8406 im TSOP-Gehäuse.
Für das RasPi sind SPI, I2C, I2S noch Optionen für später, bitte die 
entsprechenden Längswiderstande/Arrays noch nicht bestücken.

Jörg

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Heute auch mal versucht, das Modul per SPI zu bespaßen -geht definitiv 
nicht :/ Pin SPI_CSB wird vom Modul beim Start auf LOW gezogen, ebenso 
SPI_CLK.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich war im Urlaub, daher eine Weile ruhig von meiner Seite. Mittlerweile 
sind einige Teile eingetrudelt, ich habe ein Board bestückt.

Guido, du hast doch das Monkeyboard, können wir bitte mal was 
vergleichen?

Ist bei den Linearreglern für 1,8V und 1,2V wirklich Pin 3 auf Masse? 
Die von Microchip wären damit nämlich im Shutdown, der Pin ist kein 
/Enable, sondern ein /Shutdown. Diesen Fehler(?) habe ich mitkopiert, 
mußte nun je Pin 3 anheben und mit Drähtchen auf Plus löten. Vielleicht 
gibt es auch andere Regler mit umgekehrter Funktion, dann wäre 
interessant was denn bestückt ist.

Ich habe mit der Platine auch so ein Startproblem wie von anderen hier 
berichtet. Das Modul sendet anfangs ein einzelnes 0x1B, antwortet nicht 
auf das erste Kommandopaket (0xFE0000010000FD) der Software. Ist aber 
wohl grenzwertig instabil, einmal hat es funktioniert. Vielleicht sollte 
ich auch mit dem Pullup an BAT_DET experimentieren, vielleicht liegt es 
an der Reihenfolge in der die Spannungen hochkommen? Was für ein Pullup 
ist denn auf dem Monkeyboard bestückt?

Jörg

von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jörg H. schrieb:
> Ist bei den Linearreglern für 1,8V und 1,2V wirklich Pin 3 auf Masse?
> Die von Microchip wären damit nämlich im Shutdown, der Pin ist kein
> /Enable, sondern ein /Shutdown. Diesen Fehler(?) habe ich mitkopiert,

Hast Du dich an den Schaltplan vom MonkeyBoard gehalten? Da sind die 
Pins 3 nämlich alle zusammengeführt und auf den PIC gelegt. (siehe Bild 
pwr.png - Auszug aus dem Schaltplan vom MonkeyBoard)

> Was für ein Pullup ist denn auf dem Monkeyboard bestückt?

Dort ist ein 1K verbaut. Da wurde aber auch schon mal drauf hingewiesen, 
das es kein 10K ist.

Also ich hab mit dem Board bisher wenig Probleme. Habe jetzt die Tage 
ein wenig Software geschrieben und kann sowohl FM als auch DAB nutzen. 
(siehe Bilder) Nur das Display ist etwas nervig weil das so derart 
langsam ist, das scrollende Texte einfach nur furchtbar aussehen :/

: Bearbeitet durch User
von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt war ich's leid mit dem zähem Text gescrolle!!

Mittwoch hatte ich die Idee, das TFT Display das ich zum STM32 Discovery 
Board gekauft hatte an den Atmel anzuschließen. Doch dazu hätte ich jede 
Leitung vom Flachbandkabel einzeln auftrennen, mit Crimpkontakt versehen 
und auf dem STK500 verkabeln müssen. Da ich auch keine 10 Poligen 
Buchsen in schneidklemm Ausführung da hatte, hab ich mich dann doch 
nochmal mit dem Thema ARM beschäftigt und die CooCox IDE für mich 
entdeckt.

Installation des ganzen ist hier im Forum relativ gut beschrieben und 
nach weniger als einer Stunde blinkte bereits die erste LED. Kurz danach 
lief dank einiger Libs auf der Seite von Uwe B. auch schon das Display 
so halbwegs und danach der Timer, Touch und der UART - Einstieg in den 
STM32 ARM war geschafft :)

Und hier nun mit ein paar Macken das Ergebnis der letzten drei Tage 
(siehe Bilder) Sauber scrollender Programmtext und Touch Steuerung.

Das Display wird nach einiger Zeit mit ungewollten Pixeln zugemüllt - 
das liegt mit Sicherheit am Source der für's erste nur zusammengewürfelt 
ist. Aber in der nächsten Zeit schaffe ich da für Ordnung und einer mir 
passenden GUI. MOT Daten will ich dann aber auch noch reinholen und auf 
dem Disp. anzeigen - hat ja mit 320x24 genau das richtige Format dafür 
und JPEG Decoder hab ich schon gefunden. PNG fehlt halt noch.

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Guido, das sieht echt prima aus!

Bei mir gibt es nicht viel Neues. Bei den Reglern habe ich mich von der 
falschen Symbolbeschriftung in die Irre leiten lassen, da muß nun leider 
je ein Bein hoch und ein Draht dran.
Die Instabilität habe ich noch nicht gefunden. Im kalten Zustand scheint 
es besser zu sein, da konnte ich zumindest mal den Digitalausgang 
testen. Der funktioniert, was mich beruhigt, anscheinend sind alle 
Konfigurationspins richtig.

Jörg

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Jörg H. schrieb:
> Die Instabilität habe ich noch nicht gefunden.

Den Widerstand hast Du aber schon geändert, oder? Bei mir klappt das 
nämlich ohne Probleme.

Die einzigen Probleme die ich im Moment habe, die aber nix mit dem Modul 
zu tun haben, ist der Pixelmüll auf dem Display (SSD2119 Controller)
Ich hab inzwischen die restliche Peripherie mal ausgeschaltet und nur 
das Display selbst in Betrieb - aber ich finde den Fehler nicht :/

Das nervt, denn ich möchte nicht mit der Software weitermachen, solange 
dieser Mist nicht behoben ist.

: Bearbeitet durch User
von Peer T. (peer_t)


Bewertung
1 lesenswert
nicht lesenswert
Hallo,

ich habe das Monkeyboard und damit schon ein wenig getestet. Unter 
anderem den Raspi-Kernel mit Hilfe des Beitrags auf Koalos Blog und 
seinem Code dazu gebracht I2S vom MB zu akzeptieren. Sehr zu empfehlen 
ist auch I2S zu einem Bluetoothmodul WT32-A von Bluegiga. Mit 
entsprechender Lizenz funktioniert da auch APT-X mit 48kHz Samplingrate 
und das hört sich an einem APT-X Kopfhörer ordentlich an.

Im Datenblatt des Keystone Chips steht dass er auch I2C zur Steuerung 
kann, sowie die Ausgabe von RDS Gruppen im FM Mode unterstützt wird.

Hat hier jemand schon mal direkt mit Keystone Kontakt gehabt und weiss, 
ob und für wieviel Geld man eine Firmware mit I2C Steueroption und RDS 
Gruppenausgabe bekommen kann?

Gruß

Peer

von Andreas R. (andreas_r87)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin neu hier und habe euren Thread zum DAB-Modul bisher mit 
Interesse verfolgt. Mein Ziel ist, das DAB-Modul über I2C mit einem 
ATMEGA16 anzusteuern und anschließend Sendernamen ect. über ein 
Dot-Matrix LED-Display auszugeben.
Dazu habe ich mir bereits im Dezember letzten Jahres ein T2-L4A-8650C 
bei Coolcomponents.co.uk bestellt, weil ich mit der Sammelbestellung zu 
spät dran war. Im nächsten Schritt habe ich eine Platine für den 
ATMEGA16 und das DAB-Modul erstellt bzw. das bestehende 
Monkeyboard-Layout angepasst(siehe Anhang).
Das Modul funktioniert inwischen und auch die Kommunikation über I2C 
läuft bei mir einwandfrei. D.h. ich kann Sender einstellen, mir den 
Namen und den Text des Senders ausgeben lassen usw. Den Sourcecode 
hierfür könnte ich bereitstellen.

Aber jetzt zu meinem Problem:
Leider habe ich gestern mein Board duch einen ungewollten Kurzschluss 
mit einem Draht zerstört. Seitdem reagiert das DAB-Board nicht mehr auf 
I2C-Anfragen. Hat von euch noch jemand ein übriges T2-L4A-8650C Modul 
aus der Sammelbestellung etc. zur Verfügung (Natürlich gegen Bezahlung)?
Wo könnte ich noch ein Modul her bekommen?
Bei Coolcomponents.co.uk sind Sie auf unbestimmte Zeit ausverkauft. Weiß 
jemand, ob sich die Firmware der DAB-Module auf den Monkeyboards zu den 
einzeln DAB-Modulen direkt von Keystone unterscheiden (evtl kein 
I2C...)?

von Gerhard W. (gerhard_w)


Bewertung
0 lesenswert
nicht lesenswert
Andreas R. schrieb:
> Hat von euch noch jemand ein übriges T2-L4A-8650C Modul
> aus der Sammelbestellung etc. zur Verfügung (Natürlich gegen Bezahlung)?

Ich hab 2 Module übrig. Komm eh nicht in absehbarer Zeit dazu, damit zu 
basteln.
Wenn Du willst, melde Dich per PN.


Gruß
Gerhard

von René H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

kannst Du die Original Files Deiner Platine zur Verfügung stellen?

Grüsse,
René

von Kevin S. (kev)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein Problem mit dem Modul aus der Sammelbestellung. Ich habe 
alles zum Testen auf Lochraster aufgebaut und mich dabei an das Layout 
vom Monkeyboard gehalten. Als alles zusammen war, nach und nach die 
Spannungen drauf gegeben.
Zuerst habe ich die 1.2V und 1.8V angelegt (zwei LM317), alles super. 
Danach die 3.3V allein, von einem Labornetzteil mit Strombegrenzung. Und 
so ein Mist, die Strombegrenzung hat sofort angeschlagen. Kann jetzt 
leider nicht mehr nachvollziehen wie viel Strom da rüberging, müssten 
aber über 1A gewesen sein.
Tja ok, dann alles mehrfach durchgegangen und nach einem Kurzen gesucht. 
Leider nichts gefunden, sah alles gut aus. Also Modul ausgelötet und mal 
mit nem Multimeter beigegangen.
Ich messe zwischen dem PIN30 (3.3V Eingang) und z.B. PIN37 (also GND) 
einen verschwindend kleinen Widerstand von 1.6 Ohm! Da kann doch etwas 
nicht richtig sein. Könnte da vielleicht mal jemand bei sich nachmessen? 
Das wäre echt super, weiss grad echt nicht was ich nun noch machen soll.

Ich hoffe ich habe das Modul nicht irgendwie zerstört. Das wäre sehr 
ärgerlich, dann bräuchte ich eventuell ein neues.

Viele Grüße, Kev

von Kevin S. (kev)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

noch einmal ein Nachtrag zu meinem letzten Beitrag.
Ich denke mein Fehler war gestern die falsche Spannung erwischt zu 
haben, denke ich habe 5V auf den 3.3V Eingang gegeben. Das mochte das 
Modul anscheinend garnicht so gerne.

Wenn also noch jemand eines übrig hat, gerne zu mir, zu einem fairen 
Preis versteht sich.

Grüße, Kevin

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
@all:
Die Prolific-Chips aus China sind jetzt da (mußte sie vom Zoll abholen, 
grr). Auf die hatte ich noch gewartet, bevor ich Bauteile verschicke. 
Man erinnere sich: Ich habe die bei Reichelt nicht mehr erhältlichen 
Kopfhörerbuchsen für alle Platinen, als Mitnameartikel noch die 
Koppelelkos weil sie gerade günstig waren, den Rest des 
Mindestbestellwerts mit einigen SMA-Buchsen aufgefüllt.

Nun zu den Prolific: Ich habe einen eingelötet, an USB angegesteckt, nix 
tat sich, Sekunden später roch es heiß, am Chip hätte ich mir fast den 
Finger verbrannt. Dann habe ich das noch mal vorsichtig probiert, am mit 
Strombegrenzung, auch an einem zweiten Chip. Ich kriege die 5V-Spannung 
nicht hoch, ohne das exzessiver Strom fließt.
Ich gehe mittlerweile davon aus, das die Chips gefälscht sind, irgendwas 
wurde da zum Gewünschten umgelabelt. Die Beschriftung sieht auch etwas 
unsauber aus.
So eine Pleite, meine erste Bestellung bei Alibaba/Aliexpress, und 
prompt schlägt das chinesische Klischee zu. Nun muß ich mich erstmal mit 
dem Händler rumärgern, mal sehen was dabei rauskommt. Funktionierende 
USB-Wandler in absehbarer Zeit wohl nicht...

@Andreas R.:
Bei dir geht (ging) I²C? Ich habe alle Adressen durchprobiert, nix. 
Vermutlich hast du dann eine andere Firmware, das wäre interessant. Kann 
man die auslesen?

@Kevin:
Tut mir leid mit deinem Modul. Meine beiden sind verbaut, da kann ich 
nicht gut dran messen. Übrigens: Im Datenblatt steht leider keine 
Einschaltreihenfolge für die Spannungen, aber eine falsche kann 
schädlich sein. Im Zweifel sollte man lieber alle zusammen einschalten.

Jörg

von Andreas R. (andreas_r87)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

erst mal vielen Dank an Gerhard W. für die schnelle Hilfe.
Ich habe das Modul mittlerweile getauscht und siehe da, wie Jörg H. 
schon festgestellt hat, reagiert das Modul nicht auf I2C-Anfragen, habe 
auch alle Adressen durchprobiert (zum Glück habe ich in weiser 
Voraussicht auch eine UART-Verbindung auf der Platine vorgesehen). Das 
Modul von Coolcomponents hatte wohl eine andere Firmware, hier antwortet 
das Modul über I2C auf Adresse 0x88, aber der UART funktioniert nicht 
(zumindest nicht zusammen mit der Anwendung vom Monkeyboard). Da sich 
das Modul verabschiedet hat, kann ich die Version leider nicht mehr 
auslesen. Mir ist aufgefallen, dass sich die Module durch einen golden 
Punkt direkt auf dem BGA Chip unterscheiden. Das ist womöglich die 
Markierung bei der Herstellung zur unterscheidung...

Wäre es denn möglich noch eine Sammelbestellung zu starten? Wie viele 
Module müsste man denn abnehmen?

Gruß Andreas

von Philipp R. (philippr)


Bewertung
0 lesenswert
nicht lesenswert
Also ich wäre bei einer Sammelbestellung auch an einem Modul 
interessiert.

von Sven S. (schwerminator)


Bewertung
0 lesenswert
nicht lesenswert
Ich werde wohl so zeitnah nicht dazu kommen, mit dem Modul zu spielen, 
deshalb hätte ich zwei Module und zwei Platinen unbenutzt abzugeben. Wer 
Interesse hat, melde sich per PN.

Gruß Sven

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Wo wir gerade am Materialverteilen sind:
Ich habe noch 4 von meinen Leerplatinen übrig.

Jörg

von Kevin S. (kev)


Bewertung
0 lesenswert
nicht lesenswert
@Jörg
Eine Einschaltreihenfolge hatte ich überhaupt nicht auf dem Schirm. 
Danke für den Hinweis, das könnte es natürlich auch gewesen sein.

@Sven
Du hast eine PN von mir, bezüglich der Module die du abtreten möchtest.

Grüße, Kevin

von Hans-Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab mir auch ein kleines Board gebaut mit einem xmega und FTDI USB 
Bridge.
Gibt es irgendwo eigentlich schon c-Code zur Ansteuerung des Moduls.

Mein Ziel ist es das ganze möglichst gelungen in ein altes Röhrenradio 
zu integrieren und möglichst viel von der ursprüglichen Beschaltung zu 
recyclen (Röhrenverstärker, Tasten, Antenne).

Viele Grüße
Hans-Martin

P.S. Falls mal wieder bestellt wird bin ich dabei.

von Rolf B. (bullar) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich klinke mich mal ein für alle die die noch ein Modul brauchen.
Es lässt sich direkt über support@monkeyboard.org bestellen. Bezahlung 
erfolgt über PayPal. Lieferung dauerte bei mir ca. 8 Tage (mit 
Tracking).
Preise (AUD = Australische Dollar 1 EUR = 1,49 AUD):
  1- 4 pcs. AUD 25,-
  5-10 pcs. AUD 20,-
 11-99 pcs. AUD 17,-
 Delivery (500g) AUD28 (for Europe) Each module is only about 10gram

Einzelne Module sind sicher zollfrei. War zumindest bei mir so.

von Uwe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@Jörg ...ich hätte Interesse an 1 oder 2 Leerplatinen.

von Kevin S. (kev)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Uwe,

ich habe noch zwei von Jörgs Platinen übrig. Wenn du Interesse hast, 
gerne per PN ;)

von Jörg H. (idc-dragon)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin aus dem Urlaub wieder da.

Platinen habe ich natürlich noch, sowie vor allem Klinkenbuchsen. Für 
Bauteile wollte ich ja eigentlich noch eine Versandrunde anbieten, wenn 
die USB-Chips da sind.

Zu den gefälschten USB-Chips:
Der AliExpress-Verkäufer hat mir immerhin das Geld zurückerstattet. Auf 
den Zollkosten bin ich allerdings sitzengeblieben, von Zeit und Mühe 
ganz zu schweigen. Meine erste Erfahrung mit Versand aus China trifft 
voll das Klischee, alles Fake von dort.

von Rolf B. (bullar) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Omega G. schrieb:
> Ja, das Menü lässt sich bedienen.
> Man kommt da rein, in dem man mit 57600 Baud 0x81 sendet, bis das Menü
> erscheint.

@Omega G.
Ich kriege zwar mit einem 10K Pull-up an BAT_DET auch die periodischen 
0x!B empfangen aber das Menu kommt nicht egal wie oft ich 0x81 sende. 
Muss ich da noch etwas anderes beachten oder irgendein Timing einhalten?
Baudrate ist 57600-N-1.

von Rolf B. (bullar) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Damit nicht auch noch andere darauf hereinfallen...

Die Power Bar Berechnung (mit Befehl STREAM_GetPowerBar) geht leider nur 
bei FM und DAB. DAB+ wird vom Modul nicht unterstützt. Hat jetzt leider 
auch Keystone bestätigt. Übrigens im FM mode sind es 8 x 16 bit und im 
DAB Mode wie in der SlaveModeCommandSet 3.1.1 Liste beschrieben 16 x 8 
bit.

von Omega G. (omega) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Rolf B. schrieb:
> @Omega G.
> Ich kriege zwar mit einem 10K Pull-up an BAT_DET auch die periodischen
> 0x!B empfangen aber das Menu kommt nicht egal wie oft ich 0x81 sende.
> Muss ich da noch etwas anderes beachten oder irgendein Timing einhalten?
> Baudrate ist 57600-N-1.

Ich habe da nichts beachtet, sondern einfach im Terminal gesendet.

von Rolf B. (bullar) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Bin mal die ASCII Tabelle durchgegangen. Bei mir scheint eine andere 
Firmware geflashed zu sein. Nur bei Eingabe von 0x20 kommt bei meinem 
Modul dieses Menu:
003 BootROM Loader 1.0
1. Download bootloader - SST
2. Download bootloader - MXIC
3. Download to memory 0x8000
4. Jump to memory 0x8000
5. Reset
X.

Bei 0x81 passiert wie gesagt gar nichts.
Meine Modul Version ist 0x00 0033 0F CE 0004 00000037
(Befehl SYSTEM_GetAllVersion)

Hat schon mal jemand seine Modul Version ausgelesen?

von Wal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe Versucht RDS-Rohdaten zu empfangen, vorher mit dem Befehl 
"0xFE,0x07,0x00,0x01,0x00,0x02,0x00,0x10,0xFD" die Daten angefordert.
Es kommt zwar die Command OK Antwort, aber keine Daten. Lese ich die 
Excel Tabelle falsch ? Hat schon jemand das zum laufen bekommen ?

Gruß Wal

von Rolf B. (bullar) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
@Wal
habe das gleiche Problem wie Du. Es kommt keine Notification gemäß 
'CMD_NOTIFY_RDS_RAW_DATA'. Vielleicht hat ja jemand eine zündende Idee?

Lg Rolf

von Petr Tomášek (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gerrit W. schrieb:
> Vom Modul wird neben FM (87.5~108MHz) und dem Band-3 (174~240MHz) auch
> das L-Band (1452MHz~1492MHz)  unterstützt. Das letztgenannte ist aber
> wohl nicht so interessant.

Das L-Band wird in Tschechien betrieben, also da es für die Deutschen 
ein Nachbarland ist, kann es für manche sehr wohl interessant sein...

von Peer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Module vom Monkeyboard-Hersteller geben kein RDS aus. Steht auch in 
der Beschreibung zum Pro-Modul. RDS ist nur für Stationsnamen und 
Radiotext verfügbar.

Gruß

Peer

von Peer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Versionsinfo vom Monkeyboard:

MCU_Version: 0.041
DB_Version: 15
Boot_Version: 203
DEBUG: ASP_Version: 04.00033

RDSRawData und I2C funktionieren in diesen Versionen nicht.

von Gilles (Gast)


Bewertung
0 lesenswert
nicht lesenswert
hello Guys,

i do not speak german, despite the fact i live in Strasbourg France 
close to Germany. I would like to know if some of you have found or 
reverse engineered the protocol between serial rs232 and the KeyStone 
8650. We would like to drive the keystone module and select a frequency, 
tune to it, and get the sound, using serial or serial through usb.

Thanks a lot for your help,

Gilles

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,

für ein aktuelles Projekt hätte ich großes Interesse an einem DAB+ Modul 
von Keystone (nicht unbedingt das Monkeyboard, das reine Modul würde mir 
reichen).

In diesem Thread liest man immer wieder von schlechtem Empfang? Liegt 
das am Modul selbst oder an schlechten/falschen Antennen von 
Probeaufbauten?

Für einen ersten Test benötige ich ja "nur" das Keystone 8650 Board, 
eine Antenne und einen µC mit Uart, richtig?

Hat jemand noch ein Keystone 8650 Board übrig? Die Teile in Deutschland 
zu besorgen ist ja wahrlich nicht einfach :(

Hat eigentlich jemand Erfahrung mit dem Venice 9 (FS2029)? Das sieht mir 
sehr schick aus, Vor allem weil man direkt eine Antenne dranschrauben 
kann. Weiß jemand wie man da dran kommt?

Danke, Gruß
Borsty

von F. F. (fecixus)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Borsty,
hat sich mittlerweile jemand gemeldet wg. Erfahrungswerten ?
Im Prinzip währ ich ja auch interessiert. Aber irgendwie ist es 
bemerkenswert leise geworden um diese Modul. Entweder es läuft bei allen 
supertoll (no news, good news) oder die Leute sind resigniert :-(
Viele Grüsse
Tuncay

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Abend zusammen,

ich verzweifle grad an einem Keystone L4A-8650C Board.

Ich hab zum einen das Monkeyboard welches mit der mitgelieferten 
Software super läuft. Zum anderen möchte ich ein 8650C mit eigenem 
Design in mein System integrieren.

Die Anbindung soll über UART laufen, I2C wäre zwar auch möglich (ist 
beides bereits vorhanden) allerdings kann ich dann ja keine Sendernamen 
abrufen, oder?

Für einen ersten Test hab ich die UART Schnittstelle des Monkeyboards 
mit einem MAX3232 und einer Seriellen PCI-X Karte versucht anzusprechen. 
Hier im Forum war ja oft die Rege von 57600 Baud 8 Bits 1 StopBit keine 
Parität.

Gesagt, getan... nichts. Kein Mucks.

Mittlerweile hab ich alle Baudraten und alles was man so prüfen kann 
kontrolliert.

Mit exakt selben Aufbau kann ich ein RN52 Bluetooth Modul mit 9600 Baud 
übrigens problemlos ansprechen. Es liegt also nicht an der RS232 
Strecke.

Da ich dann allerdings den PIC auf dem Monkeyboard als Ursache nicht 
ausschließen konnte hab ich mir kurzerhand ein weiters Modul auf Basis 
der Platine hier im Forum aufgebaut. Minimalkonfiguration sozusagen. Die 
drei Spannungen, alle benötigen Pull Ups und C's und den UART 
drangebastelt.

Leider wieder keinerlei Reaktion :( Öffne ich die Terminalkonsole 
(Putty, TerraTerm oder wie auch immer) passiert nichts. Drück ich die 
Enter Taste sehe ich am RX Pin des DAB Chips (Pin 38) über das Oszi dass 
sich was tut. Die Verkabelung stimmt also nur leider mag das Modul nicht 
mit mir reden.

Was mache ich falsch? Irgend jemand einen Tipp?

Gibt es vielleicht doch eine Möglichkeit die Sendernamen über I2C zu 
empfangen und das Teil komplett ohne UART zu steuern?

Gruß
Borsty

von Technikfreak (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Borsty Bürste schrieb:
> Abend zusammen,
>
> ich verzweifle grad an einem Keystone L4A-8650C Board.
>

>
> Leider wieder keinerlei Reaktion :( Öffne ich die Terminalkonsole
> (Putty, TerraTerm oder wie auch immer) passiert nichts. Drück ich die
> Enter Taste sehe ich am RX Pin des DAB Chips (Pin 38) über das Oszi dass
> sich was tut. Die Verkabelung stimmt also nur leider mag das Modul nicht
> mit mir reden.
>
> Was mache ich falsch? Irgend jemand einen Tipp?
>
> Gibt es vielleicht doch eine Möglichkeit die Sendernamen über I2C zu
> empfangen und das Teil komplett ohne UART zu steuern?
>
> Gruß
> Borsty

Hallo

Nun, wenn ich weiterhelfen kann?

Meine Idee dazu wäre ein AmTel844 und ein Display und das ganze über den 
I²C - Bus SDA / SCL ansteuern. Nur: Wer schreibt das Programm für den 
AmTel844? Damit ein angeschlossenes Display das dann darstellen 
kann??????

Denn ICH hab keine Ahnung, wie man sowas programmiert, ich greif auf 
Fertigmodule zurück. DAB+Radio kaufen, (zB von Phillips), Electronik 
raus und in eigenes einbauen.... So mach ich das. Und es funktioniert..

Hat Dir siocher nicht weitergeholfen, weiß ich, aber meine Idee dazu 
wars wert, hier zu posten.

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Ich habs geschafft :)

Der Logicanalyzer brachte dann den Erfolg :) Jetzt zeigte sich dass 
TeraTerm irgend einen Wirren ASCI Code auf die Leitung bringt. Mit 
RealTerm kam ich dann schließlich klar. Kann nun Befehle absenden und 
bekomme Antworten vom Gerät :) Tolle Sache :)

Aber echt mies Dokumentiert das Modul ...

57600 Baud sind über einen AVR ohne externen Quarz leider auch nicht 
möglich. Mal sehen wie ich dass in meinem System zum laufen bring.

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
... Jetzt bin ichs nochmal.

Also die generelle Kommunikation mit dem Modul klappt nun schon mal. Ich 
kann Radio hören, bekomme Sendernamen übermittelt und kann Volume 
einstellen. ABER ich kann nicht einstellen welchen Sender ich hören 
möchte :(

Ich bin im Ensemblelabel DR, was mir auch entsprechend ausgegeben wird. 
Leider lande ich aber immer entweder bei Radio BOB! oder 
Schlagerparadies.

Eine Senderliste findet man z.B. hier: 
http://www.fmlist.org/sendertabelle/dab-st_more.php?inputLand=D&inputEn=10BC

Wie wähle ich einen bestimmten Sender an? Ausschlaggebend sollte doch 
die im Link aufgelistete PID sein, oder?

Ich möchte z.B. den Radio "Sunshine Live" mit der PID 15DC hören. Dazu 
setze ich:

0xFE 0x01 0x00 0x01 0x00 0x05 0x00 0x00 0x00 0x15 0xDC 0xfd was mir aber 
mit FE  00  02  01  00  01  00  FD  verweigert wird.

Weiß jemand mehr?

Danke, Gruß :)

von Wal (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du machst erst einen Suchlauf und die gefundenen Progamme kannst du dann 
einstellen. Der Suchlauf muß nur einmalig ausgeführt werden, die 
Programme sind dann auf dem Modul gespeichert. Das man die PID direkt 
aufrufen kann, habe ich noch nicht gelesen.
DAB-Suchlauf :
0xFE,0x01,0x03,0x01,0x00,0x02,0x00,0x47,0xFD
DAB-Progamm einstellen : 
0xFE,0x01,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x00,0x00 .. 0xFF,0xFD

Gruß
Wal

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
NEIGEL schrieb im Beitrag #3751042:
> Programmierst mir auch ein FERTIGES Modul? Oder hast auch soviel Ahnung
> von Nichts wie ich? Denn diese Zeichensalate hier von dir ergeben
> keinerlei Sinn!

Hä?? Watt bist du denn für einer?
Diese Zeichensalate stehen in dem Manual, das hier im Thread auch 
rumfliegt und heißen:

STREAM_AutoSearch von einer Frequenz bis zu einer anderen
und
STREAM_Play, DAB oder FM oder BEEPER oder AM, DAB Index oder Frequenz

Die Antwort von Wal ist dementsprechend schon vollständig und macht 
Sinn!

NEIGEL schrieb im Beitrag #3751042:
> So kann man glauben, was
> man möchte, aber eines tu ich hier nicht: IRGEMNDWAS IRGENDWEM hier im
> Forum Niedergetippeltes auch noch auf den Wahrheitsindex prüfen zu
> lassen. Denn das wär reine Zeitverschwendung und rausgeschmissenes Geld.
> Ich amüsier mich halt nur über soviele User hier, die dem auch noch
> Glauben schenken, was sie hier zu lesen bekommen.

Tja, was du machst oder nicht machst, ist dein Brei! Fakt ist, dass hier 
im Forum den Usern geholfen wird, wenn diese eine vernünftige Frage 
stellen können.

: Bearbeitet durch User
von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Moin :)

Vielen dank für eure Antworten, ich hab's mittlerweile sogar selbst 
rausgefunden. Musste noch nie soviel Reverse Engineeren wie bei diesem 
Projekt.

Sendersuchlauf klappt, Namen werden mir im Display angezeigt und ich 
kann die Sender durchscrollen. Feine Sache :)

Heute kommt noch die I2S Schnittstelle dran dann bin ich glücklich :)

Danke, Gruß :)

von Castle R. (castle)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Borsty,
hast du das einzelne Keystone Modul 8650 oder das Monkeyboard zum laufen 
bekommen?
Kannst du ein paar mehr Infos dazu hier posten? :) Ich wäre daran sehr 
Interessiert. Gerne auch per PM...

Viele Grüße,
Uwe

von BorstyBürste (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gerne :-) Bin grad auf dem Sonne Mone und Sterne Festival, leider 
kriegen wir hier keine brauchbaren Sender rein :-( Werde mich danach bei 
dir melden.

von Castle R. (castle)


Bewertung
0 lesenswert
nicht lesenswert
Super, Danke und viel Spaß noch auf dem Festival.... :)

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
So,

anbei eine C-Datei mit etwas Code wie ich das Keystone Modul zum laufen 
gebracht habe.

Dies ist keine Copy & Paste Lib sondern lediglich die relevanten 
Schnipsel aus meinem Quick & Dirty Projekt.

Für die UART Kommunikation habe ich die Lib hier aus dem Forum mit 
ISR/Interrupt verwendet.

I2C habe ich nicht zum laufen gebracht, das Modul antwortet nicht.

Die I2S Audioschnittstelle arbeitet bei meinem Modul mit 48kHz/12.288MHz 
ohne zusätzliche Aktivierung der Schnittstelle. Analog Out funktioniert 
aber auch :)

Ich hoffe ein wenig geholfen zu haben.

von Castle R. (castle)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Borsty Bürste.
Vielen Dank für den Code. :)

: Bearbeitet durch User
von 3162534373 .. (3162534373)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab jetzt mal 5 Module bestellt, deshalb kosten die wahrscheinlich 
um die 25 Euro das Stück.
Ich selbst brauche erstmal nur 1 bis 2.
Falls jemand interesse hat, kann er sich bei mir melden.


Projekt ist:
DAB+ an Pioneer Autoradio mit Steuerung übers Radio via CD-Wechsler 
Menü.

Grüße

von 3162534373 .. (3162534373)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Module sind da.
Schnell mal was auf Lochraster aufgebaut.
Blödes 2mm Raster. Musste Adapter bauen.
Mit der DemoSoftware lief es auf Anhieb.
Empfang ist erstaunlich gut. DAB+ geht super. FM ist extrem verstört.
Aus dem I2S kommt 48kHz, 256fs aber es sind real nur 16 Bit.
Grüße

: Bearbeitet durch User
von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
3162534373 .. schrieb:
> Empfang ist erstaunlich gut. DAB+ geht super. FM ist extrem verstört.

Welche Antenne hast du verwendet? Für DAB und FM gibt es Kombiantennen.

Bei mir war DAB+ auch sehr gut empfangbar solange ich keine kleinen 
Schaltregler im Umkreis von 10m am laufen hatte. Diese 78XX im TO220 
Format haben mir jeglichen DAB Empfang zerstört. Ohne Störsender in der 
Nähe hatte ich dann aber sogar im Keller noch einigermaßen Empfang.

Gute Erfahrungen habe ich übrigens mit der aktiven DVBT/DAB Antenne von 
AllinOne gemacht.

von 3162534373 .. (3162534373)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab momentan einfach eine DVB-T Zimmerantenne dran.

Ein Problem hab ich.
Ich hab einen ext. DAC angeschlossen, CS4334K.
Sobald irgendwas am SDATA Anschluss vom Keystone daran ist, wird der 
Empfang schlechter. Bei schlechten Sendern geht es dann ganz weg. Selbst 
bei stärkerem Empfang hört man Artefakte die sonst nicht zu hören sind.
Komischerweise passiert das ganze sogar, wenn ich z.B. nur den Tastkopf 
vom Oszi an den SDATA Pin vom Keystone halte.

Jemand ne Idee?
Grüße

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Solche Probleme hatte bzw. hab ich auch.

Der DAB Empfang ist extrem anfällig für jegliche Art von Störungen.

Da hilft nur alles penibel abschirmen und eventuell den Filter vom 
Antenneneingang anpassen. I2S Leitungen gut schirmen und an einen 
massiven GND Punkt anbinden. Auf Lochraster wirst du aber immer wieder 
Probleme haben, allein schon wegen den Kupferaugen wo sich HF super 
austoben kann.

Aus dem Grund ist das Projekt DAB bei mir auch erstmal in den 
Hintergrund gerutscht.

von 3162534373 .. (3162534373)


Bewertung
1 lesenswert
nicht lesenswert
Hi,
der Chip stört sich selber wenn etwas am I2S dran ist.
Ohne I2S geht 38% Empfang einwandfrei ohne Störungen.
Mit I2S braucht es mindestens 55%, dann geht es auch ohne Ausetzer.
Vielleicht kann man da noch was mit Filtern machen.
Auf jeden Fall ist es voll lustig bei grenzwertiger Empfangsstärke 
(38%).
Sobald auf SDATA was kommt, wird der EMpfang schlechter und es stottert.
Dann wenn kurz mal Pause ist, weil garnix mehr geht, dann kommt der 
Empfang wieder und es läuft wieder für 2 Sek.
Immer im wechsel ;)

Man kann sich nun entscheiden.
Radio mit Super AudioDAC und dafür braucht man auch Super Pegel.
Oder intern Audio mit besserem EMpfang.

Oder hat jemand noch eine Idee?

Ich muss dazu sagen, dass ich hier wenig Empfang habe.
Drei kommerzielle Radios haben deutlich schlechter funktioniert.
Eins hat noch nicht mal einen Sender gefunden.
Das zweite nur 2 Sender abspielbar. Das dritte 10 abspielbare Sender.
Da kann man über Keystone garnicht meckern.
76Channels gefunden. Davon einige Datenkanäle und IIS Testkanäle.
Aber sicher 30 abspielbare Musik.

Grüße

von 3162534373 .. (3162534373)


Bewertung
1 lesenswert
nicht lesenswert
Hi,
Abhilfe haben Serienwiderstände geschaffen.
330 Ohm in MCLK und BCLK.
1 kOhm in LRCLK und SDATA.
Grüße

von Eugen K. (sieukrem)


Bewertung
0 lesenswert
nicht lesenswert
Hi 3162534373,
> Mit der DemoSoftware lief es auf Anhieb.
welche DemoSoftware meinst du?
Grüße

: Bearbeitet durch User
von 3162534373 .. (3162534373)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
TestKeyStoneRadio.

http://www.cartft.com/de/catalog/il/1618

Grüße

von Laura T. (laura_t)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
Forgive me but I only speak English. But I have purchased these Keystone 
DAB DAB+ FM T2-L4A-8650C Module (5 in a pack) with the intention of 
making a couple of radios. Yesterday after doing a great deal of 
searching the internet for installation help, I came upon this blog. I 
am new to all of this and after reading all the problems that you 
experienced techies are having I feel that this project is way above my 
newbie experience.
I will no longer need these modules, if anyone is interested and would 
like to purchase them please contact me. I have 5 for sale.
my email address is laura3319@hotmail.co.uk

Thank you.

von Christian N. (christian_n226)


Bewertung
0 lesenswert
nicht lesenswert
hallo hat jemand das modul als usb standalone gebaut und würde mir ein 
paar fragen beantworten
mfg christian

von Rainer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

schön zu sehen, dass sich immer noch jemand mit dem Modul beschäftigt !

Ich habe eine kleine Platine entwickelt, auf der sich nur das Modul, die 
3 Spannungsregler und die Antennenbuchse befinden. Die analogen 
Audioanschlüsse, RX/TX der seriellen Schnittstelle und SDA/SCL der I2C 
Schnittstelle sind auf Pin-Leisten herausgeführt.
Das Ganze lässt sich über einen Bluetooth Adapter vom PC oder Smartphone 
bedienen.
Ich habe aber auch einen Arduino programmiert, der über RX/TX oder I2C 
das Modul steuert. An dem Arduino hängt ein kleines Display und ein paar 
Tasten lässt sich das Modul auch als stand-alone DAB Radio betreiben.

Die Frage nach USB kann ich so nicht ganz verstehen, soll das Modul über 
einen USB/Serial Wandler betrieben werden ?

Kannst Du die Fragen einmal präzisieren ?

Viele Grüße, Rainer

von Castle R. (castle)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rainer,
das hört sich sehr Interessant an. :)
Ich wäre an der Library für das DAB Modul und an dem Programm 
interessiert. Wie hast du die Antennenanpassung auf deiner Platine 
gemacht?

von Christian N. (christian_n226)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rainer

ich möchte das modul mit meinen rasp 2 betreiben
da meine uart schon belegt sind wollte ich ein pl 2303sa verwenden.
über deine hilfe würde ich mich sehr freuen
auch kontakt per email möglich

danke im vorraus  mfg

von Rainer G. (p-force)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

nach langer Ruhe nun gleich mehrere Beiräge an einem Tag !

@Uwe :

zur Antennenanpassung gibt es einen Beitrag von Jörg H. am 4.2.2014. Ich 
habe mir keine größeren Gedanken gemacht und den Anschluss wie beim 
Monkeyboard dicht an das Modul gesetzt ( siehe Bild ).
Eine Lib für den Arduino habe ich nicht gemacht, da ich immer noch an 
dem Code arbeite und einiges auch von meiner Anwendung abhängt. Im 
Prinzip muss man 2 Dinge machen : einmal die Kommandos an das Modul 
senden ( siehe Beiträge von Eugen Kremer am 18.12.2014 und von Gerrit W. 
am 19.12.2014 ) und die Antwort entsprechend verarbeiten.

Ich habe mal Code Schnipsel für I2C angehängt :
Am Anfang stehen die Kommandos, die umgesetzt worden sind, wegen des 
kleinen Speichers des Arduinos gibt es keine Screenshow.
Dies sind die beiden wesentlichen Teile :
Module_Send_Command sendet ein Kommando an das Module, in 
CMD_16_Byte_Response werden die Daten für die Kommandos ausgelesen, die 
bis zu 4 Bytes an Daten liefern.
Der Rest ist Ablaufsteuerung und Fehlerbehandlung sowie 
Bedienungsinterface.

Die Reihenfolge der Kommandos sind ganz gut in einem Beitrag von 
Monkeyboard beschrieben, habe den Text gerade nicht zur Hand.

@Christian

Beim Raspi kann ich Dir leider nicht weiterhelfen.
Im Beitrag von Jörg H. am 1.2.2014 gibt es aber ein Beispiel für die 
Schaltung mit dem PL2303. Im Prinzip simulieren diese Module zum Rechner 
hin ein serielles Interface ( "COM Port" in Windows ) und zum Modul 
verhalten sie sich wie eine serielle Schnittstelle, diese muss auf 
57600,N,1 gestellt sein und nur 3,3 Volt Pegel liefern. Über diese 
Schnittstelle laufen dann die Kommandosm die in der Excel Datei 
beschrieben sind und zum Teil in meinen Programm umgesetzt sind.

Viele dieser Informationen habe ich aus diesem Thread, ohne den wäre ich 
nicht weitergekommen, grosses Lob an die Beteiligten !

Viel Erfolg,

Rainer

von Lars Heineken (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal vielen Dank für die vielen hilfreichen Informationen auf dieser 
Seite. Ich habe vor einigen Tagen mein Monkeyboard bekommen und 
interface es mit einem Arduino Mega.

Monkeyboard stellt eine Dummy-Firmware für den PIC auf dem Board zur 
Verfügung, mit dem der Keystone lediglich gebootet wird. Anschließend 
soll man per UART Befehle an den Keystone schicken.

Da das Modul (laut aussage Support) 5V-tolerant ist werden keine 
Levelshifter benötigt.

Zum Test habe ich den PIC unverändert gelassen und mit dem Arduino die 
Kommunikation belauscht während das Modul am Linux-PC mit der 
Demo-Software gelaufen ist. Empfangsseitig funktioniert das sehr gut, 
hier der Mitschnitt:
RX: FE 00 00 01 00 00 FD // System_GetSysRdy
RX: FE 01 16 01 00 00 FD // Stream_GetTotalProgram
RX: FE 01 16 01 00 00 FD // ..
RX: FE 01 0C 01 00 01 08 FD // Stream_SetVolume
RX: FE 01 09 01 00 01 01 FD // Stream_SetStereoMode
RX: FE 01 00 01 00 05 01 00 01 6B 48 FD // Stream_Play (FM, 93.0 MHz)

Sendeseitig ist allerdings Essig.. :-(

Nach dem Flashen der Dummy-Firmware startet der PIC das Modul und ich 
beginne mit der Initialisierungssequenz:
CMD: SYSTEM_GetSysRdy
TX: FE 00 00 01 00 00  FD
RX: FE 00 01 01 00 00 FD

CMD: STREAM_GetTotalProgram
TX: FE 01 16 01 00 00 FD -> 50 ms no answer -> retry
---x--- 17 time-outs
CMD: STREAM_GetTotalProgram
TX: FE 01 16 01 00 00  FD
RX: FE 01 16 01 00 04 00 00 00 00 FD

CMD: Stream_SetVolume
TX: FE 01 0C 01 00 01 09 FD -> 50 ms no answer -> retry
---x--- 14 time-outs
CMD: Stream_SetVolume
TX: FE 01 0C 01 00 01 09 FD
RX: FE 00 02 01 00 01 00 FD -> command failed -> retry

Die Kommunikation erzeugt Unmengen an Timeouts und wenn überhaupt was 
vom Keystone empfangen wird dann meist Fehlermeldungen.

Wenn man beim Arduino TX mit RX verbindet (loop device) dann 
funktioniert senden und Empfangen einwandfrei. Der Arduino hat also 
schon mal kein Problem beim Senden.

Ich vermute daher irgend ein elektrisches Problem bei der Sendeseitigen 
Anbindung (TX Arduino → RX Keystone).

Hat jemand eine Idee wie man das Problem weiter untersuchen könnte?

von Peer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

hast du die Dummy-Firmware in den PIC geflashed?

http://monkeyboard.org/images/products/dab_fm/Dummy%20DAB.zip

Wenn du den UART direkt benutzt, musst du das vorher machen.

Gruß

Peer

von Peer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi, ist noch etwas früh..., bist du sicher, dass die Dummy-Software 
aktiv ist (um Linux-PC über USB funktioniert das Modul jetzt nicht 
mehr)?

Gruß

Peer

von Lars Heineken (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Peer,

Die Dummy-Firmware ist geladen. Das Radio funktioniert an USB nicht 
mehr.

Ich habe mir den Sourcecode der Dummyfirmware angesehen. Es sind nur 
wenige Zeilen.
Es wird der Radiochip gestartet und anschließend der TX-Pin auf 1 
gesetzt, dann verharrt er in einer Endlosschleife.

Frage mich nun, ob dieses "auf 1 setzten" des TX-Pins genügt um den 
Arduino dann auf der gleichen Leitung senden zu lassen?

Wenn diese "1" die UART-Pegel verschiebt kann der Arduino vielleicht 
nicht richtig senden?

Grüße,

Lars

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

anscheinend haben andere auch schon ein ähnliches Problem mit dem 
Arduino und dem Monkeyboard gehabt:

http://forum.arduino.cc/index.php?topic=257874.0

Hast du ein Oszilloskop zur Hand und kannst die Pegel anschauen?
Ist die serielle Schnittstelle korrekt initialisiert? 57600, 8, N, ,1?

Der Mega hat 16MHz? Dann schau mal in diese Tabelle 
http://wormfood.net/avrbaudcalc.php?postbitrate=57600&postclock=16

Der Baudratenfehler lkiegt bei 57600 baud schon bei 2,1%.

Vielleicht solltest du einen anderen Quartz verwenden.
Mit 14.7456 Mhz würde die Baudrate exakt passen.

Alternativ kannst du ja mal das im Arduino Forum genannte 1ms Delay 
versuchen.

Gruß

Peer

von Rainer G. (p-force)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei mir funktioniert die Lösung in der angehängten Datei einwandfrei mit 
dem Nano, Leonardo und Pro mini. Die Datei gilt für den Leonardo mit der 
Serial1 Schnittstelle.

Ich sende das Kommando an das Modul ( mit 1 msec Delay zwischen den 
Writes ) und warte in einer Schleife auf die Antwort.
Mit der Zahl der Schleifen und der Wartezeit zwischen den Versuchen kann 
man einen guten Kompromiss zwischen Sicherheit und Schnelligkeit. Das 
Warten gilt als beendet wenn sowohl 0xFE und 0xFD empfangen werden oder 
die Zahl der erlaubten Schleifendurchläufe erreicht ist.

Beim Aufruf der Funktion kann man die Wartezeit und die Zahl der Loops 
individuell an den Befehl anpassen, manche Befehle brauchen länger als 
andere, bis die Antwort bereitsteht. Wenn der Debug Parameter auf "true" 
steht, kann man im Monitor die Zahl der benötigten Schleifen beobachten 
und die Zahl und die Wartezeit anpassen.

Das funktioniert auch mit den Befehlen, die Texte zurückgeben, auch die 
MOT Befehle arbeiten, habe diese aber nicht weiter getestet, da zu wenig 
Speicher für die Verarbeitung bereitsteht.

Viel Erfolg, Rainer

von Lars H. (lars_h)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Peer,

Inzwischen haben ich mit der Dummy-Firmware gespielt und sichergestellt, 
dass der TX-Pin des PIC als Eingang konfiguriert ist. Ändert am 
Verhalten leider nichts.

Das mit dem Quarz ist interessant. Es würde erklären warum der Arduino 
sich selbst empfangen kann aber das Senden an den Keystone klemmt.

Der Austausch des Quarzes ist ja elektrisch einfach zieht aber wohl 
etliche Software-Änderungen hinter sich her (wegen des Bootloaders).

Aus purem Frust habe ich dann einfach die Arduino-Schnittstelle mit 
etwas weniger Geschwindigkeit initialisiert:
// Serial2.begin(57600); // alt
Serial2.begin(57400); // neu
Ich dachte erst es kompiliert nicht einmal aber .. es funktionierte 
alles auf Anhieb! Kein einziger Kommunikationsfehler, alles perfekt .. 
ungläubiges Staunen

Dann habe ich diese Seite gefunden:
https://www.pjrc.com/teensy/td_uart.html
Arduino at 57600 Baud - It's Actually 58824
Arduino creates the same baud rates as Teensyduino, except at 57600, where Arduino's error is +2.12%.
When communicating with an Arduino board, the combined +2.12% and -0.79% error is too much.
Successful communication with Arduino requires 58824 baud.

void setup() {
  Serial1.begin(58824);  // Arduino 57600 is actually 58824
}

Alternately, if you edit the Arduino code to use "Serial.begin(57601)", Arduino will create 
a baud rate with only -0.79% error, which exactly matches Teensy.

Ich habe mich dann für die Initialisierung wie dort empfohlen 
entschieden:
Serial2.begin(57601);

Unglaublich, vielen vielen Dank für den Tipp mit der Baudrate !!

Viele Grüße,

Lars

von Niels (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hello,

I use the monkeyboard DAB+ standalone in my car with bluetooth 
connection to my phone and control it with the app which is made by 
Walter.

I've change the firmware with the next options:

1. when pcb is power-up, the PIC controller sends commands to the 
keystone for start play the last tuned station. (last choosen by the 
adroid app) The USB is still working normal as the original firmware 
after the startup sequence.

2. when pin 6 of the PIC18F14k50 is making high (>2,6v), the 
USB-->rs2332 is disabled and bluetooth control is possible. (RX/TX of 
the HC-05 is parallel connected to the keystone). I've connect the HC-05 
pin32 to pin6 of PIC18F14k50.


Best Regards,

Niels

von Lars H. (lars_h)


Bewertung
0 lesenswert
nicht lesenswert
Rainer G. schrieb:

> bei mir funktioniert die Lösung in der angehängten Datei einwandfrei mit
> dem Nano, Leonardo und Pro mini. Die Datei gilt für den Leonardo mit der
> Serial1 Schnittstelle.
>
> Ich sende das Kommando an das Modul ( mit 1 msec Delay zwischen den
> Writes ) und warte in einer Schleife auf die Antwort.
> Mit der Zahl der Schleifen und der Wartezeit zwischen den Versuchen kann
> man einen guten Kompromiss zwischen Sicherheit und Schnelligkeit. Das
> Warten gilt als beendet wenn sowohl 0xFE und 0xFD empfangen werden oder
> die Zahl der erlaubten Schleifendurchläufe erreicht ist.

Hallo Rainer,

Probier' doch auch mal die Initialiserung mit
Serial1.begin(57601)
Vermutlich brauchst du danach keinerlei delays mehr zwischen den writes. 
Ich sende das ganze Kommando am Stück
Serial2.write(buf, len);
Mit der richtigen Baudrate klappt das jetzt perfekt.

Mit freundlichen Grüßen,

Lars

von Niels (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Forget to attache the firmware ;-)

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Hat eigentlich schon jemand mal versucht die MOT Daten zu lesen und zu 
interpretieren?

Ich sitze gerade vor dem Hex Dump und versuche anhand der EN 301 234 die 
header-Daten zu lesen. Irgendwie stimmt da mit den bisherigen Bemühungen 
nichts mit dem überein, was in der Norm steht.

Update: habe den Header Core ab dem 9. Byte der Daten gefunden und die 
stimmen mit der Norm überein. Die 9 Bytes davor scheinen eine Kopie zu 
sein - zumindest findet man die Transport ID darin wieder.

: Bearbeitet durch User
von A. Horn (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Könntest du so ein Stück Dump mal posten?
Evt. mit dem, was du bereits herausgefunden hast?

von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die EN 301 234 
http://www.etsi.org/deliver/etsi_en/301200_301299/301234/02.01.01_40/en_301234v020101o.pdf 
schreibt zu der Objekt Beschreibung auf seite 12ff: "An object consists 
of an ordered collection..."

"Header core: The header core contains information about the size and 
the content of the object, so that the receiver can determine whether it 
has system resources to decode and present the object or not."

ein Objekt setzt sich nach der Beschreibung wie folgt zusammen:
  7 bytes       variable      variable
header core header extension object body

Wobei der header core zuerst einmal der interessante Teil meiner Suche 
war, da hier der content type beschrieben wird. In ihm steht nämlich, 
was da gerade übertragen wird. Vorrangig interessiere ich mich für die 
Slideshow - also die Bilder die mit dem Programm übertragen werden.

Der content type ist im header core beschrieben und setzte sich aus 
content type und content subtype zusammen. Daneben gibt es auch 
gleich Informationen zur Größe des Objekts (Bild) und die Größe des 
Headers die für mich von Interesse sind. Die 7 Bytes teilen sich wie 
folgt auf:
 28 bits    13 bits     6 bits         9 bits
body size header size content type content subtype
b55   b28 b27     b15 b14       b9 b8           b0

Zuerst habe ich versucht die body size am anfang der MOT Daten, 
beginnend mit 73h zu suchen...
## 00311,726 received MOT packet; returncode: 005D; cmdtype: 03; cmdid: 00; sernr: 0A; length: 005D
DS AT DG SEGNR TR-ID SN DATA...
3C 00 03 80 00 F4 40 80>73<60 80 00 12 F4 40 00 <...ô@s`..ô@.
4A 00 04 D7 80 25 04 01 CC 2C 00 32 30 31 36 2D J..×%..Ì,.2016-
30 31 2D 32 36 2E 31 38 2D 34 30 2D 34 35 2E 37 01-26.18-40-45.7
30 33 34 33 32 32 36 33 35 38 32 30 34 39 34 33 0343226358204943
39 33 2E 6A 70 67 D0 0A 69 6D 61 67 65 2F 6A 70 93.jpgÐ.image/jp
65 67 85 00 00 00 00 4A 7F 46 00 05 9C          eg....JF..œ

Laut der Beschreibung im Excel Sheet, welches auch hier auf der Seite zu 
finden ist, beginnen die Daten nach der Seriennummer des empfangenen 
Pakets. Das wäre also das 9. Byte (73h).
Nimmt man sich hier die ersten 28 Bits heraus (73h, 60h, 80h 00H >> 4) = 
b0111001101100000100000000000 = d120981504 merkt man recht schnell, das 
da kein Bild mit >11Mb kommen wird.

Da ich im Hex Dump ja bereits im Klartext was von image/jpeg lesen 
konnte und der Data group type (Byte 3) auf einen Header hin deutet 
(03h), habe ich einfach mal die Daten der ersten 32 Bytes als binäre 
Ziffernfolge ausgeben lassen und nach der auf Seite 13 beschriebenen 
Bitfolge für ein image/jpeg (JFIF) gesucht die da wäre:

000010 für image und
000000001 für ein JFIF
also: "000010000000001"

Treffer!
   3C      00      03      80      00      F4      40      80      73      60      80      00      12      F4      40      00   
00111100000000000000001110000000000000001111010001000000100000000111001101100000100000000000000000010010111101000100000000000000
   4A       00      04      D7       80       25        04       01          CC          2C      00      32      30      31      36      2D   
01001010[0000000000000100110101111000][0000001001010][000010000000001][11][001100][0][0101100]000000000011001000110000001100010011011000101101

Also gleich die Probe ob die Daten irgendwie richtig sind. Die 13 Bits 
davor wären die header size b0000001001010 = d74 - plausibel.
Davor die 28 Bits die body size b0000000000000100110101111000 = 19832 
also 19,8K - ebenfalls plausibel.

Beleuchte ich also mal die Header extension - erst mal die 2 bits PLI 
(Parameter Length Indicator) b11 gefolgt von 6 Bits der ParamId 
(Parameter Identifier): b001100, dem 1 Bit Ext (ExtensionFlag) b0 
und - weil Ext = 0 - den 7 Bits DataFieldLength Indicator b0101100 = 
d44, also 44 Bytes an Daten, die jetzt folgenden Inhalt haben:
00 32 30 31 36 2D 30 31 2D 32 36 2E 31 38 2D 34 .2016-01-26.18-4
30 2D 34 35 2E 37 30 33 34 33 32 32 36 33 35 38 0-45.70343226358
32 30 34 39 34 33 39 33 2E 6A 70 67             20494393.jpg

Die restlichen Daten dahinter ignoriere ich jetzt mal, weil die mir 
nicht ganz klar sind. Die Doku dazu ist auch äußerst verwirrend. hier 
findet man wohl noch einen Zeitstempel und mehr.
Sieht meiner Meinung nach jetzt schlüssig aus :O) Kommt halt erst 8 
Bytes später, als erwartet. Was in den anderen 8 Bytes davor steht, ist 
mir noch nicht ganz klar und sollte es auch hier so nette ungerade 
Bitfelder geben sollen, kann man sich nicht darauf verlassen, das die 
Daten immer erst ab dem 9. Byte beginnen.

Nimmt man das nächste Paket mit derselben Transport id (F440h), geht 
es auch hier erst ab dem 9. Byte los, denn hier sticht die magische Zahl 
ffd8h ins Auge - damit beginnt ein JPEG. 
https://de.wikipedia.org/wiki/JPEG_File_Interchange_Format
## 00313,006 received MOT packet; returncode: 00EC; cmdtype: 03; cmdid: 00; sernr: 15; length: 00EC
DS AT DG SEGNR TR-ID SN DATA...
3C 00 04 00 00 F4 40 00 74 80 00 00 12 F4 40 03 <....ô@.t...ô@.
F5 FF D8 FF E0 00 10 4A 46 49 46 00 01 02 00 00 õÿØÿà..JFIF.....
01 00 01 00 00 FF DB 00 43 00 04 03 03 04 03 03 .....ÿÛ.C.......
04 04 04 04 05 05 04 05 07 0B 07 07 06 06 07 0E ................
0A 0A 08 0B 10 0E 11 11 10 0E 10 0F 12 14 1A 16 ................
12 13 18 13 0F 10 16 1F 17 18 1B 1B 1D 1D 1D 11 ................
16 20 22 1F 1C 22 1A 1C 1D 1C FF DB 00 43 01 05 . ".."....ÿÛ.C..
05 05 07 06 07 0D 07 07 0D 1C 12 10 12 1C 1C 1C ................
1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ................
1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ................
1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C FF ...............ÿ
C0 00 11 08 00 F0 01 40 03 01 22 00 02 11 01 03 À....ð.@..".....
11 01 FF C4 00 1F 00 00 01 05 01 01 01 01 01 01 ..ÿÄ............
00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 ................
09 0A 0B FF C4 00 B5 10 00 02 01 03             ...ÿÄ.µ.....

Data group type (Byte 3) hier (04h) was für den body der Objektdaten 
spricht - alles richtig bisher.
Weiter bin ich heute aber nicht gekommen. Der nächste Schritt ist alle 
Segmente derselben Transport id und deren Pakete zusammenzusetzen. Ein 
Ende eines Pakets erkennt man am gesetzten Bit 7 in der Seriennummer, 
ein Ende des Segments am gesetzten Bit 15 der Segmentnummer.
Hat man alle diese Daten zusammen, hat man den gewünschten Inhalt - 
vielleicht.

Im Anhang habe ich mal einen Dump den ich während ich hier geschrieben 
habe mitgeschnitten habe. Es sind nur Pakete vom Comand type 03h, die 
Fehler habe ich nicht mitgeschrieben.

: Bearbeitet durch User
von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Ich hole mir die Daten alle 250ms  mit der Funktion MOT_GetMOTData

FE 03 00 n++ 00 01 01 FD (1: Get MOT data with application type)

wobei n++ die Serial number ist die ich bei jeder Anfrage 
inkrementiere. Dabei hole ich solange Pakete ab, bis das Modul mir mit

FE 00 02 xx xx xx xx

antwortet. Ich vermute, dass man die Daten noch schneller abholen 
könnte, aber das gibt der Raspberry Pi im Moment noch nicht her.
Einen Beweis dafür, das die SPI Schnittstelle nicht funktioniert sehe 
ich in der Tatsache begründet, dass das Modul auf die Anfrage 
MOT_GetPacketRawLength

FE 03 03 xx 00 00 FD

mit einem fail antwortet.

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Nächster Nachtrag:

1. Die Seitenangaben im Beitrag stimmen nicht mit dem von mir verlinkten 
Dokument überein. Ich hatte hier noch mit der Version V1.2.1 von 1998 
gearbeitet. Die Seiten sind also verschoben. Zudem fehlen Tabellen die 
im meiner Version noch drin sind.

2. Bis auf 2 Bytes sind die letzten paar Bytes auch geknackt. Es geht 
nämlich einfach mit weiteren Parametern weiter.

Hinter dem Parameter b001100 -> ContentName geht's weiter mit

D0 0A
11      <- 7  or 15 bits DataFieldLengt Indicator
010000  <- ParamId: "MimeType"(Tabelle 2 - Seite 34)
0       <- Ext 0 = 7 bits DataFieldLengt Indicator
0001010 <- 10 Bytes DataField

-> "image/jpeg"

Dahinter geht's weiter mit
10 000101 0 0000000000000000000000000000 TriggerTime: 0
01 001010 0 1111111 Priority: 7fh
01 000110 0 0000000 reserved for MOT protocol extensions

und dann ist der Header laut Beschreibung in der header size zu ende. 
Bleiben 2 Bytes übrig: 05 9C
Ich vermute einfach mal, das es eine 16 Bit CRC ist, geht aber aus der 
Doku auch nicht eindeutig hervor.

: Bearbeitet durch User
von Peer T. (peer_t)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Guido,

ich habe vor Jahren eine Java Software für das MB geschrieben, die 
Slideshow und Journaline unterstützt. TPEG Dekodierung wäre auch 
möglich, aber der Standard kostet sehr viel Geld.

Du solltest dir noch die ts_101759v010201p ansehen.

Die 2 Byte sind eine Checksumme:

Seite 9 in dem Dokument:

The packet_CRC field is calculated, according to the CCITT CRC-16 
polynomial, over the entire packet, with the CRC register initialized to 
all 1s and the resulting CRC inverted.

Anbei noch ein Screenshot von der Software und weiterhin viel Spaß beim 
"Bitpopeln".

Gruß

Peer

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Hi Peer,

danke für die Info! Noch 'ne Tabelle ;O)

Kannst Du mir noch was zu den 9 Bytes am Anfang sagen - ist das normal 
oder ggf. vom Modul?

Gruß,

Guido

von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang das ganze nochmal bildlich

Der rote Bereich ist noch unklar. Wäre toll, wenn hierzu vielleicht 
jemand was schreiben oder das ganze erklären würde. Mit dem letztem 
Kommentar von Peer komm ich nicht weiter.

von Peer T. (peer_t)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

habs mal an deinem Beispiel erklärt.
Du musst dir die Standards durchlesen :-)

Gruß

Peer

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Hi Peer,

ich lese ja - die TSI Normen sind in etwa genauso schlimm wie die DIN 
Normen..

"Für Detaillierte Informationen siehe Tabelle 2 in Norm bla bla bla" 
usw. Man hat ganz schnell mehr als drei Dokumente gleichzeitig offen und 
verliert schnell mal den Faden finde ich.

Ich hatte schon versucht mit der 73h die in der von Dir genannten Norm 
Beschreibung anzuwenden, aber ich hab's irgendwie nicht geblickt.

Danke für das Beispiel, ich versuch's also nochmal und lese noch 
aufmerksamer.

Gruß,

Guido

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
@Peer

[Klugscheißer Modus on]
Hexadezimal 0x60 ist Binär b1100000 und nicht b10100000 :O)
[Klugscheißer Modus off]

Soviel zum Thema "lesen" ;O)

Ansonsten versuche ich gerade das ganze noch mal durchzugehen und stoße 
bei Deinem Beispiel auf Ungereimtheiten. Aber erst einmal Danke, das Du 
dieses Beispiel gegeben hast.

Dein Beispiel endet nach der Transport ID mit "End User Adress = 0" und 
es würde noch ein Byte übrig bleiben "4A"

Wenn ich die Doku richtig interpretiere steht nach der Transport ID:
for (n=0;n<length_indicator-2;n++) {
  end_user_address_byte
}

wobei length_indicator = 2 (2 Bytes für Transport ID) ergo die 
Schleife nicht durchlaufen wird da die Bedingung n=0 < 0 == false ist.

Wo jetzt im Dokument die data_group_length für das 
MSC_data_group_data_field hergezaubert wird, ist mir auch unklar.

Blieben also noch die letzten beiden Bytes "00 4A" übrig aus der MSC 
data Group übrig. Vielleicht die 16 CRC über diesen Bereich?

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Hi,



Die End User Address gibt es nicht, wenn Länge = 2 ist.

ETSI TR 101 497 V1.1.1 Seite 28

A.1.2.2 Example 2: MOT object, segmentation

Length indicator
0010

Two bytes of TransportId, no End user address

Das heisst in deinem Beispiel ist 0x004A bereits der Anfang der MSC Data 
Group

00 = 00000000b
000 = Repetition Count
00000 = Segmentsize b12-b8

4A = Segmentsize b7 - b0

4D78 = Body Size

usw.

Gruß

Peer

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
0x004a ist noch der Segmentation Header den ich bisher offensichtilch 
auch übersehen habe - also die fehlenden 16 Bits.

Dann passt es jetz auch weil die CCITT-CRC-16 von:

"73C0800012F462004A0004BDA0250401
CC2C00323031362D30312D32362E3231
2D34382D31332E363435323734313031
393131353231313036342E6A7067D00A
696D6167652F6A70656785000000004A
7F4600"

= 0xFA63 und invertiert = 0x059c ist, was identisch mit den von mir 
gegebenen Beispiel weiter oben ist schwitz

Es wird übrigens ein klein einleuchtender, wenn man die Diagramme in der 
EN 301 234 von unten nach oben liest denn unten ist das, was man 
bekommt und oben ist das, was man haben will.

Gute - Typ 0x03 Header einmal erfolgreich kapiert. Nachher geht's weiter 
mit dem interessanteren 0x04 Body

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
hmm... es wird nicht einfacher irgendwie...

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Nächste Erkenntnis…

Die Body Daten:

Vom Keystone Modul bekommt man Daten mit der Segment Nummer z.B. „F4 50“ 
und einer Seriennummer. Die Seriennummer ist 8 Bit breit und ist das 
höchste Bit 7 gesetzt, ist es das letzte Paket für dieses Segment.

Mir ist nicht bekannt, ob dies für alle DAB(+) Module gilt oder nicht, 
da die ETSI Norm eigentlich nur die Segmente beschreibt.

Das Element mit der Transport ID 0xF450 habe ich mir jetzt als Beispiel 
genommen, weil dieses Element im Dump offenbar vollständig vorhanden 
ist.

Im ersten Teil des Body-Segments in dem sich auch die Magische Zahl 
0xFFd8 befindet, hat auch einen Header – die darauffolgenden Blöcke 
(Sequenzen, Pakete) scheinen keinen Header zu haben, den hier kommt nur 
Mist raus wenn man versucht hier Daten zu interpretieren.

Wo befindet sich hier die CRC für dieses Segment? Im letztem Teil des 
Blocks vor dem Wechsel auf das nächste Segment? -> 0x839C (Paket SN: 04) 
eher nicht, weil das stimmt vorne und hinten nicht beim berechnen der 
CRC. Vor allem, weil der Segment Header was von 1013 Bytes erzählt, das 
Segment aber 2045 Bytes lang ist?!?!?

Das nächste Segment hat offenbar wieder einen Header – zumindest 
„könnte“ man dies anhand des Wertes 0x74 der auch bei anderen 
Segmentwechseln zu sehen ist interpretieren. Die Segmentnummer findet 
man ebenfalls nach einem Wechsel in der Segmentnummer.

Liest hier noch jemand mit?

von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Fast!

von Guido .. (2mils)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
YES! Done!

von Lars Heineken (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gratuliere, gute Arbeit!

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Danke! Und vielen Dank auch an Peer für die Unterstützung.

Wie ich (wie weiter oben beschrieben) bereits Vermutet habe, sendet das 
KeyStone 8650 Modul die Segmente jeweils nochmals unterteilt in 
kleineren Blöcken zu. Daher auch die vom Modul gesendete Seriennummer 
die sich identisch zu der Segmentnummer verhält.

Man muss sich also erst einmal ein Segment aus den einzelnen Blöcken 
zusammenbauen. Der erste Block mit der Seriennummer 0x00 enthält den 
Data Group-, Session und Segmentation Header. Die darauffolgenden Blöcke 
haben nur die Rohdaten ohne irgendwelche Header. Der letzte Block mit 
gesetztem 7. Bit enthält am Schluss die CRC (falls das Flag im ersten 
Block gesetzt war)
SEGMENT SERIAL
0x0000  0x00    Header + Daten
0x0000  0x01    + Daten
0x0000  0x02    + Daten
0x0000  0x03    + Daten
0x0000  0x84    + Daten + CRC

0x0001  0x00    wie oben
...
0x8019  0x84    + Daten + CRC

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
Was mich noch stört ist die NULL am Anfang des Dateinamens. Scheint kein 
Fehler zu sein, weil sich die Header extensions einwandfrei auslesen 
lassen. Nur warum macht man sowas??

von Guido .. (2mils)


Bewertung
0 lesenswert
nicht lesenswert
hmm...

Besteht der MOT Header immer nur aus einem Segment..

Nein, Frage falsch gestellt im Zusammenhang mit dem KeyStone 8650 
Module...

Kann der MOT Header aus mehreren Paketen bestehen? Also auch in ein 
Segment mit der Nummer x und mehreren Paketen mi der Seriennummer y++?

Ich versuche gerade an den "Echtzeitdaten" herauszufinden, wo mein 
Header und wo der Body beginnt und versuche hier alle Eventualitäten mit 
einzubeziehen. Diese Eventualitäten beinhalten halt auch, das die Pakete 
nicht serialisiert eintreffen weil ich meine schon Pakete gesehen zu 
haben, wo die Segmentnummer kleiner ist als die vorherige und auch die 
Seriennummer des Pakets nicht in aufsteigender Reihenfolge eintreffen.

Alles natürlich mit derselben Transport ID

von Lars (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Inzwischen bin ich ein gutes Stück weitergekommen und kann auch das VFD 
vom Originalradio über den ATMega ansteuern.

Radio im FM Betrieb steuern ist kein Problem, nun wollte ich auf dem 
Display "STEREO" anzeigen wenn FM Stereo empfangen wird.

Dafür frage ich den Keystone zyklisch via STREAM_GetStereo ab. 
Allerdings liefert diese Funktion immer 0 (Stereo) selbst wenn gar kein 
Sender empfangen wird.

Hat jemand Erfahrung mit dieser Funktion? Versuche ich etwas 
unmögliches?

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Deutschlandfunk sendet mit Joint Stereo.

Mein Modul sendet für Deutschlandfunk auch Stereo, sobald ich die 
Antenne löse. Das scheint also normal zu sein. Wenn du 
STREAM_GetPlayStatus abfragst, ist der aber wenn kein Signal empfangen 
wird 2=TUNING.

von Lars (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Peer,

Danke für die schnelle Antwort. Ich betreibe das Module momentan nur im 
FM-Modus (da ich z.Z. in Japan lebe und dort keine DAB augestrahlt 
wird).
Immerhin wurde hier vor kurzem das FM-Band erweitert sonst gäbe es auf 
den üblichen FM-Frequenzen (78-108 MHz) auch nichts zu empfangen..

Zurück zum Keystone. Obwohl man die Umschaltung auf Stereo akustisch 
hört (zumindest bilde ich mir das ein) kommt immer "0" zurück. 
Allerdings ist der Empfang an meinem Schreibtisch grenzwertig und genügt 
nicht immer für Stereo. Gerade da hätte ich erwartet, dass Mono gemeldet 
wird.

Darf ich fragen wie sich dein Modul im FM-Betrieb verhält?

von Lars (Gast)


Bewertung
0 lesenswert
nicht lesenswert
.. sieht so aus als ob ich aufmerksamer hätte sein sollen. Habe die 
falsche Kommando-Sequenz aus dem Datenblatt abgeschrieben. Die Funktion 
"STREAM_GetStereoMODE" liefert natürlich immer 0 (Stereo).. :-(

Jetzt funktioniert alles wie vorgesehen, der Status wechselt sogar fast 
gleichzeitig mit der Audio-Ausgabe (keine Verzögerung zwischen dem 
Signal und der Audio-Ausgabe).

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Hier wird Mono ausgegeben, wenn ich bei einem FM-Sender die Antenne 
abziehe.

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
STREAM_GetStereoMODE sollte aber 1 liefern "Auto detect stereo".

von Lars (Gast)


Bewertung
0 lesenswert
nicht lesenswert
.. hab natürlich (clever wie ich war) alles < 3 als Stereo für die 
Anzeige interpretiert.. mea culpa.

von Rainer G. (p-force)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe zum Umschaltlevel von Mono auf Stereo.

In meinem Arduino Programm habe ich mit :

   Stream_Set_Stereo_Mode[6] = {0x01, 0x09, 0x01, 0x00, 0x01, 0x01};

das Modul auf Auto Stereo gesetzt und bekomme über :

   Stream_Get_Stereo[5]      = {0x01, 0x0B, 0x01, 0x00, 0x00};

auch die Werte 0 bis 3 zurück. Also alles ok.

Da bei mir fast nur Programme mit Signal Strength von 90 bis 100 
hereinkommen, kann ich nicht erkennen, wann von Mono auf Stereo 
geschaltete wird.
Gibt es eine Möglichkeit, das auszulesen / zu beeinflussen ?

Hier mal ein Debug Bild von einem Sender mit sehr kleiner 
Empfangsstärke, man kann das Programm ( hr Info ) noch verstehen, 
rauscht aber stark !

Hat jemand einen Tip ?

Rainer

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Seit November 2013 gibt es in der Spec (Ver 3.2.1) ein 
STREAM_GetFMStereoThd und STREAM_SetFMStereoThd Kommando. Je nach 
Firmware könnte das auch der 8650 unterstützen. Mein Monkeyboard Chip 
unterstützt es noch nicht.

von Rainer G. (p-force)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Peer,

vielen Dank für die schnelle Antwort.

Ich habe nur die Version 3.1.1, ist die neuere Version 3.2.1 als 
öffentlich zugängliches Dokument erhältlich ?

Ich habe Module mit einer recht neuen Firmware direkt von KeyStone ( 
kein MonkeyBoard ). Diese Module unterstützen auch I2C parallel zu 
Serial !

Da könnten diese neuen Befehle wohl klappen.

Gruß,

Rainer

von Peer T. (peer_t)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Spec gegen NDA von Keystone, kann sie dir also nicht 
weitergeben. Wie hast du es denn geschafft die Module zu bekommen?
Ich wollte gern einige T3 Module kaufen, habe auf diese Anfrage dann 
aber nie eine Antwort bekommen.

Wenn du die Module bekommen hast, wirst du sicher auch die aktuellste 
Spec bekommen.

Würdest du mir ein I2C fähiges Modul verkaufen?

Gruß

Peer

von xxx (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Hallo,

Bitte code für Arduino.

Danke :)

von Guido .. (2mils)


Bewertung
1 lesenswert
nicht lesenswert
xxx schrieb:
> Bitte code für Arduino.

Arduino - was das? kann man das essen?

von xxx (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Danke für antwort.

Ich möchte an das DAB modul 8650 durch Arduino.

MFG
Michael

von Peter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,


gibt es irgendwo C Code mit dem man das Modul direkt ansprechen kann?

Ich habe einen AVR dran (I²c) und wollte nun das Modul in betrieb 
nehmen.
Dabei wollte ich das Rad nicht noch mal neu Erfinden, gut ich würde mir 
gerne auch etliche Zeit sparen.
Habe schon fleißig gesucht aber anscheinend benutzt ich immer die 
falschen Suchbegriffe oder es gibt wirklich nichts.

Darum nochmal hat jemand C Code für das Modul?

VG, Peter

von Jan K. (madengineer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte mein Modul auch endlich in Betrieb nehmen. Und möchte jetzt 
ein kleines Breakoutboard erstellen, wo dann die Spannungsregler und 
Antennenbeschaltung mit drauf soll.
würde vielleicht jemand seine Eagle-Lib zu dem Modul teilen?
Ich würde dann im Gegenzug mein Layout vom meinem Breakout-Board auch 
hier veröffentlichen..

Schöne Grüße
Jan

von Rally1234 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hat noch jemand so ein KeyStone Modul abzugeben,
hätte interesse.

von Borsty B. (Firma: www.waechter-bernhard.de) (mantabernd)


Bewertung
0 lesenswert
nicht lesenswert
Ja, schreib mir mal eine PN.

von Maximilian O. (creapetime)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hätte ebenfalls Interesse an so einem Keystone Modul...
Hat vielleicht noch jemand eins abzugeben?
Mfg

von Rainer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ja, schreib mir mal eine PN.
Habe damals direkt von Keystone Semiconductor Module mit einer neueren 
Firmware bezogen, diese Module unterstützen auch I2C

Gruß, Rainer

von Maximilian O. (creapetime)


Bewertung
0 lesenswert
nicht lesenswert
Das klingt gut Rainer, aber ich weis gerade nicht wie ich ihnen eine PN 
schicken kann wenn sie als Gast angemeldet sind...
Mfg

von Kilian L. (turborierer)


Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich könnte auch noch ein Modul ganz gut gebrauchen. Leider ist 
Monkeyboard bis Dezember ausverkauft und Keystone rückt unter 500 Stück 
auch keine raus. Wäre super wenn noch jemand 1-3 Stück hätte.

Rainer? Borsty Bürste?

Viele Grüße
Kilian

von Kilian L. (turborierer)


Bewertung
0 lesenswert
nicht lesenswert
Die Module sind wieder verfügbar und ich würde eine Sammelbestellung bei 
Monkeyboard der blanken Module tätigen. Wer Lust hat schreibt mich bitte 
persönlich an. 15€ das Stück plus Briefporto.

Grüße Kilian

von Kilian L. (turborierer)


Bewertung
0 lesenswert
nicht lesenswert
Die Module sind wieder verfügbar und ich würde eine Sammelbestellung bei 
Monkeyboard der blanken Module tätigen. Wer Lust hat schreibt mich bitte 
persönlich an. 15€ das Stück plus Briefporto.

Einsendeschluss ist Freitag der 1.12.17

Grüße Kilian

von Richard (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag

Habe gerade kürzlich diesen Thread entdeckt, als ich beim Ausmisten mein 
DAB+ Monkeyboard gefunden habe (o;

Hat jemand eine Idee, weshalb die Kommunikation aus dem Testprogramm 
unter Windows einwandfrei funktioniert, aber nicht, wenn man direkt mit 
einem Terminalprogramm, dass HEX Strings unterstützt, das DAB Modul 
keine Antwort sendet?

Die gesendeten Daten sind dabei identisch, wenn ich TXD auf dem Modul 
mit einem Saleae LA sniffe...

von Richard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alles klaro (o;

DTR = 1 setzt /RESET Ausgang des PICs auf Low ;-)

von Manni_s (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
hat noch jemand ein Modul vom Monkeyboard zu verkaufen, bzw sind noch 
Interessenten da das wir 5 Stück zusammen bringen?
1 evtl 2 würde ich nehmen also fehlen noch 3.

Ist irgendwie doof das es die blos im 5er Pack gibt.

Momentan gibts einzelne t1 in der Bucht  für 19 $, die sind aber mit 
einer unbekannten Firmware.
Meldet sich mit

MPTEST
13 1
über die rs232 sonst nichts.

von Michael R. (mr-action)


Bewertung
0 lesenswert
nicht lesenswert
Ich muss mich hier heute Abend mal einlesen - klingt aber interessant... 
Ich melde mich dann heute Abend - wäre dann evtl. mit einem dabei... ;-)

von Clemens W. (daxmus)


Bewertung
0 lesenswert
nicht lesenswert
Ich hätte u.U. Interesse an zwei Modulen.

von Rainer G. (p-force)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

falls sich niemand meldet, ich habe noch 2 Module abzugeben,

Ich habe diese April 2016 direkt von Keystone Semiconductor mit einer 
damals aktuellen Firmware bezogen, diese Module unterstützen neben dem 
UART auch I2C

Gruß, Rainer

von Michael R. (mr-action)


Bewertung
0 lesenswert
nicht lesenswert
Also ich bin raus - klingt zwar alles ganz nett und so... Aber es klingt 
auch nach einem ganzen Berg Arbeit und Frust bis es läuft - da hab ich 
im Moment einfach keine Zeit zu... ;-)

von snap (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Falls noch jemand solche Module hat, ich hätte durchaus interesse an 
einem.

von Castle R. (castle)


Bewertung
0 lesenswert
nicht lesenswert
Falls jemand Interesse an dem Keystone Module hat, ich hätte noch welche 
abzugeben (3x). Bei Interesse —> PM

von Kilian L. (turborierer)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe ebenfalls noch 5 Module und ein Monkey Evalboard übrig. Einfach 
anschreiben....

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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