STM32H7¤ò»È¤Ã¤Æ¤ß¤ë9 ¡ÁI2S¤Î½èÍý¤Î½ê¤ÇÂç¥Ð¥°¤ò»Å¹þ¤ß¡¢¤·¤«¤âSTM32F4¤Îº¢¤«¤éÄÌ»»¤Ç13ǯ´Ö¤¯¤é¤¤ÊüÃÖ¤·¤Æ¤¿·ï¡Á

¢«Á°²ó


¤Í¤à¤¤¤µ¤ó¤Î¤Ö¤í¤°»Ë¾åºÇĹ¤Î¤Ö¤í¤°¥¿¥¤¥È¥ë¡ª¡ª¡ª
¡Ä¤Ï¤É¤¦¤Ç¤â¤¤¤¤¤Ç¤¹

Á°²ó¡¢SD¥«¡¼¥É¤Î½é´ü²½¤ÇÂç¥Ð¥°¤ò»Å¹þ¤ó¤ÇĹ´ü´ÖÊüÃÖ¤·¤Æ¤¿
¤³¤È¤òȯ¸«¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿
¤¬¡Ä
¤Þ¤¿¤Þ¤¿Ä¶ÆÃÂç¤ÎÃ×̿Ū¥Ð¥°¤òȯ¸«¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿orz



¡üºá¾õ
¤Í¤à¤¤¤µ¤ó¤ÎFatFs¤ÎSTM32H7¸þ¤±¤Î°Ü¿¢Îã¤Ë¤ª¤¤¤Æ¡¢
¡¡MP3/AAC/WAV¥Õ¥¡¥¤¥ë¤Î¥µ¥¦¥ó¥ÉºÆÀ¸µ¡Ç½¤ÏSAI¤ò
¡¡I2S¤È¤·¤Æ»È¤¤¡¢¤µ¤é¤Ë¥µ¡¼¥­¥å¥éDMA¥â¡¼¥É¤Ç
¡¡Ï¢Â³¤·¤Æ¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë»ÅÁȤߤǼ¸½¤·¤Æ¤¤¤ë¤¬¡¢
¡¡¤½¤Î¥ë¡¼¥Á¥ó¤¬¤á¤Á¤ã¤¯¤Á¤ã¡ª


²¿¤¬¤É¤¦¤á¤Á¤ã¤¯¤Á¤ã¤«¤È¤¤¤¦¤ÈCircularDMA¤Î³µÇ°¤¬Á´Á³Íý²ò
¤Ç¤­¤Æ¤Ê¤¯¤ÆÅ¬Åö¤Ë¥³¡¼¥É´ó¤»½¸¤Þ¤·¤¿¥ì¥Ù¥ë¤Î¤á¤Ã¤Á¤ã¤¯¤Á¤ã

¤Ê¤ó¤Ç¤³¤ì¤Ç²»¤¬½Ð¤Æ¤¿¤«¤Ã¤Æ¡©
¤½¤ó¤Ê¤Î¤Í¤à¤¤¤µ¤ó¤¬ÃΤꤿ¤¤¡£




¼ÂÎã¤È¤·¤Æ¡¢¼ç¤Ëmp3_support.c¤òµó¤²¤Æ¥À¥á¤Ê¤È¤³¤í¤ò²òÀâ
¤·¤Æ¤¤¤­¤Þ¤¹¡£

¥À¥á¤Ê¤È¤³¤í¤½¤Î­¡
³ä¤ê¹þ¤ß¸å¤ÎDMA¥Ð¥Ã¥Õ¥¡¤ÎÀÚ¤êÂØ¤¨¤¬¤Ê¤ó¤«ÊѤʤΤÀ¡Ä

¥á¥¤¥ó¥ë¡¼¥Á¥ó¤Ç¤Ï¼ç¤ËMP3¥Ç¡¼¥¿¤ÎÆÉ¤ß½Ð¤·¡¦¥Ç¥³¡¼¥É¡¦
¤½¤·¤ÆDMA¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤¹¤ëÌòÌܤ¬¤¢¤ê¤Þ¤¹¡£

SAI¤Î¥µ¡¼¥­¥å¥éDMA¥â¡¼¥É¤Ë¤è¤ê¤½¤ì¤é¤ò¸úΨŪ¤Ë¼Â¹Ô¤Ç¤­¤ë
¤è¤¦¤Ë¼ÂÁõ¤·(¤¿¤Ä¤â¤ê¤Ç¤¤)¤Þ¤·¤¿¡£I2S¥Ç¡¼¥¿¤òDMA¤ÇžÁ÷
¤·¤Æ¤ë´Ö¤ËMP3¥Ç¡¼¥¿¤Î¥Ç¥³¡¼¥É¤ò¤ä¤Ã¤Æ½àÈ÷¤·¤Á¤ã¤ª¤¦¤È
¤¤¤¦»×ÏǤǤ¹¤Í¡£

