# TTR8-PCU 測試計畫

## 測試相關資料
* [專案設計檔(需登入GitHub)](https://github.com/Taipei-Tech-Racing/TTR8-PCU)
* [狀態機(需登入GitHub)](https://github.com/Taipei-Tech-Racing/TTR8-HVCU-EVM/tree/main/FSM)
:::info
測試時請配合電路原理圖與PCB進行，並使用網路檢視工具快速找到待測點
:::

## 已知問題
:::danger
* DC-DC Buck 無法正常運作 (+6V, +6V_SD)
:::
## 注意事項
:::warning
* 高壓測試時請做好安全防護!!!
* 板子的數位訊號輸入可以接受5V的邏輯準位
* 板子的數位訊號輸出一律為5V邏輯準位
:::
## 電源與基準源類
**以下節點的電壓與漣波**
1. +6V? `N/A` `5.996`
2. +5V? `4.99950V, 33mV` `4.99930`
3. +3V3? `3.29630V, 55mV` `3.29970`
4. +6V_SD? `N/A` `6.9927`
5. +5V_SD? `5.9976`
6. +3V3_SD? `3.29860`
7. VCC_ISO? `11.91819V` `12.68915`
8. +5V_ISO? `5.00242V` `5.99548`
9. +3V3_ISO? `3.29615V` `3.29740`
10. VREF_5V? `4.97448V` `4.99435`
11. HV_THRESHOLD? `0.472449V` `0.47386`

## 基本訊號處理類
1. RST為0時RST_BUF是否為1? `是` `是3.3v`
2. CHARGE_EN為1時CHARGE_EN_BUF是否為1? `是` `y`
3. DISCHARGE_ENABLE為0時DISCHARGE_ENABLE_BUF是否為1? `是` `是`

## BMS訊號處理類
1. 當Q6的PIN4有GLV時(SD_LOOP_IN)且CHARGE_EN為1時，CHARGE_POWER是否輸出GLV? `是` `y`
2. 確保DISCHARGE_EN為0(可以放電)後再開機，此時繼電器是否吸合?AMS_SD燈是否熄滅?AMS_OK_BUF是否輸出5V? `是` `y`
3. 完成第5項測試後使DISCHARGE_EN為1(不可放電)，此時繼電器是否放開?AMS_SD燈是否亮起?AMS_OK_BUF是否為0V? `是` `y`
4. 完成第6項測試後再使DISCHARGE_EN為1，並且觸發RST為0，此時繼電器是否吸合?AMS_SD燈是否熄滅?AMS_OK_BUF是否輸出5V? `是` `y`

## TSAL類
1. CLK_2HZ是否為2HZ? `是` `y`
2. 在HV_DETECT為0時<60V的綠色燈是否恆亮?>60V的紅色燈是否熄滅? `是，但兩個有交疊` `y`
4. 在HV_DETECT為1時<60V的綠色燈是否熄滅?>60V的紅色燈是否以2Hz閃爍?(使H_AIR_LOAD_SIDE達到60V即可使HV_DETECT為1，注意高壓危險) `是，但兩個有交疊` `y`
:::warning
測試時需要直接從高壓量測點測試:)
:::

## HVCU類
1. U19之CLK是否為1024Hz? `是` `y`
2. 狀態機是否有在運作? `有`
3. 未連接任何負載時狀態機是否會進入ERR狀態? HVCU_OK_BUF是否為0? READY_TO_DRIVE是否為0? **`READY_TO_DRIVE為1! 修正.JED PLD設計問題`**
:::info
以下測試請根據需要連接或斷開模擬用PreCharge與DisCharge迴路組態
::: 
**以下測試需測試CHARGE_EN為0和CHARGE_EN1是否正常**

4. 將TIMEOK_ADJ與TIMEOUT_ADJ都撥到0000，**模擬計時器初始化錯誤**，狀態機是否直接進到TimerError(1000)? `N/A` ERR2?
5. 將TIMEOK_ADJ撥到1111，TIMEOUT_ADJ撥到0000，**模擬計時器初始化錯誤**，狀態機是否直接進到TimerError(1000)? `N/A` ERR2!!
6. 將TIMEOK_ADJ撥到0000，TIMEOUT_ADJ撥到1111，**模擬計時器初始化錯誤**，狀態機是否直接進到TimerError(1000)? `N/A` ERR2
7. 將TIMEOK_ADJ撥到0100(1S,LSB=0.125)，TIMEOUT_ADJ撥到0100(2S,LSB=0.25)，，**模擬計時器初始化正確**，狀態機在CHARGE_EN為0時是否會進到PreCharge(0100)或CHARGE_EN為1時是否會進到ChargerCheck(0110)? **`完全空載時有機率進Charging`** CHARGE_EN為1 空載 直接進charging LS 高 BS 進ERR3 BS 高LS
CHARGE_EN為0 
**以下測試需測試CHARGE_EN為0時是否正常**

8. 將TIMEOK_ADJ撥到1000(1S,LSB=0.125)，TIMEOUT_ADJ撥到1000(2S,LSB=0.25)，**模擬正常充電時間區間**，是否能正確進到Output(0101)? `N/A`
9. 將TIMEOK_ADJ撥到0100(0.5S,LSB=0.125)，TIMOUT_ADJ撥到0100(1S,LSB=0.25)，**模擬高於正常充電時間區間**，是否能正確進到PreChargeError(1001)? `N/A`
10. 將TIMEOK_ADJ撥到1111(1.875S,LSB=0.125)，TIMOUT_ADJ撥到1111(3.75S,LSB=0.25)，**模擬低於正常充電時間區間**，是否能正確進到PreChargeError(1001)? `N/A`
11. 將TIMEOK_ADJ撥到1111(1.875S,LSB=0.125)，TIMEOUT_ADJ撥到0100(1S,LSB=0.25)，**模擬計時器時序錯誤**，是否能正確進到TimerError(1000)? `N/A`

**以下測試需測試CHARGE_EN為1時是否正常**

12. 讓H_AIR_LOAD_SIDE電壓高於H_AIR_BATT_SIDE 102%，是否能正確進到Charging(0111)? `是` `y無特別計算102%
13. 讓H_AIR_LOAD_SIDE電壓不高於H_AIR_BATT_SIDE 102%，是否能正確進到ChargerNotCnnect(1010)? `是` `y

**以下測試不穩定情況**

14. 在Output模式下，將CHARGE_EN設為1，是否會進入ModeUnstable(1011)? `是`
15. 在Charging模式下，將CHARGE_EN設為0，是否會進入ModeUnstable(1011)? `是`


## MCU類
1. 是否可使用STLINK-V3MINIE正確燒錄? `是`
2. 是否可使用USART2與STLINK的VCOM正常通訊?
3. CAN1是否可正常通訊?
4. 是否可正確讀取Q3, Q2, Q1, Q0, TIMEOK, TIMEOUT, PRECHARGE_OK, CHARGER_CONNECTED, AMS_SD的數位訊號?
5. 是否能使用隔離後的ADS7049 ADC讀取H_AIR_BATT_SIDE的衰減電壓與H_AIR_LOAD_SIDE的衰減電壓，並推算原電壓(注意高壓危險)?
6. 是否可讀出IMU之資料?