(ÍêÕû°æ)»ùÓÚµ¥Æ¬»úµÄÓïÒô¿ØÖÆ¿ª¹ØÉè¼Æ±ÏÒµÉè¼Æ ÏÂÔØ±¾ÎÄ

ͼ4.5 SPI·½Ê½¶ÁʱÐò

4.3¼Ä´æÆ÷¹¦Äܼò½é 1.B5¼Ä´æÆ÷

B5¼Ä´æÆ÷ÔÚ¼ì²âÍêÓïÒôÊý¾Ý¶ÎÒÔºó»¹»áÓÐÔëÒô£¬Á¬Ðø¼à²âµ½¶à³¤Ê±¼äµÄ±³¾°ÔëÒô²ÅÈ·ÈÏÊÇÕæÕýµÄÓïÒô½áÊø£¬Í¨³£Çé¿öϵÄĬÈÏÖµÊÇ600ºÁÃ룬Õâ¸öÉ趨ֵҲ²»ÄÜ̫С£¬·ñÔòÓû§ÔÚÖмäµÄССµÄÍ£¶ÙÒ²»á±»Åж¨ÎªÂ¼Òô½áÊø£» 2.35¼Ä´æÆ÷

ÐÞ¸ÄÂó¿Ë·çÒôÁ¿µÄÊÇ35¼Ä´æÆ÷£¬ËüµÄÊýÖµÒ»°ãÉ趨ÔÚ40H-58HÖ®¼ä£¬¾ßÌåÊýÖµ¸ù¾ÝÂó¿Ë·çÒÔ¼°Ê¹ÓõĻ·¾³À´È·¶¨£¬±¾´Î³ÌÐòʹÓõÄÊÇ43H£»ÖµÔ½´ó´ú±íMICÒôÁ¿Ô½´ó£¬Ê¶±ðÆô¶¯Ô½ÁéÃô£¬µ«¿ÉÄÜ´øÀ´¸ü¶àµÄÎóʶ±ð£»ÖµÔ½Ð¡´ú±íMICÒôÁ¿Ô½Ð¡£¬µ«ÊÇÐèÒª½ü¾àÀë˵»°²ÅÄÜÆô¶¯Ê¶±ð¹¦ÄÜ£¬ºÃ´¦ÊǶÔÓÚÍâ½çµÄ¸ÉÈÅûÓз´Ó¦¡£ 3.FIFO¼Ä´æÆ÷

FIFOÓ¢ÎÄFirst In First Out µÄËõд£¬ÊÇÒ»ÖÖÏȽøÏȳöµÄÊý¾Ý»º´æÆ÷£¬ËüÓëÆÕͨ´æ´¢Æ÷µÄÇø±ðÊÇûÓÐÍⲿ¶ÁдµØÖ·Ïߣ¬ÕâÑùʹÓÃÆðÀ´¾ÍºÜÈÝÒס£(*) LD3320оƬÄÚ²¿ÓÐ2¸öFIFO£¬·Ö±ðÊÇ£º FIFO_EXTFIFO_DATA FIFO_DATA Ö÷Êý¾Ý´¦ÀíFIFO»º´æÆ÷£¬ASR»òÕßMP3µÄÖ÷Êý¾ÝÇøFIFO_EXT ÓïÒôʶ±ðÌí¼Ó¹Ø¼ü´ÊÓÃFIFO»º´æÆ÷¡£ 4.B3¼Ä´æÆ÷

