diff --git a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/FileContentIndex/a6cbf121-3413-4a05-b43b-fcee4cc2235d.vsidx b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/FileContentIndex/a6cbf121-3413-4a05-b43b-fcee4cc2235d.vsidx deleted file mode 100644 index cc429128..00000000 Binary files a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/FileContentIndex/a6cbf121-3413-4a05-b43b-fcee4cc2235d.vsidx and /dev/null differ diff --git a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/.suo b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/.suo index 0f05449f..d72aaf75 100644 Binary files a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/.suo and b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/.suo differ diff --git a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/Browse.VC.db b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/Browse.VC.db index e10311e5..f8dae39f 100644 Binary files a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/Browse.VC.db and b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/Browse.VC.db differ diff --git a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/DocumentLayout.json b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/DocumentLayout.json index 7fd6e89a..e40ece26 100644 --- a/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/DocumentLayout.json +++ b/Src/0_Tool/PMIC_Tool/.vs/PMIC_Tool/v17/DocumentLayout.json @@ -1,10 +1,14 @@ { "Version": 1, - "WorkspaceRootPath": "C:\\Work\\3_Src\\0_Tool\\PMIC_Tool\\", + "WorkspaceRootPath": "C:\\Work\\Src\\0_Tool\\PMIC_Tool\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|C:\\Work\\3_Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}", - "RelativeMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|solutionrelative:PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}" + "AbsoluteMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|C:\\WORK\\SRC\\0_TOOL\\PMIC_TOOL\\PMIC_CMD_TOOL\\EXTERNAL\\FT4222\\INCLUDE\\FTD2XX.H||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}", + "RelativeMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|solutionrelative:PMIC_CMD_TOOL\\EXTERNAL\\FT4222\\INCLUDE\\FTD2XX.H||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}" + }, + { + "AbsoluteMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|C:\\Work\\Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}", + "RelativeMoniker": "D:0:0:{C5541CC8-518C-4E1A-A6A8-CB37F56E9558}|PMIC_Cmd_Tool\\PMIC_Cmd_Tool.vcxproj|solutionrelative:PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}" } ], "DocumentGroupContainers": [ @@ -19,19 +23,28 @@ { "$type": "Document", "DocumentIndex": 0, - "Title": "PMIC_Cmd_Tool.cpp", - "DocumentMoniker": "C:\\Work\\3_Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp", - "RelativeDocumentMoniker": "PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp", - "ToolTip": "C:\\Work\\3_Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp", - "RelativeToolTip": "PMIC_Cmd_Tool\\PMIC_Cmd_Tool.cpp", - "ViewState": "AgIAAK4AAAAAAAAAAAAAALQAAAAKAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|", - "WhenOpened": "2025-12-19T05:26:16.228Z", + "Title": "ftd2xx.h", + "DocumentMoniker": "C:\\Work\\Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\external\\FT4222\\include\\ftd2xx.h", + "RelativeDocumentMoniker": "PMIC_Cmd_Tool\\external\\FT4222\\include\\ftd2xx.h", + "ToolTip": "C:\\Work\\Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\external\\FT4222\\include\\ftd2xx.h", + "RelativeToolTip": "PMIC_Cmd_Tool\\external\\FT4222\\include\\ftd2xx.h", + "ViewState": "AgIAACoAAAAAAAAAAAAAAHQBAAAdAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|", + "WhenOpened": "2026-01-16T02:48:28.794Z", "EditorCaption": "" }, { - "$type": "Bookmark", - "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" + "$type": "Document", + "DocumentIndex": 1, + "Title": "PMIC_Cmd_Tool.cpp", + "DocumentMoniker": "C:\\Work\\Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp", + "RelativeDocumentMoniker": "PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp", + "ToolTip": "C:\\Work\\Src\\0_Tool\\PMIC_Tool\\PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp", + "RelativeToolTip": "PMIC_Cmd_Tool\\src\\PMIC_Cmd_Tool.cpp", + "ViewState": "AgIAAAwAAAAAAAAAAAAhwCEAAAAGAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|", + "WhenOpened": "2026-01-16T02:11:14.724Z", + "EditorCaption": "" } ] } diff --git a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj index 4b30553d..6902adb3 100644 --- a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj +++ b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj @@ -116,21 +116,26 @@ true NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - .\include;%(AdditionalIncludeDirectories) + $(ProjectDir)include;$(ProjectDir)external\FT4222\include;%(AdditionalIncludeDirectories) Console true - .\lib;%(AdditionalLibraryDirectories) - $(CoreLibraryDependencies);%(AdditionalDependencies);ftd2xx.lib;LibFT4222-64.lib + $(ProjectDir)external\FT4222\lib;%(AdditionalLibraryDirectories) + $(CoreLibraryDependencies);%(AdditionalDependencies);LibFT4222-64.lib;ftd2xx.lib + LibFT4222-64.dll;%(DelayLoadDLLs) - copy "$(ProjectDir)dll\ftd2xx.dll" "$(OutDir)" -copy "$(ProjectDir)dll\LibFT4222-64.dll" "$(OutDir)" + if not exist "$(OutDir)dll" mkdir "$(OutDir)dll" +xcopy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)dll\" + - + + + + diff --git a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj.filters b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj.filters index 67d7b1b3..a3622f56 100644 --- a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj.filters +++ b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/PMIC_Cmd_Tool.vcxproj.filters @@ -15,7 +15,12 @@ - + + 헤더 파일 + + + + 소스 파일 diff --git a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/src/PMIC_Cmd_Tool.cpp b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/src/PMIC_Cmd_Tool.cpp index 69eda605..e536fa78 100644 --- a/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/src/PMIC_Cmd_Tool.cpp +++ b/Src/0_Tool/PMIC_Tool/PMIC_Cmd_Tool/src/PMIC_Cmd_Tool.cpp @@ -20,6 +20,7 @@ #include "PMIC_Reg_Map.h" // Function Prototypes +FT_HANDLE InitializeFT4222(); void currentTime(char* buf, size_t len); void logPacket(const char* dir, uint8_t* data, int size, int hasCrc); uint8_t calcCRC8(uint8_t addrWithRw, uint8_t* data, int len); @@ -29,16 +30,8 @@ void PMIC_I2C_Read(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr); int main() { - // 1. DLL 탐색 경로에 하위 폴더 'dll' 추가 - // 이 설정은 이 함수 호출 이후에 로드되는 모든 DLL에 적용됩니다. - if (!SetDllDirectoryA("./dll")) { - printf("DLL 경로 설정 실패 (에러 코드: %lu)\n", GetLastError()); - return -1; - } - - printf("PMIC I2C Packet Logger with FT4222\n \n"); - - char addrInput[16]; + FT4222_STATUS ft4222Status; + //char addrInput[16]; unsigned int tempAddr = 0; uint8_t I2C_SLAVE_ADDR = 0; unsigned long log_counter = 0; @@ -49,6 +42,20 @@ int main() //printf("현재 시간: %s\n", timeStr); + // 1. DLL 탐색 경로에 하위 폴더 'dll' 추가 + // 이 설정은 이 함수 호출 이후에 로드되는 모든 DLL에 적용됩니다. + if (!SetDllDirectoryA("./dll")) { + printf("DLL 경로 설정 실패 (에러 코드: %lu)\n", GetLastError()); + return -1; + } + + // 2. FT4222 장치 연결 및 초기화 + FT_HANDLE ftHandle = InitializeFT4222(); + if (!ftHandle) { + return -1; // 초기화 실패 시 프로그램 종료 + } + + printf("PMIC I2C Packet Logger with FT4222\n \n"); #if 0 printf("I2C Address\n Regulation Register is 0x54\n Protection Register is 0x55\n \nEnter 7-bit I2C Slave Address (hex): "); @@ -73,6 +80,7 @@ int main() printf("Read Regulation 0x54, Page 0x02, Address 0x23 : 0x66 이면 OK\n "); +#if 0 FT_HANDLE ftHandle = NULL; FT_STATUS ftStatus; DWORD numDevs = 0; @@ -95,6 +103,7 @@ int main() FT_Close(ftHandle); return -1; } +#endif /* Fault register data: Protection Register, Address 0x010 ~0x014, 0x019 ~0x021 0x010 - FUSA_STATUS_1 @@ -156,7 +165,7 @@ int main() //Sleep(30); printf("실행하려면 Enter 키를 누르세요...\n"); - getchar(); + (void)getchar(); //Regulation Register // Page00 @@ -398,6 +407,31 @@ int main() return 0; } +FT_HANDLE InitializeFT4222() { + FT_HANDLE handle = NULL; + DWORD numDevs = 0; + + // 연결된 장치 리스트 확인 + if (FT_CreateDeviceInfoList(&numDevs) != FT_OK || numDevs == 0) { + printf("오류: 연결된 FT4222 장치를 찾을 수 없습니다.\n"); + return NULL; + } + + // 0번 인덱스 장치 열기 + if (FT_Open(0, &handle) != FT_OK) { + printf("오류: 장치를 열 수 없습니다.\n"); + return NULL; + } + + // I2C 마스터 모드 초기화 (400kHz 주파수 설정) + if (FT4222_I2CMaster_Init(handle, 400) != FT4222_OK) { + printf("오류: I2C 마스터 초기화 실패.\n"); + FT_Close(handle); + return NULL; + } + return handle; +} + // 현재 시간을 "HH:MM:SS" 형식으로 buf에 저장 void currentTime(char* buf, size_t len) {