ha_60 نوشته است:احتمالا همونه شما باید ارسال به DAC رو توی یه وقفه با بالاترین اولویت (یعنی هیچ وقفه ای نتونه اونو از کار بندازه) بزاری و از یه بافر بخونی بفرستی به DAC بعد توی روتین اصلی برنامه هر وقت بافر خالی شد از mmc بخونی و بافر رو پر کنی
سلام.
ممنون.
منم همینکار رو کردم.
یه بافر یک کیلو بایتی که با هر بار اجرای وقفه تایمر مقدار پورت از اون بافر به روز میشه.
هر موقع نشانگر این بافر به عدد 0 برسه نیمه دوم بافر رو از روی mmc میخونم و هر موقع که نشانگرش به 512 برسه نیمه اول بافر رو از روی mmc میخونم که تداخل پیش نیاد.
وقفه دیگه ای هم فعال نیست.
حتی وقفه SPI هم غیر فعاله.
روی پورتها نویز نمیافته؟
اگه همه پورت رو با مقاومت 10 کیلو پول آپ کنم چی میشه؟
خوب حل شد یا نه؟
روی پرت ها هم نه اگه به عنوان ورودی تعریف کنی و پول آپ نداشته باشی ممکنه ورودی رو اشتباه بخونه نویز روی صدا تولید نمی کنه
یه موج سینوسی بهش ندادی ببینی چی می شه؟
ha_60 نوشته است:خوب حل شد یا نه؟
روی پرت ها هم نه اگه به عنوان ورودی تعریف کنی و پول آپ نداشته باشی ممکنه ورودی رو اشتباه بخونه نویز روی صدا تولید نمی کنه
یه موج سینوسی بهش ندادی ببینی چی می شه؟
سلام.
راستش موج سینوسی ندادم.
چون باید یه جوری باشه که بشه توی mmc ریخت که ترتیب کار عوض نشه.
میشه موج سینوسی رو ریخت تو mmc ؟
چطوری؟
اون اعدادی بود که تولید می کردی اونها رو بر اساس معادله (y=sin(x تولید کن x رو مثلا 0.1 اضافه کن و y های معادل رو ذخیره کن با مطلب هم می تونی این کارو بکنی بعد به فرمت wav ذخیره کنی (اگه اشتباه نکنم)
اینم پیدا کردم ببین
http://www.iranled.com/Download/tn.zip
سلام
میشه بفرمایید از چه میکرو و با چه فرکانسی کار کردید
سلام
:P بعد از مدت ها تلاش و کوشش توانستم -------
این فایل آزمایش ضبط و پخش صوتی با Atmega128 بر روی کارت MMC با برنامه Proteus 7
http://www.4shared.com/file/21733090/2c7...8_mmc.html
در فایلی که اکنون می توانید دانلود کنید 85 ثانیه صدا ضبط شده."Sample Rate=8000","Channels=Mono","Resolution=8-bit"
پخش: پایه ی PB7 کلید را به حالت پخش یعنی صفر قرار دهید. لازم کلید space صفحه کلید اشاره کنید از این راه اطلاعات در بافر برنامه Proteus ذخیره می شود و بعد از پایان این عملیات صدا پخش می شود. مقدار انجام این عملیات در پایین صفحه نمایان می شود و هرگاه Esc صفحه کلید را بزنید این عملیات تا همانجا به پایان می رسد. برای پخش دوباره بر روی اسیلوسکوپی که در بالای صفحه قرار دارد کلیک کنید دکمه ی play را می بینید.
ضبط صدا: پایه PF0 تصویر یک بلندگو وجود دارد با انتخاب آن پنجره ای باز می شود فایل صوتی را انتخاب کنید. پایه ی PB7 کلید را به حالت ضبط یعنی یک قرار دهید حالا دکمه ی play پایین صفحه را بزنید.
اطلاعات کسب شده: سرعت برداشت هر بافر 512 بایتی تقریبا 6.2 میلی ثانیه است.البته در فرکانس 16Mhz و به شکل نرم افزاری. اما میکرو های سری Atmega قادر به برقراری این ارتباط (SPI) به شکل سخت افزاری هستند که سرعت را افزایش می دهد.در این میان Atmega128 این قابلیت رو داره که با سرعت بیشتر این ارتباط رو بر قرار کنه که اگر فرکانس کار 16Mhz باشد سرعت برداشت هر بافر 512 بایتی تقریبا 1.8 میلی ثانیه می شود.
سرعت کارت MMC : یکی از راه های اتصال دستگاه های جانبی به کارت MMC استفاده از spi است که در این شرایط حداکثر سرعت clk به 20Mhz می رسد. اما روشهای دیگری وجود دارد که میتوان با تعداد ورودی و خروجی بیشتر سرعت clk را نیز به 50Mhz رساند که اتصال با سرعت زیاد نامیده می شود البته لازم است کارت شما نیز این قابلیت را داشته باشد مثل DVRS MMC , HS MMC .
امیدوارم این مطالب مفید باشد.
به سلامتی :wink:
اگه خواستی یه مقالش کن بزار تو سایت بقیم استفاده کنن
سلام
من با pwm باخره تونستم صدا تولید کنم که صداش با پل مقا ومتی فرق نداره ایا این خازن مقاومت کیفیت صدا رو بهتر میکنه اخه من مستقیما باند گو رو به پایه pwm وصل کردم
این خازن مقاومت کار فیلتر رو انجام می ده برای حدف فرکانس های بالا که ناخواسته تولید می شن البته خود بلندگو هم نمی تونه این ها رو پخش کنه ولی اگه برای تقویت می خوای بهتر باشن
سلام از راهنمایی تون ممنون من یک خازن 104 به خروجی irf640 وصل کرئم کیفیت صداش عالی شد و الان حدود 20 وات خروجی میده حالا چطور میشه مطمئن شد این صدا برای گوش ضرر نداره
در ضمن من تو یک جا خوندم امپلیفایر های جدید از pwm برای تقویت صدا با سرعت 100 کیلو تا یک مگا استفاده میکنند ولی بالا ترین سرعت با میکرو ما 40 کیلو است که فکر میکنم خوب باشه
می شه چند تا irf640 رو با میکرو درایو کرد؟
خازن 104 خوبه ولی یه مقاومت هم سر راهش بزاری فکرک نم خیلی بهتر چون باید RC یاشه خازن تنها ممکنه به ترانزیستور فشار بیاره
فرکانس PWM هرچی بیشتر باشه فرکانس های بالا رو بهتر عبور می ده حدودا 10 برابر بیشترین فرکانس مورد استفاده باید باشه یعنی 40k برای حداکثر 4Khz
بر خلاف ترانزیسترو های معمولی هر تعداد Fet رو خواستی می تونی ورودیشون رو به هم وصل کنی