من قبلاً یک پروژه دارم که در آن آردوینو سیگنال صوتی را از طریق نرم افزار PWM 10 بیتی به بلندگوهای USB ارسال می کند. در ابتدا، من از کیفیت صدای تولید شده از طریق PWM راضی نبودم. سرعت موتور آردوینو برای اجرای خوب PWM کافی نیست. به عنوان مثال برای صدای 20000 هرتز، PWM باید حداقل 2 تا 3 برابر بالاتر از محدوده فرکانس معمولی یا 40 تا 60 کیلوهرتز باشد. اگر این مقدار را با رزولوشن 10 بیت ضرب کنیم، 40 تا 60 مگاهرتز به دست میآید، که برای درایو آردوینو کوچک بسیار زیاد است.
در مرحله دوم، ایده ایجاد سیستم صوتی چند کاناله حدود یک سال است که ذهن من را درگیر کرده است. اینگونه بود که پروژه UNDECIMA متولد شد. 1 + 11 یا 12 کانال !!! سیستم صوتی در حال اجرا بر روی برد آردوینو UNO با وضوح کامل 10 بیت - حداکثر در دسترس با ADC داخلی. نام پروژه به این دلیل است که 1 کانال اصلی و 11 کپی با تاخیر خطی از همان جریان صوتی یا کانال های عروسکی وجود دارد، در اصل این آرایه فاز آکوستیک است.
همانطور که در نقشه های ارسال شده مشاهده می کنید، "قلب" پروژه مبدل آنالوگ دیجیتال 10 بیتی ضرب (موازی) DAC1022 است. خروجی آی سی با OPA و "demultiplex'd" از طریق دو سوئیچ آنالوگ 8 کانال 74HC4051 بافر می شود. خروجی سوئیچ ها با نمونه برداری بارگیری می شوند و خازن های 0.01 uF را نگه می دارند تا نویز فرکانس نمونه برداری ناخواسته را فیلتر کنند. DAC برای خط برق تک منبع پیکربندی شده است. معمولاً آنها توصیه می کنند خروجی بافر با / امپدانس ورودی بالا / سرعت حرکت بالا / ریل - به - ریل / OPA در چنین پیکربندی وجود داشته باشد. که من ندارم، و قیمت آن تقریباً نصف قیمت DAC است، بنابراین، به همین دلیل است که من دو مرجع ولتاژ متغیر را بر اساس NE5532 و چند پات پیادهسازی کردم. تفاوت در ولتاژ بین دو مرجع یک "span" را تشکیل می دهد. ولتاژ پایین تر، یک تنظیم آف ست برای OPA LF351 غیر ریل به ریل ارزان، با سرعت حرکت مناسب 13 ولت در ثانیه ایجاد می کند. OPA بهشدت با نمونهبرداری و خازنهای نگهدارنده بارگذاری میشود، که به نظر میرسد به صورت موازی در خروجی آن، 0.12 uF به طور کلی متصل هستند! برای به حداقل رساندن سطح اعوجاج ناشی از بارگذاری بیش از حد OPA، نمیتوان دهانه را خیلی وسیع تنظیم کرد و در طراحی فعلی 1.414 ولت از پیش تعیین شد، که دقیقاً 1 ولت خروجی RMS را برای موج سینوسی خالص ارائه میکند. میدانم که ۱۲ بافر/فیلتر که بعد از سوئیچها قرار داده میشود، مشکلی را حل میکند، اما ایده لحیم کردن بیش از ۱۰۰ قطعه الکترونیکی روی تخته نان برای من جذاب به نظر نمیرسد.
( *من سعی خواهم کرد IC / مدارهای دیگری را پیدا کنم که بتواند بار خازنی بزرگی را بعداً هدایت کند.)
نرم افزار.
بخش نرم افزاری پروژه، عملکرد ساده «نمونه-تاخیر-خروجی» است که به طور کامل در زیربرنامه وقفه پیچیده شده است. حلقه اصلی خالی است. در راه اندازی 16 پین دیجیتالی که به عنوان خروجی پیکربندی شده اند، 10 عدد از آنها نشان دهنده گذرگاه داده، 5 عدد گذرگاه آدرس و آخرین نقطه چک برای اندازه گیری عملکرد با اسیلوسکوپ است. تایمر 2 «ضربان قلب» را تعریف میکند و هر 25 ثانیه یا با فرکانس 40 کیلوهرتز قطع میشود. ADC برای نمونه برداری از ورودی آنالوگ A5 پیکربندی شده است (4 پایه آنالوگ اول متعلق به گذرگاه داده است). پیش مقیاس کننده تبدیل: 1 مگاهرتز، اجازه می دهد نمونه برداری با سرعت بالا تکمیل شود. من دو پین دیجیتال D0 و D1 را آزاد گذاشتم، زیرا تلاش های اولیه من برای استفاده از آنها در گذرگاه داده شکست خورد.
آردوینو بهطور دورهای از بارگیری مجدد بهروزرسانیها خودداری میکند، مطمئن نیستم مشکل لینوکس است یا مبدل USB/RS232 داخلی. هر نمونه، که از ADC دریافت میشود، روی دو بیت به چپ منتقل میشود تا از D0 و D1 بگذرد، و به علاوه یک بیت دیگر (3 بیت جابجایی به چپ کلی) برای رفع «نقص» مرحله پیش تقویتکننده ورودی، بهعنوان NE5532 (دوباره) «غیر ریلی» -به ریل” OPA. به دنبال نقاشی ها در وبلاگ "ورودی صوتی" بگردید . اندازهگیریها نشان میدهد که هر کانال دادهای را برای حدود 1 «پنجره» استفاده میکند، که بسیار سریع است، با این وجود آنقدر سریع نیست که بتواند 16 کانال را اجرا کند یا قبل از ارسال آنها، کار دیگری را با دادهها انجام دهد. در پیادهسازی سختافزار فعلی، «گردن بطری» OPA است، زیرا DAC تنها 500 نانوثانیه زمان تهنشینی دارد.
پیوند به طرح آردوینو UNO: UnDecima.
ادامه دارد….