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 d72aaf75..58e60b41 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 f8dae39f..d48d47b3 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 e40ece26..c4fabb9d 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 @@ -2,10 +2,6 @@ "Version": 1, "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\\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}" @@ -23,25 +19,12 @@ { "$type": "Document", "DocumentIndex": 0, - "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": "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==", + "ViewState": "AgIAAEUAAAAAAAAAAADwv1IAAAAkAAAAAAAAAA==", "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 6902adb3..c730c8b1 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 @@ -121,13 +121,17 @@ Console true - $(ProjectDir)external\FT4222\lib;%(AdditionalLibraryDirectories) + $(ProjectDir)external\FT4222\lib\;%(AdditionalLibraryDirectories) $(CoreLibraryDependencies);%(AdditionalDependencies);LibFT4222-64.lib;ftd2xx.lib - LibFT4222-64.dll;%(DelayLoadDLLs) + + - if not exist "$(OutDir)dll" mkdir "$(OutDir)dll" -xcopy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)dll\" + copy /y "$(ProjectDir)external\FT4222\dll\*.dll" "$(OutDir)" + + + + 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 e536fa78..4c656fdf 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 @@ -35,75 +35,21 @@ int main() unsigned int tempAddr = 0; uint8_t I2C_SLAVE_ADDR = 0; unsigned long log_counter = 0; - - char timeStr[16]; // 시간을 저장할 버퍼 (HH:MM:SS면 9바이트면 충분) + char timeStr[16]; // 시간을 저장할 버퍼 (HH:MM:SS면 9바이트면 충분) currentTime(timeStr, sizeof(timeStr)); - //printf("현재 시간: %s\n", timeStr); - // 1. DLL 탐색 경로에 하위 폴더 'dll' 추가 - // 이 설정은 이 함수 호출 이후에 로드되는 모든 DLL에 적용됩니다. - if (!SetDllDirectoryA("./dll")) { - printf("DLL 경로 설정 실패 (에러 코드: %lu)\n", GetLastError()); - return -1; - } - - // 2. FT4222 장치 연결 및 초기화 + // 1. FT4222 장치 연결 및 초기화 FT_HANDLE ftHandle = InitializeFT4222(); - if (!ftHandle) { - return -1; // 초기화 실패 시 프로그램 종료 - } - + 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): "); - if (scanf_s("%15s", addrInput, (unsigned)_countof(addrInput)) != 1) { - printf("입력 오류\n"); - return -1; - } - if (sscanf_s(addrInput, "%x", &tempAddr) != 1) { - printf("잘못된 주소 입력\n"); - return -1; - } - I2C_SLAVE_ADDR = (uint8_t)tempAddr; - - printf("슬레이브 주소 설정됨: 0x%02X\n", I2C_SLAVE_ADDR); - - getchar(); // 버퍼 클리어 - - printf("사용법: I2C_WRITE 또는 w \n"); - printf(" I2C_READ (항상 2바이트 읽음) 또는 r\n"); - printf("exit 또틑 e 입력 시 종료\n"); -#endif - - printf("Read Regulation 0x54, Page 0x02, Address 0x23 : 0x66 이면 OK\n "); - -#if 0 - FT_HANDLE ftHandle = NULL; - FT_STATUS ftStatus; - DWORD numDevs = 0; - - ftStatus = FT_CreateDeviceInfoList(&numDevs); - if (ftStatus != FT_OK || numDevs == 0) { - printf("FT4222 장치를 찾을 수 없습니다.\n"); - return -1; - } - - ftStatus = FT_Open(0, &ftHandle); - if (ftStatus != FT_OK) { - printf("FT4222 장치 열기 실패\n"); - return -1; - } - - FT4222_STATUS ft4222Status = FT4222_I2CMaster_Init(ftHandle, 400); // 400kHz - if (ft4222Status != FT4222_OK) { - printf("I2C Master 초기화 실패\n"); - FT_Close(ftHandle); - return -1; - } -#endif + // 2. 초기화 상태 확인 with + //printf("Read Regulation 0x54, Page 0x02, Address 0x23 : 0x66 이면 OTP26.66\n "); + //PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGU, 0x00, 0x02); + //PMIC_I2C_Write(ftHandle, PMIC_ADDR_REGU, 0x00, 0x02); + //PMIC_I2C_Read(ftHandle, PMIC_ADDR_REGU, 0x23); /* Fault register data: Protection Register, Address 0x010 ~0x014, 0x019 ~0x021 0x010 - FUSA_STATUS_1 @@ -141,7 +87,7 @@ int main() /******************************************************************************************** I2C Write PMIC_I2C_Write(FT_HANDLE ftHandle, uint8_t slaveAddr, uint8_t regAddr, uint8_t value) - PMIC_I2C_Write(ftHandle, PMIC_I2C_SLAVE_ADDR, 0xAA, 0xBB); + PMIC_I2C_Write(ftHandle, PMIC_I2C_SLAVE_ADDR, PMIC_Register_Address, Value); ********************************************************************************************/ //printf("=================================================================================\n"); /******************************************************************************************** @@ -290,6 +236,31 @@ int main() //Protection Register #endif + + + + +#if 0 + printf("I2C Address\n Regulation Register is 0x54\n Protection Register is 0x55\n \nEnter 7-bit I2C Slave Address (hex): "); + if (scanf_s("%15s", addrInput, (unsigned)_countof(addrInput)) != 1) { + printf("입력 오류\n"); + return -1; + } + if (sscanf_s(addrInput, "%x", &tempAddr) != 1) { + printf("잘못된 주소 입력\n"); + return -1; + } + I2C_SLAVE_ADDR = (uint8_t)tempAddr; + + printf("슬레이브 주소 설정됨: 0x%02X\n", I2C_SLAVE_ADDR); + + getchar(); // 버퍼 클리어 + + printf("사용법: I2C_WRITE 또는 w \n"); + printf(" I2C_READ (항상 2바이트 읽음) 또는 r\n"); + printf("exit 또틑 e 입력 시 종료\n"); +#endif + char line[256]; while (1) { printf("> "); @@ -430,6 +401,30 @@ FT_HANDLE InitializeFT4222() { return NULL; } return handle; +#if 0 + FT_HANDLE ftHandle = NULL; + FT_STATUS ftStatus; + DWORD numDevs = 0; + + ftStatus = FT_CreateDeviceInfoList(&numDevs); + if (ftStatus != FT_OK || numDevs == 0) { + printf("FT4222 장치를 찾을 수 없습니다.\n"); + return -1; + } + + ftStatus = FT_Open(0, &ftHandle); + if (ftStatus != FT_OK) { + printf("FT4222 장치 열기 실패\n"); + return -1; + } + + FT4222_STATUS ft4222Status = FT4222_I2CMaster_Init(ftHandle, 400); // 400kHz + if (ft4222Status != FT4222_OK) { + printf("I2C Master 초기화 실패\n"); + FT_Close(ftHandle); + return -1; + } +#endif } // 현재 시간을 "HH:MM:SS" 형식으로 buf에 저장