Как измерить тактовую частоту PIC?

Я использую микроконтроллер PIC (PIC16F1846) с внешним кристаллом 8 МГц, подключенным к внешним тактовым контактам (RA6 и RA7).

Почему, когда я использую пробник осциллографа для измерения тактовой частоты, моя базовая программа мигания светодиодов перестает работать (состояние свечения зависает), и мне приходится выполнять сброс?

Подключаете ли вы осциллограф к RA6 и RA7 одновременно? Я имею в виду, наконечник зонда к одному и заземление к другому? Используете ли вы подходящий датчик 1:10?

Ответы (3)

Попробуйте пробник 10x (не 1x) на контакте OSC2. Вы должны видеть часы. Частота будет незначительно изменена при загрузке зонда.

Я не думаю, что ваш номер детали правильный, но большинство чипов 16F похожи.

Редактировать: загрузка зонда осциллографа объясняется в этой статье Tektronix.

Способность вытягивания кристаллов объясняется в этих указаниях по применению. Обратите внимание, что типичная нагрузка от датчика с 10-кратным увеличением изменит частоту примерно на 100 частей на миллион (0,01%), что неважно во многих приложениях, кроме хронометража.

Вы правы, на самом деле это PIC16F1847. Использование пробника в х10 сработало!
Не могли бы вы объяснить идею о том, что нагрузка пробника влияет на частоту?
См. правку выше
ссылка на пдф у меня не работает.
@DanNeely Теперь должно работать. Tek добавил некоторые вещи к URL-адресу, которые, возможно, были предназначены для того, чтобы препятствовать диплинкингу.
@hobbs Мой Tek TPS2024 с датчиком P2220 имеет полосу пропускания 200 МГц при 10x и только 6 МГц BW при 1x. Единственная причина использовать 1x — это сигналы низкого уровня.

Это отдельная, но родственная тема.

Измерение частоты на выходе генератора говорит вам о частоте генератора, а не обязательно о тактовой частоте инструкции. На старых PIC это составляло всего 1/4 частоты генератора. Однако многие более новые PIC имеют более сложные цепочки синхронизации, с PLL и различными дополнительными делителями.

Это хорошая идея, как можно раньше убедиться, что часы обучения действительно такие, как вы думаете. Я обычно делаю это, когда мой основной цикл изначально просто переключает булавку. Сначала настройте банк для соответствующего регистра LAT, затем BSF, BCF и BRA, чтобы сделать это снова. Это должно занять 4 цикла команд. Вы смотрите на это на осциллографе и проверяете, что частота выводов действительно составляет 1/4 частоты инструкций, которую вы ожидали.

Хотя это не дает прямого ответа на мой вопрос, это очень хороший момент, который, вероятно, избавил меня от многих проблем в будущем. Спасибо!

Емкость зонда может привести к сбою генерации часов. Самый простой способ предотвратить это — подключить резистор к центральному контакту щупа и выполнить измерение, поместив другую ножку резистора на кристалл. 100 Ом будет нормально.