[INTERFACE]/EZ-USB2011. 5. 8. 09:39

[FX2 EVM] HighSpeed USB Bulk 전송 테스트 - USB를 이용한 이미지 출력

[FX2 EVM] HighSpeed USB Bulk 전송 테스트 - USB를 이용한 이미지 출력

 

FX2는 USB2.0 Hispeed 를 지원하므로 TFT LCD에 이미지 출력하는 예제는 USB전송 속도 테스트 하기에 좋다.
USB Hispeed는 한번에 512Byte를 전송할 수 있으므로 확실히 속도차이를 볼 수 있다.
하지만 8051코어라 이미지 출력을 GPIO로 하다보니 전송속도는 빠르지만 TFT LCD출력이 느리다. 추후 GPIF나 BUS방식으로 LCD를 제어하면 좀더 빠른 속도를 볼수 있을것 같다.

USB로 이미지 전송 테스트 동영상




참고로 STM32를 이용하여 USB로 이미지 전송하는 예제와 비교하면 확실히 전송속도 차이를 확인할 수 있다.



Hispeed USB Bulk 이미지 전송 PC 프로그램

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/EZ-USB2011. 5. 6. 18:43

[FX2 EVM] CY7C68013 USB 벌크 전송 테스트

[FX2 EVM] CY7C68013 USB 벌크 전송 테스트



FX2 Ez-USB를 이용하여 USB Bulk전송 테스트를 해 보았다.

