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.

[参考译文] BP-AM2BLDCSERVO:SDDF 值范围

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1563340/bp-am2bldcservo-sddf-value-range

器件型号:BP-AM2BLDCSERVO


工具/软件:

尊敬的 TI 支持团队:

之前、我尝试使用 tamagawa 编码器在 motor_control_sdk 中运行 single_chip_servo 演示。
起初我无法在“gSddfChSamps"中“中获得适当的 SDDF 值。
但是、我修改了 “mclk_iep_sync.c",“,可以、可以获取有效的 SDDF 值。

现在、我尝试在没有 Tamagawa 编码器或 Endat 的情况下、在 R5FSS1-1 而不是 R5FSS0-0 上运行 single_chip_servo 演示。
但我可以得到 SDDF 值小于 268,435,456 = 2^28(例如 268,435,424 或 268,435,104)
或大于 0(例如 8 或 120)

我的 SDDF 设置如下

/*测试 Sdfm 参数*/
SdfmPrms gTestSdfmPrms ={
  200000000 /* IEP 时钟*/的值
  20000000  /* SD 时钟的值(应与 SD 时钟值完全相等)*/
  0、             /*启用双更新*/
   10、   /*首次采样 触发时间*/
   0、   /*第二个采样触发时间*/
  APP_EPWM_OUTPUT_FREQ、  /* PWM 输出频率 50kHz*/
  {{3,500,1000}  /*阈值参数(高,低)*/
  {3,500,1000}、
  {3,500,1000}}、
  {{0、0}、         /*所有通道的时钟源和时钟反相*/
  {0、0}、
  {0、0}}、
   15 /*过流 OSR:效应计数为 OSR + 1*/
   64 /*正常电流 OSR */
   0 /*比较器启用*/
   (uint32_t)&gSddfChSamps /*输出样本基地址*/
};

我知道 SDDF 值是通过减去 SDDF_HALF_SCALE (=2^17) 进行归一化的


以下是我的问题。
 -如何获得 SDDF 的有效值?
 -哪里可以设置 SDDF 值的位数?

此致、
Dai Tanaka  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是我修改了 “mclk_iep_sync.c",“,可以、可以获取有效的 SDDF 值。

    您好、Tanaka、

    我可以看到、您在 200MHz 上使用 IEP 时钟、因此此 SD 时钟不会是 20MHz。 mclk_iep_sync.c 文件中提供的代码配置 IEP 同步事件以生成 SDFM 20MHz、所有 IEP 寄存器配置都是在 IEP 在 300MHz 上运行的情况下完成的。 因此您可以根据 IEP 时钟更新设置。

    为了获得正确的 SDFM 样本、您必须将进入 SD8_CLK 的 SDFM 时钟与在 gTestSdfmPrms 中配置的 SDFM 时钟值进行匹配。 如果您提供给 SDFM 的时钟与 SDFM 时钟的配置值之间存在任何差异、则会导致采样不正确

    SDFM 具有一个 API 来配置 IEP 同步到 SDFM 时钟。 请参阅此处的 AM243x 电机控制 SDK:ICSS SDFM 示例

     -在哪里可以设置 SDDF 值的位数?

    您可以更改  gTestSdfmPrms 中的 NC OSR 值以获得不同的 ENB。

    您可以参阅 SDFM 文档来获取有关 SDFM  AM243x 电机控制 SDK:电流检测的更多详细信息

    此外、我们正在重构参考设计、以便更轻松地配置不同的编码器和 sdfm 设置。 FOC 实施将基于 UMC AM263x 电机控制 SDK:TIDM-02018 适用于 AM263x 基于 ArmRegistered的 MCU 器件的通用电机控制参考设计

    计划在本周结束时发布的电机控制 11.0 版本将提供更新的项目

    此致、

    Achala Ram

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

    尊敬的 Achala:

    感谢你的帮助。
    我知道我应该使用以下网站中所示的 IEP 时钟和 SD 时钟的固定分层。  
    AM243x 电机控制 SDK:ICSS SDFM 示例

    但很抱歉、我无法理解下面这一行。
      >您可以更改  gTestSdfmPrms 中的 NC OSR 值以获得不同的 ENB。

    我知道 NC OCR 可以是 16、32、64 128 或 256。
    但是、在每个 OCR 速率下、SDDF 函数返回多少位值?
    什么是“ENB"?“?


    最新的电机控制 SDK 版本对我来说很好。
    我今天找不到。 我稍后会进行检查。

    供参考
    我的问题是以另一种方式解决的。
    首先、我认为单电机系统只需要“rtuSddfIrqHandler"。“。
    因此我删除了“pruSddfIrqHandler"和“和相关变量。
    它似乎对 RTU 固件产生了不良影响。  “gSddfChSamps"中“中存储了错误的值。
    如果我已经恢复删除的属性和函数,我可以得到有效的值。

    此致、
    Dai Tanaka



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

    您好、Tanaka、

    [报价 userid=“657125" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1563340/bp-am2bldcservo-sddf-value-range/6024444 但是、在每个 OCR 速率下、SDDF 函数返回多少位值?
    什么是“ENB"?“? [/报价]

    您可以查看以下主题 LP-AM243:将 SDFM 输出数据转换为放大器 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛 

    BR、

    Achala Ram