У меня есть два варианта выбора системных часов:
Я хочу использовать внутренние часы на частоте 8/16 МГц.
Какой из них выбрать и в чем разница между FOSC и INTOSC?
На самом деле, у вас есть более двух вариантов осциллятора.
какой из них выбрать и в чем разница между 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 имеет два внутренних генератора:
Очевидно, мы хотим выбрать более быстрый осциллятор (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. Как всегда, исчерпывающую информацию по этому вопросу можно найти в техническом описании устройства .
Роджер Роуленд
Олин Латроп
м.Алинь
Олин Латроп