DMA¤Î½éÃÊ¥­¥Ã¥¯¸å¤Î¥µ¡¼¥­¥å¥éDMA¤ÎSAI¤Î³ä¤ê¹þ¤ß¤ÏÀ褺
"¥Ï¡¼¥Õ¥³¥ó¥×¥ê¡¼¥È"³ä¤ê¹þ¤ß¤¬¤«¤«¤ê¤Þ¤¹¡£
¤½¤Î³ä¤ê¹þ¤ß¥ë¡¼¥Á¥óÆâ¤Ç¥Ï¡¼¥Õ¥³¥ó¥×¥ê¡¼¥È¤Î¥¤¥Ù¥ó¥È
¥Õ¥é¥°¤òΩ¤Æ¡¢mp3¤Î¥á¥¤¥ó¥ë¡¼¥Á¥ó¤ØÌá¤ê¤Þ¤¹¡£

ËÜÍè¤Ê¤é¤Ð¥Ï¡¼¥Õ¥³¥ó¥×¥ê¡¼¥È¤Î¥¤¥Ù¥ó¥È¥Õ¥é¥°¤ò¸«¤ÆDMA¤¬
Á÷¿®ÍѥХåե¡¤Î¸å¤íȾʬ¤Î¥Ç¡¼¥¿Îΰè¤òžÁ÷Ãæ¤Ç¤¢¤ë¤³¤È¤ò
ÁÛÄꤷ¤Æ¡¢¥Ç¥³¡¼¥É¤µ¤ì¤¿mp3¤Î¥Ç¡¼¥¿¤Î½ñ¤­½Ð¤·¥Ý¥¤¥ó¥¿¤ò
Á÷¿®ÍѥХåե¡¤ÎÀèÆ¬¤ËÀÚ¤êÂØ¤¨¤ë½èÍý¤ò¤ò¹Ô¤¦¤Ï¤º¤Ç¤¹¡£
¤·¤«¤·¡Ä


☝¤Ê¤ó¤Ç¤ä¤Í¤ó¡ª
¤Ê¤ó¤Ç¤³¤ó¤Ê¤³¤È¤ä¤Ã¤Æ¤¿¤Î¤«ÉÔÌÀ¡£¸å¤Ç¤âÀâÌÀ¤·¤Þ¤¹¤¬¡¢
¥­¥ã¥Ã¥·¥å¤Î¥¯¥ê¡¼¥ó¤â¤³¤³¤Ç¤ä¤ë¤Î¤ÏÉÔŬÀڤǤ¹¡£
¥Ý¥¤¥ó¥¿ÉÕ¤±Âؤ¨¤¿Ä¾¸å¤Ë¥¯¥ê¡¼¥ó¤·¤Æ¤â¸å¤«¤é¥Ç¥³¡¼¥É
¸å¤Î¥Ç¡¼¥¿¤¬¥³¥Ô¡¼¤µ¤ì¤Æ¥­¥ã¥Ã¥·¥å¤Î¥À¡¼¥Æ¥£¥Ó¥Ã¥È¤¬Î©¤Á
̵°ÕÌ£¡£¥Õ¥ë¥³¥ó¥×¥ê¡¼¥È¾õÂ֤λþ¤Î½èÍý¤âƱ¤¸´¶¤¸¤ËÊѤǤ¹orz

¤µ¤é¤ËAAC¤äWAV¤Ë¤âƱ¤¸´¶¤¸¤Ç²£Å¸³«¤·¤¿¤Î¤Ç¤Û¤ÜƱ¤¸´¶¤¸¤Ç
´Ö°ã¤Ã¤ÆÊѤˤʤäƤ¤¤Þ¤·¤¿orz


¥À¥á¤Ê¤È¤³¤í¤½¤Î­¢
žÁ÷ÍÑDMA¥Ð¥Ã¥Õ¥¡¤Î³ÎÊÝÎ̤¬ÉÔŬÀÚ¡£ÌµÂ̤Ë¿¤¹¤®¡£

HelixMP3/AAC¥Ç¥³¡¼¥À¡¼¤Î¥Ç¥³¡¼¥É¸å¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤Ï¼Â¼Á
¸ÇÄê¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢°ìÈÌŪ¤Ë¤Ï¤½¤ì¤¾¤ì²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
*MP3¤Î¾ì¹ç
1152(sample)*2(channel)*2(Byte:16bit-PCM) = 4608(Bytes)
*AAC¤Î¾ì¹ç(2Channel,16bit¸ÂÄê)
1024(sample)*2(channel)*2(Byte:16bit-PCM) = 4096(Bytes)

¤Ä¤Þ¤êSAI¤ÎI2S¥â¡¼¥É¤Î¥µ¡¼¥­¥å¥éDMAžÁ÷ÍѥХåե¡¤È¤·¤Æ¤½¤ì¤¾¤ì
MP3: 4608 * 2 = 9216(Bytes)
AAC: 4096 * 2 = 8192(Bytes)
¤À¤±¡¢³ÎÊݤǤ­¤Æ¤¤¤ì¤Ð¤è¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡Ä


