Перейти к содержанию
    

Можно ли по >= или <= на нескольких каналах у mspm0g1507 получить прерывание?

Добрый день,

хочу управлять сразу четырмя быстрыми сервомоторами с одного контроллера (квадрокоптер). Для перехода через среднюю точку надо мониторить напряжение на свободной обмотке. Фактически одновременно у меня будет 4 канала, на каждом из которых мне надо измерять напряжение и выполнять прерывание, если это значение превысило, или наоборот пренизило значение (я знаю заранее вверх или вниз идет это напряжение на каждом канале).

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

Компараторов там только 3, вроде через них не сделать, тем более, что только компаратором идеально не сделать, надо компаратор + DAC, а DAC там вообще только один.

4 контроллера ставить совсем не хотелось бы. Вдруг можно как-то мониторить проход напряжения сразу на 4-х каналах, посоветуйте, пожалуйста!

Спасибо!

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это в той же задаче про 40-60 каналов? И эти 4 канала - одни из них? Если да, то почему тогда просто не анализировать программно моменты перехода? Раз АЦП-потоки всё равно считываются в МК.

И зачем ЦАП? Для задания гистерезиса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, iiv сказал:

Для перехода через среднюю точку надо мониторить напряжение на свободной обмотке.

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

АЦП в данном МК 2 шт, которые работают в параллель, нужно 4 измерения, значит на каждый АЦП нужно по 2 измерения, если требуется фильтровать, то еще умножаем на N измерений для фильтрации...

3 часа назад, iiv сказал:

4 контроллера ставить совсем не хотелось бы

А что поставьте, этот контроллер даже на али 2000р стоит, 8тыр на 1 квадрик - не бюджетно как-то)))

2 часа назад, jcxz сказал:

Это в той же задаче про 40-60 каналов?

Это еще что за ужОс?)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, jcxz said:

Это в той же задаче про 40-60 каналов? И эти 4 канала - одни из них?

не-не-не!!! Просто контроллер понравился, аналоговой перефирии много, и сразу на него захотелось перевести свое управление сервами квадрокоптера, которое еще на стародавней Atmega4808 с каждой на свой канал сделано.

9 hours ago, jcxz said:

Раз АЦП-потоки всё равно считываются в МК.

И зачем ЦАП? Для задания гистерезиса?

либо ЦАПом гистерезис, либо в АЦП свои уровни по переключению в зависимости от режима тяги. У меня квадрокоптер довольно тяжелый (3кг) и на 10 дюймовых вентиляторах, при резком маневрировании надо очень точно соблюдать все гистерезисы на каждом моторе, иначе все греется адски. На атмеге я не успевал, хотя там компаратор с DACом есть. Моторы нужно синхронизовать по несущей частоте ШИМа, чтобы решать ту задачу, в которой 40-60 каналов, поэтому хочется на одном контроллере, а не на 4-х. На 4-х конечно можно, но вылезает проблема синхронизации, которую не сильно хотелось бы иметь.

7 hours ago, mantech said:

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

вроде по времени хватает, если 4 измерения попарно разбросать на два канала, то есть как раз 2МГц один комплект измерения. Но, к сожалению, сам контроллер довольно слабый и не потянет дальнейшие вычисления, если измерять и сразу принимать решение. Если бы можно было бы заслать в регистр когда трегернуть прерывание, то да, процессор бы был бы свободным и на нем много можно было бы сделать то, что я хочу.

Мне надо успевать обслуживать винты при их 10 000 rpm, что примерно составляет 8*150*6 = 7200 переключений в секунду. В каждое такое переключение будет происходить примерно 280 измерений на каждом канале. Контроллер должен в реальном времени принимать решение когда переключаться, причем переключиться сразу как только значение на входе ADC добежало до искомого и успеть пересчитать куда с каким гистерезисом переключаться дальше.

7 hours ago, mantech said:

А что поставьте, этот контроллер даже на али 2000р стоит, 8тыр на 1 квадрик - не бюджетно как-то)))

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, iiv сказал:

а в том, что надо все моторы синхронизовать по частоте их ШИМа

Я конечно не "летчик", но в чем проблема сделать каждому мотору свой контроллер,не такой навороченный, а по проще, с АЦП и шимами на каждую фазу движка (там 3 или 6 уже не помню) и управлять уже ими регулируя тягу?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, mantech said:

Я конечно не "летчик", но в чем проблема сделать каждому мотору свой контроллер,не такой навороченный, а по проще, с АЦП и шимами на каждую фазу движка (там 3 или 6 уже не помню) и управлять уже ими регулируя тягу?

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

Спасибо большое, mantech, что советуете, но, мы очень далеко ушли от исходной темы.

Мне нужна только одна фича в техасовском mspm0g1507, про которую я вопрошаю, что у меня в заголовке этой темы.

Если такой возможности в этом контроллере нет, я лучше воспользуюсь советами уважаемого jcxz, когда он с месяц назад мне советовал довольно жирные инфенионы, и на них решу эту задачу. Просто техасовский mspm0g1507 я уже развел, спаял и попробовал и на нем многое уже получилось, а XMC4502 и SPC58NH, которые советовал jcxz я еще даже до конца даташиты не прочитал и не факт, что с первого раза у меня там все гладко поедет, а время у меня поджимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эх, не знал правильное слово, это оказывается называется window comparator, но мне это, к сожалению, не помогло.

Quote

The window comparator low and high threshold values are global for all channels and the window comparison feature can be enabled for each channel as needed using the WINCOMP bit in the MEMCTL register.

 

Всем участвовавшим и сочувствовавшим огромное спасибо!!! Пошел читать инфенионовскую документацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/30/2024 at 7:33 PM, iiv said:

Пошел читать инфенионовскую документацию.

Если вы из РФ, то лучше сначала посмотреть доступность оных.
Они раньше то в РФ не сильно популярны были, а потому и особо не возил их никто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, dimka76 сказал:

Если вы из РФ, то лучше сначала посмотреть доступность оных.

Да вроде есть, но цены конечно веселые)))

https://zener.ru/shop/product/XMC4502F100K768ACXQMA1/

https://eicom.ru/product/XMC4502F100F768ACXQMA1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...