Benutzer-Werkzeuge

Webseiten-Werkzeuge


serielle_schnittstelle

Serielle Schnittstelle

Diesen Text gibt es auch als PDF.

Der Media Player ist mit einer seriellen Schnittstelle mit 3,3V Logikpegel ausgestattet. Über diese Schnittstelle erhält man Zugriff auf die Konsole des Bootloaders U-Boot und kann die Bootausgaben des Kernels ansehen. Über die Kommandozeile des Bootloaders ist es möglich verschiedene Kernel oder Root-Filesysteme zu laden. Weitere Informationen zum Bootloader gibt es hier: http://www.denx.de/wiki/U-Boot

Steckerbelegung

Die folgenden Bilder zeigen die Platine im Media Player und die Steckerbelegung.

Auf den Fotos sind vier Pins zu sehen, der Pin 1 ist jeweils auf der rechten Seite und durch einen kleinen weißen Pfeil/Dreieck markiert. Die Steckerbelegung ist wie folgt:

Pin Beschreibung
1 +3V3 (Plus)
2 Tx (Transmit/Senden)
3 Gnd (Minus)
4 Rx (Receive/Empfangen)

Der richtige Adapter

Der Player arbeitet mit +3,3V Spannungspegel, eine Schnittstelle am PC mit +- 12V. Daher können diese nicht direkt miteinander verbunden werden. Man benötigt einen TTL(3,3V) nach RS232 oder einen TTL(3,3V) nach USB Wandler. Vor der Bestellung eines TTL-RS232 Wandlers sollte man prüfen ob der PC mit einer RS232-Schnittstelle ausgestattet ist, bei aktuellen Laptops ist das selten der Fall. Es folgen mehrere Bestellvorschläge bei einschlägigen Versandhändlern. Generell sollte jeder Adapter funktionieren welcher mit 3,3V Logikpegel arbeiten kann. Also auf z.B. Basis des FT232 Chips.

TTL – USB

Die Verbindung zum PC

Die Pins Rx/Tx müssen mit dem PC gekreuzt verbunden werden, also Rx(Pc) mit Tx(Player) und Tx(PC) mit Rx(Player). Die +3,3V Leitung muss nicht verbunden werden wenn der Wandler vom PC versorgt wird, wie es bei USB-Wandlern i.d.R. der Fall sein sollte. Die anderen drei Leitungen sind nötig.

Vor der Verbindung zum Media-Player kann man den Wandler testen in dem man auf der PC-Seite den Rx- mit dem Tx-Pin verbindet und in einem Terminalprogramm Daten sendet. Diese sollten umgehend im selben Terminalprogramm angezeigt werden. Als Terminalprogramm empfehle ich putty für Windows bzw. picocom für Linux.

Einstellungen für das Terminal
Baudrate 115200
Datenbits 8
Päritätsbit kein
Stopbits 1
Flusskontrolle nein

Weitere Informationen zur seriellen Schnittstelle am PC findet man im Artikel zu RS-232 bei Wikipedia.

Windows

Putty kann direkt herunter geladen werden und ohne Installation arbeiten. Das erste Fenster zeigt den Startbildschirm, das zweite Fenster wird geöffnet wenn man im Menü links ganz unten auf Serial klickt. Mit einem Klick auf Open öffnet sich die die Konsole und es kann los gehen.

Linux

Der Befehl zum Starten von picocom (wenn es vorher installiert wurde) in einer Konsole lautet wie folgt:

picocom --b 115200 --f n --d 8 /dev/ttyUSB0

/dev/ttyUSB0 ist dabei wenn nötig durch das jeweilige Device zu ersetzen als welches der Wandler im System eingebunden ist. Wenn man einen USB-Wandler verwendet, kann man nach dem Einstecken dmesg aufrufen, um herauszufinden, wie das Device heißt. Ggf. benötigt man Superuserrechte (mit dem Befehl su oder sudo, je nach Distribution).

Ausgabe

Hat man alles korrekt angeschlossen und schaltet dann den Media Player ein so erscheint folgende Ausgabe auf dem Bildschirm:

Check NOR device...
Nor Reg Init
NOR ID: 0xFF0xFF0xFF
No Matched SYSID!
Check NAND device...
CE0:NAND ID:0xEC0xDA0x100x950x44
NAND_LARGE_NORMAL
SYSBLK Found in BLK0
gdwImgOffset = 0x00000400
gdwImgLBANum = 0x00000100
gdwImgRamAddr = 0x00180000
BOOTCODE_NAND_EXIST...
Bootable device Status = 0x0002
Try to load image from NAND...
Nand_load_firmware: Start from BLK4
Bootable image/device Status = 0x0202
Load BootCode done, Jump to 0x00180000.


U-boot For Z000000


U-Boot 2009.08-dirty (Oct 28 2011 - 16:50:34)
DRAM:
 128 MB
NAND:
 NAND_LARGE_NORMAL
SYSBLK Found in BLK0
sk_nand_get_pagesize:_pChip->pagesize=2048
sk_nand_get_blocksize:_pChip->blocksize=131072
sk_nand_get_oobsize:_pChip->oobsize=64
found name is NAND 3,3V 8-bit
type->pagesize=2048B, type->erasesize=131072B
type->chipsize=268435456B, chip->chipsize=268435456B
mtd->writesize=2048B, mtd->erasesize=131072B
mtd->oobsize=64B
Cell Type:SLC
Manufacture: Samsung
Cell Type:SLC
ecc.layout: sky_oob
chip->write_page Unimplemented! Use DEFAULT: nand_write_page
chip->ecc.read_page_raw Unimplemented! Use DEFAULT:
nand_read_page_raw
chip->ecc.write_page_raw Unimplemented!
chip->ecc.read_oob Implemented! 2010/12/30
chip->ecc.write_oob Unimplemented! Use DEFAULT: nand_write_oob_std
chip->ecc.read_page Unimplemented!
chip->ecc.write_page Unimplemented! Use HW ECC, no need to implement
256 MiB
In:
 serial
Out:
 serial
Err:
 serial
Hit any key to stop autoboot:
 0
## Booting kernel from Legacy Image at 01000000 ...
Image Name:
 Linux-2.6.32.9-default
Image Type:
 ARM Linux Kernel Image (uncompressed)
Data Size:
 2278256 Bytes =
 2.2 MB
Load Address: 00008000
Entry Point:
 00008000
Loading Kernel Image ... OK
OK
Starting kernel ...
�Uncompressing
Linux.............................................................
..................................................................
.................................. done, booting the kernel.
Linux version 2.6.32.9-default (leocheng@SkyviiaBM1) (gcc version
4.3.2 (wschen@skymedi.com.tw) ) #7 PREEMPT Thu Nov 3 10:40:47 CST
2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Skyviia SV8860
...

Die Ausgabe geht danach noch weiter. Besonders interessant ist z.B. die Zeile: „Hit any key to stop autoboot:“. Wenn man nun eine Taste drückt, wird der Bootvorgang unterbrochen und man ist auf der Kommandozeile des Bootloaders.

Viel Erfolg und Spass damit!

serielle_schnittstelle.txt · Zuletzt geändert: 27.09.2012 22:53 von root