☝¤Ê¤ó¤Ç¤«¤½¤³¤«¤é¤µ¤é¤Ë2ÇܳÎÊݤ·¤Æ¤¤¤¿orz
¡¡¤Ê¤Î¤Ç´Ø¿ô½é¤á¤ÎDMA¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Î¥Á¥§¥Ã¥¯¤âÉÔɬÍפË2ÇÜ


☝¤½¤Î¸¶°ø¤Ï¤¿¤Ö¤ó¤³¤³¡£
g_pMp3DmaBuffer¤Èg_pMp3DmaBufferPtr¤Ï16bit-PCM¥Ç¡¼¥¿¤Î³ÊǼ¤ò
ÁÛÄꤷ¤Æ¤¤¤ë¤Î¤Çint16_t*¤ÇÀë¸À¤·¤Æ¤¤¤Þ¤¹Ž¥Ž¥Ž¥Ž¥¡£

¤Ï¤¤¤â¤¦¤ª¤ï¤«¤ê¤Ç¤¹¤Í¡£¥Ý¥¤¥ó¥¿¤Î´ðÁäòÍý²ò¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¡ª

int16_t*¤Î¥Ý¥¤¥ó¥¿ÊÑ¿ô¤ÎÃͤò1Áý¤ä¤·¤¿¤é¥Ý¥¤¥ó¥¿¤¬¼¨¤¹¥Ð¥¤¥È
¥¢¥É¥ì¥¹¤ÎÃͤÏÅöÁ³2Áý¤¨¤Þ¤¹¤¬(arm-gcc¤Î¾ì¹ç)¡¢¥ï¡¼¥É¤¸¤ã¤Ê¤¯¤Æ
¥Ð¥¤¥Èñ°Ì¤òÁÛÄꤷ¤ÆÄêµÁ¤·¤Æ¤¤¤ëDMA¥Ð¥Ã¥Õ¥¡¤ÎÃͤòint16_t*¤Î
¥Ý¥¤¥ó¥¿¤Î·×»»¤Ë»È¤Ã¤¿¤éÁÛÄê¤Î2ÇܤËÁý¤¨¤ë¤Î¤¢¤¿¤ê¤Þ¤¨¤Ç¤¹¤Í¡£

¤Ê¤ó¤Ç¤³¤ó¤Ê´ðËÜŪ¤Ê¤³¤ÈÍý²ò¤Ç¤­¤Æ¤Ê¤«¤Ã¤¿¤ó¤À»ä¤Ï¡©¡©¡©


¤µ¤é¤ËAAC¤Î¥Ç¥³¡¼¥É¤Ë´Ø¤·¤Æ¤ÏHelix¤Îcvs¤«¤é¼è¤Ã¤Æ¤­¤¿¤½¤Î¤Þ¤Þ¤Î
¾õÂ֤ǥӥë¥É¤·¤Æ¤¤¤ÆËÜÍèÉÔÍפʥޥë¥Á¥Á¥ã¥Í¥ë¤Ö¤ó¤Þ¤Ç¥á¥â¥ê³ÎÊÝ
¤·¤Æ¤¤¤¿¤Î¤Ç¤µ¤é¤Ë3ÇÜÉÔÍפÊRAMÎΰè¤ò¡Ä


¤½¤·¤Æ¥á¥â¥ê³ÎÊݤΤ¿¤á¤Ë¶ì¤·¤ßʶ¤ì¤ËÕû¤ò¤³¤¤¤¿¤è¤¦¤ÊÂкö(?)¤Ç
¤ªÃã¤òÂù¤·¤Æ¤Þ¤·¤¿¡Ä¶ì¤·¤ßʶ¤ì¤ËÕû¤³¤­¤¹¤®¤ÆÕû¤³¤­Ãî¾õÂÖ¡£


ËÜÍèɬÍפÊDMA¥Ð¥Ã¥Õ¥¡¤ÎÎ̤Ϻǹâ¤Ç¤âMP3¸þ¤±¤Î9216Byte¤È¤Ê¤ë¤Î¤Ç
STM32F407¤ÎºîÎã¤Ç¤âËÜÍè¤ÏÊѤʾ®ºÙ¹©¤·¤Ê¤¤¤ÇºÑ¤ó¤À¤ï¤±¤Ç¤¹¡£

