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.

[参考译文] LP-MSPM0G3507:TMAG3001

Guru**** 2502205 points
Other Parts Discussed in Thread: TMAG3001, MSPM0G3507, OPT3001

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1540523/lp-mspm0g3507-tmag3001

器件型号:LP-MSPM0G3507
Thread 中讨论的其他器件:MSPM0G3507、TMAG3001、 OPT3001

工具/软件:

大家好、我根据 TMAG3001 文档制作了该电路板、但我不知道如何使用 MSPM0G3507 读取其角度值。 您能否提供示例代码?

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

    您好,感谢您的提问! 就 I2C 而言、CCS MSPM0 SDK 中有许多针对控制器模式和外设模式的示例。 假设您已经浏览 TMAG3001 数据表并将所有配置设置为特定用例、则应该能够向 TMAG 发送读取请求、如下所示:

    #define I2C_TX_PACKET_SIZE (2)
    
    #define I2C_RX_PACKET_SIZE (6)
    
    #define I2C_TARGET_ADDRESS (0x??)
    
    gTxPacket[2] = [0x12, ......] ; // register of x axis MSB
    
    gRxPacket[6];  // assuming you are going to read all 6 registers of MSB/LSB for all axes
    
    DL_I2C_fillControllerTXFIFO(I2C_INST, &gTxPacket[0], I2C_TX_PACKET_SIZE);
    
    DL_I2C_startControllerTransfer(I2C_INST, I2C_TARGET_ADDRESS, DL_I2C_CONTROLLER_DIRECTION_RX, I2C_RX_PACKET_SIZE);
    
    for (uint8_t i = 0; i < I2C_RX_PACKET_SIZE; i++) {
        while (DL_I2C_isControllerRXFIFOEmpty(I2C_INST))
               ;
        gRxPacket[i] = DL_I2C_receiveControllerData(I2C_INST);
    }
    
    

    我正在使用 i2c_controller_rw_multibyte_fifo_poll 作为示例、但您可以选择另一个更适合您的需求。 希望这对您有所帮助!

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

    非常感谢。 现在、我通过模式“CRC 禁用、X 轴启用的情况下 8 位数据的 I2C 读取命令“读取 x 轴的角度值

    、但我不知道如何在此模式下配置每个寄存器。picture3 显示了我编写的代码。 您能帮我看看吗

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

    因此这应该与读取类似、您需要获得要写入/配置的寄存器的地址、因此类似如下所示:

    CONFIG 寄存器的细节更多地是一个 OPT3001 问题、但这是写入寄存器的一种方法。 希望这对您有所帮助!