16 비트 DAC를 생성하기 위해 2 개의 8 비트 DAC를 결합 할 수 있습니까? 16 비트 워드의 1 바이트를 각각에 전송해야합니다.


16

두 개의 DAC의 경우, 하나는 D0-D7로 전송되고 다른 하나는 D8-D15로 전송되며, 전원 공급 장치는 5V이며, 두 번째 DAC의 출력에 5V가 추가되고 두 ​​개의 DAC 출력이 합산되면 16 비트 DAC가 발생합니다 두 개의 8 비트 DAC로 구성됩니다.

유일한 문제는 두 번째 DAC에 0x00 입력이있는 경우 5V 추가를 취소 해야하는 방법입니다. 합산은 합산 증폭기로 수행 할 수 있습니다. 이 회로는 최대 10kHz까지만 작동하면됩니다.

이 아이디어에 근본적으로 문제가 있습니까?


11
아이디어에는 근본적으로 잘못된 것이 없지만 상대적으로 복잡한 디자인을 처리해야합니다. 첫째, 결과를 아날로그 신호로 합산하는 것은 중요하지 않습니다. 요약하기 전에, MSB DAC의 각 비트는 256 비트의 LSB DAC와 동일하므로 x256의 계수로 MSB DAC를 증폭해야합니다. LSB DAC 풀 스케일 볼트에서이 값을 오프셋해야하는 것보다 둘 다 추가 할 수 있습니다.
PDuarte

7
소음, 왜곡, 공급 능력은 말할 것도없고 ...
PDuarte

4
그렇게 쉬웠다면 모두가 그렇게 할 것입니다 ... 이론적으로 그렇습니다. 두 개의 DAC를 결합 할 수 있습니다 (더하기보다는 곱셈이 필요함). 현실적으로 성능면에서 16 비트 근처에 위치하지는 않습니다. 16 비트 DAC 만 구매하십시오.
uint128_t

2
256x 곱한 값이 너무 커지면 오프셋이 필요합니다. 8 비트 DAC가 1V의 풀 스케일을 제공한다고 가정합니다. 256을 곱하면 256V가됩니다. 그렇게 실용적이지 않습니다. ;-). DAC가 전류를 공급하는 것이 더 쉬우 며, 전류 출력을 병렬로 간단히 연결할 수 있습니다 (전압이 올바른 값, 가상 접지 등을 유지하는 부하가있는 경우).
Bimpelrekkie

1
신호를 상위 8 비트와 하위 8 비트로 나누는 대신 DAC1이 짝수 번째 비트를 제공하고 DAC2가 홀수의 비트로 (거의) 대략 절반의 전력. 수학은 지저분하지만 15 비트의 신호 정확도를 얻을 수 있다고 생각합니다.
Foo Bar

답변:


28

가능하지만 제대로 작동하지 않습니다.

첫째, 두 출력을 하나의 스케일로 정확히 1/256으로 확장하는 문제가 있습니다. (1/256 씩 감쇠 시키든지, 다른 256 개 증폭 시키든지, 예를 들어 * 16 및 / 16과 같은 다른 배열은 중요하지 않습니다).

그러나 가장 큰 문제는 8 비트 DAC가 8 비트보다 나은 것으로 정확할 수 있다는 것입니다. 1 / 4NSB의 "DNL"사양과 1 / 2LSB의 "INL"사양을 가질 수 있습니다. 이는 "차동"및 "통합"비선형 성 사양이며 인접 코드 간의 각 단계가 실제로 얼마나 큰지를 측정 한 것입니다. (DNL은 두 개의 인접한 코드 사이, DAC의 전체 범위에서 두 코드 사이의 INL을 보장합니다).

이상적으로, 각 단계는 정확히 전체 스케일 값의 1/256입니다. 그러나 1 / 4LSB DNL 사양은 인접 단계가 25 % 이상 이상과 다를 수 있음을 나타냅니다. 이는 일반적으로 DAC에서 허용되는 동작입니다.

문제는 MSB DAC의 0.25 LSB 오류가 LSB DAC의 64 LSB 오류 (전체 범위의 1/4)에 기여한다는 것입니다!

다시 말해, 16 비트 DAC는 10 비트 DAC의 선형성과 왜곡을 가지므로 16 비트 DAC의 대부분의 응용에서는 용납 할 수 없습니다.

이제 16 비트 정확도 (INL 및 DNL이 1/256 LSB보다 우수함)를 보장하는 8 비트 DAC를 찾을 수 있다면 다음과 같이 진행하십시오. 그러나 경제적이지 않기 때문에 시작하는 유일한 방법은 16 비트 DAC와 함께!

