Например TDA7294

Форум РадиоКот • Просмотр темы - Время срабатывания таймеров и их точность
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 21, 2025 09:57:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 32 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Чт сен 01, 2022 20:36:37 
Встал на лапы

Зарегистрирован: Ср авг 31, 2022 12:10:34
Сообщений: 100
Рейтинг сообщения: 0
MLX90640,
Я когда-то на другом форуме этот вопрос поднимал, не знаю, можно ли тут оставлять ссылки на другие форумы, но там вся дискуссия сводится к этому
Цитата:
Разве вы не знаете про вложенные прерывания у STM32?
Установите приоритет прерывания EXTI1 выше чем у таймера планировщика и оно будет прерывать прерывание таймера.

Т.е. ставим приоритет прерывания от 4 до 0 (у ОС от 15 до 5 включительно) и не используем функции ОС в этих прерываниях и все будет норм. Можно даже попробовать придумать какую-нибудь программку, чтобы это проверить


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Чт сен 01, 2022 21:33:16 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
проблема - нет возможности запускать три таймера от одного?
а такой колхоз вам поможет? - снаружи соединить таймера, запуск внешним сиглалом, три ноги на одну.
кажется в этой задаче должно быть только одно прерывание, со смыслом "а теперь можно загрузить новые значения для следующего цикла", а остальная работа чисто аппаратно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Чт сен 01, 2022 23:17:16 
Электрический кот
Аватар пользователя

Карма: 14
Рейтинг сообщений: 383
Зарегистрирован: Пт апр 09, 2010 16:06:38
Сообщений: 1062
Откуда: Тула
Рейтинг сообщения: 0
Для этого попробовал разные подходы:

В зависимости от требуемого диапазона интервалов, думаю возможно сделать всё полностью аппаратно, без всяких прерываний. TEHb правильно посоветовал про RM0385, там на страницах 713, 794, таблицы внутренних соединений триггеров. При беглом рассмотрении схема видится так:
- выбираем запускающим таймер TMR1, он будет синхронно запускать 4 других таймера (на вашей картинке 4 сигнала ведь).
- режим TMR1 - слэйв триггер-моде, источник входного триггера - ETR1, перепадом по этой ноге будем стартовать весь хоровод. Сам он ни каких задержек не делает, просто служит "синхронизатором".
- выходной триггер для TMR1 - по запуску (Enable).
- по таблицам подбираем таймеры, у которых один и тот-же входной сигнал триггера (это ITR0) подключен к TMR1. Это TMR2, TMR3, TMR4, TMR8.
- настраиваем эти таймеры как слейв триггер-моде, источник входного триггера ITR0, генерация одного периода шим с требуемыми задержками по одному из каналов.
- тактирование всех таймеров - внутреннее.
- по вкусу можно поставить биты MSM.

Конфигурите в кубе все таймеры, выставляете требуемые задержки через регистры, можно вручную (без куба), запускаете тоже нужными битами вручную. Если стартовать нужно не сигналом извне, а событием, то можно просто запускать TMR1, без ETR.

Почитайте про таймеры тут, всё очень подробно. Там несколько частей.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Пт сен 02, 2022 04:44:30 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
...подбираем таймеры, у которых один и тот-же входной сигнал триггера (это ITR0) подключен к TMR1. Это TMR2, TMR3, TMR4, TMR8.

Если так, то и колхоз не нужен. Все скоммутируются внутри


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Пн сен 05, 2022 06:18:16 
Встал на лапы

Зарегистрирован: Ср авг 31, 2022 12:10:34
Сообщений: 100
Рейтинг сообщения: 0
>TEHb<, MLX90640, Eddy_Em, Мурик, a797945, Andrey_B,
Спасибо всем кто откликнулся, советы были очень полезны, реализовал все аппаратно на таймерах в режиме one pulse mode с триггерным запуском от главного таймера, избавился от прерываний, вроде как исключил нежелательное влияние ОС на работу таймеров (если таковое могло быть), в целом все работает как и требовалось.

Попробую теперь немного усложнить, а именно добавить еще один таймер, который будет запускать АЦП в нужное время и запускать главный таймер, от которого запускаются все остальные, от внешнего прерывания, ну и чтобы это все было максимально без участия процессора


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Пн сен 05, 2022 14:21:33 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1658
Рейтинг сообщения: 0
2) Какой подход для решения данной задачи будет самым правильным?
1. Выбрать МК наиболее подходящий для решения задачи.
2. Если требуется формирование импульсов по нескольким каналам с точной выдержкой их временнЫх параметров (внутри канала и временнЫе соотношения между каналами), то формироваться такие импульсы должны только полностью аппаратно (соответствующей периферией МК), но никак не программно.
Ваша задача легко решается на МК имеющих соответствующие ресурсы. Например - серия XMC4xxx от Infineon: таймеры у него имеют аппаратные связи между друг другом и позволяют строить работу таймеров полностью никак не зависящую от длительности выполнения кода. Позволяют выполнять запуск или перезапуск произвольным таймером в единый момент времени одной единственной командой записи в регистр управления. Также позволяют пробрасывать сигналы о событиях внутри одного какого-то таймера на управляющие входы (старт/стоп, перезагрузка и др.) других произвольных таймеров.
Также есть и другие МК с подобной периферией.
Если ваш МК не имеет подобных возможностей, то почему выбрали его?

