ํ๋ก์์์ Port๋?
ํ๋ก ์ค๊ณ์์์ โPortโ๋ ์ ํธ๊ฐ ๋ค์ด๊ฐ๊ณ ๋์ค๋ ๊ณณ์ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋์ฒด, HW ๋ถ์ผ์์ ์์ด์ ํฌํธ(Port)๋, ์ ๊ธฐ์ ์ ํธ ๋ฐ์ดํฐ๊ฐ ์ค๊ฐ๋ ํต๋ก๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฆ, MCU๋ก๋ถํฐ ์ธ๋ถ๋ก ๋ ธ์ถ ๋ ํ(Pin)๋ค์ด ๋ฐ๋ก ํฌํธ๊ฐ ๋ ์ ์๋ ๊ฒ์ ๋๋ค.
โ
์ฌ์ฉ์๊ฐ ๋๋ฅด๋ ๋ง์ฐ์ค ํด๋ฆญ, ๋ชจ๋ํฐ๋ก ๋ฐ๋ ํ๋ฉด๋ ๋ค ์ ์ถ๋ ฅ์ ๊ด๋ จ๋ ๊ฒ๋ค์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ์ค ์ปดํจํฐ๋ฅผ ์ฐ๋ ์ด์ ๊ฐ.. I/O๋ฅผ ์ธํฐํ์ด์ค ํ๋ฉด์, ํน์ ์์ ์ ๋ ํธ๋ฆฌํ๊ณ ์ ํํ๊ฒ ํ๊ณ ์ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์ฃ .
๊ฐ Port๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ผ์ธ, ์ ์ด ์ ํธ, ํด๋ญ ์ ํธ ๋ฑ๊ณผ ๊ด๋ จ๋๋ฉฐ, ํ๋ก์ ๋์์ ์ค์ํ ์ญํ ์ ์ํํฉ๋๋ค.
โ
โ
ํ๋ก๋ฅผ ์ค๊ณํ๋ ์ปดํจํฐ ์ธ์ด ์์ค์์ ๋ณธ๋ค๋ฉด,
์๋์ฒ๋ผ ๊ธฐ์ ์ ํ ๊ฒ ์ ๋๋ค.
ํ์ฌ ๋์์ธ์ DFF๋ผ๋ module์ด๊ณ , ํด๋น input port๋ D, CLK๊ฐ ์๊ณ , Output์ผ๋ก๋ Q๊ฐ ์๋ค์.
Verilog HDL๋ ํ๋์จ์ด ๊ธฐ์ ์ ๊ธฐ์ ์ ์ผ๋ก ์ค๋ช (Hardwared Description Language)ํ๊ณ ๋์งํธ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ๋ชจ๋ธ๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด์ ๋๋ค.
Verilog๋ฅผ ์ฌ์ฉํ์ฌ ๋์งํธ ์์คํ ์ ์ค๊ณํ ๋, โmoduleโ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ ผ๋ฆฌ ๋ธ๋ก์ ์ ์ํ๊ณ , ์ด๋ฌํ ๋ธ๋ก๋ค ๊ฐ์ ์ํธ ์ฐ๊ฒฐ์ ์ํด Port๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ๋ชจ๋์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ Port๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ฅผ ํตํด ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ๋ฆ๊ณผ ์ ์ด ์ ํธ๋ฅผ ์ ์ํ๊ณ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
โ
โ
์ DFF๋ฅผ ์ด์ฉํด์, ์๋์ ๊ฐ์ synchronizer๋ฅผ ์ค๊ณํ๋ค๊ณ ํฉ์๋ค.
ํ์ฌ design์ ๋ฐ๋ผ๋ณด๋ ๋ ๋ฒจ์ด DFF1๋ผ๋ module์ด๋ผ๋ฉด
port๋ d, clk, q๊ฐ ๋๊ณ ,
input port : d, clk
output port : q๊ฐ ๋ฉ๋๋ค.
โ
ํ์ฌ design์ ๋ฐ๋ผ๋ณด๋ ๋ ๋ฒจ์ด SYNCRO์ด๋ผ๋ module์ด๋ผ๋ฉด,
port๋ ASYNC, CLOCK, SYNCH๊ฐ ๋๊ณ ,
input port : ASYNC, CLOCK
output port : SYNC๊ฐ ๋ฉ๋๋ค.
โ
SYNCHRO๋ผ๋ ๋ชจ๋์์ ๋ด๋ถ ๊ณ์ธต์ ์๋ i/o๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด, ์ด๊ฒ์ โPinโ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ ๋ฆฌํ๋ฉด, ์๋์ ๊ฐ์ ๊ตฌ์กฐ์ ๋๋ค.
โ
port : Current design์ I/O
pin : Sub-hierarchical design์ I/O
๊ทผ๋ฐ.. ๋ค์ Verilog code๋ฅผ ๋ณด๋ฉด,
Module SYNCHRO ์์ ASYNC, SYNC, CLOCK์ด๋ผ๊ณ ๋์ด์๊ณ , ์๋์ input, output์ผ๋ก ์์ฑ๋์ด์์ต๋๋ค.
port๋ผ๋ ์์ฑ ์์ input, output์ด๋ผ๋ ์์ฑ์ด ์๋๊ฑฐ์ฃ .
๊ทผ๋ฐ input, output ์ธ์๋ ๋ค์ํ ์์ฑ๋ค์ด ์์ต๋๋ค. ์ด Attribute name์ Standard๋ ์์ด์, EDA Tool ํ์ฌ๋ง๋ค ์์ดํฉ๋๋ค.
FPGA๋ ASIC ๊ฐ๋ฐ์ ํ ๋ EDA Tool์ ์ฌ์ฉํ๋ค๋ฉด, ์๋ ๊ฐ์ attribute๊ฐ ์์ต๋๋ค.
get_ports *
get_ports data
get_ports -filter {DIRECTION == OUT}
all_inputs
get_ports -filter {DIRECTION == IN} data
get_ports -filter {BUS_NAME != โโ}
โ
์ด๋ฐ ์์ฑ์ port ๋ฟ๋ง์๋๋ผ, pin์ด๋ ๋ค๋ฅธ๊ฒ๋ ๋ค ์์ต๋๋ค. ๋ค๋ง ์ ์ฉ๋๋ ์ต์ ์ ์ฝ๊ฐ ์์ดํ๊ตฌ์.
โ
โ
โ
๋ณดํต ํ๋์จ์ด ์์ง๋์ด๋ผ๊ณ ํ๋ฉด, ์ค๊ณ๋ ์นฉ์ ๊ฐ๊ณ ๋ณด๋์์์ ์์ ์ ํ๋ ์์ง๋์ด๋ค์ ๋งํ๋๋ฐ์. ์ ๋ ํ ๋๋ ์ด๋ฐ๊ฒ ์ฌ๋ฐ์๋๋ฐ..
ํ๊ต ๋ค๋๋ฉด์๋, ARM์ฌ์ Cortex M series, atemega 128 ๋ฑ์ ์จ๋ดค๋ค์. ์นฉ ๊ตฌํ, ํ ์คํธ ๋ฒกํฐ ๋ง๋๋๋ผ ARM์ฌ์ Cortex A Series์ SiFive์ U Series ๊ตฌํํด๋ดค๋ค์.
์๋ฌดํผ ์ ๋ ์ด ์นฉ๋ค์ ์ด๋์ ๋ ์ค๊ณ, ๊ตฌํ, ๊ฐ๋ฐ์ ์กฐ๊ธ์ฉ ๋ค ํด๋ดค๋ค๊ณ ์๊ธฐ๋ฅผ ๋๋ฆฌ๋ คํ์ต๋๋ค.
โ
โ
Atmega ์๋ฆฌ์ฆ๋ AVR ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ์ ์ผ์ข ์ ๋๋ค.
์ด๋ฌํ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ ๋ค์ํ ์์ฉ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ฉฐ, ์๋ฅผ ๋ค์ด ์๋ฒ ๋๋ ์์คํ , ๋ก๋ด ๊ณตํ, IoT, ๋ค์ํ ์ ์์ ํ ๋ฑ์์ ํ์ฉ๋ฉ๋๋ค. Atmega ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ฅผ ํ๋ก๊ทธ๋๋ฐํ ๋, ๊ฐ ํ์ ํน์ ํ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด ๊ตฌ์ฑ๋ฉ๋๋ค.
atemga128 Chip์ Port๋ ์๋์ฒ๋ผ 64EA์ Port๊ฐ ์์ต๋๋ค. (๋์งํธ ์ค๊ณํ๋ ์ฌ๋ ์ ์ฅ์์, 0~63์ด ์๋, 1~64๋ ์ฐธ ๋ณด๊ธฐ ๋ถํธํ๋ค์.)
โ
51๋ฒ ํ๋ถํฐ ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋ณด๋ฉด, 44๋ฒ ํ๊น์ง PA๋ผ๋ ์ด๋ฆ์ด ๋ถ์ด ์์ต๋๋ค.
์ฆ, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7 ์ด๋ ๊ฒ ์ด 8๊ฐ๊ฐ PA๋ผ๋ ๊ณตํต๋ ์ด๋ฆ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ Port A๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๊ฐ์ ๋ฐฉ์์ผ๋ก ATmega128์ ์ด 7๊ฐ์ ํฌํธ๋ค์ด ์กด์ฌํฉ๋๋ค.
-
Port A : PA0 ~ PA7
-
Port B : PB0 ~ PB7
-
Port C : PC0 ~ PC7
-
Port D : PD0 ~ PD7
-
Port E : PE0 ~ PE7
-
Port F : PF0 ~ PF7
-
Port G : PG0 ~ PG4
โ
Atmega์์๋ A~F 7๊ฐ์ ํฌํธ๋ค์ ์์ ์ด ์ํ๋๋๋ก ์ด์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, LED 1๊ฐ ์ ์ด๊ฐ ํ์ํ ๋, ์ด ๊ฒ์ PA3๋ฒ์ ์ฐ๊ฒฐํด๋ ๋๊ณ , PF0๋ฒ, ํน์ PE3๋ฒ์ ๊ฐ๋ฐ์ ๋ง์๋๋ก ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ํ์ ์ ๊ธฐ ์ ํธ๋ฅผ ์ถ๋ ฅํ ์ง, ํน์ ๋ฐ๋๋ก ์ ๊ธฐ ์ ํธ ์ ๋ ฅ์ ๋ฐ์์ง๋ ์ง์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ ๊ฐ๋ฐ์ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์๋ ํฌํธ๋ค์ General Purpose I/O Port๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๋ณดํต GPIO๋ผ๊ณ ๋ถ๋ฆ ๋๋ค! ํ๋ก ์ค๊ณํ๋ ์ฌ๋๋ค์ด ์ด๋ฐ ์นฉ ์ค๊ณ๋ฅผ ํ๋ค๋ฉด, ํ๋์จ์ด ๊ฐ๋ฐํ์๋ ๋ถ๋ค์ด ์ด ์นฉ์ ๊ฐ๊ณ OS๋ฅผ ์ฌ๋ฆฌ๊ฑฐ๋.. ๊ฐ๋จํ ์ ์ดํ๋ก๊ทธ๋จ์ด๋, ํ์จ์ด๋ฅผ ์ฌ๋ฆฌ๋ ๊ฑฐ์ฃ .
โ
์ฐธ๊ณ ๋ก, ์ด๋ฐ chip์์ ํ๋์จ์ด ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉ ํ ์ ์๋ port ์๋ฅผ ์ต๋ํ ๋ง์ด ์ฃผ๊ธฐ ์ํด ํ๋ก์ค๊ณ์๋ค์ด ์์ฒญ ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๋ฉด์ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค. Port ์๋ฅผ ๋๋ฆฌ๋ฉด ๊ณต์ ๋น์ฉ์ด ๋น์ธ์ง๊ณ โฆ. ๊ทธ Port ์ค์์๋ ์๋น ๋ถ๋ถ์ด DFT์์ ์ฐ์ด๊ฒ ๋๊ตฌ์..
โ
์๋ฌดํผ atmega์๋ UART, SPI, I2C ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ด ๋ค์ด์๋ค์โฆ ํ์ง๋ง, ์ด ์ฅ์์ ์ด ๊ธฐ๋ฅ๋ค์ ์์ธํ ๋ณผ ๊ฒ์ ์๋๊ณ ,
์ด ์ ํธ๊ฐ ์ด๋ป๊ฒ ๋ค์ด์ค๋์ง? ์ ๋๋ค.
โ
โ
๋ฐ๋์ฒด ๋๋ฐ์ด์ค์ ์ ๋ ฅ ์ ํธ๊ฐ ์ ๋ ฅ๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
โ
PAD (Peripheral Input/Output Cell):
PAD๋ Chip์ ์ธ๋ถ์์ ์ธํฐํ์ด์ค ์ญํ ์ ์ํํ๋ ์ค์ํ ์์์ ๋๋ค. ๋๋ฐ์ด์ค์ ์ ํธ๊ฐ ์ธ๋ถ์ ์ํธ ์์ฉํ๋ ค๋ฉด PAD๋ฅผ ํตํด ์ ๋ ฅ๋๊ณ ์ถ๋ ฅ๋์ด์ผ ํฉ๋๋ค. PAD๋ ์ฃผ๋ก ๋๋ฐ์ด์ค์ ์ฃผ๋ณ ์์ญ์ ์์นํ๋ฉฐ, ์ ํธ์ ์ ๊ธฐ์ ๋ฐ ๋ฌผ๋ฆฌ์ ์ธํฐํ์ด์ค๋ฅผ ๋ด๋นํฉ๋๋ค.
๋ณดํต ๋ฐ๋์ฒด ์นฉ ํ์ ๊ณ์ธต์ ์๋ D Flip flop ๊ฐ์ ๊ฒ๋ค์ PAD๋ฅผ ๋ฐ๋ก ๋์ง ์๊ณ , Chip ์ต์์ ์ ์ถ๋ ฅ์๋ง PAD๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
โ
-
I/O ์ ํธ ์ฒ๋ฆฌ: ์ธ๋ถ์์ ์ ์ถ๋ ฅ๋๋ ๋์งํธ ๋๋ ์๋ ๋ก๊ทธ ์ ํธ๋ฅผ PAD๊ฐ ๊ฐ์งํ๊ณ ๋ด์ธ๋ถ๋ก ์ ๋ฌํฉ๋๋ค.
-
Level shifting : ๋ด๋ถ ์ ํธ์ ์ธ๋ถ ํ๊ฒฝ ๊ฐ์ ์ ์ ๋ ๋ฒจ ์ฐจ์ด๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ํธ๋ฅผ ๋ณดํธํ๋ ์ญํ ์ ํฉ๋๋ค.
-
Interconnection: PAD๋ ๋๋ฐ์ด์ค ๋ด๋ถ์ ์ธ๋ถ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ์ ๋ด๋นํฉ๋๋ค. ์ด๋ฅผ ์ํด ํจํค์ง, ๋ณด๋, ์ปค๋ฅํฐ ๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ธํฐ์ปค๋ฅ์ ์ ์ ๊ธฐ์ ์ ํธ ์ ๋ฌ๋ฟ๋ง ์๋๋ผ ๋ฌผ๋ฆฌ์ ์์ ์ฑ ๋ฐ ์ ํธ ๋ ธ์ด์ฆ ๊ด๋ฆฌ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
-
ESD (Electrostatic Discharge) :
์ ๋ ฅ ์ ํธ๋ ์ธ๋ถ ํ๊ฒฝ๊ณผ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ฏ๋ก, ๋๋ฐ์ด์ค ๋ด๋ถ๋ก ์ ๋ฌ๋๋ ์ ํธ์ ๋ํ ๋ณดํธ๊ฐ ์ค์ํฉ๋๋ค. PAD๋ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ํ ์ ์๋ ์ ์ ๊ธฐ ๋ฐฉ์ (ESD) ๋ฑ์ ํผํด๋ฅผ ์ต์ํํ๊ณ ๋๋ฐ์ด์ค์ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ํ๋ก๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
โ
์ฐพ์๋ณด์๋ฉด ์์๊ฒ ์ง๋ง,,, input pad, output pad, inout pad ๋ชจ๋ ๋ค๋ฅด๊ฒ ์ค๊ณ๋ฉ๋๋ค.
โ
โ
๊ตญ๋ด์๋ ์ด๋ฐ atmega128๊ฐ์ ๋ฒ์ฉ ๊ฐ๋ฐ ์นฉ์ ์ค๊ณํ๋ ํ์ฌ๋ ๋ง์ง ์๊ณ , ๋๋ถ๋ถ ๋ฏธ๊ตญ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋๋ผ์์ ์ด๋ฐ ์นฉ์ ๊ฐ๊ณ ์์, ์๋์ฒ๋ผ ์นฉ์ port๋ฅผ ์ฐ๊ฒฐํด์ ์ปค๋ฅํฐ ๋ฌ๊ณ .. ๋จ์ ๋ฌ์๋๊ณ ..LCD ์ฐ๊ฒฐํด๋๊ณ .. ์ด๋ฐ Board๋ฅผ ๋ง๋๋ ํ์ฌ๊ฐ ์์ฃ .
โ
์ค์์น๋ฅผ ์ด์ฉํด์ LED๋ฅผ ์ผ๊ณ ๋ ์ ์๋ ํ์จ์ด๋ฅผ atmega์ ์ฌ๋ฆฐ๋ค๊ณ ํฉ์๋ค.
- ์ค์์น Port์ AVR GPIO์ ์ฐ๊ฒฐํ๊ณ , LED์ Port๋ฅผ AVR GPIO์ ์ฐ๊ฒฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์์น๋ ํ์ ๋๋ ํ๋ค์ด ์ ํญ๊ณผ ํจ๊ป ์ฐ๊ฒฐํ์ฌ ์ค์์น์ ์ํ๋ฅผ ์์ ์ ์ผ๋ก ์ฝ์ ์ ์๋๋ก ํฉ๋๋ค.
โ
2.๋ฐ์ดํฐ ๋ฐฉํฅ ์ค์ : AVR์ ๋ฐ์ดํฐ ๋ฐฉํฅ ๋ ์ง์คํฐ๋ฅผ ์ค์ ํ์ฌ ์ค์์น ํ์ ์ ๋ ฅ์ผ๋ก, LED ํ์ ์ถ๋ ฅ์ผ๋ก ์ค์ ํฉ๋๋ค. ์ด ์ค์ ์ ๋ณดํต C์ธ์ด๋ก ์ง์ ํฉ๋๋ค. ์ค์์น ํ์ ์ ๋ ฅ์ผ๋ก ์ค์ ๋๋ฏ๋ก ์ค์์น์ ์ํ๋ฅผ ์ฝ์ ์ ์๊ณ , LED ํ์ ์ถ๋ ฅ์ผ๋ก ์ค์ ๋๋ฏ๋ก LED์ ์ํ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
โ
- C ์ธ์ด์ Mainloop: ์ฃผ ํ๋ก๊ทธ๋จ์ ๋ฉ์ธ ๋ฃจํ์์ ์คํ๋ฉ๋๋ค. ๋ฉ์ธ ๋ฃจํ์์๋ ์ค์์น ์ํ๋ฅผ ์ฝ๊ณ ์ด์ ๋ฐ๋ผ LED๋ฅผ ์ ์ดํฉ๋๋ค.
๋ฉ์ธ ๋ฃจํ์์ ์ค์์น ์ํ๋ฅผ ์ฝ์ด์ต๋๋ค. ์ค์์น ํ์ ์ฝ์ด์ ๋ก์ฐ ๋ ๋ฒจ ๋๋ ํ์ด ๋ ๋ฒจ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
โ
โ