Kraklog

[STM32] 커스텀 키보드 만들기 #2 본문

Study/개발(STM,RASP,ARDUINO)

[STM32] 커스텀 키보드 만들기 #2

Krakens 2023. 5. 9. 18:05
728x90
더보기

커스텀 키보드 만들기 #0 - https://krakens.tistory.com/145

커스텀 키보드 만들기 #1 - https://krakens.tistory.com/146

#2 회로도 작성
기본적인 회로의 골격은 다음과 같습니다.

1. STM32F411CEU6를 동작시킬 회로를 구성한다.
2. TP5100 (리튬 충전 모듈)의 자리를 마련, 배터리 관련 설계를 한다.
3. (추후 예정) 블루투스 키보드로 전환할 ESP32 위치 선정
4. 키보드 스위치 구성 및 연결




STM32F411CEU6 컨트롤러 외부에 크리스탈 발진기를 통해 100Mhz의 발진을 주려합니다. 
그러기위해 정확한 값을 계산할 필요가 있는데, 데이터시트를 통해 부품을 선정해주도록 합니다.

STM32F411CEU6 데이터시트

cd00221665-oscillator-design-guide-for-stm8afals-stm32-mcus-and-mpus-stmicroelectronics.pdf
3.04MB
stm32f411ce.pdf
2.13MB
Getting_started_with_STM32_MCU_hardware_development.pdf
1.05MB

 

