S32DS踩坑日记——RTC芯片MCP7940N的I2C时序

2023年11月17日,周五

MCP7940N是一款高温型号的RTC芯片,最高支持到125摄氏度。

1.芯片断电后所有数据归零,没有备用电池的情况下。
2.年月日时分秒都是BCD码表示。
3.读数据需要以下步骤:
static uint8_t funLocalTxbuffer[3] = { 0x00 };
static uint8_t funLocalRxbuffer[3] = { 0x00 };

// 设置从机地址 -------------------------------------------------------
LPI2C_DRV_MasterSetSlaveAddr(INST_LPI2C1, ADDR_RTCC , false);

// 读秒 ------------------------------------------------------------

/******* 发送地址 ********/
funLocalTxbuffer[0] = ADDR_SEC;
LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, funLocalTxbuffer, 1, true, OSIF_WAIT_FOREVER);

/******* 接收秒数(BCD码) ********/
LPI2C_DRV_MasterReceiveDataBlocking(INST_LPI2C1, funLocalRxbuffer, 1, true, OSIF_WAIT_FOREVER);

get_rtc_second = (((funLocalRxbuffer[0] & 0x70)>>4)*10) + (funLocalRxbuffer[0] & 0x0F);

4.如果从机地址正确的话,就9个CLCOCK高电平时,SDL会被MCP7940N拉低。否则会是高电平。

你可能感兴趣的:(单片机)