Obsah
Hardkernel Odroid-X2
Hardware
URL: http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135235611947
CPU | Cortex-A9 Quad Core 1.7Ghz |
GPU | Mali-400 Quad Core 440MHz |
RAM | 2GB LP-DDR2 880Mega data rate |
LAN | 10/100Mbps Ethernet RJ-45 |
Video out | Micro HDMI |
Storage | SD card reader |
Napájení | 5V @ 2A (3A pojistka) |
Rozměry | 90x94mm |
Číslo Pinu | Název pinu na expanzním konektoru ODROID-X2 | Název pinu Exynos4412 | Funkce |
---|---|---|---|
1 | T_INT | XEINT27 | GPX3[3]/WAKEUP_INT3[3]/KP _ROW11/ALV_DBG23 |
2 | BL_EN | UXuRTSn[2] | GPA1[3]/UART_2_RTSn/I2C_3_SCL |
3 | SDA | Xi2 c1SDA | GPD1[2]/I2C_1_SDA |
4 | T_RST | XEINT17 | GPX2[1]/WAKEUP_INT2[1]/KP _ROW[1]/ALV_DBG13 |
5 | SCL | IXi2 c1SCL | GPD1[3]/I2C_1_SCL |
6 | SPI_1.CLK | XspiCLK[1] | GPB[4]/SPI_1_CLK/IEM_SCLK |
7 | T_SCL | XspiMOSI[0] | GPB[3]/SPI_0_MOSI/I2C_5_SCL |
8 | T_SDA | XspiMISO[0] | GPB[2]/SPI_0_MISO/I2C_5_SDA |
9 | XE.INT12 | XEINT12 | GPX1[4]/WAKEUP_INT1[4]/KP _COL[4]/ALV_DBG[8] |
10 | SPI_1.CSN | XspiCSn[1] | GPB[5]/SPI_1_nSS/IEM_SPWI |
11 | SPI_1.MOSI | XspiMOSI[1] | GPB[7]/SPI_1_MOSI |
12 | VDDQ_LCD | ||
13 | PWM_BRT | XpwmTOUT[1] | GPD0[1]/TOUT_1/LCD_PWM |
14 | RXD | XuRXD[3] | GPA1[4]/UART_3_RXD/UART_AUDIO _RXD |
15 | SPI_1.MISO | XspiMISO[1] | GPB[6]/SPI_1_MISO |
16 | TXD | XuTXD[3] | GPA1[1]/UART_3_TXD/UART_AUDIO _TXD |
17 | VD19 | XvVD19 | GPF2[7]/LCD_VD19 |
18 | VD21 | XvVD21 | GPF3[1]/LCD_VD21 |
19 | VD2 | XvVD[2] | GPF0[6]/LCD_VD[2] |
20 | VD8 | XvVD[8] | GPF1[4]/LCD_VD[8] |
21 | VD15 | XvVD15 | GPF2[3]/LCD_VD15 |
22 | VD0 | XvVD[0] | GPF0[4]/LCD_VD[0] |
23 | VCLK | XvVCLK | GPF0[3]/LCD_VCLK |
24 | VD7 | XvVD[7] | GPF1[3]/LCD_VD[7] |
25 | VD18 | XvVD18 | GPF2[6]/LCD_VD18 |
26 | VD11 | XvVD11 | GPF1[7]/LCD_VD11 |
27 | VSYNC | XvVSYNC | GPF0[1]/LCD_VSYNC |
28 | VD6 | XvVD[6] | GPF1[2]/LCD_VD[6] |
29 | VDEN | XvVDEN | GPF0[2]/LCD_VDEN |
30 | VD20 | XvVD20 | GPF3[0]/LCD_VD20 |
31 | HSYNC | XvHSYNC | GPF0[0]/LCD_HSYNC |
32 | GND | Ground | |
33 | VD3 | XvVD[3] | GPF0[7]/LCD_VD[3] |
34 | VD12 | XvVD12 | GPF2[0]/LCD_VD12 |
35 | VD5 | XvVD[5] | GPF1[1]/LCD_VD[5] |
36 | VD10 | XvVD10 | GPF1[6]/LCD_VD10 |
37 | VD14 | XvVD14 | GPF2[2]/LCD_VD14 |
38 | VD17 | XvVD17 | GPF2[5]/LCD_VD17 |
39 | VD9 | XvVD[9] | GPF1[5]/LCD_VD[9] |
40 | VD23 | XvVD23 | GPF3[3]/LCD_VD23 |
41 | VD1 | XvVD[1] | GPF0[5]/LCD_VD[1] |
42 | VD4 | XvVD[4] | GPF1[0]/LCD_VD[4] |
43 | VD22 | XvVD22 | GPF3[2]/LCD_VD22 |
44 | VD13 | XvVD13 | GPF2[1]/LCD_VD13 |
45 | VD16 | XvVD16 | GPF2[4]/LCD_VD16 |
46 | SYS | DC Jack +5V | |
47 | ADC.AIN2 | XadcAIN[2] | XadcAIN[2] |
48 | VDD_IO | +1,8 V | |
49 | ADC.AIN3 | XadcAIN[3] | XadcAIN[3] |
50 | GND | Ground |
Napájení
Modul má od výroby vyvedený napájecí bod na který lze přiletovat napájecí kablík MLAB, který lze pak dále připojit k napájecím modulům UNIPOWER02A. Na plošném spoji ODROIDu je pak od výroby připravena pozice pro ochrannou diodu D7, která však není osazena. Je velmi vhodné tuto diodu doplnit například v MLABu běžně používaným typem M4. Čímž se zařízení stane odolné proti náhodnému přepólování.
Po připojení napájení se na desce rozsvítí červená LED. A nic dalšího se neděje dokud ODROID nemá z čeho bootovat.
Připojení I²C
Odroid má sběrnici I²C vyvedenu na piny na expanzním konektoru. Připojení I2C zařízení je proto snadné. Je však potřeba dát pozor na fakt, že logika odroidu pracuje na napěťové úrovni 1,8 V a běžné logické úrovně jako 3,3V nebo +5V pro něj mohou být destruktivní. Je proto vhodné připojit sběrnici přes rozhraní zabezpečující alespoň minimální ochranu. K tomu lze využít modul: I2Chub02A, který kromě translace napěťových úrovní vyřeší i možnost připojení více zařízení se stejnými adresami.
Realizace připojení modulu vypadá následovně:
Na fotografii to není patrné ale datové piny nejsou použity úplně poslední ale je volná ještě jedna řada na fotografii zdola.
Použité piny jsou:
Číslo Pinu | Název pinu na expanzním konektoru ODROID-X2 | Funkce |
---|---|---|
3 | SDA | GPD1[2]/I2C_1_SDA |
5 | SCL | GPD1[3]/I2C_1_SCL |
48 | VDD_IO | Napájení 1,8 V LDO3 of MAX77686 |
50 | GND | Ground |
Požití I2C
Obecné informace o používání I²C lze najít na stránce I2C a MLAB.
Pokud chceme, aby sběrnice I²C fungovala ihned po nabootování, tak je třeba aby jádro nahrálo modul i2c-dev při startu. To lze zařídit přidáním modulu do souboru /etc/modules
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. i2c-dev
Připojení monitoru
ODROID má pouze mikroHDMI výstup, který obsahuje pouze digitální obrazový signál. Je proto potřeba aby připojený monitor mel HDMI vstup. Redukce z HDMI na DVI nelze použít.
Otestované monitory, které s odroidem fungují jsou:
Software
Ubuntu
Obraz pro boot z SD karty (minimálně 8 GB) je ke stažení v MLAB Downloads (720MB). Je u něj i README.txt soubor popisující způsob jeho nahrání na SD kartu.
Případně je možné použít přímo obrazy z HardKernel.
Příprava SD karty
Rozbalený image se naklonuje přímo na SD kartu příkazem
dd if=image.img of=/dev/sdb bs=1M sync
Důležité je použít při zápisu celé zařízení tj. /dev/sdb místo oddílu /dev/sdb1
Aktivácia všetkých jadier pod linuxom
Po nabootovaní je aktívne len 1 jadro.
$ cat /sys/devices/system/cpu/online 0
Pre aktiváciu zvyšných 3 jadier je možné použiť nasledujúce príkazy:
echo 1 > /sys/devices/system/cpu/cpu1/online echo 1 > /sys/devices/system/cpu/cpu2/online echo 1 > /sys/devices/system/cpu/cpu3/online
Taktiež je zapnutá frekvenčná regulácia jadier, ak nie je cpu vyťažené, jadra bežia na 200MHz. Pri vyťažení sa vedia jadrá rozbehnúť na 1.6GHz (popr. po ďalšom nastavení až na 2GHz).
Pre konštantú frekvenciu 1.6GHz stačí použiť príkaz:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Dostupné módy réžie frekvencie:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative userspace powersave ondemand performance
Rozdělení úložného prostoru
Obraz Ubuntu je vyrobený tak, že obsahuje dva oddíly s celkovou velikostí přibližně 6 GB a zbývající prostor je pak nevyužit.
Je proto vhodné ve zbývajícím prostoru vyrobit další oddíl na ukládání dat. To lze udělat například programem gparted. Novému oddílu se pak přiřadí mount point podle návodu pro fstab. Příklad konfigurace je následující
$ sudo cat /etc/fstab # UNCONFIGURED FSTAB FOR BASE SYSTEM UUID=e139ce78-9841-40fe-8823-96a304a09859 / ext4 errors=remount-ro,noatime 0 1 /dev/mmcblk0p3 /home ext4 errors=remount-ro,noatime 0 1 /dev/mmcblk0p1 /media/boot vfat defaults,rw,owner,flush,umask=000 0 0 tmpfs /tmp tmpfs nodev,nosuid,mode=1777 0 0 none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880 none /run/shm tmpfs rw,noexec,nodev
Výsledek pak vypadá takto:
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p2 5544548 2462844 2800056 47% / udev 1014224 4 1014220 1% /dev tmpfs 1015816 8 1015808 1% /tmp tmpfs 406328 604 405724 1% /run none 5120 0 5120 0% /run/lock none 1015816 100 1015716 1% /run/shm /dev/mmcblk0p1 129039 7490 121550 6% /media/boot /dev/mmcblk0p3 9845280 2987528 6357632 32% /home
Aktualizace kernelu
Poslední verzi kernelu pro zařízení odroid připravenou hardkernelem můžeme stáhnout pomocí připraveného skriptu:
wget http://builder.mdrjr.net/tools/kernel-update.sh chmod +x kernel-update.sh sudo ./kernel-update.sh
Systémové informace
Měření teploty
Teplotu lze vyčíst přímo ze senzoru v CPU například příkazem:
cat /sys/devices/virtual/thermal/thermal_zone0/temp