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)
{