EPSON RX8010SJ RTC 调试笔记 之一,I2C 地址及通讯时序

本文详细介绍了EPSON RX8010SJ硬件设备的I2C通讯特性,包括其7-bit I2C地址设置为0x32,以及I2C通讯周期限制在0.95秒内。文章提供了使用Nordic TWI进行读写操作的具体代码示例,展示了如何向特定寄存器写入数据及从寄存器读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件: EPSON RX8010 SJ 

1. EPSON RX8010 SJ  7-bits I2C 地址: 0x32

<特别注意: RX8010SJ 一次I2C 通讯周期须 < 0.95 秒; I2C 通讯速率支持 100K,400K>


2. RX8010SJ I2C 读写通讯时序

2.1 I2C 写指定寄存器地址数据

2.2  I2C 读指定寄存器地址数据

2.3 I2C 读取没指定寄存器地址数据


3. I2C 通讯示例

3.1 向 0x20 寄存器中写入数据 0xA5

3.2 读取 0x20 寄存器中数据


Nordic TWI 读写 RX8010SJ 寄存器程序 

#define RX8010SJ_I2C_SLAVE_ADD	0x32		// for NORDIC TWI, the I2C address is 7-bits.

extern nrf_drv_twi_t 		m_twi_0;

void RX8010SJ_write_register(uint8_t reg_add,uint8_t reg_data)
{
    ret_code_t err_code;
		uint8_t reg_code[] 	= { reg_add,reg_data };
		
    err_code = nrf_drv_twi_tx( &m_twi_0, RX8010SJ_I2C_SLAVE_ADD, reg_code, sizeof(reg_code), false );
    APP_ERROR_CHECK(err_code);		
		nrf_delay_ms( 5 );
}

uint8_t RX8010SJ_read_register(uint8_t reg_add)
{
		ret_code_t 	err_code;
		uint8_t reg_code[] 	= { reg_add };
		uint8_t rx_buffer[] = { 0xFF };
		
    err_code = nrf_drv_twi_tx(&m_twi_0, RX8010SJ_I2C_SLAVE_ADD, reg_code, sizeof(reg_code),true);  		
		APP_ERROR_CHECK(err_code);	
		nrf_delay_ms(1);
		
		err_code = nrf_drv_twi_rx(&m_twi_0,RX8010SJ_I2C_SLAVE_ADD, rx_buffer,sizeof(rx_buffer)); 
		APP_ERROR_CHECK(err_code);			
		nrf_delay_ms(10);
		
//		NRF_LOG_INFO("RX8010SJ_REG_SEC read Result:0x%02X.",rx_buffer[0]);		
		return rx_buffer[0];		
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值