21.03.2017, 17:46
|
|
Вид на жительство
Регистрация: 03.06.2006
Адрес: Израиль
Сообщений: 388
Сказал спасибо: 2,063
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
|
Многоканальный вход ШИМ
Доброго времени суток.
Есть задача: нужно принять 4 канала ШИМ от приёмника польта ДУ.
Протокол обычный, 1.5 мс +- 0.5 мс.
Инетересует возможность "закапчить" эти сигналы без привязки к последовательности.
Если я правильно понял, один таймер может считать ширину пульса
только на одном канале (асинхронно).
Неужели придётся использовать 4 таймера?
Буду признателен за любой "толчок" в нужном направлении.
Спасибо.
|
|
|
|
21.03.2017, 18:01
|
|
Заблокирован
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,715
Сказал спасибо: 189
Сказали Спасибо 3,199 раз(а) в 2,074 сообщении(ях)
|
Re: Многоканальный вход ШИМ
сделай от таймера прерывания каждые 0,5мс и принимай битовую последовательность просто.
либо сделай прерывания от спадающего фронта и после этого считай три раза по 0,5 мс таймером же - опять же примешь битовую последовательность, которую потом распарсишь
Сообщение от Zoosman
|
возможность "закапчить" эти сигналы без привязки к последовательности.
|
вот этого не понял
|
|
|
|
21.03.2017, 18:09
|
|
Вид на жительство
Регистрация: 03.06.2006
Адрес: Израиль
Сообщений: 388
Сказал спасибо: 2,063
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Сообщение от индюк
|
вот этого не понял
|
Сигналы могут приходить так:
___---______
_____---____
_______---__
А могут и так:
__---___
---_____
__---___
...
В любом случае спасибо за совет, таймеру правда придётся вызывать прерывания каждые ~ 100 мкс.
Т.к. эту 1мс нужно парсить как минимум в проценты.
|
|
|
|
21.03.2017, 21:05
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2010
Адрес: Днепр, Украина
Сообщений: 765
Сказал спасибо: 450
Сказали Спасибо 401 раз(а) в 282 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Например, https://github.com/DimonSE/ppm_encoder ..
А возможности напрямую зависят от выбранного железа. При наличии capture unit программируете его строго по букварю и получаете результат. По идее данные в каналах должны будут обновляться независимо от порядка по спаду импульса на каждом из входов (независимо от полярности импульса). Как запрограммируете.
|
|
|
|
21.03.2017, 21:08
|
|
Вид на жительство
Регистрация: 03.06.2006
Адрес: Израиль
Сообщений: 388
Сказал спасибо: 2,063
Сказали Спасибо 337 раз(а) в 156 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Забыл сказать про железо.
Любой stm32 на который есть дискавери.
|
|
|
|
30.03.2017, 21:38
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 735
Сказал спасибо: 363
Сказали Спасибо 808 раз(а) в 380 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Сообщение от Zoosman
|
___---______
_____---____
|
Zoosman, азбука Морзе?..
|
|
|
|
30.03.2017, 22:16
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Сообщение от Zoosman
|
Неужели придётся использовать 4 таймера?
Буду признателен за любой "толчок" в нужном направлении.
|
Вроде бы каждый таймер общего назначения в STM32 имеет как раз четыре канала в блоке захвата. Я бы подумал над такой идеей:
Запустить таймер в свободный пробег с нужным разрешением (например 50 мкс на тик, тогда переполнение будет каждые 3,2768 секунды). Настроить все четыре канала захвата по обоим фронтам. Включить прерывания по событиям захвата и по событию переполнения (для учёта переполнения). В обработчике прерывания захвата сохранять значения регистров захвата и полярность - каждый в свой буфер. Обрабатывать потом или на ходу.
Каким-то таким образом, думаю, вполне можно обойтись одним таймером и с достаточным разрешением.
Детали реализации будут зависеть от протокола IR, может даже что-то упростить можно будет - например захватывать только по фронту.
|
|
|
|
30.03.2017, 22:59
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Вполне достаточно четырех линий EXTI с фиксацией значения какого-либо счетчика в момент срабатывания прерывания.
|
|
|
|
30.03.2017, 23:24
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Сообщение от NewWriter
|
Вполне достаточно четырех линий EXTI с фиксацией значения какого-либо счетчика в момент срабатывания прерывания.
|
Но зачем? если есть необходимое число каналов захвата. Но можно и так если каналов не хватит и точность устроит.
Ну и если есть совсем ненужные четыре таймера, можно использовать их все. Не вижу ничего в этом плохого, если это упростит программу.
|
|
|
|
30.03.2017, 23:39
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Многоканальный вход ШИМ
Зачем? Затем!
ибо самое простое - EXTI
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:42.
|
|