mirror of
https://github.com/YikeStone/MT7601u.git
synced 2025-08-03 03:14:08 +05:30
446 lines
14 KiB
Plaintext
446 lines
14 KiB
Plaintext
===================================================================================================
|
||
ATE Test Command Format for station driver
|
||
|
||
****** IMPORTANT ******
|
||
If you are not familiar with hardware, it is recommanded not to modify hardware default value.
|
||
It may damage hardware.
|
||
|
||
===================================================================================================
|
||
Usage:
|
||
iwpriv ra0 [act] [parameters]=[val]
|
||
|
||
|
||
where
|
||
|
||
[act] [parameters] [val] constraints explaination
|
||
----- ------------- ----------------- --------------------------------
|
||
|
||
=====================================
|
||
1. Set ATE actions.
|
||
Value:
|
||
ATESTART - Start ATE function and stop station function.
|
||
ATESTOP - Stop ATE function and start station function.
|
||
TXCONT - Start continuous TX, for power mask.
|
||
TXCARR - Start carrier test, for frequency calibration.
|
||
TXFRAME - Transmit frame, for EVM.
|
||
RXFRAME - Continuous RX, for PER/FER.
|
||
|
||
1.1 ATEDA
|
||
Set ATE frame header destination address.
|
||
Value:
|
||
xx:xx:xx:xx:xx:xx ; hex
|
||
|
||
1.2 ATESA
|
||
Set ATE frame header source addr.
|
||
Value:
|
||
xx:xx:xx:xx:xx:xx ; hex
|
||
|
||
1.3 ATEBSSID
|
||
Set ATE frame header BSSID.
|
||
Value:
|
||
xx:xx:xx:xx:xx:xx ; hex
|
||
|
||
1.4 ATECHANNEL
|
||
Set ATE Channel, deimal.
|
||
Value:
|
||
802.11b/g: 1 ~ 14 depends on CountryRegion setting
|
||
|
||
1.5 ATETXPOW0
|
||
Set ATE Tx power for Antenna 1.
|
||
Value:
|
||
0 ~ 31 ; 2.4GHz, deimal
|
||
-7 ~15 ; 5.5GHz, deimal
|
||
|
||
1.6 ATETXPOW1
|
||
Set ATE Tx power for Antenna 2.
|
||
Value:
|
||
0 ~ 31 ; 2.4GHz, decimal
|
||
-7 ~15 ; 5.5GHz, deimal
|
||
|
||
1.7 ATETXFREQOFFSET
|
||
Set ATE RF frequency offset.
|
||
Value:
|
||
0 ~ 63 ; unit: 2KHz, decimal
|
||
|
||
1.8 ATETXLEN
|
||
Set ATE frame length.
|
||
Value:
|
||
24 ~ 2312 ; decimal
|
||
|
||
1.9 ATETXCNT
|
||
Set ATE frame Tx count.
|
||
Value:
|
||
1 ~ ; 32-bit, decimal
|
||
|
||
1.10 ATETXMODE (Refer to TxMode)
|
||
Set ATE Tx Mode.
|
||
Value:
|
||
0: CCK 802.11b
|
||
1: OFDM 802.11g
|
||
2: HT_MIX 802.11b/g/n
|
||
3: Green Field 802.11n
|
||
|
||
1.11 ATETXBW (Refer to TxMode)
|
||
Set ATE Tx and Rx Bandwidth.
|
||
Value:
|
||
0: 20MHz
|
||
1: 40MHz
|
||
|
||
1.12 ATETXGI (Refer to TxMode)
|
||
Set ATE Tx Guard Interval.
|
||
Value:
|
||
0: Long
|
||
1: Short
|
||
|
||
1.13 ATETXMCS (Refer to TxMode)
|
||
Set ATE Tx MCS type.
|
||
Value:
|
||
0 ~ 15
|
||
|
||
1.14 ATETXANT
|
||
Set ATE TX antenna.
|
||
Value:
|
||
0: All
|
||
1: Antenna one
|
||
2: Antenna two
|
||
|
||
1.15 ATERXANT
|
||
Set ATE RX antenna.
|
||
Value:
|
||
0: All
|
||
1: Antenna one
|
||
2: Antenna two
|
||
3: Antenna three
|
||
|
||
1.16 ATERXFER
|
||
Set ATE to periodically reset and show up RxCount (per-second) and RxTotalCount.
|
||
Value:
|
||
0: Disable counter visability
|
||
1: Enable counter visability
|
||
|
||
1.17 ATESHOW
|
||
Show all parameters of ATE.
|
||
Value:
|
||
1
|
||
|
||
1.18 ATEHELP
|
||
List all commands of ATE.
|
||
Value:
|
||
1
|
||
|
||
1.19 ResetCounter
|
||
Reset statistic counter.
|
||
Value:
|
||
1
|
||
|
||
1.20 ATERRF
|
||
Read all of the RF registers.
|
||
Value:
|
||
1
|
||
|
||
1.21 ATEWRF1
|
||
Write the RF register 1.
|
||
Value:
|
||
xxxxxxxx ;32-bit, hex
|
||
|
||
1.22 ATEWRF2
|
||
Write the RF register 2.
|
||
Value:
|
||
xxxxxxxx ;32-bit, hex
|
||
|
||
1.23 ATEWRF3
|
||
Write the RF register 3.
|
||
Value:
|
||
xxxxxxxx ;32-bit, hex
|
||
|
||
1.24 ATEWRF4
|
||
Write the RF register 4.
|
||
Value:
|
||
xxxxxxxx ;32-bit, hex
|
||
|
||
1.25 ATELDE2P
|
||
Overwrite all EEPROM contents
|
||
Value:
|
||
1
|
||
E.g.
|
||
iwpriv ra0 set ATELDE2P=1
|
||
|
||
1.26 ATERE2P
|
||
Display all EEPROM content.
|
||
Value:
|
||
1
|
||
E.g.
|
||
iwpriv ra0 set ATERE2P=1
|
||
|
||
===================================================================================================
|
||
2. Examples:
|
||
=========
|
||
|
||
2.1 Check EVM & Power
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATEDA=00:11:22:33:44:55
|
||
iwpriv ra0 set ATESA=00:aa:bb:cc:dd:ee
|
||
iwpriv ra0 set ATEBSSID=00:11:22:33:44:55
|
||
iwpriv ra0 set ATECHANNEL=1 ; set Channel
|
||
iwpriv ra0 set ATETXMODE=1 ; set TX-Mode.
|
||
iwpriv ra0 set ATETXMCS=7 ; set MCS type.
|
||
iwpriv ra0 set ATETXBW=0 ; set Bandwidth
|
||
iwpriv ra0 set ATETXGI=0 ; set Long GI.
|
||
iwpriv ra0 set ATETXLEN=1024 ; set packet length.
|
||
iwpriv ra0 set ATETXPOW0=18
|
||
iwpriv ra0 set ATETXPOW1=18
|
||
iwpriv ra0 set ATETXCNT=100000
|
||
iwpriv ra0 set ATE=TXFRAME
|
||
<09>K
|
||
iwpriv ra0 set ATETXPOW0=19
|
||
<09>K
|
||
iwpriv ra0 set ATETXPOW0=20
|
||
<09>K
|
||
iwpriv ra0 set ATE=ATESTART
|
||
|
||
2.2 Check Carrier
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATECHANNEL=1 ; set Channel
|
||
iwpriv ra0 set ATETXMODE=1 ; set TX-Mode.
|
||
iwpriv ra0 set ATETXMCS=7 ; set MCS type.
|
||
iwpriv ra0 set ATETXBW=0 ; set Bandwidth
|
||
iwpriv ra0 set ATETXCNT=200 ; Tx frame count(decmial)
|
||
iwpriv ra0 set ATE=TXFRAME ; Start Tx Frame(inform BBP to change, modulation mode)
|
||
iwpriv ra0 set ATE=TXCARR ; Start Tx carrier, Measure carrier with instrument
|
||
iwpriv ra0 set ATETXPOW0=05
|
||
iwpriv ra0 set ATETXPOW1=05
|
||
iwpriv ra0 set ATETXFREQOFFSET=19
|
||
iwpriv ra0 set ATE=ATESTART
|
||
|
||
2.3 Check specturm mask
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATECHANNEL=1 ; set Channel
|
||
iwpriv ra0 set ATETXMODE=1 ; set TX-Mode.
|
||
iwpriv ra0 set ATETXMCS=7 ; set MCS type.
|
||
iwpriv ra0 set ATETXBW=0 ; set Bandwidth
|
||
iwpriv ra0 set ATETXCNT=200 ; Tx frame count(decmial)
|
||
iwpriv ra0 set ATE=TXFRAME ; Start Tx Frame(inform BBP to change, modulation mode)
|
||
iwpriv ra0 set ATE=TXCONT ; Start continuous TX, Measure specturm mask with instrument
|
||
iwpriv ra0 set ATETXPOW0=5
|
||
iwpriv ra0 set ATETXPOW1=5
|
||
iwpriv ra0 set ATE=ATESTART
|
||
|
||
2.4 Frequency offset tuning
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATECHANNEL=1 ; set Channel
|
||
iwpriv ra0 set ATETXMODE=1 ; set TX-Mode.
|
||
iwpriv ra0 set ATETXMCS=7 ; set MCS type.
|
||
iwpriv ra0 set ATETXCNT=200 ; Tx frame count(decmial)
|
||
iwpriv ra0 set ATETXFREQOFFSET=0 ; Set frequency offset 0(decimal)
|
||
iwpriv ra0 set ATE=TXFRAME ; Start Tx Frame
|
||
iwpriv ra0 set ATE=TXCARR ; Start Tx carrier, Measure carrier frequency with instrument
|
||
iwpriv ra0 set ATETXFREQOFFSET=10 ; Dynamic turning frequency offset, 10(decimal)
|
||
iwpriv ra0 set ATETXFREQOFFSET=20 ; Dynamic turning frequency offset, 20(decimal)
|
||
iwpriv ra0 set ATE=ATESTART ; Stop, Store the tuning result to EEPROM
|
||
|
||
2.5 Rx
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATECHANNEL=1 ; set Channel
|
||
iwpriv ra0 set ResetCounter=1 ; Reset statistic counter
|
||
iwpriv ra0 set ATETXFREQOFFSET=value ;To use the <20><>value<75><65>(decimal) you got in tx calibration
|
||
iwpriv ra0 set ATETXMODE=1 ; set TX-Mode.
|
||
iwpriv ra0 set ATETXMCS=7 ; set MCS type.
|
||
iwpriv ra0 set ATETXBW=0 ; set Bandwidth
|
||
iwpriv ra0 set ATE=RXFRAME ; Start Rx,
|
||
iwpriv ra0 set ATERXFER=1 ; show RxCnt and RSSI/per-antenna, Transmit test packets
|
||
iwpriv ra0 set ATE=ATESTART ; Stop
|
||
iwpriv ra0 stat ; get statistics counter
|
||
iwpriv ra0 set ATERXFER=1
|
||
iwpriv ra0 set ATERXANT=1
|
||
|
||
iwpriv ra0 set ATE=ATESTART
|
||
iwpriv ra0 set ATERXANT=0
|
||
iwpriv ra0 set ATE=RXFRAME
|
||
|
||
2.6 Show all ate parameters
|
||
iwpriv ra0 set ATESHOW=1
|
||
|
||
Mode=4
|
||
TxPower0=0
|
||
TxPower1=0
|
||
TxAntennaSel=0
|
||
RxAntennaSel=0
|
||
BBPCurrentBW=0
|
||
GI=0
|
||
MCS=7
|
||
TxMode=1
|
||
Addr1=00:11:22:aa:bb:cc
|
||
Addr2=00:11:22:aa:bb:cc
|
||
Addr3=00:11:22:aa:bb:cc
|
||
Channel=1
|
||
TxLength=1024
|
||
TxCount=40000
|
||
TxRate=11
|
||
RFFreqOffset=0
|
||
|
||
2.7 Online help
|
||
iwpriv ra0 set ATEHELP=1
|
||
|
||
ATE=ATESTART, ATESTOP, TXCONT, TXCARR, TXFRAME, RXFRAME
|
||
ATEDA
|
||
ATESA
|
||
ATEBSSID
|
||
ATECHANNEL, range:0~14(unless A band !).
|
||
ATETXPOW0, set power level of antenna 1.
|
||
ATETXPOW1, set power level of antenna 2.
|
||
ATETXANT, set TX antenna. 0: all, 1: antenna one, 2: antenna two.
|
||
ATERXANT, set RX antenna.0: all, 1: antenna one, 2: antenna two, 3: antenna three.
|
||
ATETXFREQOFFSET, set frequency offset, range 0~63.
|
||
ATETXBW, set BandWidth, 0:20MHz, 1:40MHz.
|
||
ATETXLEN, set Frame length, range 24~2312.
|
||
ATETXCNT, set how many frame going to transmit.
|
||
ATETXMCS, set MCS, reference to rate table.
|
||
ATETXMODE, set Mode 0: CCK, 1: OFDM, 2: HT-Mix, 3: GreenField, reference to rate table.
|
||
ATETXGI, set GI interval, 0: Long, 1: Short.
|
||
ATERXFER, 0: disable Rx Frame error rate. 1: enable Rx Frame error rate.
|
||
ATERRF, show all RF registers.
|
||
ATEWRF1, set RF1 register.
|
||
ATEWRF2, set RF2 register.
|
||
ATEWRF3, set RF3 register.
|
||
ATEWRF4, set RF4 register.
|
||
ATELDE2P, load EEPROM from .bin file.
|
||
ATERE2P, display all EEPROM content.
|
||
ATESHOW, display all parameters of ATE.
|
||
ATEHELP, online help.
|
||
|
||
2.8 Display Rx Packet Count and RSSI
|
||
iwpriv ra0 set ATERXANT=0 ==> Enable All Three Rx Antennas
|
||
iwpriv ra0 set ATERXFER=1 ==> Enable Rx Frame Error Rate: RxCnt/RxTotal
|
||
iwpriv ra0 set ATE=RXFRAME ==> Start Rx
|
||
MlmePeriodicExec: Rx packet cnt = 2/4
|
||
MlmePeriodicExec: Rx AvgRssi0=-88, AvgRssi1=-80, AvgRssi2=-91
|
||
MlmePeriodicExec: Rx packet cnt = 2/6
|
||
MlmePeriodicExec: Rx AvgRssi0=-86, AvgRssi1=-77, AvgRssi2=-89<38>K
|
||
<09>K
|
||
|
||
iwpriv ra0 set ATERXANT=1 ==> Enable Three Rx Antenna-1
|
||
iwpriv ra0 set ATERXFER=1 ==> Enable Rx Frame Error Rate: RxCnt/RxTotal
|
||
iwpriv ra0 set ATE=RXFRAME ==> Start Rx
|
||
MlmePeriodicExec: Rx packet cnt = 0/7
|
||
MlmePeriodicExec: Rx AvgRssi=-87
|
||
MlmePeriodicExec: Rx packet cnt = 7/14
|
||
MlmePeriodicExec: Rx AvgRssi=-90
|
||
<09>K
|
||
<09>K
|
||
|
||
|
||
===================================================================================================
|
||
3. Hardware Access
|
||
==================
|
||
|
||
=====================================
|
||
3.1 iwpriv ra0 bbp [parameters]=[Value]
|
||
Read/Write BBP registers by ID number.
|
||
BBPID
|
||
|
||
3.1.1 Read BBP register, BBPID only, no <20><>=<3D><> symbol.
|
||
BBPID:
|
||
0 ~ xx ; decimal, 8-bit
|
||
BBPID=Value
|
||
|
||
3.1.2 Write BBP register.
|
||
BBPID:
|
||
0 ~ xx ; decimal, 8-bit
|
||
Value:
|
||
00 ~FF ; hexdecimal, 8-bit
|
||
|
||
=====================================
|
||
3.2 iwpriv ra0 mac [parameters]=[val]
|
||
Read/Write MAC registers by offset.
|
||
MAC_OFFSET
|
||
|
||
3.2.1 Read MAC register, MAC_OFFSET only, no <20><>=<3D><> symbol.
|
||
MAC_OFFSET:
|
||
0000 ~ FFFF ; hexdecimal, 16-bit
|
||
MAC_OFFSET=Value
|
||
|
||
3.2.2 Write MAC register.
|
||
MAC_OFFSET:
|
||
0000 ~ FFFF ; hexdecimal, 16-bit
|
||
Value:
|
||
0000 ~FFFF ; hexdecimal, 32-bit
|
||
|
||
=====================================
|
||
3.3 iwpriv ra0 e2p [parameters]=[val]
|
||
Read/Write EEPROM content by address.
|
||
EEP_ADDR
|
||
|
||
3.3.1 Read EEPROM content, EEP_ADDR only, no <20><>=<3D><> symbol.
|
||
EEP_ADDR:
|
||
00 ~ FF ; hexdecimal, 16-bit alignment (0, 2, 4, 6, 8, A, C, <20>K)
|
||
EEP_ADDR=Value
|
||
|
||
3.3.2 Write EEPROM content.
|
||
EEP_ADDR:
|
||
00 ~ FF ; hexdecimal, 16-bit alignment (0, 2, 4, 6, 8, A, C, <20>K)
|
||
Value:
|
||
0000 ~FFFF ; hexdecimal, 16-bit
|
||
|
||
=====================================
|
||
3.4 Example
|
||
|
||
3.4.1 Hardware access
|
||
iwpriv ra0 bbp 0 # read BBP register 0
|
||
iwpriv ra0 bbp 0=12 # write BBP register 0 as 0x12
|
||
iwpriv ra0 mac 0 # read MAC register 0
|
||
iwpriv ra0 mac 0=1234abcd # write MAC register 0 as 0x1234abcd
|
||
iwpriv ra0 e2p 0 # read E2PROM 0
|
||
iwpriv ra0 e2p c=12ab # write E2PROM 0xc as 0x12ab
|
||
|
||
3.4.2 Statistic counter operation
|
||
iwpriv ra0 stat # read statistic counter
|
||
iwpriv ra0 set ResetCounter=0 # reset statistic counter
|
||
|
||
Suggestion:
|
||
1. To turn on ATE functionality, you have to add compile flag "RALINK_ATE" to Makefile
|
||
2. Before doing ATE testing, please stop AP function
|
||
3. If you want to test another ATE action, prefer to stop AP & ATE function
|
||
4. All ATE function settings will lose efficacy after reboot.
|
||
5. Before hardware register access, please reference hardware spec.
|
||
Note.
|
||
In ATE mode, the channel must set via "ATECHANNEL"
|
||
|
||
===================================================================================================
|
||
4. ated
|
||
=======
|
||
4.1 Introduction
|
||
The ated is an optional user space component for RT28xx Linux driver.
|
||
When Windows GUI starts, AP enters ATE mode (i.e.,ATESTART) immediately.
|
||
It behaves as a proxy between Windows GUI and RT28xx Linux driver when ATE process proceeds.
|
||
The ated will be killed automatically when Windows GUI is closed.
|
||
You can kill it manually, too(for example, type '$killall ated').
|
||
RT28xx linux driver will leave ATE mode either ated is killed or Windows GUI is closed.
|
||
|
||
4.2 Environment setup
|
||
1. Connect the platform you want to test directly with a Windows host by ether network line.
|
||
2. In the Windows host, run WinPcap_4_0.exe for the QA GUI or ./RT2880_ATE/RaUI.exe(please unrar "RT2880_ATE.rar" to get it).
|
||
|
||
4.3 How to use ated for ATE purpose
|
||
0. First you should set both "HAS_ATE=y" and "HAS_QA_SUPPORT=y" in the file ~/Module/os/linux/config.mk and compile the driver.
|
||
1. Modify the Makefile according to our target "PLATFORM".
|
||
2. Change the path of "CROSS_COMPILE" if needed.
|
||
3. Then type 'make' command to compile the source code of the daemon.
|
||
4. After the driver interface has started up, attach both of the wireless interface and the ethernet interface to the bridge interface.
|
||
5. If you have no bridge interface, please give an IP address to the ethernet interface.
|
||
(for example : '$ated -beth0')
|
||
6. After the interfaces have entered forwarding states, manually start ated, type '$ated -bbrX -iraX'.
|
||
7. If your WLAN interface and Bridge interface is "ra0" and "br0" respectively, just type $ated.
|
||
(For further usage of options, type $ated -h)
|
||
8. In the Windows host, run RT28xxQA_ATE.exe or ./RT2880_ATE/RaUI.exe.
|
||
9. Select the wired network adapter, then press OK and wait for a moment.
|
||
10.If the Windows host cannot tolerate such a broadcast storm from ated,
|
||
please run ated with option -u.(for example : '$ated -ira1 -u')
|
||
11.If your target platform concerns its network security, please run RT28xxQA_unicast.exe instead of RT28xxQA_ATE.exe.
|
||
|
||
Note :
|
||
a. The names of WLAN interface(default is "ra0") and Bridge interface(default is "br0") must be specified manually(for example : '$ated -bbr1 -ira2') if your WLAN interface or Bridge interface is not "ra0" or "br0" respectively !
|
||
b. Please make sure no other RaUI is running before you excute ./RT2880_ATE/RaUI.exe.
|
||
|
||
|
||
|