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.

[参考译文] TMS570LC4357:TMS570LC4357中的 RTC RV-3129-C3

Guru**** 2452360 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1011570/tms570lc4357-rtc-rv-3129-c3-in-tms570lc4357

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

大家好、

您在 HALCoGen 中是否有用于 RTC 实时时钟项目的 I2C 和 I2C 配置的示例代码?

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

    您好!

    不、我们没有 RTC RV-3129-C3的 I2C 示例?

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

    这是我在2年前发布的 RTC 示例:

    e2e.ti.com/.../2878044

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

    您好、QJ Wang、

    //从器件地址
    #define RV3129_address 0x56
    //温度页
    #define RV3129_TEMP 0x20
    #define DATA_COUNT 1.


    /*发送开始条件*/
    i2cSetStart (i2cREG1);

    /*配置要与*/通话的从机地址
    i2cSetSlaveAdd (i2cREG1、RV3129_address);

    /*将模式设置为主设备*/
    i2cSetMode (i2cREG1、I2C_MASTER);

    /*将方向设置为发送器*/
    /*注意:可选-在 Init 中完成*/
    i2cSetDirection (i2cREG1、I2C_transmitter);

    /*发送字地址*/
    i2cSendByte (i2cREG1、Slave_Word_address);

    /*设置编程计数后停止*/
    i2cSetStop (i2cREG1);

    /*轮询模式下的 Transmit data_count 数据数量*/
    i2cReceive (i2cREG1、DATA_COUNT、RX_Data_Master);

    /*等待总线忙被清除*/
    while (i2cIsBusy (i2cREG1)=true);

    /*等待直到检测到停止*/
    while (i2cIsStopDetected (i2cREG1)=0);

    /*清除停止条件*/
    i2cClearSCD (i2cREG1);

    /*在开始下一个块之前使用 Simple Dealya */
    /*取决于从属设备准备就绪的速度*/
    for (delay=0;delay<100000;delay++);

    我已经根据 Hercules I2C 示例尝试过此代码、但我确实获得了此 RTC 的任何输出  

    请帮助我准备该序列。

    您能确认 I2C 和 Code 的配置吗?

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

    您从 RTC 获取返回的数据、因此 I2C 配置应该正常。  

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

    您好、QJ Wang、

    不、我直到现在才从 RTC 接收数据。  

    我已经看到 Arduino 板的代码。

    uint8_t RV3129::readRegister (uint8_t addr)

    _i2cPort->BeginTransmission (RV3129_ADDR);
    _i2cPort->write (addr);
    _i2cPort->endTransmission ();

    _i2cPort->requestFrom (RV3129_ADDR、(uint8_t) 1);
    if (_i2cPort->available ()){
    返回(_i2cPort->read());

    否则{
    返回(0xFF);//错误

    bool RV3129::writeRegister (uint8_t addr、uint8_t val)

    _i2cPort->BeginTransmission (RV3129_ADDR);
    _i2cPort->write (addr);
    _i2cPort->write (val);
    如果(_i2cPort->endTransmission ()!= 0)
    返回(false);//错误:传感器未返回
    return (true);

    如何在 TI API 和中将此代码用作 API 请求

    BeginTransmission API As

    /*清除停止位*/
    i2cREG1->MDR &=~(I2C_STOP_COND);
    /*清除起始位*/
    i2cREG1->MDR &=~(I2C_START_COND);
    /*清除重复模式位*/

    //配置要与之通信的从机地址
    i2cSetSlaveAdd (i2cREG1、RV3129_WADDR); 为0xAC

    如何根据数据大小给出计数值?

    /*配置数据计数*/
    i2cSetCount (i2cREG1、Count+1);

    请尽快确认。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="478029" URL"~/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum/1011570/tms570lc4357-rtc-rv-3129-c3-in-tms570lc4357/3739546 #3739546"]我已经根据 Hercules I2C 示例尝试过此代码,但我确实获得了此 RTC 的任何输出 

    好的、您没有从 RTC 获得任何输出。

    您是否在该帖子中尝试过我的代码? 我为 RTC 编写了以下 I2C 代码:

    https://e2e.ti.com/support/microcontrollers/hercules-safety-microcontrollers-group/hercules/f/hercules-safety-microcontrollers-forum/776419/halcogen-i2c-example-with-repeated-start-condition-using-halcogen-api/2878044?tisearch=e2e-sitesearch&keymatch=RTC%2525252C%25252520I2C%2525252C%25252520TMS570#2878044