реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Установка тактовой частоты PIC32, помогите установить тактовую частоту PIC32
ZEbr
сообщение May 12 2014, 15:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Есть кварц 16MHz.
Настраиваю тактовую частоту PIC32 следующим образом:

#pragma config FWDTEN = OFF
#pragma config POSCMOD = HS, FNOSC = PRI, FPBDIV = DIV_8

#define SYS_FREQ (80000000L)

.........

main()
{
SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
.......
while(1)
{
PORTD=1;
PORTD=0;
}
}
Смотрю частоту дерганий ножки проца на осциллографе, и вижу ,что время между передним фронтом 1-го и 2-го включения составляет 870нс .
Это явно не 80MHz.

Помогите пожалуйста настроить тактовую частоту!
Заранее спасибо!
Go to the top of the page
 
+Quote Post
evc
сообщение May 12 2014, 18:22
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



Цитата(ZEbr @ May 12 2014, 19:03) *
Есть кварц 16MHz. ...

Смотрим конфигурацию осцилятора (стр.3).
Видим, что для того, что бы на входе PLL была частота 4 .. 5MHz, нужно сначала разделить эти 16 на 4. Так что должна быть директива в прагме:
FPLLIDIV = DIV_4. Потом эти 4 (которые получаем на входе PLL) нужно умножить на 20, значить FPLLMUL = MUL_20. Дальше, эту частоту без изменений нужно подавать дальше, т.е. FPLLODIV = DIV_1:
Код
#pragma config FPLLODIV = DIV_1, FPLLMUL = MUL_20, FPLLIDIV = DIV_4, POSCMOD = HS, FPBDIV = DIV_1, FNOSC = PRIPLL

А потом, что бы "выжать" максимальную частоту, нужно пользоваться не "PORTX =", а "PORTXINV =":
Код
while(1){
     PORTDINV = 1;
}

При такой конфигурации, частота на выводе получается около 16МГц. Это из-за того, что цикл, организованный С инструкцией while, тоже занимает несколько машинных циклов. На самом деле самую высокую частоту можно увидеть вот таким кодом:
Код
while(1){
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
    PORTDINV = 1;
     ....
}

конечно, только во время исполнения тела цикла.

ПП Некоторые образцы 32-го допускают небольшой (без экстремизма, конечно) "оверклокинг"... но это отдельная тема.


--------------------
УЭР
Go to the top of the page
 
+Quote Post
ZEbr
сообщение May 12 2014, 18:57
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



То есть как я понял конфигурационные биты которые вы написали соответствуют тактовой частоте проца в 80MHz.
Я пробовал так писать но при выставление FNOSC = PRIPLL девайс не определяется (MPLAB_ICD3).
Я обязательно еще так попробую!
А как насчет альтернативной установки частоты?

Сообщение отредактировал ZEbr - May 12 2014, 19:00
Go to the top of the page
 
+Quote Post
Lagman
сообщение Jul 5 2014, 13:59
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



А что pic умеет дергать ножками с частотой 80 мгц?
P.s. а чего это старые сообщения повылезали в непрочтенные.
Go to the top of the page
 
+Quote Post
Valentine Logino...
сообщение Jul 17 2014, 11:22
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 7-04-10
Из: Пушкино
Пользователь №: 56 462



Цитата(Lagman @ Jul 5 2014, 17:59) *
А что pic умеет дергать ножками с частотой 80 мгц?
P.s. а чего это старые сообщения повылезали в непрочтенные.

Максимальная частота переферии 50 МГц.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016