NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3267 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: چگونگی کار با i2s?

  1. #1
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض چگونگی کار با i2s?

    راه اندازی I2S در stm32f103ret&nbsp;<br>دوتا مثال رو دیدم ولی جواب ندیدم

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    داخل همون مثالی که میگید STM32F10x_StdPeriph_Examples\I2S\SPI_I2S_Switch
    اومده یه i2s slave و master تعریف کرده و از مستر میفرسته برای slave .
    مشکل کجاست؟

  4. #3
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    خوب من همون مثال رو انجام دادم و سخت افزارم هم بستم ولی هیچی ارسال نمیکنه واقعا احتیاج به کمک دارم خواهشا جواب بدید و
    سیم از پین مستر به سلیو کشیدم جواب نگرفتم
    بعداشم من در نهایت میخوام یک سخت افزاری که دارم max9860 که خروجی دیجیتال صوت رو بصورت i2s میفرسته رو بخونم که پالس دارم از سخت افزارم ولی هیچی نمیخونه این میکرو در زمینه stm هم تازه واردم خواهشا جواب بدید وقت هم ندارم حتی حاضرم اگر آمزشگاهی جایی باشه که بدونید با این روش کار کردن و تسلط دارن برم در عرض این هفته
    خواهشا جواب بدید اینجوری سر سری نه خیلی مطالعه و تلاش کردو
    پین هاش که نبایدد pull up pull down بشه؟
    و به پایه mclk احتیاج داره.شما تو زمینه arm stm وواردید؟

  5. #4
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    من تا حالا باi2s کار نکردم
    یه نگاهی به دیتاشیت max9860 انداختم . ریجستر برای تنظیم زیاد داره و قبل از اینکه دیتا رو بگیرید باید اونها رو تنظیم کنید
    شما Stm رو باید در مد slave قرار بدید مد 16 بیتی و طبق استاندارد فیلیپس. وقتی Slave دستگاه کار میکنه احتیاجی به mck ندارید.پینی هم نباید پول اپ بشه .
    کد باید همچین چیزی باشه. CPOL باید طبق ABCI تعریف بشه.
    خود max هم در مد مستر و تنظیمات صدا و Add متناسب.مخصوصا در ریجیستر صفحه 19 دیتاشیت دقت کنید .
    کد:
      /* I2S peripheral configuration */
      I2S_InitStructure.I2S_Standard = I2S_Standard_Phillips;
      I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b;
      I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
      I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_48k;
      I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
    
    
      /* I2S2 configuration */
      I2S_InitStructure.I2S_Mode = I2S_Mode_SlaveRx;
      I2S_Init(SPI2, &I2S_InitStructure);
    
      /* Enable the I2S2 */
      I2S_Cmd(SPI2, ENABLE);
    
    
        /* Wait the Rx buffer to be full */
        while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
        {}
        /* Store the I2S2 received data in the relative data table */
        I2S2_Buffer_Rx[RxIdx++] = SPI_I2S_ReceiveData(SPI2);

  6. تشکرها از این نوشته :


  7. #5
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    خیلی ممنون از راهنمایی اتون کدی که گذاشتید من نوشتم جواب نگرفتم ولی الان من میکرومو از max9860 جدا کردم I2S3 رو به I2S2 وصل کردم هیچی دریافت ندارم ببخشید من میتونم ایمیلتون رو داشته باشتم تا سریعتر به جواب برسم ممنون

  8. #6
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    پروژه رو اپلود کنید تا چکش کنم.احتمالا gpio تنظیم نشده

  9. #7
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    void I2S_Configuration(void){



    I2S_InitTypeDef I2S_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB1PeriphResetCmd(RCC_APB2Periph_GPIOB |RCC_APB1Periph_SPI2, ENABLE);


    /* Configure SPI2 pins: CK, WS and SD ---------------------------------*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);


    /* I2S peripheral configuration */
    I2S_InitStructure.I2S_Mode=I2S_Mode_SlaveRx;
    I2S_InitStructure.I2S_Standard =I2S_Standard_Phillips ;
    I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b;
    I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
    I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_48k;
    I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
    I2S_Init(SPI2, &I2S_InitStructure);
    /* Enable the I2S2 RxNE interrupt */
    SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_RXNE, ENABLE);




    /* Enable the I2S2 */
    I2S_Cmd(SPI2, ENABLE);


    }
    من این کد رو مینویسم و مد GPIO را AF_PP قرار میدم پالسی که از max9860 میاد رو صفر میکنه و پالس من از دست میره
    لطفا پاسخ گو باشید

  10. #8
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    این dma چیه برای این پورت تعریف کرده تو دیتا شیت اش؟

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •