SOGO論壇

標題: arduino read DUT 10bits I2C只能出現128值 [列印本頁]

作者: a91031042    時間: 2020-3-22 10:27:47     標題: arduino read DUT 10bits I2C只能出現128值

請問大大們
我想透過Arduino讀跟燒錄OTP for 某個壓力感測器A/D conversion data acquisition:

I2C硬體接線圖:

I2C硬體接線圖2:

OTP data acquisition:

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]
感謝大大們



附件: [AD conversion data acquisition] AD conversion data acquisition.png (2020-3-22 09:59:02, 26.07 KB) / 下載次數 21
https://oursogo.com/forum.php?mod=attachment&aid=MTgwNzc3OTd8ZjM2MDFhMzV8MTczMjI3MTM1OHwwfDA%3D

附件: [I2C硬體接線圖] I2C硬體接線圖.png (2020-3-22 09:59:03, 14.24 KB) / 下載次數 23
https://oursogo.com/forum.php?mod=attachment&aid=MTgwNzc3OTh8OTZmZmU4OGJ8MTczMjI3MTM1OHwwfDA%3D

附件: [I2C硬體接線圖2] I2C硬體接線圖2.png (2020-3-22 09:59:06, 16.12 KB) / 下載次數 20
https://oursogo.com/forum.php?mod=attachment&aid=MTgwNzc3OTl8MDQwZDRmMDB8MTczMjI3MTM1OHwwfDA%3D

附件: [OTP data acquisition] OTP data acquisition.png (2020-3-22 09:59:06, 22.78 KB) / 下載次數 25
https://oursogo.com/forum.php?mod=attachment&aid=MTgwNzc4MDB8YTY3NmNiNDl8MTczMjI3MTM1OHwwfDA%3D

附件: [Reset sequence] Reset sequence.png (2020-3-22 09:59:07, 20.97 KB) / 下載次數 21
https://oursogo.com/forum.php?mod=attachment&aid=MTgwNzc4MDF8NDAzYWI2MjV8MTczMjI3MTM1OHwwfDA%3D
作者: a91031042    時間: 2020-3-22 18:16:32

小弟可能描述不清楚
補充一下:
透過arduino I2C想讀取模組的A1,A2 X1~X13 數位值
硬體的部分I2C已接10K pull hi到3.3V  CS接GND 未接SDO,MCLK,VPP
但是得到的卻都是128的值
另外OTP燒錄也不清除要如何寫 (Write如何應用)
還請大大們 能指點迷津
感謝大大們~
作者: alphi    時間: 2020-3-23 17:02:15

a91031042 發表於 2020-3-22 18:16  
小弟可能描述不清楚
補充一下:
透過arduino I2C想讀取模組的A1,A2 X1~X13 數位值

1.  請問該IC為何? 這樣可以方便協助Debug
2. OTP 是指One-Time Program ( 一次寫入).一旦寫入一次就不能再改.(寫入方法還是回到第一點該ic為何)
作者: a91031042    時間: 2020-3-23 18:55:11

alphi 發表於 2020-3-23 17:02  
1.  請問該IC為何? 這樣可以方便協助Debug
2. OTP 是指One-Time Program ( 一次寫入).一旦寫入一次就不能 ...

alphi大大:
我使用的是ASIC客製化設計的產品
只有附件的Datasheet~
主要是R/W的方式不清楚
謝謝
作者: a91031042    時間: 2020-3-23 23:09:00

a91031042 發表於 2020-3-23 18:55  
alphi大大:
我使用的是ASIC客製化設計的產品
只有附件的Datasheet~

確認過了是使用 UC6102
Analog-to-Digital Converter IC
謝謝~
作者: Flirt1515    時間: 2020-7-1 22:55:44

Define address 0x76 與函數呼叫的名稱不同




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM