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.

TSW14J57EVM: Preliminary version PRO GUI 5.30

Part Number: TSW14J57EVM

Dear TI,

I got the preliminary version of HSDC Pro 5.30 and tried to use it with TSW14J57EVM. I uninstalled the previous version of HSDC. I get the following error message upon starting the program:

Invoke Node in TSW1400.lvlib:Startup Splash Screen.vi
<APPEND>
VI Path: <b>C:\Program Files\Texas Instruments\High Speed Data Converter Pro\High Speed Data Converter Pro.exe\Frame.vi</b>

and 

I have no option to choose the board to connect with (as in the previous version). Do I need to install some drivers or any additional files, or change some existing files?

I am trying to use this version of HSDC to accelerate the process of sampling from my ADC and sending the signal to the PC. I also had issues with get_capture_data (32 bit) - I always got just half of the points and the other half came in as just zeros. To me it seems that the TSW samples from both ADC channels eventhough the configuration states it is one channel only. I therefore use save_raw_data_s_csw to save the sampled data in a csw file and then I read the file on the PC. This works well but is not helping in making the process faster.

  • Emir,

    Which firmware are you using? The ini may not be selecting the correct firmware. See comments below from software team. You can consult the HSDC Pro User's Guide on how to  manually download firmware if needed.

    "Sorry, I checked the 5.27 version, and it uses the “TSW14J57revE_DDR_RxOnly_L8_Reconfig_FIRMWARE”. I believe the customer’s INI file also has the L8 firmware as he might be using the 5.2 version of HSDC Pro.

     We can ask the customer to try “TSW14J57RevE_16L_XCVR_ADCDDRDACBRAM” with trigger option enabled. On any issues, he can also give a try with the following trigger supported firmwares.

     

    • TSW14J57RevE_16L_XCVR_ADCBRAMDACDDR
    • TSW14J57RevE_16L_XCVR_ADCBRAMDACDDR_TIDA_10132
    • TSW14J57RevE_16L_XCVR_ADCDDRDACBRAM
    • TSW14J57revE_16L_DDR_XCVR_FIRMWARE.rbf
    • TSW14J57revE_BRAM_RxOnly_16L_trig_FIRMWARE

    Regards,

    Jim

  • Hi,

    Version 5.2 works well (except for the second issue with get_capture_data_32bits), I am trying to use version 5.30 (to speed up the data transfer). I dont get to choose to connect to a board when I start the program. I think the program assumes use of TSW1400 which I dont have.

  • Emir,

    I am checking with the software team and should have an answer by tomorrow.

    Regards,

    Jim

  • Emir,

    From the software team:

    HSDC Pro v5.30 was built in LabVIEW 2019 64 Bit.

    We could see that we have missed to add LabVIEW 2019 Runtime Engine which is required for the HSDC Pro 64Bit to run properly.

    We have few debugging steps to be followed to fix this,

    Step 1:

    Uninstall HSDC Pro v5.30

     

    Step 2:

    Download LabVIEW 2019 Runtime Engine(RTE)

     

    Here is the link for LabVIEW 2019 64Bit Runtime Engine(RTE),

    https://www.ni.com/en-us/support/downloads/software-products/download.labview-runtime.html#301740

     

    After the download is complete, run the downloaded executable file to launch NI Package Manager and install the software.

     

    Step 3:

    Reinstall HSDC Pro v5.30

     

    Hope this should solve the issue, let us know on any updates.

    Regards,

    Jim

  • Thanks! I will try that.

    The second issue remains: 

    using either get_capture_data_16bits or get_capture_data_32bits with a single channel and say 6400MHz sampling rate, 524288 points, returns an array that is one half samples of the channel and the other half just zeros. That may be samples from channel B (to which nothing is connected).

    To omit using get_capture commands, I use Save_Raw_Data_As_CSV, and then it all works well, but I loose a lot of time (almost 1.6 sec.) generating the csv file and then reading it later.

    16bit get_capture takes app 0.2sec and that would reduce the overall data transfer to a bearable total time.

  • Emir,

    See attached.

    Regards,

    Jim

    issue.docx

  • Hi Jim! 

    I do take care of all the points in the file. Here is the file I use for data acquisition: 

    getting_data.txt
    import ctypes
    from ctypes import *
    import os
    import matplotlib.pyplot as pyplot
    import numpy as np
    import time
    import pandas as pd
    '''******************************** Loading the HSDCPro Automation DLL ****************************************************'''
    start=time.time()
    if('PROGRAMFILES(X86)' in os.environ): #selecting the DLL path from HSDC Pro installed location based on 32 bit or 64 bit OS
        dll_path = "C:\\Program Files (x86)\\Texas Instruments\\High Speed Data Converter Pro\\HSDCPro Automation DLL\\64Bit DLL\\HSDCProAutomation_64Bit.dll"
    else:
        dll_path = "C:\\Program Files\\Texas Instruments\\High Speed Data Converter Pro\\HSDCPro Automation DLL\\64Bit DLL\\HSDCProAutomation_64Bit.dll"
    HSDC_Pro = ctypes.WinDLL(dll_path)
    '''*************************************************************************************************************************'''
    '''***************************************ADC Configuration Settings********************************************************'''
    '''*************************************************************************************************************************'''
    
    Boardsno = b"T873D94Z(10AX115)-TSW14J57revE" #Serial Number of board to be connected. Eg: "TIVHIV9Z" or "TIVHIV9Z-TSW1400"
    Devicename = b"ADC12DJxx00_JMODE5" #ADC device to be selected(should be same as what appears in the HSDC Pro GUI selection drop down box.
    Datarate = 6.4e9 #ADC output Data Rate
    ChannelIndex = 0 #0-Based Select ADC Channel
    InputTargetFrequency = 0
    TestSelection = 0 #0-Time Domain 1-Single Tone 2-Two Tone 3-Channel Power
    
    #Trigger Options
    TriggerOption = 0 #0-Normal Capture 1-Software Trigger 2-Hardware Trigger
    NoofChannels = 1
    
    #Get Array of Capture Data
    Number_Of_Samples_Per_Channel = 524288//2
    NumberOfSamplesForAnalysis=524288//2
    OffsetSamplePerChannel = 0
    Capture_Data_Array_Len = NoofChannels * Number_Of_Samples_Per_Channel; # Number_of_Samples_per_channel * Number_of_Channels
    CaptureData_16bits = (c_ulong*Capture_Data_Array_Len)() #Initializing the array for the total number of samples
    CaptureData_32bits = (c_ulonglong*Capture_Data_Array_Len)() #Initializing the array for the total number of samples
    Enable = 0 #1-Enable Additional device parameters 0-Disable Additional device parameters
    
    TimeoutinMs = 30000
    
    '''*************************************************************************************************************************'''
    '''**************************** The actual call to the function contained in the dll ***************************************'''
    '''*************************************************************************************************************************'''
    
    print ("Connecting to board : " +str(Boardsno))
    Err_Status = HSDC_Pro.Connect_Board(Boardsno,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    
    print ("Selecting ADC Device : " +str(Devicename))
    Err_Status = HSDC_Pro.Select_ADC_Device(Devicename,120000)
    print ("Error Status = " + str(Err_Status))
    
    print ("Reloading Device INI...")
    Err_Status = HSDC_Pro.Reload_Device_INI(TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Using HSDC Ready function to check if the GUI is Ready...")
    Err_Status = HSDC_Pro.HSDC_Ready(120000)
    print ("Error Status = " + str(Err_Status))
    
    print ("Passing ADC Output Data Rate = " + str(Datarate))
    Err_Status = HSDC_Pro.Pass_ADC_Output_Data_Rate(c_double(Datarate),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Setting No of Samples as " + str(Number_Of_Samples_Per_Channel))
    Err_Status = HSDC_Pro.Set_Number_of_Samples(c_ulonglong(Number_Of_Samples_Per_Channel),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Setting ADC Analysis Window Length as " + str(NumberOfSamplesForAnalysis))
    Err_Status = HSDC_Pro.ADC_Analysis_Window_Length(c_ulong(NumberOfSamplesForAnalysis),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Selecting ADC Channel " + str(ChannelIndex))
    Err_Status = HSDC_Pro.Select_ADC_Channel(c_ulong(ChannelIndex),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    TriggerModeEnable = 0
    SoftwareTriggerEnable = 0
    ArmOnNextCaptureButtonPress = 0
    TriggerCLKDelays = 0
    print ("Settingng Normal Capture")
    Err_Status = HSDC_Pro.Trigger_Option(TriggerModeEnable,SoftwareTriggerEnable,ArmOnNextCaptureButtonPress,c_ubyte(TriggerCLKDelays),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))	
    print ("Starting normal capture..")
    Err_Status = HSDC_Pro.Pass_Capture_Event(TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    Err_Status = HSDC_Pro.Get_Capture_Data_32bits(Number_Of_Samples_Per_Channel,OffsetSamplePerChannel,CaptureData_32bits,Capture_Data_Array_Len,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    Err_Status = HSDC_Pro.Get_Capture_Data_16bits(Number_Of_Samples_Per_Channel,OffsetSamplePerChannel,CaptureData_16bits,Capture_Data_Array_Len,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    pyplot.plot(CaptureData_16bits,label="podaci16")
    pyplot.legend()
    pyplot.show()
    
    
    

    and I get the following readout from ADC where first half is correct data, and second half just zeros

      

  • Checking with the software team about this.

  • Emir,

    See attached.

    Regards,

    Jim

    Python script.docx

    getting_data_updated.txt
    import ctypes
    from ctypes import *
    import os
    import matplotlib.pyplot as pyplot
    import numpy as np
    import time
    import pandas as pd
    '''******************************** Loading the HSDCPro Automation DLL ****************************************************'''
    start=time.time()
    if('PROGRAMFILES(X86)' in os.environ): #selecting the DLL path from HSDC Pro installed location based on 32 bit or 64 bit OS
        dll_path = "C:\\Program Files (x86)\\Texas Instruments\\High Speed Data Converter Pro\\HSDCPro Automation DLL\\64Bit DLL\\HSDCProAutomation_64Bit.dll"
    else:
        dll_path = "C:\\Program Files\\Texas Instruments\\High Speed Data Converter Pro\\HSDCPro Automation DLL\\64Bit DLL\\HSDCProAutomation_64Bit.dll"
    HSDC_Pro = ctypes.WinDLL(dll_path)
    '''*************************************************************************************************************************'''
    '''***************************************ADC Configuration Settings********************************************************'''
    '''*************************************************************************************************************************'''
    
    Boardsno = b"T873D94Z(10AX115)-TSW14J57revE" #Serial Number of board to be connected. Eg: "TIVHIV9Z" or "TIVHIV9Z-TSW1400"
    Devicename = b"ADC12DJxx00_JMODE5" #ADC device to be selected(should be same as what appears in the HSDC Pro GUI selection drop down box.
    Datarate = 6.4e9 #ADC output Data Rate
    ChannelIndex = 0 #0-Based Select ADC Channel
    InputTargetFrequency = 0
    TestSelection = 0 #0-Time Domain 1-Single Tone 2-Two Tone 3-Channel Power
    
    #Trigger Options
    TriggerOption = 0 #0-Normal Capture 1-Software Trigger 2-Hardware Trigger
    NoofChannels = 1
    
    #Get Array of Capture Data
    Number_Of_Samples_Per_Channel = 524288//2
    NumberOfSamplesForAnalysis=524288//2
    OffsetSamplePerChannel = 0
    Capture_Data_Array_Len = NoofChannels * Number_Of_Samples_Per_Channel; # Number_of_Samples_per_channel * Number_of_Channels
    CaptureData_16bits = (c_ushort*Capture_Data_Array_Len)() #Initializing the array for the total number of samples
    CaptureData_32bits = (c_uint*Capture_Data_Array_Len)() #Initializing the array for the total number of samples
    Enable = 0 #1-Enable Additional device parameters 0-Disable Additional device parameters
    
    TimeoutinMs = 30000
    
    '''*************************************************************************************************************************'''
    '''**************************** The actual call to the function contained in the dll ***************************************'''
    '''*************************************************************************************************************************'''
    
    print ("Connecting to board : " +str(Boardsno))
    Err_Status = HSDC_Pro.Connect_Board(Boardsno,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    
    print ("Selecting ADC Device : " +str(Devicename))
    Err_Status = HSDC_Pro.Select_ADC_Device(Devicename,120000)
    print ("Error Status = " + str(Err_Status))
    
    print ("Reloading Device INI...")
    Err_Status = HSDC_Pro.Reload_Device_INI(TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Using HSDC Ready function to check if the GUI is Ready...")
    Err_Status = HSDC_Pro.HSDC_Ready(120000)
    print ("Error Status = " + str(Err_Status))
    
    print ("Passing ADC Output Data Rate = " + str(Datarate))
    Err_Status = HSDC_Pro.Pass_ADC_Output_Data_Rate(c_double(Datarate),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Setting No of Samples as " + str(Number_Of_Samples_Per_Channel))
    Err_Status = HSDC_Pro.Set_Number_of_Samples(c_ulonglong(Number_Of_Samples_Per_Channel),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Setting ADC Analysis Window Length as " + str(NumberOfSamplesForAnalysis))
    Err_Status = HSDC_Pro.ADC_Analysis_Window_Length(c_ulong(NumberOfSamplesForAnalysis),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    print ("Selecting ADC Channel " + str(ChannelIndex))
    Err_Status = HSDC_Pro.Select_ADC_Channel(c_ulong(ChannelIndex),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    TriggerModeEnable = 0
    SoftwareTriggerEnable = 0
    ArmOnNextCaptureButtonPress = 0
    TriggerCLKDelays = 0
    print ("Settingng Normal Capture")
    Err_Status = HSDC_Pro.Trigger_Option(TriggerModeEnable,SoftwareTriggerEnable,ArmOnNextCaptureButtonPress,c_ubyte(TriggerCLKDelays),TimeoutinMs)
    print ("Error Status = " + str(Err_Status))	
    print ("Starting normal capture..")
    Err_Status = HSDC_Pro.Pass_Capture_Event(TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    Err_Status = HSDC_Pro.Get_Capture_Data_32bits(Number_Of_Samples_Per_Channel,OffsetSamplePerChannel,CaptureData_32bits,Capture_Data_Array_Len,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    Err_Status = HSDC_Pro.Get_Capture_Data_16bits(Number_Of_Samples_Per_Channel,OffsetSamplePerChannel,CaptureData_16bits,Capture_Data_Array_Len,TimeoutinMs)
    print ("Error Status = " + str(Err_Status))
    
    pyplot.plot(CaptureData_16bits,label="podaci16")
    pyplot.legend()
    pyplot.show()