¤Á¤Ê¤ß¤ËSDIO¤È¤«SDMMC¤ÇDMA»È¤Ã¤ÆSD¥«¡¼¥É¤«¤é¥Ç¡¼¥¿¤òÆÉ¤à²óÏ©
¹½À®¤Ç¡¢¹â¤¤¥Ó¥Ã¥È¥ì¡¼¥È¤ÇºÆÀ¸¤·¤Æ¤ë»þ¤Ë¥¨¥é¡¼¤Ç¤³¤±¤ë¤È¤«
²áµî¤ËÈ´¤«¤·¤Æ¤¤¤Þ¤·¤¿
¤¬¾åµ­¤ÎɬÍ×¥á¥â¥êÍÆÎ̤κÇŬ²½¤Ç°ìÀÚȯÀ¸
¤·¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¤È¤µorz
¤¿¤Ö¤óDMA¤Î´³¾Ä¤È¤«Á´Á³´Ø·¸¤Ê¤¯¤ÆÅ¾Á÷¥Ð¥Ã¥Õ¥¡RAM³ÎÊݤΤ¿¤á
̵Â̤Ëmalloc¤·¤¿·ë²Ì´Î¿´¤Î¥Ç¥³¡¼¥É»þ¤Îmalloc¤ÇRAM¤¬¸Ï³é¤·¤Æ
¤·¤Þ¤Ã¤Æ¤¿¤»¤¤¤À¤È»×¤¤¤Þ¤¹¡£



¡ü¤È¤³¤í¤Ç¼ÂºÝ²¿¤¬µ¯¤³¤ë¤Î¡©
➡MP3¡¢AAC¡¢WAVE¥Õ¥¡¥¤¥ë¤¬ºÆÀ¸Ãæ¤ËÆÍÁ³ÃæÃǤ¹¤ë
¡¡"¤³¤È¤¬¤¢¤ë"¡£
¡¡¤â¤·¤¯¤ÏºÆÀ¸¤¹¤é¤Ç¤­¤º¤¤¤­¤Ê¤ê¥Õ¥¡¥¤¥é²èÌ̤ËÌá¤ë
¡¡"¤³¤È¤¬¤¢¤ë"¡£
¡¡WAVE¤Ë»ê¤Ã¤Æ¤ÏºÆÀ¸¤Î¤¿¤Ó¤Ë²»¤Îº¸±¦¤¬Æþ¤ìÂØ¤ï¤ë¡¢
¡¡ºÆÀ¸Ä¾¸å¤ËŽÌŽÞŽËŽÞŽÁŽÁ¤È¤«¿å¤Ã¤Ý¤¤¤ª¤Ê¤é¤ß¤¿¤¤¤Ê
¡¡±ø¤¤»¨²»¤¬Æþ¤ë¤³¤È¤¬"¤¢¤Ã¤¿¤ê¤·¤Þ¤¹"¡£


ºÆ¸½Î¨100%¤¸¤ã¤Ê¤¯¤Æ¾ã³²¤¬µ¯¤³¤ë"¤³¤È¤¬¤¢¤ë"¤È¤¤¤¦¤Î¤¬ÌäÂê¤Ç¡¢
"¤³¤ì¤Ï¤½¤¦¤¤¤¦Êª¤Ê¤Î¤À¤í¤¦"¤È½ÅÍ׻뤻¤º¸«²á¤´¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤¬
¤¹¤Ù¤Æ¤Î¸¶°ø¤Ç¤¹¡Ä¤¹¤Ù¤Æ¤Ï»ä¤ÎÀÕ¡Ä¡ª¡ª

¤¿¤À¤Í¤à¤¤¤µ¤ó¤¬°­¤¤¡ª¡ª¤¿¤À¤Í¤à¤¤¤µ¤ó¤¬°­¤¤¡ª¡ª


¡ü¥Ð¥°¤Î±Æ¶ÁÈϰϤϡ©
➡¤Í¤à¤¤¤µ¤ó¤Î¤ª¤­¤Ñ¤Ç¾Ò²ð¤·¤Æ¤¤¤ëFatFs¤Î°Ü¿¢Îã¤Ç¤Ï
¡¡STM32H7,STM32F7,STM32F4¤Î¤â¤Î¤¬Âоݡ£


MP3,AAC,WAVE¤ÎºÆÀ¸¤Ë´Ø¤·¤Æ¤Ï¥½¡¼¥¹¥³¡¼¥É¤Ïʬ¤«¤ì¤Æ¤¤¤Þ¤¹¤¬
¾å½Ò¤ÎÄ̤ꥳ¡¼¥É¤Î´ðËܹ½Â¤¤ÏƱ¤¸¤Ë¤·¤Æ¤¤¤¿¤¿¤áÃçÎɤ¯Á´ÌÇorz

´ðÈÄÊ̤Ȥ·¤Æ¤ÏI2S¤Î¥ª¡¼¥Ç¥£¥ª¥³¡¼¥Ç¥Ã¥¯IC¤òÅëºÜ¤·¤¿²¼µ­¤Î
ɾ²Á¥Ü¡¼¥É¤¬¤Þ¤ó¤Ù¤ó¤Ê¤¯ÈïÃÆ¡£
NUCLEO¸þ¤±ºîÎã¤ÏCodecIC¤¬¾è¤Ã¤Æ¤Ê¤¤¤Î¤Ç¤½¤â¤½¤â¥µ¥¦¥ó¥ÉºÆÀ¸
µ¡Ç½¤ò¼ÂÁõ¤·¤Æ¤Ê¤«¤Ã¤¿¤Î¤ÇÌÈ¤ì¤Æ¤¤¤Þ¤¹¡£
*STM32F4-Discovery
->CS43L22
*STM32F746-Discovery
->WM8994
*STM32F769I-Discovery
->WM8994
*STM32H747I-DISCO
->WM8994


