NX1 에서의 WIFI RF 테스트 시에 사용되는 labtool 명령어들을 정리했다.
준비 운동하기
먼저 WIFI RF 테스트를 하기위한 환경이 필요하다.
H/W | IQ2010(LitePoint) |
S/W | IQsignal |
참고로 위의 장비(IQ2010)는 802.11b/g/n 까지만 측정가능하다. 802.11ac 를 측정하고 싶다면, IQsel 장비를 사용해야 한다.
사용에 필요한 소프트웨어를 PC 에 설치하고, 장비의 전원을 켠다.
장비에 연결된 USB 케이블을 PC 에 연결한다. 자동으로 드라이버가 설치될 것이다.
완료가 되면, 'IQsignal' 이라는 프로그램을 실행한다.
IQsignal 사용하기
프로그램을 실행하면, 'Tester Settings' 라는 창이 뜬다.
여기서 아래와 같이 옵션을 설정한다.
Type | IQ201X |
Auto Scan and Connect | 체크 |
Local Host | 체크 |
그리고 나서 'Connect' 버튼을 누른다. 접속이 되면, 'Connected' 라는 메세지가 출력된다.
이 후 테스트할 각각 대역별로 선택을 하면 된다.
설정하기
802.11b/g/n 모두 공통으로 해야 하는 부분을 설명한다.
설정에 앞서 labtool 로서 TX 신호를 출력하도록 해야 한다.
RF Channel | 1(Labtool 에서 설정한 채널) |
External Atten | 2.4G(1.0), 5G(1.6) - 안테나에 연결된 케이블의 gain 값 입력 |
Capture Mode | Continuous 선택 후, Auto Range 선택 후, Run 클릭 |
위의 순서대로 설정 후, RF 신호가 정상인지 확인하기 위해 'Plot Window' 를 선택한다.
'Spectum Mask' 와 'Symbol Const' 를 선택한다. 여기서 'Pass' 가 나와야 한다.
Labtool 사용하기
802.11b
Enter option: 25 // Stop Tx DutIf_SetTxDutyCycle: 0x00000000 Enter option: 30 0 // Set to 2.4GHz Band DutIf_SetModeAG: 0x0 Enter option: 112 0 // Set to 20MHz BW DutIf_SetChannelBw: 0x00000000 Enter option: 12 1 // Set to CH 1 DutIf_SetRfChannel: 0x00000000 RF Channel: 1 (2412.0 MHz) Enter option: 22 1 10 0 // Set to CH 1 at 10 dBm Output Power with CCK/BPSK Data Rate DutIf_SetRfChannel: 0x0 DutIf_SetRfPowerCal: 0x0 Enter option: 35 1 4 // Tx at 11Mbps DutIf_AdjustPcktSifs: 0x00000000 TRPC ID: 2 Enter option: 25 // Stop Tx
802.11g
Enter option: 25 // Stop Tx DutIf_SetTxDutyCycle: 0x00000000 Enter option: 30 0 // Set to 2.4GHz Band DutIf_SetModeAG: 0x0 Enter option: 112 0 // Set to 20MHz BW DutIf_SetChannelBw: 0x00000000 Enter option: 12 1 // Set to CH 1 DutIf_SetRfChannel: 0x00000000 RF Channel: 1 (2412.0 MHz) Enter option: 22 1 15 0 // Set to CH 1 at 15 dBm Output Power with OFDM Data Rate DutIf_SetRfChannel: 0x0 DutIf_SetRfPowerCal: 0x0 Enter option: 35 1 13 // Tx at 54Mbps DutIf_AdjustPcktSifs: 0x00000000 TRPC ID: 2 Enter option: 25 // Stop Tx
802.11a
Enter option: 25 // Stop Tx DutIf_SetTxDutyCycle: 0x00000000 Enter option: 30 1 // Set to 5GHz Band DutIf_SetModeAG: 0x0 Enter option: 112 0 // Set to 20MHz BW DutIf_SetChannelBw: 0x00000000 Enter option: 12 36 // Set to CH 36 DutIf_SetRfChannel: 0x00000000 RF Channel: 1 (2412.0 MHz) Enter option: 22 36 13 1 // Set to CH 36 at 13 dBm Output Power with OFDM Data Rate DutIf_SetRfChannel: 0x0 DutIf_SetRfPowerCal: 0x0 Enter option: 35 1 13 // Tx at 54Mbps DutIf_AdjustPcktSifs: 0x00000000 TRPC ID: 2 Enter option: 25 // Stop Tx
802.11n
Enter option: 25 // Stop Tx DutIf_SetTxDutyCycle: 0x00000000 Enter option: 30 1 // Set to 5GHz Band DutIf_SetModeAG: 0x0 Enter option: 112 0 // Set to 20MHz BW DutIf_SetChannelBw: 0x00000000 Enter option: 12 36 // Set to CH 36 DutIf_SetRfChannel: 0x00000000 RF Channel: 1 (2412.0 MHz) Enter option: 22 36 13 1 // Set to CH 36 at 13 dBm Output Power with OFDM Data Rate DutIf_SetRfChannel: 0x0 DutIf_SetRfPowerCal: 0x0 Enter option: 35 1 22 // Tx at MCS7(65Mbps) DutIf_AdjustPcktSifs: 0x00000000 TRPC ID: 2 Enter option: 25 // Stop Tx
MFG API 사용하기
802.11b
[root@drime5 sdcard]# ./testapp Tester Start ./testapp INPUT: Got Cmd(-1), Arg() --------------- Usage ---------------- 0 1 2 3 10 - CloseDUT 11 - OpenDUT 12 (arg) SetBandAG 13 (arg) Channel 14 (arg) TxDataRate 15 (arg) SetPreamble 16 (arg) SetChannelBw 17 (arg) TxGain 18 - TxStart 19 - TxStop 20 - RxStart 21 - RxStop 22 - MRVL_RFT_SetSSID 23 - MRVL_RFT_SetSSID_24G 24 - MRVL_RFT_SetSSID_5G 25 - MRVL_RFT_GET_RSSI 25 99 - Exit ------------------------------------- INPUT: 11 // OpenDUT Got Cmd(11), Arg() MRVL_RFT_OpenDUT() ===[MARVELL]=== temp once start DutIf_InitConnection() chip: w8887 sw ver :1.01.15 === Build Time: Build time and Date: Jul 7 2014 (16:06:14) Initialize drvwrapper .... ===[MARVELL]=== end DutIf_InitConnection() status => 0 ===OK INPUT: 19 // MRVL_RFT_TxStop Got Cmd(19), Arg() MRVL_RFT_TxStop() MRVL_RFT_TxStop_35 current_tx_mode: 0 DutIf_AdjustPcktSifs: 0x00000000 OK INPUT: 12 0 // MRVL_RFT_SetBandAG Got Cmd(12), Arg(0) MRVL_RFT_SetBandAG(0) ===[MARVELL]=== MRVL_RFT_SetBandAG(mBand): 0x0 ===[MARVELL]=== Band value is invalid..OK INPUT: 13 1 // MRVL_RFT_Channel Got Cmd(13), Arg(1) MRVL_RFT_Channel(1) DutIf_SetRfChannel: status : 0, gChannelNumber = 1 OK INPUT: 14 6 // MRVL_RFT_TxDataRate Got Cmd(14), Arg(6) MRVL_RFT_TxDataRate(6) MRVL_RFT_TxDataRate: mPcktPifsSettings.dataRateIndex: 6, datarate=3 MRVL_RFT_TxDataRate: 0x0 OK INPUT: 15 1 // MRVL_RFT_SetPreamble Got Cmd(15), Arg(1) MRVL_RFT_SetPreamble(1) MRVL_RFT_SetPreamble: PreambleType : 1 OK INPUT: 16 1 // MRVL_RFT_SetChannelBw Got Cmd(16), Arg(1) MRVL_RFT_SetChannelBw(1) ===[MARVELL]=== MRVL_RFT_SetChannelBw(mBandWidth): 0x1 OK INPUT: 18 // MRVL_RFT_TxStart Got Cmd(18), Arg() MRVL_RFT_TxStart() MRVL_RFT_TxStart_35 dut gTxGain: 100 ERIC MRVL_RFT_TxStart_35 dut MRVL_RFT_TxGain: 17 enter MRVL_RFT_TxGain gBandWidth: 0x0 DutIf_SetRfChannel: 0x0 MRVL_RFT_TxGain : datarate : 6, 3 after MRVL_RFT_TxGain : Pwr4Pa = 17===[MARVELL]=== MRVL_RFT_TxGain [DutIf_GetTxDataRate] success mDataRate ==> 3, rateG= 0, ANT_PATH : 0x0 CalDataLoaded : 0x1 before DutIf_SetRfPowerCal: 0x0 after DutIf_SetRfPowerCal: 0x0 MRVL_RFT_TxStart dut MRVL_RFT_TxGain: 0x0 MRVL_RFT_TxStart_35: datarate : 6, 3 MRVL_RFT_TxStart_35: AdjustTxBurstGap : 0, BurstSifsInUs:0 MRVL_RFT_TxStart_35 DutIf_AdjustPcktSifs: 0x00000000 TRPC ID: 2 MRVL_RFT_TxStart_35 before MRVL_RFT_TxStart: 0x0 MRVL_RFT_TxStart_35 after MRVL_RFT_TxStart: 0x0 OK INPUT: