This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1837MOD: BER Test - Between Two Wilink Devices Script non functional

Part Number: WL1837MOD


Hi 

BER test between 2 Wilink devices unable to calculate. We followed the below steps and could not validate the BER from the trace log. 

What is the Opcode for HCI_VS_DRP_Read_BER_Meter_Status?

 

Send_HCI_VS_DRP_Read_BER_Meter_Status 0xFD5B

Send_HCI_VS_DRP_Read_BER_Meter_Status 0xFD13

 

 

Vendor specific command Opcode is different compared with script from the Wiki page.

Attached the command executed for TX and RX

Trace log: 7762.HCITester Trace Log.htm

TX: 

#Send_HCI_Read_BD_ADDR 
#BD Address 74:E1:82:2B:52:CE converted to MSB~LSB 0xCE522B82E174



#Send_HCI_VS_Write_BD_ADDR 0xFC06, BD_ADDR
#Wait_HCI_Command_Complete_VS_Write_BD_ADDR_Event 5000, any, HCI_VS_Write_BD_ADDR, 0x00 

Send_HCI_VS_DRPb_Enable_RF_Calibration_Enhanced 0xFDFB, 1, 0xFF, 0x00000000, 0x01
Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Enhanced_Event 5000, any, HCI_VS_DRPb_Enable_RF_Calibration_Enhanced, 0x00
sleep 1000

# Sent Tx Packets
Send_HCI_VS_DRPb_Tester_Packet_TX_RX 0xFDCC, 0x5, 3, 2402, 0xFFFF, 5, 0, 339, 5, 1, 0x01FF
Wait_HCI_Command_Complete_VS_DRPb_Tester_Packet_TX_RX_Event 5000, any, HCI_VS_DRPb_Tester_Packet_TX_RX, 0x00

 RX: 
$l10
count = 0
#Subtitute the BD_ADDR of Transmitter 0xCE522B82E174 
       
#DH5, 339 packet size x 8 bits x 590 packets = 1.6Mbits
#BD address = that of the TX board
Send_HCI_VS_DRPb_BER_Meter_Start 0xFD8B, 0, 0, 0xCE522B82E174, 1, 0x5, 339, 590, 0x1FF, 0x1
Wait_HCI_Command_Complete_VS_DRPb_BER_Meter_Start_Event 5000, any, HCI_VS_DRPb_BER_Meter_Start, 0x00

#
$l11
Sleep 100
count++

Send_HCI_VS_DRP_Read_BER_Meter_Status 0xFD5B
Wait_HCI_Command_Complete_VS_DRP_Read_BER_Meter_Status_Event 5000, any, HCI_VS_DRP_Read_BER_Meter_Status, 0x00, &synched, &finished, any, &total_bits, &bit_errors, &packets
if finished== 0 then
	if synched == 0 then
		log"not synced yet %d count",count
		#Fail "no SYNC"
	else
		log"not finished yet %d packets, coutn %d",packets,count
	endif
	goto $l11
else
	BER = 1000000*bit_errors/total_bits
	log"BER is %d e-6 (%d bits out of %d)",1000000*bit_errors/total_bits,bit_errors,total_bits
	if BER > 100 then
		Fail "BER is too high"
	else
		pause "Finished"
	endif
	
endif

#pause""
goto $l10