http://mcus.tistory.com/30에서 avr로 제어했던 그래픽 lcd입니다.
STM32F103C8T6와 연결한 상태를 표로 제시합니다.
MGG-19264 |
STM32F103C8T6 |
MGG-19264 |
STM32F103C8T6 | ||||
Pin No |
Function |
Pin No |
Function |
Pin No |
Function |
Pin No |
Function |
1 |
DB7 |
17 |
PA7 |
11 |
RS |
41 |
PB5 |
2 |
DB6 |
16 |
PA6 |
12 |
NC |
... |
... |
3 |
DB5 |
15 |
PA5 |
13 |
Vdd |
... |
(3.3V) |
4 |
DB4 |
14 |
PA4 |
14 |
Vss |
... |
(0V) |
5 |
DB3 |
13 |
PA3 |
15 |
/CS1 |
40 |
PB4 |
6 |
DB2 |
12 |
PA2 |
16 |
/CS2 |
39 |
PB3 |
7 |
DB1 |
11 |
PA1 |
17 |
NC |
... |
... |
8 |
DB0 |
10 |
PA0 |
18 |
/REST |
7 |
Reset |
9 |
E_RD |
43 |
PB7 |
19 |
SLA |
... |
(4.2V) |
10 |
RW_WR |
42 |
PB6 |
20 |
SLK |
... |
(0V) |
실제 연결한 모습입니다.
만능기판에 핀헤더를 이용해서 blue pill용 작업보드를 만들었습니다. 위 사진과 같이 뒤면에서 에나멜선으로 배선을 변경해가면서 사용할 예정입니다. 주로 흑백 lcd를 제어하는 용도로 쓸 예정이지만, 각종 센서 등 다양한 다른 장치도 사용할 예정입니다.
STM32CubeMX에서 프로젝트를 작성할 때 설정한 내용입니다.
먼저 pinout에서 설정한 내용입니다.
1) SYS에서 Debug를 Serial Wire로 설정
2) RCC에서 HSE를 Crystal/Ceramic Resonator로 설정
3) PA0 ~ PA7, PB3 ~ PB7, PC13 등 GPIO 설정
Clock Configuration에서 설정한 내용입니다.
HCLK를 72MHz로 설정했습니다.
추가로 한 가지 유념해야할 점은 아래 그림에 붉은 색으로 표시한 APB2 peripheral clocks입니다. STM32F103의 경우 모든 GPIO 포트는 APB2 peripheral BUS를 사용합니다. 본 프로젝트에서는 clock을 4.5MHz로 설정했습니다. 이보다 빠른 클럭으로 설정하면 GlcdWriteCommand() 함수와 GlcdWriteData() 함수, GlcdReadData() 함수에 적절히 지연 루틴을 넣어 주어야 합니다.
GPIO Pin Configuration 내용입니다.
데이터 포트인 PA0 ~ PA7은 low 상태이고, 컨트롤 포트인 PB3 ~ PB7은 모두 high 상태롤 설정했습니다. 이전 글에서 언급한대로 CS1, CS2 등을 high로 설정함으로써, 전원이 들어오고 불안정한 상태에서 발생할 수 있는 잡음이 그래픽 lcd에 영향을 주지 않도록 하기 위함입니다.
다음 글 제2편에서 제어하는 함수를 다룰 예정입니다.
'STM32F103' 카테고리의 다른 글
ST7565P GLCD 제어하기(제3편) - printf() 사용하기 (10) | 2018.12.10 |
---|---|
ST7565P GLCD 제어하기(제2편) - 제어함수 만들기 및 사용하기 (0) | 2018.11.28 |
STM32F103 DFU Bootloader로 펌웨어 업데이트하기 (6) | 2018.11.19 |
STM32F103 DFU Bootloader 만들기 (19) | 2018.11.19 |
RA8835 GLCD 제어하기(제6편) - 그래픽라이브러리 활용하기 (0) | 2018.11.18 |