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.

[参考译文] MCF8315A:控制此芯片的持续问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1297180/mcf8315a-continuing-problems-with-controlling-this-chip

器件型号:MCF8315A

我用 MCF8315A 继续奋斗!

最后、我能够(某种程度上)通过我自己的软件控制它、但它从不会按预期运行。  

首先、我加载一组默认寄存器、我在使用 Motor Studio 和 EVM 花了很多小时之后设置了这些寄存器。

然后、在我对它执行任何操作之前、我启动 MPET 并等待寄存器0x190中的 unti I get 值0。

然后、我尝试以不同的速度运行电机、结果远远超出了我的预期。 这、假定 MPET 已经完成(因为有时它一直运行到一个循环通电)。

电机踢脚、有时以不同的速度向反方向或相同的方向移动、然后更改为某个其他速度、但不是我想要的速度。 有时它只是振动而根本不旋转。 有时它无法停止。 它完全无法预测。

我的电机是42BL41.010。

我所需要的就是让电机以特定的速度旋转。 使用具有所有这些寄存器的 MCF8315A 器难以做到这一点?

谢谢!

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

    尊敬的 Konstantin:

    1.您能否提供 启动、开环和闭环期间相电流的捕捉数据? 我假设电机转速变化是由于电机从开环转换为闭环所致、但我要确保这就是现在出现的问题。

    2.启动过程中电机何时"踢"? 如果是、您是否可以尝试 降低寄存器 MOTOR_STARTUP1 (84h)中 ALIGN_OR_SLOW_CURRENT_ILIMIT 位20-17的值。 如果对齐电流阈值过高、电机可能无法及时稳定、从而导致电机 在没有旋转和 踢门的情况下振动。 您还可以尝试增加 寄存器 MOTOR_STARTUP1 (84h)中 ALIGN_TIME 位24-21的值。

    3.您能否提供您输入 MAX_SPEED 的值、寄存器 CLOSED_LOOP4 (8Eh)中的第13-0位?

    此致、

    约书亚

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

    你好、Joshua、

    这是我的相的样子(不幸的是、我一次只能测量其中两个)。 非常不确定这是不是应该是什么样的。







    这是我要加载的一组寄存器值。

    uint32_t mcf_defaults[MCF_REGS][2] = {
        { 0x80, 0x64736620 },  // ISD_CONFIG
        { 0x82, 0xCA000000 },  // REV_DRIVE_CONFIG
        { 0x84, 0x456889E6 },  // MOTOR_STARTUP1
        { 0x86, 0xA49E602D },  // MOTOR_STARTUP2
        { 0x88, 0x546A043D },  // CLOSED_LOOP1        // acceleration and deceleration are here
        { 0x8A, 0xDBAFADAE },  // CLOSED_LOOP2
        { 0x8C, 0x2C800003 },  // CLOSED_LOOP3
        { 0x8E, 0x06A18888 },  // CLOSED_LOOP4        // max speed is here
        { 0x94, 0x00000000 },  // SPEED_PROFILES1
        { 0x96, 0x00000000 },  // SPEED_PROFILES2
        { 0x98, 0x00000000 },  // SPEED_PROFILES3
        { 0x9A, 0x800D0000 },  // SPEED_PROFILES4
        { 0x9C, 0x00000000 },  // SPEED_PROFILES5
        { 0x9E, 0x00000000 },  // SPEED_PROFILES6
        { 0x90, 0xB6CF9978 },  // FAULT_CONFIG1
        { 0x92, 0x80D78888 },  // FAULT_CONFIG2
        { 0xA0, 0x9C02C07D },  // INT_ALGO_1
        { 0xA2, 0x0000029F },  // INT_ALGO_2
        { 0xA4, 0x00000038 },  // PIN_CONFIG
        { 0xA6, 0x08101462 },  // DEVICE_CONFIG1
        { 0xA8, 0xC000F00C },  // DEVICE_CONFIG2
        { 0xAA, 0x01C81E00 },  // PERI_CONFIG1        // direction is here
        { 0xAC, 0x9C452301 },  // GD_CONFIG1
        { 0xAE, 0x80200000 },  // GD_CONFIG2
        { 0xE0, 0x00000000 },  // (read-only) GATE_DRIVER_FAULT_STATUS
        { 0xE2, 0x00000000 },  // (read-only) CONTROLLER_FAULT_STATUS
        { 0xE4, 0x00000000 },  // (read-only) ALGO_STATUS
        { 0xE6, 0x00000000 },  // (read-only) MTR_PARAMS
        { 0xE8, 0x00000000 },  // (read-only) ALGO_STATUS_MPET
        { 0xEA, 0x2A500400 },  // ALGO_CTRL1
        { 0xEC, 0x80004000 },  // ALGO_DEBUG1         // desired speed is here
        { 0xEE, 0x00000000 },  // ALGO_DEBUG2
        { 0xF0, 0x00000000 },  // (read-only) CURRENT_PI
        { 0xF2, 0x00000000 },  // (read-only) SPEED_PI
        { 0xF4, 0x0000368A },  // DAC_1
        { 0xF6, 0x0000C75C },  // DAC_2
    };
    

    下一步、我将尝试根据您的建议调整寄存器84和8E。

    谢谢

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

    尊敬的 Konstantin:

    感谢您进行捕获和寄存器配置。 我会查看这些信息、看看我是否可以提供任何进一步的建议。

    此致、

    约书亚

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

    谢谢你。 我会等待您的建议

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

    尊敬的 Konstantin:

    是否有可能 在更长的时间段内捕获电机单相的相电流、以便我可以在单个捕获内查看电机的启动、开环到闭环转换以及闭环运行?

    此致、

    约书亚

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

    你好、Joshua、

    我在 MCF8315A 上进行选择的最初原因之一是 BLDC 设置中假定的简单性。 遗憾的是、我没有记录示波器来获取这些读数。

    观察发生的情况、在 MPET 期间、我可以看到相位的平滑宽和缩短。 然而、当我发送一条命令让电机以特定的速度旋转时、它开始变宽、然后变短。 那时、我看到电机中有这种"踢"动作。

    我还尝试了 SLLU363中建议的寄存器值、但对于这些值、我的电机甚至无法正常旋转。

    此致、
    康斯坦丁

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

    尊敬的 Konstantin:

    我需要一些时间来研究这一点。 我将在12月13日前回复您。

    此致、

    约书亚

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

    谢谢、Joshua。 抱歉、我无法提供该波形记录。

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

    你好 Joshua、您对此问题还有其他建议吗?
    谢谢

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

    尊敬的 Konstantin:

    查看您提供的寄存器配置、我看到正在使用 IPD 启动方法、而不是对齐。 根据我在此线程中看到的信息、我认为调整 IPD 启动配置将有助于解决大多数问题。

    如果在电机启动期间发生踢脚、我们建议将寄存器 MOTOR_STARTUP1中的 IPD_ADV_ANGLE 位7-6降至60或30度、使其与当前设置的90度相比。

     寄存器 MOTOR_STARTUP1中的 IPD_CURR_THR 位13-9可降低、以减少 IPD 启动期间的转子运动或振动。 将 IPD_CURR_THR 降至高位可能会导致启动失败、因此可能需要进行一些测试来确定要使用的良好 IPD_CURR_THR。

    有关调整 IPD 启动方法的更多详细信息、请参阅 SLLU363的第3.3.4节

    此致、

    约书亚