اطلاعیه

Collapse
No announcement yet.

سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

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

    #16
    پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

    سلام
    آقا بنده خدا تقصیری نداشته است من منبع ایشون را نیز فکر می کنم پیدا کرده باشم
    http://cxem.net/mc/mc103.php
    البته نمی دونهم زبون سایته چیه؟
    دکتر چمران در 1311 در تهران متولد شد
    وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
    او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

    دیدگاه


      #17
      پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality



      رو دیوار کی یادگاری مینوشتیم
      سایت روسی هست
      این هم لینک دانلودش http://cxem.net/mc/files/mc103_wav_player_atmega32.rar

      وقت ندارم تحلیلش کنم
      با c نوشته (gcc)
      دوستان یکی شروع کنه به تحلیل من هم کمک میکنم

      موفق باشید
      امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

      دیدگاه


        #18
        پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

        این خط را زیاد جدی نگیر:منظورتون 500K بایت در ثانیه است؟ چون با B (حرف بزرگ) نوشتید میپرسم(چون من به حروف عین کامپایلرهای C حساسم ).
        ------------------
        ولی هنوز اختلاف زیادی با 1.6Mbps داریم
        دوستان کسی تاحالا با avr و mmc/sd و FAT به این سرعت دسترسی پیدا کرده؟؟؟؟؟
        توی شماتیک دوستمون در تاپیک اصلی از کریستال 16.45MHz استفاده کرده (هیچ overclock انجام نشده)
        درسته 500KB/s . نوشتم دقیق دیگه!(b بیت و B بایت :mrgreen
        البته یه چیز رو در نظر بگیرید. من نگفتم مستقیم روال FAT نوشتم و از اون استفاده کردم. در واقع من میام کلاسترهای حاوی دیتامو پیدا می کنم و بعد با سرعت هرچه تمامتر و اسمبلی روی ال سی دی می نویسم. :mrgreen:(در واقع استفاده غیر مستقیم و یا میونبر FAT )

        اینم ترجمه اون سایته. (دست گوگل با این ترجمه مزخرف ولی عالی درد نکنه ) همچنین دست نویسنده اصلی تاپیک !
        این اولین و موفق ترین پروژه من در میکروکنترلر AVR است . چند ماه پیش من سعی کردم به یک بازیکن WAV در PIC16F877A . این کار می کرد ، اما کیفیت صدا خیلی خوب نیست چرا که او به اندازه کافی حافظه ندارد ، و من می توانم بافر اطلاعات کافی را ندارد. وقتی که من ATMega32 است میکروکنترلرخرید ، اولین چیزی که به سر من ظهور - را یک بازیکن WAV خوب است. کار من تمام شده و کیفیت صدا واقعا خوب است. می توانم بگویم که پخش WAV من قادر به پخش 8 بیت مونو / استریو با حداکثر نرخ بیت از 1300kbps 1600kbps برای مونو و استریو . به عنوان مثال شما می توانید 8 بیتی WAV تک با نرخ نمونه برداری تا 160 کیلو هرتز و 96 کیلوهرتز استریو بدون سر و صدا بازی!

        توجه: طیف گسترده ای از شنوایی انسان از 20 هرتز تا 20 کیلو هرتز . حداقل فرکانس نمونه برداری کافی از 40 کیلو هرتز . برای این نرخ نمونه برداری 44.1 کیلو هرتز برای CD انتخاب شد.
        ویژگی ها:

        کنترل از دور
        خروجی با کیفیت بالا
        حداکثر سرعت انتقال داده ها - 144 کیلوبایت / ثانیه .
        پشتیبانی از استریو
        بازگشت به صورت خودکار را به بالا پس از تمام آهنگ ها
        تنظیم مجدد نرخ بیت از راه دور
        تنظیم تاخیر قبل از پخش

        شرح مختصر :

        مقداردهی اولیه کارت MMC و فعالیت خود را قبلا در اینجا توضیح داده شده است.

        من با استفاده از یک صفحه نمایش 16x2 برای نمایش خیلی چیزها . اول، در صورت لزوم ، او یک پیغام خطا نمایش می دهد هنگامی که در تلاش برای مقداردهی اولیه MMC . هنگامی که مقدار دهی اولیه موفقیت آمیز باشد، آن را به یک پیام در مورد آن نشان می دهد.

        سپس توسط MMC کارت بوت سکتور ( بخش 0) تایید برای بررسی کارت فایل سیستم . برای این کار ، ما نیاز به خواندن بخش 0 کارت MMC را کپی کنید و آن را به کلیپ بورد ( این بافر 512B درگیر ) . کد من فقط برای فایل سیستم های FAT16، در صورتی که کارت یکی دیگر از سیستم فایل ، آن را نمایش یک پیغام خطا بر روی صفحه نمایش . اگر همه چیز خوب است ، آن را بار خوانده شده داده ها را از بافر و محاسبه تعداد بخش ها از همان ابتدا از داده ها، و آغاز آغاز دایرکتوری ریشه FAT . علاوه بر این، آن را تشخیص بخش های خوشه . هر بخش 512 بایت است . این داده ها مورد نیاز است برای بیشتر کارت کار MMC / SD به عنوان متغیر های جهانی ذخیره می شود.

        حالا شما نیاز به رسیدن به دایرکتوری ریشه. ما باید برای بارگذاری بخش اول از دایرکتوری ریشه از بافر 512 بایتی . هر رکورد شامل اطلاعات مربوط به یک فایل یا پوشه را در دایرکتوری ریشه . از آنجا، ما می توانیم نام فایل ، صفات فایل، فایل از آدرس ، و بیشتر به عنوان خوانده شده . ما علاقه مند به گسترش فایل های (WAV) ، صفات آدرس فایل از اولین خوشه ای که حاوی فایل می باشد.

        در حال حاضر ما می تواند در خوشه اول ( گروه از بخش ها، اندازه بستگی به اندازه حافظه MMC / SD ) خوانده می شود. در حال حاضر، پس از خواندن و بازی تمام بخش ها در گروه اول ( پخش خواهد شد شرح داده شده است ) ، ما باید تعداد دسته بعدی از همان فایل را پیدا کنید. فایل را نمی توان در حافظه به عنوان یک پارتیشن تک اختصاص داده است. در عوض، می توان آن را به قطعات تقسیم شده ، به استفاده از حافظه آزاد موثر ( در واقع، این تنها زمانی است فضای آزاد وجود دارد از فایل های پاک شده و اضافه شده امکانات جدید اتفاق می افتد ) . بنابراین، ما نمی توانیم بگوییم که خوشه بعدی در فایل خواهد بود که نزدیک ترین . اما برای خواندن هر فایل دارای یک لیست از خوشه های FAT ( جدول تخصیص فایل ) ، که در آن هر عدد یک موقعیت منحصر به فرد در خوشه. ما در حال حاضر آدرس شروع FAT محاسبه می شود. با FAT ما می توانیم تعداد خوشه بعدی در فایل دریافت کنید.

        ما تعدادی از خوشه اول ، و ما به آدرس اولیه این بخش با تعداد معینی از خوشه ها محاسبه می شود. در حال حاضر ما خواندن اطلاعات از بخش اول از فایل، و از آنجا که ما دریافت نرخ بیت و نرخ نمونه ، تعداد کانال ، و بیشتر. نگاهی به میزان ارسال بیت ، و استفاده از آن برای تنظیم فرکانس وقفه تایمر. در حال حاضر، زمان سنج تولید یک وقفه ، بسته به نرخ بیت و تعدادی از کانال های . در حال حاضر در هر وقفه تایمر، داده های 8 بیتی به ثبت نام OCR PWM ماژول تایمر وارد شده است. بر این اساس، تولید سیگنال PWM را در پس زمینه بدون صرف منابع CPU است . این سیگنال PWM می توان به راحتی با کمک فیلتر RC demodulated . اگر مقدار یک خازن یا مقاومت را افزایش می دهد یا کاهش ، آن را به کیفیت صدا ، یعنی تحت تاثیر قرار آن را نمی توان فیلتر کردن بعضی از فرکانسهای بالا و شما می توانید سیگنال های رادیویی AM می شنوید.

        در حال حاضر ما می دانیم، اگر ما با استفاده از یک بافر برای پخش و جمع آوری داده ها ، از آن خواهد شد سر و صدای کم در حین پخش ، که بسیار آزار دهنده است. من دو داده فقط صوتی بافر ویژه 512B را برجسته کرده اند. زمانی که یک بافر دارد ، بافر دیگر پر شده است.

        برای رمزگشایی از راه دور تلویزیون، با استفاده از وقفه تایمر ، چک کردن سیگنال ورودی هر 1778ms . هنگامی که قدرت 400ms تاخیر قبل از خواندن سیگنال از راه دور تبدیل شده است. احتمالا، واحد سیگنال کنترلاز بار دوم پاسخ می دهند. برای این که آن را به رمزگشایی RC5 ATMega32 است است و ارسال مقادیر از طریق رابط سریال برای عملکرد بهتر لازم است .
        البته توی همین نوشته ها و ارقام هم کلی تناقض وجود داره!!!؟؟؟(با قرمز مشخص کردم)


        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

        دیدگاه


          #19
          پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار با&#160

          چند تا قسمت های خود سایت را ترجمه کردم و خلاصش اینه:
          پخش 8 بیتی با سمپل ریت 160-96 کیلو هرتز و ماگزیمم بیت ریت 1600 کیلوبیت در ثانیه

          Примечание: Полный спектр человеческого слуха составляет от 20 Гц до 20 кГц. Минимально достаточная частота дискретизации 40 кГц. Именно для этого частота дискретизации 44,1 кГц была выбрана для компакт-диска.
          این بخش خودش اظهار کرده که از 44.1KHz در تجهیزات صوتی استفاده میشه(بیشترش بدر بخور نیست، کار اضافه...)
          ------------------------------
          توی برنامه از timer 1 برای sample rate استفاده کرده و فرکانسش هم برابر با 16450 کیلو هست (با کریستال 16.45مگ)
          البته فرکانس عملکرد و وقفه تایمر به مقدار ocr1a بستگی داره که حین اجرای برنامه تنظیم میشه
          کد:
          void timer1_init()
          {
            TCCR1B |= (1 << WGM12)|(1 << CS10); // 0x09
            TCNT1 = 0;
            OCR1A = 10000;
            TIMSK |= (1 << OCIE1A);
          }
          برای اجرای صوت هم :
          کد:
          ISR (TIMER1_COMPA_vect)
          {
            if(STEREO) {
              if(TOGGLE_BUFFER == 1) {
                OCR0 = mmc_buf0[ISR_i++];
                OCR2 = mmc_buf0[ISR_i++];
                }else{
                OCR0 = mmc_buf1[ISR_i++];
                OCR2 = mmc_buf1[ISR_i++];
              }
              if(ISR_i == 512) {
                if(TOGGLE_BUFFER)
                BUF0_EMPTY = 1;
                else
                BUF1_EMPTY = 1;
                TOGGLE_BUFFER ^= 1;
                ISR_i = 0;
              }
              } else {
              if(TOGGLE_BUFFER == 1)
              OCR0 = OCR2 = mmc_buf0[ISR_i++];
              else
              OCR0 = OCR2 = mmc_buf1[ISR_i++];
              if(ISR_i == 512) {
                if(TOGGLE_BUFFER)
                BUF0_EMPTY = 1;
                else
                BUF1_EMPTY = 1;
                TOGGLE_BUFFER ^= 1;
                ISR_i = 0;
              }
            }
          }
          تا اینجا هیچ مشکلی نیست یک wav player ساده!
          معمای اصلی sd است که باید بررسی کنیم با چه حداکثر سرعتی کار میکنه.

          امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

          دیدگاه


            #20
            پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

            فکر نمی کنم mmc در این پروژه محدودیت داشته باشه
            البته من با arm به سرعت تقریبا به سرعت 100 کیلو بایت هم رسیدم و البته خیلی کاراهای دیگه هم یی کردم (منظورم اینکه تازه با ماکزیمم سرعت کار نکردم) این چند روز خیلی سرم شلوغه وگرنه یکی می ساختم
            دکتر چمران در 1311 در تهران متولد شد
            وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
            او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

            دیدگاه


              #21
              پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

              نوشته اصلی توسط 011
              فکر نمی کنم mmc در این پروژه محدودیت داشته باشه
              البته من با arm به سرعت تقریبا به سرعت 100 کیلو بایت هم رسیدم و البته خیلی کاراهای دیگه هم یی کردم (منظورم اینکه تازه با ماکزیمم سرعت کار نکردم) این چند روز خیلی سرم شلوغه وگرنه یکی می ساختم
              من توی ایام تعطیلات نتونستم بیام به تالار (راستی تا یادم نرفته "عیدتون مبارک!" :mrgreen
              ---------------
              بقول شما با ARM و پردازش 32 بیتی و فرکانس X
              کسی پروژه را تست نکرده ؟ ماژول FAT که این بنده خدای روسی نوشته تست شد یا نه ؟

              من این چند روز آخرین ورژن FatFs را روی LPC1768 پورت کردم کلی باهاش حال کردم، همه امکاناتی برای Fat داره :biggrin: ولی سرعتش را تست نکردم (فرصت نشد)

              نوشته اصلی توسط •.´™ مَسِِــــح`.•
              mrgreen:
              منظورتون چیه ؟؟؟ یک Spam ؟؟؟


              موفق باشید


              امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

              دیدگاه


                #22
                پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

                نوشته اصلی توسط Abbas Sarami
                من توی ایام تعطیلات نتونستم بیام به تالار (راستی تا یادم نرفته "عیدتون مبارک!" :mrgreen
                ---------------
                بقول شما با ARM و پردازش 32 بیتی و فرکانس X
                کسی پروژه را تست نکرده ؟ ماژول FAT که این بنده خدای روسی نوشته تست شد یا نه ؟

                من این چند روز آخرین ورژن FatFs را روی LPC1768 پورت کردم کلی باهاش حال کردم، همه امکاناتی برای Fat داره :biggrin: ولی سرعتش را تست نکردم (فرصت نشد)
                منظورتون چیه ؟؟؟ یک Spam ؟؟؟


                موفق باشید
                این که آرم سرعتش بالا هست شکی نیست ولی سرعت spi بند در آرم حدود 9 مگ و در avr هم فکر می کنم تا 8 مگ جواب می دهد مابقی برنامه هم که زیاد درش تأثیری ندارد.
                راستی شما مگه برای کار با فت از کتابخوانه ی pff استفاده نمی کنید؟
                البته نظر من راجب کار این پروژه ی روسی هم صد در صد اشتباه هست و همینطور غیر ممکن (البته از نظر من) اگر خواستید دلایل ریاضیش هم می گم البته دوستان قبلا گفتن نمی شود یعنی pwm در میکرو جواب نمی دهد ماکزیمم با کریستال 16 و با نرخ 8 بیتی می شود حدود 64 کیلوهرتز (این حرف ها کدومه :biggrin
                دکتر چمران در 1311 در تهران متولد شد
                وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
                او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

                دیدگاه


                  #23
                  پاسخ : سوال از تاپیک "MMC WAV player با ATMEGA32 و کیفیت بسیار بالا 160KHz High Quality

                  راستی شما مگه برای کار با فت از کتابخوانه ی pff استفاده نمی کنید؟
                  برای پروژه هایی که صرفاً نیاز به خواندن باشه از pff و برای پروژه هایی که نیاز به خواندن و نوشتن باشه از ff.h استفاده میکنم
                  امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                  دیدگاه

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