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.

VOLIB TDU DTMF MF Digit Sequence Detection

Hello:

I'm trying to get the VOLIB TDU DTMF MF Digit Sequence Detection in the tdusim project to produce the Detection Output report as described in the TDU Test docs TDU_TEST document as shown below.  Is there something I am missing in the tduSim.options settings or maybe something in the Enable Detection Reports settings for the TDU package or some other setting to produce the report??? 

Thanks Brian

MF Digit Sequence Detection

Detection Output

When a DTMF detection event occurs, information regarding the event is output. For example, digit detection may appear as:

  Digit: "1"     :  Event: ALERT  ON,  Time:   15 ms,  Power: -83 dBm0,  Frame: 1128
  Digit: "1"     :  Event:  ON,  Time:   30 ms,  Power: -11 dBm0,  Frame: 1132
  Digit: "1"     :  Event: OFF,  Time:   20 ms,  Power: -580 dBm0,  Frame: 1141
  

In the example above, each line represents a digit detection event.

The first line indicates:

  • Event "ALERT ON" occurred. This provides early warning of a potential digit "ON" event.
  • The digit is "1"
  • The lag time for reporting is ~15ms (the potential digit started ~15ms ago.

The second line indicates:

  • Event "ON" occurred. The digit has been detected.
  • The digit is "1"
  • The digit power is ~ -11 dBm0
  • The lag time for reporting is ~30ms (the confirmed digit started ~30ms ago.

The third line indicates:

  • Event "OFF" occurred. The digit has ended.
  • The digit was "1"
  • The lag time for reporting is ~20ms (the digit ended ~20ms ago.

Note:
It is expected that each of the 16 digits are identified as in the example above. Though the lag times may vary, each digit should follow the event progression of "ALERT", "ON" followed by "OFF".
  • Brian,

    You can look at the test source code in tdusim.c, there are testing vectors produce the report format. 

    sftBasicDetectionFILE (tduInst, tdu_CTL_V21_ON, "..\\..\\vectors\\inp\\digits_plus_dailtone.pcm");

    tduSim.options.report and tduSim.options.add_tag need to be "true".

    Regards, Eric

  • Eric:  Yes I am using the sftBasicDetectionFILE (tduInst, tdu_CTL_V21_ON, "..\\..\\vectors\\inp\\digits_plus_dailtone.pcm");  and tduSim.options.report and tduSim.options.add_tag are set to "true".  The problem is the function sysToneDetect in the tdusim.c file is never called, hence digit_strings etc. are never output to the stdout or any file for that matter.  How do I turn on sysToneDetect to make it produce the report as shown in the original post ?  Thanks Brian.

  • Brian,

    What is your Volib version and platform? Did you try the pre-build in the package and if that worked?

    Regards, Eric

     

  • Eric:

    <What is your Volib version and platform?

    ti_mas_volib_2_0_0_3_C55_Win32   I'm using CCS  Version: 5.3.0.00090   The imported project is C:\ti\packages\ti\mas\tdu\test\ccsProjects\test_rel_C5510_C55L_COFF   It does compile and is running on EVM C5509, but as I said, it does not produce the report of the detected tones as shown in the documentation (and as shown in the original post) or ever call sysToneDetect even with tduSim.options.report and tduSim.options.add_tag set true.  It is producing a testrep.txt file but it is only showing the files it processed...like this...

    ===>Running file: sia_dc02_1400_530ms.pcm

    ===>Running file: sia_dc02_2300_200ms.pcm

    ===>Running file: sia_dc02_2300_530ms.pcm

    ===>Running file: sia_dc02_dtmf.pcm

    ===>Running file: sia_dc05.pcm
    File: sia_dc02_1400_200ms.pcm
    File: sia_dc02_1400_530ms.pcm    etc...etc...

    Thanks


  • Brian,

    I installed ti_mas_volib_2_0_0_3_C55_Win32 and used CCS  Version: 5.3.0.00090 to re-build the same project \packages\ti\mas\tdu\test\ccsProjects\test_rel_C5510_C55L_COFF. 

    I ran it on a C55x simulator (I don't have an EVM board). I saw both CCS CIO console and textrep.txt logged the info properly. 

     E.g, in the textrep.txt:

    ===>Running file: sia_dc02_1400_530ms.pcm
      Tone: V18A (TX)  (Continuous Marks):  Event:  ON,  Time:   75 ms,  Power:  -4 dBm0,  Frame: 45
      Tone: SIA (TX)  DC02 PULSE :  Event:  ON,  Time:    0 ms,  Power:  -4 dBm0,  Frame: 67
      Tone: V18A (TX)  (Continuous Marks):  Event: OFF,  Time:    0 ms,  Power: -62 dBm0,  Frame: 74

    ===>Running file: sia_dc02_2300_200ms.pcm
      Tone: SIA (TX)  DC02 PULSE :  Event:  ON,  Time:    0 ms,  Power:  -5 dBm0,  Frame: 47

    ===>Running file: sia_dc02_2300_530ms.pcm
      Tone: SIA (TX)  DC02 PULSE :  Event:  ON,  Time:    0 ms,  Power:  -5 dBm0,  Frame: 93

    ===>Running file: sia_dc02_dtmf.pcm
      Tone: V18A (TX)  (Continuous Marks):  Event:  ON,  Time:   75 ms,  Power:  -5 dBm0,  Frame: 19
      Tone: V18A (TX)  (Continuous Marks):  Event: OFF,  Time:   50 ms,  Power: -11 dBm0,  Frame: 31
      Tone: SIA (TX)  DC02 DTMF :  Event:  ON,  Time:    0 ms,  Power:  -5 dBm0,  Frame: 37

    Do you want to swap the .out with me and try?

    Regards, Eric 

     

  • Hi Eric: do your Predefined symbols in the

    project look like this?  

    Can you send me your .out file?

    I would send you mine if I could figure out how to send a file on hear as insert file does not like .out files ?

  • Eric: Maybe send me your tduSim.c file as well thanks.

  • I just import the project, clean and rebuild without change anything. Yes, I have the same pre-defined symbol as your screenshoot. I am attaching the .c and .out and .map file zipped.

    Regards, Eric

    3058.tdu.zip

     

  • Where do I find / see the download?

  • Do you see a link beneath my name? called 3058.tdu.zip?

  • Got it it took a bit for it to show up.  Thanks.

  • Eric: I did a compare on the tdusim.c files and they are identical except where I set line 393 to TRUE to add test case tag to report.  The .out file you sent will not run on my board. 

  • Hear is my build console output.

    **** Build of configuration Debug for project test_rel_C5510_C55L_COFF ****

    "C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all
    'Building file: C:/ti/packages/ti/mas/tdu/test/src/tdusim.c'
    'Invoking: C5500 Compiler'
    "C:/ti/ccsv5/tools/compiler/c5500_4.4.1/bin/cl55" -vcpu:2.1 --memory_model=large -g --optimize_with_debug --include_path="C:/ti/ccsv5/tools/compiler/c5500_4.4.1/include" --include_path="../../../../../../../" --include_path="C:/tools/Xdais/xdais_5_21/packages" --include_path="C:/tools/gen/xdc/xdctools_3_20_05_76/packages" --include_path="../../../lnkr/c55l" --include_path="../../../src" --define=ti_targets_C55_large --define=xdc_target_types__=ti/targets/std.h --define=__CCS_PROJECT_REL_PATH --define=C5510 --define=TDU_SIM_USE_LLMR_VOICE --display_error_number --diag_suppress=1112 --diag_suppress=825 --diag_suppress=838 --diag_suppress=828 --diag_suppress=827 --diag_suppress=77 --diag_suppress=837 --diag_suppress=824 --diag_warning=225 --ptrdiff_size=16 --algebraic -k --c_src_interlist --output_all_syms --preproc_with_compile --preproc_dependency="tdusim.pp"  "C:/ti/packages/ti/mas/tdu/test/src/tdusim.c"
    'Finished building: C:/ti/packages/ti/mas/tdu/test/src/tdusim.c'
    ' '
    'Building file: C:/ti/packages/ti/mas/tdu/test/src/tstgmp.c'
    'Invoking: C5500 Compiler'
    "C:/ti/ccsv5/tools/compiler/c5500_4.4.1/bin/cl55" -vcpu:2.1 --memory_model=large -g --optimize_with_debug --include_path="C:/ti/ccsv5/tools/compiler/c5500_4.4.1/include" --include_path="../../../../../../../" --include_path="C:/tools/Xdais/xdais_5_21/packages" --include_path="C:/tools/gen/xdc/xdctools_3_20_05_76/packages" --include_path="../../../lnkr/c55l" --include_path="../../../src" --define=ti_targets_C55_large --define=xdc_target_types__=ti/targets/std.h --define=__CCS_PROJECT_REL_PATH --define=C5510 --define=TDU_SIM_USE_LLMR_VOICE --display_error_number --diag_suppress=1112 --diag_suppress=825 --diag_suppress=838 --diag_suppress=828 --diag_suppress=827 --diag_suppress=77 --diag_suppress=837 --diag_suppress=824 --diag_warning=225 --ptrdiff_size=16 --algebraic -k --c_src_interlist --output_all_syms --preproc_with_compile --preproc_dependency="tstgmp.pp"  "C:/ti/packages/ti/mas/tdu/test/src/tstgmp.c"
    'Finished building: C:/ti/packages/ti/mas/tdu/test/src/tstgmp.c'
    ' '
    'Building target: test_rel_C5510_C55L_COFF.out'
    'Invoking: C5500 Linker'
    "C:/ti/ccsv5/tools/compiler/c5500_4.4.1/bin/cl55" -vcpu:2.1 --memory_model=large -g --optimize_with_debug --define=ti_targets_C55_large --define=xdc_target_types__=ti/targets/std.h --define=__CCS_PROJECT_REL_PATH --define=C5510 --define=TDU_SIM_USE_LLMR_VOICE --display_error_number --diag_suppress=1112 --diag_suppress=825 --diag_suppress=838 --diag_suppress=828 --diag_suppress=827 --diag_suppress=77 --diag_suppress=837 --diag_suppress=824 --diag_warning=225 --ptrdiff_size=16 --algebraic -k --c_src_interlist --output_all_syms -z -m"test_rel_C5510_C55L_COFF.map" -i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/lib" -i"C:/ti/ccsv5/tools/compiler/c5500_4.4.1/include" --reread_libs --warn_sections --rom_model -o "test_rel_C5510_C55L_COFF.out"  "./tstgmp.obj" "./tdusim.obj" -l"libc.a" "C:/ti/packages/ti/mas/tdu/test/lnkr/c55l/test_rel_c5510_ccs.cmd"
    <Linking>
    'Finished building target: test_rel_C5510_C55L_COFF.out'
    ' '

    **** Build Finished ****

  • Eric: In your project if you step through can you tell me where sysToneDetect function is being called from? Thanks

  • I didn't see issue in your console build log. I changed line 393 to TRUE on my code and re-build, and still got report:

    ===>Running file: sia_dc02_1400_530ms.pcm
      Tone: V18A (TX)  (Continuous Marks):  Event:  ON,  Time:   75 ms,  Power:  -4 dBm0,  Frame: 45, 
    TONE 3 pow=(-46.000000) freq=(2100.000000) frames=(148 50)
      Tone: SIA (TX)  DC02 PULSE :  Event:  ON,  Time:    0 ms,  Power:  -4 dBm0,  Frame: 67, 
    TONE 3 pow=(-46.000000) freq=(2100.000000) frames=(148 50)
      Tone: V18A (TX)  (Continuous Marks):  Event: OFF,  Time:    0 ms,  Power: -62 dBm0,  Frame: 74, 
    TONE 3 pow=(-46.000000) freq=(2100.000000) frames=(148 50)

    Question for you:

    1) Without change the code, just load the pre-build .out file, did it work or not?

    2) Can you double the size of stack in linker command file: test_rel_c5510_ccs.cmd and re-build, will it work?

    -stack 0x1000 ============> 0x2000

    -sysstack 0x1000 ==========>0x2000

    Regards, Eric

  • Attached .jpg showing call trace

    .2620.call.rar

  • <1) Without change the code, just load the pre-build .out file, did it work or not?>

    Hear is the output.  screen shot 

    <2) Can you double the size of stack in linker command file: test_rel_c5510_ccs.cmd and re-build, will it work?

    -stack 0x1000 ============> 0x2000

    -sysstack 0x1000 ==========>0x2000  >

    No changemy consoul output of my project.

    ************************* SIA TX Direction ******************************
     Test for SIA DC02 PULSE:  1400Hz  530ms

     ************************* SIA TX Direction ******************************
     Test for SIA DC02 PULSE:  1400Hz  530ms
     Test for SIA DC02 PULSE:  2300Hz  200ms
     Test for SIA DC02 PULSE:  2300Hz  530ms
     Test for SIA DC02 DTMF:   1400Hz / 2300Hz  100ms
     Test for SIA DC05:        1400Hz / SIL / 2300Hz  100ms

     ************************* SIA RX Direction ******************************
     Test for SIA DC02 PULSE:  1400Hz  200ms
     Test for SIA DC02 PULSE:  1400Hz  530ms
     Test for SIA DC02 PULSE:  2300Hz  200ms
     Test for SIA DC02 PULSE:  2300Hz  530ms
     Test for SIA DC02 DTMF:   1400Hz / 2300Hz  100ms
     Test for SIA DC05:        1400Hz / SIL / 2300Hz  100ms
    Testing DONE

    Please note: I took out some of the tests in main i.e. the following is commented out..

    #ifdef all_tests

        /******************************/
        /* V.18a TTY Verification     */
        /******************************/
        fprintf (stdout, "\n\n Test for V.18a (TTY)");
        sftAllDetectionFILE (tduInst,"tone_event_tty.pcm");

        /******************************/
        /* Coin Tones Verification    */
        /******************************/
        fprintf (stdout, "\n\n Test for Coin Tones:  1537Hz & 2200Hz");
        sftBasicDetectionFILE (tduInst, tdu_CTL_MF_COIN_TONES_ON, "cointones_1537_2200.pcm");
        fprintf (stdout, "\n Test for Coin Tones:  1700Hz & 2200Hz");
        sftBasicDetectionFILE (tduInst, tdu_CTL_MF_COIN_TONES_ON, "cointones_1700_2200.pcm");

        /******************************/
        /* TX Range Verification      */
        /******************************/
        sftVerifyRange (tduInst,  tdu_CTL_SF_ON, 20, 150, 50, 2, 2600);
        sftVerifyRange (tduInst, tdu_CTL_V25_ON, 20, 150, 50, 2, 2100);
        
        /***************************************/
        /* RX Range Verification (default)     */
        /***************************************/
        fprintf (stdout, "\n\nRX Range Verification: tdu_RX_ONLY\n");
        sftVerifyRangeRx (tduInst,   tdu_CTL_BELL_ON, tdu_POSITION_RX, (tint) tdu_RX_ONLY, 0, 2225, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst,   tdu_CTL_BELL_ON, tdu_POSITION_RX, (tint) tdu_RX_ONLY, 0, 2250, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst,    tdu_CTL_V25_ON, tdu_POSITION_RX, (tint) tdu_RX_ONLY, 1, 2100, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst, tdu_CTL_SS7COT_ON, tdu_POSITION_RX, (tint) tdu_RX_ONLY, 0, 2000, 20,  5,  50, 20, 5,  2, -40, 2);
        
        /***************************************/
        /* RX Range Verification (pre-conf)    */
        /***************************************/
        fprintf (stdout, "\n\nRX Range Verification: tdu_RX_BEFORE_CONF\n");
        sftVerifyRangeRx (tduInst,   tdu_CTL_BELL_ON, 0, (tint) tdu_RX_BEFORE_CONF, 0, 2225, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst,   tdu_CTL_BELL_ON, 0, (tint) tdu_RX_BEFORE_CONF, 0, 2250, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst,    tdu_CTL_V25_ON, 0, (tint) tdu_RX_BEFORE_CONF, 1, 2100, 20, 25, 200, 20, 25, 2, -40, 2);
        sftVerifyRangeRx (tduInst, tdu_CTL_SS7COT_ON, 0, (tint) tdu_RX_BEFORE_CONF, 0, 2000, 20,  5,  50, 20, 5,  2, -40, 2);

        /******************************/
        /* TX Path PCM Examples       */
        /******************************/
        sftBasicDetectionFILE (tduInst, tdu_CTL_V21_ON, "v21hdlc.pcm");
        sftBasicDetectionFILE (tduInst, tdu_CTL_V21_ON, "bro_to_lex_c2.pcm");
        sftBasicDetectionFILE (tduInst, tdu_CTL_V25_ON, "modem.pcm");
        sftBasicDetectionFILE (tduInst, tdu_CTL_V25_ON, "modem_ansam.pcm");

        /******************************/
        /* 1300Hz CT discrimination   */
        /******************************/
        sysCtDiscrim.detect_req = 1;
        sftBasicDetectionFILE (tduInst, tdu_CTL_V23_TONES_ON, "tone_event_ct_lin.pcm");
        sysCtDiscrim.detect_req = 2;
        sftBasicDetectionFILE (tduInst, tdu_CTL_V23_TONES_ON, "tone_event_ct_lin.pcm");

        /******************************/
        /* RX Path PCM Examples       */
        /******************************/
        sftBasicDetectionRxFILE (tduInst, tdu_CTL_V21_CM_FAX_ON, "bro_to_lex_c2.pcm");
        sftBasicDetectionRxFILE (tduInst,        tdu_CTL_V25_ON, "modem.pcm");
        sftBasicDetectionRxFILE (tduInst,        tdu_CTL_V25_ON, "modem_ansam.pcm");

    #endif

    As I'm only interested in DTMF and these tests take a wile to run...  This should not effect the problem I'm having with the report though and no call to sysToneDetect.

    Thanks. Brian

  • Thanks Eric but I'm not allowed to oper .rar files hear can you send in .zip or just the .jpg thanks...

  • Brian,

    Looks this is related to HW, given that pre-build also doesn't work. Whether or not you commented out some un-interested test cases doesn't matter, which we did the same quite often.

    I looked the C5509 data manual, http://www.ti.com/lit/ds/symlink/tms320vc5509.pdf section 3.1 for the memory map. It seems that SARAM only ranges from 0x10000 to 0x3FFFF. However the linker command file used:

    {

    VECTORS : origin = 0x00100, length = 0x00100

    SARAM_P1 : origin = 0x10000, length = 0x30000

    DARAM : origin = 0x02000, length = 0x0E000

    SARAM_P2 : origin = 0x40000, length = 0x10000

    }

    The SARAM_P2 is out of the DSP memory, this should cause the problem. I believe the supplied lcf is for some other C55x (I believe C5510) which has bigger memory. Can you modify the lcf and re-build?

    As for the call trace, I re-attached as .zip. But I think the memory placement caused the problem.

    Regards, Eric 

    6874.call.zip

  • EXCELLENT !!  Working !!! Nice call Eric !!! It looked like some of the library calls were mapped outside the physical... !!!

    Thanks So Much...  !!!

    Brian