B3ASR: Vad Para ±¾º¯ÊýΪ´ò¿ª»ò¹Ø±Õ ¡°ÓïÒô¶Ëµã¼ì²â¡±¹¦ÄÜ¡£Èç¹û½«¸Ã¹¦Äܹرգ¬Ò²¾ÍÊDzÎÊýÉèÖÃΪ¡¯0¡¯£¬ÔòËùÓеÄÓïÒôÊý¾Ý¶¼»á±»ÓÃÀ´Ö´ÐÐÓïÒôʶ±ðµÄËÑË÷ÔËËã¡£¶øÈç¹û½«¸Ã¹¦ÄÜ´ò¿ª£¬Ò²¾ÍÊDzÎÊýÉèÖÃΪ´óÓÚ¡¯0¡¯µÄÊýÖµ£¬ÔòËùÓеÄÓïÒôÊý¾Ý¶¼»áÏȾ­¹ýÊÇ¡°ÓïÒô¶Î¡±»¹ÊÇ¡°¾²ÔëÒô¶Î¡±µÄ¼ì²â£¬Ö»ÓÐÓïÒô¶Î±»ÓÃÀ´Ö´ÐÐÓïÒôʶ±ðµÄËÑË÷ÔËËã¡£ Default: 0x12H 0 ¨C ¹Ø±ÕÓïÒô¶Î¼ì²â¹¦ÄÜ£¬ÊýÖµ·¶Î§: 1~80 ¨C ´ò¿ªÓïÒô¶Î¼ì²â¹¦ÄÜ¡£ÊýֵԽСԽÁéÃô£¬µ«ÈÝÒ×ÎóÅУ»ÊýÖµÔ½´óÔ½²»ÁéÃô£¬µ«ÎóÅеĿÉÄܼõÉÙ¡£½¨ÒéÊýÖµµÄ·¶Î§ÔÚ10~40Ö®¼ä¡£Ô­ÔòÊÇÓïÒô»·¾³ÐÅÔë±ÈÔ½´ó£¬¿ÉÒÔ²ÉÓÃÔ½´óÒ»µãµÄÊýÖµ¡£µ÷Õû±¾²ÎÊýÒ²»á¶Ôʶ±ð¾àÀë²úÉúÓ°Ï죬ÊýֵԽС£¬Ô½ÁéÃô£¬¾àÀëÔ½Ô¶¡£ 5.B8¼Ä´æÆ÷

ASR£ºÊ¶±ðʱ¼ä³¤¶È ×ʶ±ðʱ¼ä³¤¶ÈÉèÖÃΪ¶àÉÙÃ룻ȱʡֵÊÇ60Ãë¡£ ÔÚ±¾Ê±¼ä³¤¶ÈÄÚ£¬Èç¹û¼ì²âµ½Ëµ»°ÉùÒô£¬ÓïÒôʶ±ðÄ£¿é½«»á¸ø³öʶ±ð½á¹û£»Èç¹ûʼÖÕûÓÐ˵»°ÉùÒô£¬½«»á·µ»Ø0ʶ±ð£¬¼ûBA¼Ä´æÆ÷£¬²¢·¢³öÖжϡ£¶¨µÄB8¼Ä´æÆ÷µÄÊýֵΪ2£¬±íʾÎÞÂÛÈçºÎÿ´Îʶ±ð¿ªÊ¼µÄ2Ãëʱ¼äÄÚ£¬±ØÈ»»áֹͣʶ±ð¸ø³öÒ»¸öʶ±ð½á¹û¡£µ±È»Õâ¸öÊýÖµÉèÖõĹýС£¬»áÔì³ÉһЩ±È½Ï³¤µÄÓïÒôÃüÁîÎÞ·¨ÔÚÌØ¶¨µÄʱ¼äÄÚÍê³É£¬¶øÒýÆð´íÎóµÄʶ±ð£» 6.BA¼Ä´æÆ÷

Öжϸ¨ÖúÐÅÏ¢£¬£¨¶Á»òÉèΪ00£© MP3£º²¥·ÅÖжÏʱ£¬ µÚ5λ=1 ±íʾ²¥·ÅÆ÷ÒÑ·¢ÏÖMP3µÄ½áβ¡£ ASR£ºÖжÏʱ£¬ÊÇÓïÒôʶ±ðÓм¸¸öʶ±ðºòÑ¡ Value: 1 ¨C 4: N¸öʶ±ðºòÑ¡ 0»òÕß´óÓÚ4£ºÃ»ÓÐʶ±ðºòÑ¡¡£ 7.BC¼Ä´æÆ÷

