Змінюй хід війни! Допомагай ЗСУ!

STM32 таймеры

🔴 21:08 Повітряна тривога в Харків.обл.
Статус: Offline
Реєстрація: 01.06.2005
Повідом.: 16754
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #1
Каким образом можно хардверно вывести на пин сигнал по переполнению счетчика? Счетчик использует внутренний тактовый сигнал и с изменяемым коэффициентом деления в процессе , на ножке нужно получить меандр с соответствующей частотой. Я ДШ краем глаза глянул и с наскока не нашел что бы со счетчика на ногу можно было вывести сигнал переполнения счетчика. Само собой можно ножкой дрыгать по прерыванию от таймера, но надо именно апаратно без прерываний, флагов и т.д. Так предварительно подозреваю что можно в регистр сравнения записать то же значение что и в счетчик записывается для счета и потом по сравнению будет ножка дрыгаться, там вроде есть такая возможность. но может есть более простой вариант?
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #2
Каким образом можно хардверно вывести на пин сигнал по переполнению счетчика? Счетчик использует внутренний тактовый сигнал и с изменяемым коэффициентом деления в процессе , на ножке нужно получить меандр с соответствующей частотой. Я ДШ краем глаза глянул и с наскока не нашел что бы со счетчика на ногу можно было вывести сигнал переполнения счетчика. Само собой можно ножкой дрыгать по прерыванию от таймера, но надо именно апаратно без прерываний, флагов и т.д. Так предварительно подозреваю что можно в регистр сравнения записать то же значение что и в счетчик записывается для счета и потом по сравнению будет ножка дрыгаться, там вроде есть такая возможность. но может есть более простой вариант?

Смотри эти регистры
TIM1&TIM8 capture/compare mode register 1 (TIMx_CCMR1)
TIM1&TIM8 capture/compare mode register 2 (TIMx_CCMR2)
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #3
Смотри эти регистры
TIM1&TIM8 capture/compare mode register 1 (TIMx_CCMR1)
А чем они мне помогут? В ДШ по этому поводу ничего интересного не нашел. У меня основная задача не сравнить сигналы, а просто вывести сигнал переполнения счетчика. Просто нужен программируемый делитель от внутреннего клока.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #4
А чем они мне помогут? В ДШ по этому поводу ничего интересного не нашел. У меня основная задача не сравнить сигналы, а просто вывести сигнал переполнения счетчика. Просто нужен программируемый делитель от внутреннего клока.
Это канал ввода/вывода одного из таймеров, состояние которого может быть 0 или 1 в зависимости от условий, одно из условие - совпадения значения записанного в регистре TIM1&TIM8 capture/compare register 1 (TIMx_CCR1) регистре счетчика TIM1&TIM8 counter (TIMx_CNT)
Bits 15:0

CCR1[15:0]: Capture/Compare 1 value
If channel CC1 is configured as output:
CCR1 is the value to be loaded in the actual capture/compare 1 register (preload value).
It is loaded permanently if the preload feature is not selected in the TIMx_CCMR1 register
(bit OC1PE). Else the preload value is copied in the active capture/compare 1 register when



an update event occurs.
The active capture/compare register contains the value to be compared to the counter
TIMx_CNT and signaled on OC1 output.

З.Ы. Смотри в данном случае не в даташит, а в reference manual
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #5
З.Ы. Смотри в данном случае не в даташит, а в reference manual
ну я в него и смотрел, просто оговорился по привычке.
an update event occurs.
The active capture/compare register contains the value to be compared to the counter
TIMx_CNT and signaled on OC1 output.
Те как я и предполагал выше, то записываем в регистр сравнения тоже самое число что и в счетчик делитель и когда счетчик досчитает до этого значения , то в регистре сравнения дернется флаг, событие которого можно вывести на ножку контроллера? А варианта по проще нет? Обычно ж в счетчике есть отдельно выход по переполнению, но тут он только как событие и нельзя на прямую вывести на ножку.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #6
Як це не можна? Івент це івент, а що там він викличи - переривання, в дма щось закине чи ногою дригне, - то вже налаштовується

1 - беремо великий мануал, референс - коротше який дофіга важить та має детальний опис всього включно з регістрами.
2 - шукаємо там general purpose timers, там читаємо перші перші розділи про загальний функціонал( як врубити, прескелер).
3 - далі читаємо розділ оutput compare, з якого знаходимо як врубити сабж, щоб дригати ногою по переповненню.
4 - в кінці валимо в розділ registers description і там повні імена регістрів беремо
Профіт


Можна HAL заюзати, але для задачі запустити таймер - нах, простіше кілька регістрів підгледіти.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #7
ну я в него и смотрел, просто оговорился по привычке.

