January 26th, 2021

QuatCore

Макет видеоизмерителя: регулировка яркости подсветки

В четверг меня очень деморализовал тот факт, что при самую малость повёрнутой мишени у меня даже "на симуляции" на компьютере начали сливаться две точки:


И оно даже ожидаемо в какой-то мере, пятна у меня вот ни разу не круглые! Проблема связана с нашей тактовой частотой 25 МГц. В данной ПЛИС, 5576ХС4Т, нет ни одного ФАПЧ (PLL), какую частоту извне подали (на два Dedicated, то бишь "специально обученных" вывода) - такую и используй! А ethernet-контроллер, который мне пока служит в качестве генератора тактовой частоты, имеет только фиксированные значения, после 25 МГц идёт сразу 33,33 МГц - на такой частоте QuatCore пока не потянет... К другому выводу подключён генератор тактовой частоты на 80 МГц - это совсем дохрена.

А на 25 МГц выходит, что пиксели берутся "прямоугольные" - по-хорошему должно быть 1280 пикселей на строке, проходящие за 43 мкс, т.е каждый пиксель за 33,6 нс, или 29,8 МГц. А у нас вместо этого 25 МГц, то есть картинка ужимается по горизонтали на 19%. (поставь мы 33,33 МГц - было бы растяжение на 12% - получше, но всё равно). Вот как выглядит наша картинка, если растянуть её как надо:


Эти "прямоугольные пиксели" несколько нарушают работу нашего алгоритма, ищущего на самом деле КВАДРАТЫ. Можно было бы его немножко подрихтовать, но не очень хочется - это же у нас лишь отладка, потом перейдём на нормальную матрицу со вполне себе квадратными пикселями! Хотя, если подумать, изменения не столь страшны, нужно разность по координате Y умножить на 1,19, прежде чем все действия предпринимать - и тогда алгоритм переквалифицируется на прямоугольники с соотношением 5:4

Поэтому пока хотелось ещё один простой способ опробовать, благо он точно в дальнейшем понадобится - НАСТРОИТЬ ЯРКОСТЬ ПОДСВЕТКИ, чтобы чересчур эти пятна не пересвечивались, тогда их диаметр должен сколько-нибудь уменьшиться, и отличить их друг от друга будет проще!

Думаю, регулировать яркость с шагом "в два раза" вполне подойдёт, и попавшая под хвост шлея требует и здесь реализовать модулёк на верилоге "с нуля", а не путём соединения стандартных компонентов (реверсивный счётчик + дешифратор + генератор ШИМ)...

Collapse )

Сейчас чуть-чуть поковыряем - и попробуем запустить...
QuatCore

Управление осветителем: перемудрил похоже

Попробовал прошить проект, имеющий "заваленные тайминги", 24,88 МГц вместо 25 МГц, в конце концов такое произойдёт при пониженном до нижней грани напряжении и максимальной температуре, так что можно пока и "рискнуть" :)

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

И первое же наблюдение: при 1/256 от максимальной яркости ВООБЩЕ ПОДСВЕТКА НЕ ВИДНА, ни одна!

Ещё и управление с компьютера идёт "рвано", видимо получая в ответ целую мегабайтную картинку, драйвер "виртуального ком-порта" немножечко впадает в ступор, так что надо и программу переиначить, чтобы при подаче этих символов, "+" или "-", он не торопился картинку передавать, потерпим!

Collapse )

Кое-чего начинает получаться, но на малых значениях яркости всё одинаково, хоть 1/256, хоть 1/8:


Начинаем видеть, как "разгораются" отражатели, на 1/4 яркости:

Именно сейчас видна сотовая структура отражателя, хотя по-моему она скорее "декоративная".

Теперь 1/2 яркости:


И полная яркость:


Что-то работает. Сейчас ещё осциллограммы возьму и громко подумаю...