ARM

Keil uVision์œผ๋กœ ABOV A31G123ML ์ฒซ LED ๊นœ๋นก์ด๊ธฐ

๊ฒŒ์ž„๊ต์ˆ˜ 2025. 4. 18. 07:47
๋ฐ˜์‘ํ˜•

๐Ÿ’ก Keil uVision์œผ๋กœ ABOV A31G123ML ์ฒซ LED ๊นœ๋นก์ด๊ธฐ

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ABOV์‚ฌ์˜ A31G123ML MCU๋ฅผ ์‚ฌ์šฉํ•ด Keil uVision5 ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ํŽŒ์›จ์–ด๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

1ํŽธ์—์„œ๋Š” LED ๊นœ๋นก์ด๊ธฐ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ GPIO ๋ ˆ์ง€์Šคํ„ฐ ์ œ์–ด์™€ ํ”„๋กœ์ ํŠธ ์„ธํŒ…์„ ์ตํ˜€๋ด…๋‹ˆ๋‹ค.

๐Ÿงฐ ์ค€๋น„๋ฌผ

  • ABOV A31G123ML ๋ณด๋“œ
  • USB to UART ๋˜๋Š” JTAG ๋””๋ฒ„๊ฑฐ
  • Keil uVision5
  • ABOV Device Pack (Keil Pack Installer์—์„œ ์„ค์น˜)

๐Ÿงฑ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

  1. Keil โ†’ New Project โ†’ Device ์„ ํƒ: A31G123
  2. Startup ์ฝ”๋“œ ์ž๋™ ์ƒ์„ฑ ๋˜๋Š” ABOV SDK ์ฐธ๊ณ 
  3. main.c ํŒŒ์ผ ์ถ”๊ฐ€

๐Ÿ’ป main.c ์ฝ”๋“œ ์˜ˆ์‹œ

P00 ํฌํŠธ์— ์—ฐ๊ฒฐ๋œ LED๋ฅผ 0.5์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ๊นœ๋นก์ด๊ฒŒ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ:

#include "A31G123.h"

void delay_ms(int ms) {
    for (int i = 0; i < ms * 1000; i++) {
        __NOP(); // ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋”œ๋ ˆ์ด
    }
}

int main(void) {
    // P0.0์„ ์ถœ๋ ฅ ๋ชจ๋“œ๋กœ ์„ค์ •
    PORT0->MODE |= (1 << 0);     // Output Mode
    PORT0->OUTEN |= (1 << 0);    // Push-pull
    PORT0->OUT &= ~(1 << 0);     // ์ดˆ๊ธฐ ์ƒํƒœ Low

    while (1) {
        PORT0->OUT ^= (1 << 0);  // Toggle LED
        delay_ms(500);
    }
}

โœ… ๋นŒ๋“œ & ์—…๋กœ๋“œ

  • Build ํ›„, JTAG ๋””๋ฒ„๊ฑฐ ๋˜๋Š” ISP๋ฅผ ํ†ตํ•ด ์—…๋กœ๋“œ
  • ๋ณด๋“œ์˜ P00์— ์—ฐ๊ฒฐ๋œ LED๊ฐ€ ๊นœ๋นก์ด๋ฉด ์„ฑ๊ณต ๐ŸŽ‰

๐Ÿ’ก ํŒ

  • ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„์€ ABOV ํ—ค๋”ํŒŒ์ผ(A31G123.h) ๊ธฐ์ค€
  • ๋”œ๋ ˆ์ด ์ •ํ™•๋„๊ฐ€ ์ค‘์š”ํ•  ๊ฒฝ์šฐ ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹์Œ (๋‹ค์Œ ํŽธ์—์„œ ๋‹ค๋ฃฐ ์˜ˆ์ •)

๐Ÿ“š ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ํŽธ์—์„œ๋Š” Keil ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ถ€ํ„ฐ, A31G123์˜ GPIO ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜์—ฌ LED๋ฅผ ๊นœ๋นก์ด๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํŽธ์—์„œ๋Š” ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•œ ์ •๋ฐ€ํ•œ ๋”œ๋ ˆ์ด ์ œ์–ด๋‚˜, ๋ฒ„ํŠผ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์ง„์งœ ๋งˆ์ด์ปด ์ œ์–ด์— ๋‹ค๊ฐ€๊ฐ€๋ณผ๊ฒŒ์š” ๐Ÿ’ช

๋ฐ˜์‘ํ˜•