Те как я и предполагал выше, то записываем в регистр сравнения тоже самое число что и в счетчик делитель и когда счетчик досчитает до этого значения , то в регистре сравнения дернется флаг, событие которого можно вывести на ножку контроллера? А варианта по проще нет? Обычно ж в счетчике есть отдельно выход по переполнению, но тут он только как событие и нельзя на прямую вывести на ножку.
Куда уж проще? Это все один раз инициализируется и работает без вмешательства программиста. Смотри еще one pulse mode
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #8
1 - беремо великий мануал, референс - коротше який дофіга важить та має детальний опис всього включно з регістрами.
я ж написал что его и курил, там 706 страниц и описание регистров.
2 - шукаємо там general purpose timers, там читаємо перші перші розділи про загальний функціонал( як врубити, прескелер).
да таймер один давно запущен, у меня от него по прерыванию клава сканируется, на экранчик выводит и ацп используется.
3 - далі читаємо розділ оutput compare, з якого знаходимо як врубити сабж, щоб дригати ногою по переповненню.
ну те надо именно через регистр сравнения? Я так понял сравнение возможно и без подачи внешнего сигнала на схему сравнения? Те она просто сработает когда счетчик добежит до значения записанного в регистр сравнения? Те по сути это будет дублирование сигнала переполнения счетчика, но с возможностью вывода ивента на ножку?

Куда уж проще? Это все один раз инициализируется и работает без вмешательства программиста. Смотри еще one pulse mode
ну проще это настроил счетчик и указал что эвент переполнения выводится на ножку...А так при каждом изменении коэффициента счета у счетчика, надо еще дублировать запись этого же значения в регистр сравнения. А у меня коэффициент счета будет часто меняться и таких счетчиков несколько....
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #9
Счетчик использует внутренний тактовый сигнал и с изменяемым коэффициентом деления в процессе
ставите CCR = ARR/2 получаете красивый меандр если ARR четное число и edge aligned PWM
выставляете
1. ногу порта на альт функцию (номер альт функции по ДШ)
2. CCMRx ставим режим шима (прямой или инверсный) CCERx - разрешаем подачу сигнала на пин

остальное и так понятно, как запустить таймер
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #10
Я так понял сравнение возможно и без подачи внешнего сигнала на схему сравнения? Те она просто сработает когда счетчик добежит до значения записанного в регистр сравнения? Те по сути это будет дублирование сигнала переполнения счетчика, но с возможностью вывода ивента на ножку?
Да именно так.
да таймер один давно запущен, у меня от него по прерыванию клава сканируется, на экранчик выводит и ацп используется
ИМХО ты что-то перемудрил, ацп само вполне может работать, через ДМА, ты только когда тебе нужно значения считываешь.
ну проще это настроил счетчик и указал что эвент переполнения выводится на ножку...А так при каждом изменении коэффициента счета у счетчика, надо еще дублировать запись этого же значения в регистр сравнения. А у меня коэффициент счета будет часто меняться и таких счетчиков несколько....
По сути это оно и есть.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #11
Те она просто сработает когда счетчик добежит до значения записанного в регистр сравнения? Те по сути это будет дублирование сигнала переполнения счетчика, но с возможностью вывода ивента на ножку?
так
але в стм можна й по переповненню дригати.
Тупо toggle й відповідно вийде те саме 50% заповнення з вдвічі меншою частотою та переповнення.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #12
ИМХО ты что-то перемудрил, ацп само вполне может работать, через ДМА, ты только когда тебе нужно значения считываешь.
может, но для крутилки управления это не нужно, достаточно опрашивать сколько то раз в секунду вместе с клавой. Ну по крайней мере пока не нужно
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #13
але в стм можна й по переповненню дригати
вот тут по подробнее, у меня ф100 проц средний. Там что то не нашел что бы эвент можно было на ножку вывести. Имеется ввиду апаратно а не по прерыванию ножкой програмно дергать.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #14
может, но для крутилки управления это не нужно, достаточно опрашивать сколько то раз в секунду вместе с клавой. Ну по крайней мере пока не нужно
ИМХО ДМА все таки проще чем прерывания.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #15
вот тут по подробнее, у меня ф100 проц средний. Там что то не нашел что бы эвент можно было на ножку вывести. Имеется ввиду апаратно а не по прерыванию ножкой програмно дергать.
100 хз, він древній ппц. Може й не можна. Compare точно можна, це всі мк вже років 20 вміють точно.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #17
100 хз, він древній ппц.
завалялась у меня старая дисковери на 100 проце, удобно тем что она подключена на мат плату которую когда то с макетки сделал и там и кнопки есть и для жк дисплея разъем с обвязкой под подсветку и контраст и место куда можно еще всякого напаять.
кстати идея посмотреть в более новых, ибо ацп например в 8 или 10 битах тоже не умеет, а в более новых уже умеет.
это есть, я этот вариант в старт посте описал как предполагаемый.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #18
да но надо сначала с ним разобраться и настроить, тем более что пока можно и без этого
Я когда начал разбираться купил курс на Udemy по bare stm32 он со скидкой всего 10 баксов стоил. Помогло разобраться.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #19
якщо щось вмієш, то нах таке не потрібно. А якщо ні, то не допоможе. Імхо.

Ех, пам'ятаю часи, коли стм32 завезли - яке ж це щастя після АВРок було з пріорітетами переривань, ремапом пінів, дма, купую лічильників, кількома спі/і2с
 
  • 🔴 21:08 Повітряна тривога в Харків.обл.
  • #20
Я когда начал разбираться купил курс
я с февраля без работы, сижу дома и от скуки решил пострадать, а покупать курс тем более когда в нете инфы и так хоть жопой жуй, не вариант совсем. Я лучше себе борду с ерм240 возьму, там этих счетчиков можно как говна наделать (а их в будущем может потребоваться больше чем в стм32 есть).
 
Назад
Зверху Знизу