www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega16 mit iPod kommunizieren lassen


Autor: Tobi Re (tr123456789)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich sitze seit ein paar Tagen daran meinen atmega16 über die serielle 
Schnittstelle mit dem iPod zu verbinden.

Hier im Forum scheinen einige Leute zu sein, die dies schon geschafft 
haben.

Allerdings gibt es hier nirgendwo Code, den ich einfach kopieren könnte.

Mein Programm soll dem iPod den Befehl "play" übermitteln.


Seht ihr einen offensichtlichen Fehler?


Mein iPod ist folgendermaßen verschaltet:
http://stud3.tuwien.ac.at/~e0026607/ipod_remote/ip...


Viele Grüße
Tobi

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
F_CPU gesetzt?

Autor: Tobi Re (tr123456789)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist von der ide definiert

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auch richtig? und läuft der Atmega auch wirklich damit? lass mal ne LED 
im sekundentakt blinken...

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wieso eigentlich die Delays nach jedem Byte? Das ist nicht nötig. Ich 
hatte das mal auf einem MSP430 gemacht, ging auf Anhieb. Ich bild mir 
auch ein, den Code hier schon mal gepostet zu haben....im Anhang nochmal 
aus meinem Projekt. Wichtig sind die Konstanten-Arrays und die 
BuildIPodMessage() Funktion. Der Rest gehört zu einem RC5 -> IPod 
Umsetzer. Vielleicht hilft es. Achso, PutSingleChar() musst du natürlich 
passend implementieren, oder durch dein uart_put_char ersetzen.

Autor: Tobi Re (tr123456789)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So... ich hatte ein anderes "play" als christian.
Der Befehl von Christian ist um ein byte länger. einmal 0x00 mehr.

http://nuxx.net/wiki/Apple_Accessory_Protocol#Adva...
auf dieser Seite ist "play" mit nur zwei byte angegeben.

Hab's verändert. Funktioniert immernoch nicht.

Ich glaube auch eher, dass mein "play" richtig ist.

Also die F_CPU hab ich mit großer Sicherheit richtig eingestellt. 
Sämtliche andere Projekte funktionieren. Auch LED-blinken im 
Ein-Sekunden-Takt.

Eine Kommunikation zwischen zwei Mikrocontrollern funktioniert auch.

Hm... Da keiner sagt, dass mein Code falsch ist, denke ich, dass die 
Kontakte am iPod nicht korrekt sind.

Was ich mich die ganze Zeit schon Frage ist: Muss der iPod wissen, mit 
welcher Baudrate der Befehl ankommt? Mein Mikrocontroller muss das 
nämlich wissen, aber auf allen Internetseiten für iPod Accessory 
Protocol steht, dass 19200 Baud normal sind, aber dass auch ander 
Baudraten funktionieren.

@christian: Welche Baudrate benutzt du eigentlich?


p.s: schonmal vielen Dank für die ersten Tipps.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe 19200 Baud benutzt. Generiert aus einem 3,6867 MHZ Quarz auf 
dem MSP430. Da ich die Timer-UART genommen habe, hab ich da den 
Baudratenquarz verwendet. Hast du auch richtig gezählt am Stecker? Und 
der Widerstand, mal einen anderen probiert? Ist deine Spannung am AVR 
auch 3,3V? Der IPod hat ein 3,3V Interface da dran.

Nochmal hier: http://pinouts.ru/PortableDevices/ipod_pinout.shtml und 
hier: http://www.adriangame.co.uk/ipod-acc-pro.html vergleichen, ob das 
alles passt.

Autor: Tobi Re (tr123456789)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab einfach einen poti als spannungsteiler genommen.... das liegen 
jetz ungefähr 3,4V an. am tx vom µc bzw. am rx vom iPod.

ich hab mal am tx vom iPod gemessen... da liegen weniger als 3V an... 
ist das falsch?

Ich glaube den Widerstand zu wechseln macht keinen sinn... das sind 
definitiv 500k

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, 500k ist korrekt, das hab ich nochmal nachgeschaut. Dann wirds 
am Protokoll liegen. Mein Code den ich gepostet habe, funktioniert auf 
jeden Fall mit dem IPod Touch. Wieso da jetzt einen Längendiskrepanz 
ist, weiß ich aus dem Stegreif jetzt auch gerade nicht mehr. Müsste ich 
zu Hause nochmal nachschauen, ob das wirklich der aktuelle Code war.
Hast du mal andere Kommandos getestet?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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