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

 
 
 
Closed TopicStart new topic
> 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
aaarrr
сообщение Jan 13 2010, 05:46
Сообщение #2


Гуру
******

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



Цитата(Aquatik @ Jan 13 2010, 07:44) *
unsure.gifВозникла проблема с зависанием SAM7S256 при выключении PLL , проц виснет глухо - перезагружается по вдт...

А куда переключаетесь при останове PLL? Если просто на кварц, то могут быть проблемы.
Go to the top of the page
 
+Quote Post
Aquatik
сообщение Jan 13 2010, 05:49
Сообщение #3


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

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



Да именно на кварц... sad.gif Но на стартките то не зависает.. это и вводит в думы..


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


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #5


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

Группа: Свой
Сообщений: 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
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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
Aquatik
сообщение Jan 13 2010, 18:31
Сообщение #7


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

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



Цитата(aaarrr @ Jan 13 2010, 11:30) *
По инструкции нельзя менять PRES и CSS в одну итерацию, как это делается здесь:
Код
AT91F_PMC_CfgMCKReg (AT91C_BASE_PMC, AT91C_PMC_CSS_MAIN_CLK);

Согласен... Некорректно запись в регистр была сделана... Исправил.. Стало более устойчиво работать... Но проблема осталась...
Причем на нескольких платах работает без зависания, не остальных виснет сразу... Железо, блин.... Хотя на автомате собрано.. куда смотреть хз... Интересно с чем еще может быть связано, именно зависание при выключении плл... Фильтр плл, питание или петля земли где то по питанию, токовая есть... Почему именно выключение, плл.. если б вообще не запускался, а то именно при выключениии... maniac.gif


--------------------
BST RGDS,
Aquatik...
Go to the top of the page
 
+Quote Post
Aquatik
сообщение Jan 14 2010, 09:52
Сообщение #8


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

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



Цитата(Aquatik @ Jan 13 2010, 21:31) *
Согласен... Некорректно запись в регистр была сделана... Исправил.. Стало более устойчиво работать... Но проблема осталась...
Причем на нескольких платах работает без зависания, не остальных виснет сразу... Железо, блин.... Хотя на автомате собрано.. куда смотреть хз... Интересно с чем еще может быть связано, именно зависание при выключении плл... Фильтр плл, питание или петля земли где то по питанию, токовая есть... Почему именно выключение, плл.. если б вообще не запускался, а то именно при выключениии... maniac.gif

Подумали малось... Сделали креш тест прошивку, которая постоянно включает и выключает ПЛЛ на 50 милисекунд.
Прошили все платы...
Вопрос оказалось отношения к программированию не имел.... из партии 40% не прошили тест, висли... Оказалось брак плат, где в многослойке проблемма, ищем... Выяснили это по мультипликации, т.е. платы смультиплизированны по 4 штуки на заготовке, если хоть одна на заготовке рабочая все остальные тоже ок... и наоборот... это правило четко выполнялось.
Хорошо, что их не разделили rolleyes.gif, а то можно было и на компоненты думать...
aaarrr спасибо за ценное замечание по ПЛЛ...
Будем теперь с остатками разбираться... Больше в России изготовление многослойки ни ни unsure.gif
Тема закрыта!


--------------------
BST RGDS,
Aquatik...
Go to the top of the page
 
+Quote Post

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

 


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


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