Лабораторный практикум: Rigol DHO804 в модуле
Rigol DHO804 в модуле: пять методик
DHO804 (4 канала, 12 бит, 70 МГц) закрывает все измерения модуля и заметно усиливает его: 12-битный АЦП рисует аудио-сигналы без «лесенки», 4 канала позволяют смотреть вход, выход и GPIO-профиль одновременно, а аппаратное декодирование I2C превращает отладку кодека из гадания в чтение. Прибор добавлен в паспорт модуля (раздел «Оборудование»).
Методика 1. АЧХ фронтенда по точкам (занятие 10)
Генератор: в DHO804 нет встроенного AWG, и это учебный плюс — генератор делаем сами из BlackPill: ШИМ 200 кГц → RC-фильтр (1 кОм + 100 нФ) → плавная регулировка частоты таблицей синуса в прошивке (готовый скетч в репозитории модуля). Альтернатива — звуковая карта ПК + REW.
Подключение
CH1 — сигнал генератора через эквивалент датчика 470 пФ (иначе меряем не то!), CH2 — выход буфера. Оба щупа ×10.
Измерение
Частоты: 10, 20, 33, 50, 65, 100, 200, 500, 1к, 5к, 10 кГц. На каждой: Measure → Vpp(CH1), Vpp(CH2); усиление в дБ = 20·log10(V2/V1). 12 бит прибора позволяют честно мерить и −30 дБ точки.
Сведение
Точки — на график поверх симуляции sim_bode.png. Совпадение ±20% = рубеж занятия 10 закрыт. Расхождение больше — ищем: ёмкость макетки, утечка флюса, щуп ×1 вместо ×10 (классика!).
Методика 2. Защита входа: одиночный пик (занятие 11)
Одиночное событие — стихия осциллографа, а не мультиметра.
Настройка триггера
CH1 на узел до R1, CH2 — на узел входа ОУ. Trigger: Edge, CH1, Rising, уровень ~8 В, Mode: Single.
Событие
Резкий щелчок по датчику (имитация пиццикато-ff). Прибор ловит один кадр.
Анализ
Курсорами: пик на CH1 (десятки вольт — записать!), тот же момент на CH2 — полка ≈ Vdd + 0,3 В. Скриншот (Storage → Image) — прямой артефакт для защиты проекта.
Методика 3. Сквозная латентность тракта (занятия 19, 24, 25, 28)
Подключение
CH1 — выход аналогового фронтенда (вход в кодек), CH2 — аналоговый выход кодека. Trigger Single по CH1.
Событие и измерение
Щелчок по датчику; курсоры по фронтам CH1→CH2: Δt = сквозная латентность. Повторить 5 раз, записать среднее и разброс (разброс до одного блока — норма: событие попадает в случайную фазу буфера, объяснить ученику почему).
Разложение бюджета (сильное упражнение)
CH3 — GPIO «начало обработки блока», CH4 — GPIO «конец». Теперь на одном экране видны все слагаемые: буферная задержка, время DSP, выходной буфер. Сверить с таблицей бюджета занятия 15 — числа должны сойтись, и когда они сходятся, у ученика случается «щелчок понимания» всей архитектуры.
Методика 4. GPIO-профилирование DMA и DSP (занятия 18, 21, 24, 25)
Принцип: вместо printf (ломает тайминг) — тумблер ножкой: GPIO_SET на входе в обработку, GPIO_RESET на выходе.
- Загрузка ЦП = скважность импульса: ширина/период. Measure → +Duty прямо в процентах — живой «спидометр» DSP; ученик видит, как включение FIR-512 двигает полку.
- Дребезг длительности = джиттер обработки: Persistence (послесвечение) ∞ — «размазанность» заднего фронта показывает нестабильность времени блока (кэш-промахи M7!). На занятии 21 это делает невидимое видимым.
- Диагностика «заикания» (кейс занятия 18): CH3 — импульс обработки, CH4 — флаг Half/Cplt; наезд импульса обработки на следующий флаг виден глазами — гипотеза кейса доказывается прибором, а не убеждением.
Методика 5. Декодирование I2C и контроль SAI (занятия 16–17)
I2C-декодер
CH1 — SDA, CH2 — SCL. Decode → I2C, назначить каналы, порог 1,65 В. На экране — адрес, ACK/NACK, байты. Транзакция инициализации ES8311 читается как текст: ученик сверяет её с таблицей регистров из даташита построчно. «Плата молчит» диагностируется за минуту: нет ACK → адрес/подтяжки/питание.
Такты SAI
CH1 — MCLK, CH2 — BCLK, CH3 — LRCK, CH4 — SD. Measure → Freq по каждому: MCLK = 12,288 МГц, BCLK = 3,072 МГц, LRCK = 48,000 кГц. Отклонение LRCK от 48 000 Гц — прямое измерение точности PLL (методика занятия 17 «джиттер и расстройка»).
Спектр гула (бонус, занятие 13)
Math → FFT по CH2 (выход фронтенда), окно Hann, до 1 кГц: палки 50/100/150 Гц до и после экранировки — дельта в дБ снимается прямо с прибора, REW становится контрольным, а не единственным способом.