Микрон-ГЛИН

Есть отрыв! Взлетаем!!! Продолжаем тематику калибратора сверх-малых токов…

Я длительное время откладывал создание ГЛИН-а (Генератора Линейно Изменяющегося Напряжения) Но настало время им занятся, так как именно ГЛИН – это тот самый “ракетный двигатель” который позволяет “взлететь” формуле:

Так как именно ГЛИН обеспечивает часть формулы “dU/dt”.

Рассмотрим мой концепт ГЛИН-а детальнее:

Про этот концепт я писал около года тому назад, но так как вы наверняка уже все забыли, быстренько повторно пройдемся по базовым его принципам. Формирование сигнала “dU/dt” обеспечивается четырьмя базовыми блоками:

  1. Блок формирования временных интервалов высокой точности.
  2. Источник опорного напряжения повышенной стабильности. (ИОН)
  3. ЦАП, выступающий в роли меры линейности.
  4. Блок управления.

На ЦАП подаются высокоточные временные импульсы загрузки его резистивной матрицы, в перерыве между которыми МК загружает в буфер ЦАП значение следующего шага ЦАП-а(инкремент или декремент счетчика). Резистивная матрица ЦАП при этом запитывается от ИОН с высокой стабильностью.

Получается, что ЦАП делает четко фиксированные шаги резистивной матрицы, с четко фиксированной и заранее заданной с высокой точностью частотой. Сама-же матрица при этом запитана от ИОН.

Этот простой принцип обеспечивает плавной нарастание(или спад) напряжения на выходе, с заранее точно заданным углом наклона функции “dU/dt”.

Теперь начнем плавно переходить от теории к практике и рассмотрим схему по блокам.

Блок формирования временных интервалов высокой точности

Сегодня очень доступны недорогие(20-50$) TCXO обеспечивающие начальную точность частоты лучше 1ppm и очень хорошие температурные характеристики, по этому как базовый компонент задающий частоту был выбран именно TCXO.

Далее вступает в дело черная магия Direct Digital Synthesis. Где с опорной частотой TCXO проводятся всякие махинации с применением фазовых аккумуляторов, ЦАП-а и таблицей синуса, и на выходе DDS AD9832 синтезируется псевдо-синус с любой нужной частотой. Причем частота синтезируется с разрешением 0.00232 Гц. К счастью вся эта магия скрыта от пользователя за одной простой формулой:

где FTW –  32-х битное число, которое микроконтроллер должен загрузить в DDS AD9832 по шине SPI.

Далее на выходе мы получаем синус, который для дальнейшей работы нужно превратить в CMOS совместимый сигнал. Первоначально, для этой цели я применял специализированный конвертер LTC6957IMS-3, но он повел себя плохо и начинал звенеть при пропускании через него сигнала с маленькой частотой. По этому он был заменен на классический триггер Шмитта с гистерезисом.

Поскольку любое преобразование синуса в CMOS совместимый сигнал, может иметь проблемы с временем подачи фронта, и в особенности когда речь идет о малых частотах, то в дизайне был предусмотрен счетчик SN74HC590AD. Он дополнительно делит частоту DDS еще на 1:256, что не только позволяет запускать DDS на более высоких частотах, но и увеличивает в 256 раз относительное разрешение настройки частоты. В результате у нас уже получается такая формула синтеза частоты:

И уже частотой Fldac, с хорошими красивыми полностью CMOS совместимым сигналом тактируется загрузка резистивной матрицы ЦАП. 

Вообще говоря, что касается джиттера фронта сигнала LDAC, то я его измерял, он не превысил 22нс в самом наихудшем случае, при минимальной  частоте LDAC=52,4288Гц, что я считаю хорошим результатом.

Для дальнейшего понимания откуда берется это магическое значение частоты 52,4288Гц, мы должны рассмотреть следующую часть схемы:

ИОН+ЦАП.

В качестве ИОН я применил популярные сегодня TI REF102. Я их выбрал по тому, что они дешевы и сразу дают на выходе нужные мне 10В, и не требуют дополнительных компонентов, как классические стабилитроны.

Напряжение 4-х REF102 усредняется с помощью не хитрой схемы из резисторов и пленочного конденсатора.

Тут в дело вступает ключевая часть схемы – новейший 20-ти битный ЦАП Texas Instruments DAC11001A, с резистивной матрицей кодирующей 1 048 576 отсчетов с очень высокой линейностью 1-LSB DNL(max) 4-LSB INL(max). Именно он выполняет роль делителя напряжения на частоту, и получения искомой функции “dU/dt”. Благодаря его характеристикам, прибор в этой части удалось очень значительно упростить по сравнению с применяемыми  сегодня ГЛИН-ами из состава первичных и вторичных эталонов множества государств. Этот ЦАП в своем роде не уникален, есть еще один подобный это AD5791, но у него большие проблемы с доставаемостью, я не смог его купить. К тому-же хотелось попробовать именно продукцию от TI, так как на чипах от AD уже существуют разного рода ширпотребные калибраторы, и это не так интересно, как освоить новый продукт.

