TLC320AD50CÔÚDSPϵͳÖеÄÓ¦ÓÃÓëÉè¼Æ
DSPÊÇÒ»ÖÖÊʺÏÓÚʵʱÊý×ÖÐźŴ¦ÀíµÄ΢´¦ÀíÆ÷£¬Ö÷ÒªÓÃÓÚʵʱ¿ìËÙµØÊµÏÖ¸÷ÖÖÊý×ÖÐźŵĴ¦ÀíËã·¨£¬ÈçÊý×ÖÂ˲¨¡¢±ä»»¡¢ÔöÇ¿¡¢Ñ¹Ëõ¡¢¹À¼Æ¡¢Ê¶±ðµÈ¡£DSP×Ô20ÊÀ¼Í80Äê´úµ®ÉúÒÔÀ´µÃµ½Ñ¸Ëٵķ¢Õ¹£¬¹ã·ºÓÃÓÚͨÐÅ¡¢¿ØÖÆ¡¢¾üʵÈÁìÓò¡£ÔÚDSPµÄÓ¦ÓÃÖУ¬Êý¾ÝµÄ²É¼¯¡¢ÐźŴ¦Àí¼°ÖØ½¨ÊÇDSPÓ¦ÓÃϵͳµÄÖØÒªÈÎÎñ¡£±¾ÎĽéÉÜTMS320C54XÓë - ÐÍA/D¡¢D/Aת»»Ð¾Æ¬TLC320AD50CµÄ¹¤×÷ÔÀí¡¢Ó²¼þ½Ó¿ÚÒÔ¼°Èí¼þÉè¼Æ¡£
TMS320C54X DSPµÄ´®¿Ú¼ò½é
ÔÚTIµÄDSPÖУ¬´®ÐпÚÊÇÒ»¸ö·Ç³£ÖØÒªµÄƬÉÏÍâÉ裬ËüÄܹ»¸ßËÙµØÓëÍⲿÉ豸½øÐÐÊý¾Ý½»»»¡£TMS32054X DSPËæ×ÅÆ÷¼þ²»Í¬£¬ÓжàÖÖ½Ó¿Ú£¬¶¼ÄÜÓëTLC320AD50CÖ±½Ó½Ó¿Ú¡£ÏÂÃæÒÔTMS320C5409 DSPΪÀý£¬¼òÒªÐðÊöMcBSP´®¿ÚµÄ¹¤×÷ÔÀíºÍÓ¦ÓÃÒªµã¡£
McBSP´®¿ÚÓÉÊý¾ÝͨµÀºÍ¿ØÖÆÍ¨µÀ×é³É£¬Ëüͨ¹ý7¸ö¹Ü½ÅÓëÍⲿÉ豸ÏàÁ¬£¬Êý¾Ý·¢ËÍͨ¹ýDX£¬Êý¾Ý½ÓÊÕͨ¹ýDR£¬´®ÐпڵĿØÖÆÐÅÏ¢´ÓCLKX¡¢CLKR¡¢FSXºÍFSR»ñµÃ¡£CLKSΪÍⲿʱÖÓÔ´¡£CPUºÍDMA¿ØÖÆÆ÷ͨ¹ýÄÚ²¿ÍâÉè×ÜÏß¶ÔMcBSP½øÐзÃÎÊ£¬´ÓÊý¾Ý½ÓÊռĴæÆ÷DRR[1£¬2]ÖжÁÈ¡Êý¾Ý£¬ÍùÊý¾Ý·¢ËͼĴæÆ÷DXR[1£¬2]дÊý¾Ý£¬Êý¾Ý´ÓDRÒý½Å½øÈëDSP£¬Ê×ÏÈ´æ·ÅÔÚ½ÓÊÕÒÆÎ»¼Ä´æÆ÷RSR[1£¬2]ÖУ¬µ±Ò»¸öÍêÕûµÄ×Ö½ÓÊÕÍê±Ïºó£¬½á¹û±»¸´ÖƵ½½ÓÊÕ»º³å¼Ä´æÆ÷RBR[1£¬2]£¬×îºóÔÙÓÉRBR[1£¬2]¸´ÖƵ½DRR[1£¬2]ÖУ¬¹©CPU»òDMA¿ØÖÆÆ÷·ÃÎÊ¡£Ð´²Ù×÷Óë¶ÁÈ¡Ïà·Â£¬´Ó½á¹¹ÉÏÀ´¿´£¬·¢ËͺͽÓÊÕ²¿·ÖÊÇÏà¶Ô¶ÀÁ¢µÄ£¬ËùÒÔ¿ÉÒÔʵÏÖȫ˫¹¤Í¨ÐÅ¡£McBSPµÄ¿ØÖÆÉèÖÃͨ¹ýÒ»¶Ô¼Ä´æÆ÷¶ÁдÀ´Íê³É£¬ÕâЩ¿ØÖƼĴæÆ÷¿ØÖƵŤ×÷ģʽ»òָʾ´®¿ÚµÄ״̬ÐÅÏ¢¡£·ÃÎÊij¸öÖ¸¶¨µÄ¼Ä´æÆ÷ʱ£¬Ê×ÏÈÒª½«ÏàÓ¦µÄ¿ØÖƼĴæÆ÷µÄ×ÓµØÖ·Ð´Èë×ÓµØÖ·¿ØÖÆÆ÷SPSA£¬SPSAÇý¶¯¸´½ÓÆ÷£¬Ê¹Ö®ÓëÊý¾Ý¿ØÖƼĴæÆ÷SPSDÏàÁ¬¡£½ÓÈëÏàÓ¦×ÓµØÖ·¼Ä´æÆ÷ËùÔÚµÄʵ¼ÊÎïÀí´æ´¢Î»Ö㬵±ÏòSPSDдÈëÊý¾Ýʱ£¬Êý¾ÝËÍÈëÇ°Ãæ×ÓµØÖ·¼Ä´æÆ÷ËùÖ¸¶¨µÄÄÚǶÊý¾Ý´æ´¢Æ÷£¬µ±´ÓSPSD¶ÁÈ¡Êýʱ£¬Ò²½ÓÈëËùÖÆ¶¨µÄÄÚǶÊý¾Ý´æ´¢Æ÷¡£
TLC320AD50C ¼ò½é
Ëæ×ÅÊý×Ö¼¼ÊõµÄ²»¶Ï·¢Õ¹£¬½éÓÚÄ£ÄâÓëÊý×Öµç·֮¼äµÄоƬµÄʹÓÃÒ²Ô½À´Ô½¶à¡£ÃÀ¹úTI¹«Ë¾µÄTLC320AD50C(ÒÔϼò³ÆAD50)¾ÍÊÇÒ»ÖÖ¾ßÓÐÐí¶àÓÅÁ¼ÌØÐÔµÄÄ£Äâ½Ó¿Úµç·оƬ£¬¸ÃоƬ¿É¹ã·ºÓÃÓÚ¸÷Öֵ緣¬ÓÈÆäÊÇÓ¦ÓÃÔÚDSPÁìÓòÖС£AD50оƬ²ÉÓùý²ÉÑù - ¼¼Êõ£¬¿É½øÐÐA/DºÍD/AµÄ¸ß·Ö±æÂÊ¡¢µÍËÙÐźÅת»»¡£¸ÃÆ÷¼þͬʱ»¹°üÀ¨Á½¸ö´®ÐÐͬ²½×ª»»µç·(ÓÃÓÚ¸÷×ÔµÄÊý¾Ý·½Ïò)£¬ÔÚDAC֮ǰÓÐÒ»¸öÄÚ²åÂ˲¨Æ÷£¬¶øÔÚºóÃæÓÐÒ»¸ö³éÈ¡Â˲¨Æ÷¡£AD50ÖеĿÉÑ¡ÏîºÍµç·ÅäÖÿÉÒÔͨ¹ý´®ÐпڽøÐбà³Ì£¬ AD50ÅäÖÃλ¿É½øÐÐÈí¼þ±à³Ì£¬¸ÃÆ÷¼þÖй²ÓÐÆß¸öÊý¾ÝºÍ¿ØÖƼĴæÆ÷¿É¹©Ê¹Óá£ÆäÓÃ;ÈçÏ£º
¼Ä´æÆ÷0£º¿Õ²Ù×÷(No-Op)¼Ä´æÆ÷¡£¼Ä´æÆ÷1£ºControl1¼Ä´æÆ÷¡£¸Ã¼Ä´æÆ÷ÓÃÒÔ¿ØÖÆÈí¼þ¸´Î»¡¢Èí¼þµôµç¡¢Ñ¡ÔñÕý³£»ò¸¨ÖúÄ£ÄâÊäÈë¡¢Êý×Ö·´À¡µÄÑ¡Ôñ¡¢DACµÄ16λ»ò15λ¹¤×÷·½Ê½µÄÑ¡Ôñ¡¢¼àÊÓ·Å´óÆ÷Êä³öÔöÒæµÄÑ¡Ôñ¼°Ó²¼þ»òÈí¼þ¶þ´ÎͨÐÅÇëÇó·½Ê½µÄÑ¡ÔñµÈ¡£¼Ä´æÆ÷2£ºControl 2¼Ä´æÆ÷£¬ÓÃÓÚ¿ØÖÆÒ»¸ö³éÈ¡FIRÂ˲¨Æ÷Òç³öµÄÊä³ö±êÖ¾¡¢FLAGµÄÊä³öÖµ¡¢ALT-DATAÊäÈë¶ËʹÄÜ¡¢ÎªADCÑ¡Ôñ16λ·½Ê½»ò15λ·½Ê½¼°Ê¹ÄÜÄ£Äâ·´À¡¡£¼Ä´æÆ÷3£ºControl 3¼Ä´æÆ÷¡£Ëü¿ØÖÆFSÓëFSDÖ®¼äÑÓ³ÙSCLKµÄ¸öÊý£»Í¨ÖªÖ÷Æ÷¼þÓжàÉÙ´ÓÆ÷¼þ½«Á¬ÔÚÒ»Æð¡£¼Ä´æÆ÷4£ºControl 4¼Ä´æÆ÷£¬ÓÃÀ´¿ØÖÆÊäÈëÊä³ö·Å´óÆ÷ÔöÒæ£¬²ÉÑùÂÊΪfs£½MCLK/(128 N)»òMCLK/(512 N)µÄÑ¡Ôñ£¬ÒÔ¼°ÔÚMCLKÊäÈë¶ËʹÄÜÍⲿ²ÉÑùʱÖÓºÍÅÔ·ÄÚ²¿PLLµÈ¡£¼Ä´æÆ÷5ºÍ¼Ä´æÆ÷6£º±£Áô¼Ä´æÆ÷£¬ÓÃÓÚ¹¤³§²âÊÔ¡£
TLC320AD50CÓëÍâ½ç´®ÐÐͨÐÅ¿ÉÒÔ·ÖΪÊ×´ÎͨÐźͶþ´ÎͨÐÅ¡£ÔÚÊ×´ÎͨÐÅÖУ¬ÓÐÁ½ÖÖÊý¾Ý´«ËÍģʽ£¬16λ´«ËÍģʽºÍ15+1λ´«ËÍģʽ£¬¿Éͨ¹ý¿ØÖƼĴæÆ÷É趨¡£Ä¬ÈÏÇé¿öÏÂΪ15+1λ´«ËÍģʽ¡£Èô²ÉÓÃ15+1λ´«ËÍģʽ£¬Æä×îµÍλDOΪ·ÇÊý¾Ý룬ÊäÈëDACÊý¾ÝµÄDOλΪ¶þ´ÎͨÐÅÇëÇó룬Êä³öADCÊý¾ÝµÄD0λΪM/S½ÅµÄ״̬λ¡£¶þ´ÎͨÐÅÖ»ÓÐÔÚ·¢³öÇëÇóʱ²úÉú£¬µ±Ê×´ÎͨÐŲÉÓÃ15+1λģʽʱ£¬¿ÉÒÔ½øÐжþ´ÎͨÐÅÇëÇó£»µ±Ê×´ÎͨÐŲÉÓÃ16λģʽʱ£¬Ôò±ØÐëÓÉFC½ÅÊäÈëÐźÅÀ´²úÉú¶þ´ÎͨÐÅÇëÇó¡£¶þ´ÎͨÐÅÊý¾Ý¸ñʽÈçͼ1Ëùʾ£¬ÆäÖÐD7-D0Ϊ¿ØÖƼĴæÆ÷Êý¾Ý£¬D12-D8Ϊ¿ØÖƼĴæÆ÷µØÖ·£¬D13£½1Ϊ¶Á¿ØÖƼĴæÆ÷Êý¾Ý£¬D13£½0¶Ô¿ØÖƼĴæÆ÷дÊý¾Ý¡£Í¨¹ý¶þ´ÎͨÐÅ£¬¿ÉʵÏÖTLC320AD50C³õʼ»¯ºÍÐÞ¸ÄTLC320AD50CÄÚ²¿¿ØÖƼĴæÆ÷¡£ÔÚTLC320AD50CÄÚ²¿ÓÐ5¸ö¿É¹©¶þ´ÎͨÐÅ·ÃÎʵĿØÖƼĴæÆ÷£¬ÆäÖÐ4¸ö¼Ä´æÆ÷ºÍTLC320AD50C³õʼ»¯¼°ÅäÖÃÓйء£Æä¹¦ÄÜÈç±í1Ëùʾ¡£
Ó²¼þÉè¼Æ
ÔÚÓ¦ÓÃÖУ¬½«TLC320AD50C½ÓÖÁDSPµÄͬ²½´®¿Ú£¬²¢½«TLC320AD50CÉèÖÃÔÚÖ÷¶¯¹¤×÷ģʽÏ£¬¼´ÓÉTLC320AD50CÌṩ֡ͬ²½ÐźźÍÒÆÎ»Ê±ÖÓ£¬ÁíÍⲻͬÐͺŵÄDSPµÄ¹Ü½Åµçѹ¿ÉÒÔΪ3.3V»òÕß5V¡£Òò´Ë£¬¿ÉÒÔ¸ù¾ÝDSP µÄµçÔ´ÌØÐÔΪTLC320AD50CÑ¡Ôñ3.3V»ò5VµÄÊý×ֵ磬ÒÔʵÏֹܽŵÄÖ±½ÓÁ¬½Ó¡£Í¨¹ý½«¶à¸öTLC320AD50C´®ÐÐÁ¬½Ó£¬²¢½«µÚÒ»¸öTLC320AD50CÉèÖóÉÖ÷¶¯¹¤×÷ģʽ£¬¶øÆäËûTLC320AD50CÉèÖóɴÓÉ豸·½Ê½£¬ÒÔʵÏÖ¶àTLC320AD50CºÍDSPµÄÏàÁ¬¡£
ͼ1¸ø³öTMS320C54XÓëTLC320AD50CÓ²¼þ½Ó¿Úµç·£¬¼ÙÉèDSPµÄ¹Ü½ÅµçѹΪ3.3V£¬Òò¶ø½«TLC320AD50CµÄÊý×Öµç½Óµ½3.3VµçÔ´£¬¹Ü½ÅM/S¾¹ý10Kµç×èÉÏÀ£¬½«TLC320AD50CÉèÖóÉÖ÷¶¯¹¤×÷ģʽ£¬Ñ¡ÔñINPºÍINM×÷ΪADCµÄÊäÈ룬½«AUXPºÍAUXM½ÓÖÁÄ£ÄâµØ£»DACµÄÕýÏàÊä³ö¾¹ýÒ»½×µÍͨÂ˲¨ºóË͸øÄ£ÄâÉ豸£¬·´ÏàÊä³ö²»Óã»DSP¿ÉÒÔͨ¹ýͨÓÃÊä³ö¿ÚXF¶ÔTLC320AD50C½øÐи´Î»²Ù×÷£» ¹Ü½ÅFC½ÓµØ£¬ÏµÍ³Ö»ÄܲÉÓÃÈí¼þ·½Ê½ÉêÇë´¥·¢¸¨ÖúͨÐÅ£¨¶þ´ÎͨÐÅ£©Ä£Ê½£»Êý¾Ý¸ñʽΪ15+1±ÈÌØÄ£Ê½£¬¹Ü½ÅFSD¿ÉÒÔÊä³öµ½ºóÃæµÄTLC320AD50CµÄFS¹Ü½Å£¬ÒÔʵÏÖÉ豸µÄͬ²½¡£ÊäÈëÖ÷ʱÖÓMCLKΪ8.192MHz£¬²ÉÑùƵÂÊÑ¡ÔñΪ8KHz£¬ÄÚ²¿PLLʹÄÜ£¨¿ØÖƼĴæÆ÷4ÖеÄN=8£©¡£Í¨¹ý¼Ä´æÆ÷ÉèÖ㬽«TMS320C54XµÄFSX£¬FSR,CLKR£¬CLKXÅäÖÃΪÍⲿÊäÈË£¬TLC320AD50CµÄSCLKÅäÖÃΪÄÚ²¿²úÉú¡£ÕâÑùÊý¾Ý½ÓÊÕ/·¢ËÍ֡ͬ²½Ðźš¢ÒÆÎ»Ê±ÖÓÐźžùÓÉTLC320AD50C²úÉú¡£´®ÐпڵĽÓÊÕ/·¢Ë͹ý³ÌÊÜTLC320AD50CµÄ¿ØÖÆ¡£
Èí¼þÉè¼Æ
Ïà¹ØÈí¼þÉè¼Æ´óÖ¿ɷÖΪ´®¿ÚMcBSPÉèÖúÍÍⲿоƬTLC320AD50CÉèÖá£
´®¿ÚMcBSPÉèÖÃÓ¦¸ÃÏÈÈô®¿ÚµÄXRST=0£¬RRST=0£¬ GRST=0ʹ´®¿Ú´¦ÓÚ³õʼ»¯×´Ì¬£¬È»ºó¸ø¿ØÖƼĴæÆ÷ÉèÖÃÉè¼ÆµÄ״̬룬ÈçSRGR¡¢SPCR¡¢ PCR¡¢ XCR¡¢ RCRµÈ¡£µ«Òª×¢ÒâµÄÊÇ£¬ÕâÀï²»ÄܸıäXRST=0£¬RRST=0 GRST=0룬×îºóÊÇÈÃXRST=1£¬RRST=1£¬FRST=1ʹ´®¿ÚÍ˳ö¸´Î»×´Ì¬¡£
TLC320AD50CÉèÖÃͨ¹ý¸¨ÖúͨÐÅÀ´¶Áд¿ØÖƼĴæÆ÷£¬¸¨ÖúͨÐÅÓÐÁ½ÖÖ·½·¨ÊµÏÖ£¬Ò»ÊÇÓ²¼þ·½Ê½£¬FC±ØÐëÔÚFSµÄÉÏÌøÑØ±»À¸ß£¬ÕâÑù
TLC320AD50C»áÔÚºó128¸öSCLKºóÇл»µ½¸¨ÖúͨÐÅģʽÏ£¬¶þÊÇÈí¼þ·½Ê½£¬ÒªÓÃÈí¼þ·½Ê½±ØÐëÊǹ¤×÷ÔÚ15+1λģʽÏ£¬µ±Ð´ÈëµÄÊý×ÖD0λΪ1£¬Ôò¿ÉÒÔÔÚºó128¸öSCLKºóÇл»µ½¸¨ÖúͨÐÅģʽÏ¡£¶Ô¿ØÖÆÆ÷µÄдµÄÊý¾Ýͨ¹ýDIN½øÈëTLC320AD50C£¬¼Ä´æÆ÷µÄÊý¾Ý´ÓDOUTÊä³ö£¬·ÃÎʼĴæÆ÷ʱҪÇóÖ¸Ã÷É豸ºÅ¡¢¶ÁдÊôÐÔ¡¢¼Ä´æÆ÷µØÖ·¡£ÏÂÃæ¸ø³öµÄ·Ö±ðÊÇ´®¿Ú³õʼ»¯ÒÔ¼°LC320AD50C³õʼ»¯µÄ²¿·Ö¹Ø¼ü´úÂë¡£ .include "const.inc" £»´®¿Ú³õʼ»¯Êý¾Ý±í£¬±íÖÐÿÏî°üÀ¨¼Ä
´æÆ÷×ÓµØÖ·£¬ºÍ¶ÔÓ¦µÄÉèÖÃÖµ
.include "init54.inc" £»³õʼ»¯DSPÄÚÉèµÄ³£Êý±íÎļþ
.include "vector.inc" £»ÖжÏÏòÁ¿±íÎļþ
.mmregs £»Ó³Éä¿ØÖÆÆ÷ÎïÀíµØÖ·
MCBSP_INIT: £»MCBSP_INIT Êdzõʼ»¯´®¿ÚMcBSP
£»SPSAºÍSPSDµÄµØÖ·ÊÇÁ¬ÐøµÄ¡£Ëù
ÒÔ¿ÉÒÔÓø¨Öú¼Ä´æÆ÷À´·ÃÎÊ£¬¼ò»¯´úÂë
stm 0,SPSA0 £»reset mcbsp0 spcr1
nop
stm K_SPCR10_RS,SPSD0 £»K_SPCR10_RSΪconst.inc Îļþ¶¨ÒåºÃµÄ³£Êý
nop
stm 1,SPSA0 £»spcr2
nop
STM K_SPCR20_RS,SPSD0
stm #MCBSP0_CONST,AR2 £»MCBSP0_CONSTΪconst.incÊý¾Ý±íµÄÊ×µØÖ·
stm #SPSA0,AR3
stm #(15-1),BRC £»¹²ÓÐ14¸ö¼Ä´æÆ÷ÒªÉèÖ㬲ÉÓÃÖ¸ÕëÑ »·Çл»·½Ê½ÊµÏÖ
rptb LOOP-1
ld *AR2+,A £»AR2Ö¸ÏòÊý¾Ý±íÖеÄÊý¾ÝÊ×µØÖ·£¬È»ºóµØÖ·µÝÔö
stl A,*AR3+ £»AR3Ö¸ÏòSPSA0£¬È»ºóÖ¸ÏòSPSD0,ÔÙ»ØÖ¸SPSA0.
nop
ld *AR2+,A
stl A,*AR3-
nop
LOOP:
stm 0,SPSA0 £»Í˳ö¸´Î»×´Ì¬
nop
stm K_SPCR10_RS1,SPSD0
nop
stm 1,SPSA0
nop
STM K_SPCR20_RS1,SPSD0
nop
WAIT #100
ret
AD50C_INIT: £»TLC320AD50C³õʼ»¯
ld #K_Register1,B
call ADDA_SET £»µ÷ÓÃADDA_SETº¯Êý¿é
ld #K_Register2,B
call ADDA_SET
ld #K_Register4,B
call ADDA_SET
RET
ADDA_SET: £»ADDA_SETº¯Êý¿é£¬ÊµÏÖÒ»´ÎÖ÷ͨÐÅ£¬
Ò»´Î¸¨ÖúͨÐÅ£¬È»ºó·µ»Øµ½Õý³£Ä£Ê½
stm #1,DXR10
WAIT_1INT:
ld *(serial_int_flag),A £»¶ÁÈ¡Öжϱêʶ
nop
nop
nop
bc WAIT_1INT,AEQ £»µÈ´ýÖжÏ
st #0,*(serial_int_flag) £»ÖжϱêʶÇå¿Õ
stlm B,DXR10
WAIT_2INT:
ld *(serial_int_flag),A
nop
nop
nop
ADD #1,A
bc WAIT_2INT,AEQ
st #0,*(serial_int_flag)
RET
½áÊøÓï
±¾ÎĽéÉÜÁËÀûÓÃTMS320C54XµÄͬ²½´®ÐнӿÚÓëTLC320AD50CÖ®¼äͨÐŵķ½·¨£¬½éÉÜÁËAD50ÓëDSP´®¿ÚͨÐŵÄÓ²¼þ½Ó¿Ú¼°Èí¼þ¡£¿ÉÒÔ¿´³ö£¬´Ë½Ó¿Úµç·¼ò½à£¬±à³Ì·½±ã£¬¿ÉʵÏָ߾«¶ÈA/D¡¢D/Aת»»£¬¿ÉÒÔ¶ÔÓïÒôÐźŽøÐÐÎÞÊ§Õæ²ÉÑù£¬ÍêÈ«ÄÜÂú×ãºóÐøÓïÒôÐźŴ¦ÀíµÄÒªÇó£¬ÓëDSP½Ó¿Ú¼òµ¥£¬¸ßÐÔÄÜ£¬µÍ¹¦ºÄ£¬ÒѳÉΪµ±Ç°ÓïÒô´¦ÀíµÄÖ÷Á÷²úÆ·£¬¹ã·ºÓ¦ÓÃÔÚÒôƵ´¦Àí£¬ÓïÒôÔöÇ¿£¬ÓïÒô°²È«£¬»ØÉùµÖÏû£¬VoUµÈµç»°»òÓïÒôÓ¦ÓÃÁìÓò¡£
#If you have any other info about this subject , Please add it free.# |
Author:
À´×ÔÍøÂç
01 8th, 2009 in
xn--duut94b.com
edit