์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

STM32 FFT ๊ตฌํ˜„

STM32์—์„œ DSP Library๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FFT๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 2๊ฐœ

์ˆ˜๊ฐ•์ƒ 104๋ช…

Thumbnail

์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์ž„๋ฒ ๋””๋“œ ยท IoT] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • STM32์—์„œ FFT ๊ตฌํ˜„

  • DSP Library ์„ค์น˜

ํ˜„์ง์ž์˜ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ๋‹ด๊ธด FFT ์ง€์‹!
๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์ง€ ์•Š๋‚˜์š”? ๐Ÿ˜‰

๊ฐ•์˜ ์ฃผ์ œ ๐Ÿ“–

์ฝ”๋”ฉ์œผ๋กœ FFT๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” FFT๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋ฉด์„œ ๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌ๋œ ์ž๋ฃŒ๊ฐ€ ์žˆ์œผ๋ฉด, STM 32๋ฅผ ์ด์šฉํ•˜์—ฌ FFT๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋  ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๋ฉฐ ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ณธ ๊ฐ•์˜๋Š” STM 32์—์„œ DSP Library๋ฅผ ์ด์šฉํ•˜์—ฌ FFT๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์—ฌ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. STM32CubeIDE ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์„ค์ •, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜, ์ฝ”๋“œ ๊ตฌํ˜„, ๊ฒฐ๊ณผ ํ™•์ธ๊นŒ์ง€ ๋ชจ๋“  ๊ณผ์ •์„ ์„ค๋ช…ํ•˜์—ฌ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. CMSIS์˜ DSP Library๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •๋ถ€ํ„ฐ Library์— ํฌํ•จ๋œ ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ , ์‹ค์ œ๋กœ FFT๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •๋“ค์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. STM32๋ฅผ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๊ธฐํšŒ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. STM32๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค๋„ ๋ฌธ์„œ๋ฅผ ๋”ฐ๋ผ ํ•˜๋‹ค ๋ณด๋ฉด STM32๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณธ ๊ฐ•์˜์—์„œ๋Š” ADC์— ์‚ฌ์ธํŒŒ๋ฅผ ์ž…๋ ฅํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊น! โœ‹ FFT๋ž€?

FFT๋Š” Fast Fourier Transform์œผ๋กœ, ์ฃผํŒŒ์ˆ˜ ๋„๋ฉ”์ธ์—์„œ์˜ ์‹ ํ˜ธ์ฒ˜๋ฆฌ ๋ถ„์•ผ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 

ST ์‚ฌ์—์„œ๋Š” DSP(Digital Signal Processing, ๋””์ง€ํ„ธ ์‹ ํ˜ธ์ฒ˜๋ฆฌ)๋ฅผ ์œ„ํ•œ Library๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. DSP Library๋ฅผ ์ด์šฉํ•˜๋ฉด FFT๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, FIR, IIR ํ•„ํ„ฐ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹ ํ˜ธ์ฒ˜๋ฆฌ, ์ˆ˜ํ•™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๊ฐ•์˜๋ฅผ ํ†ตํ•˜์—ฌ DSP Library๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜๋ฉด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์€ ์ธํ”„๋Ÿฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋˜๋Š” ์ œ๊ฐ€ ์šด์˜ํ•˜๋Š” ์นดํŽ˜๋ฅผ ํ†ตํ•˜์—ฌ ์งˆ๋ฌธ์„ ์˜ฌ๋ ค์ฃผ์‹œ๋ฉด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ข ์ˆ˜๊ฐ• ์ „ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ด์ฃผ์„ธ์š”!

  • ๋ณธ ๊ฐ•์˜๋Š” ์ „์ž๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ…์ŠคํŠธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๋Š” ๋ถ„๋“ค๊ป˜๋Š” ๊ฐ•์˜์— ์„ค๋ช…๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์„ ์œ„ํ•œ Windows Program๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ•์˜์—์„œ๋Š” NUCLEO-F411RE ๊ฐœ๋ฐœ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ ํˆด์€ STM32CubeIDE v1.9.0์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ•์˜ ์ž๋ฃŒ๋Š” '์„น์…˜ 0 - ์ž๋ฃŒ ๊ณต์œ  ๋งํฌ - ์ฒจ๋ถ€ํŒŒ์ผ'์—์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š” ๐Ÿ™‹โ€โ™€๏ธ

ST ์‚ฌ์˜ MCU์— ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„

DSP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ์— ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„


์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์›Œ์š” ๐Ÿ“š

HW์™€ SW์˜ ๊ตฌ์„ฑ

DPS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ
ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐฉ๋ฒ•

์†Œ์Šค ์ฝ”๋“œ ๊ตฌํ˜„

๊ฒฐ๊ณผ ํ™•์ธ