Для обеспечения перестройки скорости ЛИН в широких приделах от 0.001В/c до 1В/c, чтобы не перегружать блок формирования временных интервалов, я пошел на хитрость. Сигнал на ЦАП формируется по методу:

  • При расчётных частотах Fldac до 1кГц мы делаем инкремент или декремент резистивной матрицы на единицу, на каждом спадающем фронте сигнала Fldac.
  • При расчётных частотах Fldac свыше 1кГц, на каждом спадающем фронте сигнала Fldac, мы делаем инкремент или декремент резистивной матрицы на кратный множитель, такой, чтобы частота  Fldac не превысила 1.5 кГц.

В результате мы получаем и высокую точность настройки ЛИН и широкие приделы скоростей ЛИН. С интервалами от 20 секунд при скорости 1В/c до 5.5 часов при скорости 1мВ/c.

Ах да!!! про частоту!!! Уффф… чуть не забыл! И так:

Если к примеру нам надо задать скорость ЛИН 1мВ/c, то при шаге 1 отсчет матрицы, мы получаем примерно: (+10В- -10В)=20В полный диапазон питания матрицы; 20В/1мВ = требуется сделать 20 000 шагов чтобы пройти всю матрицу. 1 048 576 отсчетов матрицы / 20 000 шагов = 52,4288 шагов в секунду. То есть 52,4288 Герц. Подобная несложная математика(с учетом калибровочных констант) позволяет с легкостью вычислить и значения загружаемые в ЦАП и значение для загрузки в DDS.

Для подачи опорного напряжения, я использовал встроенный в ЦАП делитель 1:1, благодаря чему из напряжения +10В с ИОН мы получаем сразу и -10В методом зеркалирования. Затем оно подается с помощью драйверов на ОУ на резистивную матрицу ЦАП. Напрямую, без драйверов ее питать нельзя, это ухудшает ее характеристики.

На выходе ЦАП предусмотрен буферный ОУ, слот для подключения мезонинной платы ФНЧ(которую я пока не делал) для сглаживания ступенек ЦАП, и делитель на металфойле, для еще большего расширения диапазона скоростей, от 1В/сек до 0.01мВ/сек. (заметка: выход деления 1:1000 скорее всего никогда не будет использоваться по причинам проблем с дрейфом термоЭДС контактов)  

Блок управления.

Я решил не заморачиваться, и не делать устройству дисплей и кнопки для управления. Я большинство экспериментов провожу автоматизировано с применением ПК, по этому, устройство управляется по эмулированному через USB COM-порту, вот примерно так:

Для изоляции от потенциала ПК и от инжектируемых им помех, был применен изолятор ADUM4160. Я раньше их не применял, но на удивление, он оказался максимально простым в применении.

Устаревший МК STMicroelectronics STM32L152CBU6 применен только по одной единственной причине, у меня их в запаснике чуть больше половины паллеты(полная 260 шт). laugh А нынче с МК проблемы в плане “купить”.

Блок питания.

На удивление, этот блок оказался самым сложным! laugh

ЦАП требует для своей работы как минимум три разных питания(в идеале 4) это +15В, -15В, +5В. Еще требуется отдельно питание логической части, которое сегодня модно делать на 3.3В.

Получаем маленький зоопарк из линейных стабилизаторов, которые было решено запитать от тороидального трансформатора. Я никогда раньше не строил линейные блоки питания от сети, по этому мне этот вопрос был “в новинку”. Но ведь если я не попробую, то как-же я научусь их строить? crazy

По началу все выглядело просто, берем трансформатор, пару диодных мостов, пару конденсаторов и делаем магию! Но дьявол всегда кроется в деталях! diablo

БЖТ(Большой Железный Трансформатор) достаточно маленьких размеров найти не удалось, по этому я пошел на наш местный Тульский завод трансформаторов, и заказал маленькое ведерко тороидов с минимальной выпускаемой заводом мощностью 0.01кВА.

Они были изготовлены по моим персональным требованиям с двумя обмотками, одна на 6В, а вторая на 32В, с отводом от середины. Размеры их 10ВА тороидов не плохо вписывались в мой небольшой корпус.

Они на удивление получились очень дешевы, около 7.5$ за штучку!!! beach И это при вакуумной пропитке лаком, наборе разных дополнительных для этой модели обмоток и опции в виде набора крепежа. Трансы сделаны приятно и очень аккуратно, обмотаны спец. тканью, полностью пропитаны, и абсолютно не жужжат. Рекомендую! drinks

Устройство изначально планировалось упихать в небольшой корпус, по этому вопрос потребления стоял остро, его как и трансформатор пришлось педантично рассчитывать.

