(IOTG200) Hardware Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1
Document History Revision Date Change note 1.0 2015.01.13 Initital 오영환 2
목차 1. 부팅용 SD 카드제작... 4 1.1. U-Boot, Kernel 다운로드... 4 1.2. U-Boot 부팅후 fdisk... 4 1.3. Format Partition... 4 1.4. 파일시스템복사... 5 2. 부팅 Test... 5 3. Key Test... 6 3.1. Reset Button... 6 3.2. User Button... 6 4. Buzzer Test... 7 5. LED Test... 7 6. USB Host Test... 7 7. USB Device Test... 8 8. Ethernet Test... 8 9. RTC Test... 10 10. HDMI Test... 11 11. ZigBee Test... 18 12. Wi-Fi/BT Test... 11 12.1. Wi-Fi Test... 11 12.2. Wi-Fi AP 기능 Test... 12 12.3. Bluetooth Test... 14 13. LTE Module Test... 17 14. Sensor Connector (I2C2) Test... 16 15. MIPI CSI Camera Test... 19 16. Ext Connector (UART0, I2C0, SPI0, I2S0, XEINT3) Test... 19 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 3
1. 부팅용 SD 카드제작 1.1. U-Boot, Kernel 다운로드 사용할 SD 카드를우분투 PC 에서인식시킵니다. $ df /dev/sdb1 7814144 32 7814112 1% /media/9016-4ef8 /dev/sdb 로인식이되었는데 sdc, sdd 등이될수도있습니다. $ sudo./sdwriter sdb 220 bin 인식된디바이스이름인 sdb 로 bin 옵션을주어서다운로드합니다. 위과정은 u-boot 와커널을 다운로드해주는것입니다. 1.2. U-Boot 부팅후 fdisk 보드 Bottom 면의 Boot Switch 를모두 Off 로놓으면 SD 카드로자동으로부팅이됩니다. 디버그시리얼포트의설정은아래와같습니다. (Bud Rate: 115200, Data Bits: 8, Parity: None, Stop Bits: 1, Flow Control: None) MANGO220 # fdisk -c 0 2048 2048 1024 U-Boot 까지만부팅한후 fdisk 수행, 위에표시된것같이 SD 카드의파티션을나누게됩니다. 뒤 의 3 개의숫자는파티션 2, 3, 4 의크기를나타내는것입니다. 사용하는 SD 카드의크기에따라서 적절한값을선택하면됩니다. 1.3. Format Partition 이제보드의전원을끄고, SD 카드를다시우분투에인식시킵니다. yhoh@ubuntu:~$ sudo fdisk -l sudo fdisk -l 을수행해보면 U-Boot 에서수행했던내용을확인할수있습니다. 4
yhoh@ubuntu:~$ sudo mkfs.vfat /dev/sdb1 yhoh@ubuntu:~$ sudo mkfs.ext4 -j /dev/sdb2 yhoh@ubuntu:~$ sudo mkfs.ext4 -j /dev/sdb3 yhoh@ubuntu:~$ sudo mkfs.ext4 -j /dev/sdb4 위명령으로모든파티션을포맷해줍니다. 1.4. 파일시스템복사 SD 카드를우분투에서제거한후에다시인식시킵니다. yhoh@ubuntu:~$ df /dev/sdb3 295525 2062 277781 1% /media/81070050-44ca-4e64-a152-87ff8a493416 /dev/sdb1 6726488 4 6726484 1% /media/3455-b417 /dev/sdb2 295525 2062 277781 1% /media/409bf2ef-821f-4c66-86cf-1fdeb31cdded /dev/sdb4 295525 2062 277781 1% /media/697c1f49-8fa1-446e-985c-16224cda3fa6 yhoh@ubuntu:~$ cd /media/409bf2ef-821f-4c66-86cf-1fdeb31cdded/ 사용하는것은 /dev/sdb2 입니다. 이곳으로이동합니다. $ sudo tar xvf ~/sd_fusing_image/keti-m220/custom_datafs.tar $ sudo tar xvf ~/sd_fusing_image/keti-m220/rootfs.tar $ sync rootfs.tar, custom_datafs.tar 의압축을풀고 sync 를수행합니다. 2. 부팅 Test Welcome to Mango220 Mango220 login: root Password: [root@mango220 ~]# 로그인 ID 는 root, Password 도 root 입니다. 정상부팅되어로그인이되는지확인합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 5
3. Key Test 3.1. Reset Button 리셋버튼을눌러서정상적으로리셋이되는지확인합니다. 3.2. User Button # hexdump /dev/input/event0 0000000 03d0 0000 e56c 0003 0001 008b 0001 0000 0000010 03d0 0000 e585 0003 0000 0000 0000 0000 0000020 03d0 0000 df07 0006 0001 008b 0000 0000 0000030 03d0 0000 df13 0006 0000 0000 0000 0000 0000040 03d1 0000 9b85 000a 0001 009e 0001 0000 0000050 03d1 0000 9b97 000a 0000 0000 0000 0000 0000060 03d1 0000 9532 000d 0001 009e 0000 0000 0000070 03d1 0000 953e 000d 0000 0000 0000 0000 hexdump /dev/input/event0 를수행한후에버튼을눌러보면위와같이출력됩니다. 위로그는 SW3, SW2 를차례로눌렀다뗀동작시의로그입니다. /include/linux/input.h 에보면아래와같은정의를발견할수있습니다. #define KEY_BACK 158 /* AC Back */ #define KEY_MENU 139 /* Menu (show menu) */ 키를누르면 value 값은 1 을가집니다. 떼게되면 0 을가지게됩니다. 158 은 Hex 로 0x9E 값을가집니다. 139 은 Hex 로 0x8B 값을가집니다. 6
4. Buzzer Test #./buzzer_test.sh init buzzer init init 을수행하면초기화가진행됩니다. #./buzzer_test.sh on 2 buzzer On time is 2 seconds. on 을주면서시간을설정하면그시간동안부저가동작합니다. 5. LED Test #./led_test.sh init #./led_test.sh on 1 #./led_test.sh on 2 #./led_test.sh on 3 #./led_test.sh off 1 #./led_test.sh off 2 #./led_test.sh off 3 led_test.sh 쉘스크립트를만들어두었습니다. led_test.sh init 을수행하면초기화가진행되고, on, off 와 LED 번호를주면 LED 가켜지거나꺼지게됩니다. 6. USB Host Test USB Memory 를장착한다. Success to mount! /dev/sda1 위와같이정상적으로마운트가되고동작도문제가없어야합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 7
7. USB Device Test #./usb_dev_mass.sh USB device cable 을연결하고위스크립트를수행합니다. PC 에이동식디스크가새로이잡힙니다. 여기에새폴더를만듭니다. 보드상에서 PC 에서만든폴더를확인할수있습니다. 8. Ethernet Test [root@mango220 ~]# udhcpc -i eth0 [root@mango220 ~]# ifconfig eth0 Link encap:ethernet HWaddr 00:04:A3:E8:40:A2 inet addr:192.168.57.155 Bcast:192.168.57.255 Mask:255.255.255.0 inet6 addr: fe80::204:a3ff:fee8:40a2/64 Scope:Link 24AA02E48T MAC Control 확인 8
9. SSH 연결시험 최초부팅을수행하면아래와같이키생성작업을수행하게됩니다. Generating RSA Key... Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh_host_key. Your public key has been saved in /etc/ssh_host_key.pub. The key fingerprint is: 50:7c:d7:cf:5c:7b:99:89:47:8f:9c:7e:3b:62:83:ee The key's randomart image is: +--[RSA1 2048]----+........................ oe. o. +-----------------+..................... Starting sshd: OK Starting sshd: OK 가수행되면정상적으로데몬이떠있는것입니다. 보드의 ip 주소는 192.168.57.245 입니다. PuTTy 에서보드로접속을시도합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 9
최초에는위와같이경고메시지가보이게됩니다. 예를선택하면됩니다. root, root 로접속하면터미널에서의모습과동일한환경을만날수있습니다. 10. RTC Test # rdate -s time.bora.net # hwclock -u --systohc rdate를이용해서정확한 system 시간을설정합니다. hwclock 설정시에 -u 옵션을꼭설정해야합니다. 이는 UTC 시간으로설정하는것입니다. 이후보드의전원을완전히제거하고다시부팅하였을때이전에설정한시간으로다시설정되어있는것을확인할수있습니다. 10
# date 전원케이블을분리한후다시부팅을하였을때현재시간이정확히출력되어야합니다. 11. HDMI Test HDMI 케이블을연결하고부팅을수행하면모니터의화면이아래와같이출력되어야합니다. 12. Wi-Fi/BT Test 12.1. Wi-Fi Test # iwlist mlan0 scanning grep ESSID ESSID:"crz_treego" [24] # iwconfig mlan0 essid crz_treego # iwconfig mlan0 IEEE 802.11-DS ESSID:"crz_treego" [29] Nickname:"" Mode:Managed Frequency=2.462 GHz Access Point: 00:26:66:81:91:54 [root@mango220 ~]# udhcpc -i mlan0 [root@mango220 ~]# ping www.google.com PING www.google.com (173.194.117.144): 56 data bytes 64 bytes from 173.194.117.144: seq=0 ttl=51 time=38.595 ms www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 11
12.2. Wi-Fi AP 기능 Test [root@mango220 ~]# ping www.google.com PING www.google.com (173.194.117.145): 56 data bytes 64 bytes from 173.194.117.145: seq=0 ttl=51 time=40.367 ms 64 bytes from 173.194.117.145: seq=1 ttl=51 time=34.990 ms 이더넷을통해서구글에 ping 이접속되는지를확인합니다. # cd /lib/firmware/mrvl/ /lib/firmware/mrvl/ 폴더로이동합니다. [root@mango220 mrvl]# cp config/80211d_domain.conf. config 폴더의 80211d_domain.conf 를현재폴더에복사합니다. [root@mango220 mrvl]#./uaputl.exe bss_start BSS start successful!./uaputl.exe bss_start 를수행합니다. 위와같이성공메시지가출력되어야합니다. [root@mangoc210 mrvl]# ifconfig uap0 192.168.100.1 up ifconfig 를사용해서 uap0 에대한 IP 를할당합니다. [root@mangoc210 mrvl]# ifconfig eth0 Link encap:ethernet HWaddr 00:04:A3:E8:40:A2 inet addr:192.168.57.155 Bcast:192.168.57.255 Mask:255.255.255.0 inet6 addr: fe80::204:a3ff:fee8:40a2/64 Scope:Link..................... uap0 Link encap:ethernet HWaddr AC:3F:A4:04:D2:72 inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 12
AP 모드로동작하는상황에서 ping 접속만수행하는것이아니라 eth0 를통해서인터넷접속까 지가능하려면아래의 MASQUERADE 설정을수행해주어야합니다. iptables --flush; iptables --table nat --flush; iptables --delete-chain; iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE; iptables --append FORWARD --in-interface uap0 -j ACCEPT; echo 0 > /proc/sys/net/ipv4/ip_forward; echo 1 > /proc/sys/net/ipv4/ip_forward; 위의모든내용을차례로명령창에입력하고수행시킵니다. 이제휴대폰에서먼저 Wi-Fi 를켜고검색을합니다. "Marvell Micro AP" 란이름으로검색이되어야합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 13
검색된 Marvell Micro AP 부분을선택해서고급옵션표시를켜고 IP 설정을고정으로변경합니 다. ( 혹은폰의버전에따라서네트워크수정을선택하고고급옵션표시를선택해야할수도있 습니다. Static( 정적 ) 으로표시되는경우도있습니다.) IP 주소를적절히설정합니다. 위그림에서 192.168.100.10 으로설정하였습니다. Gateway 는 192.168.100.1 로설정합니다. 연결을눌러서 Marvell Micro AP 에연결합니다. ( 기기에따라서는저 장을하고연결은나중에수행될수도있습니다.) [root@mangoc210 mrvl]# ping 192.168.100.10 PING 192.168.100.10 (192.168.100.10): 56 data bytes 64 bytes from 192.168.100.10: seq=0 ttl=64 time=56.302 ms 64 bytes from 192.168.100.10: seq=1 ttl=64 time=79.585 ms 192.168.100.10 부분에 ping 을수행하면정상적인접속이이루어져있습니다. 이제인터넷접속을수행해보면위와같이정상적으로접속이됨을확인할수있습니다. 12.3. Bluetooth Test [root@mango220 ~]# hciconfig hci0: Type: BR/EDR Bus: SDIO BD Address: AC:3F:A4:04:D2:79 ACL MTU: 1021:6 SCO MTU: 120:6 14
hci1: DOWN RX bytes:571 acl:0 sco:0 events:18 errors:0 TX bytes:164 acl:0 sco:0 commands:19 errors:0 Type: BR/EDR Bus: UNKNOWN BD Address: 78:D2:04:A4:3F:AC ACL MTU: 1492:4 SCO MTU: 0:0 DOWN RX bytes:155 acl:0 sco:0 events:11 errors:0 TX bytes:87 acl:0 sco:0 commands:11 errors:0 [root@mango220 ~]# hciconfig hci0 up [root@mango220 ~]# hcitool dev Devices: hci0 AC:3F:A4:04:D1:C5 내폰을 BT 가검색되도록설정한후 inquiring 을수행시킨다. [root@mango220 ~]# hcitool inq Inquiring... 38:0B:40:81:49:91 clock offset: 0x1fcd class: 0x5a020c [root@mango220 ~]# hcitool info 38:0B:40:81:49:91 Requesting information... BD Address: 38:0B:40:81:49:91 Device Name: YHOH-SHV-E330 LMP Version: 4.0 (0x6) LMP Subversion: 0x4106 Manufacturer: Broadcom Corporation (15) Features page 0: 0xbf 0xfe 0xcf 0xff 0xdf 0xff 0x7b 0x87 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <sniff mode> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> <broadcast encrypt> <no. 24> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> <extended SCO> <EV4 packets> <EV5 packets> <no. 34> <AFH cap. slave> <AFH class. slave> <LE support> <3-slot EDR ACL> <5-slot EDR ACL> <sniff subrating> <pause encryption> <AFH cap. master> <AFH class. master> www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 15
<EDR esco 2 Mbps> <EDR esco 3 Mbps> <3-slot EDR esco> <extended inquiry> <LE and BR/EDR> <simple pairing> <encapsulated PDU> <err. data report> <non-flush flag> <LSTO> <inquiry TX power> <EPC> <extended features> Features page 1: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 13. Sensor Connector (I2C2) Test 센서연결커넥터를장착합니다. 조도센서를연결합니다. sensor_test_al 을수행해서조도측정을 수행합니다. [root@mango220 ~]#./sensor_test_al [Test_AL] Start Ambient Light Sensor [Test_AL] i2c device open done [Test_AL] set_slave_addr done [Test_AL] read data: 0x0000, Lux: 0.000000 [Test_AL] read data: 0x00CC, Lux: 170.000000 [Test_AL] read data: 0x00CB, Lux: 169.166672 [Test_AL] read data: 0x00CB, Lux: 169.166672 [Test_AL] read data: 0x00C6, Lux: 165.000000 [Test_AL] read data: 0x00AA, Lux: 141.666672 [Test_AL] read data: 0x0061, Lux: 80.833336 [Test_AL] read data: 0x000F, Lux: 12.500000 [Test_AL] read data: 0x000B, Lux: 9.166667 온습도센서를연결합니다. sensor_test_ht 를수행해서온습도측정을수행합니다. [root@mango220 ~]#./sensor_test_ht [Test_HT] Start Temperature & Humidity Sensor [Test_HT] i2c device open done [Test_HT] set_slave_addr done [Test_HT] Temperature: 24.825829, Humidity: 16.693634 [Test_HT] Temperature: 24.836554, Humidity: 16.693634 [Test_HT] Temperature: 24.836554, Humidity: 16.693634 [Test_HT] Temperature: 24.836554, Humidity: 16.701263 [Test_HT] Temperature: 24.858004, Humidity: 16.693634 16
14. LTE Module Test 최초동작시 USB0 에 RNDIS 를통해서 LTE 모듈과연결됩니다. usb0 의 IP 주소를확인하고, ping test 를수행합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 17
15. ZigBee Test 15.1. 디바이스인식시험 CC Debugger 를사진과같이연결한후, CC Debugger 의리셋버튼을눌렀을때녹색 LED 가켜지 면정상적으로디바이스가인식된것입니다. 15.2. SmartRF Studio 통신시험 18
두보드에동일하게연결하고 TI SmartRF Studio 를수행해서한쪽은 TX, 다른한쪽은 RX 로설정 해서통신이원활하게수행되는가를검사합니다. 15.3. ZigBee Serial Test Work\CC2530 Test Binary 한쪽은 z100_cordinator_2011.1227.2034.hex 다른한쪽은 z100_device_2011.1227.2034.hex 를각각구웠습니다../rs232_test 115200 /dev/ttysac3 위명령으로 UART3 와통신을할수있습니다. ZigBee CC2530 과연결된것입니다. rs232_test 소스는 app/rs232_test_app 부분에존재합니다. 16. MIPI CSI Camera Test 17. Ext Connector (UART0, I2C0, SPI0, I2S0, XEINT3) Test www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 19