Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/130: Рейтинг темы: голосов - 130, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219

Как реализовать 16-и битный ЦАП?

04.10.2010, 16:22. Показов 25226. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникло желание собрать WAV-PCM плеер на пике (18ф2520). Не могу понять, как организовать 16-и битный цап? С карточки получаем 16-и битное значение выборки, а как дальше?
Курил-курил это http://itm-chan.org/works/sd8p/report.html, не смог разобраться как там... Есть еще вариант плеера (см.рисунок), но тоже не пойму как работает - с трех ШИМов как-то... Машинный перевод с японского:
Цитата:
16bit PWM с тремя выходами была достигнута. 7bit + + 7bit 2bit конфигурации так, 16bit мне не нужны люди, которые не бриться. Если вы просто PWM1 7bit, PWM1 производство будет 2 14-битный.
Износостойкость 3 КПД PWM составляет 1: 256: 2048. Но Есть так AVR выходной импеданс контактный, по поводу размеров должны считать незначительным. Вот до R1 = 47?. R2 и R3 выбираются из числа сопротивление близко под рукой. Где R2 = 12k?, R3 = I к 100k?.

Но что то не пойму Помогите разобраться!

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2010, 16:22
Ответы с готовыми решениями:

Получить 20-битный ЦАП
Привет знатоки. Такая идея - выводим на один 10-битный ЦАП первые 10 бит сигнала и на еще один вторые 10 бит, но его выход делим...

PIC16F628. Как реализовать ЦАП?
Мне нужно запрограммировать pic16f728a так что бы одна его нога давала напряжение в виде ступенек от 0 до 5 вольт, я знаю как сделать что...

WIX Как добавить в реестр 32 битный ключ, если инсталлер 64 битный?
Имеется: <Package InstallerVersion="200" Compressed="yes" SummaryCodepage="1251" Platform="x64" ...

34
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
04.10.2010, 21:49
Студворк — интернет-сервис помощи студентам
Или 6-6-4. Пихать в старшие биты. А вообще-то тут лучше экспериментально пробовать, с подстроечниками и двухканальным осциллографом.
0
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
04.10.2010, 22:11
[QUOTE="Гарнист"][QUOTE="ZoomyrJuk"]
Только вот не проще ли взять самую простую микросхему звукового кодека?
какую - vs1001? у нас их не достать :( Тут на днях советовали ЦАП из дохлого сидидрайва. Ничего не умеет, только выводит уровень в правый и левый каналы.

емаё! это тема! сидюк за копейки на барахолке можно найти! а как со схемами на них? или только по маркировке? но надо закончить начатое!
Ymk, с смешиванием на резисторах разобрался, а вот какие разряды куда заганять надо подумать (или поэкспериментировать). Еще надо глянуть на pic, что там с железом...
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
04.10.2010, 22:25
емаё! это тема! сидюк за копейки на барахолке можно найти! а как со схемами на них? или только по маркировке? но надо закончить начатое!
http://forum.iosyitistromyss.r... %BF#p37248
Цитата Сообщение от Ymk
tda1543 из цд-рома.
Даташит сами найдёте, ли за вас в яндых сходить?
0
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
04.10.2010, 22:43
Неа :) я сам!
Кстати, рекомендую - архив даташитов от братьев наших меньших - http://www.ic-on-line.cn. Есть все (пока находилось). Эта TDA1543 стоит всего 1,5$!
Прожорливая однако - 50мА :(
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
05.10.2010, 22:25
в свое время тоже искал этот "ЦАП из сидирома", в двух разных моделях не нашел его:)
и в нигазинах как-то искал - нифига в наличии не было...
0
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
06.10.2010, 11:20
на выходных попробую, посмотрим что за зверь и стоит ли жертвовать током потребления
0
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 833
06.10.2010, 13:47
Цитата Сообщение от ZoomyrJuk
на выходных попробую, посмотрим что за зверь и стоит ли жертвовать током потребления
Советую обратить внимание на интерфейс этого ЦАП. Вполне возможно, что у МК не хватит быстродействия для работы с ним.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
06.10.2010, 14:58
а что там страшного в интерфейсе-то? практически SPI+номер канала, емнип.
мин. битовая скорость - 1411200 бит/с для 16бит 44100 гц. уж это все контроллеры могут.
0
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 833
06.10.2010, 18:13
Я так понимаю период BCK получается около 1мкс. При программной реализации этого интерфейса когда успевать делать что-то, кроме передачи?
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
06.10.2010, 18:39
ололо! вы всегда все программно делаете?:)))))
0
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 833
06.10.2010, 19:03
вы всегда все программно делаете?:)))))
Конечно нет. Использование аппартного модуля позволяет непрерывно передавать поток битов, без пауз и задержек? Я на этот счет не думал.
0
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
06.10.2010, 21:19
Цитата Сообщение от Dirspywok
Я так понимаю период BCK получается около 1мкс. При программной реализации этого интерфейса когда успевать делать что-то, кроме передачи?
Ну почему же, если тактовая састота 40Мгц, то 1 такт - 25нс, 1 комманда - 0,1мкс ,т.е 10 команд на вск и все остальное :) Вложимся?
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
06.10.2010, 23:37
Цитата Сообщение от Dirspywok
Использование аппартного модуля позволяет непрерывно передавать поток битов, без пауз и задержек?
важно не то, с паузами или задержками ли, важно чтобы конец передачи 2х каналов был через равные промежутки времени. паузы и задержки сделать постоянными легко.
0
0 / 0 / 0
Регистрация: 01.05.2010
Сообщений: 833
07.10.2010, 05:57
важно чтобы конец передачи 2х каналов был через равные промежутки времени.
Не совсем понял, что ты имеешь ввиду.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
07.10.2010, 10:14
на сколько я помню, у такого цапа сигнал номера канала играет и роль синхры по обновлению выходов цапа. т.е. можно данные вдвигать в него с любой скоростью, с любыми задержками (у некоторых и битность любую можно делать!), а обновление будет только тогда, когда этот сигнал перейдет из 0 в 1 (или наоборот, не суть).

т.е. алгоритм примерно такой:
1. шлем по spi 16 бит левого канала
2. переключаем сигнал номера канала, допустим, в 1
3. шлем по spi 16 бит правого канала
4. переключаем сигнал номера канала, допустим, в 0

вешаем эту штуку на прерывания по таймеру. пункты 1-2-3-4 будут так и так выполняться всегда константное время, и не важно, что между отсылкой байт будет пауза какая-то (не факт, что будет!), интерфейс-то синхронный. и вот в п.4 напряжения на выходе цапа поменяются на вдвинутые, сразу оба канала.
т.о., если прерывания от таймера приходят с равным периодом, то и обновление цапа будет с равным периодом.

п.с. я мог что-то забыть или перепутать:)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2010, 10:14
Помогаю со студенческими работами здесь

Как на 64-битный ноут установить 32-битный XP?
Как на 64- битный ноут установить 32-битный XP?

Преобразовать 8-битный bmp в 24-битный
помогите!!!вообще не имею понятия как это сделать:wall:

32 - битный С и 32 - битный Assembler
Из следующего 32-ух битного кода ассемблера вызывается C-функция kernel_start() (файл loader1.asm): bits 32 global start1 extern...

как создать 32 битный файл
Мне надо создать файл в котором 1 символ должен кодироваться не 8 бит а 32 или 64. Как мне создать такой файл и как туда вставлять такой...

Как открыть 64 битный процесс
Помогите, функцией createprocces никак Добавлено через 22 минуты У меня сама программа x32


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru