이글의 전부 또는 일부, 사진, 소스프로그램 등은 저작자의 동의 없이는 상업적인 사용을 금지합니다. 또한, 비상업적인 목적이라하더라도 출처를 밝히지 않고 게시하는 것은 금지합니다.



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편에서 제어하는 함수를 다룰 예정입니다.

 

블로그 이미지

엠쿠스

Microprocessor(STM32, AVR)로 무엇인가를 만들어 보고자 학습 중입니다.

,