¤Þ¤¿¡¢ÊüÃÖ¤·¤Æ¤¤¤¿´ü´Ö¤È¤·¤Þ¤·¤Æ¤ÏÎß·×Ìó13ǯ´Ö¤È¤Ê¤ê¤Þ¤¹¡£
2012ǯ11·îËö¡¢STM32F4-Discovery¸þ¤±(STM32F4¤ÏSAI¤¸¤ã¤Ê¤¯¤Æ
I2S¤½¤Î¤â¤Î)¤È¤·¤Æ¸ø³«¤·¤¿¤Î¤¬ºÇ½é
¤Ç¤¹¡£
ºÇ½é¤Ã¤«¤é¥Ð¥°¤Ã¤¿¥³¡¼¥É¤ò¸ø³«¤·Ìó13ǯ´Ö°Ì¥Ð¥°¤òÊüÃÖ¤·¤Æ¤¿
¤³¤È¤Ë¤Ê¤ê¤Þ¤¹orz

¤Ê¤ª¡¢AACºÆÀ¸µ¡Ç½¼ÂÁõ¤Ë¤è¤Ã¤Æ¥á¥â¥ê¼þ¤ê¤Î¥Ð¥°¤ò¥Ñ¥ï¡¼¥¢¥Ã¥×
¤µ¤»¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¡¢2015ǯ¤«¤é¤µ¤é¤Ë¥Ð¥°¤¬¶¯²½¤µ¤ì¤Þ¤·¤¿orz

Á°²ó¤ÎSD¥«¡¼¥É¤Î»þ¤è¤êÁ´Âι¶·â¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¡£
¤·¤«¤â¤Û¤È¤ó¤É¤Í¤à¤¤¤µ¤ó¼«¿È¤¬»Å³Ý¤±¤¿¹¶·â¤Ç¼«Ê¬¼«¿È¤ËÂç¥À¥á¡¼¥¸!
¥¢¥ê¥¢¥Ï¥óæ½ÐºîÀïÂ缺ÇÔ¡ª¡ª


¤¿¤À¤Í¤à¤¤¤µ¤ó¤¬°­¤¤¡ª¡ª¤¿¤À¤Í¤à¤¤¤µ¤ó¤¬°­¤¤¡ª¡ª



¡ü¼ÂºÝ¤ÎÈï³²¤Ï¡©
➡¼Â¼Á¤Í¤à¤¤¤µ¤ó¤Î¤ß¡£¤½¤ì¤â¤´¤¯¸ÂÄêŪ¡£

STM32F4¤Îº¢¤«¤éÄÌ»»¤·¤Æ13ǯ´Ö·Ð²á¤·¤Æ¤¤¤ë¤Î¤ÇÈï³²¤¬¤«¤Ê¤ê¤Î
ÈϰϤˤ錄¤Ã¤Æ¤¤¤ë¤ÈͽÁÛ¤µ¤ì¤Þ¤¹¤¬¡¢°Õ³°¤Ê¤³¤È¤Ë¾¤ÎÊý¤«¤é
¤¦¤Þ¤¯ºÆÀ¸¤Ç¤­¤Ê¤¤¤È¤¤¤¦Êó¹ð¤¬1·ï¤·¤«¤Ê¤«¤Ã¤¿¤Ç¤¹¡£

¤½¤Î1·ï¤âÆâÍÆ¤ò¤è¤¯Ê¹¤¯¤ÈSD¥«¡¼¥É¤Îưºî¤ÎÃʳ¬¤Çíµ¤¤¤Æ¤¤¤¿¤Î¤¬
¸¶°ø(¥×¥ë¥¢¥Ã¥×¤·¤Æ¤Ê¤¤)¤Ç¡¢MP3¤ÎºÆÀ¸¤Þ¤Ç¹Ô¤­¤Ä¤¤¤Æ¤Þ¤»¤ó¤Ç¤·¤¿¡£

¤½¤Î»þ²»¸»¤â¤â¤é¤Ã¤¿¤Î¤Ç¤¹¤¬¤Í¤à¤¤¤µ¤ó¤ÎSTM32F4-Discovery¤Î
¹½À®¤Ç¤ÏÌäÂê¤Ê¤¯ºÆÀ¸¤Ç¤­¤Æ¤¿¤Î¤ÇÌäÂê¤Ê¤·¤ÈȽÃǤ·¥½¡¼¥¹¥³¡¼¥É¤ò
Àººº¤·¤Æ¤Ê¤«¤Ã¤¿¤Î¤Ç¥Ð¥°¤ò¤Ä¤Ö¤¹¥Á¥ã¥ó¥¹¤òƨ¤·¤Þ¤·¤¿orz

