STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Леонид Иванович писал(а): У меня, например, в IAR отладчик чаще не работает, чем работает.
А Keil юзать религия не позволяет? Сколько уже писано о убогости IAR вообще ...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Вопрос.
Имеем STM32F051.
Имеем фрагмент RCC из даташита:
Изображение
В красном круге отмечен предделитель PLL.
Внимание, вопрос: Какими битами какого регистра устанавливается его коэффициент деления?
Примечание. В регистре RCC_CFGR оного не обнаружил... :(
Спасибо.
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

КРАМ писал(а):Примечание. В регистре RCC_CFGR оного не обнаружил... :(
Спасибо.
Заглядываем только в первый встретившийся?
Никогда с этим МК не работал. Но открыл RM, по диагонали прочитал SСС-секцию:
RCC_CFGR2, поля PREDIV[3:0]
Сколько раз говорили - ну непохожа STM-дока на AVR-стиль... Читать надо тщательнЕе...
С уважением,
Виктор.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Да, я тоже уже нашел.
АВР тут совершенно не причем.
Просто этот CFGR2 оказался на отшибе...
Сенкс.
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

КРАМ писал(а):АВР тут совершенно не причем.
Просто этот CFGR2 оказался на отшибе...
А что такое "не на отшибе"? Это где?
Отсюда и предположение про AVR, у них "все в кучке, отшибов нет"...
С уважением,
Виктор.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

На отшибе - это НЕ ЛОГИЧНО далеко от остальных делителей-умножителей.
Видимо разработчик включил его в архитектуру в последний момент...
Как я уже ранее говорил в другой теме, ограничение PLL диапазоном 16...48 МГц возможно благотворно влияет на потребление чипа, но делает почти бессмысленным большой выбор коэффициентов деления постскалера PLL...
Кстати, один интересный момент. К F0-дискавери прилагается демопрошивка. Так вот в ней в установке сисклоков нет включения этого предделителя в качестве шаблона при установке кварца. И в других примерах тоже нет.
Это дополнительно запутало при поиске... :)
Это так, офф... В остальном все ОК.
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

КРАМ писал(а):На отшибе - это НЕ ЛОГИЧНО далеко от остальных делителей-умножителей.
Видимо разработчик включил его в архитектуру в последний момент...
Улыбнуло. :) Особенно мнение о разработчике. End_of_OFF. :)
С уважением,
Виктор.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

ut1wpr писал(а):Улыбнуло. :) Особенно мнение о разработчике.
Любому нелогичному действию должно быть какое то разумное объяснение...
Это не мнение о разработчике. Это ПРЕДПОЛОЖЕНИЕ о причинах его побудивших...
Вам же не кажется странным, что тот же самый дизайнер сгруппировал адреса регистров сообразно топологии периферии на кристалле.
А тут ПОСЛЕДОВАТЕЛЬНО расположенные цепи имеют разрыв в управлении... Лишние шины или лишний дешифратор...
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

КРАМ писал(а):Вам же не кажется странным,
Нет, не кажется. Чтобы прекратить этот гон, соглашусь с любым вашим утверждением. Ваш опыт в "ПОСЛЕДОВАТЕЛЬНО расположенные цепи имеют разрыв в управлении... Лишние шины или лишний дешифратор" вселяет твердую уверенность в отсутствии вашей вины в алогичности структуры Кортекса. Все. Стоп.
С уважением,
Виктор.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

:facepalm: :dont_know: :roll:
Это не хвост, это антенна
Сообщения: 1414
Зарегистрирован: Пн ноя 23, 2009 00:50:23
Откуда: Crimea, Simferopol

Сообщение sa-ta »

