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.

OPT3101EVM: OPT3101EVM

Part Number: OPT3101EVM
Other Parts Discussed in Thread: OPT3101

I'm having a problem with capturing any data from the EVM. The ports seem to be configured correctly as described in the User's Guide, page 11. Latte starts up fine but when I hit "Start Capture" I can see that the command to start is sent (in the log) but then times out because it never receives any data. This is the message in the log:

"Capture data from EVM timed out -- no data received from EVM. Stopping capture."

Digging a little further in the log I found this:

"

Loading register map based on flash : Register Count 34 Reg Address: 0xB5 Value:0x00000001

Loading register map based on flash : Register Count 35 Reg Address: 0xB8 Value:0x00018026

Loading register map based on flash : Register Count 36 Reg Address: 0xB9 Value:0x00000478

Operation Flash read Failed.

#Done executing .. OPT3101/OPT3101EVMrevE3_Demo/02-loadCalibrationFromFlash.py

#End Time 2019-11-08 11:58:19.873000

#Execution Time = 4.14699983597 s

#================ ERRORS:1, WARNINGS:1 ================#"

Could be the problem?

  • Hi Brandon,

    This error (flash) is actually expected so this is not the issue. Could you paste the full data log from the log window when you run? Also Latte opens an additional black command prompt window in the background. After running can you also check this window for errors? Can you also provide a screenshot of your COM ports in device manager? This should help be debug this further. Also if you can provide a photo of the front view of your EVM that would be helpful as well.

    Best,

    Alex

  • Hi Alex,

    Here is the log:

    Loading register map based on flash : Register Count 34 Reg Address: 0xB5 Value:0x00000001

    Loading register map based on flash : Register Count 35 Reg Address: 0xB8 Value:0x00018026

    Loading register map based on flash : Register Count 36 Reg Address: 0xB9 Value:0x00000478

    Operation Flash read Failed.

    #Done executing .. OPT3101/OPT3101EVMrevE3_Demo/02-loadCalibrationFromFlash.py

    #End Time 2019-11-08 11:58:19.873000

    #Execution Time = 4.14699983597 s

    #================ ERRORS:1, WARNINGS:1 ================#

    Here is a screen shot of the ports:

    Just curious, what should the baud rate be set to?

    Here is the output of the terminal window:

    [23748] PyInstaller Bootloader 3.x
    [23748] LOADER: executable is C:\Program Files\Texas Instruments\Latte\bin\latte.exe
    [23748] LOADER: homepath is C:\Program Files\Texas Instruments\Latte\bin
    [23748] LOADER: _MEIPASS2 is NULL
    [23748] LOADER: archivename is C:\Program Files\Texas Instruments\Latte\bin\latte.exe
    [23748] LOADER: No need to extract files to run; setting extractionpath to homepath
    [23748] LOADER: SetDllDirectory(C:\Program Files\Texas Instruments\Latte\bin)
    [23748] LOADER: Already in the child - running user's code.
    [23748] LOADER: Python library: C:\Program Files\Texas Instruments\Latte\bin\python27.dll
    [23748] LOADER: Loaded functions from Python library.
    [23748] LOADER: Manipulating environment (sys.path, sys.prefix)
    [23748] LOADER: sys.prefix is C:\PROGRA~1\TEXASI~1\Latte\bin
    [23748] LOADER: Setting runtime options
    [23748] LOADER: Initializing python
    [23748] LOADER: Overriding Python's sys.path
    [23748] LOADER: Post-init sys.path is C:\Program Files\Texas Instruments\Latte\bin
    [23748] LOADER: Setting sys.argv
    [23748] LOADER: setting sys._MEIPASS
    [23748] LOADER: importing modules from CArchive
    [23748] LOADER: extracted struct
    [23748] LOADER: callfunction returned...
    [23748] LOADER: extracted pyimod01_os_path
    [23748] LOADER: callfunction returned...
    [23748] LOADER: extracted pyimod02_archive
    [23748] LOADER: callfunction returned...
    [23748] LOADER: extracted pyimod03_importers
    [23748] LOADER: callfunction returned...
    [23748] LOADER: Installing PYZ archive with Python modules.
    [23748] LOADER: PYZ archive: latte
    [23748] LOADER: Running pyiboot01_bootstrap.py
    [23748] LOADER: Running pyi_rth_mplconfig.py
    [23748] LOADER: Running pyi_rth_mpldata.py
    [23748] LOADER: Running pyi_rth_traitlets.py
    [23748] LOADER: Running pyi_rth_multiprocessing.py
    [23748] LOADER: Running pyi_rth_win32comgenpy.py
    [23748] LOADER: Running pyi_rth_pkgres.py
    [23748] LOADER: Running pyi_rth__tkinter.py
    [23748] LOADER: Running pyi_rth_qt4plugins.py
    Qt: Untested Windows version 10.0 detected!
    [23748] LOADER: Running latteExec.py
    C:\Users\brandon.poulson\Documents\Texas Instruments\Latte\projects\

    Lastly, here is a photo of my EVM

    I think that's it. Thank you for helping out. 

    On a related note, I see that the max drive current available for illumination from TX0 is 173.6 mA. I would like to try something to push the effective range out a bit further so I will need more current. I wonder if I can tap the drive signal that is controlling the illumination and use it as a PWM signal to a gate driver so I can drive something more powerful - with a separate power source of course. Any thoughts on this?

    Thanks again,

    Brandon

  • Alex, Sorry, not all the log was captured. Here you go: #====== #Executing .. OPT3101/OPT3101EVMrevE3_Demo/devInit.py #Start Time 2019-11-08 14:46:38.054000 Registers View - Reset property was not found #================ ERRORS:0, WARNINGS:1 ================# #================ ERRORS:0, WARNINGS:0 ================# DEVR; Sending reset pulse to device Internal electrical Crosstalk Correction REGWx80x004E1E; dev.tg_en=0 REGWx2Ax784920; dev.en_adaptive_hdr=0 REGWx14x000000; dev.en_sequencer=0 REGWx14x000000; dev.en_processor_values=0 REGWx80x004E1F; dev.tg_en=1 REGWx2Ex8001A0; dev.use_xtalk_reg_int=0 REGWx2Ex8001B0; dev.int_xtalk_calib=1 REGWx2Ex8001A0; dev.int_xtalk_calib=0 REGWx2Ex8001A0; dev.iq_read_data_sel=0 REGWx2Ex8001A0; dev.iq_read_data_sel=0 Internal Crosstalk, Amp:00000 codes ,Phase:0.0 degrees REGWx80x004E1E; dev.tg_en=0 REGWx2Ax784920; dev.en_adaptive_hdr=0 REGWx14x000000; dev.en_sequencer=0 REGWx14x000000; dev.en_processor_values=0 REGWx80x004E1F; dev.tg_en=1 Loading register map based on flash : Register Count 01 Reg Address: 0x0B Value:0x00114009 Loading register map based on flash : Register Count 02 Reg Address: 0x0C Value:0x009B0000 Loading register map based on flash : Register Count 03 Reg Address: 0x29 Value:0x003F9C41 Loading register map based on flash : Register Count 04 Reg Address: 0x2B Value:0x00016978 Loading register map based on flash : Register Count 05 Reg Address: 0x2C Value:0x0000186A Loading register map based on flash : Register Count 06 Reg Address: 0x2D Value:0x0051956B Loading register map based on flash : Register Count 07 Reg Address: 0x2E Value:0x002207A0 Loading register map based on flash : Register Count 08 Reg Address: 0x2F Value:0x00480A5D Loading register map based on flash : Register Count 09 Reg Address: 0x30 Value:0x00100478 Loading register map based on flash : Register Count 10 Reg Address: 0x31 Value:0x000010DE Loading register map based on flash : Register Count 11 Reg Address: 0x32 Value:0x00000398 Loading register map based on flash : Register Count 12 Reg Address: 0x33 Value:0x0000202C Loading register map based on flash : Register Count 13 Reg Address: 0x34 Value:0x000001CA Loading register map based on flash : Register Count 14 Reg Address: 0x35 Value:0x00004E6B Loading register map based on flash : Register Count 15 Reg Address: 0x36 Value:0x000006AF Loading register map based on flash : Register Count 16 Reg Address: 0x38 Value:0x00000000 Loading register map based on flash : Register Count 17 Reg Address: 0x39 Value:0x00000000 Loading register map based on flash : Register Count 18 Reg Address: 0x3A Value:0x004F0000 Loading register map based on flash : Register Count 19 Reg Address: 0x41 Value:0x00908010 Loading register map based on flash : Register Count 20 Reg Address: 0x42 Value:0x000045DF Loading register map based on flash : Register Count 21 Reg Address: 0x43 Value:0x009D0083 Loading register map based on flash : Register Count 22 Reg Address: 0x45 Value:0x00000555 Loading register map based on flash : Register Count 23 Reg Address: 0x47 Value:0x009D08F8 Loading register map based on flash : Register Count 24 Reg Address: 0x48 Value:0x009D08F8 Loading register map based on flash : Register Count 25 Reg Address: 0x49 Value:0x009D0900 Loading register map based on flash : Register Count 26 Reg Address: 0x51 Value:0x00003E1D Loading register map based on flash : Register Count 27 Reg Address: 0x52 Value:0x00003447 Loading register map based on flash : Register Count 28 Reg Address: 0x53 Value:0x00002C93 Loading register map based on flash : Register Count 29 Reg Address: 0x5E Value:0x00000000 Loading register map based on flash : Register Count 30 Reg Address: 0x5F Value:0x00000032 Loading register map based on flash : Register Count 31 Reg Address: 0x60 Value:0x00110000 Loading register map based on flash : Register Count 32 Reg Address: 0x71 Value:0x00000000 Loading register map based on flash : Register Count 33 Reg Address: 0xB4 Value:0x00E1E1CF Loading register map based on flash : Register Count 34 Reg Address: 0xB5 Value:0x00000001 Loading register map based on flash : Register Count 35 Reg Address: 0xB8 Value:0x00018026 Loading register map based on flash : Register Count 36 Reg Address: 0xB9 Value:0x00000478 Operation Flash read Failed. #================ ERRORS:1, WARNINGS:1 ================# REGWx89x001B58; dev.tg_ovl_window_start=7000 REGWx6Ex0A1AE2; dev.en_temp_conv=1 REGWx07x800000; dev.config_tillum_msb=8 REGWx0Dx806000; dev.en_tillum_12b=1 REGWx02x92A448; dev.tsens_slave1=72 REGWx02xB2A448; dev.en_tillum_read=1 REGWx02x32A448; dev.temp_avg_illum=0 REGWx01x120140; dev.frame_vd_trig=1 REGWx01x1A0140; dev.i2c_en=1 REGWx01x1A0140; dev.i2c_rw=1 REGWx07x810000; dev.i2c_num_bytes_tran1=1 REGWx50x200101; dev.clip_mode_fc=1 REGWx2Ex2207A0; dev.iq_read_data_sel=3 REGWx78x001000; dev.gpio1_obuf_en=1 REGWx78x001080; dev.gpo1_mux_sel=2 REGWx0Bx114009; dev.dig_gpo_sel0=9 REGWx78x001080; dev.gpio2_obuf_en=0 REGWx78x011080; dev.gpio2_ibuf_en=1 REGWx9Fx000001; dev.num_sub_frames=1 REGWx9Fx001001; dev.num_avg_sub_frames=1 REGWx2Ex9207A0; dev.xtalk_filt_time_const=9 REGWx14x000000; dev.en_processor_values=0 REGWx2Bx016978; dev.hdr_thr_high=27000 REGWx2Cx001405; dev.hdr_thr_low=5125 REGWx2Ax78C920; dev.en_adaptive_hdr=1 REGWxB9x000478; dev.en_tx1_on_tx0=1 REGWxB9x000478; dev.en_tx2_on_tx0=0 REGWx85x00267A; dev.tg_seq_int_start=9850 REGWx86x002682; dev.tg_seq_int_end=9858 REGWx97x000001; dev.tg_seq_int_mask_start=1 REGWx97x001001; dev.tg_seq_int_mask_end=1 REGWx13x036B00; dev.compare_reg1=28000 REGWx14x00101D; dev.compare_reg2=4125 REGWx13x036B00; dev.mux_sel_compin=0 REGWx15x101108; dev.command0=264 REGWx15xB02108; dev.command1=2818 REGWx16x400100; dev.command2=256 REGWx16xC00100; dev.command3=3072 REGWx14x01101D; dev.en_sequencer=1 REGWx14x03101D; dev.en_processor_values=1 REGWx10x00C000; dev.en_cont_fcalib=1 REGWx0Fx154C4B; dev.start_freq_calib=1 REGWx0Fx954C4B; dev.en_freq_corr=1 REGWx0Fx914C4B; dev.sys_clk_divider=8 REGWx0Fx915000; dev.ref_count_limit=20480 REGWx0FxD15000; dev.en_floop=1 REGWx0FxF15000; dev.en_auto_freq_count=1 REGWx0FxF15000; dev.en_freq_corr=1 REGWx0FxF15000; dev.start_freq_calib=1 REGWx80x004E1F; dev.tg_en=1 #================ ERRORS:0, WARNINGS:0 ================# REGWx43x9D0083; dev.scale_phase_temp_coeff=2 REGWx45x000566; dev.temp_coeff_main_hdr0_tx0=1382 REGWx2Dx51957C; dev.temp_coeff_main_hdr1_tx0=1404 REGWx2Dx52957C; dev.temp_coeff_main_hdr0_tx1=1321 REGWx30x000478; dev.temp_coeff_main_hdr1_tx1=1168 REGWx2Fx490A5D; dev.temp_coeff_main_hdr1_tx1=73 REGWx46x000000; dev.temp_coeff_illum_hdr0_tx0=0 REGWx52x003447; dev.temp_coeff_illum_hdr1_tx0=0 REGWx51x003E1D; dev.temp_coeff_illum_hdr1_tx0=0 REGWx54x000000; dev.temp_coeff_illum_hdr0_tx1=0 REGWx53x002C93; dev.temp_coeff_illum_hdr0_tx1=0 REGWx56x000000; dev.temp_coeff_illum_hdr1_tx1=0 REGWx55x000000; dev.temp_coeff_illum_hdr1_tx1=0 REGWxB5x000001; dev.scale_amb_phase_corr_coeff=1 REGWx0CxA00000; dev.amb_phase_corr_pwl_coeff0=160 REGWxB4xE1E1CE; dev.amb_phase_corr_pwl_coeff1=206 REGWxB4xE1E1CE; dev.amb_phase_corr_pwl_coeff2=225 REGWxB4xE1E1CE; dev.amb_phase_corr_pwl_coeff3=225 REGWxB8x01801B; dev.amb_phase_corr_pwl_x0=27 REGWxB8x01801B; dev.amb_phase_corr_pwl_x1=96 REGWxB9x000478; dev.amb_phase_corr_pwl_x2=120 #================ ERRORS:0, WARNINGS:0 ================# #================ ERRORS:0, WARNINGS:0 ================# #Done executing .. OPT3101/OPT3101EVMrevE3_Demo/devInit.py #End Time 2019-11-08 14:46:42.960000 #Execution Time = 4.90600013733 s #================ ERRORS:0, WARNINGS:0 ================#
  • Hi Brandon,

    I don't see anything amiss in the logs here. It looks like the software is able to communicate find with the EVM. Have you tried power cycling and restarting the computer to make sure it couldn't be anything strange there?

    Regarding using an external driver this is a possibility. You will need to make sure that

    1) The driver can operate to drive a 10MHz square wave

    2) Crosstalk is tricky if the loop area of the photodiode or LED gets to large and can couple TX to RX. This is an issue with bad layouts even without an external driver so this will be tricky using a driver and you would need to run some tests with your driver to see how the crosstalk comes out. I can take a look at your PCB design to review it if you go this route to try to help minimize needing to do a board respin due to layout issues.

    Best,

    Alex