Stap 5: De iPod apparaten
De iPod is een veelzijdige kleine mp3-speler en kan worden gebruikt met veel verschillende accessoires. Die 30 pins connectors houdt pinnen voor Docking stations, firewires, USB en meer. In dit geval gebruiken we de seriële Rx en Tx pinnen.
Die dock extender kabel wordt gebruikt omdat het verbindingen voor die pinnen in tegenstelling tot de normale usb verbinding die alleen + USB-gegevens - USB data VCC en GND.
De connector is een JAE DD1 30 pinsconnector.
Dit project maakt gebruik van de volgende 5 pinnen:
- + 5 v - Pin 23
- GND - Pin 16
- RX - Pin 13
- TX - Pin 12
- ACC - Pin 21
De Acc pin lage door middel van een weerstand is getrokken, en afhankelijk van de weerstand, de iPod zal weten wat voor soort accessoire die is gekoppeld en hoe te communiceren dienovereenkomstig.
Een lijst van alle de pinnen en wat zij doen kunnen worden gevonden op:
http://pinouts.ru/PortableDevices/ipod_pinout.SHT...
De Apple accessoire-protocol wordt gebruikt om te communiceren met de Ipod. De standaard 8N1 seriële configuratie wordt gebruikt. 8N1 geeft aan dat er 8 databits, No pariteitsbit en 1 stopbit. Deze configuratie is wat de Arduino wordt ervan uitgegaan dat wanneer u tot stand de baud-rate voor transmissie (ie brengt. Serial.begin(9600);). Dit kan worden gewijzigd door toevoeging van een configuratie-argument aan dat gesprek (ie. Serial.begin (9600, SERIAL_5N1);).
In dit project zullen we gewoon gebruiken de standaard 8N1-configuratie.
Dit project zal communiceren met een baudsnelheid van 9600.
De iPod kan worden gezet in 3 verschillende modi:
- Een stem opnamemodus. Dit wordt niet gebruikt in dit project
- Een eenvoudige modus. Dit bestaat uit de basis commando's. (Afspelen/pauzeren, overslaan, Volume, selecteren, etc.)
- De geavanceerde iPod Remote modus (lucht) dit voorziet in gegevens worden verzonden naar en verzameld van de iPod. (Geen volumeregeling)
In de AiR-modus, krijgt het scherm u de status "OK to disconnect" op de oudere generatie iPod. De iPhone 3, iPod touch en iPad niet tonen van dit scherm en kunt u het regelen van de app zowel de iPod zelf.
Lucht modus wordt meestal gebruikt wanneer verbinding maakt met een accessoire waarmee de gegevens aan een audio signaal worden verwerkt, en de volumeregeling wordt allemaal gedaan door middel van dit accessoire.
Aangezien MuseHack maakt gebruik van de hoofdtelefoon-aansluiting, terwijl in de modus 4 (Air-modus), wordt volumeregeling een beetje lastig. Dit wordt bereikt door het tijdelijk schakelen terug naar modus 2 volume aanpassen voordat hij terugkeerde naar modus 4.
Dit zal in meer detail in de codesectie worden behandeld.
Adriangame biedt een goed opgemaakte beschrijving van het protocol dat wordt gebruikt om te praten met de iPod:
http://www.adriangame.co.uk/iPod-ACC-Pro.
Elke opdracht die is verzonden naar de iPod bevat ten minste 5 onderdelen in byte vorm.
- De kop (0xFF, 0x55)-elke opdracht begint met deze exacte header.
- De grootte van de opdracht - deze byte vertegenwoordigt het aantal volgende bytes met uitzondering van de controlesom.
- De wijze van de opdracht - dit project gebruikt meestal modus 4 met een paar opdrachten in de modus 2 daar.
- De commando - twee bytes specifiek voor de instructie verzonden/ontvangen. In de modus 4 is de eerste byte van de opdracht meestal 0x00.
- De Parameters - tot 9-parameters kunnen worden verzonden met details van de opdracht
- De controlesom - deze byte wordt gebruikt voor foutcontrole.
De controlesom-byte bedragen de waarde van de bytes vanaf modus tot aan het einde van de parameters.
Dit bedrag wordt vervolgens afgetrokken van 0x100 (256). Aangezien de som groter dan 0xFF (255 zijn kan) en we alleen willen de lagere byte, de bitsgewijze operator & wordt gebruikt met 0xFF te werpen de hogere bits.
(dwz. controlesom = (0x100 - som) & 0xFF)
Dit is de methode die wordt gebruikt door de iPod, maar is slechts één manier om te berekenen van een controlesom.