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

 
 
> Проблема с PLLA в AT91RM9200, PLLA не выбирается как входное для MCK
SergeyL
сообщение Jul 14 2005, 10:02
Сообщение #1


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

Группа: Свой
Сообщений: 98
Регистрация: 28-06-04
Пользователь №: 199



Проблема такая. На моей самодельной плате не выбирается сигнал с PLLA как входной для Master clock. Эта же программа на атмеловской плате AT91RM9200-EK работает. Когда настраиваю на работу от PLLA он как будто от Main Clock. А вот на PLLB переключается.

Причем я на PCK1 выводил все сигналы и Main clock и PLLA и PLLB все нормально.

Разница насколько я понимаю только в процессорах. У меня стоит в корпусе PQFP на родной в BGA, но это не должно влиять. Кварцы такие-же. Уже третий день бьюсь, решил у народа спросить может кто сталкивался.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
GSG
сообщение Jul 14 2005, 10:44
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 35
Регистрация: 21-06-05
Пользователь №: 6 178



Посмотри п.28 в Errate. Сам сталкивался с этим, проблема была в том, что одни и те же значения битов CSS, PRES в регистре PMC_MCKR нужно записывать разными записями.
Go to the top of the page
 
+Quote Post
SergeyL
сообщение Jul 14 2005, 10:54
Сообщение #3


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

Группа: Свой
Сообщений: 98
Регистрация: 28-06-04
Пользователь №: 199



Цитата(GSG @ Jul 14 2005, 13:44)
Посмотри п.28 в Errate. Сам сталкивался с этим, проблема была в том, что одни и те же значения битов CSS, PRES в регистре PMC_MCKR нужно записывать разными записями.
*


Смотрел. Чето не помогло мне это. Да и на другой то плате работает ведь, вот в чем прикол.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jul 14 2005, 11:02
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Лучше Errata 26 смотри. А то что на другой работает - не показатель. Оно даже на одном чипе может раз от раза то работать, то не работать.

Вот этот код всегда включается:

//Настройка генераторов и PLL.Все настройки для кварца 18.432 МГц
//Включить главный генератор и задать время запуска 6/32768= 0,18 мс
PMC_MOR = 1 | (6<<8); // MOSCEN | OSCOUNT
while(!PMC_SR_bit.MOSCS); //Ждем пока генератор стабилизируется
//Переводим процессор на главный генератор
PMC_MCKR = 1 | (0<<2) | (0<<8); // MCK = MAIN PRES=0 MDIV=0
//Настроим PLLA на 196,6 МГц
//Действуем согласно ERRATA
PMC_PLLAR = (1<<29) | (32<<16) | (2<<14) | (28<<8) | 4; // MULA | OUTA | PLLACOUNT | DIVA
while(!PMC_SR_bit.LOCKA); //Ждем пока PLLA захватится
PMC_PLLAR = (1<<29) | (32<<16) | (2<<14) | (28<<8) | 3; // MULA | OUTA | PLLACOUNT | DIVA
while(!PMC_SR_bit.LOCKA); //Ждем пока PLLA захватится
//Настроим PLLB на 95,8464 МГц
//Действуем согласно ERRATA
PMC_PLLBR = (1<<28) | (24<<16) | (28<<8) | 5;
while(!PMC_SR_bit.LOCKB); //Ждем пока PLLB захватится
PMC_PLLBR = (1<<28) | (25<<16) | (28<<8) | 5; // USB96M | MULB | PLLBCOUNT | DIVB
while(!PMC_SR_bit.LOCKB); //Ждем пока PLLB захватится
#ifdef _TEST_
//Выведем PLLA/64 на 122-ю ногу (PB27)
PIOB_PDR= (1<<27); // PB27 на Funck A
PMC_SCER = (1<<8); PMC_PCK0=2 | (6<<2);
#endif // _TEST_
//Переключим процессор на PLLA и MCK на PLLA/2
//Действуем согласно ERRATA
PMC_MCKR_bit.MDIV=1; //MCK = PCK/2
PMC_MCKR_bit.PRES=0; PMC_MCKR_bit.CSS=2; //PCK = PLLA

ЗЫ: На частоты не смотри, там превышение по МСК.
Go to the top of the page
 
+Quote Post
SergeyL
сообщение Jul 14 2005, 11:59
Сообщение #5


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

Группа: Свой
Сообщений: 98
Регистрация: 28-06-04
Пользователь №: 199



Точно работает, завтра буду подробнее разбираться. У меня вообщем-то примерно так же было, только вот я в начале не трогал PMC_MCKR (перед настройкой PLL).
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jul 14 2005, 14:10
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



В этом коде заложены два ключевых момента с которыми я возился:

1. LOCK-и PLL-ей не вставали, если писать туда значения, которые уже были записаны. А это частый случай при внутрисхемной отладке, когда питание не снимается. Поэтому пишем туда то что не могло раньше быть и потом нужное значение.

2. Ваш случай в чистом виде. Errata 26. MDIV, PRES и CSS менять надо отдельно.
Go to the top of the page
 
+Quote Post
d__
сообщение Jul 18 2005, 07:21
Сообщение #7


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

Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548



Ндя, изврат там изрядный, по сути там необходимо менять не более одного бита за раз и причем этот бит не должен совпадать с текущим содержимыми регистра. Пока настроишь нужную конфигурацию, напрыгаешься как шимпанзе на сковородке...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jul 18 2005, 09:54
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Да ладно, зато какой сатисфэкшин и экспириенс поимеваешь когда всё начинает работать.
Go to the top of the page
 
+Quote Post

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

 


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


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