STM32CubeIDE์์ GPIO ์ค์ ์ ํ ๋ ์ฌ๋ฌ ์ต์ ์ด ์ ๊ณต๋๋๋ฐ, ๊ฐ๊ฐ์ ์ค์ ์ต์ ์ ๋ํด ๊ฐ๋จํ ์ค๋ช ํ๋ค. ์ด ์ค์ ๋ค์ CubeMX ํตํฉ ํ๊ฒฝ์์ GPIO ํ์ ๊ธฐ๋ฅ๊ณผ ํน์ฑ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ์ ํฌ์คํ ์์ STM32 ๋ด์ฅ LED๋ฅผ ์ ์ดํ๊ธฐ ์ํด GPIO Output์ ์ค์ ํ์์ผ๋ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
๐ 1. GPIO Output Level
GPIO ์ถ๋ ฅ ๋ ๋ฒจ์ ํ์ด ์ถ๋ ฅ ๋ชจ๋์ผ ๋ ์ด๊ธฐ ์ถ๋ ฅ ์ํ(๋์ ๋๋ ๋ฎ์)๋ฅผ ์ค์ ํ๋ค. ์ด ์ค์ ์ ํ์ด ๋์งํธ ์ถ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋ ๋ ์ค์ํ๋ฉฐ, ๊ธฐ๊ธฐ๊ฐ ๋ฆฌ์ ๋๊ฑฐ๋ ์ ์์ด ์ผ์ง ๋ ํ์ ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค.
- High (๋์): ํ์ ์ด๊ธฐ ์ํ๋ฅผ ๋์ ์ ์(๋ณดํต VDD)์ผ๋ก ์ค์ ํ๋ค.
- Low (๋ฎ์): ํ์ ์ด๊ธฐ ์ํ๋ฅผ ๋ฎ์ ์ ์(GND)์ผ๋ก ์ค์ ํ๋ค.
์ด ์ค์ ์ GPIO ํ์ ์ด๊ธฐ ์ถ๋ ฅ ์ํ๋ฅผ ๋์ ์ ์(๋ณดํต VDD์ ํด๋น)์ผ๋ก ์ค์ ํ๋ค. ํ๋ก์ธ์๊ฐ ๋ฆฌ์ ๋๊ฑฐ๋ ์ ์์ด ์ฒ์ ์ผ์ง ๋, ์ด ํ์ ๋์ ์ํ๋ก ์์๋๋ค. ์ด๊ฒ์ ํ์ด ๊ตฌ์ฑ์ ์๋ฃํ๊ธฐ ์ ์ ์ด๊ธฐ ์ํ๋ฅผ ์ ์ํ๋ค.
๐ 2. GPIO Mode
GPIO ๋ชจ๋๋ ํ์ ์๋ ๋ชจ๋๋ฅผ ์ ์ํ๋ค. ์ด๋ ํ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์์ง, ์ถ๋ ฅํ ์ง ๋๋ ๋ค๋ฅธ ํน๋ณํ ๊ธฐ๋ฅ์ ์ํํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
- Input (์ ๋ ฅ): ํ์ด ์ ๋ ฅ ๋ชจ๋๋ก ์ค์ ๋์ด ์ธ๋ถ ์ ํธ๋ฅผ ๋ฐ์ ์ ์๋ค.
- Output PP (ํธ์-ํ ์ถ๋ ฅ): ํ์ด ๋์งํธ ์ถ๋ ฅ์ผ๋ก ์ค์ ๋๋ฉฐ, ํธ์-ํ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋ค.
- Output OD (์คํ ๋๋ ์ธ ์ถ๋ ฅ): ํ์ด ์คํ ๋๋ ์ธ ์ถ๋ ฅ์ผ๋ก ์ค์ ๋๋ฉฐ, ์ธ๋ถ ํ์ ์ ํญ์ด ํ์ํ๋ค.
- Alternate Function (๋์ฒด ๊ธฐ๋ฅ): ํ์ด ํน์ ํ๋ฆฌํ๋ด(์: SPI, I2C)์ ํ ๋น๋๋๋ก ์ค์ ๋๋ค.
- Analog (์๋ ๋ก๊ทธ): ํ์ด ์๋ ๋ก๊ทธ ๋ชจ๋๋ก ์ค์ ๋์ด ADC์ ๊ฐ์ ์๋ ๋ก๊ทธ ์ฃผ๋ณ ์ฅ์น์ ์ฌ์ฉ๋๋ค.
GPIO Mode : Output Push Pull
Output Push Pull ๋ชจ๋๋ GPIO ํ์ ์ผ๋ฐ์ ์ธ ๋์งํธ ์ถ๋ ฅ์ผ๋ก ์ค์ ํ๋ค. ์ด ๋ชจ๋์์ ํ์ ์ถ๋ ฅ ์ ํธ๋ฅผ ์๋ฐฉํฅ์ผ๋ก ์ ์ดํ ์ ์๋ค. ์ฆ, ํ์ ์ ์(VDD)๊ณผ ์ ์ง(GND) ์ฌ์ด๋ฅผ ์ค์์นญ ํ ์ ์์ด, ์ฐ๊ฒฐ๋ ๋ถํ(์: LED)๋ฅผ ์ง์ ๋๋ผ์ด๋ธํ ์ ์๋ค.
๐ 3. GPIO Pull-up/Pull-down
ํ์ ๋ด๋ถ ํ์
๋๋ ํ๋ค์ด ์ ํญ์ ํ์ฑํํ์ฌ ๋ถํ์ํ ์
๋ ฅ ๋
ธ์ด์ฆ๋ ๋ถํ์คํ ์ํ๋ฅผ ๋ฐฉ์งํ๋ค.
No Pull-up/Pull-down (ํ์
/ํ๋ค์ด ์์): ์ ํญ ์์ด ์ค์ ๋์ด ์์ด ์ธ๋ถ์์ ๋ช
ํํ ์ ํธ ๋ ๋ฒจ์ ์ ๊ณตํด์ผ ํ๋ค.
Pull-up (ํ์
): ๋ด๋ถ ํ์
์ ํญ์ ํ์ฑํํ์ฌ ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ์ํ๋ก ์ ์งํ๋ค.
Pull-down (ํ๋ค์ด): ๋ด๋ถ ํ๋ค์ด ์ ํญ์ ํ์ฑํํ์ฌ ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฎ์ ์ํ๋ก ์ ์งํ๋ค.
GPIO Pull-up/Pull-down ์ค์ : Pull-down
ํ๋ค์ด ์ ํญ์ ํ์ฑํํ๋ ์ค์ ์ด๋ค. ์ด ์ค์ ์ ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฎ์ ์ํ๋ก ์ ์งํ๋๋ก ๋ด๋ถ์ ์ผ๋ก ์ ํญ์ ์ฐ๊ฒฐํ๋ค. ๊ทธ๋ฌ๋ LED ์ ์ด์ ๊ฒฝ์ฐ, ํ๋ค์ด ์ค์ ์ ์ข
์ข
์ฌ์ฉ๋์ง ์๊ฑฐ๋ ํ์ํ์ง ์๋๋ค. ์๋ํ๋ฉด LED๋ฅผ ์ผ๊ณ ๋๋ ์ ์ด๋ ํ์ High์ Low ์ํ์ ์ํด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ์ค์ ์ ์ฃผ๋ก ์
๋ ฅ ๋ชจ๋์์ ๋ ๋์ด ์ ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๐ 4. Maximum Output Speed
์ต๋ ์ถ๋ ฅ ์๋๋ ํ์ ์ ํ ์๋(์ ์, ์ค์, ๊ณ ์, ๋งค์ฐ ๊ณ ์)๋ฅผ ์ค์ ํ๋ค. ์ด๋ ์ ํธ์ ๋น๋์ ์ ๋ฅ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ํ๋๋ค.
- Low Speed
- Medium Speed
- High Speed
- Very High Speed
๐ 5. User Label
์ฌ์ฉ์ ๋ผ๋ฒจ์ ํ์ ์ฌ์ฉ์ ์ ์ ์ด๋ฆ์ ํ ๋นํ์ฌ ํ๋ก์ ํธ ๋ด์์ ํ์ ๋ ์ฝ๊ฒ ์๋ณํ๊ณ ์ฐธ์กฐํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ์ด๋ค. ์ด ์ด๋ฆ์ ์ฝ๋์์ ํด๋น ํ์ ์ฐธ์กฐํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ๋ฅผ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋๋ค.
์ด๋ฌํ ์ค์ ๋ค์ STM32 ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ์ GPIO ํ์ ์ ํํ๊ณ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ฑํ์ฌ ๋ค์ํ ํ๋์จ์ด ๊ธฐ๋ฅ๊ณผ ์ํธ์์ฉํ ์ ์๊ฒ ํด์ค๋ค.
'๐ง STM32' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[STM32] 6. ํ์ ์ ํญ ๊ธฐ๋ณธ ์๋ฆฌ (0) | 2024.11.18 |
---|---|
[STM32] 5. ๋ด์ฅ ์ค์์น ์ ์ด (0) | 2024.11.17 |
[STM32] 3. ๋ด์ฅ LED ์ ์ด (9) | 2024.09.04 |
[STM32] 2. STM32 LINK ์ ๋ฐ์ดํธ (1) | 2024.09.02 |
[STM32] 1. Cube IDE ์์ํ๊ธฐ. (2) | 2024.09.01 |