====== Serielle Schnittstelle ====== Diesen Text gibt es auch als {{:seriell.pdf|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. {{ :seriell-000.jpg |}} {{ :seriell-001.jpg |}} 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 ==== [[http://www.reichelt.de/USB-Konverter/DELOCK-83117/3/index.html?;ACTION=3;LA=2;ARTICLE=120578;GROUPID=5253;artnr=DELOCK+83117;SID=13UF9mU38AAAIAACQFBVw5e765f4ae09038e7b13fbcd638593d0e]] [[http://www.conrad.de/ce/ProductDetail.html?hk=SEM&insert=NA&WT.srch=1&utm_source=google&utm_medium=deeplink&utm_content=dl_article&utm_campaign=g_adwords&productcode=197326&gclid=CPPD86a7zLICFVC7zAodQwQAXg]] [[http://www.google.de/search?client=ubuntu&channel=fs&q=ttl+usb+wandler&ie=utf-8&oe=utf-8&redir_esc=&ei=G2hfUKyuKIe1tAbQmIHoAQ#q=ttl+usb+wandler&hl=de&client=ubuntu&hs=QTt&channel=fs&prmd=imvns&source=lnms&tbm=shop&sa=X&ei=G2hfUMPpLsn0sgbTq4GQCw&ved=0CA4Q_AUoBQ&bav=on.2,or.r_gc.r_pw.r_qf.&fp=6cbdd4661b9ac4f4&biw=1680&bih=960]] [[http://www.ebay.de/itm/USB-2-0-an-UART-TTL-COM-Module-Converter-Konverter-Adapter-CP2102-6-Pins-Seriell-/140850007973?pt=DE_Computing_USB_Kabel_Hubs_Adapter&hash=item20cb508fa5]] ===== 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). {{ :seriell-005.png |}} 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. {{ :seriell-006.png |}} 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 [[http://de.wikipedia.org/wiki/RS-232|RS-232]] bei Wikipedia. ==== Windows ==== Putty kann direkt herunter geladen werden und ohne Installation arbeiten. {{ :seriell-002.jpg |}} {{ :seriell-003.jpg |}} 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. {{ :seriell-004.jpg |}} ==== 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!