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.

[参考译文] TMS320F280039C:我的 ePWM SysConfig 与 sprad12不匹配

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1159342/tms320f280039c-my-sysconfig-for-epwm-does-not-match-sprad12

器件型号:TMS320F280039C
Thread 中讨论的其他器件:SysConfigC2000WARE

您好!

我正在通过 NXP MCU Usimg CCS 版本 11.1.0.00011开发连接上述 MCU 的软件端口、并尝试使用 SysConfig 配置我的 EPWM、 并查看文档"应用手册 C2000 ePWM 开发人员指南"。 (sprad12.pdf)当我打开.syscfg 文件并添加 ePWM 时、我看不到 上述文档中描述的任何字段。 我似乎只能访问下面显示的引脚配置信息。

我缺少什么或做了什么错?

我的 SysConfig 版本是1.11.0.2225。

谢谢、

Chris Tschappatt

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

    尊敬的 Chris:

    您能否发送 SysConfig 文件的副本?

    谢谢、

    Luke

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

    您好、Luke、

    感谢您的快速响应。 我尝试使用"Insert-File"附加文件、但它对我不起作用、所以下面是 syscfg 文件的文本:

    /**
    *生成此文件时使用了这些参数。 它们将通过
    GUI 或 CLI 自动应用于后续加载*。 使用'--help'运行 CLI 以获取有关如何覆盖这些参数的其他信息。
    *@clipArgs --device "F28003x"--package "100PZ"--part "F28003x_100PZ"--product "C2000WARE@3.01.00.00
    *@versions{"tool":"1.11.0+2225"}
    *//
    
    *
    导入此配置中使用的模块。
    *
    / const ADC = AddModule.AddModule ("/driverlib/adc.js、{}、false);
    const ADC1 = ADC.addInstance();
    const ADC2 = ADC.addInstance();
    const ADC3 = ADC.addInstance();
    const 模拟= Scripting.AddModule ("/driverlib/analogue.js、}、false);
    const analog1 =
    analog.addistance./driverlib/asysctl.js;const 模块=脚本编写
    = gpio.AddModule ("/driverlib/dac.js、{}、false);
    const dac1 = dac.addInstance();
    const ePWM = scripting.AddModule ("/driverlib/epwm.js、{}、false);
    const epwm1 = ePWM.addInst();
    const epwm2 = conpwp.incistance
    
    
    (();"addInstance= eInst.incanstance ();"addInstance (/driverlib/gpio.js = eInst.instance ();adding.increw = eInstaed.instance (
    
    )= eInstaed.inst.inst.increw ();"pinst.increw = eInstaed.inst.inst.inst.inst.inst.inst.intranation.inst.intranation.intranation.inst
    
    const GPIO4 = GPIO.addInstance();
    const GPIO5 = GPIO.addInstance();
    const GPIO6 = GPIO.addInstance();
    const GPIO7 = GPIO.addInstance();
    const GPIO8 = GPIO.addInstance();
    conconconconIO9 = GPIO.addInstance()
    
    ;GPIO13
    = GPIO.addInst(=GPIO13;GPIO13
    = GPIO.addInst
    = scripting.AddModule ("/driverlib/i2c.js、{}、false);
    const i2c1 = i2c.addInstance();
    const sci = scripting.AddModule ("/driverlib/sci.js、{}、false);
    const SCI1 = sci.addInstance();
    const SCI2 = sci.addInstance();
    
    /**
    *将自定义配置值写入导入的模块。
    /ADC1.enableInts
    =["ADC_INT_number1"];
    ADC1.registerInterrupts =["1"];
    ADC1.adcClockPrescaler ="ADC_CLK_DIV_2_0";
    ADC1.enableInterrupt1 = true;
    ADC1.soc0Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc0SampleWindow = 12;
    ADC1.soc1SampleWindow = 12;
    ADC1.soc2SampleWindow = 12;
    ADC1.soc3SampleWindow = 12;
    ADC1.soc4SampleWindow = 12;
    ADC1.soc5SampleWindow = 12;
    ADC1.soc6SampleWindow = 12;
    ADC1.soc7SampleWindow = 12;
    adc1.interruptPulseMode ="ADC_PULSE_END_FAND_CONV";
    ADC1.$NAME ="myADCA";
    ADC1.soc1Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc2Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc3Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc4Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc5Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc6Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc7Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc8Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC1.soc0Channel ="ADC_CH_ADCIN14";
    ADC1.soc1通道 ="ADC_CH_ADCIN14";
    ADC1.soc2Channel ="ADC_CH_ADCIN14";
    ADC1.enableSOC =["ADC_SOC_NUMBER0"、"ADC_SOC_Number1"、"ADC_SOC_Number2"、"ADC_SOC_Number3"、"ADC_SOC_Number4"、"ADC_SOC_Number5"、"ADC_SOC_NUMBER6"、"ADC_SOC_NUMBER6"、"ADC_SOC_NUMBER7"、
    adc1.interrupt1SOCSource ="ADC_SOC_NUMBER7";
    ADC1.adcInt1.enableInterrupt = true;
    adc1.adcInt1.interruptHandler ="adcA1ISR";
    
    ADC2.adcBase ="AADCB_BASE";
    ADC2.$name ="myADCB";
    ADC2.adcClockPrescaler ="ADC_CLK_DIV_2_0";
    ADC2.enableSOC =["ADC_SOC_NUMBER0"、"ADC_SOC_Number1"、"ADC_SOC_Number2"、"ADC_SOC_Number3"、"ADC_SOC_Number4"、"ADC_SOC_Number4"];
    adc2.interruptPulseMode ="ADC_PULSE_END_FLOG_FON_CONV";
    ADC2.enableInts =["ADC_INT_number1"];
    adc2.interrupt1SOCSource ="ADC_SOC_Number4";
    ADC2.enableInterrupt1 = true;
    ADC2.soc0Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC2.soc0SampleWindow = 12;
    ADC2.soc0通道 ="ADC_CH_ADCIN2";
    ADC2.soc1通道 ="ADC_CH_ADCIN5";
    ADC2.soc1Trigger" ="ADC_TRIGGER_EPWM1_SOCA";
    ADC2.soc1SampleWindow = 12;
    ADC2.soc2Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC2.soc2SampleWindow = 12;
    ADC2.soc3通道 ="ADC_CH_ADCIN9";
    ADC2.soc3Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC2.soc3SampleWindow = 12;
    ADC2.soc4通道 ="ADC_CH_ADCIN11";
    ADC2.soc4Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC2.soc4SampleWindow = 12;
    ADC2.registerInterrupts =["1"];
    ADC2.soc2通道 ="ADC_CH_ADCIN8";
    ADC2.adcInt1.enableInterrupt = true;
    adc2.adcInt1.interruptHandler ="adcB1ISR";
    
    ADC3.adcBase ="ADCC_BASE";
    ADC3.$name ="myADCC";
    ADC3.enableSOC =["ADC_SOC_NUMBER0"、"ADC_SOC_Number1"、"ADC_SOC_Number2"、"ADC_SOC_Number3"、"ADC_SOC_Number4"、"ADC_SOC_Number4"];
    ADC3.soc1Channel ="ADC_CH_ADCIN1";
    ADC3.soc2Channel ="ADC_CH_ADCIN2";
    ADC3.soc3通道 ="ADC_CH_ADCIN3";
    ADC3.soc4Channel ="ADC_CH_ADCIN9";
    ADC3.soc0Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC3.soc0SampleWindow = 12;
    ADC3.soc1Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC3.soc1SampleWindow = 12;
    ADC3.soc2SampleWindow = 12;
    ADC3.soc2Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC3.soc4Trigger ="ADC_TRIGGER_EPWM1_SOCA";
    ADC3.soc4SampleWindow = 12;
    adc3.interruptPulseMode ="ADC_PULSE_END_FLOG_FON_CONV";
    ADC3.enableInts =["ADC_INT_number1"];
    adc3.interrupt1SOCSource ="ADC_SOC_Number4";
    ADC3.enableInterrupt1 = true;
    ADC3.registerInterrupts =["1"];
    ADC3.adcInt1.enableInterrupt = true;
    adc3.adcInt1.interruptHandler ="adcC1ISR";
    
    asysctl.analogReference ="内部";
    asysctl.analogReferenceVoltage ="1P65";
    
    dac1.$name ="myDAC0";
    dac1.enableOutput = true;
    dac1.dacBase ="DACB_BASE";
    
    dac1.analog = analog1;
    adc2.analog =类比1;
    ADC3.ANALOG =类比1;
    ADC1.analog =类比1;
    类比1。$name ="A0_CONV_I_PinMux0";
    analog1.analog["a0/B15/C15/DACA_outPin"]。$assign ="ball .23";
    analog1.analog["A1/B7/dacb_outPin"]。$assign ="焊球.22";
    analog1.analog["A11/B10/c0Pin"]。$assign ="焊球.20";
    analog1.analog["A14/B14/c4Pin"]。$assign ="焊球.19";
    analog1.analog["A2/B6/c9引脚"]。$assign ="焊球.17";
    analog1.analog["A3、C7/b9引脚"]。$assign ="ball .18";
    analog1.analog.b11 Pin。$assign ="焊球.30";
    analog1.analog[B2/c6Pin ].$assign ="焊球.15";
    analog1.analog.b5Pin。$assign ="焊球.32";
    analog1.analog.c1Pin.$assign ="焊球.29";
    analog1.analog["C2/b12引脚"].$assign ="焊球.21";
    
    epwm1.$name ="EPWM1_PHA";
    epwm1.ePWM.ePWM_apin.$assign ="B焊 球.98";
    epwm1.ePWM.ePWM_bPin。$assign ="B焊 球.99";
    
    epwm2.$name ="EPWM3_PHB";
    epwm2.ePWM.ePWM_apin.$assign ="B焊 球.96";
    epwm2.ePWM.ePWM_bPin。$assign ="B焊 球.95";
    
    epwm3.$name ="EPWM5_COIL ";
    epwm3.useCase ="定制";
    epwm3.useInterfacePins =["ePWM#_B"];
    epwm3.ePWM.ePWM_bPin。$assign ="ball .90";
    
    epwm4.$name ="EPWM7_N12";
    epwm4.useCase ="定制";
    epwm4.useInterfacePins =["ePWM#_B"];
    epwm4.ePWM.ePWM_bPin。$assign ="ball。100";
    
    GPIO1.padConfig ="反转";
    GPIO1.qualMode ="GPIO_Qual_ASYNC";
    GPIO1.$name ="GPIO47_STANDBY ";
    GPIO1.gpioPin。$assign ="ball。6";
    
    GPIO2.qualMode ="GPIO_QUAL_ASYNC";
    GPIO2.DIRECTION ="GPIO_DIR_MODE_OUT";
    GPIO2.padConfig ="OD";
    GPIO2。$name ="GPIO49_GATEENA";
    GPIO2.gpioPin。$assign ="ball。8";
    
    GPIO3.$name ="GPIO50_PHADESAT";
    GPIO3.qualMode ="GPIO_Qual_ASYNC";
    GPIO3.padConfig ="反相";
    GPIO3.gpioPin。$assign ="焊球.9";
    
    GPIO4.$name ="GPIO51_PHBDESAT";
    GPIO4.padConfig ="反相";
    GPIO4.gpioPin。$assign ="焊球.10";
    
    GPIO5.$name ="GPIO52_COILOC";
    GPIO5.padConfig ="反转";
    GPIO5.qualMode ="GPIO_Qual_ASYNC";
    GPIO5.gpioPin。$assign ="ball。11";
    
    GPIO6.qualMode ="GPIO_Qual_ASYNC";
    GPIO6.padConfig ="反转";
    GPIO6.$name ="GPIO53_DBDESAT";
    GPIO6.gpioPin。$assign ="ball。12";
    
    GPIO7.$name ="GPIO55_PCACK";
    GPIO7.qualMode ="GPIO_Qual_ASYNC";
    GPIO7.gpioPin。$assign ="ball。43";
    
    GPIO8.$name ="GPIO60_CORE_ON";
    GPIO8.DIRECTION ="GPIO_DIR_MODE_OUT";
    GPIO8.gpioPin。$assign ="B焊 球.44";
    
    GPIO9.$name ="GPIO33_RS485DE";
    GPIO9.DIRECTION ="GPIO_DIR_MODE_OUT";
    GPIO9.qualMode ="GPIO_Qual_ASYNC";
    GPIO9.gpioPin。$assign ="ball。53";
    
    GPIO10.$name ="GPIO58_DBCMD";
    GPIO10.DIRECTION ="GPIO_DIR_MODE_OUT";
    GPIO10.qualMode ="GPIO_Qual_ASYNC";
    GPIO10.gpioPin。$assign ="ball。67";
    
    GPIO11.$name ="GPIO18_WDOGPET";
    GPIO11.DIRECTION ="GPIO_DIR_MODE_OUT";
    GPIO11.qualMode ="GPIO_Qual_ASYNC";
    GPIO11.gpioPin。$assign ="ball。68";
    
    GPIO12.qualMode ="GPIO_Qual_ASYNC";
    GPIO12.padConfig ="反转";
    GPIO12.$name ="GPIO34_PCENAB";
    GPIO12.gpioPin。$assign ="ball。93";
    
    gpio13.$name ="GPIO44_Ledg";
    gpio13.Direction ="GPIO_DIR_MODE_OUT";
    
    i2c1.$name ="myI2C0";
    i2c1.useInterrupts = false;
    i2c1.bitrate = 100000;
    i2c1.Duty ="I2C_DUTYCYCLE _50";
    i2c1.bitCount ="I2C_BITCOUNT_8";
    i2c1.emulationMode ="I2C_emulation_free_run";
    i2c1.slaveAddress = 0x54;
    i2c1.i2c.$assign ="I2CA";
    i2c1.i2c.i2c_sdaPin。$assign ="ball .65";
    i2c1.i2c.i2c_sclPin。$assign ="ball .66";
    
    SCI1.baudRates = 9600;
    sci1.useInterrupts = false;
    SCI1.$name ="RS485_link";
    SCI1.sci.$assign ="SCIB";
    
    SCI2.$name ="mySCI0";
    
    /**
    用于解锁引脚/外设的 Pinmux 解决方案。 这可确保
    在未来*版本的工具中对自动解算器进行的细微更改不会影响您最初看到的 Pinmux。 为了
    *从头开始重新解算、可以完全删除这些行。
    */
    analog1.analog.$incomestSolution ="模拟";
    analog1.analog["A10/B1/c10Pin"]。$indicestSolution ="ball .40";
    analog1.analog["A12、c5Pin"]。$indicestSolution ="焊球.28";
    analog1.analog["A4/b8Pin "]。$建议解决方案 ="焊球.36";
    analog1.analog.a5引脚美元提示解决方案 ="焊球.35";
    analog1.analog.a6Pin。$建议解决方案 ="焊球.14";
    analog1.analog.a8引脚美元提示解决方案 ="焊球.37";
    analog1.analog.a9引脚美元提示解决方案 ="焊球.38";
    analog1.analog["b0/c11Pin"].$建议解决方案 ="焊球.41";
    analog1.analog[B11、gpio21Pin"。$indicestSolution ="焊 球.49";
    analog1.analog[B3/vdacPin。$indicestSolution ="焊球.16";
    analog1.analog["b4/c8Pin"]。$建议解决方案 ="焊球.39";
    analog1.analog"["B5、gpio20Pin"。$indicestSolution ="焊 球.48";
    analog1.analog.c14引脚。$indicestSolution ="焊球.42";
    analog1.analog["C3/a7Pin"]。$建议解决方案 ="焊球.31";
    epwm1.ePWM.$建议解决方案 ="EPWM1";
    epwm2.ePWM.$sevelestSolution ="EPWM3";
    epwm3.ePWM.$sepestSolution ="EPWM5";
    epwm4.ePWM.$sevelestSolution ="EPWM7";
    gpio13.gpioPin.$sevidestSolution ="ball.1";
    SCI1.sci.sci_rxPin.$incomestSolution ="焊球.52";
    SCI1.sci.sci_txPin.$建议解决方案 ="焊球.51";
    SCI2.sci.$建议解决方案 ="SCIA";
    SCI2.sci.sci_rxPin。建议解决方案 ="焊球.55";
    SCI2.sci.sci_txPin。建议解决方案 ="焊球.54"; 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Chris、

    我能够使用您发送的文件查看 SysConfig 中的 EPWM GUI 选项。 您使用的是什么版本的 C2000Ware? 版本4.01中添加了 EPWM SysConfig 支持、但版本4.00中不存在此支持。 如果您使用的是4.01、但仍然看不到您的 EPWM 配置 GUI、您能否发送项目属性->生成-> SysConfig 窗口的屏幕截图?

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

    您好、Luke、

    我们使用的是 C2000Ware_v04_00_00_00、因此这似乎是问题所在。 我不确定我们为什么使用该版本。

    是否有相对简单的升级途径?

    谢谢、

    Chris

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

    嗨、Chris、

    很遗憾、我不知道在不重新安装所有 C2000Ware 的情况下将现有 C2000Ware 从4.00更新到4.01的方法。

    您可以在此处下载版本4.01:

    https://www.ti.com/tool/C2000WARE

    谢谢、

    Luke