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

 
 
 
Reply to this topicStart new topic
> STM32f405 виснет PLL
Reystlin
сообщение Jul 21 2016, 19:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



Добрый день ув. форумчане
генерирурю файл syste_stm32f4xx.c с помощью утилиты Экселевской от разработчника
при запуске приложения виснет на строке
/* Enable the main PLL */
RCC->CR |= RCC_CR_PLLON;
пробовал от разных источников тактировать, когда тактирую напрямую от кварца или от внутреннего источника, то запускается без проблем, как только выбираю PLL с кварцем или внутренним источником, так отказывается работать...
причем на другой похожей плате запускается, разводка питания одинаковая у плат, правда вторая плата без внешнего кварца
частоту пытаюсь настроить 160мгц, но и другие частоты тоже не работают
не пойму в какую сторону копать
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 21 2016, 19:27
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



Цитата(Reystlin @ Jul 21 2016, 22:16) *
разводка питания одинаковая у плат

покажите схему и разводку
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jul 21 2016, 21:19
Сообщение #3


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Код
    // Enable PLL
    RCC->CR |= RCC_CR_PLLON;

    // Wait till PLL is ready
    while ((RCC->CR & RCC_CR_PLLRDY) == 0)
    ;

так выглядит код?

Попробуйте кубом сгенерить для проверки аппаратуры проект пустой (выведя MCO для контроля.
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Jul 21 2016, 22:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



https://www.dropbox.com/s/2dae76s0grdfdpm/D...d_MAG.lay6?dl=0 - вот файл разводки, кондеры по питанию и VCAPы стоят по 3х1мкф, схемы не имею, всегда сразу плату рисую. ещё навесом после стабилизатора 3.3 вольтового висит электролит 47мкф.
код выглядит так, при пошаговом выполнении прога падает именнно на той строке, которую я кинул, до цикла не доходит выполнение
Кубом сейчас попробую
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 21 2016, 22:52
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



boot0 чему равен?
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Jul 21 2016, 23:33
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



состояние boot0 ситуации не меняет

попробовал сгенерить проект в кубе
так-же виснет, на ноги MCO ничего не выдает
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 22 2016, 05:33
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



1) у вас очень много разъёмов, питание и земля процессора выведены не на один. возможно плата питанием и землёй включена последовательно в какую-то сложную сильноточную импульсную цепь. переключите питание и землю процессора на этих разъёмах таким образом, чтобы они находились в "стороне" от остальных узлов; или вообще отключите от платы всё лишнее - оставьте только землю и питание, подключенные к одному разъёму;
2) параллельно каждому конденсатору 1 мкФ припаяйте конденсатор 1000 пФ (или что-то около этого) NPO; он должен быть первым от процессора;
3) параллельно каждому конденсатору 1 мкФ припаяйте конденсатор 33 нФ (или что-то около этого) X7R; он должен быть вторым от процессора;
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 22 2016, 05:37
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Reystlin @ Jul 22 2016, 01:39) *
вот файл разводки
Нет никакого желания ставить sprint. Неужели трудно выложить картинку? Про рисование платы без схемы промолчу.

Был аналогичный случай - в схеме питание на AVdd подавалось через ферритовую бусину (ferrite bead). так вот контрактному сборщику попалась катушка деталей, которая была промаркирована как бусины, детали выглядели как бусины, но на самом деле являлись конденсаторами. Соответственно, пока процессор ничего не потреблял по аналоговому питанию - на этой ноге за счет каких-то утечек внутри процессора натекало достаточное для отпускания сброса по включению питания (POR) напряжение. Когда же включалась ФАПЧ (PLL) - напряжение просаживалось, процессор уходил в сброс. Именно на таком же операторе. После замены этого чуднОго элемента на нормальную бусину все заработало.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 22 2016, 05:41
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



ещё покажите фото платы, чем паяли, промыли?

я на плате насчитал 6 конденсаторов питания и VCAP, вы пишете про 3. остальные не запаяны?

какого номинала резистор в цепи vdda?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jul 22 2016, 08:39
Сообщение #10


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Обратите внимание на VCAPx. Если на них окажется 0.1 мкФ - почти с гарантией будут проблемы. с рекомендованными 2.2 мкФ нормально. Соответственно, где брали конденсаторы, там могли положить не то.

зы: очередной кошмар. Ну неужели никто из тех, кто рисует в лайлоуте, не заметил, что макросы SMD конденсаторов и резисторов там под автоматический монтаж (ну или под пасту+печку)? Кладем конденсатор и не подлезть с паяльником. И на такой просторной плате переходные со сверловкой 0.3 и внешним диаметром 0.6... при этом проводники 0.2.

Сообщение отредактировал Genadi Zawidowski - Jul 22 2016, 08:50
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Jul 22 2016, 08:44
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



на данный момент к разъемам подключен только ST_LINK находящийся в плате Discovery, остальные разъемы пустые

нашел косяк, присмотрелся к резистору идущему на Vdda, а он там 10ком стоит, по ошибке не туда впаял%) теперь запустилось все, спасибо большое
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Jul 22 2016, 20:26
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



чудеса с PLL продолжаются
кварц 8мгц, выбираю в Экселевском файле источник HSE, ставлю частоту 160мгц, он мне высчитывает PLL_M=8 PLL_N=320 PLL_P=2 PCLK1=40 PCLK2=80, генерирурю файл, в коде заполняю структуру
CODE

int main()
{
SystemCoreClockUpdate();

RCC_ClocksTypeDef Clocks;
RCC_GetClocksFreq(&Clocks);
....
}

и в дебаге вижу содержимое структуры
SYSCLK=500000000
HCLK=500000000
PCLK1=125000000
PCLK2=250000000

причем от HSI работает как задумано
осцил на ногах кварца показывает частоту 8мгц

to Genadi Zawidowsk... перед отправкой на производство плат все эти моменты были устранены

Сообщение отредактировал Reystlin - Jul 22 2016, 21:19
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Jul 22 2016, 21:41
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



нашел, почему-то в файле stm32f4xx.h был HSE_Value дефайн на 25мгц
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 22 2016, 22:32
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



Цитата(Reystlin @ Jul 23 2016, 00:41) *
нашел, почему-то в файле stm32f4xx.h был HSE_Value дефайн на 25мгц

известный баг
Go to the top of the page
 
+Quote Post

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

 


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


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