Hallo.
Versuche gerade einen CD-Changer Emulator zu programmieren.
Habe mich auf folgenden Seiten informiert:
http://www.mictronics.de/?page=cdc_protohttp://www.k9spud.com/vwcdpic/devel/http://www.lafrog.com/cdcemu/
Habe ein Audi Navi Plus. Habe es auch richtig angeschlossen hoffe ich.
Vom Navi erhalte ich auch Signale wie auf den Seiten beschrieben.
Allerdings andere Zeichen.
Beim einschalten erhalte ich.
- Startkondition
- 0xCA
- 0x34
- 0x08
- 0xF7
- Startkondition
- 0xCA
- 0x34
- 0x28
- 0xD7
- Startkondition
- 0xCA
- 0x34
- 0x08
- 0xF7
- Startkondition
- 0xCA
- 0x34
- 0x28
- 0xD7
Die 4 Telegramme kommen an. Dann zeigt mir das Navi: "No Changer"
Habe versucht über die SPI-Schnittstelle Komandos wie beschrieben zu
senden.
Hilft aber alles nix.
SPI Einstellungen:
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2*57,600 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
Hoffe mir kann jemand helfen.
MFG
Stefan
Bei lafrog ist das Potokoll und Timing genau beschrieben und genau so
funktioniert es auch. Wichtig ist, das der Emulator periodisch (<= 1
Sekunde) Daten schickt. Sonst kommt 'No Changer' im Radio.
Gruss, Toni
Genau nach der Anleitung geht es bei mir nicht.
Habe mir nen älteres asm File von www.k9spud... mal angesehen. Das war
eine andere Zeichenfolge drin. Schreibe jetzt als 8-tes Byte ne 7C.
Dann sagt er mir zumindestens nicht mehr, dass er keinen Wechsler hat.
Aber die Bytes davor spielen keine Rolle. Habe diese mal wild
verändert. Das stört überhaut nicht.
Habe die Clock Polarity außerdem noch auf High geändert.
Empfange aber weiterhin keine weiteren Zeichen vom Navi.
Und die Zeichen die beim Einschalten kommen entsprechen nicht denen bei
lafrog. Nach dem sollte ich ja 0xFE, 0xFF, 0xXX, 0xFE
Noch ne Frage. Habe festgestellt, dass das besagte 8-te Byte nen
Bestimmten Puls ergibt. (04 geht auch, warum auch immer)
Kann es sein, dass das Navi doch den Sync-Anschluß hat?
Hi,
die ersten 8 Bits sind nur ein Dummy Byte, danach kommen die 56
Datenbits wovon die letzten 8 Bits dem Dummybyte entsprechen, ausser
das Bit 53 invertiert ist.
Du musst zwischen TOC Data und Play Data unterscheiden.
Viel Erfolg
Heinz
Funktioniert auch so nicht ganz!
Da ich die ersten sieben Byte beliebig beschreiben kann. Habe auch mal
probiert Erste Byte auf 0x04 zu setzen. Dann dürfte ja das letzte dann
0x00 sein. Haut aber dann nicht hin.
Was ist denn dann der UNterschied zwischen TOC Data und Play Data?
Was kriegst du dann angezeigt?
Arbeite mit einer Baudrate von 3,6864MHz. Kann es sein, dass das Timing
so kritisch ist? Kann ich mir nicht vorstellen. Werde aber mal nen 4MHz
Quarz testen.
Tag,
das Timing ist sehr kritisch zumindest die 300µs pause zwischen den
einzelnen bytes.
>Was ist denn dann der UNterschied zwischen TOC Data und Play Data?
TOC Data: Toc Data gibt dir Information über Gesamtzahl der CD's im
Wechsler oder ob irgendwelche Errors zustande gekommen sind. Wie
Mechanik Error oder Tracking Error.
Play Data gibt dir die Information welcher Titel gerade gespielt wird
und die Zeit als gepacktes BCD.
Heinz
Hilft alles nix.
Bleibt dabei. Kann fast senden was ich will. Im letzten Byte schreibe
ich eine 0x04 oder 0x7C und er sagt nicht mehr No Changer.
Dabei scheint es keine fast keine Rolle zu spielen, wie lang ich die
Pausen nach dem Senden mache.
Aber Daten habe ich noch nicht zu sehen bekommen.
Habe keine Idee mehr woran es noch liegen kann.
Jetzt tut sich was.
Habe jetzt das 2te Byte mal variabel gemacht und es durchlaufen lassen.
Dann ändert sich die Anzeige.
Mache ich das dann wieder konstant tut sich wieder nix.
Bin mal wieder zu neuen erketnissen gekommen.
Also beim Audi Navi Plus muss das alles etwas anders sein.
Scheint ir jedenfalls so.
Das Radio sendet wie auf den Websites beschrieben.
Allerdings folgt nach jedem Paket ein Paket indem das Komando 0x28
gesendet wird.
Nen Track weiter ist z.B. 0x1F, 0x28
(nur mal die Daten, im Telegramm an Position 2)
CD-Wählen für CD 1 z.B. 0x30, 0x28, 0x1C, 0x28
Soweit so gut.
Falls noch jemand weitere Info's hat hoffe ich auf Hilfe.
Das Problem mit dem Senden ans Radio hätte ich auch gerne noch gelöst.
Komme da leider nicht weiter.
Hallo,
ich muss mal einen alten Thread raus kramen. Wie siehen denn die TOC
Daten aus? Ich habe ein Concert II und es zeigt auch alles richtig an
was ich an das Radio sende. Ich erhalte auch die Komandos
(Tastenbetätigungen) vom Radio zurück. Nur für die Tasten für nächste CD
und vorherige CD schickt das Radio keine Daten raus. Muss ich dem Radio
zuerst mittelnen wieviele CDs sich im Wechsler befinden? Wenn ja wie?
ciao
Martin
Hallo,
ich bin neu in der Welt der AVRs, finde aber die Anwendung als Wechsler
Simulator höchst interessant.
Das oben angehängte C-Code-Beispiel ist für mich schon aussagekräftig.
Allerdings wird dort nur das Senden bearbeitet.
Hat jemand ein Beispiel für das Empfangen der Radio-Daten?
Grüße aus dem kalten Rostock
Mario
Sorry, der Thread ist etwas älter, aber vielleicht weiss ja Jemand, wie
man bei den VW Radios das "Aux-In" freischaltet? Ist doch sicher ähnlich
zur Wechslersimulation, nur mit anderen Codes oder?
Es wäre sehr interessant, wenn einer Infos dazu hat.
Normal ist die "Aux-In" Freischaltung nichts anderes als dem Radio vor
zu gaukeln, dass ein Wechsler angeschlossen ist. Du schaltest am Radio
dann auf Wechsler um un du hörst das was über den Wechsler Audio Eingang
rein kommt.
Hallo,
hätte noch ein c-file zu bieten. Ist eine Umsetzung von k9spud auf nen
ATMEGA128. Läuft bei Concert II super. Navi Plus - keine Ahnung.
Gruß Matthias
Also ich kann das Radio in den Wechslerbetrieb setzen, dann stehen links
und rechts CDxx usw. Jetzt habe ich gesehen, dass es auch einen "Aux-In"
Adapter gibt, bei dem auch der gleiche Text im Display steht. Kann man
das auch simulieren?
zu Beitrag #6:
erst mal danke für das einfache programm ;)
aber welche schaltung hast du benutzt? die von matthias klump oder das
von ed schlunder? oder funktioniert das programm auf allen?
bin zwar elektroniker.. aber eben für betriebstechnik.. hab mich mit
mikrocontrollern noch nicht so auseinandergesetzt
gruß alcapwn
Als Hardware hatte ich damals einen ATmega8 genommen, weil ich den
gerade da hatte. Es reicht aber auch schon ein AVR Tiny vollkommen
aus...
Die Datenfolge, die ich weiter oben gepostet habe stimmt außerdem nicht
ganz. Hier die richtige:
0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xCF, 0x7C
@Matthias Kölling
Hallo ;)
Betreibst du einen Archos MP3 Player an deinem Concert II ?
Wenn JA, Funktioniert das dann mit der Fernsteuerung des Players?
Ich wollte es bei mir im A3 mal versuchen hab aber Concert I
Hast du eventuell einen Schaltplan und/oder ein Layout?
MfG Andy
Hallo Andy,
habe den PJRC am laufen. Was für einen Schaltplan meinst Du? Im Moment
habe ich noch das Original von k9spud im Auto. Die Umsetzung auf den
ATmega128 soll im Laufe des Jahres folgen. Es braucht etwas länger, da
ich mit dem Steuergerät etwas mehr vorhabe:
-Titelanzeige und Steuerung über Navi Bildschirm
-Bedienung über Infrarot mit Originalempfänger des Navis
-Umschaltung auf 12-fach CDC
-Audio-Umschaltung MP3-CDC-AUX
-eventuell noch Meßwerte von K-Line lesen
Für das reine Wechslerprotokoll reicht das Original von www.k9spud.com/
Ob das allerdings für Concert 1 paßt, weiß ich nicht. Für das
Freischalten des Audioeingangs sind die Daten, die an das Radio gesendet
werden interessant. Wenn die nicht passen, wirds Frickelei. Die
Steuerkommandos lassen sich leichter anpassen, da man nur kucken muß,
welches Kommando bei welchem Knopf gesendet wird.
Gruß Matthias
OK ich werde auch diese Schaltung verwenden.
Hab da aber noch eine Frage.
Die Audiosignale werden ja nur durchgeschleift und über ein RC-Glied
geglättet... oder was ist die Aufgabe von dem RC-Glied?
Der Kondensator ist kein ELKO, oder? Ich kann das nicht so gut erkennen
in dem Plan.
MfG Andy
Die Audiosignale habe ich nicht angefaßt. Die werden bei mir direkt vom
Player auf das Radio geführt. Allerdings habe ich in meinen Player einen
Masse-Isolator eingebaut. Das ist weiter nichts, als ein doppelter
NF-Übertrager und verhindert Masseschleifen. Ohne das Teil hatte ich
ständig Pfeifen, wenn die Platte hochgefahren ist. Das Teil gibt es für
15€ beim blauen C und ist sein Geld wert. Die Klangqualität ist für
meine Bedürfnisse auch mehr als ausreichend.
Gruß Matthias
> Die Audiosignale werden ja nur durchgeschleift und über ein RC-Glied> geglättet
Der ist gut ;-) . Der macht aus den Audiosignalen eine Gleichspannung.
Das RC-Glied ist ein Tiefpass, und hällt hohe Störfrequenzen fern.
Noch ne Frage zur Schaltung bzw dem Source Code.
Mit welchem Takt soll der AVR laufen?
Und ist die Datensequenz für ein VW Beta V Radio gültig? Mir reicht
schon, wenn er nur die Aux Eingänge freischaltet. Die Anzeige im Display
ist egal.
Minetti wrote:
> Noch ne Frage zur Schaltung bzw dem Source Code.>> Mit welchem Takt soll der AVR laufen?
1MHz (interner Takt reicht)
> Und ist die Datensequenz für ein VW Beta V Radio gültig? Mir reicht> schon, wenn er nur die Aux Eingänge freischaltet. Die Anzeige im Display> ist egal.
Eigentlich müsste es auch mit einem VW Radio funktionieren. Ansonsten
müsste man ein bisschen probieren.
Ich habe den Emulator nur an einem Audio Concert II getestet.
Hallo sehr interessant dieser Thread, ich würde gerne etwas ähnliches
machen, allerdings finde ich nirgendwo ne Protokollbeschreibung für
meinen Blaupunkt A05- Wechsler, weiß vielleicht jemand nen Tipp wo ich
diese finde?
Ich habe mal noch etwas beim Audi Concert 2 entdeckt.
Wenn man in den "Diagnose"-Modus des Radios geht (Beim Einschlten
Stationstaste 1 gedrückt halten) und dann zum CD-Wechsler wechselt, dann
werden alle Datenbytes die der CD-Wechsler zum Radio sendet im Display
des Radios angezeigt.
>Als Hardware hatte ich damals einen ATmega8 genommen, weil ich den>gerade da hatte.
ich hab das jetz auch alles aufgebaut.. mit nem atmega8, davor noch ne
kleine platine 12v->5v und die wird über den cdc-schaltausgang mit strom
versorgt.
konfiguration der ein/ausgänge im atmega8
cdc data in und cdc clock -> ausgänge
cdc data out -> eingang
ich hab in jede datenleitung ( data in, out und clock) nen 1kohm R
eingebaut..
und es tut sich nix.. also genauso wenig wie davor, als ich noch nix
angeschlossen hatte
wenn ich die taste cc/cd gedrückt halte und dann den radio einschalte
steht im display NO CDC, also müsste er doch bereits für den wechsler
codiert sein,oder?
passt das schon, dass wenn der radio angeschaltet wird, dass dann die
platine gleich zu werkeln anfängt? imho wird ja schon gesendet wenn das
display vom radio gerade angeht, oder?
lg,daniel
Ich hatte damals auch den Radio-Schaltausgang benutzt um die Platine zu
versorgen und das ständige Senden hatte bei mir eigentlich keine
Probleme gemacht.
Stimmen die Zeiten alle bzw. ist der Takt richtig eingestellt?
Hier ist auch ein interessanter CDC-Emulator mit MP3-Player:
http://martinsuniverse.de/projekte/audiohplayer/audiohplayer.html
>Stimmen die Zeiten alle bzw. ist der Takt richtig eingestellt?
interner takt 1mhz
zeiten sind alle aus deinem programm..
der der mir den atmega geflasht hat, hat gesagt dass er noch ne
headerdatei dazubasteln musste, für den compiler.. sonst wurde an deinem
programm nix gemacht
zwischen reset und gnd is noch n 100nF R drinn
>ich hab in jede datenleitung ( data in, out und clock) nen 1kohm R>eingebaut..
das stört ja nicht oder?
und die
>konfiguration der ein/ausgänge im atmega8
stimmt auch oder?
wenn ich ne led zwischen clock und gnd oder zwischen data in und gnd
halte leuchtet die.. sollte die nicht ganz schnell flackern?
beim einbau hatte ich den atmega falsch herum eingebaut und dann 2-3 sec
eingeschaltet gehabt.. aber der dürfte ja noch ned kaputt sein, deswegen
oder?
lg, daniel.. der langsam verzweifelt
a2 wrote:
> der der mir den atmega geflasht hat, hat gesagt dass er noch ne> headerdatei dazubasteln musste, für den compiler.. sonst wurde an deinem> programm nix gemacht
Hast du die Datei aus meinem Post vom 23.03.2008 benutzt?
Stimmt, da fehlen die defines für B2, B3, B5:
1
#define B2 (0x04)
2
#define B3 (0x08)
3
#define B5 (0x20)
>>ich hab in jede datenleitung ( data in, out und clock) nen 1kohm R>>eingebaut..> das stört ja nicht oder?
Dürfte keine Probleme machen. Den Datenausgang vom Radio (CDC Data Out)
braucht man eigentlich auch nicht anschließen, weil er vom Programm
nicht benutzt wird.
> und die>>konfiguration der ein/ausgänge im atmega8> stimmt auch oder?
Wie hast du den SS-Pin gesetzt?
SS muss als Eingang mit PullUp oder als Ausgang konfiguriert werden.
> wenn ich ne led zwischen clock und gnd oder zwischen data in und gnd> halte leuchtet die.. sollte die nicht ganz schnell flackern?
Die flackert so schnell, das man es nicht sieht :-)
> beim einbau hatte ich den atmega falsch herum eingebaut und dann 2-3 sec> eingeschaltet gehabt.. aber der dürfte ja noch ned kaputt sein, deswegen> oder?
Oh, möglicherweise doch.
>Hast du die Datei aus meinem Post vom 23.03.2008 benutzt?
ja
>Stimmt, da fehlen die defines für B2, B3, B5:>Wie hast du den SS-Pin gesetzt?
ich weiß nicht genau was da im programm genau gemacht wurde.. werd am
dienstag mal nachfragen
>>der dürfte ja noch ned kaputt sein, deswegen>>oder?>Oh, möglicherweise doch.
ich hab mal gemessen (mit multimeter, da ich kein oszi daheim hab)
zwischen clock und gnd hab ich 286 hz
und zwischen data in und gnd 48,6 hz
also der uC tut noch was..
lg, daniel
>Warum verschwendest Du so viel Zeit?>Kauf Dir doch eine camubox...und die kann noch ne ganze Menge mehr
wenn ich was mach weil ich es machen will is meine zeit nicht
verschwendet
und ich will ned 170€ für ein ding ausgeben das ned mal nen line in hat.
und genau den will ich haben
wenn ich mir so n ding kaufen würd, dann nur das icelink oder so.. mit
dem ich den ipod dann auch steuern kann.
das is mir aber alles ned so wichtig, hauptsache ich hab meinen line in
und muss dafür keinen exorbitanten preis zahlen
und zusätzlich will ich hier erfahrungen sammeln beim auf- und einbau
meiner platinen
>Hast du das in meinem Beitrag vom 14.04.2008 20:41 mal ausprobiert?
ja, der diagnosemodus war mir davor schon bekannt.. hab ihn immer nur
zum geschwindigkeit auslesen benutzt ;)
wenn ich im diagnosemodus auf cc/cd drück steht immer nur NO TAPE da :(
was steht denn bei einem funktionierenden cdc-simulator da wenn ich
cc/cd gedrückt hab und den radio einschalte?
Da sich dem Clk- und Data-Pin etwas tut, wird der SS-Pin wahrscheinlich
richtig gesetzt sein. Miss aber trotzdem mal welche Spannung an dem Pin
(PB2) liegt.
Probiere auch mal den AVR erst anzuschalten, wenn das Radio an ist.
Was für ein Radio hast du eigentlich, Audio Concert II?
Ipod steuern...welch Schwachsinn. Immer diese dumme Kiste mit sich
rumtragen. Da sind SD-Karten doch viel vernünftiger. Und die kosten auch
nicht so viel wie ein Ipod. Und mit Deiner Lösung wirste micht mal was
von ner SD-Karte runterbekommen, vom Ipod gar nicht zu reden...
Wat soll der dumme Streit denn hier. Der eine mag iPod der andere eben
nicht.
> was steht denn bei einem funktionierenden cdc-simulator da wenn ich> cc/cd gedrückt hab und den radio einschalte?
Ich habe es nicht mehr genau im Kopf, ich meine es waren einfach die
Datenbytes in Hex, die das Radio am CDC Eingang empfängt. Wenn da nichts
zu sehen ist, gehe ich davon aus, dass das Radio auch nichts von deiner
Schaltung empfängt.
erst mal VIELEN DANK dass ich hier von euch so gute hilfestellung krieg
=)
ich hab den audi chorus 2
(btw:in der anschlussbelegung die du gepostet hast sind die radios
falsch beschriftet, der obere ist chorus, der mittlere concert)
>SS muss als Eingang mit PullUp oder als Ausgang konfiguriert werden.
ich hab an PB2 (SS/OC1B) keine spannung gemessen
muss da dann jetz noch n pullup widerstand davor?
ich glaub aber dass beim flashen alle pins auf ausgang gesetzt wurden,
außer bei pb3 und pb5, bin mir aber nicht zu 100% sicher
später einschalten hat jetz auch nix gebracht..
irgendwie muss das doch gehn :(
lg, daniel
> muss da dann jetz noch n pullup widerstand davor?
Wenn PB2 als Ausgang konfiguriert ist nicht. Ansonsten den internen
PullUp aktivieren oder extern einen anschließen.
Lege den Pin einfach mal mit 1k auf 5V. Dann siehst du ob der Pin auf 0V
bleibt (Pin=Ausgang) oder auf 5V geht (Pin=Eingang).
>was steht denn bei einem funktionierenden cdc-simulator da wenn ich>cc/cd gedrückt hab und den radio einschalte?
Beim Chorus 2 steht da "CONNECT"...mehr nicht!!
pb2 is wohl ausgang.. ich mess ungefähr 100mv
morgen schau ich mir mit dem kollegen der mir das geflasht hat das
programm nochmal genau an..
verdrahtungsfehler kann ich ja ausschließen
lg, confused daniel ^^
Vielleicht ein Masseproblem? Ist die CDC-Masse (C2 Pin 10) am Radio mit
der normalen verbunden?
Ich habe das Radio jetzt schon eine ganze Weile nicht mehr. Daher kann
ich auch nur raten, wo es dran liegen könnte...
tut mir leid dass ich mich jetz länger nich mehr gemeldet hab
aber der emu funktioniert immer nocht nicht, der radio erkennt ihn halt
ned
ich fahr demnächst eh mal zum freundlichen, da schau ich mal ob die
codierung stimmt.. wobei normal schon auf wechsler codiert sein müsste..
Meine Erfahrungen mit dem Concert II:
Ich habe mit einem ATtiny (mit selbstgestricktem Assembler-Programm) die
o.g. Sequenz ausprobiert und festgestellt, dass das "timing" bei mir
nicht kritisch war!
Folgende Zeiteinstellung wurde von mir erfolgreich getestet:
Taktzykluszeiten: 9us; 8,68us (115,2 Baud); 7us; 6us; 5us; 4us
Tests mit Taktzyklen von <=2us schlugen fehl; hier sahen aber auch die
Signale nicht mehr so gut auf dem DSO aus.
Weiterhin habe ich den Zeitabstand des Sendens zwischen den Zeichen von
0,7ms immer weiter (erfolgreich) verkürzt, so dass mein CDC-EMU jetzt
die gesamte Sequenz innerhalb von 0,5ms sendet, dies bei einer
Taktzykluszeit von 4us!
Anmerkungen:
Als Leitungen zwischen dem CDC-EMU und dem Concert II wurden von mir
ausschließlich geschirmte Leitungen verwendet.
Beim Durchlaufenlassen der codes für DSC,TRK,MIN,SEC habe ich begriffen,
dass das Concert II diese als BCD interpretiert.
Viele Grüße von JP
Hallo zusammen,
da ich zur Zeit eine iPod-Steuerung für meinen Audi A3 baue, konnte ich
aus diesem Forum einige Infos ziehen. Danke dafür an Euch alle!!!
Wollte daher hier auch meine Erfahrungen posten:
Mein µC kommuniziert über SCI1 mit dem iPod, über SCI2 mit dem PC
(Monitor). Über über SPI1 sende ich den simulierten Wechsler-Zustand ans
Audi Concert 1 und über einen I/O-Pin lese ich die Tasten-Befehle ein.
Dabei habe ich Folgendes herausgefunden:
1. Senden zum Radio über SPI (Clock + Data)
===========================================
Byte 0: 0x74
Byte 1: (byte)(0xbf - ChangerData_st.CDNummer_u8);
Byte 2: (byte)(0xff - (((ChangerData_st.TrackNummer_u8/10)*0x10) +
(ChangerData_st.TrackNummer_u8%10)));
Byte 3: (byte)(0xbf - ChangerData_st.Minuten_u8); (bringt aber nix, da
das Concert 1 eh keine Zeit anzeigen kann!)
Byte 4: (byte)(0xbf - ChangerData_st.Sekunden_u8);
Byte 5: 0xff
Byte 6: 0xcf (normale Anzeige)
0xcf (NO CD)
Byte 7: 0x7c (Standard)
ABER: Nach dem Einschalten des Radios sendet dieses (wenn bereits
CD-Betrieb gewählt war) zyklisch 0xa4. Das Problem dabei ist, das es in
diesem Zustand KEINEN Tastencode mehr aussendet. Daher muss das beendet
werden!
Dazu sende ich EINMAL hier im Byte 7 den Wert 0x5c. Danach ist Ruhe und
die Tasten reagieren wieder.
2. Empfangen vom Radio (Serielles Signal (ähnlich IR-Fernbedienung) über
1 I/O-Pin)
========================================================================
===========
Ich werte hierbei immer ein Päärchen aus. D.h. die beiden unmittelbar
aufeinanderfolgenden Pakete sind zusammengafasst:
Paket1 Paket2 Werte...
-------------------------
0x10 0x14 0x08 0x14 0xa4 0x14 (ff) Radio Einschalten
0xa4 0x14 zyklisches Senden nach dem Einschalten, wenn bereits
CD-Modus aktiv ist
0x10 0x14 CD-Modus AUS
0x08 0x14 CD-Modus EIN
0xfa 0x14 Track VOR (Einfacher Tastendruck)
0x78 0x14 Track ZURÜCK (Einfacher Tastendruck)
0x18 0x14 CD ZURÜCK (Einfacher Tastendruck)
0x38 0x14 CD VOR (Einfacher Tastendruck)
0x0c 0x38 Taste 1 (Einfacher Tastendruck)
0x8c 0x38 Taste 2 (Einfacher Tastendruck)
0x4c 0x38 Taste 3 (Einfacher Tastendruck)
0xcc 0x38 Taste 4 (Einfacher Tastendruck)
0x2c 0x38 Taste 5 (Einfacher Tastendruck)
0xac 0x38 Taste 6 (Einfacher Tastendruck)
0xa0 0x14 SCAN (Einfacher Tastendruck -> led zeigt keine aktivität!)
0xe4 0x14 RANDOM (Einfacher Tastendruck -> LED EIN)
0x08 0x14 RANDOM (Einfacher Tastendruck -> LED wieder AUS)
0xd8 0x14 VORSPULEN (Taste lange gedrückt halten)
Und nun zu meinem Problemchen:
==============================
Den letzte Wert 0xd8 kann ich zwar empfangen, aber das Radio hört auch
hier nicht mehr auf dieses zu senden.
Habe alle möglichen Bits im Protokoll Wechsler->Radio geändert, aber es
hilft nichts.
Vermutlich erwartet das Radio eine Art Bestätigung für die
Suchlauf-Funktion des Wechslers. Bis dahin wird eben permanent gesendet.
Hat jemand dazu eine Idee?
Ansonsten scheint bei meiner Lösung alles zu funktionieren. Nur den
Shuffle-Mode des iPod habe ich noch nicht implementiert.
Funktion der iPod-Steuerung
===========================
Über die Tasten 1-6 kann ich den Item-Typ auswählen: Playlist, Artist,
Album, Genre, ...
Über die CD-vor/zurück-Tasten kann ich die Item-Nummer wählen, also z.
B. Playlist 1, 2, 3, ... ODER Album 1, 2, 3, ...
Über die Track-Tasten dann zuletzt den Titel im gewählten Item.
Das klappt inzwischen perfekt, bis auf das Spulen.
Schöne Grüße,
Klaus
Moin,
ich möchte gerne auch meinen Ipod mit über den CD Wechsler Eingang
steuern und audio einspeisen. Gibt es von deinem Programm einen Source
und ein Schaltbild, damit man das nachbauen kann?
Grüße
Sven
Hallo,
möchte noch etwas hinzufügen:
Zu 1.) zu Byte 6:
- Normalerwiese auf 0xcf (normale Anzeige)
- Zur Anzeige von "NO CD" einfach auf 0xc7 umschalten
- NEU: Wenn das Radio zyklisch 0x30 sendet (bei Verkehrsfunk TP oder
Telefon-Mute) kann man Byte 6 = 0x4f senden. Dann hört das Radio auf mit
dem zyklischen Senden, jedoch zeigt es kurz (also wenn TP oder MUTE zu
Ende ist) "NO CD" an, was aber nixhts ausmacht. So kann man jedenfalls
normal weiter bedienen!
Zu 2.) Die vom Radio empfangenen Bytes sind Teil des "seriellen"
Protokolls vom Radio. Hierbei werte ich immer das MSB zuerst aus, weil
es sich in C einfacher bitweise nach Links schieben läßt (einfach mal 2
nehmen!).
Außerdem habe ich noch etwas herausgefunden:
0x58 0x14 ZURÜCKSPULEN (Taste lange gedrückt halten)--> zykl. Senden
0x30 0x14 Verkehrsfunk --> zykl. Senden
" " Tel. Mute --> zykl. Senden
An Sven: Pläne gibt es noch nicht (jedenfalls nicht in einem
herausgebbaren Zustand :-). Werde die Schaltpläne hier posten, wenn ich
fertig bin. Dann kann man das (theoretisch) nachbauen.
Thema Quellcode: Grundsätzlich gebe ich den nicht weiter. Grund: In der
Regel ist bei den von mir eingesetzten µC der Code relativ hardwarenah.
Daher kann man den eh nicht einfach so "kopieren" und auf dem eigenen
System zum Laufen bringen.
Viel Sinnvoller ist hier das "Konzept" weiterzugeben, d. h. WIE die
einzelnen Zustandsmaschinen zusammenarbeiten. Hierbei gebe ich gern
Tips. Dazu zeichne ich mal ein Strukturbild. Dann können wir weiterreden
:-)
Übrigens, meine Infos habe ich von Quellen aus dem Netz. Einfach mal
nach "iPod Dock" googlen oder nach dem "iPod Air-Mode" suchen. Den habe
ich nämlich genutzt um vollen Funktionsumfang zu haben.
Den Stecker habe ich bei RS-online.com gefunden (z. B. DD1P030MA1 von
JAE: 435-699).
Als Controller verwende ich einen DSC von Freescale. Sollte aber mit
jedem anderen 16-Bit-µC laufen. Benötige ein paar I/O-Pins, SCI und SPI.
Dazu intern einen Timer-Interrupt mir 1ms. Der HEX-File ist jetzt ca.
17kB groß.
Habe meine freiluftverdrahtete Schaltung nun ins Auto eingebaut und
werde bald den Wechsler ausbauen, um das Protokoll genauer zu
analysieren. Poste das dann natürlich hier!
Gruß Klaus
Hallo,
nach einer kleinen Pause habe ich mich jetzt mal wieder dem Thema
zugewand. Nach ein paar Startschwierigkeiten wird der Emulator jetzt
endlich erkannt. Was mich ein bißchen verwundert ist, was mir das Radio
(Seat Alana) an Daten raus gibt. Scheinbar hält sich das nicht an das
SPI Protokoll. Kann das sein das das Daten Signal vom Radio ein eigenes
Protokoll ist? Es scheint mir so das die Daten mit 1KHz rausgetaktet
werden und das auch nicht immer gleich. erst kommen ein paar Paketet mit
permanent einsen und dann kommt ein 48Bit Paket mit den richtigen daten.
Bist du da der selben Meinung?
Gruss
Sven
Hallo!
Also beim Audi Concert 1 (und sicherlich auch bei vielen anderen VAG
Radios) hat das Radio EINE Sendeleitung. Das Protokoll ist irgendetwas
serielles, ähnlich einerm IR-Fernbedienungs-Protokoll. Siehe hierzu auch
unter "Panasonic" auf:
http://www.mictronics.de/?page=cdc_proto
Vom Wechsler zum Radio handelt es sich um ein SPI (serielles, synchrones
Protokoll) mit einem Takt und (hier) einer Datenleitung.
Meine obigen Angaben bezüglich der Daten vom und zum Radio sind ja noch
nicht bestätigt. Sobald ich Zeit habe werde ich meinen CD-Wechsler aus
dem Auto ausbauen, und das Ganze noch einmal genauer unter die Lupe
nehmen.
Schließlich möchte ich der Vollständigkeit halber ja auch die originale
Funktion "Suchlauf" (also Taste gedrückt halten) implementieren.
Zur Zeit bin ich dabei mal die HW zusammenzuschreiben, damit ich mal
einen vernünftigen Plan liefern kann :-)
Gruß Klaus
Moin ...
es sind mal wieder ein paar Tage vergangen. Jetzt habe ich mit meinem
Tiny2313 es soweit geschafft den CDC vorzugaukeln und die Tastencodes
vom Radio auszuwerten. Bin also kurz vor dem Ziel. Leider kann ich noch
keine Daten an den IPod senden, da dieser noch nicht geliefert wurde.
Ich habe jetzt ein anderes kleines Problem, bei welchem du mir
vielleicht einen Tipp geben könntest. Wenn ich z.B. die Taste >> (skip
forward) drücke, dann sucht er permanent nach dem nächsten Lied.
Scheinbar muss ich dem Radio irgendwie ein Acknowledge geben, das das
nächste Lied erreicht wurde. Hast du da einen Tip, was man da senden
muss? Muss man jede Taste bestätigen?
Gruss
Sven
Hallo!
Die Taste "Skip Forward" habe ich ja oben beschrieben. Dabei sendet mein
Concert 1 nur einmal den o.g. Code.
Oder hälst Du die Taste gedrückt (Suchlauf)? Dann muss ich leider
zugeben, dass ich das auch nocht nicht gelöst habe. Habe mir halt eben
diese "Umgehungslösung" mit der "RD"-Taste ausgedacht, um zu spulen.
Ansonsten sende ich KEINE generelle Bestätigung zum Radio. Der Sendecode
ist aber ggf. von bestimmten, vom Radio gesendeten Kommandos, abhängig.
Siehe hierzu auch oben.
Benutzt Du denn auch ein Concert 1?
Gruß Klaus
Nee ich benutze ein Alana von Seat. Die Codes unterscheiden sich schon
recht stark von deinen. Die Byteanzahl und der Rest ist das gleiche nur
der Inhalt ist anders. Wenn ich bei mir die Skip Forward Taste einmal
kurz drücke dann sendet er permanent den Code fpr die Taste, erst wenn
ich dann einmal wieder die skip backward taste drücke, ist es wieder
ruhig. Deshalb dachte ich, ich muss ihm den neuen Titel bestätigen.
Dann muss ich wohl noch ein bißchen suchen.
Grüsse
Ach so.
Aber wie gesagt, an manchen Stellen habe ich das selbe Problem gehabt.
Ich bin dazu einfach mal alle Bits durchgegangen, habe sie auf 0 oder 1
gesetzt, und geschaut was das Radio tut...
Klaus
Hallo zusammen,
ich spiele auch mit dem Gedanken mir ein Interface für mein VW-MFD Navi
und dem Ipod zu entwickeln.
Die Kommunikation mit dem IPod steht soweit, naja zumindest kann ich den
über mein Terminalprogramm steuern - sowohl im AIR-Mode als auch im
normalen Modus. Die Umsetzung auf nen Atmel bereitet mir keine
Schwierigkeiten...
Ich habe hier gelesen, dass sich schon einige mit dem Protokoll vom
Radio beschäftigt haben. Ich habe mir überlegt ersteinmal so eine art
Datenlogger zu bauen, der mir den Datenstrom vom Radio auf eine Uart
ausgibt und diese dann zu analysieren.
Kann man den Radio auch Daten übergeben, so das diese im Display
angezeigt werden, sowas wie Tracknumber und Spielzeit?
Hat jemand schon irgendwer eine Routine in C für einen Atmega
geschrieben, die den Datenstrom vom Radio auließt, die er mir geben
könnte.
Peppe
Hallo Peppe,
schau' doch mal in meinen Beitrag weiter oben. Dort habe ich die
einzelnen Bytes, die "mein Wechsler-Simulator" ans Radio sendet,
aufgelistet. Es sind bei mir genau 8 Bytes. Diese beinhalten (zumindest
bei meinem Concert 1) die Werte, die Du meinst.
Gruß Klaus.
Hallo zusammen
Dieser Thread ist zwar schon etwas älter aber immer noch interessant. ;)
Habe nochmal eine Frage bezüglich AUX-In wie ihn der GAST am 11.2.2008
schon schilderte und den Martin und Simon (nicht ganz korrekt bzw.
gingen sie von einem anderen Radiotypen aus) beantworteten, denn ich
habe einen AUDI Concert 2 plus (DoppelDIN) Radio der definitiv zwei
separate Eingänge am Quadlock CD-Wechsler (Block B) besitzt, also einen
für den CD-Wechsler und einen für AUX-IN. Siehe Bild im Anhang, AUX-L,
AUX-R und Masse-AUX für eben den AUX IN und SDI CD-R, SDI CD-L und SD
CD-Masse für den Wechsler.
Weis jemand ob oder wie es möglich ist beide frei zu schalten, bzw. muss
man dazu ein extra Byte senden?
Ich möchte den Aux Eingang für meine FSE (A2DP straeming vom Handy)
verwenden und den Wechsler Eingang für ein externes Gerät wie z.B. MP3
player.
Gruß
Hansi
Hallo!
ich habe prinzipiell den Aufbau von andreasw. Simulation des Wechslers
funktioniert auch prima.
Jetzt möchte ich aber auch die Tasten abfragen. Leider scheitere ich da
noch. Prinzipiell muss ich doch den Inhalt von SPDR auslesen, oder?
Leider ist der bei mir immer leer.
Muss ich zum Auslesen in den Slave Modus gehen?
Gruß, ben
@Matthias Kölling
kannst du bitte die restlichen Files auch hochladen.
Es müsste doch noch eine Datei geben in der die main-Funktion steht.
Danke und Gruß
Mario
> Jetzt möchte ich aber auch die Tasten abfragen. Leider scheitere ich da> noch. Prinzipiell muss ich doch den Inhalt von SPDR auslesen, oder?> Leider ist der bei mir immer leer.
Hi,
bin über das gleiche Problem gestolpert, nur dass ich lange ketten aus
'0' und '1' empfangen hatte - kam mir komisch vor...Lösung: Das
Protokoll zum Radio ist SPI, vom Radio zurück ist es ein serielles
Protokoll. Die Antworten darfst Du also nicht per SPI erwarten.
> Muss ich zum Auslesen in den Slave Modus gehen?
Generell zu SPI: Nein, Du musst den Master nicht in den Slave Modus zum
Empfangen setzen. Das ganze läuft über ein Schieberegister im Master
eines im Slave. Der Master empfängt nur vom Slave, wenn er Daten (z.B.
Dummy Bytes) an den Slave schickt. Ergo: Der Slave kann nur senden, wenn
der Master sendet (ziemlich interessante Sache und sehr einfach, wenn
man das ganze verstanden hat...).
@ben
In dem Fall ist mit seriell nicht wirklich "Computer-seriell" (RS232)
gemeint. Es ist vom Protokoll her den TV-Fernbedienungen mit RC5 sehr
ähnlich. Ich habe die nächsten 1,5 Wochen keine Zeit, werde mich aber
dann dran setzen das ganze zu implementieren. Mir scheint momentan die
beste Lösung zu sein Data Out (Radio) an einen Pin des Mikrocontrollers
zu koppeln um dann dort einen Interrupt auszulösen wenn Daten ankommen.
Um das ganze umzusetzen werde ich mich erstmal ein bisschen mit normalem
Infrarotempfang von Fernbedienungen befassen und das ganze dann auf das
Radio adaptieren (für Fernbedienungen ist mehr als genug Source
verfügbar...).
Details bezüglich des Protokolls findest Du unter
http://q1.se/cdcemu/details.php
Grüße,
Michael
Hallo,
ich bin selber an einem ähnlichen Projekt.
Die Ipod's der aktuellen Generation kann ich bereits relativ umfangreich
via µC steuern. Nun fehlt noch das CDC zum Radio (RDC 300 - VW).
Leider funktioniert der Link auf das Protokoll nicht; hat noch jemand
weiterführende Links / oder das Protokoll als PDF etc.?
http://www.mictronics.de/?page=cdc_proto -> broken link :-(
Danke
Matthias Kölling schrieb:
> @ Mario
HELLO Matthias Kölling,can you give me a GateWay4(Schematic & PCB data,
part list)? thanks my email(solon.huang@gmail.com)
Hallo Zusammen.
zuerst einmal, ein super Forum. Alle haben ne Menge beizutragen, aber
irgendwie scheint das alles in sich nicht ganz schlüssig.
Ich habe mich auch mal mit dem Protokoll beschäftigt und kann sagen,
dass die HW-Beschreibung der Schnittstellen hier im Forum bei mir auch
stimmen. Bei meinem ChorusII BJ´02 habe ich einen kleinen Emulator mit
einem ATmega8 kreiert. Er Läuft beim Kontakt Emu->Radio mit der
SPI-Schnitstelle. Bei Radio-Emu ist es die vom Infrarot-FB bekante
Komunikation. Das klappt auch soweit alles. Ich kann alle Positionen
(CD, Track, Minute, Sekunde) im Display veränden. Auch kontrolliere ich
die vom EMu gesendeten Bytes mit dem Chorus-Diagnosemodus (MemoryTase1
beim Einschalten gedrückt halten) Hier bekomme ich wie bei "Martin.S
(martinsuniverse.de)" beschrieben auch die Tastencodes an den Emu
gesendet. Ich sende dann den Code für die gedrückte Tase einfach als
Zeitinformation zurück.
Doch nun zu meinem Problem: In diesem Zustand kann ich die beiden Tasten
für CD-/CD+ nicht richtig nutzen. Unabhängig davon, wlche CD mir im
Display angezeigt wird, wenn ich CD- betätige, passiert garnicht.
Betätige ich CD+, dann erscheint links oben im Display "CDC5 Load". Dann
wird auch der EIngang gemutet. Nach in paar Sekunden schaltet das Gerät
wieder in den normalen betriebsmodus. Wenn ich während der Anzeige "CDC5
Load" die CD+ Taste noch mal betätige, dann wechselt die Anzeige auf
CDC9 Load" und da nach auf CDC10 Load" Während dieser Anzeige kann ich
dann auch CD- betätigen und die Anzeige springt wieder auf die
Vorheriege. Wenn die Taste CD- ode CD+ betätigt und angenommen (Anzeige
ändert sich) wird, dan wird auch der für die Angezeigte CD gesendet.
Eine Bestätigung com Emu mit der Richtigen CD im Telegramm wird zwar
korrekt angezeigt, verändert aber die Funktion der CD-/CD+ Tasten nicht.
Hier könnte ein Beitrag von Heinz vielleicht noch mal ins Spiel kommen.
Hier ist die Rede von Toc-Data und Play-Data. Kannst da mal jemand noch
etwas mehr zu sagen? Wie das funktioniert, bzw. wie das im Protokoll
gehandelt wird?
Gibt es irgendwo noch Informationen, wie das mit dem Panasonic Protokoll
aussieht? Also nicht die HW sondern der Datenverkehr.
VG, F-J
Hi,
weiß jemand zufällig ob ich beim VW Beta 5 von dem CDC
Versorgungsstecker(17) 300 - 500ma ziehen darf/kann? Oder sollte ich
lieber auf den 12 V permanent (16) Wechseln sollte. Weil bei 12 V
permanent würde das doch auch laufen wenn der Schlüssel gezogen ist
oder?
hatte nämlich vor gleich die 5V die ich für den MP3 Player zum aufladen
und für einen USB Buchse zu nutzen. Erzeugt wirds mit einem LM2576.
Ich hoffe jemand kann das Beantworten.
Gruß
Hallo,
hat noch jemand die Unterlagen von www.k9spud.com? Die Seite gibt's
nicht mehr und ich hätte gerne etwas detailierte Infos zum
CD-Wechsler-Protokoll.
Danke und viele Grüße.
Falls das noch für jemanden von Interesse sein sollte bei so einem alten
Radio:
Das Ganze funktioniert auch bei einem Skoda Symphony CD- Radio, habe es
mit nem Tiny2313 aufgebaut.
Worüber ich gestolpert bin war, dass der Masse-Anschluss am blauen
Mini-Iso die Audio-Masse ist und NICHT gleich der Fahrzeugmasse ist.
Daher muss die Masse für die Spannungsversorgung der Emulation seperat
abgegriffen werden.
Viele Grüße.
Hallo Zusammen,
erst einmal danke für die ganzen Informationen in diesem Thread. Ich
versuche gerade einen einfachen Emu für mein 2009er RNS-e zu schreiben.
Ich würde das ganze gern mit einem Arduino Mega mit SPI Interface
machen. Hat das schon einmal jemand versucht? Ist das möglich?
Vielen Dank!
Quiggy
Hallo,
das Topic lebt ja noch ;)
@Tobi, ich kann bestätigen das es Protokolle gibt die von den bekannten
Beschreibungen abweichen, ich hatte es für den Phaeton versucht, kam
aber nicht über ein paar Basic commands hinaus.
Ein großes Problem war das Init welches nie wirklich sauber lief, dazu
kam noch, Play wollte gar nicht (Stop ging aber) und Track selection
auch nicht, CD selection hingegen hat funktioniert, aber nur wenn das
Init sauber war.
Viel dabei geholfen hat mir Matthias Klumpp
(http://kuniseins.ku.funpic.de/), danke auf jeden Fall noch mal ihn.
Aber irgendwie ist das Projekt dann meinerseits zum erliegen gekommen da
es winter wurde und basteln in der Garage auch keine Option war. Zumal
ich mir noch zusätzlich ein Winterauto angeschafft habe und der Phaeton
abgemeldet wurde.
Mal sehen ob ich das wieder aufgreifen werden wenn es wieder warm und
sommer ist und das auto wieder im Fokus steht ;)
Sourcen darf ich wegen einer art NDA mit Matthias nicht veröffentlichen
aber bei bedarf könnte ich meine Serial Dumps posten was die HU
geschickt hat und ich in dem Moment für Tasten gedrück habe.
Viele Grüße
Daniel
Ja es lebt noch :-)
ich habe hier ein Yatour yt-m06 Adapter zu liegen. Das ist ein Car
Digital CD Changer mit sd-kartenslot. Dieses Gerät ist für einen Golf 5
Radio aber ich möchte es einem Citroen C4 anschließen. In einem Golf ist
das Radio RCD 300 verbaut und in einem C4 das rd4 t5 n1 kml sx2 Radio.
Ich dachte es reicht einfach den Stecker anzupassen. Aber da liege ich
wohl falsch. Nach einigen Recherchen habe ich die Infos zu den
Anschlüssen der Radios zusammengetragen. Bei dem RCD 300 nennt der CD
Steuer Bus CD changer, bus DATA IN. manchmal auch Data In oder CDX Data
In.
Bei einem Radio rd4 N1 ist das der CANL CDC und CANH CDC. Wenn ich das
richtig sehe liegt das CD Steuersignal auf dem CAN Bus. Bei den Links
oben sind leider kein Infos mehr zu den CD Steuerbus zu finden.
Mich interessiert es ob bei dem yt-m06 die Firmware zu den veschiedenen
Fahrzeugmodulen angepasst ist. Ich habe einige Mails dazu an Yatour
gesendet bis jetzt leider ohne Rückantwort.
Vielleicht hat ja jemand einige Infos und Tips dazu.
Danke und Gruß fiebiee
Hi zusammen,
die Emulation funktioniert bei mir "nicht ganz" an einem Audi Concert
II.
Ich habe leider keinen echten CD-Wechsler als Referenz und würde mich
daher sehr über Tipps freuen.
Ich sende alle 10ms die empfohlene Sequenz, siehe Screens im Anhang.
Problem:
das Concert II-Display "flackert", wenn ich auf CD gehe, d.h. es springt
zwischen der gewünschten CD-Wechsler Track-Anzeige und NO CD CHANGER
(o.ä.?) hin und her und schaltet den Wechsler-Line-In nicht frei.
Ebensolches Flackern, wenn ich beim Einschalten die Taste CD gedrückt
halte.
Lösungsversuche:
- Ich habe bereits steigende statt fallender Flanke versucht, da
reagiert das Radio gar nicht.
- Außerdem habe ich den Pegel von 3.3V per Pull-Up/Open Drain auf 5V
gehoben, ebenfalls keine Änderung. (Ich benutze einen IOIO OTG (hat mit
Android-Handy noch andere Aufgaben), das ist ein Microchip PIC24FJ256.)
Fragen:
- Passt die Sequenz wie auf den Screens gezeigt?
- Eine Vermutung wäre noch, dass der Wechsler im Radio nicht
codiert/aktiviert/freigeschaltet ist und das Radio daher mit Flackern
reagiert. Kann das jemand bestätigen?
Danke und schönes Wochenende!
@jumpgood
hast du dein Problem schon lösen können? Ich habe nämlich das Problem
das ich obwohl das "CDC1 Track1 0:00" angezeigt wird kein Ton ausgegeben
wird. Kann es sein das man dem Radio noch mitteilen muss das es das Lied
abspielen soll?
Horst schrieb:> kein Ton ausgegeben wird.
Ich habe bei mir festgestellt das Audi Concert scheint empfindlich auf
die Audio-Pegel zu reagieren. Wenn der Eingang übersteuert ist kommt
kein Ton raus.
Thomas F. schrieb:> Horst schrieb:> kein Ton ausgegeben wird.>> Ich habe bei mir festgestellt das Audi Concert scheint empfindlich auf> die Audio-Pegel zu reagieren. Wenn der Eingang übersteuert ist kommt> kein Ton raus.
Hallo,
Ich Speise über einen MP3 Player das Audio Signal ein, ich versuche mal
mit der Lautstärke zu spielen. Da du auch ein Audi Concert besitzt,
welche Bytes sendest du an das Radio um den CD Wechsler vorzutäuschen?
Danke im Voraus
Horst schrieb:> Da du auch ein Audi Concert besitzt,
Nicht mehr. Das war in meinem letzten Auto welches ich vor ein paar
Monaten verkauft habe. Darin hatte ich ein Audi Concert 1. Anfangs habe
ich auch versucht den CD-Eingang mit eigener HArdware+Software frei zu
schalten. Aber nachdem ich zwei Tage rumprobiert und es nicht
funktioniert hat habe ich dann bei Ebay einen Adapter gekauft. Müsste
noch irgendwo rumliegen aber auslesen kann ich nichts da kein passendes
Radio mehr vorhanden.
@Thomas Forster
Achso ok, trotzdem danke
Klaus schrieb:> Freischalten? Um den Cd Wechsler freizuschalten benötigt man doch> ein Diagnose Interface (wie zB VCDS). Oder geht das auch anders?
Ja, du kannst zB mit einem Raspberry Pi oder ICs dem Radio vortäuschen
ein CD Wechsler zu sein, indem du bestimmte Bytes an das Radio sendest.
Ob das per VCDS geht bin ich mir nicht sicher. Hier ist warscheinlich
von freischalten die Rede, weil das Radio den Audio Eingang nur dann
"abhört", wenn auch ein CD Wechsler angeschlossen (vorgetäuscht) ist.
Hallo Horst.
Danke für die Antwort.
Das mit den zu sendenden Signalen ist mir soweit schon klar. Hatte ja
selbst was diesbezüglich gebaut:
Beitrag "iPod-Interface am Anschluss des CD-Wechsler für Audi Werksradio (1. Generation)"
Was ich jedoch meinte ist, dass man in der Codierung des Radios den
Wechsler erst einmal freischalten muss, sonst kommuniziert das Radio
erst gar nicht über die Ports.
Und das geht zB mit VCDS.
Gruß Klaus.
Klaus S. schrieb:> Hallo Horst.> Danke für die Antwort. Das mit den zu sendenden Signalen ist mir soweit> schon klar. Hatte ja selbst was diesbezüglich gebaut: Beitrag> "iPod-Interface am Anschluss des CD-Wechsler für Audi Werksradio (1.> Generation)">> Was ich jedoch meinte ist, dass man in der Codierung des Radios den> Wechsler erst einmal freischalten muss, sonst kommuniziert das Radio> erst gar nicht über die Ports. Und das geht zB mit VCDS.> Gruß Klaus.
Hallo Klaus,
achso so war das gemeint. Könntest du mir vielleicht bei meinem Versuch
helfen einen CD Wechsler zu emulierten?
So wie ich das nämlich verstanden habe muss man zwei Leitungen
ansteuern. Eine CLOCK-Leitung und die DATA IN Leitung. Ich entwickle in
C mit dem Raspberry Pi und nutze da SPI. Als Clock-Frequenz habe ich
125KHz eingestellt. Aber was für Bytes muss ich dann genau auf die Data
In Leitung schicken? Ich verstehe nicht so recht anhand der hier
verlinkten Seiten wie das Protokoll aufgebaut ist.
Im Moment habe ich es ab und zu geschafft, wenn ich jede 10ms folgende
Bytes sende:
0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xCF, 0x7C
Und zwischen den Bytes jeweils 700us Pause.
Meistens wird mir dann "CDC Error" oder "CDC Load" angezeigt. Selten
auch "CDC1 Track 1 0:00".
Danke im Voraus
Gruß Horst
Andreas W. schrieb:> Hast du mal probiert am Anfang die Pakete zum Laden einer CD zu> senden?> https://www.mikrocontroller.net/attachment/highlight/33106> Ist schon sehr lange her, aber ohne Grund habe ich das nicht eingebaut.
Danke ich schau mir das mal an, aber muss ich das Radio doch immer vor
dem Emulator einschalten oder?
Klaus S. schrieb:> Bei mir ist das leider auch schon etliche Jahre her. Ich schau mal> in den C-Code welche Bytes ich gesendet hatte...
Ok danke
Gruß Horst
Horst schrieb:> aber muss ich das Radio doch immer vor> dem Emulator einschalten oder?
Eher umgekehrt, der Emulator muss spätestens gleichzeitig mit angehen:
Das Audi Delta beispielsweise sendet direkt nach dem Einschalten eine
Bytefolge an den Wechsler. Diese Folge muss bereits richtig beantwortet
werden sonst bleibt der Wechslereingang gesperrt, egal was später noch
kommt.
Der CDC-Emulator muss also spätestens mit dem Radio einsatzbereit sein.
Für das Concert habe ich beim Einschalten nicht mehr explizit gemessen
aber dieses sendet auch gleich mal eine Bytefolge.
Meinen CDC-Emulator für das Delta-Radio hatte ich damals mit einem
Tiny2313 aufgebaut. Angeschlossen an den Spannungsausgang für den
Wechsler startet der Atmel schnell genug um dann gleich zu antworten.
Wie schnell der Raspi mit SPI bei dir startet weiß ich nicht.
Thomas F. schrieb:> Eher umgekehrt, der Emulator muss spätestens gleichzeitig mit angehen:>> Das Audi Delta beispielsweise sendet direkt nach dem Einschalten eine> Bytefolge an den Wechsler. Diese Folge muss bereits richtig beantwortet> werden sonst bleibt der Wechslereingang gesperrt, egal was später noch> kommt.> Der CDC-Emulator muss also spätestens mit dem Radio einsatzbereit sein.>> Für das Concert habe ich beim Einschalten nicht mehr explizit gemessen> aber dieses sendet auch gleich mal eine Bytefolge.>> Meinen CDC-Emulator für das Delta-Radio hatte ich damals mit einem> Tiny2313 aufgebaut. Angeschlossen an den Spannungsausgang für den> Wechsler startet der Atmel schnell genug um dann gleich zu antworten.>> Wie schnell der Raspi mit SPI bei dir startet weiß ich nicht.
Hallo,
ok das werde ich aufjedenfall ausprobieren. Wie seid ihr eigentlich an
die Packete gekommen die dem Radio sagen das es z. B. eine CD laden
soll? Habt ihr die Packete dann einfach von einem CD Wechsler
mitgeschnitten?
Und die 8 Bytes sagen doch lediglich CD, Track, Minute, Sekunde,... Usw
aus.
Oder gibt es verschiedene Zeitpunkte (zum Beispiel direkt beim Start des
Radios) an denen die Packete "andere Informationen beinhalten"?
Gruß Horst
Horst schrieb:> Wie seid ihr eigentlich an die Packete gekommen
Für das Audi delta hatte ich einen Wechsler den ich durch einen
MP3-Player ersetzen wollte. Also habe ich einfach die Datenleitung mit
dem I2C-Sniffer von PeDa abgehört (Delta hatte eine Art
I2C-Schnittstelle im Gegensatz zum späteren Concert mit SPI).
Das spätere SPI-Protokoll habe ich mir nicht mehr angesehen, nur noch
den gekauften Adapter angesteckt und fertig.
Thomas F. schrieb:> Für das Audi delta hatte ich einen Wechsler den ich durch einen> MP3-Player ersetzen wollte. Also habe ich einfach die Datenleitung mit> dem I2C-Sniffer von PeDa abgehört (Delta hatte eine Art> I2C-Schnittstelle im Gegensatz zum späteren Concert mit SPI).>> Das spätere SPI-Protokoll habe ich mir nicht mehr angesehen, nur noch> den gekauften Adapter angesteckt und fertig.
Hallo,
Achso, habe ich das eigentlich richtig verstanden, dass der Audio
Eingang ab dem Moment freigegeben ist, wenn die Pakete für CD, Track,
Minute,... Usw gesendet werden?
Und du sagtest in einer vorherigen Antwort zu mir, dass es sein kann das
ich den Audio Eingang übersteuere und deswegen keinen Ton habe, ich habe
allerdings nur ein MP3 Player angeschlossen. Gibt es noch andere Gründe
warum ich nichts hören kann?
Gruß Horst
Horst schrieb:> den Audio Eingang übersteuere und deswegen keinen Ton habe
Nun, so ist mir das bei mir jedenfalls vorgekommen. Hast du mal
unterschiedliche Geräte ausprobiert? Jedes Handy/Navi hat ja heute einen
Audio-Ausgang.
> Gibt es noch andere Gründe warum ich nichts hören kann?
Richtig angeschlossen? Audio-Masse angeschlossen?
Mehr fällt mir nicht ein.
Thomas F. schrieb:> Nun, so ist mir das bei mir jedenfalls vorgekommen. Hast du mal> unterschiedliche Geräte ausprobiert? Jedes Handy/Navi hat ja heute einen> Audio-Ausgang.>>> Gibt es noch andere Gründe warum ich nichts hören kann?>> Richtig angeschlossen? Audio-Masse angeschlossen?> Mehr fällt mir nicht ein.
Hallo,
mh ja hab auch schon mein Handy angeschlossen. Hab das jetzt gerade noch
ein paar mal ausprobiert, wenn der Raspi überhaupt mal erkannt wird,
dann steht da wieder nur "CDC1 Load" oder "CDC Error". Ich teste mal
weiter.
Hallo,
nach vielen weiteren Tests, bin ich leider nicht wirklich
weitergekommen, ich hab testweise nochmal versuch das Signal zu
invertieren, sodass ich immer 5V anliegen habe und dann nach 0V schalte,
vorher war ja immer 0V und ich hab dann eben 5V geschaltet.
Naja trotzdem danke
Es ist eine SPI-Schnittstelle. Diese hat nun mal Clock und 2xData.
Wenn man nur senden will reicht theoretisch Clock
k und Data-in aus. Allerdings bekommt man da nicht mit ob das Radio
gerade was sendet. Also verwendet man besser alle drei Leitungen.
Andreas W. schrieb:> @Horst> Ist denn auch der richtige SPI-Modus gewählt (Mode 2, CPOL=1, CPHA=0)?
Beim Raspberry Pi kann man zwischen zwei Modes wechseln, ich hab Mode 0
gewählt.
Allerdings habe ich es jetzt endlich geschafft, das Radio spielt jetzt
das Audiosignal vom Audio Eingang ab. Es hat mir echt viele Nerven
gekostet. Es läuft nicht 100%ig stabil und mir ist auch noch nicht klar
wie genau die Bytes das Radio steuern (teilweise hat sich sogar die
Lautstärke verstellt wenn ich am 2. Byte (Disc) gedreht habe), aber das
mindeste ist geschafft und so hab ich mein Ziel erreicht.
Danke an euch für die Hilfestellung, falls noch jemand fragen hat, kann
er sich gerne melden.
Gruß Horst
Hallo,
meine Lösung wollte ich natürlich nicht verschweigen.
Folgende Bytes sende ich an meine Pegelwandlerschaltung (3,3V auf 5V,
deshalb auch invertiert):
0x8B, 0x26, 0x01, 0x00, 0x00, 0x00, 0x30, 0x83
Am Radio kommt dann wiederrum das hier an:
0x74, 0xD9, 0xFE, 0xFF, 0xFF, 0xFF, 0xCF, 0x7C
Das Packet sende ich in einem Intervall von 5ms und zwischen jedem Byte
warte ich 700µs.
Gruß Horst
Hallo zusammen ich schreibe mal hier in diesem Thread damit ich keinen
neuen erstellen brauche.
Habe den Arduino uno an mein Audi Symphony Radio angeschlossen und
funktioniert auch soweit also cdc wird erkannt.
Aber der Line In ist ziemlich leise muss das Radio relativ laut stellen,
ist das normal in dem fall, hatt der Originale wechsler eine Integrierte
Verstärkung?
Kann mir jemand etwas empfehlen um den Pegel anzuheben?
Danke schonmal.
LG
Andre schrieb:> Hallo zusammen ich schreibe mal hier in diesem Thread damit ich keinen> neuen erstellen brauche.
Das hätte genausoviel Aufwand bedeutet, wie dich hier dran zu hängen und
diesen Thread zu kapern.
beim ursprünglichen Thread ging es um ein CD Wechsler Protokoll.
Bei deinem Beitrag geht es um Lautstärke an einer Schnittstelle.
Die beiden Themen haben also eigentlich gar nix miteinander zu tun,
insbesondere da du den Betreff deines Beitrages noch nicht mal
geändert hast, und es anscheinend immer noch um CD Wechsler Protokolle
geht. Wer sollte nun also deinen Beitrag wieder finden bzw. dir auf dein
anders gelagertes Problem/Thema antworten?
Dir stünde es frei, einen Link zu diesem CD-Wechsler Thread in deinem
(neuen) Beitrag einzufügen, damit der geneigte Leser weiß, daß das
gegebenenfalls irgendeinen Bezug hat.
@Moderator: Bitte Beitrag von Andre an einen anderen Thread anhängen.
Sehr konstruktiv, danke für nichts.
Da das ganze zusammenhängt habe ich das hier hineingeschrieben. Es geht
um das Paket ansich.
Falls jemand genauso das Problem hat.
Wie ja hier in den Antworten, die ich mir alle durch gelesen hab, glaube
auch dabei stand nur irgendwie keine Lösung dazu. ??♂️
Aber egal mache ich extra nen neuen Thread auf.
Ich muss mich hier mal einklinken. Ich habe aktuell etwas ähnliches vor,
aber für die andere Seite. Den "CD-Wechsler-Simulator" alias
USB/SD/Bluetooth-Adapter habe ich schon, ich möchte ihn aber nicht
direkt an ein Radio anschließen, sondern einen Arduino als Übersetzer
dazwischen hängen, da es für mein Radio (Audi Delta CC) keinen Simulator
gibt.
Habe auch schon fast alles fertig, bis auf die Auswertung der
Kommunikation vom CDC-Simulator kommend. Also quasi das, was in dem
Projekt aus diesem Thread gesendet wird, zu empfangen und auszuwerten -
bzw eigentlich reichen die Informationen aus Byte 2 und 3 (CD- und
Track-Nr.) um auch diese ans Radio weitergeben zu können.
Habt ihr ne Idee, wie man das Arduino-Basiert decodiert?
Erschwerend habe ich mittels Oszilloskop dazu feststellen müssen, dass
im 3. Byte jede Ziffer der Track-Nr. einzeln aufgelöst wird und das Byte
quasi zweigeteilt ist. Beispiel:
Track 01: 0000 0001
Track 02: 0000 0010
Track 11: 0001 0001
Track 21: 0010 0001
Bin ich überkritisch? Oder ist das richtig, dass Du immer wieder die
selben Fragen stellst und ab und zu mal eine neue hinzufügst?
Beitrag "Hilfe bei Signalbestimmung bzw Auswertung mittels Arduino"
Und jetzt noch Thread-Nekrophilie?
Hast Du nun verstanden wie SPI funktioniert? Hast Du irgendeine Idee,
wie SPI und die Radio-Schnittstelle zusammenpassen?
Poste mal den Code den Du fertig hast.
Was ist das Problem dabei, ein bestimmtes Byte aus einer Serie von Bytes
auszuwerten?
Und was ist jetzt bei der Kodierung der Track-Nummer das Problem?
Theor schrieb:> Bin ich überkritisch? Oder ist das richtig, dass Du immer wieder die> selben Fragen stellst und ab und zu mal eine neue hinzufügst?
Ich bin ehrlich gesagt ziemlich überfordert, da alles was ich bisher als
mögliche Lösung gelesen habe, die "klassische" Arduino-Programmierung
bzw. Libraries übersteigt.
Dazu fällt es mir, auch da ich absolut aus einer anderen fachlichen Ecke
komme, schwer mich vernünftig auszudrücken - das merke ich ja selbst.
> Und jetzt noch Thread-Nekrophilie?
Naja, hier steckt ja schon einiges an Know-how zur schnittstelle drin...
> Hast Du nun verstanden wie SPI funktioniert? Hast Du irgendeine Idee,> wie SPI und die Radio-Schnittstelle zusammenpassen?
Ja, schon. Und daher weiß ich auch, dass das ganze weniger zusammen
passt als ich bisher dachte. Gründe:
-fehlendes SlaveSelect-Signal beim Radio / keine definierte
Startbedingung bzw nur das Timing
-bei der Radioschnittstelle ist ein HIGH-Pegel eine 0
> Poste mal den Code den Du fertig hast.
Kann ich morgen gerne machen incl Screenshot der Auswertung. Habe etwas
"vereinfacht" mittels bitbang/polling, das ist aber nicht ganz stabil -
alle paar Lesevorgänge verschluckt der Arduino 1-2 Taktzyklen.
> Was ist das Problem dabei, ein bestimmtes Byte aus einer Serie von Bytes> auszuwerten?>> Und was ist jetzt bei der Kodierung der Track-Nummer das Problem?
Naja, für jemanden der das öfter macht, ist das vielleicht kein Problem.
Für mich schon - ich dachte, für so etwas wären Foren da. Wenn ich das
alles schon könnte, oder die Informationen die ich bisher gefunden habe
für mich leicht verständlich wären, würde ich nicht nachfragen.
Dennoch vielen Dank für Deine Geduld mit mir!
Im Anhang mal der Code, und dazu noch das Foto der Ausgabe, wo man sieht
dass teilweise vermutlich was verschluckt wird (eigtl müsste permanent
das gleiche angezeigt werden - CD 1 Track 16).