¤½¤·¤Æ¥¨¥´¥µ¡¼¥Á¤·¤¿¸Â¤ê¤Ç¤Ï»ä¤ÎºîÎã¤ò¤â¤È¤ËÀ½ºî¤µ¤ì¤Æ¤ëÊý¤â
¤Á¤é¤Û¤é¤ß¤é¤ì¤Þ¤·¤¿¤¬ÌäÂê¤Ëµ¤ÉÕ¤«¤ì¤Æ¤ëÊý¤Ï¸«¤é¤ì¤ºÉáÄ̤Ë
ÍøÍÑ¡©¤Ç¤­¤Æ¤¤¤¿¤è¤¦¤Ç¤¹¡Ä

¤Í¤à¤¤¤µ¤ó¤Ï¤È¤â¤«¤¯Â¾¤ÎÊý¤ÎÈï³²¤ÏɽÌ̾å¤Ë½Ð¤Æ¤­¤Æ¤¤¤Ê¤«¤Ã¤¿
¤È»×¤ï¤ì¤Þ¤¹¡£¤è¤«¤Ã¤¿¡Á¡Ä

¡Ä
¤Ê¤ï¤±¤Í¤§¤À¤í¡ª¤³¤é¡ª(ŽºŽÞ¡¡Ž¯)


¡üÂкö¤Ï¡©
➡¼ç¤Ë²¼µ­4¤Ä¤È¤Ê¤ê¤Þ¤¹¡£

­¡STM32¤Ë¤ª¤±¤ëSAI/I2S¤Îưºî¤Î´ðËܤ«¤é¸«Ä¾¤·¤Æ¥µ¡¼¥­¥å¥éDMA¤ò
Àµ¤·¤¯Æ°ºî¤¹¤ë¹çÍýŪ¤Ê¥³¡¼¥É¤Ë½¤Àµ¤·¤Þ¤·¤¿¡£


12ǯÁ°ºÇ½é¤Ë¸µ¤Ë¤·¤¿¥³¡¼¥É¤Ïmikrocontroller.net¤Ç¸ø³«¤µ¤ì¤Æ¤¿
STM32F4¸þ¤±¤ÎHelixMp3decoder¤Î¼ÂÁõ
¤Ê¤Î¤Ç¤¹¤¬¡Ä
¤Ê¤ó¤Ç¤Í¤à¤¤¤µ¤ó¤¬¤¤¤¸¤Ã¤¿¤é¤³¤ó¤Ê¤ËÏĤó¤Ç¤·¤Þ¤Ã¤¿¤Î¤«¡Ä

­¢¥µ¡¼¥­¥å¥éDMA¤Ç»ÈÍѤ¹¤ëRAM¤ÎÎ̤òÀµ¤·¤¯¸«ÀѤâ¤ë
¤³¤È¤Ë¤è¤êɬÍ×½½Ê¬¤ÊÎ̤À¤±»È¤¦¤è¤¦¤Ë½¤Àµ¤·¤Þ¤·¤¿¡£


STM32F407¸þ¤±¤ÎºîÎã¤Ç¤ÏFatFs¤ÎÁ÷¼õ¿®ÍÑÈÆÍÑDMA¥Ð¥Ã¥Õ¥¡RAM
¤È¤·¤Æ16kByte¤ò³ÎÊݤ·¤Æ¤¤¤Þ¤¹¡£
º£²ó¤Î½¤Àµ¤Ç¥µ¥¦¥ó¥ÉºÆÀ¸ÍѤÎDMAžÁ÷¤ÇɬÍפʺÇÂçÎ̤ÏMP3¤Î
9216Byte¤È¤Ê¤ë¤Î¤Ç16kByte¤¢¤ì¤Ð½½Ê¬¤Ë;͵¤¬¤¢¤ê¤Þ¤¹¡£

¤Þ¤¿¡¢DMA¤ÎÀ©Ìó¾åSTM32F4¤Ç¤Ï4¥Ð¥¤¥È¡¢¤µ¤é¤ËSTM32F7&H7¤Ç¤Ï
¥­¥ã¥Ã¥·¥åÁàºî¤Î¤¿¤á32¥Ð¥¤¥È¶­³¦¤Ç¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥á¥ó¥È¤ò
·¤¨¤Æ¤¤¤Þ¤¹¡£


­£¥­¥ã¥Ã¥·¥å¤Î¥¯¥ê¡¼¥ó¤òŬÀڤʻþÅÀ¤Ç¼Â»Ü¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£

