Commit Graph
3 Commits
Author SHA1 Message Date
nikit3s 668c0564e9 Порядок CIC 3 вместо 4: аккумуляторы шире 18 бит не работают в кристалле
Тракт молча отдавал нули: CIC с 26-битными аккумуляторами в железе не считает,
хотя синтез, трассировка, тайминг и симуляция чистые. Порог найден перебором на
плате с приёмом по UART: 26, 24 и 20 бит мертвы, 18, 16 и 10 работают.

Порядок 3 требует ровно 18 бит вместо 24 и попадает в рабочую область.
Характеристики от этого стали лучше: подавление в задерживании 76 дБ вместо 72,
сворачиваемых полос 92 дБ вместо 77, полоса та же 0.032 дБ. Коэффициенты ФНЧ
пересчитаны под sinc^3, сдвиг выхода уменьшен до 13 -- усиление CIC теперь
50^3, и коэффициенты по-прежнему укладываются в 18 бит.

Сброс по включению убран: он тоже убивает тракт, проверено прошивкой в обе
стороны. Маяк светодиода вынесен в условную генерацию, чтобы его широкий
счётчик не собирался в рабочем режиме.

Проверено на плате: 1481 кадр за 6 с, 74050 отсчётов, CRC без ошибок,
STATUS чистый, на входе живой звук.
2026-08-18 12:06:43 +03:00
nikit3s c1ac8d59ca Приёмные скрипты: шкала dBFS вместо вольт
Разбор кадров и запись .raw/.bin не трогали. Заменена только шкала: у
микрофона нет опорного напряжения, уровни считаются от полной шкалы.
Бит1 STATUS теперь показывается как насыщение дециматора.
2026-08-14 16:10:57 +03:00
nikit3s 2af3a91ec9 Приём PDM и дециматор: CIC sinc^4 /50 плюс ФНЧ /5
Микрофон тактируется на 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 дБ.
2026-08-14 16:02:40 +03:00