Подскажите пожалуйста, есть ли возможность понизить частоту PWM, без изменеия фьюзов у Atmega328 или STM32F103 до уровня 150-200khz. И что значат PWM 2/3, PWM 1/3N.... у STM32 ?
А про Atmega328, - частоту Вы можете устанавливать сами безо всякого изменения фьзов. Но 150-200 кГц не получится - слишком много. Хотя, смотря какое разрешение Вас устроит, конечно.
Но, опять же к Ардуино это не имеет отношения, кстати.
150-200 много? Стоит стандартный ардуиновский бутлодер, на форумах пишут, PWM работает на частоте 500кгц, неужели нельзя понизить программно. По поводу stm32, arduino же их тоже поддерживает. Есть даже официальная плата Star OTTO
Спасибо, разобрался с Atmega, да и нужна частота 200Гц. Единственное хотелось бы stm32 задействовать, а то atmega последняя осталось. Команда для Atmega (TCCRB) не подходит для stm в arduino ide...
Микроконтроллеры STM32 - это совсем другая архитектура (ARM). Они очень сильно отличаются от микроконтроллеров ATmega с архитектурой AVR. Там совсем другие регистры и они по-другому настраиваются.
Я беру голые чипы 328p, просто цепляю кварц и заливаю бутлодер, значит заводские аппаратные настройки стоят.
1) Нет, вместе с прошивкой бутлоадера прошиваются и ардуиновские фьюзы.
2) О каких "аппаратных настройках" вы говорите? Если о аппаратных таймерах, то они настраиваются не через фьюзы, а программно (в скетче) через регистры.
В принципе да. Во фьюзах настраивается система тактирования микроконтроллера, от которй зависит тактовая частота. От которой, в свою очередь, зависит аппаратный таймер. Если используется внешний кварц, то единственное возможное изменение - поделить частоту на 8.
Я беру голые чипы 328p, просто цепляю кварц и заливаю бутлодер, значит заводские аппаратные настройки стоят.
Не знаю, что Вы понимаете под выражением "заливаю бутлоадер". В IDE говорите "Записать загрузчик"? Если так, то ладно, а если просто грузите его туда программатором, то неплохо бы и фьюзы выставить, а то заводсткое умолчание - 1МГц и "нафиг Ваш кварц".
Не знаю, что Вы понимаете под выражением "заливаю бутлоадер". В IDE говорите "Записать загрузчик"? Если так, то ладно, а если просто грузите его туда программатором, то неплохо бы и фьюзы выставить, а то заводсткое умолчание - 1МГц и "нафиг Ваш кварц".
Да записать загрузчик.
В общем не знаю на каких частотах работает PWM на STM32, но принимающее устройство допускает частоту 150-200 гц, и при таком включении не работает по 20% от верхнего и нижнего пределов, без осциллографа не разберешся.
И получается, атмегу настроить на эту частоту не просто....
В общем не знаю на каких частотах работает PWM на STM32, но принимающее устройство допускает частоту 150-200 гц, и при таком включении не работает по 20% от верхнего и нижнего пределов, без осциллографа не разберешся.
И получается, атмегу настроить на эту частоту не просто....
Если Вым нужен ШИМ не на всех 6 ногах, причем без отказа от внутренних часов, а достаточно 1-2, то делается достаточно элементаоно. Только верхний предел при этом будет не 255, а меньше.
Мне нужен ШИМ на определенных частотах, цена микроконтнтроллера не значительна, достаточно с одного контроллера один ШИМ, с таобао заказал осцилограф, когда придет станет понятно на каких частотах работать и что выдает Atmega и Stm
На Atmega, pwm что то сильно плох, и регулируется тяжело...
В СТМ32 4 таймера и у каждого 4 канала ПВМ. Первая цифра - номер таймера, вторая - номер канала этого таймера. У первого таймера ещё и комплементарные выходы, отсюда и буква "N", т.е. это инверсные выходы канала.
Про stm - идите на профильный форум.
А про Atmega328, - частоту Вы можете устанавливать сами безо всякого изменения фьзов. Но 150-200 кГц не получится - слишком много. Хотя, смотря какое разрешение Вас устроит, конечно.
Но, опять же к Ардуино это не имеет отношения, кстати.
150-200 много? Стоит стандартный ардуиновский бутлодер, на форумах пишут, PWM работает на частоте 500кгц, неужели нельзя понизить программно. По поводу stm32, arduino же их тоже поддерживает. Есть даже официальная плата Star OTTO
Вы явно путаете... По дефолту частота ШИМ около 500Гц, с помощью коэфф. деления можно задавать от 30Гц до 31кГц.
/* Constants for the PWM frequency */
/*
Const Count Freq(Hz)
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125 // частота по умолчанию
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
*/
на форумах пишут, PWM работает на частоте 500кгц,
Не внимательно читаете. На форумах пишут не кГц, а Гц. Там около 490Гц (герц).
Стоит стандартный ардуиновский бутлодер
Бутлоадер никак не влияет на частоту ШИМ. Она зависит от тактовой частоты микроконтроллера, настройки аппаратнорго таймера, предделителя.
Спасибо, разобрался с Atmega, да и нужна частота 200Гц. Единственное хотелось бы stm32 задействовать, а то atmega последняя осталось. Команда для Atmega (TCCRB) не подходит для stm в arduino ide...
Я беру голые чипы 328p, просто цепляю кварц и заливаю бутлодер, значит заводские аппаратные настройки стоят.
Микроконтроллеры STM32 - это совсем другая архитектура (ARM). Они очень сильно отличаются от микроконтроллеров ATmega с архитектурой AVR. Там совсем другие регистры и они по-другому настраиваются.
Гугл поможет - https://www.google.com/search?q=stm32+таймеры
Это я уже понял, когда пытался скомпилировать библиотеки на нестандартные дисплеи, да и стандартные не влазят на дешевые stm))
Я беру голые чипы 328p, просто цепляю кварц и заливаю бутлодер, значит заводские аппаратные настройки стоят.
1) Нет, вместе с прошивкой бутлоадера прошиваются и ардуиновские фьюзы.
2) О каких "аппаратных настройках" вы говорите? Если о аппаратных таймерах, то они настраиваются не через фьюзы, а программно (в скетче) через регистры.
Насколько я знаю от фьюзов зависит соотношение частоты контроллера и кварца, тогда получается, что и меняется частота pwm?
Настройки которые описаны в этой статье http://robotshop.com/letsmakerobots/setting-arduino-fuses-manually-avr-studio
Точнее по этому калькулятору смотрел: http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p
В принципе да. Во фьюзах настраивается система тактирования микроконтроллера, от которй зависит тактовая частота. От которой, в свою очередь, зависит аппаратный таймер. Если используется внешний кварц, то единственное возможное изменение - поделить частоту на 8.
Я беру голые чипы 328p, просто цепляю кварц и заливаю бутлодер, значит заводские аппаратные настройки стоят.
Не знаю, что Вы понимаете под выражением "заливаю бутлоадер". В IDE говорите "Записать загрузчик"? Если так, то ладно, а если просто грузите его туда программатором, то неплохо бы и фьюзы выставить, а то заводсткое умолчание - 1МГц и "нафиг Ваш кварц".
Не знаю, что Вы понимаете под выражением "заливаю бутлоадер". В IDE говорите "Записать загрузчик"? Если так, то ладно, а если просто грузите его туда программатором, то неплохо бы и фьюзы выставить, а то заводсткое умолчание - 1МГц и "нафиг Ваш кварц".
Да записать загрузчик.
В общем не знаю на каких частотах работает PWM на STM32, но принимающее устройство допускает частоту 150-200 гц, и при таком включении не работает по 20% от верхнего и нижнего пределов, без осциллографа не разберешся.
И получается, атмегу настроить на эту частоту не просто....
В общем не знаю на каких частотах работает PWM на STM32, но принимающее устройство допускает частоту 150-200 гц, и при таком включении не работает по 20% от верхнего и нижнего пределов, без осциллографа не разберешся.
И получается, атмегу настроить на эту частоту не просто....
Если Вым нужен ШИМ не на всех 6 ногах, причем без отказа от внутренних часов, а достаточно 1-2, то делается достаточно элементаоно. Только верхний предел при этом будет не 255, а меньше.
Так и от часов не обязательно отказываться. Просто подправить обработчик прерываний таймера 0. Делов-то. :)
Только верхний предел при этом будет не 255, а меньше.
Я может чего упустил, но ему вроде надо всего 150-200 герц. Зачем при такой частоте уменьшать разрешение? Вроде и так всё должно работать. Или нет?
Мне нужен ШИМ на определенных частотах, цена микроконтнтроллера не значительна, достаточно с одного контроллера один ШИМ, с таобао заказал осцилограф, когда придет станет понятно на каких частотах работать и что выдает Atmega и Stm
На Atmega, pwm что то сильно плох, и регулируется тяжело...
....именно поэтому на ATMega столкьо проектов с ШИМом, начиная светодиодными поедлками и заканчивая ЭБУ для авто.
Какой программист - такой и контроллер у программиста.
Подскажите пожалуйста, есть ли возможность понизить частоту PWM, без изменеия фьюзов у Atmega328 или STM32F103 до уровня 150-200khz.
Ну... у меги там действительно мрак кромешный, но у СТМ32 то всё нормально. Там предделители таймеров полные. Делите тактовую таймера как угодно.
И что значат PWM 2/3, PWM 1/3N.... у STM32 ?
В СТМ32 4 таймера и у каждого 4 канала ПВМ. Первая цифра - номер таймера, вторая - номер канала этого таймера. У первого таймера ещё и комплементарные выходы, отсюда и буква "N", т.е. это инверсные выходы канала.