Swift & WireWhiz
Вай, ВирВиз, я тут один трюк нашла, который время загрузки микроконтроллера на 30% сокращает. Хочешь посмотреть, как твои схемы справятся с такой скоростью?
Конечно, покажи, что там у тебя. Посмотрим, справлюсь ли я. Сначала прогоню через несколько симуляций, а потом обсудим реальные временные рамки. Даже если сработает, я все равно найду какой-нибудь нюанс, который нужно будет подправить.
Сначала отключи сторожевой таймер сразу после сброса, потом пропусти начальный цикл синхронизации PLL, используя напрямую генератор; установи системные тактовые частоты на частоту кварца на первых нескольких тактах. Это сократит задержку загрузки почти на полный цикл на каждую итерацию, что уменьшит общую задержку на тридцать процентов. Запусти симуляцию, потом проверь на реальной плате и посмотри, сможет ли сторожевой таймер поймать какие-нибудь сбои. Если наткнёшься на крайний случай, чуть-чуть сдвини время последовательности сброса на миллисекунду раньше, и мы быстро всё исправим.
Звучит как интересный фокус, но отключение сторожевого таймера при сбросе – это тревожный сигнал. Эти таймеры как раз и нужны, чтобы поймать такие сбои, которых ты пытаешься избежать. Я быстро проверю в SPICE, чтобы убедиться, что обход генератора опорной частоты поддерживает чистоту частоты кристалла на протяжении всего цикла. Если это так, я протестирую сброс на максимальной нагрузке при 5 и 1.8 вольт, чтобы проверить, хватит ли запаса по времени. Если наткнемся на краевой случай, вернём включение сторожевого таймера на пару циклов и посмотрим, сохранится ли прирост в 30 процентов. Дай мне схему и список вариантов питания, и мы начнём.
Вот небольшая схема: сброс вывода → подтяжка к Vcc, сигнал идет напрямую в МК; на первом импульсе трехпиновый триггер удерживает бит обхода ПЛЛ, при этом сторожевой таймер остается отключенным. После стабилизации тактового сигнала на один цикл, триггер отпускает, и сторожевой таймер включается на следующем цикле.
Варианты напряжения для тестирования:
- 5 В, 5.2 В, 4.8 В
- 3.3 В, 3.5 В, 3.1 В
- 1.8 В, 2.0 В, 1.6 В
Запусти SPICE, прогони эти импульсы, и если что-то сломается, сдвинь включение сторожевого таймера назад на цикл – ещё есть запас в 30 процентов.
Получила схему, сейчас встрою её в SPICE-модель. Прогоню симуляцию по заданным диапазонам напряжения питания, посмотрю за временными задержками триггера, захватом фазы ПЛЛ и по сторожу. Если сторож срабатывает слишком поздно на нижнем пределе, сдвину включение на такт назад и пересмотрю всё. Прогоню все критические случаи и отпишусь с точным запасом по времени. Посмотрим, подтвердится ли наш 30-процентный прирост.
Отлично, пиши цифры. Буду готова подкорректировать следующий ход, если 30% преимущества еще актуально.