먼저 CY7C68013쪽 펌웨어 에서 TD_Pool() 함수를 수정하여 USB로 데이터를 수신하거나 전송할 수 있다.
아래 코드는 USB로 PC에서 받은 데이터를 처리하는 부분이다. 주석을 보면 쉽게 이해할 수 있다.
void TD_Poll(void)
{
 WORD i;
 WORD count;

 //EndPoint로 데이터가 들어오면
 if(!(EP2468STAT & bmEP2EMPTY))
 {
  //받은 데이터가 들어 있는 포인터의 주소를 Auto Buffer1로 할당한다.
  APTR1H = MSB( &EP2FIFOBUF );
  APTR1L = LSB( &EP2FIFOBUF );

  //내가 사용할 메모리의 주소를 Auto Buffer2에 할당
  AUTOPTRH2 = MSB( &Receive_Buffer );  
  AUTOPTRL2 = LSB( &Receive_Buffer ); 

  //전송된 데이터 수 저장
  count = (EP2BCH << 8) + EP2BCL;
  DebugPrint("EP2 read: Size=%d.\r\n", count);

  //내가 설정한 메모리로 저장
  for(i=0; i<count; i++)
  {
     EXTAUTODAT2 = EXTAUTODAT1; 
  }

  //데이터 처리
  PorcessUsbEP2(Receive_Buffer, count)

  SYNCDELAY;                   
  EP2BCL = 0x80;          // re(arm) EP2OUT
 }

:

//데이터 전송 처리




FX2 Ez-USB BULK테스트 PC프로그램



Cypress API를 이용하면 쉽게 PC프로그램을 작성할 수 있다.

API를 사용하려면 DDK가 필요하다.




FX2 USB BULK 테스트 프로그램 소스코드
void main(void)
{
 SystemInit();

 Led1Init();
 Led1Off();
 Led2Init();
 Led2Off();
 Led3Init();
 Led3Off();

 DebugInit(BAUD_38400);
 DebugPrint("FX2 EVM CY7C68013 USB BULK Test.\r\n");
 
 // Initialize user device
 TD_Init();

 EZ-USB_Init();

 while(TRUE)
 {
  // Poll User Device
  TD_Poll();
  EZ_USB_CtrlProcess();
 }
}



 

Posted by nexp
TAG CY7C68013, FX2, USB

댓글을 달아 주세요

[INTERFACE]/EZ-USB2011. 5. 1. 18:00

[FX2 EVM] Ez-USB CY7C68013 보드 제작

[FX2 EVM] Ez-USB CY7C68013 보드 제작


USB 2.0-USB-IF high speed 를 지원하는 Cypress사의 Ez-USB FX2 CY7C68013A 테스트 보드를 제작했다.

[M-Type EVM]   표준 핀맵으로 제작해 여러 테스트 보드에서 테스트 가능하도록 했다.




TFT LCD 확장 테스트 보드





[FX2 EVM] 회로도












Ez-USB FX2 테스트 동영상
LED제어 펌웨어 다운로드 하여 FX2 EVM 동작 테스트




[FX2 EVM] Hispeed USB Bulk 테스트


Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2011. 4. 11. 10:30

[CANTUS EVM] USB HID테스트 - USB로 센서 데이터 그래프에 표시

[CANTUS EVM] USB HID테스트 - USB로 센서 데이터 그래프에 표시


CANTUS는 저렴한 MCU임에 불구하고 USB기능이 있어 여러모로 사용할곳이 많은것 같다.
USB를 이용하여 3축 가속도 센서 데이터를 그래프로 표시하는 테스를 해 보았다. 기존 STM32를 이용하여 센서데이터를 USB로 전송하는 예제가 있어 쉽게 포팅할 수 있었다.

HID를 이용하면 드라이버필요 없이 USB에 연결할 수 있어 간단히 USB전송하기 좋다.

ADChip사에서 제공하는 USB API를 이용하면 아주 간단히  USB를 제어 할 수 있다. 깔끔하게 잘 동작한다.
하지만 라이브러이 형태이기 때문에 수정이나 다른 프로젝트에 계속 추가 하기가 쉽지 않아 사용자 처리 부분은 빼내서 처리했다.

그리고 한가지더.. 엔드포인트 수가 적고, 특히 64Byte 엔드포인트는 2개밖에 없다.



USB초기화 부분
 //USB초기화
 //-------------------------------------------
 setinterrupt(INTNUM_USB,usb_irq_f);
 EnableInterrupt(INTNUM_USB,TRUE);
 
 //USB Enable
 Sbi(*R_PAF5, (3<<(2*7)));
    Sbi(*R_P5oDIR, BIT7);
    Sbi(*R_P5oLOW, BIT7);
    Delay(100);
 
 usb_set_description(USB_Configuration_Descriptor,USB_Device_Descriptor,HID_ReportDescriptor,USB_StringDescriptor);
    usb_init();
 //-------------------------------------------



가속도 센서 데이터 수집 및 USB전송 코드
 while(1)
 {
  GetAccelValue(AXIS_X, &data);
  data = 0xFFF&data;
  
  gUsbTxBuffer[0] = data;
  gUsbTxBuffer[1] = data>>8;
  
  GetAccelValue(AXIS_Y, &data);
  data = 0xFFF&data;
  
  gUsbTxBuffer[2] = data;
  gUsbTxBuffer[3] = data>>8;
  
  GetAccelValue(AXIS_Z, &data);
  data = 0xFFF&data;
  
  gUsbTxBuffer[4] = data;
  gUsbTxBuffer[5] = data>>8; 
  
  //USB로 센서 데이터 전송
  SendtoUsb(gUsbTxBuffer, sizeof(gUsbTxBuffer));
  
  Delay(4);
 }


CANTUS USB전송 테스트 동영상
USB HID로 3축 가속도 센서데이터를 전송하고 그래프로 표시하는 예제

Posted by nexp

댓글을 달아 주세요

  1. 파파존스

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.04.19 18:35 [ ADDR : EDIT/ DEL : REPLY ]

[SENSOR]/Sensor2011. 2. 19. 14:27

ECG 테스트 - USB 데이터 전송 및 그래프 표시 테스트 (USB HID이용)

ECG 테스트 - USB 데이터 전송 및 그래프 표시 테스트



프로젝트 용으로 만들었던 USB로 ADC데이터를 그래프로 출력하는 보드를 이용해서 ECG데이터 수집 테스트를 진행 했다.
정밀 16비트 ADC ad8320을 이용하기 때문에 데이터는 깨끗하게 출력되는것 같다. 몇가지 파라메터만 간단히 변경해서 출력 데이터 확인 했다.

ECG 출력 PC프로그램



ECG 테스트 동영상


Posted by nexp
TAG AD8320, ECG, HID, USB

댓글을 달아 주세요