Выбор часов PIC18F67J90 [закрыто]

У меня есть два варианта выбора системных часов:

  1. ИНТОСК
  2. ФОСК

Я хочу использовать внутренние часы на частоте 8/16 МГц.

Какой из них выбрать и в чем разница между FOSC и INTOSC?

На стр. 35 таблицы данных описаны параметры генератора.
Это глупый [и ленивый] вопрос, поскольку на него прямо и ясно дан ответ в таблице данных.
@Olin Я согласен, но для новичка таблица данных микроконтроллера может быть пугающей ..
@m.Alin: Да, но тогда им следует спрашивать о конкретных вещах, которых они не понимают. Вопросы Gimme da anser , когда ответ есть в техническом описании, здесь неуместны.

Ответы (1)

На самом деле, у вас есть более двух вариантов осциллятора.

какой из них выбрать и в чем разница между FOSC и INTOSC?

Первое, что вам нужно сделать, это выбрать тип генератора, который вы хотите использовать в качестве основного генератора устройства («первичный генератор»). Вы сказали, что хотите использовать внутренний осциллятор.

Для этого мы должны установить некоторые биты конфигурации во время прошивки. Нас интересуют биты FOSC<2:0> из регистра конфигурации CONFIG2L :

FOSC<2:0>: Биты выбора генератора

  • 111 = ECPLL OSC1/OSC2 в качестве основного; Генератор ECPLL с включенной PLL; CLKO на RA6
  • 110 = EC OSC1/OSC2 в качестве основного; внешние часы с выходом FOSC/4
  • 101 = HSPLL OSC1/OSC2 в качестве основного; высокоскоростной кварц/резонатор с программным управлением PLL
  • 100 = HS OSC1/OSC2 в качестве основного; высокоскоростной кристалл/резонатор
  • 011 = блок внутреннего генератора INTPLL1 с программным управлением PLL; Выход ФОСК/4
  • 010 = блок внутреннего генератора INTIO1 с выходом FOSC/4 на RA6 и вводом/выводом на RA7
  • 001 = блок внутреннего генератора INTPLL2 с программным управлением PLL и вводом/выводом на RA6 и RA7
  • 000 = блок внутреннего генератора INTIO2 с вводом/выводом на RA6 и RA7

Таким образом, вам нужно установить биты конфигурации FOSC<2:0> в «000», чтобы выбрать внутренний генератор, без PLL и без вывода часов на какие-либо внешние контакты.


Однако PIC18F67J90 имеет два внутренних генератора:

  • блок внутреннего генератора, который обеспечивает тактовую частоту 8 МГц (точность ± 2%): INTOSC
  • источник INTRC (примерно 31 кГц, устойчивый к температуре и VDD)

Очевидно, мы хотим выбрать более быстрый осциллятор (INTOSC). Для этого нам нужно установить бит INTSRC в OSCTUNE (регистр настройки генератора):

INTSRC: бит выбора низкочастотного источника внутреннего генератора

  • 1 = тактовая частота устройства 31,25 кГц, полученная из источника INTOSC 8 МГц (включено деление на 256)
  • 0 = тактовая частота устройства 31 кГц, полученная от генератора INTRC 31 кГц.

Итак, INTSRC = 1.


Далее вам нужно установить скорость внутреннего генератора. Для внутреннего генератора Fast RC (INTOSC) тактовая частота по умолчанию составляет 4 МГц, но вы можете изменить ее во время выполнения, изменив биты IRCF <2:0> в OSCCON (регистр управления генератором) :

IRCF<2:0>: Биты выбора исходной частоты INTOSC*

  • 111 = 8 МГц (INTOSC напрямую управляет тактовой частотой)
  • 110 = 4 МГц (по умолчанию)
  • 101 = 2 МГц
  • 100 = 1 МГц
  • 011 = 500 кГц
  • 010 = 250 кГц
  • 001 = 125 кГц
  • 000 = 31 кГц (из INTOSC/256 или INTRC)

*Изменение этих битов приведет к немедленному переключению тактовой частоты, если внутренний генератор обеспечивает тактирование устройства.

Поэтому вам нужно установить биты IRCF<2:0> в «111», если вы хотите, чтобы ваш внутренний генератор работал на частоте 8 МГц.

Это должно сделать это..

Примечание 1 : Fosc также может означать частоту генератора. Имейте в виду, что системные часы будут в 4 раза медленнее, чем предусмотрено Fosc (системные часы = Fosc/4). Это означает, что если вы выберете генератор с частотой 8 МГц, PIC будет работать со скоростью 2 MIPS. Это связано с тем, что для 8-битного PIC требуется 4 такта для выполнения одной инструкции.

Примечание 2. Как всегда, исчерпывающую информацию по этому вопросу можно найти в техническом описании устройства .