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.

CC256x Production Line Testing

Other Parts Discussed in Thread: CC256XB-BT-SP

I've been trying to get the example shown here processors.wiki.ti.com/index.php/CC256x_Production_Line_Testing_Guide to work but no packets are ever received.

I'm running these commands on our prototype not using the SS1Tool, but I think I'm sending the equivalent commands. No errors are returned by any of the calls on either the transmitter or the receiver.  I've attached logger trace files for both the transmitter and receiver.  All logs are complete from power up.  We are using the AM335xBluetopiaLinuxProduction-4.0.3.0.1.0 stack.

Our BT hardware seems to be working fine as we can pair with other BT devices without a problem.

By the way there seems to be an inconsistency on the above page in the description of the HCI_VS_DRPb_Tester_Packet_TX_RX 0xFD85 command.  The data in the first gray box shows shows a pattern type of 3 (f0f0) and a power level of 9.  The data in the second gray box shows a pattern of 5 (PRBS9) and a power level of 15.  I've tried both with the same results.

Any help would be most appreciated as I'm out of ideas of were the problem is.


Skip

logs.tar.gz

  • Anyone have any ideas?  I'm still struggling with this and I'm out of ideas.  I could really use a second set of eyes...

    Skip

  • Hi Skip, 

    I've just verified that the transmit command works, but I'm not sure what setup are you using and what is the reciver configuration.

    Please send the commands used on both RX and TX sides.

    I agree about the inconsistency. Both options are valid just make sure they are aligned with RX configuration.

    thanks,

    Kobi

  • Hi Kobi,

    I'm using two identical prototypes both one as the transmitter and another as the receiver. You'll find the logs from both the RX and TX side in logs.tar.gz that I attached to my first post:

    --- snip ---
    skip@trusty:~$ tar tzf logs.tar.gz
    rx_f0f0.lgr
    rx.lgr
    tr.lgr
    tx_f0f0.lgr
    ---

    rx.lgr and tx.lgr are from an attempt using the PRBS9 pattern.
    rx_f0f0.lgr and tx_f0f0.lgr are from an attempt using the f0f0 pattern.

    Thanks for the response!

    Skip
  • Hi Skip,

    Do you have the delay between the first HCI_VS_DRPb_BER_Meter_Start (0xFD8B) and the HCI_VS_DRPb_Read_BER_Meter_Result (0xFD13) as mentioned in the PLT wiki? Also, for each new HCI_VS_DRPb_Read_BER_Meter_Result, you will need to have a corresponding HCI_VS_DRPb_BER_Meter_Start command.

    Best regards,

    Vihang

  • Hi Vihang,

    Sorry for the slow reply... I had a hard disk crash which took me off line.

    Yes, I am delaying 10 seconds after issuing the VS_DRPb_BER_Meter_Start command before I start issuing VS_DRP_Read_BER_Meter_Result commands.  I think poll for 5 times with a 1 second delay between each poll.

    I do not issue a new HCI_VS_DRPb_BER_Meter_Start on each poll.  The command is run via a command line interface and I've run it may times without restarting always with the same result - nothing is received.

    I would have thought the logs would have provided the exact timing, have you had a chance to look at them?

    Skip

  • Hi Skip,

    Yes, I had reviewed the logs and my previous comment was related to that.
    - The rx_f0f0.lgr does not have any delay between the HCI_VS_DRPb_BER_Meter_Result and the corresponding HCI_VS_DRPb_Read_BER_Meter_Result.
    - The rx.lgr does and it had multiple HCI_VS_DEPb_Read_BER_Meter_Result calls.
    After the confirmation, looks like this is not the case. So moving on in the debug.

    The PLT test documentation was originally written to do the PLT test with a Bluetooth tester like the liteview IQ2010 or similar. Another CC256x device is not typically used as TX for this kind of test.

    That being said, it is not impossible to use a CC256x as TX and most likely we have a mismatch in the packet configuration. I will check this in the Lab and post my result here tomorrow.

    Best regards,
    Vihang
  • hi , closing the thread since there is no reply for 1 week
    Saurabh
  • Hi Vihang and Saurabh,

    My apologies for the slow response, I experienced a hard disk crash last week although I didn't lose anything it took a lot of time and effort to restore and recover.

    This issue is still outstanding and I'm looking forward to learning what you discover. I will double check that the delay on my platform (STM32Cube FW library) is actually delaying the right amount. My code asks for a 11 second delay between sending VS_DRPb_BER_Meter_Start and the first VS_DRP_Read_BER_Meter_Result command. I have tried other delays as well. My code does loop for up to 5 times resending VS_DRP_Read_BER_Meter_Result commands if no results are received with a 1 second delay between loops.

    Thanks,
    Skip
  • Hi Skip,

    Necromancing this thread to post the solution for your setup:

    * You will need 2 CC256xB boards.

    1. Load the initscript (cc256xb-bt-sp) to both TX and RX boards.

    2. Start the BER Meter on the DUT (RX) with the following commands.

    $l10
    count = 0
    #DH5 
    Send_HCI_VS_DRPb_BER_Meter_Start 0xFD8B, 3, 0, 0x341278563412, 1, 0x5, 339, 500, 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 0xFE2A
    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, count %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
    
    
    

    3. Start the packet TX on the TX board with the following commands.

    # Set BD address
    BD_ADDR="123456781234"
    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_Write_Scan_Enable 0x00
    sleep 1000
    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x01, 0x00000000, 0x01
    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, any, HCI_VS_DRPb_Enable_RF_Calibration, 0x00
    Sleep 1000
    
    # Sent Tx Packets
    Send_HCI_VS_DRPb_Tester_Packet_TX_RX 0xFDCC, 0x03, 3, 0xFF, 0x5, 0x5, 0, 339, 7, 1, 0x01FF
    Wait_HCI_Command_Complete_VS_DRPb_Tester_Packet_TX_RX_Event 5000, any, HCI_VS_DRPb_Tester_Packet_TX_RX, 0x00
    

    When the TX is transmitting the packets with specified modulation and length parameters, every callback of the HCI_Command_Complete_VS_DRP_Read_BER_Meter_Status_Event (0xFE2A) will show you the current count of the packets received. When the count reaches the specified "Number of Packets" value in the HCI_VS_DRPb_BER_Meter_Start command, the last HCI_Command_Complete_VS_DRP_Read_BER_Meter_Status_Event will show you the number of packets received, number of total bits received and number of bit errors.

    I have attached the HCITester scripts that I used in this test for your reference.

    8424.HCITester_BER_Example.zip

    Best regards.

    Vihang

  • Hi Vihang,

    I'm confused by "Send_HCI_VS_DRP_Read_BER_Meter_Status 0xFD5B" (line 161 in the script).  According to processors.wiki.ti.com/.../CC256x_VS_HCI_Commands  the 0xfd5b command is HCI_VS_LE_Enable. 

    Are the commands prior to the comment "## Set up DUT RX for BER test" in the attached script part of the "service pack", i.e. all of the Send_HCI_VS_Write_Memory_Block commands?

    Skip

      

     

  • Hi skip,

    There was a typo in the bts script on my side. But the HCITester was able to pick the right opcode from the command name. Please see my edited response above for correction.

    Yes, everything above the "##Set up DUT RX for BER Test" is the service pack.

    Thanks.

    BR,
    Vihang
  • Hi Vihang,

    I'm still not having any success. In desperation I've modified our prototype to talk to my PC via an FTDI cable so I could run the HCITester script directly. We're using a CC2564B so I've connected it use using the 3-wire H5 interface. When I run TX_PacketMode_HCITester_script it times out waiting for Wait_HCI_Command_Complete_VS_Update_Uart_HCI_Baudrate_Event. If I comment out Send_HCI_VS_Update_Uart_HCI_Baudrate and the Wait_HCI_Command_Complete_VS_Update_Uart_HCI_Baudrate_Event then the script runs. Is that expected with a 3-write interface ?

    If so I'll modify a second board tomorrow and see if I can reproduce your results.

    Skip
  • Hi Vihang,

    I've modified two of our prototypes to connect to a PC via FTDI cables and used your scripts with the HCITester. That worked as long as I comment out the Send_HCI_VS_Update_Uart_HCI_Baudrate, Wait_HCI_Command_Complete_VS_Update_Uart_HCI_Baudrate_Event and Com_SetParams, otherwise Wait_HCI_Command_Complete_VS_Start_VS_Lock_Event fails with a timeout error.

    Is this expected for a CC2564B in 3-wire mode?

    Thanks,
    Skip
  • Hi Skip,

    Please see my first comment in an old e2e thread regarding H5 and HCITester.
    e2e.ti.com/.../1895517

    The H5 is detected by the CC256x automatically, but you will need to verify the following 2 settings in HCITester in order to successfully execute the entire bts in HCITester.
    - View->Options->Serial Port->Flow Control is set to "Three Wire"
    - In the Com_SetParams command of the bts file, the second parameter Flow Contro should be 5 (=Three Wire) So instead of "COM_SetParams 115200, 1, 0", you need "COM_SetParams 115200, 5, 0".

    This will allow you to use 3-Wire mode with the bts provided.

    Best regards,
    Vihang
  • Hi Skip,

    I understand that you had a workaround in the initscript to make it work with the HCITester in H5 mode. Did the solution above help? If yes, please let us know and we will mark this as solved. Thanks.

    Best regards,
    Vihang