您好!
我有一些使用通用电机控制实验室来驱动电机的定制硬件。
到目前为止、我已经验证了 ADC 在工作和校准、PWM 在构建级别1中正常运行、并在构建级别2中尝试正常运行。
但是、让电机正确旋转(电机声音大且旋转缓慢、消耗最大电流)仍然存在一些问题。
我认为 ADC 的校准没有很正确。 失调电压已经过校准、但仍在-25mA 之间摆动、这可能会让控制系统产生困惑。
无论如何,我需要正确设置数据日志来帮助诊断此问题,但数据日志根本没有更新!
我已在数据日志上设置了4个通道、如下所示、使用库存通用电机控制实验代码:

我可以观察指针、它们可以正确地指向 ADC 数据和 FOC 角度。
但是、数据日志缓冲区中的值全为零、当然 CCS 曲线图中的值全为零。
我的确需要稍微修改代码、因为尽管 ADC 值存储为浮点值、而其他地方的代码需要浮点值、但库存代码使用的是16位整数而不是32位浮点值。
总之、我认为这不是问题所在。
此外,深入研究这一点,我看不到 DMA 实际使用'datalog'参数的任何方式( datalogObj->iptr[])。 'setupDMAforDLOG'使用 DATALOG 缓冲区作为 DMA 传输的接收和发送。 因此,我完全不知道如何解决这一问题。 我希望'setupDMAforDLOG 会使用'iptr'作为 DMA 配置的发送。 也许设置只是为了使 datalogBuff 换行、这就提出了这样一个问题:数据实际在哪里传递?
我之前在评估板上使用过其他实验、它们都以相同的方式配置 DMA (在"setupDMAforDLGO"中、 使用 datalogBuff#[0]作为 recv、使用 datalogBuff#[1]作为 send)。
如何使数据日志正常工作?