Программируемый генератор
Программируемый генератор
Микросхема содержит два независимых программируемых генератора — они формируют опорный (возбуждающий) сигнал, который после внешнего усиления подаётся на первичную обмотку датчика (СКВТ, сельсин, ЛРДТ). Сигналы выдаются на выводы EXO1/EXO2.
Питание выходного буфера каждого генератора подается с отдельных выводов — VDDEXO1/VDDEXO2 (плюс) и GNDEXO1/GNDEXO2 (общий). Это питание не связано с VDDD/VDDA и выбирается под конкретную схему усилителя возбуждения — в диапазоне от 3,3 В до 5,0 В.
Режимы работы
Режим задаётся полем EXO_mode:
| EXO_mode | Режим | Что выдаётся на EXO1/EXO2 | Чем настраивается |
|---|---|---|---|
00 | Выключено | 0 В (или VDDEXO1 при EXO_inv=1) | — |
01 | Меандр | импульсный сигнал | частота и скважность |
10 | Синусоида | синусоидальный сигнал (формируется ЦАП) | частота и амплитуда |
11 | Постоянный уровень | постоянное напряжение | уровень |
Поле Amp_code в разных режимах отвечает за разное: в режиме синусоиды — это амплитуда, в режиме меандра — делитель частоты, в режиме постоянного уровня — само выходное напряжение.
Чтобы генератор заработал, нужно выбрать режим в EXO_mode и установить бит включения EXO1_en/EXO2_en регистра Mode_config.
Синусоидальный сигнал (EXO_mode = 10)
На рисунке ниже — структурная схема генератора.

У синусоиды частота и амплитуда настраиваются отдельно: частота — регистром EXInc, амплитуда — полем Amp_code.
Частота
В цифровом формирователе ведётся 20-битный счётчик фазы: на каждом такте Fclk он увеличивается на значение регистра EXInc. Когда счётчик переполняется (через шагов), начинается новый период синусоиды. Чем больше EXInc, тем быстрее «бежит» фаза и тем выше частота:
Для нужной частоты возбуждения значение регистра вычисляется как
После сброса счётчик фазы инициализируется значением 1 048 000 ().
Амплитуда
Амплитуда задаётся 8-битным полем Amp_code (0…255): чем больше значение, тем больше размах сигнала. Внутри микросхемы каждый отсчёт синуса из таблицы (8-битное знаковое значение) умножается на коэффициент ; произведение масштабируется сдвигом на 9 разрядов (то есть делится на 512), а для компенсации нелинейности выходного буфера из результата вычитается поправка (деление на 4 — целочисленное, младшие 2 бита отбрасываются). Итоговое 8-битное значение поступает на ЦАП; напряжение на выводе EXO:
где В — опорное напряжение ЦАП, множитель — коэффициент усиления выходного буфера.
Формулу (6) считать вручную не нужно: амплитуду подбирают по осциллографу, постепенно увеличивая Amp_code до нужного размаха сигнала. Главное ограничение — пиковое значение сигнала должно быть ниже питания выходного буфера VDDEXO1/VDDEXO2 минимум на 0,4 В. Если превысить — буфер уйдёт в насыщение и появятся искажения.
Опорное напряжение ЦАП (REFDAC)
Опорное напряжение для ЦАП берётся либо от внутреннего ИОН (бит VREF_DAC_en=1), либо подаётся извне на вывод REFDAC в диапазоне 2,5…3,3 В. В обоих случаях вывод REFDAC шунтируется конденсатором 0,1 мкФ.
Меандр (EXO_mode = 01)
В режиме меандра работает 8-битный счётчик, тактируемый системной частотой FINT.
Частота импульсов определяется значением Amp_code — это делитель частоты (счётчик считает от 0 до Amp_code включительно, то есть период составляет Amp_code + 1 тактов FINT):
Скважность (соотношение высокого/низкого уровня) задаётся двумя пороговыми значениями регистра EXInc: при достижении счётчиком значения EXInc[15:8] выход переключается на уровень VDDEXO1/VDDEXO2, при достижении EXInc[7:0] — на GNDEXO1/GNDEXO2. Это два независимых порога компаратора, задающих моменты переключения.
Дополнительные настройки регистра C1ExoStngs/C2ExoStngs:
- EXO_inv — инвертирует выход (действует только в режимах «выключено»
00и «меандр»01; в режимах синуса и постоянного уровня игнорируется); - PWR_X2 — увеличивает выходной ток коммутации в 2 раза (для низкоомной нагрузки);
- EXO_sync (в AFE_config) — синхронизирует счётчики двух генераторов.
Постоянный уровень (EXO_mode = 11)
В этом режиме на выходе формируется постоянное напряжение, пропорциональное Amp_code (0…255):
Режим удобен для настройки и калибровки: можно подать известное постоянное напряжение и проверить коэффициент усиления внешнего тракта. Как и для синусоиды, нужно следить, чтобы расчётное Vexo не превышало питание VDDEXO1/VDDEXO2.
Краткая шпаргалка по настройке
| Что настроить | Как | Где |
|---|---|---|
| Включить генератор 1/2 | бит EXO1_en/EXO2_en = 1 | Mode_config |
| Режим (выкл/меандр/синус/постоянный) | EXO_mode = 00/01/10/11 | ExoStngs |
| Частота синусоиды | EXInc (формула 5) | EXInc |
| Амплитуда синусоиды | Amp_code (формула 6, подбор по осциллографу) | ExoStngs |
| Частота меандра | Amp_code (формула 7) | ExoStngs |
| Скважность меандра | EXInc[15:8] / EXInc[7:0] | EXInc |
| Постоянный уровень | Amp_code (формула 8) | ExoStngs |
| Питание буфера | 3,3…5,0 В на VDDEXO | VDDEXO1/VDDEXO2 |
| Опора ЦАП | внутр. ИОН (VREF_DAC_en=1) либо внешний 2,5…3,3 В | REFDAC |