Известно, что для контроля физических величин, например, температуры, вибрации, напряжения, тока, освещённости, звука и т.д. применяются различные датчики. У датчиков могут быть как цифровые выходы, так и аналоговые. С одной стороны, если выход цифровой, например, c SPI или I2C интерфейсом, или одиночный TTL, то датчик сразу подключается к микроконтроллеру. С другой стороны, для терморезистора, фотодиода, микрофона, токового шунта, делителя напряжения и т.д., понадобится преобразование аналогового сигнала в цифровой. В этом случае задача несколько усложняется, т.к. качество преобразования зависит уже от разработчика.

Существует ряд параметров, который определяется микросхемой преобразователя, а в остальном всё зависит от схемы подключения. Если предположить, что точно известна разрядность, полоса частот и частота дискретизации преобразователя, то в ряде случаев схема подключения состоит из резисторов схемы нормализации и возможно драйвера с ARC фильтром, тактового генератора и источника питания с нужным напряжением. Это далеко не полная схема подключения, но достаточная для того, чтобы оценить первые три шага, которые сведут на нет результат работы сколь угодно хорошей микросхемы преобразователя.

Для оценки последующих результатов, можно предположить, что диапазон входного напряжения — 0..1В, разрядность преобразователя — 24бита, эффективная полоса преобразования составляет 20кГц, а температура — комнатная.

Шаг первый — увеличение «тёплого звучания» резисторов, включенных последовательно со входом преобразователя или его драйвера.

Оценить результат в битах, которые будут в точности передавать все оттенки комнатной температуры можно по формуле теплового шума резистора. В этом важном деле поможет script для Matlab:

r = [100 1e3 1e4]';  % Resistance values.
t = 24; % Ambient temperature.
bw = 20e3;  % Frequency bandwidth.
u = 1;  % Voltage range.
N = 24; % Number of bits.

%% Thermal noise
u_t = 2*sqrt(physconst('Boltzmann')*(t+273.15)*r*bw);

%% Number of bits according to thermal noise.
thermal_bits = N+log2(u_t/u);

%% Plot the result
bar(log10(r),thermal_bits,0.2,'stacked');
title('Digitized thermal noise');
xlabel('Resistance, Ohm'), ylabel('Number of bits');
fig = gca;
fig.XTickLabel = {'100','1k','10k'};


Шаг второй — сокращение пассивных и активных фильтров в цепях питания преобразователя.

Например, в статье «Designing Second Stage Output Filters for Switching Power Supplies» утверждается, что увеличение количества секций фильтрации импульсного источника питания имеет смысл до уровня шума порядка 1мВ. Дальнейшее снижение шума достигается за счёт линейного стабилизатора напряжения.

У малошумящих линейных стабилизаторов уровень подавления шумов по питанию составляет 50..90дБ, а собственный шум в диапазоне частот от 10Гц до 100кГц — 1.6мкВ..20мкВ. Для оценки влияния шумов источника питания можно использовать следующий script:

N = 24; % Number of bits.
dcdc_noise = 1e-3;  % Output noise of the switching converter.
ldo_noise = [1.6e-6 6.5e-6 20e-6]'; % Output noise of the LDO.
ldo_psrr = [90 80 55]'; % PSRR of the LDO.

%% Number of bits according to LDO noise
ldo_noise_bits = N+log2(ldo_noise);
 
%% Number of bits according to LDO PSRR
ldo_psrr_bits = N+log2(dcdc_noise./db2mag(ldo_psrr));
 
%% Plot the result
bar([ldo_psrr_bits ldo_noise_bits],'grouped'),
title('Digitized power supply noise');
legend('PSRR','LDO','Location','northwest');
ylabel('Number of bits');
fig = gca;
fig.XTickLabel = {'ADM','LP','LT'};


Шаг третий — снижение требований к тактовому генератору.

