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

 
 
> SAM7S проблема с PLL, При выключении PLL проц виснет...
Aquatik
сообщение Jan 13 2010, 04:44
Сообщение #1


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

Группа: Свой
Сообщений: 156
Регистрация: 24-05-05
Из: Москва
Пользователь №: 5 354



unsure.gifВозникла проблема с зависанием SAM7S256 при выключении PLL , проц виснет глухо - перезагружается по вдт...
Думали проблемы с фильтр или кварцем, на плате олимекс их проверили все нормально(и обратно с олимекса ставили на свою проблема осталась)... Софт работает без сбое на олимексовой плате... Питание и питание ядра в норме. Че только не думали, уже и мыслей нет... До этого плл работала всегда, вопрос этот не вылезал, но начался бой за потребление и на тебе... Единственное отличие по железу корпус сама маленьких... Плата многослойка - проблема по питание и т.д. и т.п. маловероятна... Еще сложность в том что плата миниатюрная , житага нет грузим через самбу... Возник вопрос не может ли, как с самбой, как то влиеть на старт или останов PLL внешние ножки???? Может кто подскажет, где посмотреть или кто сталкивался с такой проблемой... Заранее буду признателен..


--------------------
BST RGDS,
Aquatik...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jan 13 2010, 06:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Это похоже на ситуацию, описанную в еррате для 58818C:
Цитата
40.5.3.1 MCK: Limited Master Clock Frequency Ranges
If the Flash is operating without wait states, the frequency of the Master Clock MCK must be
lower than 3 MHz or higher than 19 MHz.
If the Flash is operating with one wait state, the frequency of the Master Clock MCK must be
lower than 3 MHz or higher than 19 MHz.
...
Go to the top of the page
 
+Quote Post
Aquatik
сообщение Jan 13 2010, 08:15
Сообщение #3


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

Группа: Свой
Сообщений: 156
Регистрация: 24-05-05
Из: Москва
Пользователь №: 5 354



Цитата(aaarrr @ Jan 13 2010, 09:02) *
Это похоже на ситуацию, описанную в еррате для 58818C:

Чип ревизии B.
Привожу исходный код, написанный в иаре. По включению и выключению ПЛЛ.
CODE
Включение PLL
__disable_interrupt();



AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
// Wait until the master clock is established
while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

AT91C_BASE_PMC->PMC_PLLR = AT91C_CKGR_USBDIV_1 |
(16 << 8) |
(AT91C_CKGR_MUL & (72 << 16)) |
(AT91C_CKGR_DIV & 14);
// Wait for PLL stabilization
while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK) );
// Wait until the master clock is established for the case we already
// turn on the PLL
while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
// Wait until the master clock is established
while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );

AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;
// Wait until the master clock is established
while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
__enable_interrupt();
Выключение PLL
__disable_interrupt();
AT91F_PMC_CfgMCKReg (AT91C_BASE_PMC, AT91C_PMC_CSS_MAIN_CLK);
while(!(AT91F_PMC_GetStatus(AT91C_BASE_PMC) & AT91C_PMC_MCKRDY));
AT91F_CKGR_CfgPLLReg(AT91C_BASE_CKGR, 0);
__enable_interrupt();

Возможно, где то не корректно написал.... 1111493779.gif За замечание буду благодарен!!!


--------------------
BST RGDS,
Aquatik...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 13 2010, 08:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Aquatik @ Jan 13 2010, 11:15) *
Возможно, где то не корректно написал....

По инструкции нельзя менять PRES и CSS в одну итерацию, как это делается здесь:
Код
AT91F_PMC_CfgMCKReg (AT91C_BASE_PMC, AT91C_PMC_CSS_MAIN_CLK);
Go to the top of the page
 
+Quote Post



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

 


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


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