реклама на сайте
подробности

 
 
> STM PWM Input, Как отцифровать на STM несколько PWM сигналов
Golikov A.
сообщение Feb 6 2015, 17:54
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет!

Ковыряюсь с новым для себя семейством от STM, потому все чуднО и Чудно пока чтоsm.gif.

Дано: 6 входных сигналов (лучше 10), период сигнала порядка 20 мСек, длительность импульса от 1 до 2 мСек. Начало сигналов близкое, но в общем случае не одновременное, длительность в интервале 1-2 мСек любая, но именно в этом интервале.

Надо: Получить значение длительности каждого сигнала при этом не убив все ресурсы процессора.

делаю это на stm32f3discovery.

Собственно у меня есть несколько рецептов, может у кого есть лучше, посоветуйте.

1. Вариант Input PWM - вообще не вариант, так как на 1 сигнал ухлопывается целый таймер.

2. Хотел запустить таймер бежать, настроить каналы в режиме capture, на оба фронта, и по прерыванию capture сохранять начало и конец фронта. Но что-то я читаю описание, и вроде как получается что режим срабатывания по обоим фронтам идет через slave controller и как я понимаю я не могу иметь 4 независимых канала или нет? Можно конечно перенастраивать то на восходящий, а в прерывании перенастраивать на падающий, но как-то это не красиво ИМХО

3. Подать сигналы на ножки с прерывание по фронту, и запустить бежать таймер, в прерывании сохранять значение. Из плюсов что можно всего 1 таймер, Из минусов что есть нечеткость определения фронта, пока обрабатываем одни ноги, другие могут сработать и пойдут по не правильному времени. Еще я правильно понимаю что прерываний от ног всего 16, и если взяли прерывание от А0.8, то ни от B0.8 ни от С0.8 его уже не получить?

4. Тупой полинг, долбить уровень на ногах и запустить таймер, но что-то это как-то мрачно, весь ресурс уйдет на это...

Посоветуйте, может я какие варианты забыл, может какое-то жесткое ДМА можно придумать в целом я себе вижу что точность в 1000 уровней на интервал будет выше крыши.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Feb 6 2015, 20:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



на один порт? по ИЛИ что ли? Тогда первый поднявшийся сигнал замаскирует начало всех остальных.... Можно по xor конечно, но тоже будет такая каша из фронтов, что пипец....
тем более прерывание на оба перепада - это в STM отсутствует как я понял. Собственно как и выбор контроллера, если менять элементную базу, то тогда сразу ПЛИС ставить и не мучатся.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 6 2015, 20:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Golikov A. @ Feb 6 2015, 22:36) *
на один порт? по ИЛИ что ли? Тогда первый поднявшийся сигнал замаскирует начало всех остальных.... Можно по xor конечно, но тоже будет такая каша из фронтов, что пипец....
тем более прерывание на оба перепада - это в STM отсутствует как я понял. Собственно как и выбор контроллера, если менять элементную базу, то тогда сразу ПЛИС ставить и не мучатся.

Если по ходу обработки прерывания по одной ноге произойдет прерывание по другой, то обработчик запустится повторно. Обычно switch-case. Но если скажем две ноги одновременно, то обрабатывать тоже разумнее как два события за одно прерывание и сносить оба флага. Можно проверять все биты интересующих ног. Тут уже что быстрее то и лучше. Думаю с учетом всей палитры нужно просто по очереди перебрать все биты и обработать попутно снеся флаги в сработавших.

EXTI_RTSR и EXTI_FTSR. Выбирайте пины хоть по спаду хоть по фронту хоть по двум событиям сразу. Просто регистры разные для каждого события.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Golikov A.   STM PWM Input   Feb 6 2015, 17:54
- - 1113   Цитата(Golikov A. @ Feb 6 2015, 20:54) мо...   Feb 6 2015, 18:00
- - Golikov A.   чем это лучше моего варианта под номером 2?   Feb 6 2015, 18:02
|- - 1113   Цитата(Golikov A. @ Feb 6 2015, 21:02) че...   Feb 6 2015, 18:03
- - Iptash   Для разгрузки ЦП я бы сделал аппаратно, например н...   Feb 6 2015, 19:25
- - AHTOXA   Цитата(Golikov A. @ Feb 6 2015, 22:54) Да...   Feb 6 2015, 19:30
- - Golikov A.   Ну да приемник, только их 2 (4 и 6 каналов), и они...   Feb 6 2015, 20:13
|- - AHTOXA   Цитата(Golikov A. @ Feb 7 2015, 01:13) А ...   Feb 6 2015, 20:36
- - smk   Первое что приходит на ум это подключить все сигна...   Feb 6 2015, 20:22
- - Iptash   А измерять нужно каждый импульс, или можно пропуск...   Feb 6 2015, 20:39
- - Golikov A.   ЦитатаНо в применении внешних прерываний для замер...   Feb 6 2015, 20:43
|- - AHTOXA   Цитата(Golikov A. @ Feb 7 2015, 01:43) 1 ...   Feb 6 2015, 20:51
- - Golikov A.   Это когда прерывания как у LPC, там весь порт кажд...   Feb 6 2015, 20:52
|- - smk   Цитата(Golikov A. @ Feb 6 2015, 22:52) Эт...   Feb 6 2015, 21:01
- - smk   Если у Вас 10 сигналов, а портов 5 то заведите 5 с...   Feb 6 2015, 20:54
- - Golikov A.   ЦитатаНу или узнайте способ кодирования ваших сист...   Feb 6 2015, 20:56
|- - AHTOXA   Цитата(Golikov A. @ Feb 7 2015, 01:56) н...   Feb 6 2015, 21:03
- - Golikov A.   PPM приходит по воздуху, а дальше приемник раскоди...   Feb 6 2015, 21:32
|- - jcxz   Ещё вариант: Завести все сигналы на один GPIO-порт...   Feb 7 2015, 12:08
|- - smk   Цитата(jcxz @ Feb 7 2015, 14:08) Ещё вари...   Feb 7 2015, 12:50
- - Golikov A.   это был такой вариант. Но есть беда с разбором пол...   Feb 7 2015, 12:38
|- - jcxz   Цитата(Golikov A. @ Feb 7 2015, 18:38) да...   Feb 7 2015, 17:11
- - SasaVitebsk   stm позволяет оцифровывать аппаратно pwm сигнал. О...   Feb 7 2015, 18:29
- - Golikov A.   1000 отсчетов на 6-10 каналах будет не меньше 6000...   Feb 7 2015, 23:37
|- - jcxz   Цитата(Golikov A. @ Feb 8 2015, 05:37) 10...   Feb 8 2015, 05:46
- - smk   Интересно, а если проработать вопрос на предмет ан...   Feb 8 2015, 06:00
- - Golikov A.   Оцифровка ШИМа через АЦП - нормальный способ, надо...   Feb 8 2015, 08:07
|- - jcxz   Цитата(Golikov A. @ Feb 8 2015, 14:07) ко...   Feb 8 2015, 08:19
- - Golikov A.   Ага, спасибо. Собственно говоря у 6 каналов будет...   Feb 9 2015, 05:09
|- - jcxz   Цитата(Golikov A. @ Feb 9 2015, 11:09) По...   Feb 9 2015, 07:51
- - Golikov A.   ну так я у вас и посмотрел, и отразил как бы суть ...   Feb 9 2015, 07:55


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016