또 다른 대답은 "소프트웨어 보상"을 제안합니다. MSB DAC의 정확한 오류를 매핑하고 LSB DAC에 역 오류를 추가하여이를 보상합니다. 16 비트 DAC가 비싸던 시절 오디오 엔지니어가 오랫동안 고민했던 것입니다. ..

요컨대, 어느 정도 작동하도록 만들 수 있지만 8 비트 DAC가 온도 나 나이에 따라 표류하는 경우 (아마도 안정적으로 설계되지 않은 경우) 보상은 더 이상 가치가있을만큼 충분히 정확하지 않습니다. 복잡성과 비용.


1
드리프트에 대한 요점은 좋은 것이며이 방법은 두 개의 8 비트 DAC를 결합하여 20 비트 정밀도를 얻는 데 비현실적입니다. 그러나 2x8에서 13-14 개의 사용 가능한 비트를 얻는 것이 가능할 것이라고 생각합니다.
supercat

19

8 비트 DAC는 다른 값을 출력 할 수 있습니다 .28=256

16 비트 DAC는 다른 값을 출력 할 수 있습니다 .216=65536

그것이 어떻게 곱해 지는지, 그것이 추가가 아니라는 것을 주목하십시오 (두 개의 8 비트 DAC의 출력을 합할 때 일어날 수 있습니다).

두 개의 8 비트 DAC를 가져 와서 출력을 합하면 가능한 값은 무엇입니까?

답 : 0, 1, 2, ..., 256, 257, 258, .... 511, 512 그리고 그게 다입니다!

16 비트 DAC는 0,1,2 ..., 65535, 65536을 수행 할 수 있습니다.

이론적으로는 가능하지만 8 비트 DAC 중 하나 의 출력 에 정확히 256곱하고 LSB 비트를 1x DAC에, MSB 비트를 256x DAC에 연결해야합니다. 그러나 정확성과 선형성이 떨어지는 경우 놀라지 마십시오!


흠. 나는 그것을 몰랐다 ...
quantum231

1
256 미만의 곱셈 계수를 사용하면 소프트웨어의 비선형 성을 보상 할 수 있습니다. 차등 비선형 성은 더 작은 DAC의 스텝 크기와 적어도 동일하지만 두 개의 8 비트 DAC를 사용하는 것은 실제로 적용 할 보상 요소를 정확하게 결정할 수있는 경우 단조로운 14 비트 DAC를 실제로 관리 할 수 ​​있습니다.
supercat

2
주어진 총 출력을 얻기 위해 어떤 DAC에 어떤 값을 보낼지 알아내는 수학 과제를 즐기면 하나의 DAC의 출력에 257/256을 곱하고 합할 수도 있습니다. 그렇지 않으면, callenges는 동일합니다 :)
hobbs

@ hobbs : 나는 그것이 효과가 있다고 생각하지 않습니다. 하나의 DAC가 256 단계로 0 ~ 65280을 출력하고 다른 하나를 257 단계로 0 ~ 65535를 출력하면 65280과 65535 사이의 모든 출력 값을 얻을 수는 있지만 범위 내에서 어떤 것도 달성 할 수는 없습니다. 예를 들어 32639와 32768 사이입니다. 실제로 단일 8 비트 DAC보다 훨씬 나아진 것은 아닙니다.
supercat

@ supercat 당신 말이 맞아, 나는 수학을 보풀이났다. 부정적인 반응을 보일 수있는 버전이 있다고 생각하지만 제가 쓴 방식으로는 효과가 없습니다. 어쨌든 주로 유머를 시도했습니다.
홉스

6

이 기술은 "내부"DAC의 풀 스케일 전압이 외부 DAC의 스텝 크기보다 큰 경우 다른 출력 코드에 의해 생성 된 출력 전압을 정확하게 (빠르게는 아니지만) 측정하고 적용 할 수있는 수단을 가지고 있습니다 소프트웨어에서 적합한 선형성 조정. 내부 DAC의 풀 스케일 전압이 외부 DAC의 두 전압 사이에서 최악의 단계 크기보다 작을 수있는 경우 (단계가 거의 완벽하게 균일하지 않다는 점을 염두에두고) 어떤 전압으로는 얻을 수없는 전압이있을 수 있습니다 내부 및 외부 DAC 값의 조합. 그러나 범위가 겹치는 것을 보장하면 소프트웨어 선형성 보정을 사용하면 좋은 결과를 얻을 수 있습니다.