ASR£ºÊ¶±ð¹ý³ÌÇ¿ÖÆ½áÊø£¬ÔÚASR½øÐйý³ÌÖУ¬¿ÉÒÔÉèÖñ¾¼Ä´æÆ÷Ìáǰ½áÊø±¾´ÎASR¹ý³Ì£»Ð´07H£¬Í£Ö¹Â¼Òô£¬µ«¶ÔÒÑÓÐÉùÒô½øÐÐʶ±ðÔËË㣬¿ÉÄÜ»áÓÐ×îÓÅʶ±ðºòÑ¡£¬·µ»ØBA=0-4£» д08H£¬Ç¿ÖÆÍ£Ö¹ASRÔËË㣬·µ»ØBA=51H¡£

ÕâÁ½ÖÖÉèÖö¼»áʹDSPËͳöÖжϣ¬ÈçͬÕý³£µÄʶ±ð½áÊø¡£ 4.4оƬ¹Ø¼ü×ÖµÄÉèÖÃ

LD3320ÿ´Îʶ±ð×î¶à¿ÉÉèÖÃ50Ìõ¹Ø¼ü´Ê£¬Ã¿¸öʶ±ð¾ä¿ÉÒÔÊÇ´Ê×é¡¢µ¥´Ê»òÕ߶̾䣬³¤¶È²»³¬¹ý79¸ö×Ö½ÚµÄÆ´Òô´®»òÕßÊ®¸öºº×Ö£¬´Óʵ¼ÊµÄ½Ç¶È³ö·¢£¬Óû§ÔÙ˵µ½°Ë¸ö×ÖµÄʱºò¾Í»á³öÏÖÍ£¶Ù¡¢´òàᢴí×Ö¡¢Â©×ÖµÄÇé¿ö£¬ÕâЩÇé¿ö»áÑÏÖØÓ°Ï쵽ʶ±ð²¢µ¼ÖÂʶ±ð´íÎó£¬ËùÒÔ¸ù¾Ýʵ¼ÊÇé¿ö£¬¹Ø¼ü´ÊµÄÉèÖò»ÒËÌ«³¤¡£Ê¶±ðÒýÇæ²¢²»É趨¹Ø¼ü´ÊµÄÄÚÈÝ£¬¿ÉÒÔÊÇÃüÁî¡¢¸èÇúÃû¡¢ÈËÃû¡¢²Ù×÷Ö¸ÁîµÈÈκεĺº×Ö×Ö·û´®¡£µ«ÊÇASR²»ÄÜʶ±ð¹Ø¼ü´ÊÖеÄÒ»²¿ÄÚÈÝ£¬³ý·ÇÕⲿ·Ö×ÔÉíÒ²ÊÇÒ»¸ö¹Ø¼ü´Ê£¬Ò²²»Ê¶±ðÓë¹Ø¼ü´ÊÁбíÖв»Ïà·ûµÄÇé¿ö£¬±ÈÈçºóÃæÌí¼Ó¡°¶÷°¡¡±Ö®ÀàµÄ´ÊÓï¡£

ÓïÒôʶ±ð£¬Ê¶±ðµÄÊÇÓïÒô£¬¶ÔÓÚ·ÇÌØ¶¨ÓïÒôÀ´Ëµ£¬ÔÚÃèÊö¹Ø¼ü´ÊÓïʱ£¬ÊÇÓÃÒô±ê±ê³öÐèҪʶ±ðµÄ¹Ø¼ü´ÊÓ¶ÔÓÚĿǰLD3320Ö§³ÖµÄÖÐÎÄʶ±ðÀ´Ëµ£¬¾ÍÊÇÓÃÆ´ÒôÀ´ÃèÊö³ö¹Ø¼ü´Ê£¬ËùÒÔÖ»ÒªÊÇÆ´Òô¿ÉÒÔÆ´³öµÄÆ´Òô£¬¶¼¿ÉÒÔÊäÈëоƬ×÷Ϊ¹Ø¼ü´Ê±»Ê¶±ðµÄ¡£