필요한 부품을 선정했다면,Schematic을 작성합니다.
(https://stm32-base.org/boards/STM32F411CEU6-WeAct-Black-Pill-V2.0.html)

 

Black Pill 기판 구성

친절하게 보드 규격부터 schematic까지 공개되어 있습니다.

  • 회로도 작성
    회로도 작성이 가능한 유명한 프로그램들이 많습니다.
    그 중 Kicad를 사용해서 회로를 그려보도록 하겠습니다.
  • 프로그램 설치
    https://www.kicad.org/
 

KiCad EDA

A Cross Platform and Open Source Electronics Design Automation Suite

www.kicad.org

 

 

작성시작

설치 화면

프로젝트 이름을 작성해주고, 경로를 설정해줍니다. 
제 화면은 미리 그려놨기 때문에 다른 파일들이 보입니다, 저 화면 기준으로 이름.kicad_pcb,이름.kicad_sch이 보인다면 정확하게 생성한것입니다.

직접 MX switch의 심볼, 풋 프린트를 그리는 방법도 있고, Kicad내에 있는 라이브러리를 사용하는 방법도 있지만

https://github.com/ai03-2725/MX_Alps_Hybrid 

 

GitHub - ai03-2725/MX_Alps_Hybrid: KiCad Library of custom MX-Alps footprints

KiCad Library of custom MX-Alps footprints. Contribute to ai03-2725/MX_Alps_Hybrid development by creating an account on GitHub.

github.com

윗 링크에 걸려있는 라이브러리에는 핫스왑 심볼,  라이브러리도 포함되어있기 때문에 이걸 선택했습니다.

다운을 받아주시고 압축을 풀어줍니다.

설정에서 프로젝트별 심볼과 풋프린트를 지정해줘야 추가가 됩니다. (전역 라이브러리로 추가해도 되긴합니다.)

심볼 라이브러리는 각각들고온다면
풋프린트는 폴더내에서 읽어오는 차이가 있다고 할 수 있겠네요.

 

이제 회로도 편집기를 눌러 그리기를 시작해봅시다.

A 를 누르면 심볼 선택기 창이 열립니다.

검색을 통해 STM32F411CEU를 검색해주었습니다. (STM32시리즈 이름 명칭법이 있지만 여기선 설명하지 않겠습니다.)

선택 후 클릭을 하면 배치가 완료됩니다.
그 후 ESC를 통해 배치 상태에서 나오거나 
W : 와이어, P : 전원 관련  A:심볼 선택  더블클릭 : 편집 을 이용해서 배치 후 그려주면 됩니다. 

 

업데이트 할 수도 있겠지만 기본적인 black pill 회로 구성을 나름 해보았습니다.

 

2023-05-29 업데이트

전원부에 들어가는 전압레귤레이터를 AP2114로 교체했습니다.
리튬 배터리를 약 4.2V로 이용할 예정인데 AMS1117의 스펙상 맞지 않다고 생각해서 입니다.
(보통은 그냥 사용해도 크게 문제 없다고는 합니다만, 공부 목적도 있고, 데이터 시트를 지켜서 설계하고자 했습니다.)

기존에 있던 리셋 스위치, BOOT 스위치를 레오폴드 660에 후면에 위치한 DIP  스위치 포트를 이용하기로 했습니다.
Black Pill을 사용해보니 리셋의 경우 푸쉬 스위치가 확실히 편하지만, BOOT의 경우 DFU모드 진입까지 누르고 있는 경우가 많기도 했고, DIP 스위치를 통해 전원을 구현해도 괜찮다 싶었습니다.

SKB1 블루투스 모듈을 연결했습니다. 회로도상에서는 UART를 이용해서 연결되어 있지만 
GPIO 통신도 가능하기 때문에 바뀔 수 있습니다.
SWDIO에 ST-LINK를 이용해 펌웨어를 올릴 예정이기 때문에 연결해주었습니다. 
최초에는 C 타입을 통해 올려야겠다고 생각했지만 ST LINK를 연결해야했기 때문입니다. 

 


쇼트키 다이오드를 통해 연결해보려합니다.
부품의 개수가 줄어 납땜의 부담이 덜하다고 생각되기 때문입니다.
(ROW와 COL을 반대로 연결해도 되는데 출력신호를 COL에서 받아 ROW로 보낸다고 생각해서 이렇게 연결했습니다.
만약 ROW에서 신호가 나와 COL로 들어간다고 하면 쇼트키 다이오드의 방향을 바꿔줘야 된다고 생각되네요)



 

 

 

 

 

 

USB-C 를 구성하기 위해서 핀맵을 보면

24개의 핀을 구성해야 연결이 된다는걸 알 수 있습니다...
하지만 원하는 목표가 모든 핀의 동작이 아니기 때문에 

GND, VBUS, CC2, D-, D+ 가 전부 살아있는 USB - C 8핀 단자를 선택했습니다.

https://url.kr/md1av6

 

995.0₩ 10% OFF|USB 3.1 C타입 암 소켓 커넥터, 전원 인터페이스 충전 도크 소켓, 8 핀 SMT USB C 소켓, 잭

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

 

 

 

처음에 6핀을 구매했었는데.. 그건 그냥 전원 단자 핀만 있는 C타입이였습니다.
심볼과 땜을 위해서 데이터 시트가 필요했는데 판매자가 친절하게 보내주었습니다. 

아직 블루투스 모듈과 충전 모듈이 없지만, 이렇게만 구성해도 USB 키보드로 동작은 할 것입니다.

이 상태로 진행을 해보겠습니다. (추후 수정하겠지만요..)

 

전부 그려주었으니, 배선의 문제가 없다면 심볼을 할당해주어야 합니다.

자신이 생각하는 부품으로 잘 골라줍니다.

 

저는 납땜을 아마 히팅건으로 하지 않을까 싶지만... 

손납땜으로 해야 할 수 있어서.. 크기가 크지만 1206(inch)를 선택했습니다만... 최종적으로는 0402(mm)를 선택하지 않을 까 싶습니다.

mm inch
0201 008004
3015 009005
0402 01005
0603 0201
1005 0402
1608 0603
2012 0805
2520 1008
3216 1206
3225 1210

(빨간색은 인치와 mm가 같은 숫자입니다 조심해야합니다.)

 

문제없이 저장이 된다면 좋겠지만 풋프린트가 없는 경우에는 직접 그려주어야 합니다.

메뉴에서 풋프린트 생성, 삭제 및 편집에 들어가줍니다.

이런식으로 데이터시트의 규격에 맞춰서 풋프린트를 작성하고, 내보내기 후 라이브러리를 추가해주면 할당을 할 수 있을겁니다.

 

 


수정사항
1. 키 스위치 배열 변경
2. 핫스왑 제품을 게이트론으로 구매했기 때문에 그에 알맞는 풋프린트 작성

3. 레귤레이터 변경
    배터리를 사용하는 경우 TP4056 혹은 5V 2A 출력의 충전회로를 이용하려고 했는데 
    데이터 시트를 살펴보면 동작전원을 웃돌거나 하위에 있는 전압 혹은 전류이기 때문에 고장의 원인이 될 수 있고, 정상        동작이 가능하지 않게 될 수 있기에 LM317이나 LD1117S33TR로 바꿔볼까 하고 있습니다.

chatGPT

챗지피티를 믿어도 될지는 점검해봐야겠습니다.
  

4. 발진기 커패시터 변경

728x90