MRC-60 Hack: LED-Beleuchtung

Das Board des MRC-60 von Sony-Ericsson besteht aus zwei Teilen. Einem Mainboard mit einem AVR Controller (ATmega168V) und einem zweiten Board (Sub Board) das über einen 16-poligen Connector fest verlötet ist. Besonders interessant finde ich die Aufteilung der Schaltung in zwei Teile, die eigentlich nur eine Schlussfolgerung zulässt. Wiederverwendung! Wahrscheinlich hat das Mainboard oder das Peripherieboard auch noch in einem anderen Produkt seinen Platz gefunden.
Neben einem IR-Empfänger befindet sich auf dem 2. Board auch eine LED-Beleuchtung. Es handelt sich dabei um zwei blaue LEDs die über einen LED-Treiber angesteuert werden. Ein paar Messungen mit dem Durchgangsprüfer haben dann ergeben, dass die Beleuchtung über den Pin3 an PORTD (PD7) gesteuert wird.
MRC-60 Peripherieboard mit LED-Beleuchtung
Erstes Ziel: LED-Beleuchtung
Das erste und einfachste Ziel ist die Ansteuerung der LED-Beleuchtung. Dem steht nach der Analyse auch nichts weiter im Weg. Als Testprogramm soll ein 1000 ms Blinker die Sache bestätigen. Und weil Eclipse gerade auf ist wird der Test in C implementiert. Kein großes Ding. Port initialisieren und in einer Endlosschleife den Pin toggeln.
#include <avr/io.h>
#include <avr/delay.h>

int main(void) {
  DDRD |= (1<<DDD7);    //PD7 als Ausgang definieren

  while (1) {
    PIND |= (1<<PD7);  //PD7 toggeln
    _delay_ms(1000);    //1000ms warten
  }
}
Funktioniert! Beim ersten Anlauf. Die LEDs blinken im Zweisekundentakt. Damit die Zeitbasis für das Delay auch stimmt muss in den Einstellungen zur Target Hardware die MCU Clock auf 3686472 (3,686472 MHz) eingestellt werden. Auch die Farbe und Helligkeit der LEDs ist schön.
Beleuchtung (MRC-60 Hack)
Damit hat man schon einen kleinen Teil der Kontrolle über das Board gewonnen. Nur einen kleinen, denn es warten noch Dinge wie serielle Schnittstelle, ausgeführte Anschlüsse des ATmega und natürlich ein Infrarot-Empfänger.
Links und Referenzen: