1.3Kпросмотров
25 февраля 2026 г.
Score: 1.4K
Недавно нам нужно было протестировать два небольших дисплея и выбрать наиболее подходящий. Дисплеи простые: маленький размер, SPI интерфейс, подсветка. Мы сделали специальную плату для их подключения, проверили первого кандидата, отладили софт - всё шло достаточно хорошо.
Но вот при подключении второго начались приключения.
Приключения, как на первом видео: делаешь обновление кадра, а на экране происходит какая-то абракадабра. Разумеется, первым подозрение пало на софт. Но тот же самый софт с первым дисплеем работал как задумано.
После этого подозрение пало на длинные провода. Но даже на низкой частоте передачи ничего не менялось. После нескольких экспериментов мы заметили, что если подсветка выключена, то обновления проходят нормально. Разглядеть это было не просто, но с помощью фонарика на телефоне - удалось. И как только мы запускаем драйвер подсветки - обновление ломается. Драйвер подсветки представлял собой импульсный buck-boost конвертер, поэтому это выглядело как моя первая реальная проблема с ЭМИ. Я пытался что-то разглядеть осциллографом на линиях передачи, уменьшить длину проводов, поставить экран - но ничего особо не менялось. Помощь пришла от терминирующих резисторов.
По старой привычке, на первых платах я почти на все сигналы ставлю последовательный 0 Ом.
Для интерфейсов это дает возможность добавить терминацию, для обычных сигналов - возможность тыкнуться осциллографом или что-то перепаять. Обычно терминация нужна для согласования сигнала и уменьшения его отражений, но, похоже, что в данном случае, последовательные резисторы в SPI и управляющих сигналах просто гасили наводящиеся помехи. 33 Ома - и результат как на втором видео. Всё работает четко и даже на максимальной скорости. А у вас были баги, вызванные ЭМИ?