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

 
 
> STM32F051K8 и PLL, Забавное поведение
haker_fox
сообщение Jun 18 2013, 10:49
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Добрый день, коллеги!

Сегодня столкнулся с интересным поведением сабжевой микросхемки. К ней подцеплен внешний кварц 12 МГц с кондёрами. Всё по даташиту. На частотах до 36 МГц (множитель PLL равен 3) всё работает прекрсано. Если выставить множитель 4, то получаем частоту шины 48 МГц. В даташите сказано не превышать этого значения. Но в том-то и дело, что на этой частоте виден срыв генерации. Т.е. на телескопе (простите, осциллографе) видна синусоида, временами (очень короткими) просто исчезающая. Соответственно и вывод текста по последовательному порту прерывается, что подтверждает показания телескопа... Вопрос: кто-нить сталкивался с таким поведением? Корпус, на всякий случай, QFN. Да, еще по SWD микра перестаёт "видется". Спасает только выпаивание кварца и перепрошивка проги с меньшим делителем.

Мне конечно не критично, можно поделить кварцевую частоту на 2, и умножить на 7, т.е. гонять проц на 42 МГц, но интересно выяснить, что это. В еррате - тишина.

Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
scifi
сообщение Jun 18 2013, 11:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Возможно, у Вас питание Vdda подпорченное. Надо стараться не отклоняться от предписаний производителя в этой части. Для эксперимента можно попробовать доп. фильтрацию ферритовой бусиной.

Кстати, выпаивать не обязательно. Достаточно на BOOT0 подать уровень для входа в загрузчик.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 18 2013, 11:37
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (scifi @ Jun 18 2013, 20:20) *
Возможно, у Вас питание Vdda подпорченное.

Ага! Это мысль rolleyes.gif Завтра гляну телескопом, что там делается. Но оно точно через LC-фильтр заведено...
QUOTE (scifi @ Jun 18 2013, 20:20) *
Достаточно на BOOT0 подать уровень для входа в загрузчик.

Не работает это у меня( Подаю на BOOT0 +3.3V, не фирменная утилита от ST не коннектится, не J-Link. Кстати, для утилитки по последовательному порту так и не смог найти рекомендуемые значения скорости, чётности и т.п...

З.Ы. Меня одного ломает читать мануалы от ST после NXP, или это у всех? В целом всё вроде понятно, но такое ощущение, что писали на скорую руку, полагая, что все тёмные места известны всему миру, а не фирме исключительно... Таблицы все белые, унылые и не информативные... Хотя, наверно, я привередничаю maniac.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 18 2013, 13:11
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(haker_fox @ Jun 18 2013, 16:49) *
Сегодня столкнулся с интересным поведением сабжевой микросхемки.

А вы wait-states прописали для флеша? Вряд ли от этого будет срываться генерация, но всё же.
Цитата(scifi @ Jun 18 2013, 17:20) *
Кстати, выпаивать не обязательно. Достаточно на BOOT0 подать уровень для входа в загрузчик.
Можно ещё кварц замкнуть накоротко. Тогда HSE не запустится и всё прошьётсяsm.gif



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 18 2013, 14:09
Сообщение #5


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (AHTOXA @ Jun 18 2013, 22:11) *
А вы wait-states прописали для флеша? Вряд ли от этого будет срываться генерация, но всё же.
Можно ещё кварц замкнуть накоротко. Тогда HSE не запустится и всё прошьётсяsm.gif

Так у неё флеш постоянно от HSI запитан, т.е. от внутреннего генератора 8 МГц.
А на счёт замыкания кварца - замечательно!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jun 18 2013, 14:20
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



А вы ничего не путаете... насчёт флэша???
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 18 2013, 14:46
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(HHIMERA @ Jun 18 2013, 18:20) *
А вы ничего не путаете... насчёт флэша???

Действительно. HSI должен давать опорную частоту для процедур стирания/записи. А чтение тактируется так же, как и процессор, плюс wait states.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 19 2013, 00:58
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



И всё-таки уважаемый scifi правильно посоветовал: мне подсунули вместо чип-индуктивности чип-конденсатор. В итоге на аналоговую часть питания не поступало. Удивиетльно, что PLL таки работал. Видимо за счёт утечек. Теперь полёт нормальный на частоте 48 МГц.
Спасибо!!!!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 19 2013, 04:41
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Надо ставить ферритовые бусины: они тёмные. А конденсаторы - светлые. Не перепутаешь :-)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 19 2013, 08:39
Сообщение #10


