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

 
 
> Конфигурирование CCLKCFG (CCLKSEL), LPC175x
toweroff
сообщение Dec 10 2012, 08:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Столкнулся с таким непонятным для меня моментом
Использую system_LPC17xx.c. Задал множители (мне нужно 100МГц при 12МГц кварце. Получаю M=25, N=2, PLLclk=300 (в диапазоне), CCLKSEL=2)
Отсюда:

CCLK = ((2*12*25)/2)/3 = 100МГц

По даташиту CCLKSEL может принимать нечетные значения. Однако system_LPC17xx.c ругается:
Цитата
Startup\system_LPC17xx.c(352): error: #35: #error directive: "CCLKCFG: CCLKSEL field does not contain only odd values or 0!"

проверка там такая:
Код
#if ((CCLKCFG_Val != 0) && (((CCLKCFG_Val - 1) % 2)))
   #error "CCLKCFG: CCLKSEL field does not contain only odd values or 0!"
#endif

Версии:
UM10360 Rev. 2 — 19 August 2010
system_LPC17xx.c - V1.1 18th May 2009

Я понимаю, конечно, что верить нужно даташиту, но неспроста же эта проверка была введена?

UPD
Я могу изменить множители (M=50, N=3), попасть в диапазон PLL (<550MHz) и получить свой стольник, деля на 4. Интересна природа момента
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
esaulenka
сообщение Dec 10 2012, 10:16
Сообщение #2


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Предлагаю пользоваться более свежей версией библиотек. Заголовок lpc17xx.h 1.1 (или что-то похожее) содержал вообще немеряное количество опечаток.

В более новых system_lpc17xx.c эту проверку убрали.


Да, ноги растут отсюда:
Цитата(LPC23xx user manual)
7:0 CCLKSEL Selects the divide value for creating the CPU clock (CCLK) from the PLL output.
Only 0 and odd values (1, 3, 5, ..., 255) are supported and can be used when programming the CCLKSEL bits.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 10 2012, 10:35
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Да, так и есть

В версии 1.13 от 18. April 2012 уже совсем другая песня:

Код
#if (CHECK_RANGE((CCLKCFG_Val), 0, 255))
   #error "CCLKCFG: Value out of range!"
#endif
Go to the top of the page
 
+Quote Post

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

 


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


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