¥Ç¥³¡¼¥ÉºÑ¤ß¤ÎMP3¤Î¥Ç¡¼¥¿¤¬DMA¥Ð¥Ã¥Õ¥¡¤ÎÁ´ÂΤÎȾʬ¤Á¤ç¤¦¤É
¥³¥Ô¡¼¤µ¤ì¤¿Ä¾¸å¤Ë¤½¤ÎÉôʬ¤Î¥¯¥ê¡¼¥ó¤ò¼Â»Ü¤·¤Þ¤¹¡£

STM32F4¤Ï¥­¥ã¥Ã¥·¥å¤¬Ìµ¤¯¡¢STM32F7¤Ï¥­¥ã¥Ã¥·¥å¥³¥ó¥È¥í¡¼¥ë¤¬
ÉÔÍפÊDTCMÎΰè¤òDMA¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¼Â¼ÁH7ÀìÍѤÎ
Áàºî¤È¤Ê¤ê¤Þ¤¹¡£

¤Á¤Ê¤ß¤ËCortex-M7¤Î¥­¥ã¥Ã¥·¥å¥³¥ó¥È¥í¡¼¥ë¤ÎÁ°Äó¾ò·ï¤Ç¥á¥â¥ê
¥¢¥É¥ì¥¹¤Î¥¢¥é¥¤¥á¥ó¥È¤¬32¥Ð¥¤¥È¶­³¦¤Ë¤¢¤ê¤µ¤é¤Ë32¤ÎÇÜ¿ô¤Ç
žÁ÷¤ò¹Ô¤¦À©¸Â¤Ë¤Ä¤¤¤Æ¤Ï³ÆÅ¾Á÷¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤Ï¡Ä
MP3: 4608*2(32¤ÎÇÜ¿ô)
AAC: 4096*2(32¤ÎÇÜ¿ô)
WAV: 1024*2(32¤ÎÇÜ¿ô)
¤ÈåºÎï¤Ë32¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤³¤Á¤é¤â°Â¿´¤Ç¤¹¡ª

­¤¤½¤Î¾¥½¡¼¥¹Æâ¤Ç¸«¤Ä¤±¤¿°ÕÌ£ÉÔÌÀ¤Ê½èÍý¤äµ­½Ò¤ò½¤Àµ¤·¤Þ¤·¤¿¡£

¤«¤Ä¤ÆSTM32F7-Discovery·Ï¥Ü¡¼¥É¤ÇºÆÀ¸¤·¤¿¤é2ÇÜ®¤Î®¤µ¤Ë
¤Ê¤Ã¤Æ¤·¤Þ¤¦¤È¤«¤¤¤¦ÊѤÊÉÔ¶ñ¹ç¤¬¤¢¤Ã¤ÆPLL¤Îʬ¼þÈæ¤ò2Çܤˤ·¤Æ
Âн褷¤¿
¤³¤È¤¬¤¢¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Ã±¤Ë»ä¤¬STM32F7¤ÎSAI¤Î»ÅÍͤÈ
CodecIC(WM8994)¤Î»ÅÍͤòÍý²ò¤·¤Æ¤Ê¤«¤Ã¤¿¤À¤±¤Ç¤·¤¿orz
¤½¡¼¤¤¤¦ºÙ¤«¤¤¤Î¤âÁ´ÉôÄÙ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£


¾¤Ë¤â²»³ÚºÆÀ¸°Ê³°¤Ç¤Ï¥¨¥é¥Ã¥¿Âкö¤Î¸«Íî¤È¤·¤ä¸½ºß¤Ç¤Ï¸í¤Ã¤¿
³µÇ°¤Ë´ð¤Å¤¯µ­½Ò¤ä¥Ó¥ë¥É»þ¤Î¥ï¡¼¥Ë¥ó¥°¤ò¸·³Ê²½¤·¤¿¤³¤È¤ÇɽÌ̲½
¤·¤¿¤­¤¿¥Ð¥°¤Ë·Ò¤¬¤ëÊÑ¿ô¤Î°·¤¤¤Î¤¢¤¤¤Þ¤¤¤µÅù¡¢¤Ç¤­¤ë¸Â¤ê¤Ç½¤Àµ
¤ò³Ý¤±¤¿¤Î¤Ç¤¹¤¬¤³¤ì¤é¤Î²òÀâ¤Ï¤è¤ê°ìÈÌŪ¤ÊÆâÍÆ¤È¤Ê¤ê¤Þ¤¹¤Î¤Ç
¸åÆü"¤¤¤í¤¤¤í»î¤¹"¤Î¥È¥Ô¥Ã¥¯¤È¤·¤Æ¤Ö¤í¤°µ­»ö¤ò½ñ¤¯¤Ä¤â¤ê¤Ç¤¹¡£


