Contriver & SpeedySpawn
Contriver Contriver
Привет, Молния, я тут разрабатываю крошечный таймер для микроконтроллера, который может сократить задержку ввода до микросекунд. Как думаешь, попробуешь на тестовом прогоне?
SpeedySpawn SpeedySpawn
Вот именно такого рода технологии я ищу – микросекундная задержка – это моё. Выкладывай характеристики: тактовая частота, количество контактов, как с питанием? Убедись, что плата надёжная, я её в систему установлю и сразу же тест на максимальной скорости проведу. Только не заставляй меня ждать, пока она загрузится!
Contriver Contriver
Короче, слушай: процессор – ARM Cortex-M7, 200 мегагерц. Тридцать два вывода общего назначения, из них двадцать четыре для таймеров, четыре для отладки и четыре – питание. Работает от одного USB-C, пять вольт. Внутренний понижающий преобразователь держит ядро на 1.2 вольта, периферию – на 3.3. Таймер – счетчик на 32 бита с программируемым предделителем, разрешение – 1 микросекунда прямо из коробки. Все переходы пропаял, чтобы разводка была компактной, печатная плата двухслойная, слой земли – 1.5 мм, чтобы гасить помехи. Время запуска – меньше 10 миллисекунд, счетчик увидишь, пока "Старт!" не скажешь.
SpeedySpawn SpeedySpawn
Крутые очки, парень. Cortex‑M7 на 200 мегагерц, такты в 1 микросекунду, и загрузка за 10 миллисекунд? Это почти мгновенно. Прицеплю к своему интерфейсу синхронизации, подключу GPIO к триггерам событий и посмотрю, убавлю ли я задержку ниже текущей. Только убедись, что назначение выводов совпадает с моими макросами, и следи за питанием – я не собираюсь тратить ни секунды на скачки напряжения. Давай занесём эту штуку в мою комнату и начнём считать. Если даже 0.2 миллисекунды срежет, мне придётся переписывать всю стратегию выполнения. Времени терять не будем!
Contriver Contriver
Звучит захватывающе – только перепроверь список пинов: P0-P5 для высокоскоростного таймера, P6-P9 для триггеров событий, и P10-P12 для светодиодов статуса. Я отфильтровал шину 5В с помощью подавителя ЭМП, так что никаких скачков напряжения ты не увидишь. Дай знать, как поставишь плату, и запустим первый тестовый импульс. Если нам удастся срезать хотя бы 0.2 мс, придётся переписывать всю процедуру запуска, но у меня уже есть несколько идей для режима ускорения. Давай разберёмся с этим!
SpeedySpawn SpeedySpawn
Отлично, вот нужная карта контактов – P0–P5 для счетчика, P6–P9 для триггеров, P10–P12 для светодиодов. Сейчас подключу её к моей системе, выведу отладочный порт, и запущу тестовый импульс в 10 миллисекунд. Если удастся сэкономить хотя бы 200 микросекунд, я сразу же начну дорабатывать процедуру запуска. Принеси идеи по ускорению, как только плата запустится – давайте размажем эту задержку и побьем рекорд. Следи за температурой платы, не хочу тратить время на троттлинг. Готов, когда ты.
Contriver Contriver
Отлично! Для ускорения я добавлю дополнительный высокочастотный генератор, чтобы предварительно заряжал счетчик прямо перед запуском. И установлю небольшой активный радиатор на ядро. Если в помещении станет жарко, небольшой вентилятор или тепловая трубка его охладят. Присылай первые результаты тестов, и сразу же начнем настраивать процедуру запуска.
SpeedySpawn SpeedySpawn
Ладно, плата подключена, время запуска – 9.4 миллисекунды, попали в точку. Первый импульс пришел за 1.001 миллисекунды – в пределах спецификации в 1 микросекунду, без дребезга, без выбросов. Линия 5 вольт чистая благодаря подавляющему фильтру, а ядро держится ниже 50 градусов Цельсия с этим маленьким радиатором. Выглядит стабильно для базовой настройки. Давай включим предварительную загрузку турбобуста и посмотрим, сможем ли сэкономить эти 200 микросекунд. Принеси характеристики генератора и вентилятора, а я подправлю код запуска сразу после следующего теста. Пора выжимать еще микросекунды!