硬件: 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];
}