Первые попытки запуска блока питания я делал по даташиту на LT3085/LT3090, который рекомендует шунтировать задающие резисторы керамикой 100нФ. В результате, я получил полную временную анархию запуска линий питания:

Цифровое питание +3.3В, время запуска более 100мс.

Аналоговое питание +15В, время запуска более 0.5 секунд.

и тому подобное…

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

А цифровая линия питания, была настроена на максимально быстрый старт с минимальной фильтрующей емкостью C16 51пФ. Но в коде я добавил задержку 250мс между стартом МК и инициализацией периферии, чтобы та гарантированно успела выйти “на режим”. Суда по даташиту, эта емкость влияет на PSRR(коэффициент ослабления шумов питания), но не слишком сильно…

Так-же изначально в дизайне были заложены после диодных мостов конденсаторы 2200 мкФ и 6800 мкФ по линиям +-15В(+5В) и +-3.3В соответственно. Но как показала практика, они оказались чересчур большими для такого маленького трансформатора, из за чего страт цифровой части после подачи питания происходил немного ступенчато. Это мне тоже не понравилась, и емкость 6800 мкФ была уменьшена до 820 мкФ. Это исправило проблему.

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

Библия электронного некроманта, P.Horowitz W.Hill “Art of Electronics Third Edition”, Figure 9.49, говорит нам, что этот эффект решается добавлением емкостей параллельно обмоткам. Такой-же подход применен и в моем любимом Agilent 34410A.

Мне это пришлось решать кустарно, установив прямо на выводы трансформатора пленку 220 нФ. После добавления которой, звон с частотой кратной частоте линии питания исчез.

Другой нехороший эффект меня ожидал в первичной обмотке… В момент включения, видимо из за высоких токов намагничивания магнитопровода, трансформатор излучал сильные ЭМИ импульсы в окружающее его пространство. А мы помним, что окружает его довольно точная электроника. Этот эффект в значительной степени я смог ослабить установкой X2 пленки  220 нФ параллельно первичной обмотке трансформатора. А так-же просто для подстраховки добавил металл-оксидный варистор.

Эти модификации не отражены на схеме.

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

Короче получилась вот такая поделка:

(для сравнения габарита Segger J-Link EDU)

Тесты.

Для проверки скорости нарастания dU/dt, будем использовать тяжелую артиллерию инженерного класса. Для приготовления этого блюда нам потребуется:

Один из лучших на планете, Высокопроизводительный мультиметр Agilent 34410A, одна штука.

Всякие новомодные пафосные игрушки, на подобии новых Keithley DMM6500, с задачей не справятся, у них хромает real-time. В той тяжелой метрологической лиге, для которой я делал ГЛИН, они не играют.

Приемник сигналов точного времени Hewlett Packard/Symmetricom Z3805A с антенкой Symmetricom 58532A GPS L1 Reference Antenna, по одной штуке каждого. Которые принимают сигналы атомных часов системы NavStar(GPS), синхронизированных по национальным эталонам времени США NIST-F1 и NIST-F2, расположенными в Боулдере, штат Колорадо.

Все это соединяем вместе, подавая сигнал точного времени 1PPS от Z3805A на триггерный вход 34410A. Проверяем спутниковую обстановку…

Она удовлетворительная для проведения эксперимента, значит можно начинать!

Задаем скорость -1мВ/c и измеряем полный цикл от +10В до -10В. Если пытаться строить классический график, то ничего кроме абсолютно ровной линии рассмотреть не удастся.

Если рассчитать разницу между двумя соседними точками, а мы знаем, что между ними ровно 1 секунда, то легко вычислить скорость. Но разрешения мультиметра 6½ разряда не достаточно, чтобы точно вычислить скорость между двумя соседними отстсчетами, 1 мВ разницы, это слишком маленькое значение для 6½ разряда в диапазоне 10В. Тогда, делаем хитрее!!!

Рассчитаем разницу между двумя соседними отсчетами, между отсчетами на расстоянии ровно 20 секунд, и на расстоянии 100 секунд. Окно 100 секунд дает уже значительное для этого мультиметра приращение 100 мВ.

(огромный и очень детальный график)

Полученный график скорости четко показывает, что ошибка скорости по видимому около 100 нВ/c(0.01%). Но с оговоркой, если скорость считать на расстоянии 100 секунд. Выбор окна 100 секунд так-же продиктован еще и тем, что в электрометре В7-45 на малых токах применяется окно плавающего среднего продолжительностью 100 секунд.

Так-же если по скорости между двумя соседними точками построить график девиации Аллана, то можно оценочно прикинуть стабильность и понять что оценка 0.01% вообщем-то не врет и даже стремится к 0.001%. 

Для скорости 10мВ/c точность установки скорости 0.01% сохраняется.

Так-же были проверены и другие скорости… результаты схожие, а именно превосходные!!! но об этом уже наверно в следующий раз…..

Заключение.

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