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
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.
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
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.
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.
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.
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
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.
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
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.
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
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?
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
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.
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
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
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
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.
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
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
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
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.
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
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
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
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.
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
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
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
Wie hast du die Shell deaktiviert, wie sendest und empfängst du?
Ich habe es auch gerade ausprobiert, mit folgendem Python-Skript:
1
import serial
2
import time
3
4
ser = serial.Serial('/dev/ttyAMA0', baudrate=57600, timeout=0.1)
5
while True :
6
ser.write("\xFE\x00\x00\x01\x00\x00\xFD")
7
answer = ser.read(7)
8
print "answer:",
9
for character in answer:
10
print character.encode('hex'),
11
print
12
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:
1
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...
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
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
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
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
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
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
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?
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.
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.
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
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
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
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
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.
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
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.htmhttp://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
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
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
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
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 :/
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.
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
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.
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
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...)?
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
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
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
@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
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
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
@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
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.
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.
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.
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.
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.
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.
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:
1
003 BootROM Loader 1.0
2
1. Download bootloader - SST
3
2. Download bootloader - MXIC
4
3. Download to memory 0x8000
5
4. Jump to memory 0x8000
6
5. Reset
7
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?
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
@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
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...
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
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.
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
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
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
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
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.
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.
... 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ß :)
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
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.
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ß :)
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
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.
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
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
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.
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
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.
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
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.
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
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?
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
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
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:
1
RX: FE 00 00 01 00 00 FD // System_GetSysRdy
2
RX: FE 01 16 01 00 00 FD // Stream_GetTotalProgram
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?
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
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
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
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
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:
1
// Serial2.begin(57600); // alt
2
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
1
Arduino at 57600 Baud - It's Actually 58824
2
Arduino creates the same baud rates as Teensyduino, except at 57600, where Arduino's error is +2.12%.
3
When communicating with an Arduino board, the combined +2.12% and -0.79% error is too much.
4
Successful communication with Arduino requires 58824 baud.
5
6
void setup() {
7
Serial1.begin(58824); // Arduino 57600 is actually 58824
8
}
9
10
Alternately, if you edit the Arduino code to use "Serial.begin(57601)", Arduino will create
11
a baud rate with only -0.79% error, which exactly matches Teensy.
Ich habe mich dann für die Initialisierung wie dort empfohlen
entschieden:
1
Serial2.begin(57601);
Unglaublich, vielen vielen Dank für den Tipp mit der Baudrate !!
Viele Grüße,
Lars
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
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
1
Serial1.begin(57601)
Vermutlich brauchst du danach keinerlei delays mehr zwischen den writes.
Ich sende das ganze Kommando am Stück
1
Serial2.write(buf,len);
Mit der richtigen Baudrate klappt das jetzt perfekt.
Mit freundlichen Grüßen,
Lars
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.
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:
1
7bytesvariablevariable
2
headercoreheaderextensionobjectbody
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:
1
28bits13bits6bits9bits
2
bodysizeheadersizecontenttypecontentsubtype
3
b55b28b27b15b14b9b8b0
Zuerst habe ich versucht die body size am anfang der MOT Daten,
beginnend mit 73h zu suchen...
1
## 00311,726 received MOT packet; returncode: 005D; cmdtype: 03; cmdid: 00; sernr: 0A; length: 005D
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!
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:
1
00323031362D30312D32362E31382D34.2016-01-26.18-4
2
302D34352E37303334333232363335380-45.70343226358
3
32303439343339332E6A706720494393.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
1
## 00313,006 received MOT packet; returncode: 00EC; cmdtype: 03; cmdid: 00; sernr: 15; length: 00EC
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.
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.
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
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.
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
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
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.
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
@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:
1
for(n=0;n<length_indicator-2;n++){
2
end_user_address_byte
3
}
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?
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
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
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?
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)
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??
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
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?
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.
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?
.. 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).
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
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.
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
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
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
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
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
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
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
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
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...
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.
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
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... ;-)