Решил проверить, а какой же ток идёт через светодиоды на каждой из этих настроек, и пришёл к несколько неожиданным результатам.
Также, через другой вывод ПЛИС тот же сигнал управлял яркостью подсветки ЖК-экранчика, и вот он регулировался гораздо лучше. Вот токи через одного и через другой:

Как видно, ток подсветки ЖК-экранчика, за исключением странного "залипания" на 1/2 яркости, ведёт себя очень прилично, особенно на графике в логарифмическом масштабе:

А вот с током ИК-подсветки полный песец: от 1 до 1/2 падение на самом деле лишь на 20% (для экспозиции это вообще ни о чём!), но вот потом вместо падения в 2 раза имеем падение в 5 раз, а на следующем шаге - и вовсе в 100 раз!!! Ну и потом вообще падение напряжения на токоизмерительном резисторе 3,3 ома я померять не смог, 00,00 мВ - и всё тут!
Впрочем, если взглянуть на схемы, такое поведение объясняется. Только вот почему-то ЗАДНИМ ЧИСЛОМ :)
Вот схема включения подсветки ЖК-экранчика (отсюда):

Резистор между ножкой ПЛИС и транзистором: 1 кОм, транзистор КТ608Б.
Причём изначально я рассчитывал, что транзистор будет коммутировать 120 мА подсветки, то есть 2 ветви светодиодов, соединённые параллельно, и включённые в 5 вольт. Но потом, когда всё это безобразие стало работать от 12 вольт, решил пересоединить их последовательно, чтобы у меня микросхемка 7805 не перегревалась по чём зря.
Как результат, если подать на ножку ПЛИС непрерывные лог. "1" (+3,3 вольта), транзистор оказывается в глубоком насыщении. И если подать меандр с заполнением 50% (симметричный) и частотой 12,5 МГц, транзистор всё ещё в насыщении, ёмкость у него офигительная в таком режиме (диффузионная ёмкость - не желающие рекомбинировать неосновные носители заряда в области базы), и меандр сглаживается практически целиком. Так что в итоге имеем просто половинный ток базы - а этого вполне достаточно, чтобы он оставался открытым и даже худо-бедно держал насыщение!
А вот при дальнейшем увеличении паузы между импульсами транзистор наконец выходит из насыщения - и начинает работать ОЧЕНЬ ШУСТРО, всё-таки он высокочастотный! Поэтому кривая отрабатывается на удивление точно!
Глянем, как оно выглядит на осциллографе, заполнение 1/16:

Да, наш ФИМ-сигнал на удивление спокойно проходит "насквозь" до диодов подсветки!
Зачем мы сюда поставили такой высокочастотный транзистор - да чисто "по приколу". Мне хотелось сюда отечественный, в металлическом или металлокерамическом корпусе, каковые в космосе разрешены, а значит, КТ315, КТ815 и пр. сразу отсекаются :) Это чуть ли не единственный из своих загашников, который я нашёл на ток 120 мА, сколько-нибудь приличных размеров. Понятно, эта конкретная штука в космос не полетит, а та, что полетит, не будет иметь ЖК-экранчика и всей обвязки к нему, ну вот захотелось.
А вот схема ИК-подсветки (отсюда):

Поскольку схема сделана китайцами, они поставили самый дешёвый транзистор, способный выполнить задачу (пропустить 200 мА и выделить хотя бы 0,6 Вт тепла), и похоже он далеко не такой высокочастотный, как КТ608.
Поэтому можно считать, что напряжение на базе "сглаживается" до постоянного уровня. Пока ножка ПЛИС выдаёт +3,3 вольта непрерывно, имеем явно избыточный ток, из-за чего открывается "токоограничивающий" транзистор и начинает всё лишнее стравливать. Делаем импульсы с заполнением 1/2 - этот транзистор закрывается, но ток становится лишь самую капельку меньше номинала.
А вот следующий скачок, до 1/4 заполнения, по сути даёт на базе напряжение 3,3 В / 4 = 0,825 вольта. Из них 0,6..0,7 падает на переходе база-эмиттер, и резистору 3,3 Ом в цепи эмиттера остаются жалкие остатки, поэтому ток коллектора резко падает.
А дальше, при переходе до 1/8 - всё ещё хуже! Теперь уже имеем 3,3 В / 8 = 0,41 вольт, и транзистор фактически закрывается.
На самом деле, и этот транзистор что-то из ВЧ сигнала всё-таки пропускает на выход (это ситуация с заполнением 1/4):

но это уже жалкие крохи, так что в целом наша теория верна.
Что происходит - вроде бы разобрались. Теперь понять - что делать?
Как ни странно, такое поведение вполне можно считать фичей, а не багом, ведь мы нахаляву получаем не только сглаживание ФИМ-сигнала (всё-таки как-то спокойнее, когда подсветка осуществляется постоянным током, точно не будет лишнего муара на картинке), но и РАСШИРЕНИЕ ДИНАМИЧЕСКОГО ДИАПАЗОНА! Мы-то думали, что если хотим регулировать яркость от максимальной до 1/256 от максимума, нам нужен 8-битный счётчик, а оказалось, что уже 3-битный счётчик (который сам по себе даёт от 1/8 до 1) способен обеспечить регулировку 1000:1, хотя вовсе не факт, что его доступные 8 градаций дадут нам ровно те яркости, что мы хотели на этом диапазоне, может захотеться ещё малость расширить, и всё-таки перейти на ШИМ. Но и вводить "специальную цепь" для полного отключения нам не нужно - выставь в ШИМ минимально возможную ширину - и это уже будет ПОЛНОСТЬЮ ОТКЛЮЧЁННАЯ ПОДСВЕТКА!
В принципе, такая схема будет вести себя вполне предсказуемо. Интересно, что в случае "медленного ШИМ", когда драйвер светодиодов спокойно успевает отреагировать на импульс, у нас с ростом температуры платы ток будет ПАДАТЬ (токоограничивающий транзистор начнёт открываться при меньшем токе и стравливать ток базы основного транзистора), а при высокочастотном ШИМ - РАСТИ, ведь токоограничивающий транзистор чисто для подстраховки, мы напрямую регулируем напряжение на базе основного транзистора, но по мере его нагрева падение "база-эмиттер" будет снижаться, поэтому всё большая часть будет приходиться на резистор, который и задаёт ток.
Можно поразмышлять, что правильно подобрав частоту модуляции, мы можем сделать эту схему практически независимой от температуры :) Не сказать, что здесь это шибко надо, мне вариация яркости плюс-минус 10% как слону дробина, но идея интересная, может когда-нибудь пригодится.
Какой сигнал лучше подавать от ПЛИС?