基本上多数芯片的I2C通讯都是需要应答信号的。至于你说的ACK和NOACK信号,应该是在通讯时主设备读取从设备数据时主设备给从设备发送的应答信号。这两个信号不是按芯片分的,而是根据芯片数据手册,该回什么应答就用哪个应答。
说一下我自己遇到的几款芯片中的应答方式,一般I2C通讯流程是先发送一个起始信号,主设备给从设备发送从设备地址(包含写标志),从设备应答主设备,主设备再发送要读取的寄存器地址,从设备应答主设备,主设备再次发送起始信号,主设备发送设备地址(包含读标志),从设备应答主设备,并将该寄存器的值发送给主设备;
这时候,主设备如果只需要这一个数值,就要结束应答,要先发送一个NOACK应答信号,再发送结束信号;如果主设备要读取的数据大于一个字节,就需要发送ACK,而不是NOACK,应答信号,然后主设备再次接收从设备发送的数据,依次类推,直到主设备读取的数值是最后一个字节数据后,就需要主设备给从设备发送NOACK应答信号,再发送结束信号,结束I2C通讯,并释放I2C总线。
还有什么地方不懂的,再沟通,推荐一个博客:http://www.cnblogs.com/microxiami/p/8527464.html