ÔÚÉ趨ºÃ¹Ø¼ü´ÊÖ®ºó£¬ÎªÁ˽øÒ»²½½µµÍÎóʶ±ðÂÊ£¬¿ÉÒÔÔÚʶ±ðÁбíÖÐÌí¼ÓһЩÈÎÒâ´Ê»ã£¬ÓÃÀ´ÎüÊÕ´íÎóʶ±ð£¬´Ó¶ø´ïµ½½µµÍÎóʶ±ðÂʵÄÄ¿µÄ£¬¿ÉÒÔ°ÑÕâЩ¹Ø¼ü´Ê³ÆÖ®Îª¡°À¬»ø¹Ø¼ü´Ê¡±¡£±ÈÈç±¾´ÎÉè¼ÆÖеĹؼü´ÊΪ¡°¿ªµÆ¡±¡¢¡°¹ØµÆ¡±£¬ÎÒÃǰѡ°¹ãÖÝ¡±ÉèÖóÉÁËÀ¬»ø¹Ø¼ü´Ê£¬µ±ÊäÈë¹ãÖÝʱ£¬ÏµÍ³»á×Ô¶¯Ê¶±ð³ö²»Êǹؼü´Ê£¬ÐèÒªÖØÐÂÊäÈë¡£

LD3320ÊÇÖ§³ÖÖÐÎÄÆÕͨ»°µÄÒ»¿îÓïÒôоƬ£¬ÓÐЩÍâÎÄ»òÕß·½ÑÔÒôÎÞ·¨ÓÃÆ´Òôƴд³öÀ´µÄ£¬LD3320¾Í²»Ò»¶¨Äܹ»Íê³É¶ÔÓ¦µÄÍâÎÄ»òÕß·½ÑÔµÄʶ±ð¡£ 4.5ÓïÒô¿ª¹ØÔ´³ÌÐò 4.5.1³õʼ»¯³ÌÐò

ÔÚ¿ªÊ¼Ö´ÐвÙ×÷ÃüÁî֮ǰҪÏȶÔLD,ASRÄ£¿é½øÐгõʼ»¯£º

