Немного в связи с темой про конвейерный АЦП и dsPIC33CH. Пока
занимался АЦП, потребовалось сгенерировать накачку передатчика
изделия и накачку АЦП с помощью HR PWM. И тут я столкнулся со
странным... Микрочип.ком мой вопрос проигнорил, поэтому обращаюсь к
сообществу сахары. Итак, диспозиция. 1. Есть событие генерируемое обычным Output Compare из временной базы слейв ядра (100 МГц) - основной PLL. Это событие с частотой 2 кГц (500 мкс) запускает один из генераторов модуля HR PWM, выдающий пуш-пульный сигнал из 64 импульсов частотой 8,5 МГц. Через 1,5 мкс после окончания этого сигнала другим генератором модуля генерируется 256 импульсов с учетверенной частотой (34 МГц) для накачки АЦП. При этом HR PWM работает от совершенно другой временной базы - Aux PLL 500 МГц.
Основная цель при генерации этих двух сигналов состоит в том, что джиттер всего этого процесса относительно запускающего события должен быть минимальным, а пара генерируемых сигналов максимально когерентна.
2. Провозившись с синхронизацией генераторов модуля и не получив искомого результата (триггерный запуск работает отлично, а синхронизация автоколебательного режима - никак), я был вынужден в прерывании от стартового события запустить первый генератор софтверно (есть там бит ручного старта). И тут произошел фокус. Джиттер между запуском и генерируемым сигналом стал равен НУЛЮ. Настолько нулю, насколько вообще возможно было наблюдать на 100 МГц Тектрониксе в разверткой 2,5 нс/дел.
3. Отсюда вопрос. Как все это понимать? С какого перепуга запуск из другой временной базы стал когерентен генерируемому сигналу?
ЗЫ. Такая же байда произошла и со вторым сигналом...