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.

[参考译文] CC1312R:CC1312 SIMPLELINK I2C

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/967682/cc1312r-cc1312-simplelink-i2c

器件型号:CC1312R
主题中讨论的其他器件:BQ24250BQ25792

大家好、

是否有任何片段会显示 I2C 设置、用于写入器件地址和寄存器以读取寄存器中的2个字节? 或者可能在一个寄存器地址处有一个字节、然后在另一个寄存器地址处有一 我习惯将 HAL 层精简在硬件之上,并且不能通过 I2CTransfer()到 I2CSupportPrimeTransfer()再到 I2CMasterDataPut ()再到 I2CMasterControl,并看到器件地址、数据寄存器写入 然后、器件地址、数据地址读取数据将与这一个事务一起发生、除非我没有看到更多数据。

我只需插入代码并执行一组 Beagle 监听、但我不想重新设计滚轮、以便说出是否已经有代码。 我习惯了 ST HAL 层、它看起来更干净、更易于遵循。 现在、我必须读取和写入 BQ27441和 BQ24250、并最终移至 BQ25792。

感谢你的任何帮助

Dave Bassett

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

    您可以尝试参考 i2ctmpi2copt3001 示例。

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

    您好 YiKai、

    我问的原因是 I2C.h 和 i2ctmp 都根本没有解决这个问题。 我将查看 C++(中的嵌入式世界代码中没有人使用过)代码、看看我可以用它做什么。 这应该很简单:如何与具有64个寄存器的芯片通信、以及我想要读取地址0x34、0x35和0x36? 我看到您是如何读取5个字节的、但从哪里读取?? 在什么寄存器地址? 是否在从设备上假定有自动递增?

    dB

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

    我的问题有更新:

    唯一可行的方法是在 ACK/NACK 之后有一个自动 HWint。 如果有更多字节要发送或接收、它使 HWint 能够告知硬件寄存器发送停止或重新启动。 数据表中确实提到了"当一个发送或接收操作完成时、主器件生成中断"。 技术参考手册中没有对此进行进一步说明。 这不完全是真的,如果 I2CCC26XX_hwifxn()是按照驱动程序中的说明进行的,则不可能是这样。 由于没有发生停止、中断必须在事务完成之前发生、以便它可以决定如何结束事务。 除此之外,在检查了 mstat 寄存器或没有错误及要发送的内容之后,会调用 I2CCC26XX_completeTransfer()。

    因此、下面的设置看起来可能起作用、因为 I2ccc26xx.c 在检查是否有更多的读取需要执行之前会检查是否有更多的写入需要执行。 我必须在巴士上测试这一点、但我相信这会起作用:

     * i2cTransaction。slaveAddress =器件地址;
     * i2cTransaction.writeBuf =要读取的寄存器;
     * i2cTransaction.writeCount = 1;
     * i2cTransaction.readBuf = readBuf;
     * i2cTransaction.ReadCount = 2;

    如果在技术参考手册中能看到更好的解释、将 I2C 模块连接到 simplelink SDK 中的代码、那会更好。 我还认为技术参考手册应该在 I2C 部分更新、第一个数据字节仍然在 NACK 之后在总线上发送、而不是在 I2CCC26xx.c 代码中埋下"问题"。

    Dave Bassett

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

    您好、Dave、  

    感谢您的更新。  

    您是否使用上述设置使其正常工作?  

    谢谢、  
    ELIN