¡¼CCP, PWM¶õ? ¡½
¿©±â¿¡¼´Â, PIC¿¡ ³»ÀåÇÏ°í ÀÖ´Â ¡¸CCP ¸ðµâ¡¹ÀÇ ¡¸PWM ¸ðµå¡¹¿¡¼ÀÇ
»ç¿ë¹ýÀ» ¼³¸íÇÏ°í ÀÖ½À´Ï´Ù.
¡¡¡¡¡¡CCP = Compare/Capture/PWM
¡¡¡¡¡¡PWM = Pulse Width Modulation(ÆÞ½ºÆøº¯Á¶)
PWM(ÆÞ½ºÆøº¯Á¶)¶õ ¹«½¼ ÀÏÀԴϱî?¡¡
±âº»ÀûÀÎ ¿ø¸®´Â, Áֱ⸦ ÀÏÁ¤ÇÏ°Ô ÇØ, ÆÞ½ºÀÇ ¡¸1¡¹(¿Í)°ú¡¸0¡¹ÀÇ ºñÀ²À» °¡º¯
(À¸)·Î ÇÏ´Â °ÍÀ¸·Î, Æò±ÕÀÇ ¿¡³ÊÁö¸¦ °¡º¯ Á¦¾îÇÏ·Á°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
¿ëµµ·Î¼´Â, ¿©·¯ °¡Áö ÀÖ½À´Ï´Ù¸¸, ¾Æ·¡¿Í °°À̵îÀÌ ´ëÇ¥ÀûÀÎ °ÍÀÔ´Ï´Ù.
¡¡¡¡¡¤¸ðÅÍÀÇ ¼Óµµ Á¦¾î
¡¡¡¡¡¤¸ðÅÍÀÇ È¸Àü¼öÁ¦¾î
¡¡¡¡¡¤µ¥ÀÌÅÍ Àü¼Û¿ëÀÇ º¯Á¶ ¹æ½Ä(¿Í ÀÌÀ¯°¡ ´Ù¸¨´Ï´Ù¸¸)
¡¼PWMÀÇ ¿ø¸®¡½
¿©±â¿¡¼´Â ¸ðÅÍÀÇ ¼Óµµ Á¦¾î¸¦ ¿¹¿¡, ÆÞ½ºÆøº¯Á¶ÀÇ ¿ø¸®¸¦ ¼³¸íÇÕ´Ï´Ù.
¿ì¼±, PWM ½ÅÈ£´Â ¹Ø±×¸²°ú °°Àº ÀÏÁ¤ ÁÖ±âÀÇ ½ÅÈ£°¡ µÇ°í ÀÖ½À´Ï´Ù.
¿©±â¼(a)(b)¸¦ ºñ±³Çϸé(ÀÚ), ¿¹¸¦ µé¸é, ¡¸H¡¹ÀÇ ±¸°£¿¡¼ ¸ðÅÍ°¡ ON°¡ µÇ¾î, ¡¸L¡¹
ÀÇ ±¸°£¿¡¼ OFF°¡ µÈ´Ù°í Çϸé, Æò±ÕÀÇ ON¿ÍÇϱâ À§ÇÑ ¿¡³ÊÁö´Â
ON±¸°£ÀÇ ±ä, Áï µàƼÀÇ Å«(b)(ºÐ)ÆíÀÌ ¸¹¾ÆÁý´Ï´Ù.
ÀÌ ½ÅÈ£ÀÇ ¹Ýº¹ ÁֱⰡ, ¸ðÅÍÀÇ È¸Àü¼öº¸´Ù ÃæºÐÈ÷ ºü¸¥ ¼Óµµ, Áï
³ôÀº ÁÖÆļöÀ̸é, ¸ðÅÍÀÇ È¸Àü ¿¡³ÊÁö·Î¼´Â Æò±Õ Àü·ÂÀ¸·Î °í
¾òÀ» ¼ö ÀÖ±â (À§ÇØ)¶§¹®¿¡, (b)(ºÐ)ÆíÀÌ °í¼Ó ȸÀüÀ» ÇÏ°Ô µË´Ï´Ù.
ÀÌ°ÍÀ» ÀÌ¿ëÇØ, ¡¸H¡¹ÀÇ ±¸°£ÀÇ ÆøÀ» Á¦¾îÇÏ´Â °ÍÀ¸·Î, Æò±Õ Àü·ÂÀ» Á¦¾îÇØ
(ÀÌ)¶ó°í ¸ðÅÍÀÇ ¼Óµµ¸¦ Á¦¾îÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¼CCPÀÇ ¼³Á¤°ú µ¿ÀÛ¡½
CCP ¸ðµâÀÇ µ¿ÀÛÀº, ±× ½Ã°£ÀÇ Á¦¾î´Â ¸ðµÎ TIMER2¿¡ ÀÇÁ¸
ÇÏ°í ÀÖ½À´Ï´Ù. µû¶ó¼, CCPÀÇ µ¿ÀÛÀº TIMER2¿Í ÇÔ²² ÇÏ°í »ý°¢ÇÒ ÇÊ¿ä
(ÀÌ)°¡ ÀÖ½À´Ï´Ù.
ÀÌ °ü·ÃÀ» ±×¸²À¸·Î Àú¼úÇß´ø °ÍÀÌ ¹Ø±×¸²À¸·Î, Á¶±Ý º¹ÀâÇÑ °ü°è°¡ µÇ¾î ÀÖ°í
. ÀÌ°ÍÀ¸·Î µ¿ÀÛÀ» ¼³¸íÇÕ´Ï´Ù.
TMR2´Â »ó½Ã PICÀÇ Å¬¶ô(Tosc)À¸·Î Ä«¿îÆ®¾÷ µ¿ÀÛÀ» ÇÏ°í ÀÖ½À´Ï´Ù.
ÇÁ¸®½ºÄÉÀ̶óÀÇ ÁöÁ¤ÀÌ ÀÖÀ» ¶§´Â TMR2ÀÇ Àü´Ü¿¡ ÇÁ¸®½ºÄÉÀ̶ó°¡
»ðÀԵ˴ϴÙ.
¿ì¼±, PWMÀÇ Ãâ·Â ÆÞ½ºÀÇ ÀÏÁ¤ ÁÖ±â´Â, PR2 ·¹Áö½ºÅÍ·Î ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ PR2¿Í TMR2ÀÇ »óÀ§ 8ºñÆ®´Â Ç×»ó ºñ±³±â·Î ºñ±³µÇ°í ÀÖ¾î
¾çÀÚÀÇ °ªÀÌ ÀÏÄ¡Çϸé(ÀÚ), ºñ±³±â(Period Comparator)ÀÇ Ãâ·ÂÀ¸·Î,
TMR2´Â 0 Ŭ¸®¾î µÇ¾î CCPÀÇ Ãâ·ÂÀº ¡¸High¡¹¿¡ ¼¼Æ® µË´Ï´Ù.
µ¿½Ã¿¡, µàƼ¸¦ ¼³Á¤ÇÏ´Â DC1 ·¹Áö½ºÅÍ(10ºñÆ®)ÀÇ ³»¿ëÀÌ,
CCPRxH ·¹Áö½ºÅÍ¿¡ Ä«ÇÇµÇ¾î µàƼ°¡ Ãʱâȵ˴ϴÙ.
¡¡(DC1 ·¹Áö½ºÅÍÀÇ ³»¿ëÀº CCPRxL ·¹Áö½ºÅÍ¿¡ CCPxCONÀÇ 2ºñÆ®°¡
¡¡¡¡ºÎ°¡µÈ °ÍÀÔ´Ï´Ù. )
ÀÌ µàƼ ·¹Áö½ºÅÍ(CCPRxH)¿Í TMR2(10ºñÆ®)µµ »ó½Ã ºñ±³µÇ°í
(ÀÌ)¶ó°í ³»·Á ÀÏÄ¡Çϸé(ÀÚ), ºñ±³±â(Duty Comparaotr)ÀÇ Ãâ·ÂÀ¸·Î CCP Ãâ·ÂÀÌ
¡¸Low]¿¡ ¸®¼ÂÆ® µË´Ï´Ù.
µû¶ó¼, PR2º¸´Ù DC1ÀÇ »óÀ§ 8ºñÆ®ÀÇ °ªÀÌ ÀÛÀ¸¸é, CCP Ãâ·ÂÀº
High¿Í Low¸¦ ÀÏÁ¤ Áֱ⿡ ¹Ýº¹ÇÏ°Ô µË´Ï´Ù.
ÀÌ ¶§ÀÇ CCP Ãâ·ÂÀÇ ÁÖ±â¿Í High¿Í LowÀÇ ºñÀ²(Áï µàƼ)ÀÇ
°ü°è´Â ¹Ø±×¸²°ú °°ÀÌ µË´Ï´Ù.
¡¼½ÇÁ¦ÀÇ ÆÞ½ºÆø°ú ºÐÇØ°¡´É¡½
±×·³, CCP Ãâ·Â°ú µàƼÀÇ ½ÇÁ¦ÀÇ ¼³Á¤ ºÐÇØ°¡´ÉÀº ¾î¶»°Ô µÈ´Ù
ÀԴϱî?
ÀÌ°Í¿¡´Â TMR2ÀÇ Å¬¶ôÀÌ º£À̽º°¡ µË´Ï´Ù. ÇÁ¸®½ºÄÉÀÌ¶ó°¡ ¼³Á¤
µÇ¾î ÀÖÁö ¾ÊÀº(Áï ¡¸1¡¹)½Ã¿¡´Â, TMR2¿¡ 2ºñÆ®ÀÇ PS°¡ ºÎ°¡µÇ°í
10ºñÆ®ÀÇ Ä«¿îÅͷμ µ¿ÀÛÇØ, ÀԷ Ŭ¶ôÀº Tosc°¡ µË´Ï´Ù¸¸,
ÇÁ¸®½ºÄÉÀÌ¶ó¸¦ »ç¿ëÇÒ ¶§¿¡´Â, ÇÁ¸®½ºÄÉÀÌ¶ó°¡ ºÎ°¡µÈ Ä«¿îÅÍ·Î ÇØ
(ÀÌ)¶ó°í µ¿ÀÛÇØ, ÀԷ Ŭ¶ôÀº ToscÀÇ 4¹è°¡ µË´Ï´Ù.
ÀÌ°ÍÀ» ½Ä¿¡¼ Ç¥ÇöÇϸé(ÀÚ), ¾Æ·¡¿Í °°ÀÌ°¡ µË´Ï´Ù.
¡¡¡¡ÁÖ±â=(PR2£«1)¡¿4Tosc¡¿(TMR2ÀÇ ÇÁ¸®½ºÄÉÀ̸£Ä¡)
¡¡¡¡µàƼ=DC1¡¿Tosc¡¿(TMR2ÀÇ ÇÁ¸®½ºÄÉÀ̸£Ä¡)
°á°úÀûÀ¸·Î, ½ÇÁ¦ÀÇ °ªÀº ¾Æ·¡ Ç¥¿Í °°ÀÌ µË´Ï´Ù.
(1) PICÀÇ Å¬¶ôÀÌ20MHz¶§
¡¡¡¡¡¡ÁÖ±â=256¡¿4¡¿0.05¥ìsec¡¿1=51. 2¥ìsec=19. 53kHz
¡¡*1¡¡ÀÌ ºÐÇØ°¡´ÉÀº PR2º¸´Ù Å« °ªÀ» ¼³Á¤ÇÒ ¼ö ¾ø±â ¶§¹®¿¡.
PWMÀÇ ÁÖ±â(kHz) 1.22
4.88
19.53
39.06
78.12
156.3
208.3
ÇÁ¸®½ºÄÉÀ̶óÄ¡ 16
4
1
1
1
1
1
PR2ÀÇ ÃÖ´ëÄ¡ 0xFF
0xFF
0xFF
0x7F
0x3F
0x1F
0x17
ÃÖ´ë ºÐÇØ°¡´É(ºñÆ®) *1 10
10
10
9
8
7
5.5
¡¡¡¡¡¡ PR2º¸´Ù Å« °ªÀ» DC1·Î ¼³Á¤Çϸé(ÀÚ) µàƼ´Â100%°¡ µÈ´Ù.
(2) PICÀÇ Å¬¶ôÀÌ10MHz¶§
¡¡¡¡ÁÖ±â=256¡¿4¡¿0.1¥ìsec¡¿1=102.4¥ìsec=9. 77kHz
PWMÀÇ ÁÖ±â(kHz) 0.6
2.44
9.77
19.53
39.0
78.12
104.1
ÇÁ¸®½ºÄÉÀ̶óÄ¡ 16
4
1
1
1
1
1
PR2ÀÇ ÃÖ´ëÄ¡ 0xFF
0xFF
0xFF
0x7F
0x3F
0x1F
0x17
ÃÖ´ë ºÐÇØ°¡´É(ºñÆ®) 10
10
10
9
8
7
5.5
»óÇ¥¿Í °°Àº ½ÇÁ¦ÀÇ °ªÀÌ µÇÁö¸¸, ½Ç¿ë¿ªÀ¸·Î¼´Â, »ó±â ¾î´À
°æ¿ì¿¡µµ, Ȳ»öÀÇ Å׵θ®ÀÇ ¹üÀ§°¡ µÈ´Ù.
¡¼¸ðÅÍÀÇ PWM Á¦¾îÀÇ ½ÇÁ¦¡½
½ÇÁ¦ÀÇ ¸ðÅÍÀÇ ¼Óµµ Á¦¾î¸¦ PWM·Î ½Ç½ÃÇÏ´Â ¿¹¸¦ ¼³¸íÇÕ´Ï´Ù.
¿©±â¼ ¼³¸í¿¡ »ç¿ëÇÏ´Â ¸ðÅÍ Á¦¾îÀÇ È¸·Îµµ´Â ¹Ø±×¸²°ú °°Àº °ÍÀÔ´Ï´Ù.
ÀÌ È¸·Îµµ´Â ÇÊ¿äÇÑ ºÎºÐ¹Û¿¡ ±×·ÁÁ® ÀÖÁö ¾ÊÀ¸¹Ç·Î ÁÖÀÇ.
ÀÌ ±× ¹Û¿¡, 5 VÀü¿ø ȸ·Î¶óµçÁö, ±× ¿ÜÀÇ Æ÷Å並 »ç¿ëÇϴ ȸ·Î¶óµçÁö°¡ ÇÊ¿ä
(ÀÌ)°¡ µË´Ï´Ù.
ÀÌ È¸·Î¿¡¼´Â, PIC16C73A¸¦ »ç¿ëÇØ, ¸ðÅÍÀÇ Á¦¾î¿¡´Â, MOSFETÀÇ
Hºê¸´Áö ȸ·Î¸¦ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.
ÀÌ MOSFET¿¡ ÀÇÇÑ ¹æ¹ýÀº, FET¿¡¼ÀÇ Àü¾Ð µå·ÓÀ» ¸Å¿ì Àû°í
ÇÏ´Â °ÍÀÌ °¡´ÉÇØ, ÃÖ´ë È¿À²·Î ¸ðÅ͸¦ µå¶óÀ̺ê ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¶Ç PWM Á¦¾î¿¡´Â 2 ä³Î ÀÖ´Â CCP Ãâ·ÂÀ» Á¤È¸Àü°ú ¿ªÀü¿ëÀ¸·Î ±×°Í
»ç¿ëÇØ, Á¦¾î ¹æ¹ýÀº, ¾Æ·¡¿Í °°Àº´ÔÀÌ ÇÕ´Ï´Ù.
¡¡
¡¡¡¡Á¤È¸Àü¶§
¡¡¡¡¡¡Q1¸¦ ON(RC3¸¦ High)·Î ÇØ, Q4¸¦ CCP1·Î PWM µå¶óÀ̺긦 ÇÕ´Ï´Ù.
¡¡¡¡¡¡ÀÌ°ÍÀ¸·Î ¸ðÅÍ¿¡ ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊÀ¸·Î Àü·ù°¡ È帣°Ô µË´Ï´Ù.
¡¡¡¡¡¡Q2´Â OFF, Q3´Â CCP2ÀÇ µàƼ 0À¸·Î OFFÀΠä·Î ÇÕ´Ï´Ù.
¡¡¡¡¿ªÈ¸Àü¶§
¡¡¡¡¡¡Q2¸¦ ON(RC4¸¦ High)·Î ÇØ, Q3¸¦ CCP2·Î PWM µå¶óÀ̺긦 ÇÕ´Ï´Ù.
¡¡¡¡¡¡ÀÌ°ÍÀ¸·Î ¸ðÅÍ¿¡ ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î Àü·ù°¡ È帣°Ô µÇ¾î ¿ª¹æÇâÀ¸·Î
¡¡¡¡¡¡È¸ÀüÇÕ´Ï´Ù.
¡¡¡¡¡¡Q1´Â OFF, Q4´Â CCP1ÀÇ µàƼ 0À¸·Î OFFÀΠä·Î ÇÕ´Ï´Ù.
¡¡¡¡¡¡¡¡(¸ðÅÍ¿ëÀÇ Àü¿øÀº ¿ÜºÎ·ÎºÎÅÍ Vm¿Í GND¿¡ °¡¼¼ÇÕ´Ï´Ù)¡¡
¡¡
¡¼Hºê¸´Áö °³·®ÆÇ¡½
À ±×¸²ÀÇ Hºê¸´Áö¿¡´Â ¾Æ·¡¿Í °°Àº °áÁ¡ÀÌ ÀÖ½À´Ï´Ù.
(1) ¸ðÅÍ¿ëÀÇ Àü¿øÀÌ 5 VÀÌ»óÀ¸·Î ÇÒ ¼ö ¾ø´Ù.
(2) ¸ðÅÍ¿¡ °É¸®´Â Àü¾ÐÀº ON°ÔÀÌÆ® Àü¾ÐÀÌ 2 V ÇÊ¿äÇϱ⠶§¹®¿¡, 5 V-2V
¡¡¡¡ÀÇ ÃÖ´ë 3 V ¹Û¿¡ Â÷ÁöÁö ¾Ê±â ¶§¹®¿¡, 2 VºÐÀÌ ¼Ò¿ë¾ø°Ô µÇ¾î ¹ö¸°´Ù.
»ó±â °áÁ¡À» ÇØ°áÇÑ È¸·Î°¡ ¹Ø±×¸²ÀÔ´Ï´Ù.¡¡PWMÀÇ Á¦¾î¿ëÀÇ FET¸¦
2 SK2231¿Í Æä¾îÀÇ PÇü MOS FET·Î º¯°æÇØ, ÇÑÃþ ´õ Æ®·£Áö½ºÅ͸¦ 1´Ü
Ãß°¡ÇØ PIC·ÎºÎÅÍ Á¦¾î ÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) Çß½À´Ï´Ù.
ÀÌ·¸°Ô ÇÏ´Â °ÍÀ¸·Î, ¸ðÅÍ¿ë Àü¿ø VmÀÇ Àü¾Ð¿¡ Á¦ÇÑÀÌ ¾ø¾îÁö´Â °Í°ú
¸ðÅÍ¿¡ °É¸®´Â Àü¾ÐÀÌ °ÅÀÇ Àü¿ø Àü¾Ð Vm±îÁö·Î ÇÏ´Â °ÍÀÌ ¼º°ú
.¡¡ÀÌ°ÍÀ¸·Î Vm¸¦ À¯È¿ÇÏ°Ô »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¼PWM ¸ðµåÀÇ ·¹Áö½ºÅÍ ¼³Á¤ ¼ø¼¡½
PWM ¸ðµå·Î CCP ¸ðµâÀ» »ç¿ëÇÒ ¶§ÀÇ ¼ø¼´Â ¾Æ·¡¿Í °°Àº´ÔÀÌ ÇÕ´Ï´Ù.
¶Ç °¢ ·¹Áö½ºÅÍÀÇ ÀÚ¼¼ÇÑ °ÍÀº ±×¸²°ú °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù.
¾Æ·¡¿Í °°Àº ·¹Áö½ºÅÍ ¸íÁßÀÇ ¡¸x¡¹¿¡´Â 1À̳ª 2°¡ µé¾î°©´Ï´Ù. Áï 2°³ ÀÖ´Ù
CCP ¸ðµâÀÇ ¾î´À ÂÊÀÎÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
(1) Bank1¿¡ ¼¼Æ® ÇÑ´Ù
(2) TRISC ·¹Áö½ºÅÍ·Î CCP Ãâ·Â Æ÷Å並 Ãâ·Â ¸ðµå·Î ¼³Á¤ÇÑ´Ù
¡¡¡¡CCP1=RC2¡¡¡¡CCP2=RC1¡¡(¿Í)°ú ´ëÀÀÇÕ´Ï´Ù. ÀÌ RC1, 2¸¦ Ãâ·Â ¸ðµå
¡¡¡¡(À¸)·Î ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é CCPÀÇ Ãâ·ÂÀº ÇÉ¿¡ ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù.
¡¡¡¡¶Ç 1À¸·Î 2°¡ ¿ªÀÇ Æ÷Åä ¹øÈ£°¡ µÇ¾î ÀÖÀ¸¹Ç·Î ÁÖÀÇ.
(3) TMR2ÀÇ PR2 ·¹Áö½ºÅÍ¿¡ Áֱ⸦ ¼³Á¤ÇÑ´Ù
¡¡¡¡ÁÖ±â´Â ÃÖ´ë 8ºñÆ®ÀÇ °ªÀÔ´Ï´Ù. »óÇ¥·ÎºÎÅÍ »ç¿ëÇÏ´Â ¼³Á¤Ä¡¸¦ °áÁ¤ÇØ ¼¼Æ®
¡¡¡¡ÇÕ´Ï´Ù.
(4) Bank0¿¡ µÇµ¹¸°´Ù
(5) CCPxCON ·¹Áö½ºÅÍ·Î CCPÀÇ »ç¿ë ¸ðµå¸¦ ¼³Á¤ÇÑ´Ù.
¡¡¡¡»ç¿ë ¸ðµå´Â PWMÀ̱⠶§¹®¿¡, ÇÏÀ§ 4ºñÆ®¿¡ 11 xx¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¡¡¡¡¡¡(ÀÌ xx´Â 1¿¡¼µµ 0¿¡¼µµ ¾îµð¶óµµ ÁÁ´Ù°í ÇÏ´Â ÀǹÌÀÔ´Ï´Ù. )
¡¡¡¡»óÀ§ 4ºñÆ®´Â µàƼġ¸¦ ¼¼Æ® ÇϹǷΠ³ªÁß¿¡ ¼¼Æ® ÇÕ´Ï´Ù.
(6) CCPRxL ·¹Áö½ºÅÍ¿Í CCPxCON ·¹Áö½ºÅÍ¿¡ µàƼġ¸¦ ¼³Á¤ÇÑ´Ù.
¡¡¡¡µàƼġ´Â ÃÖ´ë 10ºñÆ®ÀÇ °ªÀ» ¼¼Æ® ÇÕ´Ï´Ù¸¸, ¿ì¼± CCPRxL
¡¡¡¡·¹Áö½ºÅÍ¿¡´Â µàƼġÀÇ »óÀ§ 8ºñÆ®¸¦ ¼¼Æ® ÇØ, ÇÏÀ§ 2ºñÆ®´Â
¡¡¡¡ÀüÇ×ÀÇ CCPxCON ·¹Áö½ºÅÍÀÇ »óÀ§ 2ºñÆ®¿¡ ¼¼Æ® ÇÕ´Ï´Ù.
(7) TMR2ÀÇ ÇÁ¸®½ºÄÉÀ̸£Ä¡¸¦ ¼³Á¤ÇØ Å¸À̸Ӹ¦ ½ºÅ¸Æ® ½ÃŲ´Ù.
¡¡¡¡¡¡PWM ¸ðµå¿¡¼´Â Æ÷½ºÆ®½ºÄÌ·¯´Â »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ÇÁ¸®½ºÄÉÀ̶ó¸¸
¡¡¡¡¡¡¼³Á¤ÇÕ´Ï´Ù. µ¿½Ã¿¡ TMR2ON ºñÆ®µµ 1À¸·Î¼ ŸÀ̸Ӹ¦ ½ºÅ¸Æ®
¡¡¡¡¡¡½ÃÅ°¸é(ÀÚ) CCPx°¡ µ¿ÀÛÀ» °³½ÃÇÕ´Ï´Ù.
¡¼ÇÁ·Î±×·¥¿¹¡½
ÀÌÇÏ´Â ½ÇÁ¦ÀÇ ¸ðÅÍ ¼Óµµ Á¦¾î¸¦ À§ÇÑ Á¦¾î ºÎºÐÀÇ ÇÁ·Î±×·¥¿¹
ÀÔ´Ï´Ù.
(1) ÃʱâÈ ºÎºÐ
¡¡¡¡CCP¸¦ PWM ¸ðµå·Î »ç¿ëÇϱâ À§ÇÑ Ãʱ⼳Á¤ÀÔ´Ï´Ù.
¡¡¡¡ÁÖ±â´Â ÃÖ´ëÀÇ FF, ŸÀÌ¸Ó 2´Â ÇÁ¸®½ºÄÉÀ̸£Ä¡ 1À¸·Î ¼³Á¤ÇÕ´Ï´Ù.
;*******************************
;¡¡Initialize
;*******************************
INIT
¡¡¡¡¡¡¡¡BSF¡¡¡¡ STATUS, RP0¡¡¡¡¡¡;Bank1·Î ÀüȯÇÏ°í
¡¡¡¡¡¡¡¡MOVLW¡¡ 081H¡¡¡¡¡¡¡¡¡¡¡¡;RC1~RC4¸¦ Ãâ·Â ¸ðµå¿¡
¡¡¡¡¡¡¡¡MOVWF¡¡ TRISC¡¡¡¡¡¡¡¡¡¡
;**** PWM setting¡¡****
¡¡¡¡¡¡¡¡MOVLW¡¡ 0FFH¡¡¡¡¡¡¡¡¡¡¡¡;Áֱ⠷¹Áö½ºÅÍ¿¡ FF¸¦ ¼¼Æ®
¡¡¡¡¡¡¡¡MOVWF¡¡ PR2¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡BCF¡¡¡¡ STATUS, RP0¡¡¡¡¡¡;Bank0¿¡ µÇµ¹¸°´Ù
;**** H bridge set to stop mode¡¡*****¡¡¡¡BCF¡¡¡¡ PORTC, 3¡¡¡¡¡¡¡¡ ;Hºê¸´Áö¸¦ Off·Î ÇÑ´Ù
¡¡¡¡BCF¡¡¡¡ PORTC, 4;**** PWM mode setting ****
¡¡¡¡¡¡¡¡MOVLW¡¡ 0CH¡¡¡¡¡¡¡¡¡¡¡¡ ;PWM ¸ðµå ¼³Á¤ µ¥ÀÌÅÍ
¡¡¡¡¡¡¡¡MOVWF¡¡ CCP1CON¡¡¡¡¡¡¡¡ ;CCP1CONÀÇ ¼³Á¤
¡¡¡¡¡¡¡¡MOVWF¡¡ CCP2CON¡¡¡¡¡¡¡¡ ;CCP2CONÀÇ ¼³Á¤
;**** PWM DUTY initialize ****
¡¡¡¡¡¡¡¡CLRF¡¡¡¡CCPR1L¡¡¡¡¡¡¡¡¡¡;CCP1¸¦ µàƼ 0 ¼³Á¤
¡¡¡¡¡¡¡¡CLRF¡¡¡¡CCPR2L¡¡¡¡¡¡¡¡¡¡;CCP2¸¦ µàƼ 0 ¼³Á¤
;**** TIMER2 setting and start¡¡****
¡¡¡¡¡¡¡¡MOVLW¡¡ 04H¡¡¡¡¡¡¡¡¡¡¡¡ ;TIMER2 on prescale=1
¡¡¡¡¡¡¡¡MOVWF¡¡ T2CON¡¡¡¡¡¡¡¡¡¡ ;TIMER2 ½ºÅ¸Æ®
¡¡¡¡ÀÌ ÀÌÈÄ´Â ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ °è¼ÓµÈ´Ù
(2) ȸÀü Á¦¾î ºÎºÐ
¡¡¡¡ÀÌ ¸ðÅÍÀÇ È¸Àü Á¦¾î´Â ½áºê·çƾÀÌ µÇ°í ÀÖ½À´Ï´Ù.
¡¡¡¡È¸Àü¼öÀÇ µ¥ÀÌÅ͸¦ ºÎÈ£ºÎ 2¹ÙÀÌÆ®·Î, SPDH¿Í SPDL¿¡ °Ý³³ÇÏ°í ³ª¼,
¡¡¡¡ÀÌ ½áºê·çƾÀ» CALL ÇÕ´Ï´Ù.
¡¡¡¡´Ù¸¸, PWMÀÇ µàƼÀÇ ºÐÇØ°¡´ÉÀº 10ºñÆ®À̱⠶§¹®¿¡, SPDLÀÇ
¡¡¡¡ÇÏÀ§ 5ºñÆ®´Â »ç¿ëµÇÁö ¾Ê°í, SPDHÀÇ ÇÏÀ§ 7ºñÆ®¿Í SPDLÀÇ »óÀ§ 3ºñÆ®
¡¡¡¡ÀÇ ÇÕ°è 10ºñÆ®¸¸ÀÌ »ç¿ëµË´Ï´Ù.
¡¡¡¡½áºê·çƾÀÇ Ã³¸®·Î¼´Â, ¿ì¼± ÀÏ´Ü ¸ðµç Hºê¸´ÁöÀÇ 4°³ÀÇ
¡¡¡¡¼ÒÀÚ¸¦ ¸ðµÎ OFF·Î¼·ÎºÎÅÍ, SPDHÀÇ ºÎÈ£¿¡ ÀÇÇØ, Á¤È¸ÀüÀ̳ª ¿ªÈ¸Àü
¡¡¡¡ÀÎÁö¸¦ ÆÇ´ÜÇØ °¢°¢ÀÇ Ã³¸®¸¦ ½Ç½ÃÇÕ´Ï´Ù.
;***************************************
; Motor direction control subroutine
; Speed data are set in SPDH and SPDL
; 2 bytes data with sign.
;¡¡SPDH= sign + 7 bits data
;¡¡SPDL= 3 bits data + not used data
;***************************************
MOTOR
;**** ¿ì¼± ÀÏ´Ü ¸ðµç °ÍÀ» OFF·Î ÇÑ´Ù *****
¡¡¡¡¡¡¡¡BCF¡¡¡¡ PORTC, 3¡¡¡¡¡¡¡¡ ;set Q1 off
¡¡¡¡¡¡¡¡BCF¡¡¡¡ PORTC, 4¡¡¡¡¡¡¡¡ ;set Q4 off
¡¡¡¡¡¡¡¡CLRF¡¡¡¡CCPR1L¡¡¡¡¡¡¡¡¡¡;set CCP1 to 0
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP1CON, CCP1X
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP1CON, CCP1Y
¡¡¡¡¡¡¡¡CLRF¡¡¡¡CCPR2L¡¡¡¡¡¡¡¡¡¡;set CCP2 to 0
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP2CON, CCP2X
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP2CON, CCP2Y
;**** SPDHÀÇ ºÎÈ£ÀÇ Ã¼Å© ***
¡¡¡¡¡¡¡¡BTFSS¡¡ SPDH, 7¡¡¡¡¡¡¡¡¡¡;check sign
¡¡¡¡¡¡¡¡GOTO¡¡¡¡NORMAL
¡¡¡¡¡¡¡¡GOTO¡¡¡¡REVERSE
;**** ¿ªÈ¸Àü Á¦¾î ****
REVERSE
;**** set new speed ****
¡¡¡¡¡¡¡¡RLF¡¡¡¡ SPDL, W¡¡¡¡¡¡¡¡¡¡;shift SPDL
¡¡¡¡¡¡¡¡RLF¡¡¡¡ SPDH, W¡¡¡¡¡¡¡¡¡¡;shift with carry
¡¡¡¡¡¡¡¡MOVWF¡¡ CCPR2L¡¡¡¡¡¡¡¡¡¡;set CCP2
¡¡¡¡¡¡¡¡BTFSS¡¡ SPDL, 6¡¡¡¡¡¡¡¡¡¡;test 1 or 0
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP2CON, CCP2X¡¡
¡¡¡¡¡¡¡¡BTFSC¡¡ SPDL, 6
¡¡¡¡¡¡¡¡BSF¡¡¡¡ CCP2CON, CCP2X
¡¡¡¡¡¡¡¡BTFSS¡¡ SPDL, 5
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP2CON, CCP2Y
¡¡¡¡¡¡¡¡BTFSC¡¡ SPDL, 5
¡¡¡¡¡¡¡¡BSF¡¡¡¡ CCP2CON, CCP2Y
;***** ȸÀü °³½Ã ****¡¡¡¡¡¡
¡¡¡¡¡¡¡¡BSF¡¡¡¡ PORTC, 4¡¡¡¡¡¡¡¡ ;set Q4 on
¡¡¡¡¡¡¡¡RETURN
;******* Á¤È¸Àü Á¦¾î ***
NORMAL
;**** set new speed data ****
¡¡¡¡¡¡¡¡RLF¡¡¡¡ SPDL, W¡¡¡¡¡¡¡¡¡¡;shift SPDL
¡¡¡¡¡¡¡¡RLF¡¡¡¡ SPDH, W¡¡¡¡¡¡¡¡¡¡;shift with carry
¡¡¡¡¡¡¡¡MOVWF¡¡ CCPR1L¡¡¡¡¡¡¡¡¡¡;set CCP1
¡¡¡¡¡¡¡¡BTFSS¡¡ SPDL, 6
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP1CON, CCP1X
¡¡¡¡¡¡¡¡BTFSC¡¡ SPDL, 6
¡¡¡¡¡¡¡¡BSF¡¡¡¡ CCP1CON, CCP1X
¡¡¡¡¡¡¡¡BTFSS¡¡ SPDL, 5
¡¡¡¡¡¡¡¡BCF¡¡¡¡ CCP1CON, CCP1Y
¡¡¡¡¡¡¡¡BTFSC¡¡ SPDL, 5
¡¡¡¡¡¡¡¡BSF¡¡¡¡ CCP1CON, CCP1Y
;**** ȸÀü °³½Ã *****
¡¡¡¡¡¡¡¡BSF¡¡¡¡ PORTC, 3¡¡¡¡¡¡¡¡ ;set Q1 on
¡¡¡¡¡¡¡¡RETURN
¡¡¡¡¡¡¡¡¡¡¸ñÂ÷
ÆäÀÌÁö·Î