3) Может просто я что-то делаю не так?
Пытаетесь делать программно несколько последовательных операций и ожидаете что они выполнятся мгновенно. Или ожидаете, что длительность выполнения кода будет всегда постоянна. Это не так.
Если нужна точная выдержка временнЫх параметров каких-то сигналов на пинах, то не должно быть в принципе никакой привязки ко времени выполнения кода.

Добавлено after 7 minutes 53 seconds:
Цитата:
Разве вы не знаете про вложенные прерывания у STM32?
Установите приоритет прерывания EXTI1 выше чем у таймера планировщика и оно будет прерывать прерывание таймера.

Т.е. ставим приоритет прерывания от 4 до 0 (у ОС от 15 до 5 включительно) и не используем функции ОС в этих прерываниях и все будет норм. Можно даже попробовать придумать какую-нибудь программку, чтобы это проверить

Вообще-то - ISR таймера планировщика ОС всегда должен иметь приоритет ниже, чем у любого аппаратного ISR. Так как нет никакого смысла давать таймеру планировщика более высокий приоритет. А ниже приоритета таймера планировщика должен быть только приоритет PendSV.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 17:15:42 
Встал на лапы

Зарегистрирован: Ср авг 31, 2022 12:10:34
Сообщений: 100
Рейтинг сообщения: 0
Еще такой вопрос возник, может кто сталкивался, все таймеры настроены на PWM mode, у всех настроена (в кубе) подтяжка пинов к земле, по факту получается, что при подаче питания на мк, на всех этих выводах висит 1 вольт пистонного напряжения, и только в момент запуска таймеров сигнал становится нормальной формы и амплитуды от 0 до 3.3 вольт. В чем может быть проблема?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 17:20:40 
Друг Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 467
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 5570
Откуда: Воронеж
Рейтинг сообщения: 0
У вас не двухтактный выход? Тогда без схему гадать сложно. Включите просто двухтактный выход и всё.

_________________
"Привет!" - соврал он.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 17:20:58 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 164
Зарегистрирован: Ср авг 03, 2022 05:22:56
Сообщений: 848
Рейтинг сообщения: 0
Особенность режима PWM, в котором при значении счетчика меньше значения CCR, на выходе будет высокий уровень. Есть и второй режим с обратным поведением. Вы не стесняйтесь читать мануалы. Конфигуратор/кодогенератор Cube не заменяет и не отменяет мануалов!

Аааа, 1 Вольт неопределенного логического уровня? А на выход что-то еще физически подключено? И я что-то не понял, что такое "пистонное напряжение"?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 17:35:41 
Встал на лапы

Зарегистрирован: Ср авг 31, 2022 12:10:34
Сообщений: 100
Рейтинг сообщения: 0
>TEHb<, Выход Push Pull, но только он alternate function push pull, из альтернатив только alternate function open drain

MLX90640,
Цитата:
Особенность режима PWM, в котором при значении счетчика меньше значения CCR, на выходе будет высокий уровень.

Вы не совсем так поняли, да, там есть такая настройка mode 1 и mode 2, выбран mode 2, таймер до CCR низкий уровень, потом высокий, в этом плане все нормально работает.
Проблема именно в том, что до старта таймеров PWM на выходе и пинов установлен уровень 1 вольт, т.е. вроде и не 0, но и не логическая 1. Все становится нормально только после запуска таймеров

Добавлено after 1 minute 31 second:
Цитата:
Аааа, 1 Вольт неопределенного логического уровня? А на выход что-то еще физически подключено? И я что-то не понял, что такое "пистонное напряжение"?

Не, все отключил от выходов

Опечатка, "постоянное напряжение")))


Вложения:
3.png [23.89 KiB]
Скачиваний: 52
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 18:07:46 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1658
Рейтинг сообщения: 0
Проблема именно в том, что до старта таймеров PWM на выходе и пинов установлен уровень 1 вольт, т.е. вроде и не 0, но и не логическая 1. Все становится нормально только после запуска таймеров
Очевидно это третье состояние. Т.е. - нога в режиме GPIO-input.
Чтобы было 0 или 1 и до старта таймера, настройте эту ногу в режиме GPIO на вывод (0 или 1).

Добавлено after 5 minutes 15 seconds:
Хотя может у таймеров вашего МК есть состояние покоя и соответствующий уровень для него (в некоторых МК есть такое, не знаю как в вашем). Это состояние выставляется на ногу, когда мультиплексор вывода переключен на таймер, но сам таймер не запущен в работу. Читайте мануал (как уже посоветовали) - есть ли такое в вашем МК. Там об этом должно упоминаться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Время срабатывания таймеров и их точность
СообщениеДобавлено: Вт сен 06, 2022 18:32:46 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
"уровень выходного сигнала определяется состоянием таймера, а также зависит от битов MOE, OSSI, OSSR, OISy, OISyN и CCyNE."
мне не довелось запариваться с такой ситуацией - готового совета не могу дать


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 32 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y