2015-11-12 6 views
1

Сегодня я начал проект, чтобы попробовать несколько вещей с PIC18F45K22. У меня были некоторые проблемы с синхронизацией с ранее написанным кодом для других контроллеров. Оказалось, что что-то не так с тактовой частотой контроллера.PIC18F45K22 внутренний генератор частоты выпуск

Как указано в таблице, у меня должна быть частота тактовых импульсов 1 МГц при использовании внутреннего генератора. По моему осциллографу я измерил тактовую частоту 250 кГц на выводе OSC2 (RA6). Поэтому я начал обнюхивать в таблице данных и столкнулся с таблицей 2-3 из таблицы. В этой таблице говорится, что вывод OSC2 будет «Clock/4», когда контроллер находится в режиме SLEEP, который может быть источником моей проблемы как 1MHz/4 = 250kHz. В соответствии с главой 3.0 контроллер начнет работу с режима PRI_RUN, когда устройство будет сброшено, если не включен двухскоростной запуск. Таким образом, чтобы убедиться, что я отключил этот режим с помощью следующей конфигурации линии:

#pragma config IESO = OFF 

Эта строка отключает внутренний/внешний генератор переключения бит, который отключит Двухскоростной Пусковой в соответствии с пунктом 2.12.1.

В настоящее время я пробовал несколько настроек регистров OSCCON, OSCCON2, OSCTUNE, которые все провалились. На данный момент я не могу думать ни о чем другом, что вызывает эту «проблему». Я надеюсь, что кто-то обнаружит мою ошибку, чтобы я мог запустить устройство на указанных тактовых частотах.

В настоящее время я установить эти биты конфигурации:

#pragma config WDTEN = OFF 
#pragma config FOSC = INTIO7 // Make clock visible on OSC2 pin 
#pragma config LVP = OFF 
#pragma config DEBUG = OFF 
#pragma config IESO = OFF // Disable Two-speed Start-up 

// Entry of application 
int main(int argc, char** argv) 
{ 
    OSCCONbits.IRCF = 0b011; // default frequency 
    // Tried different OSCCON; OSCCON2; OSCTUNE settings, without succes 
} 

Листки (1): http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf

+1

Как указано в разделе 2.6.1 таблицы, CLKOUT будет Fosc/4 при использовании с внутренним осциллятором. Если вы сконфигурировали генератор на 1 МГц, тогда вы должны ожидать увидеть 250KHz на CLKOUT, который представляет скорость, с которой выполняются инструкции (4 тактовых цикла для каждой команды на этих ПОС). Все работает так, как ожидалось. –

+0

@RogerRowland, я полностью пропустил эту важную информацию! Спасибо, что указали, что часы действительно правильные. При этом я заметил еще одну ошибку, которую я сделал при преобразовании ранее написанного кода, который я пробовал на этом контроллере, и решил, что все работает сейчас. – WonderTiger

ответ

1

Roger Rowland ответил на мой вопрос:

Как говорится в разделе 2.6.1 из Техническое описание, CLKOUT будет Fosc/4 при использовании с внутренним генератором. Если вы сконфигурировали генератор на 1 МГц, тогда вы должны ожидать увидеть 250KHz на CLKOUT, который представляет скорость, с которой выполняются инструкции (4 тактовых цикла для каждой команды на этих ПОС). Все работает так, как ожидалось.