½¤ÀµÅ¬ÍÑ»þ´ü(¤¤¤Ä¤Þ¤Ç¤Ë½¤Àµ¤·¤¿¥½¡¼¥¹¤ò¸ø³«¤¹¤ë¤«)¤Ç¤¹¤¬¡¢
ÌäÂ꤬µ¯¤­¤¿²¼µ­¤ÎÉʼï
STM32H7
STM32F7
STM32F4
¤Ï2025ǯ7·î31ÆüÉդǤ¹¤Ù¤Æ½¤Àµ´°Î»¤·¤Þ¤·¤¿¡ª¤â¤¦°Â¿´¤Ç¤¹¡ª¡ª
¤Ä¤¤¤Ç¤ËChaN»Õ¤ÎFatFs¤¬R0.16¤Ë¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤¤¤¿¤Î¤Ç
¤½¤Á¤é¤âÈ¿±Ç¤·¤Æ¤ª¤ê¤Þ¤¹¡ª

»ä¤ÎºîÎã¤òÍøÍѤ·¤ÆÇÉÀ¸Êª¤òºî¤é¤ì¤Æ¤¤¤¿Êý¤Ï2025ǯ7·î31Æü°Ê¹ß¤Î
ÆüÉÕ¤Îʪ¤Ëº¹¤·Âؤ¨¤òÁáµÞ¤Ë¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡ª¡ª¡ª


¡ü¤È¤³¤í¤Ç¤Ê¤ó¤Ç13ǯ´ÖÊü¤Ã¤Æ¤¿¤Îº£¹¹µ¤¤Å¤¤¤ÆÄ¾¤·¤¿¤Î¡©
➡¼«Ê¬¤Î¤ä¤Ã¤Æ¤­¤¿¤³¤È¿¶¤êÊ֤äƥÀ¥á¤Ê¤Î¸«¤Ä¤±¤¿¤é
¡¡²þÁ±¤·¤è¤¦¤¼±¿Æ°¤Î°ì´Ä¤Ç¤¹¡£

Á°²ó¤ÎSTM32H7¤ÎSD¥«¡¼¥É¤Îµ­»ö¤ÈƱ¤¸¤¯²áµî¤Ë¤ä¤Ã¤Æ¤­¤¿¤³¤È¤ò¸«Ä¾¤·¡¢
¿·¤¿¤Ê¿ÊÊâ¤Ë¤Ä¤Ê¤²¤ë¤¿¤á¤Ë"ʬ¤«¤Ã¤¿¤Ä¤â¤ê"¤Çƨ¤²¤Æ¤¿¥ª¡¼¥Ç¥£¥ª½èÍý¤Î
¤È¤³¤í¤â¹ø¤ò¿ø¤¨¤Æ¸¡Æ¤¤·¤¿¤Î¤Ç¤¹¡Ä¡ª

¼«¿È¤ÎµÍ¤á¤Î´Å¤¤Éôʬ¤¬¤¤¤í¤¤¤íϪÄ褷¤Æ¿É¤«¤Ã¤¿¤Ç¤¹¤¬²¿¤È¤«
²þÁ±¤¹¤ë¤³¤È¤¬¤Ç¤­¤Æ¶ìÏ«°Ê¾å¤ËÆÀ¤é¤ì¤ë¤â¤Î¤¬¤¿¤¯¤µ¤ó¤¢¤Ã¤¿¤È
¼Â´¶¤·¤Æ¤ª¤ê¤Þ¤¹¡ª¡ª¡ª¡ª(¥ä¥Ð¥¤»×ÁÛ¤ËÀ÷¤Þ¤Ã¤¿ÌܤÇ)

¤¢¤È¾ð¤±¤Ê¤¤¥ß¥¹Â¾¿Í¤Ë»ØÅ¦¤µ¤ì¤ëÁ°¤Ëº£²ó¤âÀè¤ó¤¸¤Æµ¤¤Å¤±¤Æ½õ¤«¤Ã







¤µ¤Æ¡ª


SAI»È¤Ã¤¿I2S¤âÍý²ò¤¬¤À¤¤¤Ö¿¼¤Þ¤Ã¤¿¤Î¤Ç¼¡¤Î°ìÊâ¤ò¿Ê¤á¤Þ¤·¤ç¤¦¡ª¡ª
ÌÜɸ¤ÏSTM32H5¤ÎSAI»È¤Ã¤Æ¥µ¥¦¥ó¥ÉºÆÀ¸µ¡Ç½¤ÎÅëºÜDA!


¤Ã¤Æ¤¤¤¦¤«¼Â¤Ï¤â¤¦¤¹¤Ç¤Ë»ÔÈΤÎPCM5102A¥â¥¸¥å¡¼¥ë¤Çưºî¤¹¤ë¤è¤¦¤Ë
H5¤Ë¤â¼ÂÁõ¤·¤Á¤ã¤Ã¤Æ¤ë¤ó¤Ç¤¹¤±¤É¤Í¡Á¡Ä¤¦¤Õ¤Õ♥
¤â¤Á¤í¤óº£²ó¤Î½¤Àµ¤òÈ¿±Ç¤·¤¿¾å¤Ç¤Î¼ÂÁõ¤Ç¤¹¡ª¡ª¡ª


¼¡²ó¡ª¤³¤¦¤´´üÂԥ᪡ª

Go to top of page