update
This commit is contained in:
@@ -102,11 +102,30 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)external\FT4222\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>$(ProjectDir)external\FT4222\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);LibFT4222-64.lib;ftd2xx.lib</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>:: 1. DLL 파일 먼저 복사
|
||||||
|
copy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)"
|
||||||
|
|
||||||
|
@echo off
|
||||||
|
:: 2. PowerShell을 이용해 시스템 언어와 무관하게 날짜_시간 추출 (YYYYMMDD_HHmm)
|
||||||
|
for /f "tokens=*" %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmm'"') do set BUILD_NAME=%%i
|
||||||
|
|
||||||
|
:: 3. 경로 설정 (반드시 큰따옴표로 감싸야 함)
|
||||||
|
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_Debug_History\%BUILD_NAME%"
|
||||||
|
|
||||||
|
:: 4. 폴더 생성 및 복사
|
||||||
|
echo Creating backup at: "%TARGET_PATH%"
|
||||||
|
if not exist "%TARGET_PATH%" mkdir "%TARGET_PATH%"
|
||||||
|
xcopy /y /e "$(OutDir)*.*" "%TARGET_PATH%\"</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
@@ -135,7 +154,7 @@ copy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)"
|
|||||||
for /f "tokens=*" %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmm'"') do set BUILD_NAME=%%i
|
for /f "tokens=*" %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmm'"') do set BUILD_NAME=%%i
|
||||||
|
|
||||||
:: 3. 경로 설정 (반드시 큰따옴표로 감싸야 함)
|
:: 3. 경로 설정 (반드시 큰따옴표로 감싸야 함)
|
||||||
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_History\%BUILD_NAME%"
|
set "TARGET_PATH=$(SolutionDir)PMIC_Cmd_Tool_Build_Release_History\%BUILD_NAME%"
|
||||||
|
|
||||||
:: 4. 폴더 생성 및 복사
|
:: 4. 폴더 생성 및 복사
|
||||||
echo Creating backup at: "%TARGET_PATH%"
|
echo Creating backup at: "%TARGET_PATH%"
|
||||||
@@ -144,6 +163,8 @@ xcopy /y /e "$(OutDir)*.*" "%TARGET_PATH%\"</Command>
|
|||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="external\FT4222\include\ftd2xx.h" />
|
||||||
|
<ClInclude Include="external\FT4222\include\LibFT4222.h" />
|
||||||
<ClInclude Include="include\PMIC_Reg_Map.h" />
|
<ClInclude Include="include\PMIC_Reg_Map.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -18,6 +18,12 @@
|
|||||||
<ClInclude Include="include\PMIC_Reg_Map.h">
|
<ClInclude Include="include\PMIC_Reg_Map.h">
|
||||||
<Filter>헤더 파일</Filter>
|
<Filter>헤더 파일</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="external\FT4222\include\LibFT4222.h">
|
||||||
|
<Filter>헤더 파일</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="external\FT4222\include\ftd2xx.h">
|
||||||
|
<Filter>헤더 파일</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\PMIC_Cmd_Tool.cpp">
|
<ClCompile Include="src\PMIC_Cmd_Tool.cpp">
|
||||||
|
|||||||
@@ -37,9 +37,11 @@ int parseCommand(const char* dir);
|
|||||||
void PMIC_I2C_Write(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr, uint8_t value); // Address에 1바이트 Write with CRC, 그리고 Address를 Read해서 Write한 값과 비교
|
void PMIC_I2C_Write(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr, uint8_t value); // Address에 1바이트 Write with CRC, 그리고 Address를 Read해서 Write한 값과 비교
|
||||||
uint8_t PMIC_I2C_Read(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr); // Address에서 1바이트 Read (CRC 계산 없음)
|
uint8_t PMIC_I2C_Read(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr); // Address에서 1바이트 Read (CRC 계산 없음)
|
||||||
void toBinaryString(uint8_t val, char* outBuf); // 8비트 데이터를 "0000_0000" 형식의 문자열로 변환
|
void toBinaryString(uint8_t val, char* outBuf); // 8비트 데이터를 "0000_0000" 형식의 문자열로 변환
|
||||||
bool Run_DebugMode(FT_HANDLE ftHandle); // Enter Debug Mode
|
bool Run_DebugMode_On(FT_HANDLE ftHandle); // Enter Debug Mode On
|
||||||
|
bool Run_DebugMode_Off(FT_HANDLE ftHandle); // Enter Debug Mode Off
|
||||||
void Run_CheckFaults(FT_HANDLE ftHandle); // Check All Fault Registers
|
void Run_CheckFaults(FT_HANDLE ftHandle); // Check All Fault Registers
|
||||||
void Run_ReadChipInfo(FT_HANDLE ftHandle); // Read Chip Information (OTP/Version)
|
void Run_ReadChipInfo(FT_HANDLE ftHandle); // Read Chip Information (OTP/Version)
|
||||||
|
void Irq_Clear(FT_HANDLE ftHandle); // PMIC Irq Clear
|
||||||
void Handle_ManualCommand(FT_HANDLE ftHandle, char* line); // Manual Command
|
void Handle_ManualCommand(FT_HANDLE ftHandle, char* line); // Manual Command
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
@@ -52,9 +54,12 @@ int main()
|
|||||||
while (1) {
|
while (1) {
|
||||||
printf("\n========================================\n");
|
printf("\n========================================\n");
|
||||||
printf(" [MAIN MENU] Select a function\n");
|
printf(" [MAIN MENU] Select a function\n");
|
||||||
printf(" 1. Toggle PMIC Debug Mode (Current: %s)\n", debugState ? "ON" : "OFF");
|
printf(" 1. Toggle PMIC Debug Mode ON\n");
|
||||||
printf(" 2. Read All Fault Status (Specific 1)\n");
|
printf(" 2. Toggle PMIC Debug Mode OFF\n");
|
||||||
printf(" 3. Read Device Info & OTP (Specific 2)\n");
|
printf(" 3. Read All Fault Status\n");
|
||||||
|
printf(" 4. Read Device Info & OTP\n");
|
||||||
|
printf(" 5. PMIC Irq Clear\n");
|
||||||
|
|
||||||
printf(" W. Manual I2C Write (w [Addr] [Reg] [Val])\n");
|
printf(" W. Manual I2C Write (w [Addr] [Reg] [Val])\n");
|
||||||
printf(" R. Manual I2C Read (r [Addr] [Reg])\n");
|
printf(" R. Manual I2C Read (r [Addr] [Reg])\n");
|
||||||
printf(" E. Exit Program\n");
|
printf(" E. Exit Program\n");
|
||||||
@@ -82,9 +87,9 @@ int main()
|
|||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
if (Run_DebugMode(ftHandle)) {
|
if (Run_DebugMode_On(ftHandle)) {
|
||||||
debugState = true;
|
debugState = true;
|
||||||
printf("\n[SUCCESS] PMIC Debug Mode.\n");
|
printf("\n[SUCCESS] PMIC Debug Mode On\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debugState = false;
|
debugState = false;
|
||||||
@@ -93,13 +98,29 @@ int main()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
|
{
|
||||||
|
if (Run_DebugMode_Off(ftHandle)) {
|
||||||
|
debugState = false;
|
||||||
|
printf("\n[SUCCESS] PMIC Debug Mode Off\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
debugState = true;
|
||||||
|
printf("\n[FAILURE] Communication error.\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
Run_CheckFaults(ftHandle);
|
Run_CheckFaults(ftHandle);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 4:
|
||||||
Run_ReadChipInfo(ftHandle);
|
Run_ReadChipInfo(ftHandle);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
Irq_Clear(ftHandle);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("\n[ERROR] Menu number %d does not exist.\n", choice);
|
printf("\n[ERROR] Menu number %d does not exist.\n", choice);
|
||||||
break;
|
break;
|
||||||
@@ -741,16 +762,12 @@ void toBinaryString(uint8_t val, char* outBuf)
|
|||||||
outBuf[9] = '\0'; // 문자열 끝 지정
|
outBuf[9] = '\0'; // 문자열 끝 지정
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enter / Exit Debug Mode
|
// Set Debug Mode On
|
||||||
bool Run_DebugMode(FT_HANDLE ftHandle) {
|
bool Run_DebugMode_On(FT_HANDLE ftHandle) {
|
||||||
uint8_t readVal = 0;
|
uint8_t readVal = 0;
|
||||||
int retryCount = 0;
|
int retryCount = 0;
|
||||||
const int maxRetries = 100; // 과도한 반복 방지 (50회면 충분합니다)
|
const int maxRetries = 300; // 과도한 반복 방지 (50회면 충분합니다)
|
||||||
|
|
||||||
#if 0
|
|
||||||
printf("\n[PROCESS] Enter PMIC Debug Mode...\n");
|
|
||||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x102 - IO_MODECTRL Read시 디폴트 0x65
|
|
||||||
#else
|
|
||||||
printf("\n[PROCESS] Checking PMIC Communication...");
|
printf("\n[PROCESS] Checking PMIC Communication...");
|
||||||
|
|
||||||
// 사전 통신 검사: 정상적인 리드 값이 올 때까지 무한 대기 (또는 특정 횟수)
|
// 사전 통신 검사: 정상적인 리드 값이 올 때까지 무한 대기 (또는 특정 횟수)
|
||||||
@@ -769,9 +786,8 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 실제 디버그 모드 진입 시퀀스 시작
|
// 실제 디버그 모드 진입 시퀀스 시작
|
||||||
printf("[PROCESS] Attempting to Enter Debug Mode...\n");
|
printf("[PROCESS] Attempting to Enter Debug Mode On\n");
|
||||||
|
|
||||||
#endif
|
|
||||||
do {
|
do {
|
||||||
retryCount++;
|
retryCount++;
|
||||||
|
|
||||||
@@ -783,13 +799,13 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
|||||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x02, 0x25); //0x102 - IO_MODECTRL
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x02, 0x25); //0x102 - IO_MODECTRL
|
||||||
|
|
||||||
// 딜레이 및 확인 (Verification)
|
// 딜레이 및 확인 (Verification)
|
||||||
Sleep(10);
|
Sleep(50);
|
||||||
|
|
||||||
// 직접 읽어서 확인
|
// 직접 읽어서 확인
|
||||||
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02);
|
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02);
|
||||||
|
|
||||||
if (readVal == 0x25) {
|
if (readVal == 0x25) {;
|
||||||
printf(" >>> Success! Debug Mode entered at cycle %d. <<<\n", retryCount);
|
printf(" >>> Success! Debug Mode On[0x%02X] at cycle %d. <<<\n", readVal, retryCount);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -797,12 +813,66 @@ bool Run_DebugMode(FT_HANDLE ftHandle) {
|
|||||||
|
|
||||||
} while (retryCount < maxRetries);
|
} while (retryCount < maxRetries);
|
||||||
|
|
||||||
printf("\n[ERRPR] Failed to enter Debug Mode\n");
|
printf("\n[ERRPR] Failed to enter Debug Mode On\n");
|
||||||
return false;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set Debug Mode Off
|
||||||
|
bool Run_DebugMode_Off(FT_HANDLE ftHandle) {
|
||||||
|
uint8_t readVal = 0;
|
||||||
|
int retryCount = 0;
|
||||||
|
const int maxRetries = 100; // 과도한 반복 방지 (50회면 충분합니다)
|
||||||
|
|
||||||
|
printf("\n[PROCESS] Checking PMIC Communication...");
|
||||||
|
|
||||||
|
// 사전 통신 검사: 정상적인 리드 값이 올 때까지 무한 대기 (또는 특정 횟수)
|
||||||
|
while (1) {
|
||||||
|
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x102 - IO_MODECTRL Read시 Debug On으로 0x25
|
||||||
|
|
||||||
|
if (readVal != 0xFF) {
|
||||||
|
printf("\n[SUCCESS] Device detected! (Current Reg 0x02: 0x%02X)\n", readVal);
|
||||||
|
break; // 통신 성공 시 검사 루프 탈출
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("."); // 대기 중임을 알리는 점 표시
|
||||||
|
Sleep(1000); // 1초 간격으로 확인
|
||||||
|
|
||||||
|
// 만약 무한 대기가 싫다면 별도의 카운터를 써서 break
|
||||||
|
}
|
||||||
|
|
||||||
|
// 실제 디버그 모드 진입 시퀀스 시작
|
||||||
|
printf("[PROCESS] Attempting to Enter Debug Mode Off...\n");
|
||||||
|
|
||||||
|
do {
|
||||||
|
retryCount++;
|
||||||
|
|
||||||
|
// Page01 선택
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x01);
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x01);
|
||||||
|
|
||||||
|
// 디버그 모드 해제 명령 (0x65)
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x02, 0x65); //0x102 - IO_MODECTRL
|
||||||
|
|
||||||
|
// 딜레이 및 확인 (Verification)
|
||||||
|
Sleep(50);
|
||||||
|
|
||||||
|
// 직접 읽어서 확인
|
||||||
|
readVal = PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02);
|
||||||
|
|
||||||
|
if (readVal == 0x65) {
|
||||||
|
printf(" >>> Success! Debug Mode Off[0x%02X] at cycle %d. <<<\n", readVal, retryCount);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[Retry %d]...\n", retryCount);
|
||||||
|
|
||||||
|
} while (retryCount < maxRetries);
|
||||||
|
|
||||||
|
printf("\n[ERRPR] Failed Debug Mode Off\n");
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Check All Fault Registers
|
// Check All Fault Registers
|
||||||
void Run_CheckFaults(FT_HANDLE ftHandle)
|
void Run_CheckFaults(FT_HANDLE ftHandle)
|
||||||
@@ -849,6 +919,11 @@ void Run_CheckFaults(FT_HANDLE ftHandle)
|
|||||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1E); //0x01E - FLT_RECORD_ExtLDOs
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1E); //0x01E - FLT_RECORD_ExtLDOs
|
||||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1F); //0x01F - FLT_RECORD_BUCKS_B
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1F); //0x01F - FLT_RECORD_BUCKS_B
|
||||||
|
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x20); //0x020 - FLT_RECORD_BUCKS_A
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x21); //0x021 - FLT_RECORD_ExtINPs_7_0
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x28); //0x028 - OTP_RWADDR
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x2A); //0x02A - OTP_FLT_RECORD
|
||||||
|
|
||||||
//Debug Regulation Chip Name etc
|
//Debug Regulation Chip Name etc
|
||||||
printf("[Regulation Chip ID]\n");
|
printf("[Regulation Chip ID]\n");
|
||||||
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
@@ -879,9 +954,76 @@ void Run_CheckFaults(FT_HANDLE ftHandle)
|
|||||||
// Read Chip Information (OTP/Version)
|
// Read Chip Information (OTP/Version)
|
||||||
void Run_ReadChipInfo(FT_HANDLE ftHandle)
|
void Run_ReadChipInfo(FT_HANDLE ftHandle)
|
||||||
{
|
{
|
||||||
printf("\n[PROCESS] Reading Chip Information...\n");
|
//Regulation Register
|
||||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x02); // IO_CHIPVERSION_REGU
|
printf("[OTP Version]\n");
|
||||||
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x03); // IO_DIEID3_REGU
|
//OTP Version
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x02); //0x00 - Page0x02
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x02); //0x00 - Page0x02
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x22); //0x222 - OTP_VERSION_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x23); //0x223 - OTP_VERSION_REGU
|
||||||
|
|
||||||
|
//Debug Regulation Chip Name etc
|
||||||
|
printf("[Regulation Chip ID]\n");
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x00); //0x000 - IO_PAGE_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x01); //0x001 - IO_CHIPNAME_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x02); //0x002 - IO_CHIPVERSION_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x03); //0x003 - IO_DIEID3_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x04); //0x004 - IO_DIEID2_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x05); //0x005 - IO_DIEID1_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x06); //0x006 - IO_DIEID0_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGULATION, 0x0A); //0x00A - OTP_VERSION_REGU
|
||||||
|
|
||||||
|
//Debug Protection Chip Name etc
|
||||||
|
printf("[Protection Chip ID]\n");
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x00); //0x000 - IO_PAGE_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x01); //0x001 - IO_CHIPNAME_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x02); //0x002 - IO_CHIPVERSION_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x03); //0x003 - IO_DIEID3_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x04); //0x004 - IO_DIEID2_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x05); //0x005 - IO_DIEID1_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x06); //0x006 - IO_DIEID0_REGU
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x0A); //0x00A - OTP_VERSION_REGU
|
||||||
|
}
|
||||||
|
|
||||||
|
// PMIC Irq Clear
|
||||||
|
void Irq_Clear(FT_HANDLE ftHandle)
|
||||||
|
{
|
||||||
|
//Regulation Fault Register Clear : Regulation Register, Address 0x040 ~ 0x049
|
||||||
|
printf("[Regulation FLT Register Clear]\n");
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x40, 0x00); //0x040 - FLT_RECORD_OTP
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x41, 0x00); //0x041 - FLT_RECORD_TEMP
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x42, 0x00); //0x042 - FLT_RECORD_BUCK1
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x43, 0x00); //0x043 - FLT_RECORD_BUCK2
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x44, 0x00); //0x044 - FLT_RECORD_BUCK3
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x45, 0x00); //0x045 - FLT_RECORD_BUCK4
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x46, 0x00); //0x046 - FLT_RECORD_BUCK5
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x47, 0x00); //0x047 - FLT_RECORD_LDO
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x48, 0x00); //0x048 - FLT_RECORD_IF
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGULATION, 0x49, 0x00); //0x049 - FLT_RECORD_LDO_DISC_DET
|
||||||
|
|
||||||
|
|
||||||
|
//Fault register data: Protection Register, Address 0x010 ~0x014, 0x019 ~0x021
|
||||||
|
printf("[Protection FLT Register Clear]\n");
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Write(ftHandle, PMIC_ADDR_PROTECTION, 0x00, 0x00); //0x00 - Page0x00
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x14); //0x014 - FUSA_STATUS_4
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x19); //0x019 - FLT_RECORD_A
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1A); //0x01A - FLT_RECORD_B
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1B); //0x01B - FLT_RECORD_GND_AVIN
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1C); //0x01C - FLT_RECORD_BG_Temp
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1D); //0x01D - FLT_RECORD_IntLDOs
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1E); //0x01E - FLT_RECORD_ExtLDOs
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x1F); //0x01F - FLT_RECORD_BUCKS_B
|
||||||
|
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x20); //0x020 - FLT_RECORD_BUCKS_A
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x21); //0x021 - FLT_RECORD_ExtINPs_7_0
|
||||||
|
PMIC_I2C_Read(ftHandle, PMIC_ADDR_PROTECTION, 0x2A); //0x02A - OTP_FLT_RECORD
|
||||||
}
|
}
|
||||||
|
|
||||||
// Manual Command
|
// Manual Command
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\vc143.pdb
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.obj
|
|
||||||
c:\work\src\0_tool\pmic_tool\x64\release\pmic_cmd_tool.exe
|
|
||||||
c:\work\src\0_tool\pmic_tool\x64\release\pmic_cmd_tool.pdb
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.ipdb
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.iobj
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.command.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.items.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.read.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\cl.write.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.command.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.read.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.secondary.1.tlog
|
|
||||||
c:\work\src\0_tool\pmic_tool\pmic_cmd_tool\x64\release\pmic_cmd_tool.tlog\link.write.1.tlog
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project>
|
|
||||||
<ProjectOutputs>
|
|
||||||
<ProjectOutput>
|
|
||||||
<FullPath>C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe</FullPath>
|
|
||||||
</ProjectOutput>
|
|
||||||
</ProjectOutputs>
|
|
||||||
<ContentFiles />
|
|
||||||
<SatelliteDlls />
|
|
||||||
<NonRecipeFileRefs />
|
|
||||||
</Project>
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
|||||||
PMIC_Cmd_Tool.cpp
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\include\ftd2xx.h(2072,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
|
|
||||||
(소스 파일 'src/PMIC_Cmd_Tool.cpp'을(를) 컴파일하는 중)
|
|
||||||
|
|
||||||
코드를 생성하고 있습니다.
|
|
||||||
2 of 14 functions (14.3%) were compiled, the rest were copied from previous compilation.
|
|
||||||
0 functions were new in current compilation
|
|
||||||
0 functions had inline decision re-evaluated but remain unchanged
|
|
||||||
코드를 생성했습니다.
|
|
||||||
PMIC_Cmd_Tool.vcxproj -> C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\dll\ftd2xx.dll
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\external\FT4222\dll\LibFT4222-64.dll
|
|
||||||
2개 파일이 복사되었습니다.
|
|
||||||
Creating backup at: "C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool_Build_History\20260402_1952"
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\ftd2xx.dll
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\LibFT4222-64.dll
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.exe
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\x64\Release\PMIC_Cmd_Tool.pdb
|
|
||||||
4개 파일이 복사되었습니다.
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\src\PMIC_Cmd_Tool.cpp;C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.obj
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
|
|
||||||
Release|x64|C:\Work\Src\0_Tool\PMIC_Tool\|
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
^C:\WORK\SRC\0_TOOL\PMIC_TOOL\PMIC_CMD_TOOL\X64\RELEASE\PMIC_CMD_TOOL.OBJ
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.IPDB
|
|
||||||
C:\Work\Src\0_Tool\PMIC_Tool\PMIC_Cmd_Tool\x64\Release\PMIC_Cmd_Tool.iobj
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user