Более 5 лет программирую МК, часть знаний забывается если долго не использовать. Благодаря вашему видео очень быстро освежил память, спасибо!)
@ТёмнаясторонаСилы-з9э3 жыл бұрын
Кратко и информативно - плюс автору! Могу только дополнить, что в серии f303 advanced control таймеры (а это TIM1, TIM8 и TIM20) имеют возможность тактирования удвоенной частотой шины, если шина 72MHz, то частота тактирования 144MHz. Эта настройка осуществляется в регистре RCC->CFGR3, бит TIM1SW.
@АлександрКолянов-х3э2 жыл бұрын
Да просто опечатка В принципе разобрался Спасибо Вам за ответ
@ds40376 жыл бұрын
спасибо большое,дней 5 уже не мог разобраться и тут наткнулся на ваше видео!
@artsiomkazlouski5127 Жыл бұрын
Бомба пушка ! Ваши видео подтолкнули и помогли перейти с Arduino на stm Надо не часто, но как же stm поможет расширить возможности) спасибо
@zuckermanity5 жыл бұрын
На случай, если кому-то очень не хватает частоты ШИМа, но уходить с AVR не хочется, добавлю, что в копеечном attiny85 имеется высокоскоростной асинхронный таймер (Timer1 + PLL), который умеет работать на частоте 64 МГц. Что сходу дает частоту ШИМ 250 кГц. А если полная длительность импульса не требуется, можно ее уменьшить наполовину, и получить ШИМ 500 кГц.
@Vladimir_Zarubin5 жыл бұрын
А почему не хочется уходить с AVR??? Бегом надо бежать!!! Технический прогресс никогда не будет стоять на месте и ждать пока вы наиграетесь в ардуино.
@zuckermanity4 жыл бұрын
Не знаю, чем вам не угодил AVR, и куда вы хотите бежать, но в данной ситуации он полностью удовлетворяет поставленной задаче. Камни разные важны, камни разные нужны.
@dmitriibannikovasx3 жыл бұрын
Объясните мне, зачем нужно заносить значение заполнения шим напрямую в регистр? Чем это отличается от халовской функции SET_COMPARE? Благодарю заранее)
@Aleksandr_Sidorov5 жыл бұрын
Максимальную частоту PWM которую можно снять с шины это половина частоты самой шины , то есть если частота шины к примеру 80 мГц , то на выходе можно снять 40мГц максимум , хотя на крутых платах я не совсем добился частоты переваливающию за 50мГц , надо было еще подсказать зачем такие значения заносим в регистр напрямую , а то некоторым не совсем понятно или с ходу могут не понять , это значение половина значения периуда , тоесть нашего тикания , к примеру если периуд 200 то что бы получить 50 процентов заполнения ШИМ , то нужно просто взять е половинку 100, и тогда будет хороший меандр
@РоманТихомиров-у6е5 жыл бұрын
т.е по примеру выше, например для STM32F103C8T6 мы сможем получить ШИМ свыше 35 мГц?
@АндрейКапитонов-д7й5 жыл бұрын
Доброго дня. Вы очень интересно всё объясняете. Можно вас попросить записать видео по прерываниям в stm32 совместно с работой энкодера для меню. За ранее благодарен за ответ.
@АлександрКолянов-х3э2 жыл бұрын
Спасибо за содержательные ролики. Не могли бы вы поднять тему регулировки Dsad time при комплементарном pwm
@VladimirMedintsev2 жыл бұрын
Может dead time? Ну типа "мертвое время"?
@kazimiralmazov22454 жыл бұрын
Владимир Спасибо!! Только по вашему видео получилось плавно моргать светодиодом на TIM2 на процессоре STM32F103. Материал усваивается,когда на столе получилось все без ошибок и потом уже легче осваивать материал!!! В каком куске кода идет плавное включение диода? Выключение плавное,а вот включение светодиода быстрое.. Это если вариант с одним диодом. Разобрался! CCR2 CCR3 Спасибо.
@ivanrusev22707 ай бұрын
А как же определить какой порт нужно настроить на канал ШИМа .В Stm32f1 нашёл.А в Stm32f4 ?
@МихаилТиунов-с7д3 жыл бұрын
Здравствуйте Владимир. Подскажите пжлст простой способ преобразовать ШИМ в напряжение 0...10 В. Для управления частотником. Точность сильная не нужна - у меня есть обратная связь - она подстроит.
@VladimirMedintsev3 жыл бұрын
Конденсатор и резистор. Проще способа нету. На конденсаторе измеряем напряжение.
@МихаилТиунов-с7д3 жыл бұрын
@@VladimirMedintsev А 10В откуда возьмется ? Операционник?
@VladimirMedintsev3 жыл бұрын
Операционный усилитель.
@dmitriibannikovasx Жыл бұрын
Разве предделитель и период нужно выбирать не с учетом Prescaler = Желаемый_предделитель - 1 ? Ведь там минимальное значение предделителя = 0, но по сути частота делится на 1. Значит, если мы хотим разделить частоту на 8, то нужно выставить значение 7. (та же логика и с периодом)
@ghennadiilevandovici8581Ай бұрын
Да, 8 это деление на 9
@РоманТихомиров-у6е5 жыл бұрын
Можно пример получения 15-35мГц ШИМ?
@zisoua4 жыл бұрын
Добрый день, что можете сказать про dsLogic - насколько он хорош в работе и где вы его брали ? Спасибо.
@VladimirMedintsev4 жыл бұрын
Для большинства работ вполне подходит. К работе претензий нету. Брал на каком-то сайте уж и не вспомню где.
@zisoua4 жыл бұрын
@@VladimirMedintsev Спасибо, а по цене не помните как на офицальном или дешевлен, а то сейчас я понял появились клоны на али. и как можно понять клон или оригинал?
@VladimirMedintsev4 жыл бұрын
Когда я покупал клонов еще не было. А официальный стоил 60 долларов.
@СергейСтрелочных-и9г Жыл бұрын
Добрый день. Подскажите, как можно присвоить значение счётчика циклов REP (0-255), какой либо переменной для МК STM32F103C8T6.
@oleksandrhusiev65446 жыл бұрын
У меня один вопрос, почему все снимают видо про Keil, неужели так плох Atollic? Но спасибо, видео очень хорошее!
@VladimirMedintsev6 жыл бұрын
А какая разница? Это всего лишь IDE каждый выбирает что ему удобнее. Если вам по какой-то причине удобнее использовать Atollic, то вы можете абсолютно свободно это делать.
@ugene40635 жыл бұрын
Потому что кеил понятнее и удобнее. Что называется сел и поехал.
@maksympavlenko53053 жыл бұрын
@@ugene4063 атолик разве не сел и поехал? Настроил дебаг конфигурейшн и погнал
@sandrok143 жыл бұрын
Доброе время суток! Не подскажите как лучше поступить. У меня 4 драйвера (drv8432) на 4 мотора. В отличии от некоторых драйверов у него 2 входа ШИМ для изменения направления вращения мотора. Можно ли использовать 1 ШИМ с stm32 с двумя выходными каналами. И направление регулировать CCR регистром, по очереди включаяя и отключяя выходы?
@azzzza99576 жыл бұрын
А есть ли возможность проверить максимальную частоту работы GPIO (GPIOx-> OSPEEDRx |= {0x1,0x2,0x3}) с помощью PWM (TIMx->ARR = 2, 3, 4; TIMx->CCRx = {1..3})? к сожалению нет в хозяйстве ни осциллографа ни анализатора уровней ☹
@VladimirMedintsev6 жыл бұрын
Честно говоря я не понял чего бы вы хотели проверить. Частоты переключения gpio в 2 мегагерца я использовал.
@VladimirMedintsev6 жыл бұрын
В смысле хотели бы посмотреть как начнут фронты заваливаться у сигналов? Это можно но уже завтра.
@azzzza99576 жыл бұрын
именно фронт. спс!!
@VladimirMedintsev6 жыл бұрын
Вот тут я думаю вы найдете ответ на свой вопрос - kzbin.info/www/bejne/rXexY36VdrGHbs0
@azzzza99576 жыл бұрын
Огромное спасибо!
@maksympavlenko53053 жыл бұрын
Не подскажешь как сгенерировать опорную частоту 32.768khz для stm32f103c8t6? Нужно для датчика. В MCO не поддерживается LSE с 32.767khz частотой. Поэтому вроде как остаётся только вариант с таймером и ШИМ. Если частота 72mhz то 2197 это делитель, получится частота 32.771. а как это все организовать в cube mx?
@dmitriibannikovasx3 жыл бұрын
У тебя есть два способа задать частоту: это предделитель (prescaler) и счетчик (counter). Чтобы просто сгенерировать частоту, не нужно использовать ШИМ. Нужно в конфигурации канала таймера выбрать OUTPUT COMPARE. И подбирая значения делителя и счетчика можно добиться нужной частоты. Для твоего случая достаточно установить предделитель = 70, а счетчик = (нужная частота) - 1, то есть 32767. Ну предделитель устанавливается в зависимости от частоты тактирования таймера.
@maskon786 жыл бұрын
А можно пояснить для чайников, что за ошибка в HAL?
@VladimirMedintsev6 жыл бұрын
Скорее не ошибка а дибилизм. Нет нормальной функции для изменения скважности генерируемого сигнала. Запустить-остановить генерацию можно, а изменить скважность только через перенастройку. Хотя делов то всего одно значение в регистр записать.
@maskon786 жыл бұрын
Ну, тогда это не ошибка... :)
@VladimirMedintsev6 жыл бұрын
Вот список функций: Time PWM functions. This section contains the following APIs: HAL_TIM_PWM_Init() HAL_TIM_PWM_DeInit() HAL_TIM_PWM_MspInit() HAL_TIM_PWM_MspDeInit() HAL_TIM_PWM_Start() HAL_TIM_PWM_Stop() HAL_TIM_PWM_Start_IT() HAL_TIM_PWM_Stop_IT() HAL_TIM_PWM_Start_DMA() HAL_TIM_PWM_Stop_DMA() Как вы думаете какая из них позволяет изменять скважность генерируемого ШИМ сигнала?
DeInit, меняем нужное, потом опять Init... :) Так?
@MrVladkk Жыл бұрын
Здравствуйте! Скажите пожалуйста, можно при генерации ШИМ сигнала выставить значение периода меньше 128, чтобы получить больше значение частоты, чем 560 кГц? Например период 64? Что будет?
@VladimirMedintsev Жыл бұрын
Вы еще раз разберитесь со значениями регистра. Для ШИМ сигнала высокой частоты есть HRTIM.
@MrVladkk Жыл бұрын
@@VladimirMedintsev Спасибо за информацию
@MADBASS775 жыл бұрын
Спасибо за столь познавательное видео!!! Подскажите пожалуйста, у меня STM32F103 и мне нужно с него получить 2 рабочие частоты 30кГц и 100кГц. Т.к. они будут использоваться для усилителя и импульсного блока питания хотелось бы понять, надо ли использовать внешний кварцевый резонатор или нет и реально ли получить две рабочие частоты с разной скважностью и периодом 50!50? Заранее спасибо Это видео вселяет надежды)
@VladimirMedintsev5 жыл бұрын
Да, это возможно. Но нужно понимать, что внутренняя RC цепочка имеет отклонение по частоте гораздо больше чем кварцевый резонатор. Если указанная в даташите точность вас устраивает то внешний кварц не нужен.
@ugene40635 жыл бұрын
Частота гулять будет по температуре.
@oleksandrhusiev65446 жыл бұрын
Попробовал повторить и не понял где там вообще светодиоды в коде описаны, их переключения нигде же нет или я чего то не понимаю?
@oleksandrhusiev65446 жыл бұрын
Сори, разобрался.
@fanatnauki6 жыл бұрын
Даааа, работает! Частоту 100 кГц набирает в лёгкую! В avr наверное уже не вернусь. Владимир - Вы мой личный Иисус Христос! Только у меня нет файла tim.c, все настройки идут в main. Походу кейл обновили. PS. Вот еще что. В avr был глюк - когда ШИМ подбирался к крайниму верхнему значению, он не заполнял скважность на 100%, была пауза в один такт (провал шириной в одну микросекунду). Об этом даже в эрратах предупреждали, приходилось ставить дополнительное IF, чтобы убрать этот провал. В stm такого нет, только в счетный регистр надо записывать на единичку больше (не 4096, а 4097, иначе тоже появляется провал).
@VladimirMedintsev6 жыл бұрын
Генерировать настройки периферии в один файл - main.c или разнести по файлам, например spi.c, i2c.c, tim.c задается в настройках проекта в кубе. Удобнее чтобы не плодить кашу из кода.
@VladimirMedintsev6 жыл бұрын
И это... Что касается PWM, само понятие подразумевает что существуют чередующиеся периоды высокого и низкого уровней повтопяющиеся с определенной частотой. Без как вы выразились провала, это уже не ШИМ, а просто сигнал логического уровня. Записывая такие значения в регистр вы просто нарушаете нормальную работу генератора ШИМ.
@fanatnauki6 жыл бұрын
Ну вот работает у меня step-down преобразователь со 100% мощностью. Это значит надо полностью открыть ключ (мощности киловаттные, любая лишняя дерготня мне кажется - ни к чему). А из-за этого короткого провала получается скважность не 100%, а 99,999% Вы думаете, что записывать в регистр на единицу больше это ошибка (и читерство)? )))
@VladimirMedintsev6 жыл бұрын
Я ничего не думаю. Есть у меня причины не любить ШИМ со скважностью 100% и во всех случаях, когда это только возможно я заменю его на 99.99%. Это долгая дискуссия и слишком долгое обьяснение. Ну реально вагон времени потратить не хочется. Неспроста и в процессорах 99.999% скважность стоит. Не думаете же вы что и в STM и в AVR ошибка. Более того в эрраташите это обозначено как особенность а не как ошибка.
@Mozobretenie2 жыл бұрын
Только не скважность 50%, а рабочий цикл
@sovchem12755 жыл бұрын
Надо что то написать для улучшения статистики канала.... Раз уж по видео придраться не к чему :)) Сегодня выпал в осадок на али, F407VGT стали по 220р ! Еще они.... будут умолять нас кубом не пользоваться.. :)) И появился китайский клон CS32F103C8T6 , но почему то по 50р, как и оригинал, видимо скоро подешевеет...
@dmitriibannikovasx3 жыл бұрын
Ммммм) год назад.... Теперь зайди сейчас на али и посмотри сколько это все стоит)