Futaba R617FS PPM декодер

pitman
msv:

Теперь декодеры на МК даже для аналогового SUM-PPM дают выход так, как удобно программеру… Никаких стандартов тут нет, лишь бы машинки шевелились.

Ясно, спасибо за помощь. Самая большая сложность на мой взгляд, это определение начала кадра, если нет устоявшегося стандарта с какого канала начинается кадр управления, то или автоматическое определение по каким-то критериям или ручной выбор какого-то канала начало импульса на котором будет означать начало кадра. У себя сделаю выбор ручной.

SGordon

А зачем кадр то, все каналы как бы независимы…

pitman
SGordon:

А зачем кадр то, все каналы как бы независимы…

Это нюанс реализации декодера. Можно решить задачу в лоб, сделать перывание от таймера 100кГц и с разрешением 100мкс считать длительность импульсов, результат счета будет где-то от 0 до 127-150 в зависимости от ширины. Минус такого подхода, жрет 20% ресурсов контроллера. Поэтому решил взять другой вариант. Обработка прерывания от портов ввода-вывода при изменении состояния. Прерывание от портов сработало, таймер запущен. Таймер тикает 4 МГц, с разрешением 250нс, полный период 26мс. Сработало второй раз прерывание на том же порту, считываем показание счетчика таймера и получаем искомую длину. Но помимо длинны надо еще период, поэтому счетчик таймера продолжает тикать дальше. Снова прерывание, закончили считать период. Вроде бы и можно обнулить счетчик таймера, но беда в том, что на другом канале может идти импульс в это время и надо искать когда данные всех каналов прошли. Это вызывает некоторую сложность в реализации декодера, пока этого хочу избежать.

SGordon

А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…

pitman
SGordon:

А что кодируется периодом? По моим понятиям длины импульса вполне достаточно чтобы понять, что идет на серву… Некоторые коптероводы и 400 Hz запихивают на регулятор - и вполне щасливы…

Ну вот примерно для такого случая, чтобы можно было декодировать и 400Гц управление, опять же уплыла частота приемника от температуры - поплыли длительности импульса и периода пропорционально, подсчет периода решит эту проблему.

SGordon

че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…

pitman
SGordon:

че то сомневаюсь в целесообразности сих извратов при футабъем приемнике…

  1. Приемники будут любые, не только Futaba
  2. Сам в некоторых сомнениях поэтому и затеял это обсуждение

Еще один вариант делать калибровку аппаратуры РУ при ее смене. Выставлять минимум, максимум длительности импульса и период.

SGordon

Ну раз приемники любые - то калибровка пригодится, мало ли как пульт настроен… Но период учитывать - не понимаю зачем

pitman

Сделал захват и декодирование 4-х PPM каналов. Период и правда не стал считать.