기존 Cypress PSOC 칩 설계 인 BTW (새로운 칩에 대해서는 잘 모르겠습니다)는 서로에 대해 확장 된 두 개의 6 비트 DAC를 사용하여 9 비트 DAC를 에뮬레이션합니다. 소프트웨어 선형성 보정을 사용하지 않지만 6 비트 DAC에 3 비트의 정밀도 만 추가하려고합니다. 소프트웨어 보상을 사용하지 않고 모든 종류의 DAC에 3-4 비트 이상의 정밀도를 추가하려고 시도하는 것은 그다지 효과가 없을 것입니다.


4

21 년 전 불쌍한 대학생 (8 비트 DAC 만 감당할 수 있음) 일 때이 기술을 사용하여 두 개의 8 비트 DAC를 더 높은 비트 DAC로 결합했습니다. 의 적분 비선형 (INL)차동 비선형 성 (DNL). 가장 중요한 바이트 DAC의 DNL이이 경우 킬러입니다. INL이 있으면 출력이 왜곡되지만 여전히 매끄 럽습니다. DNL은 한 DAC 단계에서 다음 DAC 단계로 크기를 지시하며, 충분히 다양하면 8 비트 경계를 넘을 때 불연속 또는 반전이 표시됩니다. 예를 들어 MSB DAC가 0x07 <-> 0x08의 경우 LSB DAC의 이상적인 256 카운트가 아니라 384 카운트 또는 128 카운트 (자체 중요 비트의 ± 1 / 2)만큼 변경 될 수 있습니다. 좋은 DAC는 1/2 LSB DNL만을 가질 것이고, 평범한 DAC는 DNL을 더 나쁘게 할 것이지만, 해상도가 높아질수록 8 비트 DAC에서 1/2 LSB DNL을 찾는 것은 쉽지만 16 비트 DAC에서

필자의 경우 유효 해상도가 12 또는 13 비트인지 기억하지 못하고 전위차계를 사용하여 수동으로 2 단계 게인을 조정해야했습니다.


2

나는 동적 범위를 증가시키기 위해 실제로 HPLC UV Detector에서 이것을 보았습니다. DAC 중 하나에 필요한 금액이 적용됩니다. 첫 번째 DAC 핸들이 0 ~ 10V이고 두 번째 핸들이 10 ~ 20V라고 가정하십시오.


1
이것은 하나의 비트 만 추가하지 않습니까?
Szidor

예, 이것은 1 비트 만 추가합니다. 그러나 오디오 측면에서는 매우 성공적인 타협이 될 수 있습니다. "똑 바른"DAC는 16 비트 모두 한 번에 스위치가 전환되는 절반 규모에서 큰 문제가 있습니다. MSB가 켜지고 다른 스위치가 모두 꺼집니다. 그러면 가장 큰 단일 DNL 오류가 발생합니다. 오디오 신호에서이 가장 큰 오류는 가능한 가장 최악의 위치 인 제로 크로싱 (Zero Crossing)에서 가장 조용한 소리까지 손상시킵니다. 이제 한 DAC가 양의 신호를 처리하고 다른 DAC가 음의 신호를 처리하면이 문제를 완전히 피할 수 있습니다. 전설적인 Burr-Brown PCM-63 DAC는이를 잘 활용했습니다.
Brian Drummond


0

다른 방법이 있습니다. 8 비트 DAC 하나만 사용하십시오. 최대 10Hz의 Hz 만 작동하면되므로 DAC (최대 100kHz까지 가능)를 하나만 사용하여 변조기로 사용할 수 있다고 언급했습니다. 기본 아이디어는 각 사이클마다 LSB가 추가되는 8 비트 누산기에서 256 비트의 MSB 값과 1 비트 오버 플로우 / 캐리어 플래그를 출력하는 것입니다. LSB의 추가 '변조 비트'로 인해 최대 MSB로 254를 얻지 만 범위를 크게 줄이지 않습니다.

예 : 30kHz에서 사이클을 실행하면 256 사이클이 117Hz에서 반복되므로 50Hz 저역 통과 필터를 출력에 배치하여 필요한 속도까지 작동 할 수있는 매우 부드럽고 정확한 신호를 얻을 수 있습니다.

이 방법의 정확성은 비트 단계의 크기에 따라 크게 달라 지지만 다른 방법으로는 그다지 중요하지 않습니다. 과거에 기준 전압 생성에 사용했으며 놀랍게도 잘 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.