I've seen posts with polling loops that look something like this:
TWIC.MASTER.ADDR=(address<<1)|0x01; //enter MR mode
//wait for data
while (!(TWIC.MASTER.STATUS & TWI_MASTER_RIF_bm));
*data++=TWIC.MASTER.DATA; //read data
If the I2C slave device is unpowered and does not ACK the address, could the while loop go on forever, or is the RIF bit always set? Are there other bits that could/should be checked while waiting?
The X256A3 datasheet says, "If the master receives an ACK from the slave, the master proceeds receiving the next byte of data from the slave. [and paraphrasing, sets RIF and clears RXACK]." Unfortunately, the datasheet does not say what happens if the slave does not ACK the SLA+R.