Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F051K8 и PLL
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
haker_fox
Добрый день, коллеги!

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

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

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

Кстати, выпаивать не обязательно. Достаточно на BOOT0 подать уровень для входа в загрузчик.
haker_fox
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
AHTOXA
Цитата(haker_fox @ Jun 18 2013, 16:49) *
Сегодня столкнулся с интересным поведением сабжевой микросхемки.

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

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

Так у неё флеш постоянно от HSI запитан, т.е. от внутреннего генератора 8 МГц.
А на счёт замыкания кварца - замечательно!
HHIMERA
А вы ничего не путаете... насчёт флэша???
scifi
Цитата(HHIMERA @ Jun 18 2013, 18:20) *
А вы ничего не путаете... насчёт флэша???

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

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

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

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

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

Спасибо!!!

P.S. Шью J-Link'ом из под IAR. Смотрел, этот J-Link поддерживает эти микроконтроллеры.
AHTOXA
Цитата(haker_fox @ Jun 26 2013, 17:28) *
1. Ножку BOOT0 подключаю к +3.3 В.
2. Сбрасываю процессор.

А BOOT1 куда?
При BOOT0 = 1 источник загрузки определяется уроврем на BOOT1. Для запуска загрузчика нужно прижать его к земле.
А SWD у вас с ресетом? Или только SWCLK/SWDIO?
Сергей Борщ
QUOTE (AHTOXA @ Jun 26 2013, 17:15) *
А BOOT1 куда?
Если память не изменяет - на один из битов в option bytes. Видать один из более других битов этих байтов случайно переписан, проц залочился...
haker_fox
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;

Нет, а в бут-то он входит. Ведь утилитка не сообщает о том, что устройство не отвечает. Да и по миганию светодиодов на платке последовательного порта видно, что МК отвечает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.