Hallo zusammen,
nach viel Schafferei und einigen kleinen Problemchen habe ich jetzt
einen lauffähigen Stand erreicht.
Mein iPod-Interface ist bereits seit einigen Wochen in meinem Wagen
montiert und arbeitet seither einwandfrei.
Noch mal kurz zusammenfassend:
Ich suchte eine Lösung für einen "iPod Nano 4. Generation" in Verbindung
mit einem Autoradio "Audi concert 1" (1. Generation).
Der iPod soll dabei natürlich über das Radio bedienbar sein.
Über den CD-Wechsler-Anschluss verbunden, sollte er auch die
entsprechenden Informationen an das Radio zurückgeben, um diese auf dem
Display anzuzeigen.
Audi bietet dazu grundsätzlich nur eine Lösung für Radios ab Generation
2 an. Diese lädt jedoch den iPod Gen. 4 NICHT. Bei anderen Herstellern
gibt es u. U. auch keine Ladefunktion, bzw. wird ebenfalls gar nicht
erst angeboten.
Daher blieb am Ende nur der Eigenbau und der Lerneffekt ist dabei doch
sowieso der größte...
Zunächst benötigte ich den iPod-Dock-Connector und dessen Pinbelegung.
Infos dazu hab ich hier gefunden:
http://pinouts.ru/PortableDevices/ipod_pinout.shtml
Die Buchsen gibt es z. B. bei RS: http://www.rsonline.de
Die Serie lautet: Serie JAE DD1. Die Artikel-Nummer für die von mir
verwendete, gewinkelte Platinenbuchse lautet: 437-089 (Hinweis: Das Bild
im Online-Katalog ist falsch). Hierbei müssen an 2 Stellen mit dem
Dremel noch die vorhandenen Kerben aufgeweitet werden (einfach zu
erledigen), dann passt es aber perfekt.
Dann ging es um die Ladefunktion. Hier half mir zunächst folgende
Quelle:
Beitrag "ipod laden ohne pc"
Habe aber zum Schluss einen von mir gekauften USB-iPod-Ladeadapter
vermessen. Dieser war bei meinem iPod-Ladegerät (Fremdhersteller) dabei
und besteht lediglich aus einer in einem Gehäuse verbauten USB-Buchse
und USB-Stecker. Innen sind wohl dann die entsprechenden Widerstände
verschaltet.
Meine Schaltung beinhaltet diesen Widerstands-Spannungsteiler für die
Signale D+ und D-, sodass der iPod zum Laden „motiviert“ wird.
Nach dem Aufbau eines „freiluftverdrahteten“ Musters machte ich mich an
die Programmierung des AIR-Mode. Die Steuerung des iPod wurde zu diesem
Zeitpunkt ausschließlich per PC über die zweite serielle Schnittstelle
des Controllers durchgeführt.
Quellen:
Beitrag "IPOD and AVR anschließen" (... aber bitte OHNE
Pegelwandler!!!)
http://stud3.tuwien.ac.at/~e0026607/ipod_remote/ip...
http://www.adriangame.co.uk/ipod-acc-pro.html
Nun wurde das Protokoll des CD-Wechslers programmiert um dem Radio einen
Wechsler vorzutäuschen und Infos auf das Display zu bekommen.
Zuletzt die Auswertung der vom Radio gesendeten Signale beim
Tastendruck.
Quellen:
Beitrag "CD Wechsler Protokoll"http://www.mictronics.de/?page=cdc_protohttp://www.lafrog.com/cdcemu/
Gruß Klaus
Danke für die Info, muss mal schauen ob mein Radio über den CAN Bus
läuft, glaub aber nicht. Beim Concert1 läuft das ganze noch über den
Drei-Leiter-Bus
Hallo!
Concert 1 hat noch keinen CAN. Das geht über eine Serielle
Schnittstelle. Die sollte einfach zu programmieren sein, sodaß die
Titelnamen angezeigt werden können.
Gruß.
Hi!
Mehr Infos habe ich leider auch nicht. Pinbelegung steht ja auf dem
Radio.
Mitloggen sollte gehen mit einem Controller der SPI hat.
Du musst nur zunächst mal die richtigen Taktraten einstellen, die Du mit
einem Oscar messen kannst. So würde ich jedenfalls vorgehen.
Leider hat mein Wagen kein FIS sonst hätte ich das auch schon längst
gemacht. Schließlich habe ich die Titelnamen, Interpret und Albumnamen
bereits als String in meinem Controller der iPod-Steuerung.
Somit läge es nahe diese im FIS anzuzeigen.
Ach ja, da ich glaube dass ein Tausch des Kombiinstrumentes nur schwer
möglich ist (oder gar nicht), suche ich dazu ein LCD in dem Rot der
Audi-Armaturen. Hatte schon an das des Radios gedacht, aber dazu habe
ich leider keine Infos. Außerdem ist es zu breit und ich wollte es in
eines der "Leerfelder" setzen (wo sonst die Regler der Sitzheizung
sind).
Also falls jemand eine Idee dazu hat...
Danke und schöne Grüße,
Klaus.
Also mein Code ist leider sehr kompliziert geworden, da ich mehrere
Zustandsmaschinen ineinander verschachtelt habe. Nur so konnte ich
allerdings sicherstellen, dass die gesamte iPod-Kommunikation über einen
Timer-Interrupt läuft und vom "main" vollständig zeitlich entkoppelt
ist.
Grundsätzlich habe ich mich aber an die o. g. Quellen gehalten.
Aufgeblähr wurde das ganze erst, als ich mehr und mehr Befehle
implementiert habe, die jederzeit über eine Message-Queue aufgerufen
werden können. So kann ich in den Routinen, die die Kommandos vom Radio
auswerten ganz einfach den iPod-Routinen posten, was sie als nächstet
(d. h. wenn alle vorigen Befehle der Queue abgearbeitet sind) tun soll.
Ich poste aber wenigstens mal meine Low-Levels, um Euch ein bisschen
Arbeit zu ersparen:
Diese "Ablaufsteuerung" ist eine der ZM's. Sie geht natürlich noch
weiter, aber hier kann man schön das Schema ablesen. Ich beginne mit dem
Zustand nach dem Einschalten, Schalte dann in Mode 4, mach eine Pause
und weiter geht's dann mit dem Namen des iPod, mit der Anzahl der
einzelnen Items (Anz Playlisten, anz Alben, anz...), u.s.w.
Hier noch die zugehörige Struktur:
1
typedefstruct{
2
wordHeader_u16;
3
byteLenght_u8;
4
byteMode_u8;
5
wordCommand_u16;
6
byteParameter_au8[64];
7
byteChecksum_u8;
8
9
boolSendeAnforderung_bool;
10
boolEmpfangErwartet_bool;
11
boolFertig_bool;
12
13
wordEmpfangAnzahlZeichen_u16;
14
unsignedcharEmpfangString_au8[64];
15
16
AS1_TErrorLetzterSeriellerFehler_st;
17
byteError_u8;
18
19
wordSendeCommand_u16;
20
21
unsignedintPauseVorEmpfang_u16;
22
23
}SendMessage_sts;
Hoffe ich konnte ein wenig weiterhelfen.
Aber ein bißchen Arbeit müsst Ihr Euch auch noch machen :-)
Außerdem lern man viel dabei.
Gruß Klaus.
Könntest du nicht so lange Code-Stücken als Anhang anhängen!?
3-Leiter sollte einfacher als CAN sein. Informationen habe ich aber auch
nicht dazu.
Rote LCDs: Dann schau mal bei den DOG-M, da kann man sich die
Beleuchtung aussuchen.
Hallo
Also dann werde ich euch auch mal in diesem Thread auf die Nerven gehen.
;)
Kennt hier jemand zufällig das CDC Protokoll des Audi Radios Concert 2+
(DoppelDIN)? Manchmal auch fälschlich als Concert 3 bezeichnet. Ist das
evtl. auch das Panasonic Protokoll oder, da dieses Gerät imho von
Blaupunkt ist, evtl. ein Blapunkt Protokoll? Und da dieses Gerät am CDC
Stecker zwei Audio eingänge besitzt (AUX und CDC IN) suche ich eine
Möglichkeit beide verwenden zu können. Könnte ja sein das man wie bei
einem CD Simulator noch zusätzlich ein AUX In simulieren muss. Kenn sich
da jemand aus und kann mir weiterhelfen?
Gruß
Hansi
Hallo Leute,
ich bin grad dabei bzw. fast fertig mit einem Interface für nen Opel
Vectra C. An sich funktioniert schon einiges.
- Ich kann Titel vor und Zurück springen. Spulen geht auch.
- IPOD wird automatisch erkannt, eingeschaltet und das Abspielen
beginnt.
- Die Titelnamen werden auf dem CID als Laufschrift angezeigt.
Die Anstueurung hab ich im Advanced Remote Mode realisiert (Mode 4).
Ich möchte jetzt noch Alben vor und zurück springen können.
Mir ist nur noch nicht ganz klar wie ich dass realisieren soll.
Hat jemand dass ev. schon gemacht und kann mir nen Leitfaden geben?
Danke und Gruss,
Georg.
Hallo Leute,
ich bins noch mal.
Mir gehts nicht um irgend einen fertigen Code, sondern um die
Funktionsweise wie ich an die richtigen Daten komme und aus denen dann
zum nächsten oder vorherrigen Album springen kann.
Das Protokoll ist mir bekannt. Aber irgendwie werd ich nicht schlau
draus.
Wenn jemand dass schon mal gemacht hat und ev. sogar nen RS232 Trace hat
das wäre sehr hilfreich.
Gruss,
Georg.
Morgen,
ich hab jetzt gestern ein wenig probiert.
Es gibt ja die möglichkeit an bestimmte stellen des Menüs zu sprigen.
Mich würde es interessieren ob es eine Möglichkeit gibt raus zu finden
an welcher Stelle man gerade ist.
Man kann zwar die Position in der Playlist auslesen aber hier bekomme
ich immer die Titelnummer innerhalb eines Albums und nicht die Position
im Menübaum.
Z.B. Type 3 => Album
und nummer 4 => Album nr 4
Weiss da einer nen Rat?
Gruss,
Georg.
Hallo!
Mal in absoluter Kurzform, da ich im Moment wenig Zeit habe:
- Grundsätzlich habe ich mein Programm so gestaltet, dass ich in einer
Variablen immer die momentan gewählten Abspiel-Art (also Playlist,
Album, ...), in einer weiteren die Item-Nummer (also Playlist-Nr,
Album-Nr, ... ) und in einer dritten die Titel-Nr. mitführe.
- Ändere ich eine dieser Vars (von Außen z.B. über Monitor-Programm,
oder über Radio-Tastendruck) dann wird diese Ereignis erkannt und in der
richtige Befehl (s. u.) ausgewählt.
- Meine SW fragt (bis auf die Titel-Nr und eine Ausnahme (wenn das Item
zu ende läuft)) nicht ab, wo gerade gespielt wird, da ich das ja aus
meinen Vars lesen kann (-> Datenfluss nur in eine Richtung, von µC ->
iPod).
- Den Wechsel zwischen den Abspiel-Arten (also Wechsel von Playlist auf
Album, oder Album auf Interpret, ...) habe ich folgendermaßen
realisiert:
1.) Wechsel innerhalb des selben Abspiel-Typs: Befehl 1
2.) Wechsel von Playlist -> anderes Item (Album, ...): Zunächt auf
Playlist 0 wechseln (mit Befehl 1 / um Zugriff auf ALLE Titel zu haben),
dann Befehl 2 um von Abspielart Playlist auf andere Abspielart zu
wechseln
3.) Wechsel von Anderer Art -> Playlist: Wieder über Befehl 1
Die Befehle schaue ich später noch nach!
Gruß Klaus
Hallo Klaus,
ich hab jetzt gestern auch noch ein wenig rumprobiert.
Hab es hinbekommen dass ich Album vor und zurück springen kann.
Allerdings muss ich mir merken wo ich beim letzten Abspielen war sonst
fang ich ja immer beim ersten Album an.
Da ich auch Titelname auf meinem Display im Auto anzeige frag ich beim
iPOD jede sec nach der aktuellen Position nach. Wenn sich diese ändert
wird der Titelname gelesen.
Wäre schön wenn du noch die Befehle raussuchen könntest. Dann könnte ich
meine FW etwas erweitern bzw. verbessern.
Gruss und Danke,
Georg.
Hallo!
Wenn ich bei meiner Steuerung ein neues Album anwähle, also global
gesagt: Item+ oder Item- anwähle, dann fange ich auch immer bei Track 1
an.
Ist es das was Du meintest?
Aber man kann sich ja sicherlich auch die Pos im jeweiligen Item merken
und dort wieder hinsprigen. Ich fand das nur doof, wenn ich den iPod
rausgenommen habe und evtl ein neues Album zugefügt habe, dann springt
er immer irgendwo hin, weil die SW ja nicht weiß wo genau das neue Album
in der Album-List dazugekommen ist. Aber auch da kann man sicherlich
viel, viel Programmieren. Ich habe allerdigs nur 16kWord ROM zur
Verfügung, daher bin ich so zufrieden.
Befehle kommen noch... Sorry für die Verzögerung.
Gruß Klaus
hi,
ja genau dass mein ich.
Mir persönlich ist es lieber wenn beim Einstecken das Album wieder
abgespielt wird was zuletzt gespiel wurde. Ist klar dass wenn man sich
nur die Position merkt dass bei neu eingefügten Alben sich alles
verschiebt.
Beim ersten anfangen find ich nicht so gut. Ich hab z.B. im Moment 41
Alben drauf. Wenn ich beim 25 war will ich nicht das nächste mal wieder
25 Alben vor springen zu müssen.
16kWorte sind schon mal mehr als ich anfangs hatte. Bin jetzt von Atmega
16 auf Atmega644 gegangen. Jetzt hab ich auch genug Platz für den ganzen
SchnickSchnack.
Ich muss jetzt nur noch das Störgeräusch aus der Audioleitung raus
bekommen.
Ich glaub der iPOD mag es nicht wenn die FireWire und die RS232 Masse
zusammenhängen.
Danke und Gruss,
Georg.
Hallo Schorsch!
Glaube wir haben ein bißchen aneinander vorbei geredet!
Fasse noch einmal meine Funktionen zusammen:
- Wenn ich mein Autoradio ausschalter, dann geht der iPod lediglich auf
Pause
- Schalte ich wieder an, dann wird einfach weitergespielt, d. h. sogar
exakt an der selben Stelle (natürlich im selben Titel des selben Albums
(besser Items))
- Nehme ich den iPod raus (egal ob bei ein- oder ausgeschaltetem Radio)
initialisiere ich neu. D. h. auf Mode 4 schalten, Abspielen pauschal
stoppen, Ipod-Namen lesen, Anzahl ALLER Items einlesen (Anz Playlisten,
Anz Artits, Anz Alben, ...), Auf Playlist 0 schalten, Auf zuletzt
gespieltes Item schalten
Dabei wird also auf jeden Fall der zuletzt gespielte Item-Typ und die
letzte Item-Nummer angewählt. Ledglich die Track Nummer wird immer auf 1
gesetzt, da ich mir diese nicht merke. Sonst muss ich ja einen Vektor
erstellen, der für jedes Item sich die zuletzt gespielte Track-Nummer
merkt. Wäre zwar möglich, aber ich denke das mich das verwirrt, denn man
ist ja gewohnt immer den ersten Titel zu hören, wenn man z. B. am
CD-Wechsler einen neue CD wählt!
Also, wie gesagt, ich fange auch nicht immer wieder bei Album 1 an!
Zu dem Wechsel der Abspiel-Art (Item-Typ) von Oben:
Fall 1) Playlist wird gespielt. Neue Playlist wird angewählt.
Das Kommando HABL_COMMAND_SWITCH_TO_PLAYLIST wird ausgeführt.
SendMessage_st.PauseVorEmpfang_u16=PROT_PAUSE_VOR_EMPFANGEN_STD;//Pausezeit vor erwarteten Empfangsdaten setzen
Fall 2) Playlist wird abgespielt. Item <> Playlist wird gewählt (also
Artist, Album, ...)
Das Kommando HABL_COMMAND_SWITCH_TO_PLAYLIST_0_TO_ITEM wird ausgeführt.
SendMessage_st.PauseVorEmpfang_u16=PROT_PAUSE_VOR_EMPFANGEN_STD;//Pausezeit vor erwarteten Empfangsdaten setzen
Danach den o. g. HABL_COMMAND_SWITCH_TO_PLAYLIST ausführen, um auf das
Item zu springen.
Nur so sind in den anderen Abspiel-Modi (<> Playlist) überhaupt alle
Titel und Items verfügbar.
Zumindest habe ich das so erfahren.
Wenn man NICHT zuvor auf Pl 0 springt, dann sind lediglich die Titel und
Items verfügbar, die in der momentan gespielten Playlist vorhanden sind.
Also eine Art "verundeter Filter".
Der Vollständigkeit halber hier noch meine Defines:
Wie kann ich denn herausfinden, in welcher Playlist der IPod steht, wenn
er angeschlossen wird?
Ich kenne Befehle für "current pos in Playlist", aber nicht, welches die
"current playlist" ist...
Das weiß ich auch nicht. Daher initialisiere ich ihn ja auch immer nach
jedem "Anschließen".
Dann springe ich einfach zu DER Playlist (oder DEM Album, oder dem ...)
und dem Titel, welchen ich zuletzt gespielt habe.
Hallo Leute,
Klaus dank dir für die CodeSchnipsel und die Erklärung.
Jetzt sind wir glaub ich auf dem gleichen Level.
Ich machs jetzt ähnlich nur dass ich mir nur die Titelnummer und
Albumposition merke.
Hab im Moment noch Probleme mit dem EEPROM beim ATMEGA644. Das Lesen
geht nicht immer.
Die aktuelle Position des Albums findet man irgendwie nicht raus. Ich
habe auch keinen Weg gefunden. Deswegen merk ich es mir auch wo ich
zuletzt war und springe beim nächsten einschalten an die zu letzt
bekannte Position.
Gruss und Danke,
Georg.
Hallo Georg,
bis zum EEprom bin ich gar nicht mehr gekommen.
Begründung: Zunächst wollte ich auch immer die Versorgung der CPU
abschalten, weil ich "Angst" um meine Autobatterie hatte.
Das hat nur leider einen entscheidenden Nachteil: Wenn man den iPod im
ausgeschalteten Zustand herausnimmt, dann "merkt" der Controller ja nix
davon. Steckt man ihn nun wieder herein (nachdem man z. B. mit iTunes
neue Titel aufespielt hat), so bekommt die CPU das ebenfalls nicht mit.
Beim Wiedereinschalten versucht er also einfach vom Pause- in den
Play-Zustand zu wechseln, bzw. erkennt gar nicht die Anzahl der Items
korrekt, was beim o.g. Bedienkonzept zu Problemen führen kann.
Also habe ich mich mit dem Thema Energiespar-Modi befaßt. Da meine
Schaltung nur ein paar Zehn Milliamps zieht war mir auch das den Aufwand
nicht wert, denn dann muss man mit HW-Interupts bei "iPod-Bewegung" aus
dem Sleep-Mode aufwachen und entsprechend reagieren.
Jetzt bleibt's eben an und das dürfte (bei normalem KFZ-Betrieb) der
Batterie nix ausmachen.
Gruß Klaus.
Nach all den Antworten habe ich jetzt aber auch mal eine Frage an Euch
:-)
Wie kann ich denn die Videos, die auf dem iPod abgelegt sind,
ansprechen? Habe z.B. einige Muskivideos geladen, die ich im Auto hören
möchte.
Zudem passiert manchmal etwas Seltsames: Habe ich z. B. mit dem iPod im
Zug ein Video geschaut und stecke ihn dann zurück ins Auto, so findet er
plötzlich nur noch ein oder zwei Videos; alle Audio-Items sind nicht
mehr ansprechbar. Da hilft auch nicht meine oben beschriebene
Initialisierung.
Muss den iPod dann entnehmen, "per Hand" irgendeine Playlist wählen, und
wieder reinstecken. Er macht dann einen neuen Init und es läuft ganz
normal.
Was kann das sein? Was mache ich falsch bei der Initialisierung? Gibt es
Zugriff auf die Videos?
Danke für Eure Antworten.
Gruß Klaus.
Hallo zusammen,
tut mir Leid, dass ich noch eine Frage dazwischenschiebe :)
Ich will meinen iPod ebenfalls an das Autoradio über den Wechslereingang
anschließen. Ich habe dazu den Anschluss mit 13-poligem DIN Stecker im
Kofferraum.
Jetzt frage ich mich, ob ich das Signal verstärken soll, um möglichst
eine gute SNR am Autoradio hinzubekommen.
Der iPod spuckt am Interfacestecker bei Vollaussteuerung ein Signal mit
genau 1V Amplitude (2V Spitze-Spitze) aus.
Jetzt meine Frage: Weiß jemand von euch, mit welcher Amplitude der
originale VW/Audi CD-Wechsler das Audiosignal (bei Vollaussteuerung) auf
die Reise schickt? Bzw. mit welcher maximalen Amplitude kann ich an das
Radio rangehen ohne zu übersteuern?
Danke im voraus.
Grüßle
Marcus
Hallo,
um meine Zwischenfrage mal selbst zu beantworten:
Ich habe einen Audi CD-Wechsler in die Hände bekommen und konnte mal ein
bisschen messen. Dazu habe ich mir eine kleine Zwischenplatine aus
Reichelt-Teilen hergestellt.
Das Ergebnis: Das Signal aus dem CD-Wechsler hat eine Amplitude von
genau 2V (4V Spitze-Spitze), d.h. um eine gute SNR hinzubekommen, sollte
man das Audiosignal, welches aus dem iPod-Dock-Connector kommt, um ca.
6dB anheben.
Grüßle
Marcus
Hallo Marcus,
danke für Deine Infos.
Ohne jetzt selbst mal gemessen zu haben ist mir aufgefallen, dass wenn
ich an meinem iPod den Equalizer einschalte, es zu Übersteuerungen am
Autoradio kommt. Ohne EQ ist der Klang sehr gut und die Lautstärke im
Wagen nur geringfügig höher als die im Radio-Betrieb (das war früher bei
CD-Betrieb mit dem Serien-Wechsler in der Tat nie der Fall, spricht also
für Deine Messergebnisse :-))
*) Sei doch so nett und miss mal die Pegel mit und ohne EQ.
*) Welchen iPod nutzt Du?
Vielen Dank,
Gruß Klaus
Hallo Klaus,
vielen Dank für deine Anregung! Auf die Idee mit den EQ-Einstellungen
bin ich noch garnicht gekommen.
Ich spiele zum Vergleich eine Audiodatei mit einem Sinus-sweep von
0-22kHz ab, welche sich auf dem iPod Nano 3. Generation (das breite
Ding) und einer gebrannten CD für den Wechsler befindet.
Ich habe gerade noch einmal das Oszi angefeuert und mal die
EQ-Einstellungen durchprobiert.
Die Messungen bestätigen Dein Gehör: Bei eingeschaltetem EQ tritt bei
gewissen Signalfrequenzen (abh. von gewählter EQ-Einstellung) Clipping
auf, d.h. schon am Dock-Ausgang des iPods ist das Signal übersteuert
(was ja irgendwie dämlich ist).
Grüßle
Marcus
P.S. Ist ja echt ein feines Projekt, was Du da durchgezogen hast, Klaus.
Ich habe mir die Pläne dazu mal angeschaut. Etwas Ähnliches, nur in
weniger ausgeklügelter Art, möchte ich auch machen. Im Moment knabber
ich gerade an der Kommunikation von Radio zu Wechsler :)
Hallo Marcus,
das ging aber fix! :-)
Wenn Du Lust hast, dann denk' Dir doch mal eine schicke OP-Schaltung
aus, dias das mit den +6dB erledigt.
Zwischenfrage: Warum eigentlich 6dB und nicht 3dB zur Verdopplung? Hat
das mit linear- und quadratisch-gewichteten Einheiten zu tun? Also hier
Spannung, d.h. 20*log(...)?
Die OP-Schaltung würde ich dann gern in meine Schaltung mit aufnehmen.
Evtl. bestelle ich mir dann (nach noch ein paar kleinen Updates) eine
neue Platine.
Schöne Grüße,
Klaus
Hallo,
ich habe mir schon eine kleine OP-Schaltung überlegt, Teile sind auch
schon da. In der Simulation funktioniert's natürlich schon. Ich muss nur
mal dazu kommen, eine Testschaltung aufzubauen, denn das größte Problem
wird wahrscheinlich das Drehzahlbrummen werden. Wenn ich das habe,
schreibe ich das hier rein.
Ich habe mit einer kleinen Experimentierplatine jetzt erfolgreich die
Kommunikation zwischen dem CD-Wechsler und dem Radio abhorchen können.
Die Nachrichten Wechsler->Radio sind sehr vielfältiger als unter lafrog
angegeben. In den höchsten 4 Bits des ersten und letzten Bytes scheinen
auch irgendwelche Statusbits untergebracht zu sein, ich verstehe nur
noch nicht, was diese bedeuten. Das vorletzte Byte kennt anscheinend
auch noch ein paar andere Zustände. Dazu kommt noch, dass der
CD-Wechsler anscheinend defekt ist. Manchmal spielt er, manchmal nicht.
Wenn er nicht geht (so wie bei meiner Aufzeichnungssession gestern) dann
wechselt er die CDs durch und zeigt vorne nur an "CD Error".
Ich habe das Log mal angehängt. Der Wechsler fängt genau alle 50ms an,
eine Nachricht auf die Reise zu schicken. Die CDC Messages kommen vom
Wechsler, die Radio Messages vom Radio (Msgs mit Kommando 0x14 sind
bereits ausgeblendet).
Gibt es irgendwo noch eine näher detaillierte Protokollbeschreibung als
bei lafrog?
Grüßle und Vielen Dank
Marcus
P.S.: Sorry, wenn da etwas mit den 6dB verbuchselt habe. Ich komme aus
der Regelungstechnik. Bei uns entsprechen 20dB einer Dekade, weil wir
das Verhältnis der Quadrate als Größe heranziehen. Also bei mir ist eine
Verdopplung +6dB, weiß nicht wie die Elektrotechniker das machen :)
Hallo Marcus,
habe mir gerade einmal Deine Daten vom CDC->Radio angesehen.
Leider komme ich nicht auf einen Nenner mit meinen Ergebnissen (siehe
Thread: Beitrag "CD Wechsler Protokoll").
Zunächst gehe ich davon aus, dass einer von uns invertierte Logik
aufgezeichnet hat, aber das tut ja grundsätzlich nichts zur Sache.
Du leitest z.B. mit "4B" ein, ich hatte 0x74. Das ergibt invertiert 8B.
Dein letztes Byte beträgt "43", meines 0x7c, das ergibt invertiert 83.
Das klingt ja schon mal alles nicht soo verschieden :-)
Bitte schau' Dir auch meine Sende-Daten (meines iPod-Adapters, also dem
simulierten Wechsler-Signal) mal genau an, in dem o. g. Thread!
Habe leider selbst nie des Wechsler-Signal gemessen, sonder habe
lediglich Daten ans Radio gesendet und geschaut wie es sich verhält.
Besonders interessant ist für mich noch das Signal des Wechslers, wenn
man am Radio die "Suchlauf-Taste" drückt, also "Nächster Titel"
festhält. Dann ist mein Adapter "am Ende". D. h. vermutlich erwartet das
Radio einen bestimmten Code und läßt bis dahin keine Weitere Bedienung
mehr zu. Da ich den Code nicht kenne, hilft dan nur noch ausschalten.
Kannst Du diesen Fall mal bitte prüfen!
Was genau hast Du für ein Radio / WEchsler?
Vielen Dank für Deine (Mess-)Arbeit und schöne Grüße.
Klaus
Uups, hatte wohl nicht weit genug untern geschaut, dort gibt es folgende
Telegramme: 8B41010000007083.
Das deckt sich (zumindest invertiert) mit meinen Werten!
Klaus.
Hallo Klaus,
vielen Dank für Deine Antwort!
ich habe noch einmal Deinen Beitrag in dem anderen Thread gelesen. Die
"Keep-Alive"-messages, wenn der Wechsler nicht aktiv ist (z.B. Radio im
Radioempfang-Modus), decken sich mit den Deinen, wenn man die Bits
invertiert (das sind die messages ganz am Schluss der Datei). Ich habe
die Messages hier so interpretiert wie auf der Website lafrog. Der
Vorteil ist dann, dass man Track/CD direkt aus der Message ohne
großartiges Kopfrechnen herauslesen kann :)
Wenn ich im nächsten Schritt dann selber Nachrichten sende, muss ich die
Nachrichten natürlich wieder bitweise invertiert an die SPI-Hardware
übergeben.
Im Betrieb scheint er an den ersten und vorletzten vier Bits etwas zu
verändern. Das deckt sich mit Deiner Beobachtung, dass Du im letzten
Byte etwas drehen musst, damit das Radio wieder reagiert, wenn es
zyklisch sendet. Da stecken wohl noch ein paar Status- und
Acknowledgebits drin.
Wenn der Wechsler letzte Woche getan hätte, hätte ich die von Dir
geschilderte Kommunikation mit dem "Taste gedrückt halten" auch gleich
ausprobiert. Ich probiere das am Wochenende oder am Feiertag nocheinmal
aus und hoffe, dass das Ding dann mal wieder richtig läuft, denn dann
werde ich die Messungen nochmal wiederholen und bestimmte use-cases
durchprobieren.
Als Radio habe ich ein altes Audi Navigation Plus aus einem alten A8 und
den CD-Wechsler zur Kofferraummontage. Da war glaube ich noch ein
Aufkleber mit einer Teilenummer drauf, die habe ich aber nicht
aufgeschrieben. Das muss ich dann auch nochmal nachschauen.
Grüßle
Marcus
Ich habe heute nochmal meinen Controller rangehängt. Tatsächlich hat der
Wechsler erstmal wieder funktioniert.
Ich habe mal das Protokoll angehängt und bis Zeile 1493 kommentiert.
Irgendwie ist bei dem Programmcode für das Einlesen der Kommandos vom
Radio etwas schiefgelaufen. Manchmal "verschluckt" er Kommandos, was
aber glaube ich daran liegt, dass die vielen Aufrufe der
Interruptroutinen sich oft gegenseitig blockieren und so mal ein paar
Bits verschluckt werden. Den Code habe ich nicht komplett selber
geschrieben, ich habe mich da auch stark am Code von Matthias Kölling
Beitrag "Re: CD Wechsler Protokoll"
orientiert.
Dann gibt es da aber noch ein größeres Problem. Irgendwie scheint er die
"Taste ist gedrückt" Nachricht nicht korrekt zu empfangen. Ich hätte
eigentlich erwartet, dass das Radio periodisch ein leeres Paket mit
kürzerer erster low-Phase schickt (wie auf lafrog). Ich habe da gesagt,
er soll die Nachricht
1
0xDEADBEEF
auf das Terminal schicken. Da kommt aber nichts an.
Oder kommt da gerade immer die Nachricht
1
0x532C14EB
die ich ausgeblendet habe? Habe es leider nicht mehr testen können.
Ich habe immer nur
1
0x532CE41B
nach loslassen der Spulentaste vom Radio empfangen...
Um zu schauen, ob da überhaupt etwas auf der Leitung kommt, wenn man
eine Spul-Taste gedrückt hält, wollte ich nochmal mit dem Oszi ran, aber
gerade da wollte der CD-Wechsler nicht mehr... wieder nur CD Error.
Immerhin sieht man in dem Log gut, was der Wechsler bei "Spulen-Anfang"
und "Spulen-Ende" sendet, was für Dich interessant sein könnte, Klaus.
Grüßle
Marcus