ºî¶ÈÆü»ï
¥Þ¥¤¥³¥ó½é¿´¼Ô¤Ë¤è¤ë¥Þ¥¤¥³¥óÄ©Àïµ
Ìܼ¡
µ»ö¤Ë¤Ä¤¤¤Æ¤Î¥³¥á¥ó¥È¤Ïµ»ö¤´¤È¤ËÃÖ¤¤¤Æ¤¢¤ë¥³¥á¥ó¥ÈÍó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¤Þ¤·¡£
¡¡
ÃæÅÓȾü¤Ê¤È¤³¤í¤Ç»ß¤Þ¤Ã¤Æ¤¿¤Î¤Çº£¹¹¤À¤±¤É¹¹¿·(´À)
PSoC¤Î29466¤ò»È¤Ã¤ÆYMZ294¤µ¤ó¤òÁà¤Ã¤Æ¤ß¤ë¡£
29466¤ÈYZM294¤ò¢¤Î¤è¤¦¤Ë¤Ä¤Ê¤°¡£
29466 | YMZ294 | È÷¹Í |
P0[0] | 4/6 | PWM8¤Ç4MHz¤Î¥¯¥í¥Ã¥¯À¸À® |
P1[0] | /WR | |
P1[1] | /CS | |
P1[2] | A0 | |
P1[3] | /IC | |
P2[0] | D0 | |
P2[1] | D1 | |
¡§ | ¡§ | |
P2[7] | D7 |
P1[0]¡ÁP1[3]¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ'0'¤«'1'¤ò½ÐÎϤ¹¤ë´Ø¿ô¤òÀè¤ËÍÑ°Õ¤·¤Æ¤ª¤¯¡£
¢¨¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤è¤ë¤È/WR¤È/CS¤ÏƱ»þ¤ËÀßÄꤷ¤Æ¤â¤¤¤¤¤è¤¦¤Ê¤Î¤Ç°ì½ï¤Ë½ÐÎϤ¹¤ë¡£
void wr_low() { PRT1DR &= ~0x03; } void wr_high() { PRT1DR |= 0x03; } void a0_adr() { PRT1DR &= ~0x04; } void a0_dat() { PRT1DR |= 0x04; } void ic_rst() { PRT1DR &= ~0x08; } void ic_set() { PRT1DR |= 0x08; }
¡Ê»²¹Í¤Ë¤·¤¿¥µ¥¤¥È¡Ë
PSoC/ÈÆÍѥݡ¼¥È¤ò»ÈÍѤ·¤è¤¦
¼¡¤Ë¥¢¥É¥ì¥¹¤È¥Ç¡¼¥¿¤ò»ØÄꤷ¤Æ¥Ç¡¼¥¿¤òÁ÷¤ë´Ø¿ô¤òºî¤ë¡£
void ad_set(BYTE adr, BYTE dat) { // [1]address input PRT2DR = adr; // [2]address write enabled(/WR=0, /CS=0, A0=0) a0_adr(); wr_low(); // [3]address write disabled(/WR=1, /CS=1, A0=0) wr_high(); // [4]data input PRT2DR = dat; // [5]data write enabled(/WR=0, /CS=0, A0=1) a0_dat(); wr_low(); // [6]data write disabled(/WR=1, /CS=1, A0=1) wr_high(); }
¤¢¤È¤Ï¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¥ì¥¸¥¹¥¿¤Î¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ¥Ç¡¼¥¿¤òÁ÷¤Ã¤Æ¤¢¤²¤ì¤ÐYMZ294¤ò¼«Í³¤ËÁà¤ë¤³¤È¤¬¤Ç¤¤ë¡£
Îã)
ad_set(0x07, 0x38)¢ª³Ú²»¤Î#A¡Á#C¤ò½ÐÎÏ¡£
ad_set(0x08, 0x0F)¢ª#A¤Î²»Î̤òÀßÄê¡£
³Ú²»¤Î¼þÇÈ¿ô¤òÀßÄꤷ¤Æ½ÐÎϤ¹¤ë´Ø¿ô
void tone(BYTE ch, BYTE pit, BYTE oct, BYTE vel)
¤òºî¤ë¡£
ch¤Ç³Ú²»¤Î¥Á¥ã¥ó¥Í¥ë¤ò¡¢
pit¤Èoct¤Ç²»Äø¤ò(Î㤨¤ÐC4¤È¤«D#5¤È¤«)¡¢
vel¤Ç¥Ù¥í¥·¥Æ¥£¤ò¤½¤ì¤¾¤ìÀßÄê¤Ç¤¤ë¡£
Îã)
tone(1,tnC,4,0x0F)¢ª#A¤ÇC4¤ò²»Î̺ÇÂç¤Ç½ÐÎÏ¡£
¢¨pit¤Ï#define¤Ç¤½¤ì¤¾¤ì¿ôÃͤ˳ä¤êÅö¤Æ¤Æ¤¢¤ë¡£
¡Ê²»Äø¤ÎÀßÄê¤Ç»²¹Í¤Ë¤·¤¿¥µ¥¤¥È¡Ë
PSG¤Ø¤ÎÆ»
¤Ä¤¤¤Ç¤Ë¥Î¡¼¥È¥ª¥Õ(ÌĤäƤ¿²»¤ò»ß¤á¤ë)¤Î´Ø¿ô
void noff(BYTE ch)
¤âºî¤ë¡£Ãæ¿È¤Ï¤½¤Î¥Á¥ã¥ó¥Í¥ë¤Î²»Î̤ò£°¤Ë¤·¤Æ¤¤¤ë¤À¤±¡£
Tick(ʬ²òǽ)¤ò48¤ËÀßÄꤷ¤Æ¡¢¥¿¥¤¥Þ³ä¤ê¹þ¤ß¤ÇÊÑ¿ôtic¤ÎÃͤòÁý¤ä¤¹¤³¤È¤Ç¶Ê¤ò±éÁÕ¤¹¤ë¡£
BPM¤Ï¥¿¥¤¥Þ³ä¤ê¹þ¤ß¤Î¼þ´üPeriod¤ÎÃͤòÊѤ¨¤ë¤³¤È¤ÇÀßÄê¤Ç¤¤ë(¤¬¡¢ºÙ¤«¤¯¤ÏÀßÄê¤Ç¤¤Ê¤¤¡Ä)
¤¢¤È¤Ïtic¤´¤È¤Ë¢¬¤Çºî¤Ã¤¿tone¤Ènoff¤òÃÖ¤¤¤Æ¤¤¤±¤ÐMML¤Î¤è¤¦¤ËÉèÌ̤òºî¤Ã¤Æ±éÁÕ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
Áá®˿¥Ò¥²¤Î¿Í¤Î²»³Ú¤òÂǤÁ¹þ¤ó¤Ç±éÁÕ¤·¤Æ¤ß¤Þ¤·¤¿¢ö
¤ª¤ª¤ª¡ª¤³¤ì¤À¡ª¤³¤ì¤¬Ê¹¤¤¿¤«¤Ã¤¿¤ó¤À¡ª¡ª(T¢¦T)
±éÁդλÅÊý¤Ê¤É¿Í¤½¤ì¤¾¤ì¤Î¤ä¤êÊý¤¬¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¤¬¡¢
ËͤϤ³¤ó¤Ê´¶¤¸¤Ç¼«Ê¬¤Îʹ¤¤¿¤«¤Ã¤¿²»³Ú¤ò¼«Ê¬¤Çºî¤Ã¤Æʹ¤¯¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡£
PSoC·¯¤È¤â¤À¤¤¤ÖÃçÎɤ¯¤Ê¤ì¤¿¡¢¤È»×¤¤¤Þ¤¹(¡°¡°¡¨
¶½Ì£¤Î¤¢¤ëÊý¤ÏÀ§ÈóÄ©À路¤Æ¤ß¤Æ¤Ï¡©
¥¿¥¤¥Þ¡¼¤ò»È¤¦¤È¤¤Îή¤ì
¡Timer¤òÀßÃÖ
¢Clock¤ÎÀßÄê(»È¤¤¤ä¤¹¤¤¼þÇÈ¿ô¤Ë¤·¤Æ¤ª¤¯)
£Period¤ÎÀßÄê(³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë´Ö³Ö¤ò·è¤á¤ë)
¤¥×¥í¥°¥é¥à¤ò½ñ¤¯(Timer¤Î³ä¤ê¹þ¤ßµö²Ä¤È¥¹¥¿¡¼¥È¡¢³ä¤ê¹þ¤ß½èÍý¥ë¡¼¥Á¥ó¤Îµ½Ò)
Äê´üŪ¤ËLED¤ÎÌÀ¤ë¤µ¤òÊѤ¨¤ë¤³¤È¤ËÀ®¸ù¡£
¤Þ¤¿Timer_PeriodWrite()¤òÍѤ¤¤ì¤ÐÅÓÃæ¤Ç³ä¤ê¹þ¤ß¤Î´Ö³Ö¤òÊѹ¹¤Ç¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£
Á´µ¡Ç½¤ÏÆ⡤µ¤ì¤ë¥ì¥¸¥¹¥¿¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Þ¤¹¡£
¤è¤Ã¤Æ³Æ¡¹¤Î¥ì¥¸¥¹¥¿¤ÎÃͤòÊѤ¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ²»¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥Ç¡¼¥¿¥·¡¼¥È¤¬¥Ü¥í¥Ü¥í¤Ë¤Ê¤Ã¤Æ¤¤¿¤Î¤Ç¡¢¡¢¡¢°Ê²¼¡¢¼«Ê¬ÍѤΥá¥â¡£
1. ³Ú²»¼þÇÈ¿ô¤ÎÀßÄê($00¡Á$05)
¡¡£³¥Á¥ã¥ó¥Í¥ë(#A¡¢#B¡¢#C)¤Î³Ú²»È¯À¸´ï¤Çºî¤é¤ì¤ë¶ë·ÁÇȤμþÇÈ¿ôft¤ò·è¤á¤ë¡£
¡¡ft¡áfst¡à16TP¡¡(fst¡á£²MHz)
¡¡TP¡áTP11¡ß2^12¡ÜTP10¡ß2^11¡ÜTP9¡ß2^10¡Ü¡Ä¡ÜTP2¡ß2^2¡ÜTP1¡ß2^1¡ÜTP0
2. ¥Î¥¤¥º²»¼þÇÈ¿ô¤ÎÀßÄê($06)
¡¡¥Î¥¤¥ºÈ¯À¸´ï¤Çºî¤é¤ì¤ë¥Î¥¤¥º²»¤Î¼þÇÈ¿ôfn¤ò·è¤á¤ë¡£
¡¡fn¡áfst¡à16NP
¡¡NP¡áNP4¡ß2^4¡ÜNP3¡ß2^3¡ÜNP2¡ß2^2¡ÜNP1¡ß2^1¡ÜNP0
3. ¥ß¥¥µ¡¼¤ÎÀßÄê($07)
¡¡³Æ¥Á¥ã¥ó¥Í¥ë(#A¡¢#B¡¢#C)Ëè¤Ë³Ú²»¤ª¤è¤Ó¥Î¥¤¥º²»¤ò½ÐÎϤ¹¤ë¤«¤òÀßÄꤹ¤ë¡£
¡¡¥ì¥¸¥¹¥¿¤Ë£°¤ò½ñ¤¹þ¤à¤È²»¤ò½ÐÎϤ¹¤ë¡£
¡¡³Ú²»¤È¥Î¥¤¥º²»¤¬¤È¤â¤Ë£°¤Î»þ¤Ï¥ß¥¥·¥ó¥°¤µ¤ì¤Æ½ÐÎϤ¹¤ë¡£
4. ²»ÎÌ¥³¥ó¥È¥í¡¼¥ë¤ÈDAC($08¡Á$0A)
¡¡³Æ¥Á¥ã¥ó¥Í¥ë(#A¡¢#B¡¢#C)¤Î²»Î̤òÀßÄꤹ¤ë¡£
¡¡£Í¡á£°¤Î»þ¡§L3¡ÁL0¤Ë¤è¤Ã¤Æ16Ä̤ê¤Î¥ì¥Ù¥ë¤«¤é²»Î̤òÀßÄê¡£
¡¡£Í¡á£±¤Î»þ¡§¥¨¥ó¥Ù¥í¡¼¥×ȯÀ¸´ï¤Çºî¤é¤ì¤ë¥Ç¡¼¥¿(5bit)¤Ë¤è¤Ã¤Æ²»Î̤òÀ©¸æ¡£
¡¡(¤Þ¤À¥¨¥ó¥Ù¥í¡¼¥×¤ò»ÈÍѤ·¤¿¤³¤È¤¬¤Ê¤¤¤Î¤Ç¤È¤ê¤¢¤¨¤º¤³¤³¤Þ¤Ç¡£¤Î¤Á¤Î¤ÁÄɲä·¤Þ¤¹)
¡¡
Á°²ó¤«¤é¤«¤Ê¤ê¤¿¤Ã¤Æ¤·¤Þ¤Ã¤¿¤±¤É¤¤¤Ä¤â¿´¤ÏPSoC·¯¤È¤È¤â¤Ë¡£
¥Á¥å¡¼¥È¥ê¥¢¥ëÄ̤ê¤ä¤Ã¤Æ¤ß¤¿¤È¤³¤íÌäÂê¤Ê¤¯¤Ç¤¤Þ¤·¤¿¡£
º£¸å¥¹¥é¥¤¥À¤ÏÆþÎϤΣ±¤Ä¤È¤·¤Æ»È¤¨¤½¤¦¤Ç¤¹¤Í¡£ÌÌÇò¤¤¤Ç¤¹¡£
¤È¤ê¤¢¤¨¤º±þÍÑÊԤȤ·¤Æ¥¹¥é¥¤¥À¤Îº¸Â¦(CSB7)¤Ë¤¤¤¯¤Û¤ÉÀÄ¡¢±¦Â¦(CSB1)¤Ë¤¤¤¯¤Û¤ÉÀ֤ˤʤë¤è¤¦¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤·¤«¤·¡¢¥¹¥é¥¤¥À¤«¤é»Ø¤òÎ¥¤¹¤ÈÀÄ¿§¤ËÌá¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¼¡¤Î¤è¤¦¤Ë¾¯¤·²þÎÉ¡£
¤¹¤ë¤È¤³¤ÎÄ̤ê»Ø¤òÎ¥¤·¤Æ¤â¹¥¤¤Ê¿§¤Ç¸÷¤é¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡£
£Í£Å£Í£Ï¡§
º£²ó»ÈÍѤ·¤¿CSD¤Î´Ø¿ô¤¿¤Á
(¾å¤«¤é¥ª¥·¥ì¡¼¥¿(4MHz)¡¢YMZ294¡¢¥½¥±¥Ã¥È)
½©·î¤Ë¤ÆYMZ294¤ò¹ØÆþ¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤ä¤Ï¤ê¥Þ¥¤YMZ294¤¬¼ê¸µ¤Ë¤¢¤ë¤È²äÁ³¤ä¤ëµ¤¤¬½Ð¤Þ¤¹¡ª¡ª
¢³°¸«(18pin) ÂÀ¤¯ÉÁ¤¤¹¤®¤Þ¤·¤¿(¡°¡°¡¨
¢³Æ¥Ô¥ó¤ÎÀâÌÀ
¡¡
¤µ¤Æ¡¢º¤¤Ã¤¿¤³¤È¤Ë¥Ç¡¼¥¿¥Ð¥¹¤äÀ©¸æ¿®¹æÍѤΤ¿¤á¤ËºÇÄã12Ëܰʾå¤Î¥Ô¥ó¤¬É¬ÍפǤ¹¡£
PSoC First Touch¤Ç¤Ï¡Ä¡£¤Á¤ç¤Ã¤È¸·¤·¤½¤¦¤Ç¤¹¡£¡£¡£
¤½¤³¤Ç¤³¤ÎYMZ294¤µ¤ó¤Î¥Ñ¡¼¥È¥Ê¡¼¤òõ¤·¤Æ¤Þ¤¹¡£
º£¤Î¤È¤³¤íÌܤò¤Ä¤±¤Æ¤¤¤ë¤Î¤Ï¤³¤ÎCY8C29466¤Ç¤¹¡£
CY8C29466¡ÊProducts - Cypress Semiconductor¡Ë
28Pin¤Ç¥Ç¥£¥¸¥¿¥ëI/O¤È¤·¤Æ»ÈÍѤǤ¤ë¥Ô¥ó¤¬8bit¡ß£³¥°¥ë¡¼¥×ʬ(P0¡¢P1¡¢P2)¤¢¤ê¤Þ¤¹¡£¥¢¥Ê¥í¥°ÆþÎϤȤ·¤Æ»È¤¨¤ë¥Ô¥ó¤â¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£
£±¥°¥ë¡¼¥×ʬ¤ò8bit¤Î¥Ç¡¼¥¿¥Ð¥¹ÍѤȤ·¤Æ¡¢Â¾¤Î¥Ô¥ó¤òÀ©¸æ¿®¹æÍѤȤ·¤Æ¤â½½Ê¬Í¾¤ê¤¬¤Ç¤¤½¤¦¤Ç¤¹¡£
¤Þ¤¿¡¢PSoC¤Î¥â¥¸¥å¡¼¥ë¤â͸úÍøÍѤǤ¤Ê¤¤¤«¸¡Æ¤Ãæ¡£
¤È¤ê¤¢¤¨¤º¤³¤³¤Þ¤Ç¡£¥ì¥¸¥¹¥¿µ¡Ç½¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¼¡²ó¤Ë¡£
¡¡
PSoCÆþÌ硧PSoC First TouchÊÔ ¤ò¤ä¤ê¤Ä¤Ä¡¢PSoC·¯¤È¤Îµ÷Î¥¤ò¾¯¤·¤º¤ÄËä¤á¤ëŽ¥Ž¥Ž¥¡Ê̤ÍèÆüµ¡Ë
º£¤Î¤È¤³¤íÎãÂ꣱¤Þ¤Ç¡£¤³¤³¤Þ¤ÇÆäËÌäÂê¤Ê¤·¡£
£±¤Ä¤ÎPWM8¤ÇÀÖ¤ÈÀĤÎLED¤òÅÀÅô¤·¤Æ¤ß¤Þ¤·¤¿¡£
ÌÀ¢ªÀÖ¡¢°Å¢ªÀÄ¡£Éô²°¤ÎÃæ¤Ç¤ÏÀÖ¡§ÀÄ¡á3¡§7¤¯¤é¤¤¤Ç¤·¤ç¤¦¤«¡£Å¬ÅÙ¤ÊÌÀ¤ë¤µ¡¢¤«¤Ê¡£
¼¡¤ÏCapSense¤ÇÍ·¤Ö¤Ä¤â¤ê¡£¢ª¤Î¤Á¤Î¤Á»È¤¨¤½¤¦¤Ê¤Î¤Ç¤·¤Ã¤«¤êÍ·¤Ö¡£
º£Î®¹Ô¤Ã¤Æ¤¤¤ë¡Ê¡©¡ËPSoC·¯¤Î½ñ¤¹þ¤ß´ï¤«¤é¤ÎÆÈΩ¤ò»î¤ß¤ë¡£
¼Ì¿¿¤ÎÄ̤ꤦ¤Þ¤¯ÆÈΩ¤Ç¤¤Þ¤·¤¿¡£
Íߤò¤¤¤¦¤Ê¤ésenda·¯¤ß¤¿¤¤¤ËÅŸ»¤Î¥¹¥¤¥Ã¥Á¤Ä¤±¤ì¤Ð¤è¤«¤Ã¤¿orz
£Í£Å£Í£Ï¡§
¥Ñ¥¹¥³¥ó¤Ã¤Æ²¿¡©(ÅŻҤΤª¤¿¤¹¤±£Í£Å£Í£Ï)
Ëͤϥ²¡¼¥à¥ß¥å¡¼¥¸¥Ã¥¯¤¬Âç¹¥¤¤À¡ª
¤È¤Ï¤¤¤¦¤â¤Î¤Î¡¢
¥²¡¼¥à¥ß¥å¡¼¥¸¥Ã¥¯¤Î´ðÁäδðÁäȤ¤¤¨¤ë¥Õ¥¡¥ß¥³¥ó²»¸»¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤Þ¤êÃΤê¤Þ¤»¤ó¡£
(¥¬¥¤Îº¢¤Ï¤Û¤È¤ó¤É¥¹¡¼¥Õ¥¡¥ß¤«¥×¥ì¥¹¥Æ¤Ç¤·¤¿)
¤½¤³¤Ç¡¢¼ÂºÝ¤Ë¤½¤Î"²»"¤òʹ¤¤¤Æ¤ß¤¿¤¤¡ª(Æä˥Υ¤¥º²»)
¤µ¤é¤Ë¤Ï¼ÂºÝ¤Ë±éÁÕ¤·¤Æ¤ß¤¿¤¤¡ª¡ª
¤È¤¤¤¦¤Î¤¬¤µ¤µ¤ä¤«¤Ê´ê¤¤¤À¤Ã¤¿¤ê¤·¤Þ¤¹¡£(100¡ó¼ñÌ£¤Ç¤¹¤¬)
¤È¤ê¤¢¤¨¤ºº£¤Ï¥Þ¥¤¥³¥ó¤Î¤ªÊÙ¶¯¤È°ÊÁ°akitaÀèÀ¸¤Ë¶µ¤¨¤Æ¤â¤é¤Ã¤¿YMZ294¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤Þ¤¹¡£
£Í£Å£Í£Ï¡§
¼ÂºÝ¤ËÍ·¤ó¤Ç¤¤¤ëÊý¤â¤¤¤ë¤ß¤¿¤¤¤ÇŽ¥Ž¥Ž¥