Телеметрия (часть 1)

smalltim

Только что опять пришлось заново побеждать USB на автопилоте. Начал перекраивать код, что-то лишнее потёр. Бэкапов не осталось.

Победил, угробив 3 дня. Какой же корявый код USB библиотек у Атмела…

maloii

Вопрос к знатокам! Во время тестирования авто пилота наткнулся на проблему с eeprom. Все настройки авто пилота у меня редактируются стиком (rc)пульта и сохраняются в eeprom, но при повторном включении ячейки памяти повреждаются. Пообщавшись с народом понял что проблема в скачках питания, когда я включаю телеметрию мотор на самике начинает петь, проскакивает перепад. Друг говорит что атмелы косячат eeprom при перепадах напряжения. Посоветуйте как решить данную проблему, как защитить eeprom?

SGordon

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

serj
maloii:

Вопрос к знатокам! Во время тестирования авто пилота наткнулся на проблему с eeprom. Все настройки авто пилота у меня редактируются стиком (rc)пульта и сохраняются в eeprom, но при повторном включении ячейки памяти повреждаются. Пообщавшись с народом понял что проблема в скачках питания, когда я включаю телеметрию мотор на самике начинает петь, проскакивает перепад. Друг говорит что атмелы косячат eeprom при перепадах напряжения. Посоветуйте как решить данную проблему, как защитить eeprom?

Используйте внешний BOD, или включите внутрений. Также я обычно не использую первые 30-50 байт eeprom.

maloii

Ух, вроде доделал. Теперь осталось только реальное тестирование в воздухе.

smalltim

Квадрат миникарты лучше целиком затенением залить.

Dikoy

А кто нибудь проверял работу серв при управляющем напряжении 3,3 вольта?
Я вчера проверил, вроде работает (питалась она от 5). И принципиально выходит, что должна, если там КМОП вход. Но вдруг мне просто повезло?..

maloii
Dikoy:

А кто нибудь проверял работу серв при управляющем напряжении 3,3 вольта?
Я вчера проверил, вроде работает (питалась она от 5). И принципиально выходит, что должна, если там КМОП вход. Но вдруг мне просто повезло?..

Не знаю точно, но например в телеметрии от rangevideo стоит step up converter. А они телеметрию долго и жёстко отлаживали.

Dikoy

Ну он питает и сервы, или только аппу?

Brandvik

Я так понимают он управляющий сигнал подтягивает до 5ти В.

Dikoy

Подтянуть можно и без степапа, тупо меняя направление вывода МК с выхода на вход, и имея резистор подтяжку к +5 вольт.
Если и ставить степап, то дял питаняи всей аппы. И не степап, а сепик…
По этому я и удивился - отдельный степап на сигнал серв…

pvp
smalltim:

…Какой же корявый код USB библиотек у Атмела…

Позволю себе ещё разок указать на www.fourwalledcubicle.com/LUFA.php.
На мой взгляд, вполне проработанная библиотека usb для atmel’ов, сопровождающаяся кучей примеров устройств различных классов. По крайней мере, в части реализации HID и CDC устройств, у меня всё работало.

pvp
serj:

…Также я обычно не использую первые 30-50 байт eeprom.

Я тоже так делаю, а точнее, начинаю использовать eeprom со старших адресов.

serj
Dikoy:

А кто нибудь проверял работу серв при управляющем напряжении 3,3 вольта?
Я вчера проверил, вроде работает (питалась она от 5). И принципиально выходит, что должна, если там КМОП вход. Но вдруг мне просто повезло?..

Управляющий сигнал в 3.3-3.7 вольта является “де факто” стандартом большинства приемников- по питанию приемника стоит стабилизатор на 3.3- 3.7 вольта.

Питание самой сервы, понятное дело должно быть нормальное - 4.2-6 вольт.
Также следует обратить внимание на помехи по “земляному” проводу- если есть вч- составляющие тока, то они могут снижать помехозащищенность- при большой нагрузке некоторые аналоговые сервы начинают дрожать. Обычно такие помехи проявляют себя при использовании удлинителей серв.

smalltim

>Позволю себе ещё разок указать на www.fourwalledcubicle.com/LUFA.php.

Да знаю я про них, знаю. Пробовал, работает. Только у них слишком высокий уровень абстракции. Эвенты там еще эти дурацкие. Мне корявость атмела ближе к сердцу, особенно когда она уже вылечена. Да и поближе к железу она. Да и шудулер у меня свой.

Теперь вот сижу в DDK ковыряюсь - атмеловские библиотеки для Win32 теряют почти половину из приходящих HID-репортов. Опять придется всё руками делать, хехе.

Dikoy

Да ладно? Уж пяток проектов сдали на кее с атмельским CDC, и всё как часики. Хотя тоже библиотеки правил. Что подразумевается под библиотеках под вин32?
ПС. А при диагональном расположении пирометров вы как считаете дельту? Как дельту среднего арифметического между соседними датчиками?

smalltim

>Уж пяток проектов сдали на кее с атмельским CDC, и всё как часики.
CDC и HID - это разные вещи кагбе. HID клевый, потому что драйверов вообще не надо. То есть, вообще юзеру ничего делать не надо. Воткнул и работаешь. Только для режима DFU надо драйвер. Хотя в принципе и бутлоадеры HID есть.
Зато HID медленный. 64 кбайт/сек - это если очень повезет. Я пока выжал почти 32, не знаю, что получится, когда откажусь от атмеловских библиотек. Почти 32 - это потому что атмельская либа, зараза, пакеты теряет когда между пакетами меньше 5 мсек.

>Что подразумевается под библиотеках под вин32?
ATUsbHid.dll и иже. Там организуется отдельный поток с несинхронным, зато неблокирующим чтением из девайса-файла, и с FIFO приходящих с девайса HID-репортов. Надо синхронное. Не надо FIFO. Поковырявшись в DDK понял, что, оказывается, это просто.

>А при диагональном расположении пирометров вы как считаете дельту? Как дельту среднего арифметического между соседними датчиками?
Ну здрасте. Матрица поворота на 45 градусов.
Крен - сумма дельт двух пар. Тангаж - разница дельт двух пар. Ну или наоборот, смотря в какую сторону на 45 градусов голову повернули 😃
Ну и поделить на корень из двух. На всякий случай 😃

PigTail

2 Dikoy, а какие у Вас цифровые сенсоры, буковки у них какие, чой то не могу найти 😦

Dikoy
smalltim:

рен - сумма дельт двух пар. Тангаж - разница дельт двух пар.

А пары у вас, это диаметрально противоположные датчики?

Вахтанг

Я надеюсь, что вы об этом помните, но вдруг…
При переходе бортовой системы на управление от автопилота, при пропадании сигнала от передатчика, может возникнуть неприятная ситуация, по причине изменения нулевой точки РМ. Дело в том, что настройки всех триммеров хранятся именно в передатчике, а не в приемнике, и при пропадании сигнала от передатчика, по идее, приемник должен выставить РМ в свой нейтрал (справедливо для аппаратуры на 2,4ГгЦ, ибо у FM нет «сейф моде» и едет крыша, если потерял передатчик)!