А Keil юзать религия не позволяет? Сколько уже писано о убогости IAR вообще ...Леонид Иванович писал(а): У меня, например, в IAR отладчик чаще не работает, чем работает.
STM32 новичку в ARM что к чему
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
- Реклама
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
Заглядываем только в первый встретившийся?КРАМ писал(а):Примечание. В регистре RCC_CFGR оного не обнаружил...![]()
Спасибо.
Никогда с этим МК не работал. Но открыл RM, по диагонали прочитал SСС-секцию:
RCC_CFGR2, поля PREDIV[3:0]
Сколько раз говорили - ну непохожа STM-дока на AVR-стиль... Читать надо тщательнЕе...
С уважением,
Виктор.
Виктор.
Да, я тоже уже нашел.
АВР тут совершенно не причем.
Просто этот CFGR2 оказался на отшибе...
Сенкс.
АВР тут совершенно не причем.
Просто этот CFGR2 оказался на отшибе...
Сенкс.
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
А что такое "не на отшибе"? Это где?КРАМ писал(а):АВР тут совершенно не причем.
Просто этот CFGR2 оказался на отшибе...
Отсюда и предположение про AVR, у них "все в кучке, отшибов нет"...
С уважением,
Виктор.
Виктор.
- Реклама
На отшибе - это НЕ ЛОГИЧНО далеко от остальных делителей-умножителей.
Видимо разработчик включил его в архитектуру в последний момент...
Как я уже ранее говорил в другой теме, ограничение PLL диапазоном 16...48 МГц возможно благотворно влияет на потребление чипа, но делает почти бессмысленным большой выбор коэффициентов деления постскалера PLL...
Кстати, один интересный момент. К F0-дискавери прилагается демопрошивка. Так вот в ней в установке сисклоков нет включения этого предделителя в качестве шаблона при установке кварца. И в других примерах тоже нет.
Это дополнительно запутало при поиске...
Это так, офф... В остальном все ОК.
Видимо разработчик включил его в архитектуру в последний момент...
Как я уже ранее говорил в другой теме, ограничение PLL диапазоном 16...48 МГц возможно благотворно влияет на потребление чипа, но делает почти бессмысленным большой выбор коэффициентов деления постскалера PLL...
Кстати, один интересный момент. К F0-дискавери прилагается демопрошивка. Так вот в ней в установке сисклоков нет включения этого предделителя в качестве шаблона при установке кварца. И в других примерах тоже нет.
Это дополнительно запутало при поиске...
Это так, офф... В остальном все ОК.
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
Улыбнуло.КРАМ писал(а):На отшибе - это НЕ ЛОГИЧНО далеко от остальных делителей-умножителей.
Видимо разработчик включил его в архитектуру в последний момент...
С уважением,
Виктор.
Виктор.
Любому нелогичному действию должно быть какое то разумное объяснение...ut1wpr писал(а):Улыбнуло.Особенно мнение о разработчике.
Это не мнение о разработчике. Это ПРЕДПОЛОЖЕНИЕ о причинах его побудивших...
Вам же не кажется странным, что тот же самый дизайнер сгруппировал адреса регистров сообразно топологии периферии на кристалле.
А тут ПОСЛЕДОВАТЕЛЬНО расположенные цепи имеют разрыв в управлении... Лишние шины или лишний дешифратор...
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
Нет, не кажется. Чтобы прекратить этот гон, соглашусь с любым вашим утверждением. Ваш опыт в "ПОСЛЕДОВАТЕЛЬНО расположенные цепи имеют разрыв в управлении... Лишние шины или лишний дешифратор" вселяет твердую уверенность в отсутствии вашей вины в алогичности структуры Кортекса. Все. Стоп.КРАМ писал(а):Вам же не кажется странным,
С уважением,
Виктор.
Виктор.
обращаюсь к специалистам, хочу знать мнение
есть поделка - Вольтметр — амперметр с аналоговой шкалой на STM8S (http://radio.aliot.com.ua/?p=813).
автор выразил предположение, что можно безболезненно сменять STM8S103F3P6 на STM8S003F3?
>А можно ли перекомпилить данный проект под STM8S003 ?.
>>Под STM8S003F3 (TSSOP20) вроде бы как ничего менять и не надо, порты совпадают, ядро то же.
верно ли его утверждение?
просто не хочу регаться в еще одном месте, чтобы задать этот вопрос, тем более автор уже выразил свое мнение ...
есть поделка - Вольтметр — амперметр с аналоговой шкалой на STM8S (http://radio.aliot.com.ua/?p=813).
автор выразил предположение, что можно безболезненно сменять STM8S103F3P6 на STM8S003F3?
>А можно ли перекомпилить данный проект под STM8S003 ?.
>>Под STM8S003F3 (TSSOP20) вроде бы как ничего менять и не надо, порты совпадают, ядро то же.
верно ли его утверждение?
просто не хочу регаться в еще одном месте, чтобы задать этот вопрос, тем более автор уже выразил свое мнение ...
STM32F100
Не доходит один момент.
PWM center-aligned mode. Счётчик считает туда-сюда. Событие обновления UEV за весь период посылается один раз или дважды, когда наступает переполнение(upcount+downcount)?
Не доходит один момент.
PWM center-aligned mode. Счётчик считает туда-сюда. Событие обновления UEV за весь период посылается один раз или дважды, когда наступает переполнение(upcount+downcount)?
- Сообщения: 232
- Зарегистрирован: Вт май 08, 2012 10:42:29
Сегодня на F303 пробовал PWM с выравниванием по центру, использовал TIM3, за один период ( TIM3_IRQHandler ) вызывается дважды! при переходе через 0 и по центру!
Хочу использовать для управления асинхронным мотором.вызывается дважды!
Вроде для этого рекомендуют режим по центру. Я пока настроил по фронту, отладил алгоритм регулировки. Но что мне тогда делать с DMA? Получается таблицы синусов должны быть в 2 раза длиннее, т.е. каждая точка будет дублироваться? Как-то нелогично выходит.
- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Зачем вообще там использовать DMA? Мне кажется это очень неудобным, надо будет менять частоту, амплитуду, возможно форму сигнала, и каждый раз придется пересчитывать таблицы. Если не так, то поправьте меня, просто никогда даже в голову не приходило использовать DMA для управления двигателями.
- Сообщения: 232
- Зарегистрирован: Вт май 08, 2012 10:42:29
Не знаю нужен ли там DMA! но PWM с выравниванием по центру просто необходим!
Можно в прерывании проверять значение счетчика ARR и если в нем максимальное значение значит было прерывание по центру, и делать то что необходимо! а в другом случае просто вываливаться из прерывания, вот и будет тебе одно срабатывание! Надеюсь понятно изложил!
Можно в прерывании проверять значение счетчика ARR и если в нем максимальное значение значит было прерывание по центру, и делать то что необходимо! а в другом случае просто вываливаться из прерывания, вот и будет тебе одно срабатывание! Надеюсь понятно изложил!
- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Я бы не был так категоричен. Для большинства задач и без выравнивания сойдет, но если есть такая возможность, то почему бы и не использовать.optima писал(а):но PWM с выравниванием по центру просто необходим!
Не использовать ДМА в ШИМ - значит грузить контроллер каждый период ШИМа минимум на 24 машцикла только для "тары"... Столько занимает вход-выход при работе с ISR...menzoda писал(а):Зачем вообще там использовать DMA? Мне кажется это очень неудобным, надо будет менять частоту, амплитуду, возможно форму сигнала, и каждый раз придется пересчитывать таблицы. Если не так, то поправьте меня, просто никогда даже в голову не приходило использовать DMA для управления двигателями.
А еще и само тело обработчика...
Несложно понять, что порядка сотни машциклов будут выброшены из времени работы контроллера, а равно ОГРАНИЧАТ частоту ШИМ...
ЗАЧЕМ, если есть инструмент? Разве ресурсы времени контроллера бывают лишними?
Кроме того, ДМА подчиняется аппаратному тактированию от источника транзакций, что позволяет исключить разного рода стробоскопические эффекты от асинхронного обновления массива ШИМ из main по отношению к самому ШИМ.
Центральновзвешенный ШИМ не требует коррекции таблиц при расчете. Что удобно...
Пересчёт таблицы синусов я делаю только в момент пуска и стопа двигуна, чтобы избежать ударных токов через ключи(софт-старт режим). Остальное время(рабочий режим) он будет колбасить на полную мощность, по крайней мере я так думаю. И таблица получается неизменной. Регулировку частоты делаю через предделитель TIM1->PSC. И получается, что настроил DMA, включил таймер и ушел в сон или на медленные процессы(например опрос датчиков DS1820). Все остальное аппаратно. Только раз в секунду просыпаюсь для проверки напряжения, температуры и скалярной регулировки.
Да, это будет очень простая крутилка маленького трехфазного мотора от постоянного тока(солнечная панель). Поэтому большинство плюшек полноценных частотников невостребованы.
Обратил внимание на CMS из TIM1->CR1:
Надо проверить как повлияет на запрос UEV DMA.
Да, это будет очень простая крутилка маленького трехфазного мотора от постоянного тока(солнечная панель). Поэтому большинство плюшек полноценных частотников невостребованы.
Обратил внимание на 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
А на что еще тратить процессорное время? Наверное круто сделать все через DMA и вообще не использовать вычислительные мощи ядра, но зачем? Даже Cortex-M0 на 50 МГц сможет спокойно управлять двигателем, используя ШИМ 20 КГц (а больше и не нужно), навскидку потратив не более 20% своих мощностей.КРАМ писал(а):Не использовать ДМА в ШИМ - значит грузить контроллер каждый период ШИМ
Согласен, если необходимы сотни килогерц, тогда без DMA никак наверное. Если не нужно активно управлять частотой и амплитудой, то DMA тоже можно (но не обязательно) использовать. У uk8amk второй вариант, поэтому, если хочет, то пускай использует DMA.menzoda писал(а):ОГРАНИЧАТ частоту ШИМ
Мне же всегда нужно было плавно менять частоту/напряжение и иногда форму сигнала для трех фаз, поэтому таблицы и DMA я не использовал никогда.


