Ви не увійшли.
А у stc8 таймер рахує від N до 0xffff, і все
Хіба? З цим сімейством зовсім не знайомий, але при швидкому погляді у 1177-сторінковий даташит зустрічаються згадки про auto-reload register для PWM-таймера.
Ну, в atmega таймер вміє рахувати від 0 до N, і в нього є регістр, в який можна записати М і отримати апаратний PWM. А у stc8 таймер рахує від N до 0xffff, і все
так то вивернутись можна, але результат не дуже подобається.
цікаво перевірити концепцію, чи справді вона звучатиме краще ніж стандартна пишалка.
Що таке "стандартна пищалка" в даному контексті? Динамік, що керується прямокутним сигналом звукової частоти?
"Краще" в яких одиницях виміру? Менше THD? Менше шум квантування? Звісно, 8-бітний сигнал буде "краще" за 1-бітний. Причому не важливо, чи виводяться ці 8 біт паралельно, чи ШІМом, за інших рівних умов.
Там гучність кодується через PWM, через хитрий режим таймера atmega.
Скільки користуюсь таймерами атмеги в різних режимах, нічого екзотичного там не помічав. Що ж це за режим такий, що дозволяє комутувати сигнал змінного напрямку?
Але такого таймера у нас немає
Так озвучте, що є
Від того і будем відштовхуватись.
Тут же розгалуження варіантів: якщо забити на побічний ефект від стрибка постійної складової, то реалізується на логарифмічній резистивній драбині без додаткових мультиплексорів. Якщо не забивати, то потрібно комутувати сигнал змінної полярності. Тут потрібен двоквадрантний комутатор. Його можна реалізувати парою мосфетів на кожній лінії. Або одним транзистором в режимі малих сигналів: зменшити сигнал до мілівольтів, комутувати, потім підсилити до потрібного рівня. З малими сигналами можна і voltage controlled gain реалізувати, який керувати тим же ШІМ'ом.
Так то можна готовий mp3 модуль взяти - по грошах воно не сильно дорожче вийде
Але ж хоббі, сер
По перше, цікаво перевірити концепцію, чи справді вона звучатиме краще ніж стандартна пишалка. По друге, цікаво впихнути це в 8-ногий дрібноконтроллер.
Схожий проект я знаходив, звучить він непогано. Там гучність кодується через PWM, через хитрий режим таймера atmega. Але такого таймера у нас немає ![]()
Ну просто блок живлення є на 5 або на 12 В
Варіантів реалізації є багато. Можна ж поставити і готовий модуль підсилювача з керуванням гучності по I2C, або щось типу PT2257. Але, враховуючи 8-бітний вихід, так розумію, що задача - реалізувати з підручних засобів мінімальною ціною?
Програмно множити семпли на коефіцієнт не варіант, бо повний розмах і так всього 8 біт. Так може взяти 12-бітний DAC, тоді ці ж 8 біт можна регулювати 1:16 програмно без звуження динамічного діапазона.
Ну просто блок живлення є на 5 або на 12 В ![]()
Ну, експеримент покаже.
Хоча можна замутити штучну землю і заживитись від 12В..
А яку вихідну потужність ви хочете, що 12 В потрібно?
А можна і не паритись, а відфільтрувати постійну складову конденсатором. А перехід між різними рівнями постійної складової придушити ФНЧ.
Так ФНЧ ж і аудіосигнал придушить. В тому і проблема, що стибок постійної складової містить весь спектр частот, в тому числі звукових.
Тут мені приходить в голову інвертуючий підсилювач на ще одному операційнику. Але треба мутити 2 полярне живлення.
Хоча можна замутити штучну землю і заживитись від 12В..
А можна і не паритись, а відфільтрувати постійну складову конденсатором. А перехід між різними рівнями постійної складової придушити ФНЧ.
Думаю, С1 на тій схемі саме для цього.
C1 у зворотньому звʼязку разом з R11 утворює ФНЧ, щоб операційник не заводився на високих частотах. Ніякого розділення по постійній складовій на схемі нема, вона підсилюватиметься так само як і аудіосигнал.
Думаю, С1 на тій схемі саме для цього.
Якщо клацання через зміну нульового рівня при зміні гучності допустимі, то має вирішитись одними тільки резисторами. Якщо недопустимі, тоді потрібно подумати.
То схема просто для прикладу.
Так, квазилогарифмічні. Монофонічна пищалка, але з регульованою гучністю.
Ну я тут прикинув, щоб отримати з цієї схеми діапазон в 1000 попугаїв, треба взяти резистори з ряда 1k; 2,4k; 5,6k; 13k; 33k; 75k; 200k; 470k. Пріємлємо
Хочу зробити пищалку, яка уміє видавати сигнал різної гучності
Тобто 8 квазі-логарифмічних рівнів гучності, а точність не дуже суттєва? Майте ще на увазі, що вихідна потужність пропорційна квадрату напруги.
https://en.wikipedia.org/wiki/Logarithmic_resistor_ladder - нагуглив таке, але воно виглядає зовсім по наркоманськи. І замість дешифратора аналоговий комутатор не дуже подобається.
Навіщо там аналоговий комутатор? У вас же сигнал з DAC в межах від 0 до Vcc, так? 8-бітні семпли беззнакові, нульовому рівню відповідає значення 0x80?
Доречі, хіба DAC5311 з паралельним входом, а не з послідовним? І не дуже зрозуміло, навіщо там R9. Хіба середня точка має бути 7.5 В ?
Ще замість "прямого" регулювання можна регулювати коефіцієнт зворотнього звʼязку в ОУ, змінюючи коефіцієнт підсилення. Але це той же ladder.
Ну я тут прикинув, щоб отримати з цієї схеми діапазон в 1000 попугаїв, треба взяти резистори з ряда 1k; 2,4k; 5,6k; 13k; 33k; 75k; 200k; 470k. Пріємлємо ![]()
Хочу зробити пищалку, яка уміє видавати сигнал різної гучності ![]()
https://en.wikipedia.org/wiki/Logarithmic_resistor_ladder - нагуглив таке, але воно виглядає зовсім по наркоманськи. І замість дешифратора аналоговий комутатор не дуже подобається.
А, подивився уважніше на схему, ви хочете логарифмічну аттенюацію аналогового сигнала? Logarithmic resistor ladder.