[ù ¹ø° AVR ÀÛÇ°! - LED¿¡ ºÒ Äѱâ]

LED¶õ Light-Emitting DiodeÀÇ ¾àÀڷμ­, Àü±â°¡ È带 ¶§ ºûÀ» ³»´Â ¼ÒÀÚÀÔ´Ï´Ù. 
¿ì¸®¸»·Î´Â ¹ß±¤´ÙÀÌ¿Àµå¶ó°í ºÎ¸¨´Ï´Ù.

AVRÀ» ºñ·ÔÇÑ MCU·Î LED¸¦ Á¦¾îÇغ¸´Â ½Ç½ÀÀº, 
¸¶Ä¡ C¾ð¾î¿¡¼­ hello world!¸¦ Ãâ·ÂÇغ¸´Â °Í°ú °°½À´Ï´Ù. 

ÀÌ´Â MCU·Î ÇÒ ¼ö ÀÖ´Â °¡Àå ±âÃÊÀûÀÎ ½Ç½À Áß Çϳª·Î¼­, ÇöÀçÀÇ °³¹ß ȯ°æ¿¡ 
¹®Á¦°¡ ¾øÀ½À» È®ÀνÃÄÑ ÁÖ°í, LED¿¡ ºÒÀ» ÄÔ°ú µ¿½Ã¿¡ ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯ 
¼¼°è·ÎÀÇ ¼º°øÀûÀÎ ÀÔÀåÀ» ȯ¿µÇÏ´Â ½Åȣź ¿ªÇÒÀ» ÇØÁֱ⠶§¹®ÀÔ´Ï´Ù.

ÀÏ´Ü ¹«ÀÛÁ¤ LED Á¦¾î ½Ç½ÀÀ» µû¶ó Çغ¾½Ã´Ù.


