Futaba R617FS PPM декодер
Строю автопилот для полностью автоматического БПЛА, добрался до декодирования PPM сигнала. В наличии РУ Futaba T6EX с приемником R617FS. Почитал теорию, вроде все понятно, приемник 7 канальный, значит параллельно 7 каналов импульсы будут идти начиная с 1-го канала и лесенкой. Подключаю логический анализатор и что же видим? Кадр начинается с 7-го канала, импульс на 6-м канале идет с перекрытием в начале с 7-ым и в конце с 1-ым. Вопрос, кто знает почему так? Как у остальных приемников, кто виноват?
а никто не гарантирует, что из выходных импульсов удастся собрать суммарный РРМ сигнал.
а никто не гарантирует, что из выходных импульсов удастся собрать суммарный РРМ сигнал.
Собирать его и не планировал, хотя и в этом проблем нет если использовать микроконтроллер. Надо перевести ШИМ от импульсов в цифровую величину. Просто в случае когда импульсы лесенкой и с первого канала начинаются парсер получается попроще.
Для футаб и цифры может прощще SBUS декодировать?
Для футаб и цифры может прощще SBUS декодировать?
Надо работать с тем что есть, почитал про SBUS дорогое удовольствие да и в общем не нужное. РУ будет чем-то вроде джойстика показывающего направление движения. Все руление плоскостями и моторами будет делать автопилот.
“Ступеньки” из последовательных PWM канальных импульсов были давным-давно на аналоговых канала и простенькими декодерами на сдвиговых регистрах… Теперь декодеры на МК даже для аналогового SUM-PPM дают выход так, как удобно программеру… Никаких стандартов тут нет, лишь бы машинки шевелились.
Ну а цифровые каналы вообще о PPM ничего не знают…
Теперь декодеры на МК даже для аналогового SUM-PPM дают выход так, как удобно программеру… Никаких стандартов тут нет, лишь бы машинки шевелились.
Ясно, спасибо за помощь. Самая большая сложность на мой взгляд, это определение начала кадра, если нет устоявшегося стандарта с какого канала начинается кадр управления, то или автоматическое определение по каким-то критериям или ручной выбор какого-то канала начало импульса на котором будет означать начало кадра. У себя сделаю выбор ручной.
А зачем кадр то, все каналы как бы независимы…
А зачем кадр то, все каналы как бы независимы…
Это нюанс реализации декодера. Можно решить задачу в лоб, сделать перывание от таймера 100кГц и с разрешением 100мкс считать длительность импульсов, результат счета будет где-то от 0 до 127-150 в зависимости от ширины. Минус такого подхода, жрет 20% ресурсов контроллера. Поэтому решил взять другой вариант. Обработка прерывания от портов ввода-вывода при изменении состояния. Прерывание от портов сработало, таймер запущен. Таймер тикает 4 МГц, с разрешением 250нс, полный период 26мс. Сработало второй раз прерывание на том же порту, считываем показание счетчика таймера и получаем искомую длину. Но помимо длинны надо еще период, поэтому счетчик таймера продолжает тикать дальше. Снова прерывание, закончили считать период. Вроде бы и можно обнулить счетчик таймера, но беда в том, что на другом канале может идти импульс в это время и надо искать когда данные всех каналов прошли. Это вызывает некоторую сложность в реализации декодера, пока этого хочу избежать.
А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…
А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…
Ну вот примерно для такого случая, чтобы можно было декодировать и 400Гц управление, опять же уплыла частота приемника от температуры - поплыли длительности импульса и периода пропорционально, подсчет периода решит эту проблему.
че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…
че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…
- Приемники будут любые, не только Futaba
- Сам в некоторых сомнениях поэтому и затеял это обсуждение
Еще один вариант делать калибровку аппаратуры РУ при ее смене. Выставлять минимум, максимум длительности импульса и период.
Ну раз приемники любые - то калибровка пригодится, мало ли как пульт настроен… Но период учитывать - не понимаю зачем