اطلاعیه

Collapse
No announcement yet.

آی سی ضبط صدا ISD4004-8M - تست شده

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آی سی ضبط صدا ISD4004-8M - تست شده

    با سلام.
    با توجه به مشکلاتی که برای راه اندازی آی سی صدا ISD4004 وجود داشت و خودم هم درگیرش بودم ، خواستم این پروژه رو برای کمک به دوستانی که برای راه اندازی و آدرس دهی به مشکل بر خوردند تو سایت بذارم .


    Chip type : ATmega16
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256
    ************************************************** ***/

    #include <mega16.h>
    #include <spi.h>
    #include <stdio.h>
    #include <delay.h>

    unsigned char POWERUP=0x20;
    unsigned char REC=0xb0;
    unsigned char STOP=0x30;
    unsigned char PLAY=0xf0;
    unsigned char SETREC=0xa0;
    unsigned char SETPLAY=0xe0;
    unsigned char RINT=0x30;
    unsigned char SETMC=0xe8;
    unsigned char MC=0xf8;


    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
    // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0xB0;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x03;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Falling Edge
    // INT1: Off
    // INT2: Off
    GICR|=0x40;
    MCUCR=0x02;
    MCUCSR=0x00;
    GIFR=0x40;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 62.500 kHz
    // SPI Clock Phase: Cycle Half
    // SPI Clock Polarity: Low
    // SPI Data Order: LSB First
    SPCR=0x73;
    SPSR=0x00;

    // LCD module initialization
    lcd_init(16);

    // Global enable interrupts
    #asm("sei&quot

    spi(POWERUP);
    delay_ms(25);
    PORTB.4=1;
    while (1)
    {
    if(PINC.0==0)
    {
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(100);
    PORTB.4=0;
    spi(0x00);
    spi(0x00);
    spi(SETREC);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);


    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(100);
    PORTB.4=0;
    spi(0x0A);
    spi(0x00);
    spi(SETREC);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);

    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(100);
    PORTB.4=0;
    spi(0x14);
    spi(0x00);
    spi(SETREC);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);

    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(100);
    PORTB.4=0;
    spi(0x1E);
    spi(0x00);
    spi(SETREC);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);
    }


    if(PINC.1==0)
    {
    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(0x1E);
    spi(0x00);
    spi(SETPLAY);
    //PORTA.0=1;
    //PORTA.0=0;
    //spi(PLAY);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);


    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(0x14);
    spi(0x00);
    spi(SETPLAY);
    // PORTA.0=1;
    //PORTA.0=0;
    //spi(PLAY);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);

    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(0x0A);
    spi(0x00);
    spi(SETPLAY);
    // PORTA.0=1;
    //PORTA.0=0;
    //spi(PLAY);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);

    PORTB.4=0;
    spi(POWERUP);
    PORTB.4=1;
    delay_ms(50);
    PORTB.4=0;
    spi(0x00);
    spi(0x00);
    spi(SETPLAY);
    // PORTA.0=1;
    //PORTA.0=0;
    //spi(PLAY);
    PORTB.4=1;
    delay_ms(2000);
    PORTB.4=0;
    spi(STOP);
    PORTB.4=1;
    delay_ms(500);
    }

    };
    }

    من خودم ازش درست جواب گرفتم میتونید آدرسهای حافظه رو خودتون تغییر بدین.
    فقط یه نکته بسیار مهم هست که هر خونه حافظه 200 میلی ثانیه برای ضبط صدا جا داره البته برای ISD4004-8M . پس قبل از تغییر آدرس ها محاسبه کنید که خونه بعدی حافظه چه آدرسی باید داشته باشه.مثلا اگر اولین صدا رو خونه 0x00 حافظه ذخیره کنید و مدت ضبط صدا 5 ثانیه باشه باید خونه بعدی برای آدرستون 0x19 باشه . ( 5000 میلی ثانیه تقسیم بر 200 میلی ثانیه = خونه 25 حافظه که به هگز میشه 0x19) پس همین طور برای صداهای بعدی بر طبق زمان ضبط صدا محاسبه کنید و در برنامه بذارید .ان شا الله که جواب میگیرید چون خودم جواب گرفتم.

    <img src="http://autosystem.ir/images/Autosystem-468.gif"></img>

    #2
    پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

    سلام و ممنون از قرار دادن سورس برنامتون
    اگه امکان داره فایل شماتیک مدار رو نیز قرار بدید
    با تشکر
    تو بگو ای سنگ صبور تو صبوری یا دل من
    تو بگو ای جام بلور تو شکستی یا دل من

    دیدگاه


      #3
      پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

      سلام
      ممنون از شما من خیلی با این ای سی ور رفتم کار نکرد مشکل این با این ای سی اینه که من با زبان بیسیک کار کردم و بلدم فکر کنم این زبان سی باشه
      اگر ممکنه و کسی که هم به زبان بیسیک و شماتیک این مدار را داره بذاره تو ایسی ممنون میشم
      با تشکر
      من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

      دیدگاه


        #4
        پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

        نوشته اصلی توسط امین شیخ نجدی
        سلام و ممنون از قرار دادن سورس برنامتون
        اگه امکان داره فایل شماتیک مدار رو نیز قرار بدید
        با تشکر
        سلام. این برنامه به ساده ترین روش نوشته شده و کلا دو ورودی میخواد که اگر هر کدوم صفر شد برنامه مربوط به خودش رو انجام میده.شماتیک مدار رو از منوال خودش بستم . فقط چون ورودی میکروفن نویز زیادی داشت من از روی منوال ISD2540 مدار میکروفن رو بستم و خوب جواب داد.برای خروجی صداش هم از LM386 استفاده کردم بعنوان آمپلی فایر که مدارش تو سایت یزد کیت هست.
        شماتیک مدار رو هم احتمالا تا دو هفته دیگه بتونم بذارم براتون.چون الان ماموریت هستم .
        فقط یه نکته این که تو تنظیمات spi دقت کنید که دقیقا همین باشه . چون من خیلی تست کردم و تو بعضی حالتهای تست هم تا یه جایی درست جواب میداد ولی برای آدرس دهی برای ریکورد و خواندن به مشکل برمیخوردم .
        تنظیمات درست spi به قرار زیر میباشد.

        // SPI initialization
        // SPI Type: Master
        // SPI Clock Rate: 62.500 kHz
        // SPI Clock Phase: Cycle Half
        // SPI Clock Polarity: Low
        // SPI Data Order: LSB First
        SPCR=0x73;
        SPSR=0x00;
        <img src="http://autosystem.ir/images/Autosystem-468.gif"></img>

        دیدگاه


          #5
          پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

          سلام
          میخواستم ببینم براتون امکان داره شماتیک رو بگذارید و اینکه برای ورودی از میکروفن و مدار پری استفاده کردید یا line in
          تو بگو ای سنگ صبور تو صبوری یا دل من
          تو بگو ای جام بلور تو شکستی یا دل من

          دیدگاه


            #6
            پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

            سلام مهندس
            تو این کد دستور lcd init که نیاز نیست
            ضمنا وقفه خارجی برای چی استفاده شده ...
            تو بگو ای سنگ صبور تو صبوری یا دل من
            تو بگو ای جام بلور تو شکستی یا دل من

            دیدگاه


              #7
              پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

              راستی دوست عزیز با این تنظیمات که برای spi دادید مقادیر ریجستر ها به صورت زیر میشه
              // SPI initialization
              // SPI Type: Master
              // SPI Clock Rate: 62.500 kHz
              // SPI Clock Phase: Cycle Half
              // SPI Clock Polarity: Low
              // SPI Data Order: LSB First
              SPCR=0x77;
              SPSR=0x00;

              در صورتی که شما 73 در اوردید ...
              تو بگو ای سنگ صبور تو صبوری یا دل من
              تو بگو ای جام بلور تو شکستی یا دل من

              دیدگاه


                #8
                پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                دوست عزیز هنوز هم منتظر راه نماییتون هستیم ...
                تو بگو ای سنگ صبور تو صبوری یا دل من
                تو بگو ای جام بلور تو شکستی یا دل من

                دیدگاه


                  #9
                  پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                  سلام.ببخشید که یه مدت نبودم و نتونستم که جواب بدم.
                  من برنامه اصلی که تغییرات نداره رو براتون میذارم . توی رجیستر SPCR دو بیت آخر رو هر چی بذارید کار میکنه چون مربوط به فرکانس کلاک SPI هست . من با کدویژن که پروژه رو درست کردم این کدها بدست اومد و درست کار کرد .


                  #include <mega16.h>
                  #include <spi.h>
                  #include <stdio.h>
                  #include <delay.h>
                  // Alphanumeric LCD Module functions
                  #asm
                  .equ __lcd_port=0x1B ;PORTA
                  #endasm
                  #include <lcd.h>

                  #define ISD_SS PORTB.4
                  unsigned char POWERUP=0x20;
                  //unsigned char REC=0xb0;
                  unsigned char STOP=0x30;
                  unsigned char PLAY=0xf0;
                  unsigned char SETREC=0xa0;
                  unsigned char SETPLAY=0xe0;
                  //unsigned char RINT=0x30;
                  //unsigned char SETMC=0xe8;
                  //unsigned char MC=0xf8;


                  // External Interrupt 0 service routine
                  interrupt [EXT_INT0] void ext_int0_isr(void)
                  {
                  /*ISD_SS=0;
                  spi(STOP);
                  ISD_SS=1;
                  delay_ms(500); */
                  }

                  void read(char lsb,char msb,unsigned int delay)
                  {
                  ISD_SS=0;
                  spi(POWERUP);
                  ISD_SS=1;
                  delay_ms(50);
                  ISD_SS=0;
                  spi(lsb);
                  spi(msb);
                  spi(SETPLAY);
                  ISD_SS=1;
                  delay_ms(delay);
                  ISD_SS=0;
                  spi(STOP);
                  ISD_SS=1;
                  delay_ms(500);
                  }

                  void write(char lsb,char msb,unsigned int delay)
                  {
                  ISD_SS=0;
                  spi(POWERUP);
                  ISD_SS=1;
                  delay_ms(50);
                  ISD_SS=0;
                  spi(POWERUP);
                  ISD_SS=1;
                  delay_ms(100);
                  ISD_SS=0;
                  spi(lsb);
                  spi(msb);
                  spi(SETREC);
                  ISD_SS=1;
                  delay_ms(delay);
                  ISD_SS=0;
                  spi(STOP);
                  ISD_SS=1;
                  delay_ms(500);
                  }



                  // Declare your global variables here

                  void main(void)
                  {
                  // Declare your local variables here
                  char x=0;
                  char y=0;
                  // Input/Output Ports initialization
                  // Port A initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                  PORTA=0x00;
                  DDRA=0x00;

                  // Port B initialization
                  // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
                  // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
                  PORTB=0x09;
                  DDRB=0xB0;

                  // Port C initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                  PORTC=0x03;
                  DDRC=0x00;

                  // Port D initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                  PORTD=0x30;
                  DDRD=0x00;

                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: Timer 0 Stopped
                  // Mode: Normal top=FFh
                  // OC0 output: Disconnected
                  TCCR0=0x00;
                  TCNT0=0x00;
                  OCR0=0x00;

                  // Timer/Counter 1 initialization
                  // Clock source: System Clock
                  // Clock value: Timer1 Stopped
                  // Mode: Normal top=FFFFh
                  // OC1A output: Discon.
                  // OC1B output: Discon.
                  // Noise Canceler: Off
                  // Input Capture on Falling Edge
                  // Timer1 Overflow Interrupt: Off
                  // Input Capture Interrupt: Off
                  // Compare A Match Interrupt: Off
                  // Compare B Match Interrupt: Off
                  TCCR1A=0x00;
                  TCCR1B=0x00;
                  TCNT1H=0x00;
                  TCNT1L=0x00;
                  ICR1H=0x00;
                  ICR1L=0x00;
                  OCR1AH=0x00;
                  OCR1AL=0x00;
                  OCR1BH=0x00;
                  OCR1BL=0x00;

                  // Timer/Counter 2 initialization
                  // Clock source: System Clock
                  // Clock value: Timer2 Stopped
                  // Mode: Normal top=FFh
                  // OC2 output: Disconnected
                  ASSR=0x00;
                  TCCR2=0x00;
                  TCNT2=0x00;
                  OCR2=0x00;

                  // External Interrupt(s) initialization
                  // INT0: On
                  // INT0 Mode: Falling Edge
                  // INT1: Off
                  // INT2: Off
                  GICR|=0x40;
                  MCUCR=0x02;
                  MCUCSR=0x00;
                  GIFR=0x40;

                  // Timer(s)/Counter(s) Interrupt(s) initialization
                  TIMSK=0x00;

                  // Analog Comparator initialization
                  // Analog Comparator: Off
                  // Analog Comparator Input Capture by Timer/Counter 1: Off
                  ACSR=0x80;
                  SFIOR=0x00;

                  // SPI initialization
                  // SPI Type: Master
                  // SPI Clock Rate: 31.250 kHz
                  // SPI Clock Phase: Cycle Half
                  // SPI Clock Polarity: Low
                  // SPI Data Order: LSB First
                  SPCR=0x73;
                  SPSR=0x00;

                  // LCD module initialization
                  lcd_init(16);

                  // Global enable interrupts
                  //#asm("sei&quot

                  spi(POWERUP);
                  delay_ms(25);
                  PORTB.4=1;
                  while (1)
                  {

                  if(PIND.4==0)
                  {
                  write(135,1,3000);
                  write(150,1,3000);
                  write(165,1,20000);
                  write(10,2,2000);
                  write(20,2,2000);
                  write(30,2,4000);
                  write(50,2,2000);
                  write(60,2,2000);
                  write(70,2,2000);
                  }


                  if(PIND.5==0)
                  {
                  read(135,1,3000);
                  read(150,1,3000);
                  read(165,1,20000);
                  read(10,2,2000);
                  read(20,2,2000);
                  read(30,2,4000);
                  read(50,2,2000);
                  read(60,2,2000);
                  read(70,2,2000);
                  }

                  };
                  }

                  امیدوارم که شما هم جواب بگیرید.
                  <img src="http://autosystem.ir/images/Autosystem-468.gif"></img>

                  دیدگاه


                    #10
                    پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                    ممنون دوست عزیز
                    فقط اگه امکان داره یه توضیح برای نحوه کار مدار و یا شماتیک مدار و قرار بدید
                    تو بگو ای سنگ صبور تو صبوری یا دل من
                    تو بگو ای جام بلور تو شکستی یا دل من

                    دیدگاه


                      #11
                      پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                      کد:
                      بعضی حالتهای تست هم تا یه جایی درست جواب میداد ولی برای آدرس دهی برای ریکورد و خواندن به مشکل برمیخوردم .
                      منم دقیقا زمان آدرس دهی به مشکل برمی خورم در حالیکه دستورات rec , play که آدرس نیاز ندارند درست کار می کنند .
                      آدرس رو هم درست می فرستم اول هشت بیت پایین بعد هشت بیت بالا با شروع از LSB و بعد هم دستور setrec ولی درست کار نمیکنه و روی پایه RAC هیچی دیده نمی شه .
                      مشکل آدرس دهی رو چجوری حل کردید ؟

                      دیدگاه


                        #12
                        پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                        سلام دوست عزیز

                        من دو سال پیش با این آی سی کار کردم و با موفقیت یه یادآور صوتی رو ثبت کردم

                        نکته ای که حدس می زنم باعث ایجاد مشکل شما شده اینه که برای ارسال هر فرمان باید سه بایت ارسال کنید

                        دوبایت واسه آدرس و یکی هم فرمان

                        برای دستوراتی که نیاز به آدرس ندارند مثل stop هم باید همین اصل رعایت بشه با این تفاوت که دو بایت اول دو بایت الکی یا همون به اصطلاح دامی(dummy) هستند

                        اگه فایل سورسمو پیدا کنم(که البته حتماً پیداش می کنم فقط یکم وقت می خوام سرم شلوغه)
                        حتماً اونو برای استفاده دوستان اینجا می ذارم
                        توی اون پروژه کارای دیگه ای هم انجام داده ام
                        پیاده سازی منوی چند لایه در یه ال سی دی کاراکتری- تبدیل تاریخ میلادی به شمسی و برعکس- و محاسبات زمانی- کار با rtc میکرو و استفاده از وقفه و ضبط و پخش صدا روی isd4004 در آدرسهای مورد نظر

                        دیدگاه


                          #13
                          پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                          سلام
                          ما منتظرتیم عزیز
                          من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

                          دیدگاه


                            #14
                            پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                            پروژه ای که قولشو داده بودم اینجا گذاشتم

                            http://www.eca.ir/forum2/index.php?topic=59091.0

                            اگه سوالی داشتین همونجا جواب میدم

                            شاد باشین

                            دیدگاه


                              #15
                              پاسخ : آی سی ضبط صدا ISD4004-8M - تست شده

                              سلام
                              در مورد ضبط صدا روی isd 4004 به مشکل خوردم. help me please
                              چطوری بفهمم ic داره صدا رو ضیط میکنه یا پخش میکنه ؟
                              یا چطوری باید فهمید ic سالم هست یا نه ؟
                              اگه بخام خروجی رو بدم به یه هدفون که جریان کمی میکشه و نیازی به آمپلی فایر نداره باید یه سیم هدفون رو به پایه ی AUD OUT بدم اون یکیشو به کجا ؟
                              موقعی که دستورات spi پشت سر هم نوشته میشه نباید بینش تاخیر گذاشت ؟ آخه ارتباط سریال هس و برای هر دستور به 8 سیکل نیاز هس که کامل فرستاده بشه وگرنه تداخل پیش میاد و WCOL فعال میشه ؟

                              دیدگاه

                              لطفا صبر کنید...
                              X