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

 
 
> 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:13
Сообщение #2


Гуру
******

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



Ну да приемник, только их 2 (4 и 6 каналов), и они старого образца, у них нет режима вывода на одну ногу. И даже если бы был, задача решить для самого тупого варианта, который будет работать всегда. Так что надо цифровать 6-10 сигналов... Хоть отдельный проц на это ставь, или ПЛИС.


Цитата
В вашем случае сигналы начинаются одновременно, поэтому так просто не выйдет.

Правильнее говорить почти одновременно, потому что иначе бы я закапчил по восходящему общее начало, и потом все спады, а тут надо отдельно каждый сигнал.

Цитата
Я имею в виду, что вас интересует длительность от начала до конца, а не наоборот

ну в целом одна величина 1-2 мСек, а другая 18-19 мСек. Так что они различимы даже если не следить за фронтами.


Цитата
Я за второй вариант, перестроить в прерывании захвата фронт/спад - пара команд.

Спасибо, опираясь на ваш опыт с STM, если поддерживаете решение, то значит я ничего не упустилsm.gif. Будем перенастраивать...

А прерывания по ножкам действительно все так? то есть занял 8 прерывание портом А, и Б уже не подключить?


Цитата
Для разгрузки ЦП я бы сделал аппаратно, например на CPLD, а ЦП будет только собирать данные. (это только мое мнение)

Спасибо, это основное решение на будущее, только CPLD не хватает, маленькие они, легче уже FPGA закатать, и кучу остального на нее сбросить, может даже проц в нее вогнать. Вторая итерация если будет, то именно такая. Пока для тестов мучаем проц. Может быть их станет 2 один будут рубить эту задачу, а другой дело делатьsm.gif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 6 2015, 20:36
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Golikov A. @ Feb 7 2015, 01:13) *
А прерывания по ножкам действительно все так? то есть занял 8 прерывание портом А, и Б уже не подключить?

Если завели внешнее прерывание на 8 ножку порта A, то завести другое на 8 ножку порта B не получится.
Можно: A0, A1, A2, ... A15. Нельзя: A0, B0, C0, A1, B1, C1...
Но в применении внешних прерываний для замера длительности сигналов главный недостаток не этот, а потеря точности при одновременном поступлении сигналов.


--------------------
Если бы я знал, что такое электричество...
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
- - smk   Первое что приходит на ум это подключить все сигна...   Feb 6 2015, 20:22
- - Golikov A.   на один порт? по ИЛИ что ли? Тогда первый поднявши...   Feb 6 2015, 20:36
|- - smk   Цитата(Golikov A. @ Feb 6 2015, 22:36) на...   Feb 6 2015, 20:50
- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:00
Рейтинг@Mail.ru


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