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

 
 
 
Reply to this topicStart new topic
> Минимальная частота.
Jenya7
сообщение Jun 29 2017, 10:47
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я хочу понизить тактовую частоту.
В pll_init() я вижу следующие ограничения
Код
// Check PLL divider settings are within spec.
  if ((prdiv_val < 1) || (prdiv_val > 8)) {return 0x41;}
  if ((vdiv_val < 16) || (vdiv_val > 47)) {return 0x42;}

  // Check PLL reference clock frequency is within spec.
  ref_freq = crystal_val / prdiv_val;
  if ((ref_freq < 8000000) || (ref_freq > 32000000)) {return 0x43;}

// Check PLL output frequency is within spec.
  pll_freq = (crystal_val / prdiv_val) * vdiv_val;
  if ((pll_freq < 180000000) || (pll_freq > 360000000)) {return 0x45;}

Но последнее ограничение пртиворечит другим. Или я что то не понимаю? Какую минимальную частоту я могу задать?

Сообщение отредактировал Jenya7 - Jun 29 2017, 11:54
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 29 2017, 11:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Не знаю, что за чип, но, судя по коду, частота на выходе PLL должна быть в пределах 180...360 МГц.
Если нужно меньше, должен быть способ поделить эту частоту после PLL. Опять же, не знаю, что за чип, и есть ли там такая возможность.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jun 29 2017, 11:47
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(scifi @ Jun 29 2017, 16:01) *
Не знаю, что за чип, но, судя по коду, частота на выходе PLL должна быть в пределах 180...360 МГц.
Если нужно меньше, должен быть способ поделить эту частоту после PLL. Опять же, не знаю, что за чип, и есть ли там такая возможность.

формула такая
PLL out = (((CLKIN/PRDIV) x VDIV) / 2)
но почему 180000000? максимальная частота камня 120000000

чтобы получить 120 мега я делаю
#define CLKIN 50000000
#define PRDIV 5
#define VDIV 24

но если я хочу уменьшить наполовину я влетаю в ограничения.

то есть исходя из if ((pll_freq < 180000000) || (pll_freq > 360000000)) {return 0x45;} минимальный PLL out будет 180000000/2=90000000 так что ли ?

Сообщение отредактировал Jenya7 - Jun 29 2017, 11:57
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jun 29 2017, 11:59
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Jenya7 @ Jun 29 2017, 18:47) *
PLL out = (((CLKIN/PRDIV) x VDIV) / 2)

Надо отключить PLL и переключиться на HSE, тогда будете только делить частоту
если PRDIV максимум 8, тогда минимальная частота:
F out = CLKIN/16
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jun 29 2017, 12:05
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(HardEgor @ Jun 29 2017, 16:59) *
Надо отключить PLL и переключиться на HSE, тогда будете только делить частоту
если PRDIV максимум 8, тогда минимальная частота:
F out = CLKIN/16

внешний осцилятор в системе будет 20 Мега это маловато. На демо плате это наверное было бы самое то, там 50 Мега.

как это F out = CLKIN/16? а где x VDIV часть?

Сообщение отредактировал Jenya7 - Jun 29 2017, 12:08
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jun 29 2017, 19:36
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Jenya7 @ Jun 29 2017, 19:05) *
как это F out = CLKIN/16? а где x VDIV часть?

Раз частота умножается на VDIV, подозреваю что это умножитель PLL, который отключен.
Go to the top of the page
 
+Quote Post
SII
сообщение Jun 29 2017, 20:40
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Цитата(Jenya7 @ Jun 29 2017, 14:47) *
формула такая
PLL out = (((CLKIN/PRDIV) x VDIV) / 2)
но почему 180000000? максимальная частота камня 120000000


Вы путаете диапазон частот, допустимых для PLL, и максимальную частоту, с которой может работать собственно процессор. Частоты PLL существенно выше, и рабочая частота получается делением частоты PLL.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 29 2017, 21:57
Сообщение #8


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Jenya7 @ Jun 29 2017, 16:05) *
внешний осцилятор в системе будет 20 Мега это маловато. На демо плате это наверное было бы самое то, там 50 Мега.

как это F out = CLKIN/16? а где x VDIV часть?

Посмотрите на диаграмму тактирования из мануала:
Прикрепленное изображение

Как видно, для клока ядра существует делитель OUTDIV1, работающий в диапазоне от 1 до 16.
К примеру, с PLL вы получили 360 МГц, делите эту частоту на 3 - получаете 120 МГц системный клок.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 2 2017, 07:32
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Разобрался. Минимальная частота PLL - 180Mhz. На выходе я могу получить 180/2 = 90Mhz.
Всем спасибо за помощь.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 15:04
Рейтинг@Mail.ru


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