От число към напрежение
ЦАП прави обратното на АЦП: от число Z прави напрежение Uo = ULSB·Z. Всеки бит „включва“ своя дял: старшият е половината от обхвата, следващият – четвърт, после осмина. Делът се събира с останалите. Пример: 8-битов ЦАП с Uоп = 2,56 V има стъпало 10 mV, а Z = 1000 0000 (128) дава 1,28 V.
Най-простата идея е сумиране на токове: всеки бит пуска ток през резистор R₀, R₀/2, R₀/4…, а ОУ с RF в обратната връзка ги събира във виртуалната маса (тема 8). Тя има два проблема:
- резисторите са много различни: при 12 бита от R₀ до R₀/2048, а е трудно да се направят точни и в двата края;
- токът от захранването зависи от числото.
Вторият се решава с ключове с две положения: токът на всеки бит отива или към ОУ, или към маса, но тече винаги.
R-2R: само два вида резистори
R-2R матрицата решава и първия проблем. Стълбичка от резистори R (по дължината) и 2R (към ключовете) има едно свойство: погледнато от всеки възел, „назад“ има точно 2R. Затова всеки възел дели наполовина (α = 0,5) и младшите битове стигат до изхода отслабени 2, 4, 8 пъти. Трябват само две стойности, а и те се правят от една: 2R са два R последователно. Затова е лесно да се направи точно.
Тук Uоп = 1,6 V и 4 бита, т.е. стъпалото е 0,1 V. Кодът е Z = 10 = 1010, напреженията на възлите отляво надясно са 0,375 → 0,75 → 0,7 → 1 V, а изходът е 1 V.
Включените битове (светещите) свързват своето 2R рамо към Uоп, а изключените – към маса. Включи само b0: на изхода стигат 0,1 V, разделени наполовина на всеки от трите възела по пътя. Само b3 дава 0,8 V. ОУ е повторител: товарът не мести напрежението на стълбата.
Грешки: нелинейност и немонотонност
Ако резисторите не са точни, стъпалата стават неравни. Нелинейността е отклонението на изхода от правата. По-лошо е, ако тежестта на някой бит е сгрешена толкова, че по-голямо число дава по-малко напрежение. Това е немонотонност, най-често при прехода 0111 → 1000, където се сменят всички битове. И двете грешки са в самите резистори и не се компенсират лесно. Затова се изисква сумарно да са под ±0,5 ULSB.
Тук 2R рамото на старшия бит е сгрешено с 20 %. Преходът 7 → 8 е −0,364 стъпала (трябва да е 1), а най-голямото отклонение от правата е 0,727 ULSB. ЦАП е немонотонен: 8 дава по-малко от 7.
Изходът за всеки код
идеален с грешка
При +20 % старшият бит тежи по-малко, отколкото трябва, и 8 пада под 7. Стълбата има дупка по средата. Чуй мелодията: точният 6-битов ЦАП само леко шуми, а с грешката се чува грапав, „счупен“ звук. Всеки път, когато вълната мине през средата, тя прескача.
Време на установяване
След смяна на кода изходът не скача мигновено. ОУ има ограничена скорост на нарастване (slew rate) и честотна лента (GBW, тема 8). Времето на установяване t_set се мери от смяната на кода, напр. от Z = 0 до Z_max, докато изходът влезе в ±0,5 ULSB от крайната стойност. Най-късо е, когато преходният процес е критично-апериодичен, без надскачане.
По бързина ЦАП-овете се делят на три групи:
- до 6 бита – бързи, ≤ 10 ns;
- 8–12 бита – общо предназначение, ≤ 10 μs;
- 16 и повече бита – прецизни, бавни.
Тук кодът скача от 0 на 15. Изходът влиза в ±0,05 V от крайната стойност за 2,88 μs.
стълбата изход на ОУ −0,5 ULSB +0,5 ULSB
Стълбата (синьо) стига 1,5 V веднага. С μA741 изходът (зелено) се качва по права – ограничава го скоростта на нарастване 0,5 V/μs. Затова 1,5 V отнемат около 3 μs. С бързия ОУ е за части от микросекундата. За звук (16 kHz) и бавният стига, за видео не.
Двуквадрантен ЦАП
За числа със знак (допълнителен код, тема 14) ЦАП трябва да дава и отрицателно напрежение. Кодът се превръща в изместен (обръща се старшият бит), а компенсиращ ток I_c = 128·I_LSB (при 8 бита) мести нулата по средата. Така числата от −128 до 127 дават напрежения от −Uоп/2 до почти +Uоп/2.
Самопроверка
1. 8-битов ЦАП, Uоп = 2,56 V. Колко е стъпалото и изходът при 1000 0000?
ULSB = 2,56/256 = 10 mV; 128·10 mV = 1,28 V.
2. Защо R-2R е по-добра от претеглените резистори?
Трябват само два вида резистори (R и 2R), които лесно се правят точни и съгласувани. При претеглените стойностите се различават 2ᴺ⁻¹ пъти.
3. Какво е немонотонност и при кой преход е най-вероятна?
По-голям код дава по-малко напрежение. Най-вероятна е при 0111…1 → 1000…0, където старшият бит трябва да тежи точно колкото всички останали плюс едно стъпало.
4. Какво е време на установяване?
Времето от смяната на кода, докато изходът влезе в ±0,5 ULSB от крайната си стойност.
5. Защо се ползват ключове с две положения?
Токът на всеки бит тече винаги – или към ОУ, или към маса – затова товарът на източника е постоянен, независимо от числото.