반응형

 

 

Cy;press EZ USB FX3 kit (Superspeed Explorer kit)

Control transfer test.

 

예제의 소스를 보면 구조가 비슷하다.

그러나 control transfer 부분을 Thread 에서 처리한 것도 있고 Callback 에서 처리한 것도 있다.

아래는 GpifToUsb 예제 소스에서 수정하여 테스트 해 보았다.

 

1. Control out

 

CyFxAppInUSBSetupCB 함수에서.

 

 

 

위 부분에 아래와 같이 Vendor command 추가.

디버그 포트로 간단히 출력만 한다.

반드시 CyU3PUsbAckSetup(); 을 해 주어야 정상적으로 전송 완료 된다.

USB Control Center 에서

인식된 디바이스의 Control endpoint (0x00)을 선택 

Bytes to transfer를 0, Direction : out, Req code : 0xAA, Req type : Vendor

나머지는 기본으로 두고 Transfer Data button.

'Zero-length data transfer completed' 가 표시된다.

 

 

이렇게 하면 Debug UART로 문자가 출력되는 것이 나온다.

참고) Debug UART의 default 설정은 115200 bps.

 

 

 

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211117 PuTTy 재시작  (0) 2021.11.17
211116 Lattice Diamond NODE-locked license  (0) 2021.11.16
211112 무료 Hex editor HxD  (0) 2021.11.12
211105 Cypress EZ USB GPIO 1  (0) 2021.11.05
211026 Lattice Diamond 설치  (0) 2021.10.27
반응형

 

 

 

Cypress CYUSB3014 FX3

Superspeed explorer kit

 

Win10 에 driver 설치.

연결하면 드라이버가 제대로 잡히지 않는다.

Cypress site 에서 SuperSpeedExplorerKitSetup 프로그램을 다운로드 받고 설치한다.

 

 

장치관리자에서 잘 못 인식된 장치의 드라이버 업데이트를 선택한다.

경로를 설정해서 찾도록 위치를 아래와 같이 지정해 준다.

 

 

 

정상적으로 설치가 완료되었다.

이제 제대로 인식된다.

 

 

Kit의 debug port를 연결하면 아래와 같이 3가지 장치가 추가로 더 인식된다.

  Vendor1

  Vendor MFG

  USB Serial Port

참고 소스를 보면 디버깅용 USB serial port는 115200 bps 로 설정되어 있다.

 

 

 

 

 

 

728x90
반응형
반응형

 

 

 

 

 

Cypress EZ USB kit GPIO 설정.

Superspeed explorer kit

 

CyU3PIoMatrixConfig_t io_cfg;

/* Configure the IO matrix for the device. On the FX3 DVK board,
 * the COM port is connected to the IO(53:56). This means that
 * either DQ32 mode should be selected or lppMode should be set
 * to UART_ONLY. Here we are choosing UART_ONLY configuration. */
CyU3PMemSet ((uint8_t *)&io_cfg, 0, sizeof(io_cfg));
io_cfg.isDQ32Bit = CyFalse;
io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;
io_cfg.useUart   = CyTrue;
io_cfg.useI2C    = CyFalse;
io_cfg.useI2S    = CyFalse;
io_cfg.useSpi    = CyFalse;
io_cfg.lppMode   = CY_U3P_IO_MATRIX_LPP_UART_ONLY;

/* GPIO 45 is used as input pin. GPIO 21 is also used but cannot
 * be selected here as it is part of the GPIF IOs (CTL4). Since
 * this IO is not used, it can be overridden to become a GPIO by
 * invoking the CyU3PDeviceGpioOverride call. */
io_cfg.gpioSimpleEn[0]  = 0;
io_cfg.gpioSimpleEn[1]  = 0x00001000; /* GPIO 44 */
//io_cfg.gpioSimpleEn[1]  = 0x00002000; /* GPIO 45 */
//io_cfg.gpioSimpleEn[1]  = 0x00003000; /* GPIO 44 & 45 */
io_cfg.gpioComplexEn[0] = 0;
io_cfg.gpioComplexEn[1] = 0;
status = CyU3PDeviceConfigureIOMatrix (&io_cfg);
if (status != CY_U3P_SUCCESS)
{
    goto handle_fatal_error;
}

 

io_cfg.gpioSimpleEn[0], [1] 으로 Gpio로 사용할 포트 설정.

 

위 레지스터 내용은 io_cfg.gpioSimpleEn[1] 의 하위 부분이다.

 

0x00001000 중 0x1000 => 0b0001/0000/0000/0000 이므로 위 표에서 b44 만 GPIO 로 설정한다.

 

Reference) Technicsl reference manual

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

211115 Cypress EZ USB Control transfer out  (0) 2021.11.15
211112 무료 Hex editor HxD  (0) 2021.11.12
211026 Lattice Diamond 설치  (0) 2021.10.27
210814 NUCLEO-F746ZG UDP Server  (0) 2021.08.19
210817 이탈리아형 전원 어뎁터  (0) 2021.08.18

+ Recent posts