라벨이 FT232H인 게시물 표시

FT232H eeprom programming 시리얼 넘버 변경 예제

이미지
이번 글은 ft232h의 eeprom에 저장된 데이터 중 시리얼 넘버를 수정하는 예제 소스를 싣고 있다.   FT232H에는 EEPROM이 들어있고, 이 EEPROM에는 USB 장치의 속성 정보들이 저장되어 있다. 우리가 윈도우에서 장치 관리자를 통해 USB 장치의 속성을 볼 때 나오는 그런 정보들이 들어있으며, EEPROM에 들어있는 정보는 "ftd2xx.h" 헤더 파일에는 아래와 같이 선언되어 있다. // // structure to hold program data for FT_EE_Program, FT_EE_ProgramEx, FT_EE_Read  // and FT_EE_ReadEx functions // typedef struct ft_program_data { DWORD Signature1; // Header - must be 0x00000000  DWORD Signature2; // Header - must be 0xffffffff DWORD Version; // Header - FT_PROGRAM_DATA version // 0 = original // 1 = FT2232 extensions // 2 = FT232R extensions // 3 = FT2232H extensions // 4 = FT4232H extensions // 5 = FT232H extensions WORD VendorId; // 0x0403 WORD ProductId; // 0x6001 char *Manufacturer; // "FTDI" char *ManufacturerId; // "FT" char *Description; // "USB ...

FT232H D2XX SPI Example Source

이미지
본 글은 visual studio c/c++로 구현한 ft232h spi 드라이버 예제를 싣고 있다.   이전 글 FT232H D2xx GPIO example 에서 FT232H에서 d2xx드라이버 다운로드 및 GPIO를 사용하는 예제를 살펴봤고, 이 글에서는 이전에 구현된 소스에서 SPI를 설정 부분과 데이터 전송 부분을 추가하여 구현하고 테스트했다. 이전 구현된 소스의 설명은 https://ryanclaire.blogspot.com/2020/06/ft232h-d2xx-gpio-example.html 을 참조하면 된다.  FT232H와 IC간의 SPI연결은 아래 그림과 같다. FT232는 Master Mode로 동작하고 테스트에 사용한 IC는 Slave Mode로 동작한다. SPI는 ADBUS0~3 핀을 사용하며, IC 리셋을 위해 별도의 GPIO하나도 사용한다.   구현된 CFT232H는 아래와 같다.  #include "ftd2xx.h" #define CLOCK_BYTES_OUT_NEG_EDGE_MSB_FIRST    0x11 #define CLOCK_BYTES_IN_POS_EDGE_MSB_FIRST     0x20 #define CLOCK_BYTES_IN_NEG_EDGE_MSB_FIRST     0x24 #define CLOCK_BYTES_IN_OUT_NEG_EDGE_MSB_FIRST 0x31 #define CLOCK_BITS_IN_OUT_NEG_EDGE_MSB_FIRST  0x33 #define CLOCK_BYTES_IN_OUT_POS_EDGE_MSB_FIRST 0x34 #define CLOCK_BITS_IN_OUT_POS_EDGE_MSB_FIRST  0x36 #define CLOCK_BYTES_IN_OUT_NEG_EDG...

FT232H D2xx GPIO example

이미지
본 글은 ft232h GPIO 컨트롤 예제 코드를 싣고 있다. FT232H는 USB2.0 Hi-Speed(480Mb/s) 단일 채널을 가지고 있으며, 컨트롤러의 MPSSE(Multi-Protocol Synchronous Serial Engine)설정에 따라 USB to JTAG, I2C, SPI(master mode) 등으로 사용할 수 있는 IC다. Datasheet에 나와 있는 칩의 블록 다이어그램은 아래 그림과 같다. 본 글에서는 ADBUS4~7, ACBUS0~9에 연결된 핀을 GPIO로 사용하는 예제를 구현할 예정이고, 다음 글에는 SPI 사용 예제를 구현할 예정이다.   GPIOL0~3, GPIOH0~7번은 MPSSE모드에서 사용 가능하며, GPIOH8~9는 ACBUS BitBang 모드에서 출력 컨트롤 가능하다. GPIOL0~3, GPIOH0~7을 MPSSE모드에서 사용하면, 다른 프로토콜과 같이 사용할 수 있다. 예를 들어 ADBUS0~3을 SPI 핀으로 사용시 나머지는 GPIO로 사용하여 칩 리셋이나 인터럽트용으로 사용할 수 있다. GPIOH8~9번은 컨트롤러 모드를 BitBang모드로 전환하여 사용해야 하기 때문에 다른 SPI등과 같이 사용하기에 약간의 불편함이 있다. (모드 전환 시 약간의 시간 딜레이가 있다.)   드라이버 및 D2XX lib 먼저, FT232H IC를 사용하기 위해서 드라이버를 다운로드해야 한다. 드라이버는 https://www.ftdichip.com/Drivers/D2XX.htm 에서 다운 받을 수 있으며, 원하는 플랫폼의 드라이버를 다운로드 하면 된다. 본 글의 예제에서는 windows용을 다운받아 사용했다. 다운로드...