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.

[参考译文] TMS320F28P550SJ:SysConfig 似乎不会为中继器生成代码

Guru**** 2033340 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1455341/tms320f28p550sj-sysconfig-does-not-seem-to-generate-codes-for-repeaters

器件型号:TMS320F28P550SJ
主题中讨论的其他器件:SysConfigC2000WARE

工具与软件:

hi champs、

我是为我们的客户提出这个问题。

环境:

CCS 12.8.1.

SysConfig 1.21.

C2000ware V5.04

用户希望使用中继器1触发的突发模式。

但用户发现、当突发模式而非 SOCx 使用中继器1时、SysConfig 似乎没有为中继器1生成代码。

PS。 如果 SOCx 使用中继器、则按预期生成初始化代码。 这仅适用于突发模式。

您能帮助检查是否有任何问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    hi champs、

    在您回到办公室后、您会优先考虑这一点吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    hi champs、

    您有更新吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您有更新吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Wayne。 对于延迟响应、我们深表歉意。 您是否在 SOC 触发器配置中将"Trigger Mode"用作"Use Repeater Trigger"?




    谢谢。此致、
    Masood Raza

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Masood:

    您在情况下使用了突发模式吗?

    当突发模式和中继器同时使用、然后将没有中继器代码时、就会出现问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Wayne。 是的、我使用突发模式。 您能否询问客户其 SOC 配置?

    谢谢。此致、
    Masood Raza

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Masood

    当使用突发模式时、转换根据 BURSTTRIG 中选择的触发源触发、而不是由 SOCx TRIGSEL 中选择的触发源触发

    这是来自 TRM 的一个片段
    "置位 ADCBURSTCTL 寄存器中的 BURSTEN 位将为突发模式配置 ADC 包装器。 这会导致 TRIGSEL 字段被忽略、但仅适用于配置为轮询操作(非高优先级)的 SOC。 根据 ADCBURSTCTL 寄存器中的 BURSTTRIG 字段触发所有轮询 SOC、而不是 TRIGSEL 字段。"

    因此、在将"突发模式"部分中的"突发模式触发信号"选择为中继器1或2时、SysConfig 上的预期目标是生成中继器代码。
    目前、仅当"SOC Configurations"->"SOC0/1"->"Trigger Mode"选为"Use Repeater Trigger"且"SOC0/1 Trigger"选为"Repeater 1/2"时、才会生成中继器代码

    ADC 代码模板文件(adc.board.c.xdt)中的此行是用于确定是否生成中继器配置代码的条件。 目前、它使用"SOC 配置-> SOC0/1"的"触发模式"参数。


    第178行:% if (instance ["repeatermode" soc + socNumber.toString ()+"Triggermode"]="repeatermode"){

    我认为、 即使 选择"突发模式触发信号"参数作为中继器1或2、也需要使用此文件(adc.board.c.xdt)的行179 - 205 (这是中继器配置代码模板)

    // 
    //配置中继器模块
    //
    % for (device_driverlib_peripheral 中的 var rptrIndex。 ADC_RepInstance){
    % var currentRptr = device_driverlib_peripheral.adc_RepInstance[rptrIndex].name
    % var rptriNumber =(currentRptr).replace (/[^0-9]/g、')
    % if ((instance["Instance" soc + socNumber.toString ()+"Trigger"].replace(/[^0-9]/g,')=rptriNumber)){
    //
    //中继器模块`rptriNumber` parameters
    // base:`basename`
    // RepInstance:`实例[" soc "+ socNumber.toString ()+"Trigger"`
    // ADC_RepeaterConfig:
    // mode:`instance["repeater"+rptriNumber+" mode"]`
    // Trigger :`instance["transparer"+rptriNumber+" Trigger"]`
    // SyncInput:`实例["transparer"+ rptriNumber+" SyncInput"]`
    //计数:`实例["transparer"+ rptriNumber+"计数"]`
    // phase :`instance["transparer"+rptriNumber+" phase"`
    // spread:`instance["transparer"+ rptriNumber+" spread`
    //
    ADC_TRIGGERRepeater Select (`basename`、ADC_REPINST` rptriNumber `、` instance["repeater"+rptriNumber+" Trigger"]`);
    ADC_TRIGGERRepeater Mode (`basename`、ADC_REPINST` rptriNumber `、` instance["repeater"+rptriNumber+" Mode"]`);
    ADC_TRIGGERRepeaterSyncIn (`基名`、ADC_REPINST` rptriNumber`、`instance["repeater"+rptriNumber+" SyncInput"]`);
    ADC_TRIGGERRepeaterCount (` basename`、ADC_REPINST`rptriNumber `、`instance["repeater"+rptriNumber+" Count"]`);
    ADC_TRIGGERRepeaterPhase (`basename`、ADC_REPINST` rptriNumber `、` instance["repeater"+rptriNumber+]`);
    ADC_TRIGGERRepeater Spread (`basename`、ADC_REPINST`rptriNumber `、` instance["repeater"+rptriNumber+" spread "]`);
    %}
    %}

    谢谢

    K.. Sanjeev

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Masood:

    是的、Sanjeev 会显示"使用间歇模式时、转换将根据在 BURSTTRIG 中选择的触发源而触发、而不是由 SOCx TRIGSEL 中选择的触发源触发"。

    这是我的意思。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    韦恩、您好!

    我们正在更新 ADC SysConfig 代码模板以解决该问题。

    我们今天将向您提供 修复/补丁的状态

    谢谢

    K.. Sanjeev

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    .e2e.ti.com/.../adc.board.c.xdt

    你好、Wayne。 我已经附上了固定补丁。 SDK 文件夹中的路径为 C2000Ware_5_04_00_00\driverlib\.meta\adc\adc.board.c. 我能够在突发模式下获得中继器配置、而无需在 SOC 中配置中继器。 您可以检查一次、并告知我们客户是否再次遇到一些问题。



    谢谢。此致、
    Masood Raza。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Masood:

    我复制了 C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\.meta\adc 中的 adc.xdt。

    由 Re 构建的项目。

    但生成的 board.c 中的结果看起来非常奇怪。

    重复存在16次中继器代码。

    SOC0-15是轮询的。

    每个轮循 SOCx 都有自己但相同的中继器代码。

    明白了吗?

    这是您的预期吗?

    在理论上、一次就足够了。

    也就是说、如果我手动编写该中继器代码一次、那么它就有效了。