|
stm32f4 mem->dma->gpio.odr tim6, не понимаю природу косяка |
|
|
|
 |
Ответов
|
Jan 25 2018, 19:02
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(MiklPolikov @ Jan 25 2018, 20:27)  То же люблю делать ШИМ черезтДМА. Объясните по-русски что такое "джиттер"? Может колебания частоты? У Вас DMA что делает? Пишет в регистры управления GPIO пинами? Чтобы импульсы ШИМ определённой длительности сгенерить? А теперь подумайте, что будет если таймер выставил запрос обслуживания к DMA, а в этот момент CPU выполняет команду PUSH {R0-R12,LR} ? Как изменится длительность импульса ШИМ? А если работают ещё и другие bus-masters и они тоже к шине обращаются? Вот тогда и получите джиттер - длительность импульсов ШИМа будет болтаться.
|
|
|
|
|
Jan 29 2018, 23:24
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(klen @ Jan 30 2018, 00:25)  240кГц, 50 отсчетов скважности, это примерно 5.6 битный цап. 16 каналов. работает довольно дубово, то есть хорошо. у меня предназначено для управления 16 ключами в зарядной станции. что бы все ключи не втыкались одновременно, фазы включения разнесены со сдвигом на 1/16 периода. частоту несущей меняю по псевтослучайному закону в близи 240кгц перегружая регистр аrr , это размазывает спектр помех и убирает пики гармоник. проц учавствует в этом только когда нужно изменить скажности каналов. и никаких прерываний. Жесть какая! Такой паровоз на квадратных колёсах. Никаких прерываний, зато непрерывный DMA-поток и к тому же - накладывающий ограничения на другие процессы. У вас в устройстве больше ничего кроме этого паровоза нет? А какой практический смысл было городить такое, а не взять просто более подходящий МК с достаточным количеством аппаратных ШИМ-ов? И сделать всё с характеристиками на порядок лучше, а не на уровне ардуины.
|
|
|
|
|
Jan 30 2018, 11:09
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(jcxz @ Jan 30 2018, 02:24)  Жесть какая! Такой паровоз на квадратных колёсах. Никаких прерываний, зато непрерывный DMA-поток и к тому же - накладывающий ограничения на другие процессы. У вас в устройстве больше ничего кроме этого паровоза нет? ШИМ на ДМА- отличнейшее решение. Подозреваю, что "паровоз на квадратных колёсах" как раз у jcxz: что это за риал-тайм процессы, требующие микросекундной точности, которые висят на МК ? Наверно на МК повешено то, что надо было делать аппаратно на дискретных элементах ? Да и вообще, в любой большой программе с множеством процессов, с RTOS, риал-тайм сильно осложняется.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jan 30 2018, 11:29
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(MiklPolikov @ Jan 30 2018, 13:09)  ШИМ на ДМА- отличнейшее решение. Отличнейшее??? Если для вас ардуино-подход - это отличнейшее решение, то больше говорить не о чём. 5.5 бит точность и 240 кГц да с кучей других минусов - это отличнейшее решение??? Это даже ШИМ-ом назвать можно только с большой натяжкой (непредсказуемая болтанка фронтов сигналов из-за джиттера, и гуляние выходного сигнала из-за этого и прочие прелести - да, это конечно отлично). Цитата(MiklPolikov @ Jan 30 2018, 13:09)  Подозреваю, что "паровоз на квадратных колёсах" как раз у jcxz: что это за риал-тайм процессы, требующие микросекундной точности, которые висят на МК ? Что именно у меня "висит на МК"? С чего Вы вообще такое взяли? У нас вообще-то на таком ШИМ-е висит управление 3-фазным PMSM-движком с мощностью до мегаватта в импульсе. Если бы такое повесили на "отличнейшее решение", то он при первом же пуске разлетелся бы на куски. У нас тут проблемы с некорректным учётом длительности интервалов dead-time длительностью в пару мкс в расчётах векторного управления уже приводят к косякам на такой моще. Вот для того и нужна точность. И даже не микросекундная, а в сотни нсек. Цитата(MiklPolikov @ Jan 30 2018, 13:09)  Да и вообще, в любой большой программе с множеством процессов, с RTOS, риал-тайм сильно осложняется. Это - да. А когда это множество процессов (с множеством периферии в них активируемой) начнёт накладываться по времени друг на друга, вот тогда обычно и начинаются всякие чудеса в самодельных паровозах слепленных из чего попало.
|
|
|
|
|
Jan 30 2018, 11:56
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(jcxz @ Jan 30 2018, 14:41)  Я не спорю. Просто не понятно почему выбран один из самых неудачных для такой задачи МК и восторги Например потому что светодиодной мигалкой из 20 светодиодов должен управлять самый дешёвый проц STM32F0 в корпусе LQFP32. Восторги от того, что на таком простом МК получилось сделать 20и канальный ШИМ. Китай поднялся на однослойных платах без маски, с напаянными перемычками. Что бы на таких платах работали 1000-ваттные компьютерные блоки питания, кому-то пришлось героически преодолевать трудности. Объясните им, что они не правы. Одна из граней профессионализма- умение видеть компромисс между затратами и результатом. В условиях капитализма "сделано на века, работает идеально" ни кому не надо. Надо "работает и конкурентноспособно" Попробуйте-ка тут на форуме обсудить проект 1КВт AC/DC на однослойке, заодно задав вопрос про безопасные зазоры при отсутствии маски.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jan 30 2018, 12:02
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(MiklPolikov @ Jan 30 2018, 13:56)  Например потому что светодиодной мигалкой из 20 светодиодов должен управлять самый дешёвый проц STM32F0 в корпусе LQFP32. Восторги от того, что на таком простом МК получилось сделать 20и канальный ШИМ. Про дешёвый - согласен. Но автор то говорит о STM32F4, а не STM32F0. Правда он не указал какой конкретно STM32F4, чтобы можно было оценить верно. За упомянутый мной XMC4500 (на котором всё это и на порядок больше делается легко и просто) в минимальной комплектации Компэл к примеру просит всего немного больше 6$. А за МК ТС-а сколько?
|
|
|
|
|
Jan 31 2018, 00:41
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(jcxz @ Jan 30 2018, 15:02)  Про дешёвый - согласен. Но автор то говорит о STM32F4, а не STM32F0. Правда он не указал какой конкретно STM32F4, чтобы можно было оценить верно. За упомянутый мной XMC4500 (на котором всё это и на порядок больше делается легко и просто) в минимальной комплектации Компэл к примеру просит всего немного больше 6$. А за МК ТС-а сколько? stm32f405 64ногий корпус выбор уже был сделан до шимов. есть sdk, есть решения по обвязке, ест опыт, есть все, есть решаемые попутные задачи. нет только времени на не освоенные решения. к марту нужно выкатывать аппарат в поля. позже может уже не понадобится. по моему опыту никаких проблем в задачах реального времени нет ни с FreeRTOS ни без - это вопрос архитектуры программки. например разработан 80 вольтовый векторный регулятор БКЭД, как раз с FreeRTOS. и да! если это взлетит и покажет надежность заложенных решений ... тогда все всерьез и переделывать на чем то вроде 1986ВЕ8Т
|
|
|
|
Сообщений в этой теме
klen stm32f4 mem->dma->gpio.odr tim6 Jan 25 2018, 11:37      jcxz Цитата(klen @ Jan 25 2018, 22:56) приорит... Jan 25 2018, 21:39          klen Цитата(jcxz @ Jan 30 2018, 02:24) А какой... Jan 30 2018, 05:38           jcxz Цитата(klen @ Jan 30 2018, 07:38) какой м... Jan 30 2018, 10:31                 jcxz Цитата(klen @ Jan 31 2018, 02:41) тогда в... Jan 31 2018, 06:43                halfdoom Цитата(jcxz @ Jan 30 2018, 15:02) А за МК... Jan 31 2018, 06:46 stas00n Не спец по F4, даташит не читал, но в порядке выдв... Jan 25 2018, 16:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|