[ÇÊ¿ä Áغñ¹°] - JMOD128 °³¹ß Å°Æ® + USB ÄÉÀ̺í - LED 1°³ - Female Á¡ÆÛ ÄÉÀ̺í 2°³
1. USB ÄÉÀ̺íÀ» ÀÌ¿ëÇÏ¿© JMOD128 °³¹ß Å°Æ®¿Í PC¸¦ ¿¬°áÇÕ´Ï´Ù. ±×·³ ¾Õ¼­ ¼³¸íµå¸° ´ë·Î ÀåÄ¡°ü¸®ÀÚ¿¡ "CP210x USB to UART Bridge"°¡ Á¤»óÀûÀ¸·Î ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù. 2. ¼³Ä¡µÈ AVR STUDIO 4¸¦ ½ÇÇàÇÕ´Ï´Ù. 3. ¸Þ´ºÀÇ Project -> New Project¸¦ ¼±ÅÃÇÕ´Ï´Ù. AVR ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼­ C¾ð¾î¿Í ¾î¼Àºí¸®¾î µÑ Áß Çϳª¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ È­¸é¿¡ º¸ÀÌ´Â Atmel AVR Assembler´Â ¾î¼Àºí¸®¾î·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§, ±×¸®°í ±× ¾Æ·¡ÀÇ AVR GCC´Â C¾ð¾î·Î ÇÁ·Î±×·¡¹Ö ÇÒ ¶§ ¼±ÅÃÇÕ´Ï´Ù. ¿ì¸®´Â C¾ð¾î¸¦ »ç¿ëÇÒ °ÍÀ̱⠶§¹®¿¡ AVR GCC¸¦ ¼±ÅÃÇÏ°í, Project Name¿£ Àû´çÇÑ À̸§À» ÀÔ·ÂÇØ ÁÝ´Ï´Ù. Àú´Â test1À̶ó°í ÀÔ·ÂÇß½À´Ï´Ù. ±×¸®°í ¾Æ·¡ÀÇ Location ºÎºÐ¿¡ ¼Ò½ºÄڵ尡 ÀúÀå µÉ À§Ä¡¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÈÄ¿¡ ÄÄÆÄÀÏ µÈ °á°ú ÆÄÀϵµ ÀÌ Æú´õ ¾Æ·¡ ÀúÀåµÇ¹Ç·Î Àß ±â¾ïÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌÁ¦ Next ¹öÆ°À» ´©¸¥ ÈÄ, Device ¸ñ·Ï¿¡¼­ ¿ì¸®°¡ »ç¿ëÇÏ´Â AVRÀÎ ATmega128À» ¼±ÅÃÇØÁÝ´Ï´Ù. ¿ÞÂÊÀÇ Debug platformÀº ¾Æ¹«°Å³ª ¼±ÅÃÇصµ »ó°ü¾øÁö¸¸, ¼±ÅÃÇßÀ» ¶§ ¿ìÃøÀÇ Device ¸ñ·Ï¿¡ ATmega128ÀÌ ³ªÅ¸³ª´Â °ÍÀ̾î¾ß¸¸ ÇÕ´Ï´Ù. Àú´Â AVR ONE!À» ¼±ÅÃÇÑ ÈÄ ATmega128À» ¼±ÅÃÇÏ¿´½À´Ï´Ù. ÀÌ ÀÛ¾÷Àº ATmega128¿¡ ÀûÇÕÇÑ Çì´õ ÆÄÀÏÀ» ¿¬°áÇØÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÀÌÁ¦ Finish ¹öÆ°À» ´­·¯ »õ ÇÁ·ÎÁ§Æ® »ý¼ºÀ» ¿Ï·áÇÕ´Ï´Ù. ±×·³ ´ÙÀ½°ú °°ÀÌ AVR ÇÁ·Î±×·¡¹ÖÀÇ ±âº» ȯ°æ ±¸¼ºÀÌ ³ªÅ¸³³´Ï´Ù. 4. ´ÙÀ½À¸·Î ÄÄÆÄÀÏ·¯ÀÎ WinAVR°ú ÀÎÅÍÆäÀ̽ºÀÎ AVR Studio 4¸¦ ¼­·Î ¿¬°á½ÃÄÑÁÖ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸Þ´ºÀÇ Project -> Configuration Options -> ÁËÃøÅÇ ÃÖÇÏ´ÜÀÇ Custom Options -> ¿ìÃø¾Æ·¡ Use AVR Toolchain üũ Á¦°Å -> avr-gcc¿¡ C:\WinAVR-20100110\bin\avr-gcc.exe¸¦ ã¾Æ¼­ ÀÔ·Â -> make¿¡ C:\WinAVR-20100110\utils\bin\make.exeÀ» ã¾Æ¼­ ÀÔ·ÂÇÕ´Ï´Ù. (¾Æ·¡ ĸÃÄ È­¸é Âü°í) ÀÌ ÀÛ¾÷Àº óÀ½ AVR Studio¸¦ »ç¿ëÇÒ ¶§ ½±°Ô °£°úÇÒ ¼ö ÀÖ´Â ºÎºÐÀ¸·Î¼­, ÀÌ °°Àº ¼³Á¤ÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸é ÄÄÆÄÀÏÀÌ ÁøÇàµÇÁö ¾ÊÀ¸¹Ç·Î À¯ÀÇÇϵµ·Ï ÇÕ´Ï´Ù. 5. ÀÌ·Î½á °³¹ß Áغñ°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù. ÀÌÁ¦ LED¿¡ ºÒÀ» Äѱâ À§ÇÑ ¼Ò½ºÄڵ带 ¼Ò½ºÀԷ â¿¡ ÀÔ·ÂÇÕ´Ï´Ù.
#include <avr/io.h> int main(void) { DDRA = 0xff; PORTA = 0xff; return 0; }
6. ¼Ò½º ÄÚµå ÀÔ·ÂÀ» ¸¶Ä£ ÈÄ¿¡´Â, Build -> Build ¸Þ´º¸¦ ¼±ÅÃÇϰųª, ´ÜÃàÅ°ÀÎ F7À» ´­·¯ ÄÄÆÄÀÏÀ» ÁøÇàÇÕ´Ï´Ù. ¸¸¾à ¿ÀŸ³ª ´Ù¸¥ ¹®Á¦ ¾ø¾ú´Ù¸é, ¾Æ·¡ÀÇ ¸Þ½ÃÁö À©µµ¿ì¿¡ Build succeeded with 0 Warnings¶ó´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù. ¹Ý¸é, ¹®Á¦°¡ ¹ß°ß µÈ °æ¿ì¿£ Error³ª Warnings ¿À·ù°¡ Ãâ·ÂµË´Ï´Ù. (Âü°í·Î Warnings ¿À·ùÀÇ °æ¿ì¿£ ±×³É ¹«½ÃÇصµ ±¦ÂúÀº °æ¿ì°¡ ¸¹ÀÌ ÀÖ½À´Ï´Ù.) 7. ´ÙÀ½À¸·Î LED Çϳª¸¦ ÁغñÇÑ ÈÄ, °³¹ß º¸µåÀÇ PORT AÇÉ¿¡ ¿¬°áÇÏ°Ú½À´Ï´Ù. LED´Â ±Ø¼ºÀÌ ÀÖÀ¸¹Ç·Î, ±äÂÊÀÎ ¾ç±Ø(+)°ú ªÀºÂÊÀÎ À½±Ø(-)À» Àß È®ÀÎÇϸ鼭 ¿¬°áÇÕ´Ï´Ù. ¾ç±Ø(+) Á¡ÆÛ´Â °³¹ß Å°Æ®ÀÇ PORT A¶ó°í ÀûÈù Çɵé Áß Çϳª¿¡ ÀÔ·ÂÇÏ°í, À½±Ø(-) Á¡ÆÛ´Â °³¹ß Å°Æ®ÀÇ GND¶ó°í ÀûÈù ÇÉ¿¡ ÀÔ·ÂÇÕ´Ï´Ù. ´ÙÀ½À¸·Î °³¹ß Å°Æ®ÀÇ ¼³Á¤ »óŸ¦ È®ÀÎÇÕ´Ï´Ù. Àü¿ø Á¡ÆÛÀÇ ¼³Á¤Àº USB, ±× ¾Æ·¡ÀÇ ½ºÀ§Ä¡ ¼³Á¤Àº ISP·Î µÇ¾îÀÖ¾î¾ß ÇÕ´Ï´Ù. * À§ »çÁøÀ» Âü°íÇÏ¿© Á¡ÆÛ¿Í ½ºÀ§Ä¡ÀÇ »óŸ¦ ¸ÂÃçÁÝ´Ï´Ù. 8. ÀÌÁ¦ ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®¸¦ ATmega128 MCU¿¡ ´Ù¿î·Îµù ÇÒ Â÷·ÊÀÔ´Ï´Ù. ¸Þ´ºÀÇ Tools -> Program AVR -> Auto Connect¸¦ ¼±ÅÃÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¾÷µ¥ÀÌÆ® À©µµ¿ì Ãâ·ÂµÇ¸é Á¤»óÀûÀ¸·Î ÀνÄÀÌ Àß µÈ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾÷µ¥ÀÌÆ® ±â´ÉÀÌ ½ÇÁ¦·Î´Â Á¤»ó ÀÛµ¿ÇÏÁö ¾ÊÀ¸¹Ç·Î Ãë¼Ò¸¦ Ŭ¸¯ÇÕ´Ï´Ù. ÇÏÁö¸¸ ¸¸¾à ´ÙÀ½°ú °°ÀÌ Connect Failed ¿À·ù°¡ Ãâ·ÂµÇ¸é °³¹ß Å°Æ®ÀÇ ½ºÀ§Ä¡ ¼³Á¤À̳ª µå¶óÀ̹ö°¡ Á¦´ë·Î ¼³Ä¡µÆ´ÂÁö¸¦ ´Ù½Ã Çѹø È®ÀÎÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. * Á¤»ó ÀνÄÀÌ ¾È µÈ °æ¿ìÀÇ È­¸é * USBÀÇ COM Port°¡ COM10À» ³Ñ¾î°¥ °æ¿ì¿¡µµ Á¤»ó ÀνÄÀÌ µÇÁö ¾Ê½À´Ï´Ù. ÀÌ´Â AVR-Studio4°¡ COM9±îÁö¸¸À» ÀνÄÇϱ⠶§¹®ÀÔ´Ï´Ù. ÀÌ °æ¿ì¿£ ÀåÄ¡°ü¸®ÀÚ¿¡¼­ COM ¹øÈ£¸¦ COM9 ÀÌÇÏ·Î º¯°æÇØ Áֽñ⠹ٶø´Ï´Ù. (¼Ó¼º->Æ÷Æ®¼³Á¤->°í±Þ->COM Æ÷Æ® ¹øÈ£) °³¹ß Å°Æ®¿ÍÀÇ ¿¬°á ÈÄ¿¡µµ ATmega128°úÀÇ Åë½ÅÀÌ Àß µÇ´ÂÁö¸¦ Çѹø ´õ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. À̸¦ È®ÀÎÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀº AVR ĨÀÇ Signature¸¦ Àо´Â °ÍÀÔ´Ï´Ù. Sinature¶õ ĨÀÇ °íÀ¯ ID·Î¼­, Main ÅÇÀÇ Read Signature ¹öÆ°À» ´­·¯ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÐÀº ÈÄ, 0x1E 0x97 0x02 Signature matches selected device ¶ó´Â ¸Þ½ÃÁö°¡ ³ª¿À¸é Á¤»óÀÔ´Ï´Ù. ÀÌ´Â ATMega128¿¡ ÇØ´çÇÏ´Â °íÀ¯ ID °ªÀÔ´Ï´Ù. 9. ´ÙÀ½À¸·Î Program ->Input HEX File¿¡ ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¶§ À§Ä¡´Â óÀ½ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÒ ¶§ ÁöÁ¤ÇÑ Æú´õÀ̸ç, ¸¸¾à ÇÁ·ÎÁ§Æ®ÀÇ À§Ä¡¸¦ ãÁö ¸øÇÏ°Ú´Ù¸é, ±âº» Æú´õÀÎ ³»¹®¼­¿¡¼­ È®ÀÎÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®´Â ÀÎÅÚ¿¡¼­ ¸¸µç HEX¶ó´Â Æ÷¸ËÀ¸·Î º¯È¯µÇ¾î ´Ù·ç¾îÁý´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ HEX ÆÄÀÏÀ» ¼±ÅÃÇØ ÁÝ´Ï´Ù. 10. ÀÌÁ¦ ¸¶Áö¸·À¸·Î Input HEX File ¾Æ·¡ "Program" ¹öÆ°À» ´©¸£¸é ´Ù¿î·ÎµùÀÌ ½ÃÀ۵˴ϴÙ. À§ ĸÃÄÈ­¸éÀÇ ¾Æ·¡Ã³·³ OK!°¡ ¿©·¯ ¹ø ¶ß¸é ¹®Á¦ ¾øÀÌ ´Ù¿î·ÎµùÀÌ ¿Ï·á µÈ °ÍÀ̸ç, ´Ù¿î·ÎµùÀÌ ¿Ï·áµÈ ÈÄ¿£ ÇÁ·Î±×·¥ÀÌ ÀÚµ¿À¸·Î ½ÇÇàµË´Ï´Ù. ´ÙÀ½°ú °°ÀÌ LED¿¡ ºÒÀÌ µé¾î¿À¸é ´ë¼º°øÀÔ´Ï´Ù! ¿©±â±îÁö ¹®Á¦¾øÀÌ ¸¶Ä¡¼Ì´Ù¸é MCU ¼¼°è·ÎÀÇ ¼º°øÀûÀÎ ÀÔÀåÀ» ÃàÇϵ帳´Ï´Ù~! Ãß°¡ÀûÀ¸·Î Port A¿¡ ÇØ´çÇÏ´Â 8Çɵé Áß ¾î¶² °÷¿¡ ¿¬°áÇÏ´õ¶óµµ ºÒÀÌ µé¾î¿À´Â °ÍÀ» È®ÀÎÇØ º¸½Ã°í, ¶Ç Port B³ª C µî Ãâ·Â ¼³Á¤À» ÇÏÁö ¾ÊÀº ´Ù¸¥ ÇÉ¿¡¼­´Â ºÒÀÌ µé¾î¿ÀÁö ¾Ê´Â °Í ¿ª½Ã È®ÀÎÇØ º¾½Ã´Ù. ÀÌó·³ °³¹ß Å°Æ®°¡ ÀÛµ¿ ÁßÀÎ »óÅ¿¡¼­ ÇÉÀ» ¹Ù²Ù¾îµµ ¾Æ¹«·± ¹®Á¦°¡ ¾øÀ¸´Ï °ÆÁ¤ ¸¶½Ã±â ¹Ù¶ø´Ï´Ù. <¾Æ½Î ±¸Å¸ ±×¸²>