В этом примере показано, как спроектировать и оценить сегментированный DAC с помощью эталонной архитектуры и подтвердить DAC с помощью Испытательного стенда DAC. В данном примере используйте таблицу данных AD9775. Это - коммерческий, стандартный 14-битный DAC от Аналоговых устройств.
Откройте модель SegmentedDACTestbench, присоединенную к этому примеру как вспомогательный файл. Модель состоит из блока Segmented DAC и Испытательного стенда DAC.
model = 'SegmentedDacTestbench';
open_system(model);
Блок Segmented DAC состоит из многих сегментов, соединенных параллельно. Эти сегменты каждый питаются подмножеством слова входных данных. Результаты преобразований из каждого сегмента DAC суммированы, чтобы получить выход для полного входного слова.
open_system([model '/Segmented DAC'], 'force');
Блок Logical Vector Conversion разделяет входное слово в свои биты компонента. В каждом сегменте Селекторный блок выбирает подмножество входного слова для того сегмента, и другой блок Logical Vector Conversion преобразует его назад в скалярное значение для сегмента DAC, чтобы преобразовать. Отдельный сегмент DACs является Бинарными Взвешенными блоками DAC. Их установки параметров установлены во время инициализации модели блоком Segmented DAC. Наконец, выходные параметры сегментов добавляются и масштабируются к ссылке блока Segmented DAC.
Дважды щелкните по блоку Segmented DAC, чтобы открыть диалоговое окно Block Parameters. Используйте таблицу в центре, чтобы установить параметры отдельных сегментов DAC. Эффекты табличных параметров на полной работе DAC получены в итоге в правом нижнем углу.
Входная полярность является набором Unipolar
, Ссылка (V) установлена в 1.20
V, Смещение (V) установлено в 0
V, Время (время) урегулирования установлено в 11e-9
s, и допуск Времени урегулирования (LSB) установлен в 0.025
LSB на основе таблицы данных.
В Segment таблица настроек вставляют строку, чтобы иметь три строки, чтобы задать архитектуру DAC с тремя сегментами. Установите Биты верхних и нижних строк к 5
и Биты средней строки к 4
. Это устанавливает сегмент LSB (заданный верхней строкой) и сегмент MSB (заданный нижним рядом) каждому быть 5-битным DAC, в то время как средний сегмент является 4-битным DAC. Установите ошибку Смещения и поля Gain Error для всех сегментов к 0
. Щелкните где угодно подряд или Shift+Click на нескольких строках в таблице, чтобы выбрать их. Когда строка выбрана, используйте кнопки на правой стороне таблицы, чтобы переместить ее вверх или вниз в табличном изменении, где его сегмент относительно входного слова. Сегмент верхней строки всегда преобразует LSB, и нижний сегмент всегда преобразует MSB. Используйте кнопки ниже таблицы, чтобы добавить или удалить сегменты.
Дважды щелкните по блоку DAC Testbench, чтобы открыть диалоговое окно Block Parameters. Опция Измерения выбрана как DC
. Установите частоту преобразования Запуска (Гц) на 9e6
Гц. Во вкладке Setup нажмите кнопку параметров настройки Автозаливки, чтобы автоматически распространить параметры DAC к испытательному стенду. Установите Время (время) урегулирования на 21e-9
s, чтобы гарантировать результаты измерения DC частично даже не основаны на переходах между кодами. Во вкладке Target Metric нажмите целевую метрическую кнопку Автозаливки, чтобы автоматически распространить целевые метрики DAC к испытательному стенду. Примените изменения. Установите Рекомендуемое время (времена) остановки симуляции min как время остановки модели путем нажатия на Set как на кнопку времени остановки модели.
Запустите симуляцию для 36.41
мс.
bdclose(model); sim(model);
Измеренное смещение и ошибки усиления, отображенные на значке Испытательного стенда DAC, в Ошибочном допуске (LSB) их ожидаемых значений.
Дважды щелкните по блоку DAC Testbench, чтобы открыть диалоговое окно Block Parameters. Нажмите кнопку результатов анализа DC Графика, чтобы просмотреть кривую передачи DAC, нелинейность конечной точки и лучшую подходящую нелинейность.
Дважды щелкните по блоку DAC Testbench, чтобы открыть диалоговое окно Block Parameters. Установите опцию Измерения как AC
. Во вкладке Stimulus Запустите, частота преобразования (Гц) установлена в 9e6
Гц, чтобы позволить выходу DAC обосновываться между преобразованиями. Во вкладке Setup нажмите кнопку параметров настройки Автозаливки, чтобы автоматически распространить параметры DAC к испытательному стенду. Примените изменения. Установите Рекомендуемое время (времена) остановки симуляции min как время остановки модели путем нажатия на Set как на кнопку времени остановки модели.
set_param([model '/DAC Testbench'], 'MeasureOption', 'AC');
Откройте Сегментированное диалоговое окно параметров блоков DAC и установите ошибку Смещения и ошибочные записи Усиления в таблице настроек Segment к 0
для всех сегментов. Это препятствует тому, чтобы ухудшения линейности влияли на гармоническую эффективность.
mask = Simulink.Mask.get([model '/Segmented DAC']); paramSegmentSettings = mask.getParameter('SegmentSettings'); ctrlSegmentSettings = paramSegmentSettings.DialogControl; ctrlSegmentSettings.setTableCell([1, 3], 'Value', '0'); ctrlSegmentSettings.setTableCell([2, 3], 'Value', '0'); ctrlSegmentSettings.setTableCell([3, 3], 'Value', '0'); ctrlSegmentSettings.setTableCell([1, 5], 'Value', '0'); ctrlSegmentSettings.setTableCell([2, 5], 'Value', '0'); ctrlSegmentSettings.setTableCell([3, 5], 'Value', '0');
Запустите симуляцию для 180
мс.
set_param(model, 'StopTime', '0.18'); sim(model);
Warning: The file containing block diagram '<a href="matlab:open_system ('msbUtilities')">msbUtilities</a>' is shadowed by a file of the same name higher on the MATLAB path. This can cause unexpected behavior. For more information see <a href="matlab:helpview([docroot '/toolbox/simulink/helptargets.map'], 'shadowing')">"Avoiding Problems with Shadowed Files"</a> in the Simulink documentation. The file containing the block diagram is: S:\22\jadams.Brf.DacExamples\matlab\toolbox\msblks\msblks\internal\msbUtilities.slx. The file higher on the MATLAB path is: S:\22\jadams.Brf.DacExamples\matlab\toolbox\msblks\msblks\msbUtilities.slx
Гармонические измерения искажения отображены на значке Испытательного стенда DAC.