Jump to content
Fordli

Как изменить выходную частоту ШИМ при программировании stm32 с помощью Arduino

Recommended Posts

Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц.
Я хотел бы знать, как изменить частоту ШИМ простым и легким способом.
Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?

Share this post


Link to post
Share on other sites
6 часов назад, Fordli сказал:

есть ли аналогичный метод для stm32?

Есть документация на камень. Этого вполне достаточно, чтобы знать как сделать, и можно ли сделать.

Share this post


Link to post
Share on other sites
6 часов назад, Fordli сказал:

как изменить частоту ШИМ простым и легким способом.

Выкинуть либы ардуйни и написать что-то такое:

	RCC->APB2ENR |=  RCC_APB2ENR_TIM1EN;   

	TIM1->PSC = 89;  	
	TIM1->ARR = 3;
	TIM1->CCER |= TIM_CCER_CC1E;	
	TIM1->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2;
	TIM1->CCR1 = 2;	
	TIM1->BDTR |= TIM_BDTR_MOE;
	TIM1->CR1 |= TIM_CR1_CEN;

Вот PSC - предделитель тактовой частоты, которая поступает на таймер, а ARR - то, до скольки считает таймер. Соответственно, меняя значение PSC можно менять частоту ШИМ.

Share this post


Link to post
Share on other sites

Оценка точности измерения тока интеллектуальными силовыми ключами PROFET

Интеллектуальные силовые ключи PFOFET производства Infineon могут измерять ток нагрузки с разной точностью, зависящей как от абсолютной величины потребляемого тока, так и от технологии производства конечной продукции, в частности – от наличия или отсутствия этапа калибровки. В статье подробно разбирается расчет коэффициента передачи тока на примере ключа BTS7004-1EPP.
Подробнее

19.07.2021 в 16:59, BARS_ сказал:

Выкинуть либы ардуйни и написать что-то такое:


	RCC->APB2ENR |=  RCC_APB2ENR_TIM1EN;   

	TIM1->PSC = 89;  	
	TIM1->ARR = 3;
	TIM1->CCER |= TIM_CCER_CC1E;	
	TIM1->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2;
	TIM1->CCR1 = 2;	
	TIM1->BDTR |= TIM_BDTR_MOE;
	TIM1->CR1 |= TIM_CR1_CEN;

Вот PSC - предделитель тактовой частоты, которая поступает на таймер, а ARR - то, до скольки считает таймер. Соответственно, меняя значение PSC можно менять частоту ШИМ.

Спасибо!

Share this post


Link to post
Share on other sites

STMicroelectronics: электростатический разряд больше не проблема

Защита от статического электричества необходима каждому современному устройству. Компания STMicroelectronics представляет решения, соответствующие стандарту IEC61000-4-2, а также специальное приложение PROTECTION FINDER, которое поможет легкого и эффективно подобрать необходимые компоненты. Рассмотрим практические примеры защиты от ESD, отраслевые стандарты и ряд ключевых параметров важных при проектировании электростатической защиты устройств.

