請問大大們
我想透過Arduino讀跟燒錄OTP for 某個壓力感測器A/D conversion data acquisition:
AD conversion data acquisition
I2C硬體接線圖:
I2C硬體接線圖
I2C硬體接線圖2:
I2C硬體接線圖2
OTP data acquisition:
OTP data acquisition
Reset sequence:
Reset sequence
I2C mode:
Conversion start for pressure measurement(A1)0Fh & 49h
Conversion start for temperature measurement(A2) 0Fh & 21h
Reading coefficient X1 0Eh & 20h
Reading coefficient X2 0Eh & 28h
Reading coefficient X3 0Eh & 30h
Reading coefficient X4 0Eh & 38h
Reading coefficient X5 0Eh & 40h
Reading coefficient X6 0Eh & 48h
Reading coefficient X7 0Eh & 50h
Reading coefficient X8 0Eh & 58h
Reading coefficient X9 0Eh & 60h
Reading coefficient X10 0Eh & 68h
Reading coefficient X11 0Eh & 70h
Reading coefficient X12 0Eh & 78h
Reading coefficient X13 0Eh & 80h
arduino code:
#include <Wire.h>
#define Address 0x76
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
//測試先讀兩個值
Serial.print(I2Cread(0x0F,0x49));
Serial.print(I2Cread(0x0E,0x20));
//OTP燒錄不會寫><
//...
}
//呼叫副程式:
void I2Cwrite(byte HighAddress, byte LowAddress, byte data)
{
Wire.beginTransmission(MIS3600_Address);
Wire.write(HighAddress);
Wire.write(LowAddress);
Wire.write(data);
Wire.endTransmission();
}
byte I2Cread(byte HighAddress, byte LowAddress)
{
Wire.beginTransmission(MIS3600_Address);
Wire.write(HighAddress);
Wire.write(LowAddress);
Wire.endTransmission();
Wire.requestFrom(MIS3600_Address,4);
while(!Wire.available())
{
}
Wire.read();
}
讀出的值卻是[128]
感謝大大們
|