###### tags: `ECU` `AD`
# ECU_AD量測手法
關於AD轉換的測試手法
Freescale 的這顆MCU, AD轉換的解析為12bit, 最大解析值為4095
所以分為3個步驟來測試:
### 第1步:
VB程式先讀取D/A設定值, 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 比對兩者是否一致
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| D/A值 | 電壓 | A/D值 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 取值D/A設定值
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note over ECU: A/D取得
Note right of ECU: ECU取得電壓值
Note right of ECU: ECU取樣機能驗證
ECU-->VB: ECU傳回A/D轉換值
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 取值D/A設定值
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note over ECU: A/D取得
Note right of ECU: ECU取得電壓值
Note right of ECU: ECU取樣機能驗證
ECU-->VB: ECU傳回A/D轉換值
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
確認ECU的 A/D 取樣的機能是正確的。
### 第2步:
VB程式先讀取D/A設定值, 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 再轉換為溫度,比對兩者是否一致
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| 溫度值 ->B_Const計算 | 電壓 | A/D值 —>溫度 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 讀取 [ 溫度 ] 設定值
Note over VB: B定數求阻抗&分壓
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note right of ECU: ECU取得電壓值
Note right of ECU: ECU電壓值查表轉溫度
ECU-->VB: ECU傳回 [溫度]
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
**確認ECU的 A/D 查表轉換[溫度]的機能是正確的。**
### 第3步:
VB程式先讀取[D/A設定值], 然後經由測試器輸出電壓, ECU擷取電壓轉換為A/D值, 再轉換為[壓力],比對兩者是否一致
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| 壓力值 ->斜率轉換 | 電壓 | A/D值 —>壓力 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 讀取 [ 壓力 ] 設定值
Note over VB: 壓力to電壓斜率轉換
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note right of ECU: ECU取得電壓值
Note right of ECU: 電壓to壓力斜率轉換
ECU-->VB: ECU傳回 [壓力]
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
**確認ECU的 A/D 轉換 [壓力值]的機能是正確的。**
---
# AD変換に関するテスト手法
FreescaleのこのMCUでは,AD変換の解析は12bit,最大解析値は4095である
3つのステップに分けてテストします
## ステップ1:
VBプログラムはD / A設定値を読み込み、テスタを介して電圧を出力し、ECUは電圧を取り、両者が一致するかどうかを比較する
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| D/A值 | 電壓 | A/D值 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 取值D/A設定值
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note right of ECU: ECU取得電壓值
Note right of ECU: ECU取樣機能驗證
ECU-->VB: ECU傳回A/D轉換值
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
ECUのA / Dサンプリングの機能が正しいことを確認する。
## ステップ2:
VBプログラムはD / A設定値を読み込み、テスタを介して電圧を出力し、ECUは電圧を取り込みA / D値に変換し、さらに温度に変換して両者が一致するかどうかを調べる
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| 溫度值 ->B_Const計算 | 電壓 | A/D值 —>溫度 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 讀取 [ 溫度 ] 設定值
Note over VB: B定數求阻抗&分壓
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note right of ECU: ECU取得電壓值
Note right of ECU: ECU電壓值查表轉溫度
ECU-->VB: ECU傳回 [溫度]
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
ECUのA / Dルックアップテーブル[温度]の機能が正しいことを確認する
## ステップ3:
VBプログラムは最初に[D / A設定値]を読み込み、それからテスタを介して電圧を出力し、ECUは電圧を取り、A / D値に変換し、更に[圧力]に変換し、両者が一致するかどうかを比較する
| VB_PRG | 測試器 —> | ECU |
| -------- | -------- | -------- |
| 壓力值 ->斜率轉換 | 電壓 | A/D值 —>壓力 |
```sequence
Note left of VB: VB開始驗證 ->
Note over VB: 讀取 [ 壓力 ] 設定值
Note over VB: 壓力to電壓斜率轉換
VB->Tester: 設定電壓
Note over Tester: 經由MCP4728
Tester->ECU: 送出電壓
Note over VB,ECU: Delay
Note over ECU: 取值, 累加, 平圴
Note right of ECU: ECU取得電壓值
Note right of ECU: 電壓to壓力斜率轉換
ECU-->VB: ECU傳回 [壓力]
Note over VB: 比對是否正確
Note left of VB: VB完成驗證 <-
```
ECUのA / D変換[圧力値]の機能が正しいことを確認する