обращаюсь к специалистам, хочу знать мнение
есть поделка - Вольтметр — амперметр с аналоговой шкалой на STM8S (http://radio.aliot.com.ua/?p=813).
автор выразил предположение, что можно безболезненно сменять STM8S103F3P6 на STM8S003F3?

>А можно ли перекомпилить данный проект под STM8S003 ?.
>>Под STM8S003F3 (TSSOP20) вроде бы как ничего менять и не надо, порты совпадают, ядро то же.
верно ли его утверждение?

просто не хочу регаться в еще одном месте, чтобы задать этот вопрос, тем более автор уже выразил свое мнение ...
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

STM32F100
Не доходит один момент.
PWM center-aligned mode. Счётчик считает туда-сюда. Событие обновления UEV за весь период посылается один раз или дважды, когда наступает переполнение(upcount+downcount)?
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

Сообщение optima »

Сегодня на F303 пробовал PWM с выравниванием по центру, использовал TIM3, за один период ( TIM3_IRQHandler ) вызывается дважды! при переходе через 0 и по центру!
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

вызывается дважды!
Хочу использовать для управления асинхронным мотором.
Вроде для этого рекомендуют режим по центру. Я пока настроил по фронту, отладил алгоритм регулировки. Но что мне тогда делать с DMA? Получается таблицы синусов должны быть в 2 раза длиннее, т.е. каждая точка будет дублироваться? Как-то нелогично выходит.
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

Зачем вообще там использовать DMA? Мне кажется это очень неудобным, надо будет менять частоту, амплитуду, возможно форму сигнала, и каждый раз придется пересчитывать таблицы. Если не так, то поправьте меня, просто никогда даже в голову не приходило использовать DMA для управления двигателями.
Прорезались зубы
Аватара пользователя
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

Сообщение optima »

Не знаю нужен ли там DMA! но PWM с выравниванием по центру просто необходим!
Можно в прерывании проверять значение счетчика ARR и если в нем максимальное значение значит было прерывание по центру, и делать то что необходимо! а в другом случае просто вываливаться из прерывания, вот и будет тебе одно срабатывание! Надеюсь понятно изложил!
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

optima писал(а):но PWM с выравниванием по центру просто необходим!
Я бы не был так категоричен. Для большинства задач и без выравнивания сойдет, но если есть такая возможность, то почему бы и не использовать.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

menzoda писал(а):Зачем вообще там использовать DMA? Мне кажется это очень неудобным, надо будет менять частоту, амплитуду, возможно форму сигнала, и каждый раз придется пересчитывать таблицы. Если не так, то поправьте меня, просто никогда даже в голову не приходило использовать DMA для управления двигателями.
Не использовать ДМА в ШИМ - значит грузить контроллер каждый период ШИМа минимум на 24 машцикла только для "тары"... Столько занимает вход-выход при работе с ISR...
А еще и само тело обработчика...
Несложно понять, что порядка сотни машциклов будут выброшены из времени работы контроллера, а равно ОГРАНИЧАТ частоту ШИМ...
ЗАЧЕМ, если есть инструмент? Разве ресурсы времени контроллера бывают лишними?
Кроме того, ДМА подчиняется аппаратному тактированию от источника транзакций, что позволяет исключить разного рода стробоскопические эффекты от асинхронного обновления массива ШИМ из main по отношению к самому ШИМ.
Центральновзвешенный ШИМ не требует коррекции таблиц при расчете. Что удобно...
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Пересчёт таблицы синусов я делаю только в момент пуска и стопа двигуна, чтобы избежать ударных токов через ключи(софт-старт режим). Остальное время(рабочий режим) он будет колбасить на полную мощность, по крайней мере я так думаю. И таблица получается неизменной. Регулировку частоты делаю через предделитель TIM1->PSC. И получается, что настроил DMA, включил таймер и ушел в сон или на медленные процессы(например опрос датчиков DS1820). Все остальное аппаратно. Только раз в секунду просыпаюсь для проверки напряжения, температуры и скалярной регулировки.
Да, это будет очень простая крутилка маленького трехфазного мотора от постоянного тока(солнечная панель). Поэтому большинство плюшек полноценных частотников невостребованы.

Обратил внимание на CMS из TIM1->CR1:
Bits 6:5 CMS[1:0]: Center-aligned mode selection
10: Center-aligned mode 2. The counter counts up and down alternatively. Output compare
interrupt flags of channels configured in output (CCxS=00 in TIMx_CCMRx register) are set
only when the counter is counting up
.


Надо проверить как повлияет на запрос UEV DMA.
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

КРАМ писал(а):Не использовать ДМА в ШИМ - значит грузить контроллер каждый период ШИМ
А на что еще тратить процессорное время? Наверное круто сделать все через DMA и вообще не использовать вычислительные мощи ядра, но зачем? Даже Cortex-M0 на 50 МГц сможет спокойно управлять двигателем, используя ШИМ 20 КГц (а больше и не нужно), навскидку потратив не более 20% своих мощностей.
menzoda писал(а):ОГРАНИЧАТ частоту ШИМ
Согласен, если необходимы сотни килогерц, тогда без DMA никак наверное. Если не нужно активно управлять частотой и амплитудой, то DMA тоже можно (но не обязательно) использовать. У uk8amk второй вариант, поэтому, если хочет, то пускай использует DMA.

Мне же всегда нужно было плавно менять частоту/напряжение и иногда форму сигнала для трех фаз, поэтому таблицы и DMA я не использовал никогда.
Ответить

Вернуться в «ARM»