728x90
반응형
맨 위로 올라가기
USB 통신 위한 데이터시트 참고.

 

Nucleo 개발 보드를 사용하려고 하지만, USB 포트가 따로 존재하지 않아 직접 USB 하드웨어를 구성해야 한다.

 

해당 보드의 데이터 시트 중 USB 관련 내용을 확인.

 

해당 보드의 데이터 시트 중 위의 내용은 USB OTG(On-The-Go) Full Speed(FS) 모드의 전기적 특성에 대한 내용이다.
이 내용을 통해 USB OTG FS 인터페이스의 동작과 관련된 전압 및 저항 수준, 입력 및 출력 레벨 등의 전기적인 파라미터에 대해 알 수 있다.

모든 내용에 대해 세세히 알 필요는 없고, 다음의 내용만 참고하면 된다.

 

  1. 전원 공급(V_DD):
    마이크로 컨트롤러에 적절한 전압을 공급해야 하는데, 작동 전압은 3.0-3.6V이니 3.3V 적절하다.

  2. 풀업 저항(R_PU):
    USB D+ 라인에 적절한 풀업 저항을 연결해야 한다.
    일반적으로는 1.5K옴 저항을 사용해서 3.3V로 풀업하게 된다.
    이는 USB 장치가 연결됨을 호스트에 알리는 데 필요하다.

  3. 풀다운 저항(R_PD):
    USB 데이터 라인에 풀다운 저항을 추가할 필요가 있을 경우에는,
    이를 통해 라인의 초기 상태를 낮은 전압 레벨로 유지할 수 있다.
    데이터 시트에 따르면, 17K옴-24K옴 범위의 저항을 사용할 수 있다.

  4. 출력 레벨(V_OL, V_OH):
    USB 신호의 높은(OH) 및 낮은(OL) 레벨은 USB 통신에 필요한 신호 무결성을 보장하는 데 중요하다.

  5. 추가적인 보호 회로:
    데이터 라인에 직렬로 추가되는 소형 저항(22옴)은 신호 무결성을 보호하고, ESD(정전기 방전) 보호 다이오드는
    회로의 불필요한 전압 스파이크로부터 보호할 수 있다.

 

하드웨어 구성 절차.

 

  1. USB 커넥터 준비:
    마이크로 USB 또는 일반 USB 커넥터를 준비한다.

  2. D+ 및 D- 라인 연결:
    해당 USB 커넥터의 D+ 및 D- 핀을 마이크로컨트롤러의 GPIO 핀에 연결한다.
    이 GPIO 핀은 CubeMX에서 USB_OTG_FS로 설정해야 한다.

  3. Pull-Up 저항 설치:
    D+ 라인에 1.5K옴 풀업 저항을 설치하여 3.3V 에 연결한다.
    이를 통해 호스트 컴퓨터가 USB 장치를 인식할 수 있다.

  4. 보호 저항 및 다이오드 설치:
    데이터 라인에 직렬로 보호 저항을 추가하고, 필요한 경우 ESD 보호 다이오드를 설치한다.

  5. 전원 공급확인:
    USB 장치에 필요 전원을 확인하고, 필요한 경우 외부 전원 공급 장치를 설계한다.

  6. 테스트:
    모든 연결 완료 후, 하드웨어를 테스트하여 USB CDC 통신이 제대로 작동되는지 확인한다.

 


USB Type-C 하드웨어 제작

 

 

USB-Type C Connector(F) Soldering.

 

각 VCC, D+, D-, GND 접합부에 점퍼선을 솔더링해주었다.
멀티미터로 측정해보았을 때, 정상적으로 동작함을 확인하였다.

1KΩ + 220Ω + 220Ω = 1.44KΩ


Pull-Up 용도로 권장하는 1.5KΩ 에는 미달되지만, 가능한 범위 내로 저항 값을 맞추었다.

 

10Ω + 10Ω = 20Ω(DP, DM)

 


각 Data Plus, Minus 선으로 노이즈 방지를 위해 10Ω을 직렬로 2개 붙여 각 점퍼선에 확장 배선하였다.

 

 

 

Data Plus선은 병렬 처리되어, 나머지 하나는 Host에게 USB 인식을 알리는 용도로 알맞은 Header Pin에 배선하였다.

 

기본 펌웨어 작성 후 USB CDC를 사용하기 위해, 추가적으로 가상 컴포트 미들웨어를 활용하여,
관련 드라이버 코드를 임시로 작성하였으나, 프로그래머로 다운로드 받고 Coolterm을 활용하여 데이터 송신을 확인해 보았다.

하지만 데이터 송신은 먹통이었고, 그러던 중 한가지 추가적인 사실을 알게되었다.
해당 USB Connector는 Type-C로 사용하였고, C 타입 단자를 사용할 경우에는, 추가로 배선이 필요하다는 것이다.
내용은 USB 장치(Device_Only)를 인식하는 단자인 CC1과 CC2를 USB 2.0 규격에 맞춰 Pull-down해주어야 한다는 것이다.
그러지 않으면 PC에서 VCP가 인식되지 않는다고 한다.

 

추가적으로 CC 단자를 Pull-down으로 구성해줘야 한다.(C 타입 사용시)

 

그렇지만 문제는 현재 사용하는 Connector에는 CC 단자가 존재하지 않는다.
관련해서 찾아보니 알리에서 저렴하게는 구매하나,

배송 기간이 너무 길어 애당초 테스트해보려고 했던 프로젝트는 Black Pill 보드를 활용해야 할 것 같다.

 

 

그러던 중 유튜브에서 Nucleo 보드를 활용해서 USB CDC를 사용하는 영상을 보게 되었는데,
USB C 타입이 아닌 A 타입으로 간단히 VCC, D+, D-, GND 만 USB 와이어에 각 결선을 시켜주고 사용하는 것을 보았다.

 

화질이 좋지 않아, 정확히 어떻게 되었는지는 모르겠으나 그냥 쉽게 했다는
질문의 답변이 있어서 A 타입으로 다시 만들어 테스트를 시도해 보았다.


USB Type-A 하드웨어 제작

 

 

 

위와 같이 기존의 USB 선을 잘라 점퍼선(F)에 이어주어 확인해 보았다.

 

마찬가지로 Coolterm 으로 확인 시 데이터 송신이 되지 않는다.

드라이버 코드에는 문제가 없는 것이 F401CCU6으로 시도했을 때는 아주 잘 정상 작동되었다.

728x90
반응형

+ Recent posts