Аналоговый вход с ацп
в каком направлении капаете пока не ясно.
чтобы захватить 4 сигнала РРМ с помощью 4х канального АЦП вам понадобится 4 интегрирующих цепочки с ФНЧ на ОУ. для расчета параметров понадобится снять временные характеристики - частоту, скважность импульсов.
насчет программной фильтрации не подскажу, возможно хватит скользящего среднего.
нет ни одного аналогового входа
А они там- зачем интересно?
Если сигналы, которыми оперирует любой АП- ШИМ?
Надо только задействовать правильные ноги на МК(аппаратный ШИМ), чтобы не получить хлопот с “джиттером”…Про все это написано много- много буков в разделе “полеты по камере-телеметрия, Ардупилот”
Зачем АЦП для захвата PPM? На этих же платах есть должны быть пины GPIO. Также должна быть возможность организовать прерывание по изменению уровня на одном из таких пинов. Больше ничего не нужно. Ещё нужно, чтобы уровень сигнала с приёмника соответствовал, т.е. 5 В или 3.3 В. Но это тоже легко решить.
Зачем АЦП для захвата PPM
человек спросил как измерить высоту здания с помощью барометра. он ответ получил =)
Бывают ситуации, когда контроллеру не хватает амплитуды сервосигнала. Например, когда напряжение на приемнике существенно ниже напряжения на контроллере. В этом случае согласование и “оцифровку” 4 каналов РРМ проще и дешевле сделать на счетверенном компараторе LM339 с питанием от контроллера.
че ему УАРТ не угодил…
человек спросил как измерить
Судя по возрасту- он просто не в курсе схемотехнических тонкостей?
Как прием так и последующая генерация ШИМ импульсов- связаны с точным определением длины импульсов, что не всегда возможно при наличии программных прерываний, которые вносят искажения в процедуру.
Поэтому в архитектуре МК и предусматриваются аппаратные меры, позволяющие этого избежать.
Я в свое время намучился с этим изрядно при разработке АП.
А присутствие в сигнале джиттера- ведет к излишнему расходу батареи и ускоренному износу серв. Хотя:.
в научных целях
Может это и не важно?
Судя по возрасту- он просто не в курсе схемотехнических тонкостей?
Как прием так и последующая генерация ШИМ импульсов- связаны с точным определением длины импульсов, что не всегда возможно при наличии программных прерываний, которые вносят искажения в процедуру.
Поэтому в архитектуре МК и предусматриваются аппаратные меры, позволяющие этого избежать.
Я в свое время намучился с этим изрядно при разработке АП.
А присутствие в сигнале джиттера- ведет к излишнему расходу батареи и ускоренному износу серв. Хотя:.Может это и не важно?
Упоминание возраста в наше время не уместно. С генерацией шим вопросов нет, тем более спаял схемку на базе pca9685 для этих целей. Немного переосмыслив сообщения Сергея смог реализовать обработчик. За что ему спасибо.
Немного переосмыслив сообщения Сергея смог реализовать обработчик
Долго пытался осмыслить и переосмыслить сообщение Сергея, но так и не понял, как реализовать обработчик. Наверное всё-таки сказывается возраст. Кстати, PPM имелся в виду многоканальный, т.е. PWM на самом деле?
Долго пытался осмыслить и переосмыслить сообщение Сергея, но так и не понял, как реализовать обработчик. Наверное всё-таки сказывается возраст. Кстати, PPM имелся в виду многоканальный, т.е. PWM на самом деле?
Да, но в данный момент получилось реализовать протокол ibus. Использую приемник fs-ia10b. Подключил приемник по ibus шине к логическому анализатору, получил блок в 32 байта.
Примерно если разделить по 2 байта шапка: [20 40] [дальше сами каналы] и чек сумма [FD F4] каналы которые не используются [DC 05].
Пример выше сказанного из обработчика который пишу на java:
20 40
DC 05
DB 05
14 04
DF 05
41 04
92 06
DC 05
DC 05
DC 05
DC 05
DC 05
DC 05
DC 05
DC 05
FD F4
Пока так предположительно.
человек спросил как измерить высоту здания с помощью барометра. он ответ получил =)
а насчет этого если подключить тестер к S и GND и перевести аппаратуру в режим pwm можно получать в крайних положения стика почти стабильное напряжение. Чисто теоретически взяв за опорное напряжение одно из положений стика, можно вычислить по разности между двумя входами ацп напряжение и с помощью программы определять его положение по изменению напряжения от опорного и программно выдавать нужное значение для управления двигателем, пользуясь выше упомянутым мной ads1115 и его дифференциальными входами.
Как прием так и последующая генерация ШИМ импульсов- связаны с точным определением длины импульсов, что не всегда возможно при наличии программных прерываний, которые вносят искажения в процедуру.
Прерывания по таймеру для этого и используются, ШИМ - идеальна. А вот что за “аппаратные меры” интересно узнать.
Прерывания по таймеру для этого и используются, ШИМ - идеальна. А вот что за “аппаратные меры” интересно узнать.
теория была
github.com/betaflight/betaflight/blob/…/ibus.c
посмотрите уже как у людей сделано.
Подключил приемник по ibus шине
Пока это все на бумаге- может выглядеть очень красиво.
Но если вы подключите реальную серву к реальной плате- почти наверняка услышите противное з…з…з
Вот это и есть джиттер 😦
ппаратн
Даташит читайте- там про это все написано:)
А вот что за “аппаратные меры” интересно узнать.
Тут, наверное, речь идёт об аппаратном модуле Input Capture (иногда называется по-другому). Идея в том, что он по фронту на входном пине запоминает значение счётчика. Таким образом можно очень точно измерять ширину импульса, поскольку на этот процесс прерывания не влияют. У raspberri таких модулей нет, зато у него очень высокая тактовая частота, поэтому джиттер времени от прихода фронта до собственно исполнения кода обработчика прерывания может быть достаточно небольшим. Т.е. всё равно может обеспечиваться необходимая точность.
Допустим, мы хотим иметь разрешение измерения серdосигнала в 12 бит, т.е. 4096 отсчётов. 1 мс / 4096 = 244 нс. Джиттер должен быть меньше этой величины. Т.е. время до исполнения обработчика не должно превышать 244 нс. Допустим тактовая частота у нас 1 ГГц и мы в среднем исполняем команду за 2 такта. Время исполнения одной команды 2 нс. Таким образом за 244 нс мы можем исполнить 122 команды. Если длина любого обработчика не превышает 122 команды, тогда мы укладываемся. Я сильно сомневаюсь что в Линуксе это возможно. Но идея здесь в том, что можно оценить разрешение, которое мы получим, если будем пользоваться прерыванием по фронту на GPIO.
А вообще тема какая-то психоделическая, OP, кажется, на каких-то своих волнах…
речь идёт об аппаратном модуле Input Capture
Воистину!
Я то в эту проблему воткнулся лет 10 назад, начав вплотную заниматься автопилотом 😃
Причем в Протеусе- все шоколадно, а когда сделал реальную плату- все и зажужжало:(