Можно предположить, что относительно низкая максимальная частота сигнала способствует снижению требований к генератору. Для проверки этого предположения достаточно воспользоваться одним из многочисленных руководств по применению преобразователей. А также специальным калькулятором, с помощью которого можно рассчитать джиттер генератора для различных частот.

Для оценки влияния джиттера генератора на конечный результат удобно использовать следующий script:

bw = 20e3;  % Frequency bandwidth from previous step.
N = 24; % Number of bits from previous step.
fd = [1e6 6e6 40e6];    % Sampling frequency.
tjrms = [130e-12 26e-12 3.3e-12]'; % Jitter in RMS seconds vs fd.

%% Number of bits according to TJrms.
tj_noise_bits = N + log2(7.69*bw*tjrms);

%% Plot the result
bar(log10(fd),tj_noise_bits,0.2,'stacked');
title('Digitized jitter noise');
xlabel('Frequency, MHz'), ylabel('Number of bits');
fig = gca;
fig.XTick = log10(fd);
fig.XTickLabel = {'1','6','40'};


Как можно видеть, даже при относительно низких частотах дискретизации уровень шума из-за джиттера генератора представляет достаточно серьёзную проблему. Это ещё не резистор 10кОм, но уже почти малошумящий линейный стабилизатор. Однако с ростом частоты ситуация резко улучшается. Это даёт основание полагать, что разумный выбор типа преобразователя, может способствовать уменьшению уровня шумов. Например, при одном и том же темпе преобразования у сигма-дельта преобразователя гораздо меньше шансов пошуметь, по сравнению с преобразователем последовательного приближения.
Конечно, существует гораздо больше проблем, связанных с разработкой преобразователей сигналов. Но на мой взгляд, рассмотренные три шага представляют собой традиционный маршрут проектирования (у картинки есть свой автор, и я искренне надеюсь, что он не против):

Поделиться с друзьями
-->

