Hello everyone, I must to write and read a I2C eeprom like 24c256. I tryed to do it but all the examples with I2C protocol works with 8bit addressing. I tryed to modify mpu6050.c source code (in Nordic\nrf51822\Source\ext_sensors) for use with sd_twi_hardware_master.c without success. I think that the right way is like this code snippet:
bool ee_mem24c256_register_write(uint16_t register_address, uint8_t value)
{
uint8_t w2_data[3];
addrH = (int8_t) (register_address>>8);
addrL = (int8_t) (register_address&0xFF);
w2_data[0] = addrH;
w2_data[1] = addrL;
w2_data[2] = value;
return twi_master_transfer(m_device_address, w2_data, 3, TWI_ISSUE_STOP);
}
bool ee_mem24c256_register_read(uint16_t register_address, uint8_t * destination, uint8_t number_of_bytes)
{
bool transfer_succeeded;
transfer_succeeded = twi_master_transfer(m_device_address, (uint8_t *) ®ister_address, 1, TWI_DONT_ISSUE_STOP);
transfer_succeeded &= twi_master_transfer(m_device_address|TWI_READ_BIT, destination, number_of_bytes, TWI_ISSUE_STOP);
return transfer_succeeded;
}
but doesn't works...
Can you help me?