¹¦ÄÜÃèÊö£º LD,ASRÄ£¿éÃüÁî³õʼ»¯void LD_Init_Common() {

LD_ReadReg(0x06); /*0x06 FIFO״̬ µÚ3λ£º1±íʾ FIFO_DATAÒÑÂú£¬²»ÄÜдµÚ5λ£º1±íʾ FIFO_EXTÒÑÂú£¬²»ÄÜд¡£*/

LD_WriteReg(0x17, 0x35);/*д35H ¶ÔLD3320 ½øÐÐÈí¸´Î»;д48H ¿ÉÒÔ¼¤»î DSP;д4CH ¿ÉÒÔʹDSP ÐÝÃߣ¬±È½ÏÊ¡µç¡£*/ delay(10);

LD_ReadReg(0x06);

LD_WriteReg(0x89, 0x03); /*0x89 Ä£Äâµç·¿ØÖÆ ³õʼ»¯Ê±Ð´ 03H ; MP3 ²¥·Åʱд

FFH*/ delay(5);

LD_WriteReg(0xCF, 0x43); /*0xcf ÄÚ²¿Ê¡µçģʽÉèÖà ³õʼ»¯Ê± дÈë 43H; MP3 ³õʼ»¯ºÍ ASR³õʼ»¯Ê±Ð´Èë 4FH*/ delay(5);

LD_WriteReg(0xCB, 0x02); /*0xcb ASR£º¶ÁÈ¡ ASR½á¹û£¨ºò²¹ 4£© */ /*PLL setting*/

LD_WriteReg(0x11, LD_PLL_11); /*0x11 ʱÖÓÆµÂÊÉèÖà 1*/ LD_WriteReg(0x1E,0x00);

/*0x1e ADC רÓÿØÖÆ£¬Ó¦³õʼ»¯Îª 00H *

LD_WriteReg(0x19, LD_PLL_ASR_19); /*0x19 ʱÖÓÆµÂÊÉèÖà 2 LD_WriteReg(0x1B, LD_PLL_ASR_1B);/*0x1b ʱÖÓÆµÂÊÉèÖà 3*/ LD_WriteReg(0x1D, LD_PLL_ASR_1D); /*0x1d ʱÖÓÆµÂÊÉèÖà 4*/ delay(10);

LD_WriteReg(0xCD, 0x04);

/*0xcd DSP ÐÝÃßÉèÖà ³õʼ»¯Ê±Ð´Èë 04H ÔÊÐíDSP ÐÝÃß¡£*/

LD_WriteReg(0x17, 0x4c); /*0x17 д35H ¶ÔLD3320 ½øÐÐÈí¸´Î»£¨Soft Reset£©;д48H ¿ÉÒÔ¼¤»î DSP£»;д4CH ¿ÉÒÔʹDSP ÐÝÃߣ¬±È½ÏÊ¡µç¡£*/

delay(5);

LD_WriteReg(0xB9, 0x00);

/*0xb9 ASR£ºµ±Ç°Ìí¼Óʶ±ð¾äµÄ×Ö·û´®³¤¶È£¨Æ´Òô×Ö·û´®£© ³õʼ

»¯Ê±Ð´Èë 00H,ÿÌí¼ÓÒ»Ìõʶ±ð¾äºóÒªÉ趨һ´Î¡£*/

LD_WriteReg(0xCF, 0x4F); /*0xcf ÄÚ²¿Ê¡µçģʽÉèÖà ³õʼ»¯Ê± дÈë 43H; MP3 ³õʼ»¯ºÍ ASR³õʼ»¯Ê±Ð´Èë 4FH*/

LD_WriteReg(0x6F, 0xFF); /*0x6f ¶ÔоƬ½øÐгõʼ»¯Ê±ÉèÖÃΪ 0xFF */ 4.5.2Óû§×Ô¶¨ÒåÐ޸ĺ¯Êý

LD3320µÄ²Ù×÷Ö¸Áîʱ¿ÉÒÔ±»¶¯Ì¬±à¼­µÄ£¬ËùÒÔÓû§¿ÉÒÔÈÎÒâµÄÐÞ¸Ä×Ô¼ºÏëÒªÉ趨µÄÖ¸Áî

* Ãû ³Æ£ºÓû§Ö´Ðк¯Êý

* ¹¦ ÄÜ£ºÊ¶±ð³É¹¦ºó£¬Ö´Ðж¯×÷¿ÉÔڴ˽øÐÐÐÞ¸Ä * Èë¿Ú²ÎÊý£º ÎÞ * ³ö¿Ú²ÎÊý£ºÎÞ * ˵ Ã÷£º

********************************************************** void User_handle(uint8 dat) {

//UARTSendByte(dat);//´®¿Úʶ±ðÂ루ʮÁù½øÖÆ£© switch(dat) /*¶Ô½á¹ûÖ´ÐÐÏà¹Ø²Ù×÷,¿Í»§ÐÞ¸Ä*/ {

case CODE_DMCS:/*ÃüÁî¡°²âÊÔ¡±*/

//

PrintCom(\¡°´úÂë²âÊÔ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\

break;

/*ÃüÁî¡°È«¿ª¡±*/

case CODE_KFBYZ: //

PrintCom(\¡°¿ª·¢°åÑéÖ¤¡±ÃüÁîʶ±ð³É¹¦\\r\\n\

break;

case CODE_KD: Key1 = 1;LED = 0;

/*ÃüÁî¡°¸´Î»¡±*/

PrintCom(\¡°¿ªµÆ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\break; case CODE_GD: Key1 = 0;LED = 1;

/*ÃüÁî¡°¸´Î»¡±*/

PrintCom(\¡°¹ØµÆ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\

break;

/*ÃüÁî¡°¸´Î»¡±*/

case CODE_BJ: Key2=1;

PrintCom(\¡°¿ªÃÅ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\

break;

/*ÃüÁî¡°¸´Î»¡±*/

case CODE_SH: Key2=0;

PrintCom(\¡°¹ØÃÅ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\break;

case CODE_GZ:

/*ÃüÁî¡°¸´Î»¡±*/

PrintCom(\¡°¹ãÖÝ¡±ÃüÁîʶ±ð³É¹¦\\r\\n\break;

default:PrintCom(\ÇëÖØÐÂʶ±ð·¢¿ÚÁî\\r\\n\