Подробнее

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • "Похвастаюсь" и я. Года 3 назад брал усилитель AIYIMA,  а  позже Kentiger HY-400. По отзывам,  оба усилителя просто хифи, что подтверждалось лейболом на корпуусе. ))) Усилители -откровенное гамно.   Вот этот Кентигр жутко фонил, реагировал на свою же "цветомузыку",. "ловил" более 40 каналоов-пустышек. трещал как старое радио и грелся адски от возбуда. Открыл спор, который дллился более месяца. Предоставил фотто и видое. Плата была не отмыта, множественные непропаи/сопли, полное отсутствие термопасты, все СП трещат. Продаван упирался до последнего. Спор я выиграл....но к тому времени мои шаловливые ручки успели поковыряться в потрохах и устранить многие неисправности. Пропаял и отмыл всю плату, заменил все емкости по питанию, порезал на клочки всю землю, разбил их на сигнальную и силовую и соединил толстыми  проводками звездой, выпал все СП, отмыл и смазал их. При сборке мс смазал термопастой. Единствено, не стал разбираться с помехамии "цветомузыки", просто отсоединил разъем. Усилитель начал играть без фона и возбуда на твердую 4, перестал греться как утюг.  Аудиошнуры и в правду, отвратительного качества. Их я паяю с качественных аудокабелей, делая  как можно короче. Длину шнуров подбираю по месту. Особое внимание уделяю ИБП. Они тоже есть разного качества. Покупал 2 одинаковым ИБЛ 12в 2а в одной точке в разное время. Вторая фонит очень сильно. Потом купил 3 ИБП от ноутов на разные напряжения по бросовой цене в местном салоне по ремонту оргтехники. Вот они не "шумят"! Если ваш эквалайзер достался вам на халяву и у вас есть опыт и ее схема,то можно попробовать ее восстановить. В противном сучае, дешевле продать, пока ее не спалили.  
    • Автор говорит, что идея почерпнута из УМЗЧ Митрофанова. Но в УМЗЧ Митрофанова ЭА формируется отдельными цепочками. Сам термоузел в УМЗЧ Митрофанова классический и транзистор в нем работает при небольшом напряжении К-Э, в отличие от авторского варианта и смещение регулируется между базами без всяких танцев с бубном, в отличие от авторского варианта. КМК, авторский вариант ближе к варианту Г.Брагина по структуре.
    • Мне это напоминает старые часы - ходики, гирю поднял и поехали. Ни тебе химии, ни аккумуляторов. Высота подъёма гири - время. Надёжней не бывает. И тока нет - совсем. В ""варках(крышка с вентилятором и теном) механические таймеры стоят - но на 30 мин. максимум. И контакты уже есть. Маятник замедлить. В место кнопки - ручку взвёл. На работе валяется.
    • Что то наподобие  двух пневматических реле с задержкой.
    • Слушаю "Приемник на RDA 5807 с WH1602 RDS"  и  рисую плату для ATMega8 в  корпусе QFP-32. В планах приемники на других дисплеях - карманные и переносные. Прекрасные прошивки с подсказками не экране стимулируют посмотреть все живьем. Фотки делаю стареньким Canon в режиме микросъемки с отключенной вспышкой, не все кадры четкие, но выбрать можно. Редактирую в XnView.
    • Ну да цанги на dremell) Вы его хоть в руках держали? Там тоже биение есть Вот когда вижу подобные посты заумные, ассоциации что человек возможно знает теорию, а на практике сидит в кресле ковыряясь в носу, выдвигая свои бредовые идеи еле нажимая на клавиши клавиатуры стараясь не промахнуться! 
  • Similar Content

    • By Julie Pie
      Всех приветствую!

      Сразу обозначу - опыта ноль. Прошу экспертной помощи и разъяснений.
      Есть задача - собрать проект лёгкого дрона, переносящего с собой малый груз (просто картонную коробку 10х10х10 см, для начала),
      оперирующего на горизонтальной сетке, где каждая секция пронумерована и сбрасывающий (а лучше - аккуратно кладущий) груз в определенную секцию.

      Итого требуется:
      1) Определить способ поиска позиции дрона относительно сетки (и необходимой ячейки соответственно).
      2) Определить какая Arduino потребуется.
      3) Определить прочие необходимые для сборки компоненты.

      Заранее спасибо.
    • By dim21841
      Добрый день.
      Прошу помощи в выборе контроллера stm32 под следующую задачу:
      Bluetooth HC-05 (1 uart) необходимо связывать по uart с:
      1) MAX232 (2 uart) по 9600, иногда 115200,
      2) с Atmega328 (3 uart) по 115200.
      Задача stm32 выставлять скорость на hc-05 и соединять между собой нужные uart в соответствии с выбором (4 switch в dip-8 корпусе).
      Кто может что-то посоветовать?
      В stm32 пока совсем начинающий.
      STM32 выбрал потому что в перспективе хочу добавить возможность параллельно  выводить данные и на lcd.
      Зарание благодарен за помощь.
    • By Serhii Serheiev
      Помогите пожалуйста советом. Бьюсь несколько дней с опцией ADC.
      Я использую двухканальный АЦП IN0 и IN1 на микроконтроллере STM32L010RB через библиотеку HAL.
      Если проверять по отдельности, все в порядке, но когда я проверяю вместе, у меня все время одна и та же проблема: первый канал перезаписывает данные на втором канале, и у меня одинаковые данные на IN0 и IN1 в терминале
      Функция для выбора IN0.
      void ADC_Select_CH0(void) { ADC_ChannelConfTypeDef sConfig_0 = {0}; sConfig_0.Channel = ADC_CHANNEL_0; sConfig_0.Rank = 0; if (HAL_ADC_ConfigChannel(&hadc, &sConfig_0) != HAL_OK) { Error_Handler(); } } Функция для выбора IN1
      void ADC_Select_CH1(void) { ADC_ChannelConfTypeDef sConfig_1 = {0}; sConfig_1.Channel = ADC_CHANNEL_1; sConfig_1.Rank = 0; if (HAL_ADC_ConfigChannel(&hadc, &sConfig_1) != HAL_OK) { Error_Handler(); } } основной цикл
      while(1) { ADC_Select_CH0(); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 100); Axis[0] = HAL_ADC_GetValue(&hadc); HAL_ADC_Stop(&hadc); ADC_Select_CH1(); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 100); Axis[1] = HAL_ADC_GetValue(&hadc); HAL_ADC_Stop(&hadc); sprintf(Tx_Data, "Axis X: %d;\r\nAxis Y: %d;\r\n\n\n", Axis[0], Axis[1]); HAL_UART_Transmit(&huart2, (uint8_t*)Tx_Data, strlen(Tx_Data), 1000); } ADC конфигурация:
      static void MX_ADC_Init(void) { hadc.Instance = ADC1; hadc.Init.OversamplingMode = DISABLE; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hadc.Init.Resolution = ADC_RESOLUTION_12B; hadc.Init.SamplingTime = ADC_SAMPLETIME_160CYCLES_5; hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ContinuousConvMode = ENABLE; hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.Init.DMAContinuousRequests = DISABLE; hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerFrequencyMode = DISABLE; hadc.Init.LowPowerAutoPowerOff = DISABLE; if (HAL_ADC_Init(&hadc) != HAL_OK) { Error_Handler(); } }  
    • By Родион Евченко
      Здравствуйте! Не могу понять, почему на дисплей выводятся только черные квадраты, если смотреть прямо, а если под углом, то видно строку, которую я вывожу. Как убрать эти квадраты, а строку сделать видимой?
    • By Vlad Marinenko
      Нужна помощь гуру по sg3525
      имеется китайский модуль,  при запуске преобразователя(12-220)начинают нагреваться ключи при совсем небольшой нагрузке(75 вт лампочка,  трансформатор ~300вт)без нагрузки меандр приблизительно "нормальный"  -  на лично мой взгляд неопытного осцилографера
      Но самое интересное начинается когда реализовал обратную связь на оптроне 817-ом и на осцилограмме вылазит какой-то мини меандр при уменьшении скважности и сопровождается сильным нагревом ключей(irf3205) 







×
×
  • Create New...