'[INTERFACE]/USB'에 해당되는 글 38건

  1. 2018.03.22 USB KeyBoard Encoder 보드 제작
  2. 2017.12.01 USB 복합장치 제작
  3. 2017.01.21 USB 3.1 Type C 보드 제작기
  4. 2012.06.01 USB2RS232
  5. 2011.01.28 USB Bulk전송과 HID전송의 속도 차이
[INTERFACE]/USB2018. 3. 22. 02:04

USB KeyBoard Encoder 보드 제작

USB KeyBoard Encoder 보드 제작


USB Keyboard 로 동작하는 Encoder 보드를 제작했다.

5개의 키 값과 Encoder값을 입력 받아 처리 할수 있는 보드로 MCU는 ST사의 STM32F042를 적용하여 제작하였다.

HID composite device 로 인식해서 Key값을 실시간으로 변경 가능하다.


USB KeyBoard Encoder 보드 구성도



Key값은 HID Key Config 프로그램으로 재 설정 가능하다. HID 장시치로 인식해서 동작중 실시간으로 설정 가능하다.

키값는 Function Key(CTRL, ALT, SHIFT), Normal Key 에디트 창에서 키값을 입력하면 간단히 설정 가능하다.


Posted by nexp

댓글을 달아 주세요

[INTERFACE]/USB2017. 12. 1. 17:32

USB 복합장치 제작

USB HID 복합장치 제작 하려고 하고 있다.
15년전에 제작 했던 자료를 꺼내서 해 보려고 했더니 너무 옛날 보드라 관련 자료도 없고 개발환경도 너무나 달라져서 별로 도움이 되지 않는다.

예전에는 USB 시퀀스 잘 알고 있었는데... HID 키보드, 마우스, 조이스틱 (복합장치)등의 장치를 잘 다루었는데..
새로하려니 쉽지가 않다.

우선 기존에 잘 동작 하던 보드에 레포트 디스크립터만 수정하면 되지 않을까?
-> 잘안된다.



TI 자료가 잘 정리되어 있는것 같다.

디스크립터 툴도 제공한다. 우선 기존에 만들었던 TI MSP430F5510 EVM 보드로 테스트 해보자




수정된 디스크립터를 이용해서 컴파일 했는데...  Custom HID는 잡히는데 키보드는 인식을 하지 못한다.
이상하다.
키보드 디스크립터만 만들어서 테스트 해보자
여전히 안된다.

뭐가 문제 이지?
코드에 수정해야 할부분이 또 따로 있나?
되는 코드와 안되는 코드를 비교해보자.

PID 부분이 다르다. PID를 바꾸니 잘 동작한다.
#define USB_VID               0x2047    // Vendor ID (VID)
#define USB_PID               0x0315        // Product ID (PID)

PID가 바뀐다고 안될이유는 없는데...
기존 드라이버를 지워보자

장치관리자에서 드라이버를 삭제하고 새로인식하니 잘 동작한다.
처음에 디스크립터 바꾸면서 잘못된 드라이버가 로딩되면서 문제가 된것 같다.



장치관리자에서 키보드, 커스텀 HID 복합 장치가 등록 되는것을 확인 할 수 있다.







기존 키보드 예제로 테스트 하려고 했는데...
HID 수신이 안된다.

그래서 HID 예제로 테스트 했다.
USB_Cconfig 폴더 내용만 복사하면 된다.
G:\DOC\MCU\MSP430\MSP430USBDevelopersPackage_5_20_06_02\MSP430_USB_Software\MSP430_USB_API\examples\HH1_hidDemo2hidDemo

HID는 TI제공 프로그램을 이용했고 HID로 'a' 'b' 보내면 LED 온 오프하고 'c'보내면 1초뒤에 키 값을 전송하도록 했다.



기본틀은 구성 됬고 필요에 따라 수정만 하면 될것 같다. 

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/USB2017. 1. 21. 01:15

USB 3.1 Type C 보드 제작기

USB 3.1 Type C 보드 제작기





기존 USB 3.0 (micro-b 커넥터 )보드를 USB Type-C 커넥터로 변경해야 하는 일이 생겨서 보드 작업에 들어갔다.

단순히 커넥터만 바꾸기만 하면 될것으로 예상하고 시작 했는데... 관련문서를 보다 보니 만만치 않다.


우여곡절 끝에 성공은 시켰지만 처음 접하는 기술을 적용기에는 항상 고통이 따르는것 같다.



의뢰업체는 항상 급하게 빨리 만들어라고 한다. 

USB Type-C 핀맵을 보면 복잡하다. 도대체 커넥터에 어떻게 연결하라는 것이지?




커넥터 삽입 방향에 상관없도록 하기 위해 물리적으로 2중으로 구성되어 있다. 이것때문에 비용이 상승할 수 밖에 없는데.... 왜 그랬을까?







그럼 보드쪽에서는 어떻게 설계를 해야 할까?


USB Type-C 데이터 시트에 보면 두가지 연결 방법이 있다. 다양한 기능을 지원하기 위해 여러 방식이 지원 하는데 개발자 입장에서는 비용과 복잡함이 따를수 밖에 없는것 같다.



간단하고 저렴한 구성을 위해서 다이렉트 방식을 사용하기로 했다.






USB Type-C 설계에서 주의 해야 하는 사항중에 CC(Configurable Channel) 핀 설정이 있는데 이부분이 헷갈리고 중요하다.











Posted by nexp

댓글을 달아 주세요

[INTERFACE]/USB2012. 6. 1. 01:55

USB2RS232

 

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/USB2011. 1. 28. 16:30

USB Bulk전송과 HID전송의 속도 차이

USB Bulk전송과 HID전송의 속도 차이

USB Bulk와 HID속도가 1트랜잭션 전송시 2ms로 동일하게 나온다. 
노트북(2.2GHz  P8400) 에서 테스트 했는데 뭔가 좀 이상해서 테스크탑에서 테스트 해보았다.



3.4Ghz i7-270 에서 테스트 하니 속도차이가 확실하게 나타난다.
USB Bulk 전송시 1트랜잭션(64Byte)전송시 250us정도 걸린다.
HID 전송시 1트랜잭션 (63Byte) 전송시 1ms 정도 걸린다.

4배정도 차이가 난다. 아무래도 내부 dll 거치면서 속도가 느려지는것 같다.
Posted by nexp

댓글을 달아 주세요