Гуру
******

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



QUOTE (scifi @ Jun 19 2013, 07:41) *
Надо ставить ферритовые бусины: они тёмные. А конденсаторы - светлые. Не перепутаешь :-)
Вы не поверите. Я сам сначала не поверил. Но когда через два часа безуспешных попыток запустить PLL я прозвонил такую черную "бусинку" тестером, она оказалась конденсатором на 39пФ. Хотя по маркировке на катушке это должны были быть именно бусинки, и они были черные. Я подумал, что только мне так везет и не стал писать в эту ветку, да и симптомы у меня были другие - Hardfault на следующей команде за включением PLL. Дело было примерно с месяц назад.

P.S. А еще в той плате были "двухсторонние" стабилитроны. Маркированные SMAJ15CA, но при этом имеющие полоску на корпусе и звонящиеся в одну сторону как односторонние.


--------------------
На любой вопрос даю любой ответ
"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
haker_fox
сообщение Jun 26 2013, 11:28
Сообщение #11


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Ещё раз здрасьте) Микроконтроллер не перестаёт удивлять. Сегодня неожиданно перестал шиться через SWD. Причём кварцевый резонатор работает. Работает и последняя загруженная прога. Всё абсолютно работает за исключением SWD. Посмотрел импульсы на линиях этого интерфейса телескопом - на месте.

Не могу подключиться к буту микроконтроллера при помощи их утилиты. Интерфейс USART - рабочий, по нему консолька зашитой проги фурычит.

Что делаю для запуска бута:
1. Ножку BOOT0 подключаю к +3.3 В.
2. Сбрасываю процессор.
3. Запускаю фирменную утилитку с параметрами 115200, 8, нет проверки четности.
4. Нажимаю кнопку Next. Утилита сообщает, что модель проца неизвестна, либо не удается получить список команд.

Что делать? Народ, помогите разувериться, что STM32F051 - сырой чип...

Спасибо!!!

P.S. Шью J-Link'ом из под IAR. Смотрел, этот J-Link поддерживает эти микроконтроллеры.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 26 2013, 14:15
Сообщение #12


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(haker_fox @ Jun 26 2013, 17:28) *
1. Ножку BOOT0 подключаю к +3.3 В.
2. Сбрасываю процессор.

А BOOT1 куда?
При BOOT0 = 1 источник загрузки определяется уроврем на BOOT1. Для запуска загрузчика нужно прижать его к земле.
А SWD у вас с ресетом? Или только SWCLK/SWDIO?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 26 2013, 18:04
Сообщение #13


Гуру
******

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



QUOTE (AHTOXA @ Jun 26 2013, 17:15) *
А BOOT1 куда?
Если память не изменяет - на один из битов в option bytes. Видать один из более других битов этих байтов случайно переписан, проц залочился...


--------------------
На любой вопрос даю любой ответ
"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
haker_fox
сообщение Jun 27 2013, 00:19
Сообщение #14


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (AHTOXA @ Jun 26 2013, 23:15) *
А SWD у вас с ресетом? Или только SWCLK/SWDIO?

Да, с ресетом. У меня J-Link, там все сигналы...

QUOTE (Сергей Борщ @ Jun 27 2013, 03:04) *
Если память не изменяет - на один из битов в option bytes. Видать один из более других битов этих байтов случайно переписан, проц залочился...

Нет, те регистры точно не переписывались. Там бит nBOOT1 с завода равен единице. В мануале написано, что бит BOOT1 равен инверсному значению бита nBOOT1. Таким образом, в загрузчик он должен входить... т.е. BOOT1 = 0, BOOT0 = 1;

Нет, а в бут-то он входит. Ведь утилитка не сообщает о том, что устройство не отвечает. Да и по миганию светодиодов на платке последовательного порта видно, что МК отвечает.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

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

 


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


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