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¤Ë¤â¼ÂÁõ¤·¤Á¤ã¤Ã¤Æ¤ë¤ó¤Ç¤¹¤±¤É¤Í¡Á¡Ä¤¦¤Õ¤Õ♥
¤â¤Á¤í¤óº£²ó¤Î½¤Àµ¤òÈ¿±Ç¤·¤¿¾å¤Ç¤Î¼ÂÁõ¤Ç¤¹¡ª¡ª¡ª
¼¡²ó¡ª¤³¤¦¤´´üÂԥ᪡ª
ÌÈÀÕ¡¦Ï¢ÍíÀè¤Ï¢¬¤Î¥ê¥ó¥¯¤ò
¢SNS¤â¤ä¤Ã¤Æ¤Þ¤¹¢
powered by ¤Þ¤á¤ï¤¶- ARM/STM32 (118)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (20)
- MISC (85)
- STM8 (2)
- Wireless¤Ê¥¢¥ì (16)
- ¤ª¤¤Ñ (1)
- ¥Ö¥é¥¦¥¶¥Ù¥ó¥Á¥Þ¡¼¥¯ (29)
- ÆüËܤμ«Á³ÊâÆ» (27)
- GNSS¥â¥¸¥å¡¼¥ë¤ò»îÍѤ¹¤ë21 -SAM-M10Q¤¬²õ¤ì¤¿¡Ä!?¤È»×¤Ã¤¿¤éľ¤»¤¿(¤ª¤Þ¤±¤¢¤ê)-
¢Í Kenji Arai (05/29) - GNSS¥â¥¸¥å¡¼¥ë¤ò»îÍѤ¹¤ë21 -SAM-M10Q¤¬²õ¤ì¤¿¡Ä!?¤È»×¤Ã¤¿¤éľ¤»¤¿(¤ª¤Þ¤±¤¢¤ê)-
¢Í ¤Í¤à¤¤ (05/26) - GNSS¥â¥¸¥å¡¼¥ë¤ò»îÍѤ¹¤ë21 -SAM-M10Q¤¬²õ¤ì¤¿¡Ä!?¤È»×¤Ã¤¿¤éľ¤»¤¿(¤ª¤Þ¤±¤¢¤ê)-
¢Í Kenji Arai (05/24) - ÃæÉôËÌΦ¼«Á³ÊâÆ»¤ò±ý¤¯ -Å×ÇÈÊ¿Ìî¤Î¸©¶¤ò¶î¤±È´¤±¤ë¡ª-
¢Í ¤Í¤à¤¤ (12/18) - ÃæÉôËÌΦ¼«Á³ÊâÆ»¤ò±ý¤¯ -Å×ÇÈÊ¿Ìî¤Î¸©¶¤ò¶î¤±È´¤±¤ë¡ª-
¢Í ¤Ò¤«¤ï (12/15) - STM32U0¤Ï¤Â¤á¤Þ¤·¤¿
¢Í ¤Í¤à¤¤ (08/07) - STM32U0¤Ï¤Â¤á¤Þ¤·¤¿
¢Í ¤Ò¤«¤ï (07/28) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤Í¤à¤¤ (05/17) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤É¤¸¤ç¤ê¤ó (05/16) - STM32H5¤ò»È¤Ã¤Æ¤ß¤ë3 -ÂÔ¤Á¼õ¤±¤ë½é¸«»¦¤·¤Î櫤¿¤Á-
¢Í ¤É¤¸¤ç¤ê¤ó (05/16)
- July 2025 (1)
- June 2025 (1)
- May 2025 (1)
- April 2025 (1)
- March 2025 (1)
- February 2025 (1)
- January 2025 (1)
- December 2024 (2)
- November 2024 (1)
- October 2024 (1)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (6)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.