Комментарии (21)


  1. VaalKIA
    29.09.2016 06:19

    Я не понял графики, например. на последнем — на 1МГц зашумлены 8 бит?


    1. sdy
      29.09.2016 08:11

      Да.


      1. Sile_vrn
        29.09.2016 10:01

        Тогда http://www.analog.com/media/en/technical-documentation/data-sheets/AD9649.pdf график на странице 22, который говорит ровно о обратной зависимости от частоты.
        Если судить по вашему графику, то на частоте в сотни МГц можно вообще не париться о джиттере?


        1. sdy
          29.09.2016 10:06

          Это график зависимости отношения сигнала к шуму от частоты на входе. А у меня построен график зависимости шума от джиттера частоты дискретизации. Другими словами у меня другой график. Разница в частотах: в моём случае — это частота дикретизации, а в другом частота на входе преобразователя.


          1. Sile_vrn
            29.09.2016 10:27

            Да ни какой разницы нет. Здесь негативный эффект проявляется в системе sample/hold (устройство выборки и хранения) которое из за джиттера захватывает сигнал в (немного) разное время. Если сигнал за это время джиттера не меняется то все ОК, и тогда что на низкой, что на высокой этого эффекта не будет, но и зависимости такой как на графике не будет (5 бит — это слишком существенно).
            При этом 1) с ростом частоты получить тактовый сигнал с низким джиттером сложнее, 2) возникают разнообразные наводки.

            Да и вообще статья — сферический конь в вакууме. Резистор последовательно ставят обычно для согласования с источником или как фильтр и производитель обычно приводит рекомендации. Про линейный стабилизатор тоже есть нюансы: он не просто должен быть, а должен быть правильно подключен. Есть еще нюансы с разводкой платы. Лучше всего читать даташит на конкретную схему, обычно там есть много полезного.


            1. sdy
              29.09.2016 10:36

              Разница есть. Существует три параметра: максимальная частота на входе преобразователя, частота дискретизации и темп преобразования. Если частота дискретизации в несколько десятков/сотен раз больше максимальной частоы на входе преобразователя, при одинаковом темпе преобразования, то шум от джиттера частоты дискретизации будет интегрирован до частоты дискретизации. При этом в области интереса шума останется совсем чуть-чуть.


              1. Sile_vrn
                29.09.2016 11:03

                fd = [1e6 6e6 40e6]; % Sampling frequency.
                tjrms = [130e-12 26e-12 3.3e-12]'; % Jitter in RMS seconds vs fd.

                Мне кажется здесь вся соль скрыта. Джиттер то уменьшается с ростом частоты.
                Физика есть только в первом скрипте. За двумя остальными просто перебор чисел.
                Есть готовые калькуляторы (http://www.intersil.com/en/tools/software-drivers/noise-estimating-calculators.html) с пояснительной презентацией, основанные на физических моделях.


                1. sdy
                  29.09.2016 11:06

                  Это данные на один и тот же генератор, но с разной выходной частотой. Действительно, джиттер уменьшается с ростом частоты дискретизации. И это приводит к уменьшению шума в области нашего интереса.


                  1. Sile_vrn
                    29.09.2016 11:19

                    Тогда нужно указать приборы и материалы. А то у нас например генератор ведет себя по другому. По джиттеру похоже на какой-нибудь руди-шварц (который недоступен 99,9% людей, занимающихся электроникой)


                    1. sdy
                      29.09.2016 11:24

                      Это обычный интегральный генератор стоимостью до 10 долларов. Результаты генераторов с джиттером в сотые доли пС я специально не привёл.


                      1. Sile_vrn
                        29.09.2016 11:37

                        Нельзя утверждать что именно увеличение частоты ведет к улучшению параметров преобразования. Из статьи получается, что уменьшение джиттера ведет к улучшению. А частота здесь совсем не при чем.


                        1. GarryC
                          29.09.2016 11:40

                          Ну, вообще то, при прочих равных условиях, при увеличении частоты генератора джиттер до определенного момента уменьшается и это вполе понятно, так что частота вполне при чем, об этом было подробно в TI App.


                          1. sdy
                            29.09.2016 13:15

                            Вот. Я выбрал ссылку от LT, т.к. в ней была формула, которую я использовал, и весь документ умещается на четыре страницы, а у TI, AD и др. страниц значительно больше.


                        1. sdy
                          29.09.2016 11:44

                          Если частота дискретизации увеличивается, а область нашего интереса и темп преобразования (скорость обновления результата) остаются прежними, то при сохранении общей площади шума, высота прямоугольника шума начинает уменьшаться. Что ведёт к уменьшению площади шума области нашего интереса.


  1. sdy
    29.09.2016 10:05


  1. GarryC
    29.09.2016 10:33

    Лично меня порадовало увеличение точности на 1 разряд для второго графика при хорошей фильтрации — Что Я Делаю Не Так?


    1. sdy
      29.09.2016 10:40

      Это про -1бит? Я тоже вчера на этом голову сломал. Но 2^ldo_psrr_bits, по идее всё объясняет.


      1. GarryC
        29.09.2016 10:46

        Лично я не в силах понять, как можно получить точность лучше имеющейся, вот и спрашиваю, что надо изменить в моей работе.
        По формуле к второму графику мы опять таки получаем на границе точность в бесконечное количество разрядов — Вас это не удивляет?


        1. sdy
          29.09.2016 10:52

          Нет, так как речь не идёт о точности результата, если я правильно понял вопрос. На графике показано то число разрядов, которое необходимо для представления соответствующего уровня шума — это не сигнал на входе.


          1. GarryC
            29.09.2016 11:36

            То есть это SNR в эквивалентных разрядах — тогда многое становится на места.


            1. sdy
              29.09.2016 11:38

              Нет, это не SNR. Представим, что шума нет или его ничтожно мало, сколько тогда понадобится разрядов для его нахождения?