์ƒ์„ธ ์ปค๋ฆฌํ˜๋Ÿผ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?
  1. ๊ฐœ์š” (3)
  2. HW ๊ตฌ์„ฑ (4)
    1. FW ๋‹ค์šด๋กœ๋“œ ํ•€๋งต (5)
    2. ์ „์› ํ•€๋งต (5)
    3. UART ํ•€๋งต (5)
    4. ๊ทธ ์™ธ ํ•€๋งต (6)
    5. ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ (7)
      1. ST-LINK FW ์—…๋ฐ์ดํŠธ (8)
      2. ๋ณด๋“œ ์—ฐ๊ฒฐ (9)
  3. SW ๊ตฌ์„ฑ (10)
    1. SW Package ์„ค์น˜ (10)
    2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (12)
    3. Configuration (14)
      1. SYS, RCC (15)
      2. Clock Configuration (16)
      3. ADC ์„ค์ • (17)
      4. Timer ์„ค์ • (19)
      5. UART1 ์„ค์ • (21)
      6. GPIO ์„ค์ • (22)
  4. DSP Library ์„ค์น˜ (24)
  5. ์†Œ์Šค ์ฝ”๋“œ ๊ตฌํ˜„ (31)
    1. Formatter ์„ค์ • (31)
    2. ์†Œ์Šค ๋ถ„์„ (33)
    3. ์ถ”๊ฐ€๋œ ํ•จ์ˆ˜ ์„ค๋ช… (37)
      1. common.h (37)
      2. uart1.h, uart1.c (37)
      3. comm_task.h, comm_task.c (37)
      4. arm_fft_bin_data.c (37)
      5. arm_fft_bin_f32.h, arm_fft_bin_f32.c (38)
  6. ๊ฒฐ๊ณผํ™•์ธ (39)
    1. ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ ํ™•์ธ (40)
    2. ADC ์ž…๋ ฅ ํŒŒํ˜• ํ™•์ธ (41)
    3. FFT ๊ฒฐ๊ณผ ํ™•์ธ (43)
    4. FFT ์†Œ์š”์‹œ๊ฐ„ ์ธก์ • (44)
    5. ๋ฆด๋ฆฌ์ฆˆ ๋ชจ๋“œ์™€ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ (45)
  7. ์ฐธ๊ณ  ์ž๋ฃŒ (46)
  8. Revision History (47)

์˜ˆ์ƒ ์งˆ๋ฌธ Q&A ๐Ÿ’ฌ

Q. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์œ„ํ•ด ์ค€๋น„ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‚˜์š”?

๋ณธ ๊ฐ•์˜๋Š” ์‹ค์Šต๋ณด๋“œ NUCLEO-F411RE์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณด๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋จผ์ € ๋‚ด์šฉ์„ ๋ณด์‹œ๊ณ  ๋‚˜์ค‘์— ๋ณด๋“œ๋ฅผ ๊ตฌ์ž…ํ•ด์„œ ๋ณด๋“œ ์ƒ์—์„œ ํ™•์ธํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Q. ํ”„๋กœ๊ทธ๋žจ ํˆด์€ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋‚˜์š”?

ST์—์„œ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๋Š” STMCubeIDE v1.9.0์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๊ฐ• ์ „์— ์„ค์น˜ํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.


์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ โœ’๏ธ

์ด๋ ฅ ์‚ฌํ•ญ

์ €๋Š” 20์—ฌ ๋…„ ๋™์•ˆ ๋Œ€๊ธฐ์—…, ์ค‘์†Œ๊ธฐ์—…์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด์™”๊ณ  ํ˜„์žฌ๋Š” ์ž‘์€ ๊ธฐ์—…์„ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CCTV์šฉ ISP (Image Signal Processing) ASIC๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๊ณ  OLED ๊ฒ€์‚ฌ ์žฅ๋น„, DAQ (Data Acquisition System) ๋“ฑ FPGA๋ฅผ ์ด์šฉํ•œ ๋งŽ์€ ์ œํ’ˆ์„ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค. FPGA๋ฟ๋งŒ ์•„๋‹ˆ๋ผ FW ๊ฐœ๋ฐœ (STM32, PIC32, AVR, ATMEGA ๋“ฑ), ํšŒ๋กœ์„ค๊ณ„, Windows Program ๋“ฑ ๋งŽ์€ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


 

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • FW ๊ฐœ๋ฐœ์ž

  • DSP ๊ฐœ๋ฐœ์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C ์–ธ์–ด

  • FFT ๊ฐœ๋…

์•ˆ๋…•ํ•˜์„ธ์š”
alex์ž…๋‹ˆ๋‹ค.

1,518

๋ช…

์ˆ˜๊ฐ•์ƒ

55

๊ฐœ

์ˆ˜๊ฐ•ํ‰

119

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

17

๊ฐœ

๊ฐ•์˜

์ €๋Š” ์ง€๋‚œ 20์—ฌ๋…„ ๋™์•ˆ ๋Œ€๊ธฐ์—…, ์ค‘์†Œ๊ธฐ์—…์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด์™”๊ณ 

ํ˜„์žฌ๋Š” ์ž‘์€ ๊ธฐ์—…์˜ ๋Œ€ํ‘œ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฒฝ๋ ฅ์‚ฌํ•ญ์€

  • Verilog HDL์„ ์ด์šฉํ•œ FPGA ์„ค๊ณ„

    • CCTV์šฉ ISP ASIC ๊ฐœ๋ฐœ (์•ฝ 10๋…„)

    • OLED Display ๊ฒ€์‚ฌ์žฅ๋น„ ๊ฐœ๋ฐœ (์•ฝ 3๋…„)

    • FPGA๋ฅผ ์ด์šฉํ•œ ์žฅ๋น„ ๊ฐœ๋ฐœ

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

์ž…๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

47๊ฐœ

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!