MIC_CLK J11, MIC_DAT J10, MIC_SEL K7 -- все в банке 7. DATA получила
подтяжку вниз: микрофон отпускает шину на половину периода, а без микрофона
вход давал бы неопределённость вместо однозначного признака обрыва.
Выводы clk и LED на двойных функциях, без разрешения CPU/SSPI/READY как
обычных размещение падает. Проверено сквозной сборкой: битстрим собирается,
Fmax 164 МГц против требуемых 50, нарушений нет.
Разбор кадров и запись .raw/.bin не трогали. Заменена только шкала: у
микрофона нет опорного напряжения, уровни считаются от полной шкалы.
Бит1 STATUS теперь показывается как насыщение дециматора.
Модель -- сигма-дельта первого порядка с высокоимпедансным состоянием вне
рабочей фазы, так что выборка не в той фазе видна сразу. Три режима дают
точно вычислимый ответ: постоянные 1 и 0 -- плюс/минус полная шкала, а
чередование 1010 -- ровно ноль, эта частота попадает в нуль АЧХ CIC.
Четвёртый режим синусный, проверяется размах.
Буфер ФНЧ получил начальное значение: иначе первые свёртки тянули
неопределённость через весь тракт.
Микрофон тактируется на 3.125 МГц (50/16, Normal mode). CIC снимает поток
до 62.5 кГц без умножителей, дальше симметричный ФНЧ на 221 отвод даёт
12 500 Гц: он же давит полосы, сворачивающиеся при децимации на 5, и
выравнивает спад CIC.
Коэффициенты считает tools/gen_fir_coefs.py и кладёт в fir_coefs_pkg.vhd.
Масштаб подобран так, что постоянная единица на выводе данных микрофона
даёт полную шкалу 24 бит, поэтому шкала выхода -- dBFS.
Достигнуто: неравномерность полосы 0..5 кГц 0.032 дБ, подавление от
6250 Гц 72 дБ, подавление сворачиваемых полос 77 дБ.
FIFO, сборка кадра с CRC-16, передатчик UART и индикация переносятся
из имеющегося наработанного тракта без изменения логики. В STATUS бит1
переопределён под насыщение дециматора: DRDY здесь нет.