안녕하세요. 조시형이라고합니다.
저도 FT2232H 라는 USB 인터페이스 칩으로 이것저것 해 보고 있는데, 제가 VC++를 잘못 쓰기 때문에, VB로 진행중입니다.
FTDI 사에서 제공하는 Sample 프로그램으로 I2C Write나 SPI Write 같은 것을 해 보려고 하는데, 이게 문제가 좀 되네요.

Private Declare Function I2C_Write Lib "ftci2c" (ByVal ftHandle As Long, _
                                                    ByRef WriteControlBuffer As Any, _
                                                    ByVal NumControlBytesToWrite As Long, _
                                                    ByVal bControlAcknowledge As Boolean, _
                                                    ByVal NumControlAckTimeoutmSecs As Long, _
                                                    ByVal bStopCondition As Boolean, _
                                                    ByVal DataWriteTypes As Long, _
                                                    ByRef WriteDataBuffer As Any, _
                                                    ByVal NumDataBytesToWrite As Long, _
                                                    ByVal bDataAcknowledge As Boolean, _
                                                    ByVal NumDataAckTimeoutmSecs As Long, _
                                                    ByRef pPageWriteData As FTC_PAGE_WRITE_DATA) As Long

여기서  ByRef WriteControlBuffer As Any,  이 부분에 Device Address 뿐만 아니라 External 제어 정보가 들어 가야 하는데요.
가장 좋은 예로 EEPROM을 외부에 달았을 경우, Device Address와 데이터를 저장할 Address 등의 데이터가 들어 가야 하는데,
실제 Sample Code에서는
            ftStatus = I2C_Write(ftHandle, _
                                    WriteControlBuffer(0), _
                                    3, _
                                    True, _
                                    20, _
                                    True, _
                                    DataWriteType, _
                                    WriteDataBuffer(0), _
                                    NumDataBytesToWrite, _
                                    True, _
                                    20, _
                                    PageWriteData)
위에 나타낸 것처럼 Array 의 첫번째 값( WriteControlBuffer(0) )만 넣도록 되어 있습니다.
C로 된 Sample Code를 보면 저 부분에 Pointer를 반환해서 제대로 동작하는데, VB로는 제대로 동작하지 않네요.
혹시 이 부분 어떻게 수정해야 되는지 아시는 지요?