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.

[参考译文] MCF8329A-Q1:使用 STM32 MCU 从 EVM 板迁移到定制 PCB

Guru**** 2933270 points

Other Parts Discussed in Thread: MCF8329A, MOTORSTUDIO, MCF8329RRYEVM

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1631111/mcf8329a-q1-migrate-from-evm-board-to-custom-pcb-with-stm32-mcu

器件型号: MCF8329A-Q1
Thread 中讨论的其他器件: MOTORSTUDIO 、MCF8329A、 MCF8329RRYEVM

您好 Dhinesh   

我需要帮助、以便使用 STM32 MCU 将驱动 IC mcf8329aQ1 从 EVM 迁移到我自己的 PCB。

在您的帮助下、我找到了如何使用 EVM 板来调整参数。 Motorstudio 自动调谐芯片真是太棒了。 我使用 json 或 excel 文件下载参数。

在 PCB 中、我保留 PWM 和 i2c 以进行速度调优。 首选使用 i2c 发送命令。 我的问题是、我应该给 mcf8329A 写哪一个参数、以及如何写这些参数? 您有相应的库吗?

是否有任何指导文档?

谢谢  

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

    尊敬的荣伟:

    PIN_CONFIG->SPEED_MODE 是必须修改以控制速度命令输入模式的设置。 要通过 I2C 发送速度命令、请将 PIN_CONFIG->SPEED_MODE 设置为“寄存器覆盖模式“。 要使用 PWM 控制速度、请将 PIN_CONFIG->SPEED_MODE 设置为“通过速度引脚的占空比控制“。

    我们提供了实现 PC 和 MCF8329 器件之间通信的 MSP430 控制器源代码。 请参阅工程中的 I2C 函数。

    https://dr-download.ti.com/software-development/firmware/MD-d3MfLGtGaz/0.0.9/MCxEVM_MSP430FR2355_MOTORSTRUDIO_Firmware.zip 

    谢谢、

    Dhinesh

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

    您好 Dhinesh 感谢您的回复自动调优后,我应该向芯片发送什么参数? 这里有两个很多的参数。

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

    尊敬的荣伟:

    您可以通过使用滑块 (I2C 速度命令百分比 (%)) 应用速度命令来旋转电机、如下图所示。 还可以将速度命令直接写入寄存器 ALGO_DEBUG1->DIGITAL_SPEED_CTRL 中

    谢谢、

    Dhinesh

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

    有一个问题。 我得到了一个新的 EVM 板: MCF8329RRYEVM

    电机也是新的。 我运行 MPET 测试、运行顺利、但它卡在自动调优中没有出现错误

    如何继续

    谢谢

    ...

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

    尊敬的荣伟:

    请尝试运行 SmartTune 以获取新电机的调优文件。

    SmartTune 用户指南:如何快速设置和旋转三相 BLDC 电机: https://www.ti.com/lit/an/sdaa095/sdaa095.pdf 

    谢谢、

    Dhinesh

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

    我根据数据表设计了自己的 PCB。 所有驱动电路都与 EVM 板完全相同。

    我将电线跳接至 EVM、用于 I2C 智能调优。

    PCB 上的 MCU 仅下拉驱动引脚、将 WAKE 引脚置于高电平。

    将印刷电路板和电机连接到电机后,它能够识别芯片,所以 I2C 肯定能正常工作。

    当我尝试进行调优时、会出现弹出错误、显示 UV_FLT 错误。 我测量了芯片上的电源、确定电压为 24V。 NMOS 电桥的电源为 24V。  

    任何因素都可能导致故障?

    GVDD 似乎未连接到任何一个电容器、只能连接电容器? 演示也包含这种设计。  

    顺便说一句,由于未知的原因,我不能附加图片。

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

    尊敬的荣伟:

    请使用示波器监测电路板电源电压。 在运行 SmartTune 时、由于电源电流限制、器件电源电压可能会出现短路下降。  

    谢谢、

    Dhinesh

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

    这不是由电源造成的。 我将 10A 电源连接到 PCB。 这是我所做的。

    昨天、它显示错误 GVDD_UV_FLT 和测量的 GVDD 引脚为 0。 我尝试设置电机参数、因为它是旧电机(参数已测试)并保存到 EEPROM。 之后、我再也无法使用 Motor Studio 软件通过 i2c 连接到 PCB。 我想这是由 EVM 电路板和我自己的 PCB 之间的跳线引起的、在写入到 EEPROM 时可能会弄乱数据?

    今天、我移除了芯片并替换为新芯片。 确保焊接和连接良好。 然后我在 EVM 板和我自己的 PCB 之间焊接 导线、以便 Motor Studio 可以通过 i2c 导线对我自己的 PCB 进行识别。  

    软件能够识别芯片。 在我自己的 PCB 中、我将 WAKE 引脚设置为高电平、将 DrvOff 引脚设置为低电平、并禁用 i2c(相反,它将使用 EVM i2c 总线控制芯片)。 我注意到 GVDD 在启动时为 14V (GOOD)。 但一旦 drvoff 引脚下拉、GVDD 就会拉至 0

    在这种情况下、确实无法进行智能调优。 我可以从外部 10A 电源排除原因。  

    您能否帮助确认以下几点:

    1) 我组装了 EVM 板原理图中显示的所有这些器件、但这些器件被划掉了、例如 G 和 S 引脚上的 2nF 电容器?

    我的理解是这些器件可以帮助降低 EMI。 在物理 EVM 板上、它们未被组装。

    你能帮助指导我是否应该保留它们吗?

    2) 芯片是全新的,不写入参数。 下拉 Driveoff 引脚后、GVDD 立即变为 0。 如何进行调试?

    我检查了几次原理图、没有发现明显的错误。

    顺便说一句,我经常不能回复这个问题。 它始终显示错误、请稍后重试。  

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

    更新:  

    我仔细检查了所有这些器件、默认情况下不应该组装、有一个电阻器的值错误。 我把它修好了。

    现在它可以做智能调优,电机以相当高的速度旋转,然后它退出与错误的硬件电流限制(或类似,应该是过电流)。 然后我尝试重新加载旧的配置数据,并调整速度通过 i2c,它旋转和停止,它自动重试一次。  

    我没有将数据写入 EEPROM。

    然后我 关闭所有电源,并尝试将电阻器 (10k 和 2nf ) 重新放置在栅极/源极之间的 PCB 上。  我重新打开电源,我无法通过 i2c 连接到芯片。 Motorstudio 无法读取芯片。

    它看起来回到了旧状态。 即使 drvoff 引脚为高电平(电机不工作)、仍然无法读取 I2C。

    GVDD 电压约为 14V、这很好。 因此 GVDD 不再是问题了。

    问题在于为什么 mcf8329A 拒绝连接到 I2C。 我没有写入 EEPROM、因此断电后所有参数都将复位、对吧?

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

    更新状态。

    我再次更换芯片,替换后电机工作室可以轻松识别芯片。

    但我认为芯片在智能调优过程中不会烧毁。  

    似乎很智能、会向 EEPROM 写入一些参数吗? 或弄错了什么?

    有什么想法吗?

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

    最新更新。

    更换芯片后,我尝试了几次智能调优,有时它显示 BMEF 错误,或 HWLock 错误。 我设置了较高的电流限值并 尝试了几次。 最后 执行一次。 然后我使用滑块 (i2c) 进行测试、以打开电机并调整速度。 它看起来运行良好。 然后我保存到 EEPROM。

    再次尝试打开/关闭电机几次、看起来不错。

    然后关闭电源、关闭软件。 并执行电源复位。  

    开机后、我无法再次连接芯片。 一旦 MCU 下拉 drvoff 引脚、电机会在没有我控制的情况下全速开始旋转。  

    在电源重置之间、我没有改变接线等  

    是否知道在写入 EEPROM 后为什么我会断开与芯片的连接? 我认为这不是由电源复位引起的。 电源复位后、从 EEPROM 读取 RAM 参数。

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

    尊敬的荣伟:

    SmartTune 不执行 EEPROM 写入操作。 它仅将识别到的电机调优参数写入器件的影子存储器。 我怀疑您的 MCF8329A I2C 地址在调优过程中可能已修改。 您能否验证定制电路板的 I2C 地址? 您可以通过将定制电路板的 I2C 信号连接到 MCF8329A EVM 上提供的 USB 转 I2C 转换器来实现该目的。

    谢谢、

    Dhinesh

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

    混淆了基极电流计算。

    数据表的第 178 页上显示: 基极电流为 0.0375/Rsense
    (Rsense 是电流检测电阻,单位为欧姆)A。例如、如果我使用 1M Ω、则为 37.5A、但如果我使用 5m Ω、最大电流为 7.5A (物理限制)?

    在该寄存器中、还有一个参数是 CSA-GAIN、如果我设置为 10V/v 或 20V/v、效果是什么?

    我成功将 EVM 与 OWM PCB 搭配使用、从而智能地调整一个电机。 但是、当我在另一个电机上尝试相同的操作时、总是有 ABN_BEMF 错误。

    如何进行调优? 该电机非常适合其他现成的 ESC 控制器。

    谢谢

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

    尊敬的荣伟:

    是的、在计算基极电流时必须考虑 CSA_GAIN 参数。 请参阅下面提供的基极电流公式:

    基极电流= 1.5/(Rsense×CSA_GAIN)

    您是否对其他电机执行了 SmartTune 程序?

    请注意、不同电机的电机参数不同;因此、相同的调优文件不能用于运行不同的电机。

    谢谢、

    Dhinesh

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

    当我为另一个电机执行智能调优时、它始终失败、例如 ABN bemf 或硬件锁定错误。

    对于旧电机、我的固件可以正常工作。 我可以发送所有这些参数并通过寄存器 REG_ALGO_DEBUG1 设置速度。

    但对于第二个电机、我仍然无法正常工作。 设置较高的电流限值没有任何帮助。

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

    尊敬的荣伟:

    您现在要测试的终端设备电机是什么? 请分享电机规格(额定电流,电压和速度)。 此外、您能否确认您在 SmartTune 页面中输入的电机参数(额定电压,电流和速度)与实际电机规格相匹配?  

    谢谢、

    Dhinesh

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

    是风扇。 额定电流为 10A+、电压为 30V、速度为 1200Hz。 因此、我设置了额定电流=10、电压=30、速度=1000、电阻为 0.075 Ω、分流电阻=5m、 电感= 0.022mH、bemf=5(此数字可能不准确,我尝试运行 FPET、有时得到 4 或 10)。 我将其保留为电源模式、启动时间为 2s。 我必须输入 bemf 还是将其保留为 0?  电阻和电感以 1kHz 的 LCR 设置进行测量。

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

    还有一点。 这适用于旧电机。  

    将配置传输到 MCU 后、它看起来不如使用 Motor Studio 进行自动调优的效率。

    这是什么是做的。

    我使用 Smartttune 并在调谐后进行测试。 并将参数保存到 json 文件中、然后将所有参数导出到 MCU 中。 在启动期间、将 CONFIG 加载到寄存器。

    这是我在启动过程中加载的内容,请帮助检查是否我错过了一些重要参数:

     /* Algorithm Configuration */
        {0x00000080, MCF8329A_CFG_ISD_CONFIG,        MCF8329A_DLEN_32BIT, "ISD_CONFIG"},
        {0x00000082, MCF8329A_CFG_REV_DRIVE_CONFIG,  MCF8329A_DLEN_32BIT, "REV_DRIVE_CONFIG"},
        {0x00000084, MCF8329A_CFG_MOTOR_STARTUP1,    MCF8329A_DLEN_32BIT, "MOTOR_STARTUP1"},
        {0x00000086, MCF8329A_CFG_MOTOR_STARTUP2,    MCF8329A_DLEN_32BIT, "MOTOR_STARTUP2"},
        {0x00000088, MCF8329A_CFG_CLOSED_LOOP1,      MCF8329A_DLEN_32BIT, "CLOSED_LOOP1"},
        {0x0000008A, MCF8329A_CFG_CLOSED_LOOP2,      MCF8329A_DLEN_32BIT, "CLOSED_LOOP2"},
        {0x0000008C, MCF8329A_CFG_CLOSED_LOOP3,      MCF8329A_DLEN_32BIT, "CLOSED_LOOP3"},
        {0x0000008E, MCF8329A_CFG_CLOSED_LOOP4,      MCF8329A_DLEN_32BIT, "CLOSED_LOOP4"},
        
        /* Reference Profiles */
        {0x00000094, MCF8329A_CFG_REF_PROFILES1,     MCF8329A_DLEN_32BIT, "REF_PROFILES1"},
        {0x00000096, MCF8329A_CFG_REF_PROFILES2,     MCF8329A_DLEN_32BIT, "REF_PROFILES2"},
        {0x00000098, MCF8329A_CFG_REF_PROFILES3,     MCF8329A_DLEN_32BIT, "REF_PROFILES3"},
        {0x0000009A, MCF8329A_CFG_REF_PROFILES4,     MCF8329A_DLEN_32BIT, "REF_PROFILES4"},
        {0x0000009C, MCF8329A_CFG_REF_PROFILES5,     MCF8329A_DLEN_32BIT, "REF_PROFILES5"},
        {0x0000009E, MCF8329A_CFG_REF_PROFILES6,     MCF8329A_DLEN_32BIT, "REF_PROFILES6"},
        
        /* Fault Configuration */
        {0x00000090, MCF8329A_CFG_FAULT_CONFIG1,     MCF8329A_DLEN_32BIT, "FAULT_CONFIG1"},
        {0x00000092, MCF8329A_CFG_FAULT_CONFIG2,     MCF8329A_DLEN_32BIT, "FAULT_CONFIG2"},
        
        /* Internal Algorithm */
        {0x000000A0, MCF8329A_CFG_INT_ALGO_1,        MCF8329A_DLEN_32BIT, "INT_ALGO_1"},
        {0x000000A2, MCF8329A_CFG_INT_ALGO_2,        MCF8329A_DLEN_32BIT, "INT_ALGO_2"},
        
        /* Device Configuration */
        {0x000000A4, MCF8329A_CFG_PIN_CONFIG,        MCF8329A_DLEN_32BIT, "PIN_CONFIG"},
        {0x000000A6, MCF8329A_CFG_DEVICE_CONFIG1,    MCF8329A_DLEN_32BIT, "DEVICE_CONFIG1"},
        {0x000000A8, MCF8329A_CFG_DEVICE_CONFIG2,    MCF8329A_DLEN_32BIT, "DEVICE_CONFIG2"},
        {0x000000AA, MCF8329A_CFG_PERI_CONFIG1,      MCF8329A_DLEN_32BIT, "PERI_CONFIG1"},
        
        /* Gate Driver Configuration */
        {0x000000AC, MCF8329A_CFG_GD_CONFIG1,        MCF8329A_DLEN_32BIT, "GD_CONFIG1"},
        {0x000000AE, MCF8329A_CFG_GD_CONFIG2,        MCF8329A_DLEN_32BIT, "GD_CONFIG2"},

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

    您好、

    电机额定电流应与以指定额定速度运行时测得的电机相电流相对应。 请在 Smarttune 页面中仅输入额定电压、电流、速度和分流电阻值、并在 SmartTune 无法运行时提供日志文件。

    谢谢、

    Dhinesh

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

    日志文件夹为空。

    电机像一秒旋转,然后停止。

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

    尊敬的荣伟:

    感谢您提供日志详细信息。 请在不手动输入电机电气参数(电阻和电感)的情况下执行 SmartTune 功能。 当 SmartTune 进程失败时、请捕获并共享失败的屏幕截图。 允许 SmartTune 在此过程中自动测量电机电阻和电感值。

    谢谢、

    Dhinesh

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

    只有一点噪音,旋转几秒钟,然后错误弹出。

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

    我卸下刀片、并尝试无负载。 我尝试了没有添加电感或电阻等 Ke 参数、但这不起作用(但没有故障错误代码)。 然后、我逐个添加参数、这不起作用、完全相同。

    当我运行 MPET 时、电机继续旋转而不停止。 参数将会提取出来、

    该怎么做?

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

    尊敬的荣伟:

    您能提供电机数据表吗? 如果使用“无负载“选项执行 SmartTune 工具、则额定电流应与电机的空载额定电流相对应。

    请向电机供应商确认电机的负载和空载额定电流规格。

    如果输入的电机额定电流不足以在开环模式下运行电机、则可能会发生 MPET BEMF 故障。

    谢谢、

    Dhinesh

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

    实际工作电流预计为 5A

    额定电流可高达 20A

    我应该输入什么值?

    这是家用电机。 它通过现成的 ESC 进行测试。

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

    您好、  

    我们需要对 SmartTune 使用额定电流 (20A)。 另外、请确保您的电源能够支持 20A 电流。

    谢谢、

    Dhinesh

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

    不管用。  

    如何逐步执行手动调优? 任何数据文件都有助于您的团队调试为何 Smartttune 无法正常工作?

    谢谢

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

    尊敬的荣伟:

    请完成 MCF8329HS 调优指南中给出的手动调优过程。 如果您仍然在旋转电机时遇到问题、请告诉我。

    谢谢、

    Dhinesh

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

    我按照调优指南进行了操作。

    MPET 调优正在工作、因此它确实会提取 BEMF 参数和 kp、ki。  

    但是使用 kp 和 ki (speed) 时、它非常不稳定、因此我手动调优 kp 和 ki。  

    电机能够运行、但有两个问题、一个是 Iq 和 id 非常不稳定、Id 将跳到非常高的电流(例如–2A 电流)、远大于 Iq。 第二是当速度超过 70%(最大 1000Hz)时、它失控、速度将高达 1200hz、并显示红色错误。

    如何微调?

    谢谢

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

    尊敬的荣伟:

    请共享电机调优文件以及在启动期间捕获的相电流。 您是否 还可以检查电机在速度控制模式下运行的性能?

    谢谢、

    Dhinesh

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

    尊敬的荣伟:

    请将识别到的电机调优参数写入器件 EEPROM、对器件执行下电上电、并再次验证显示的电流读数。

    对于第二个问题、请将 CLOSED_LOOP3 和 CLOSED_LOOP4 寄存器值分别修改为 0x197A51EB 和 0x738CDC20。 我修改了电流和速度环路 Kp 和 Ki 以避免过冲。

    谢谢、

    Dhinesh

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

    我测试了此参数、如前所述、电流显示高达 38A、实际电流应该 减小几倍。

    在我写入 EEPROM 后,我重置电源,电机尝试自行运行,没有 i2c 控制。

    则由于过流故障、它会停止。  写入 EEPROM 看起来应该具有相同的行为。

    为什么测量的 Iq 远高于实际值。 任何设置可能会混乱? 我可以确保分流电阻值设置正确。

    我无法通过 Motor Studio 再次访问电机。  

    Motor Studio 无法再次与 EVM 板通信。 如何重新获得访问权限?

    已尝试重置电源 几次、但没有运气。

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

    尊敬的荣伟:

    您能否请确认电路板上的 SPEED/WAKE 引脚电压?  应为 3.3V 以使器件保持在工作模式(如果器件配置为睡眠模式)。 此外、器件电流消耗是多少?

    谢谢、

    Dhinesh