Как я Spektrum и Hitec пытался подружить (часть 3)
Продолжение поста https://pikabu.ru/story/kak_ya_spektrum_i_hitec_pyitalsya_po...
С теорией разобрались - вырисовывается примерно такая схема:
В роли микроконтроллера атмега16л. Во-первых их есть у меня и куда-то надо девать, во вторых на 8мгц с прескаллером 1/8 таймеры считают каждую микросекунды и математика становиться немного проще. + С точки зрения кода мало что меняется, ТК есть проекты ардуины почти под все чипы АВР.
Код можно посмотреть у меня на гитхабе:
https://github.com/Shkolik/PPM_converter
Код постепенно допиливается, в частности сейчас в планах перейти на прямое управление портами, ТК с таймингом уже есть проблемы. Главная засада сейчас в том, что ардуина считает микросекунды дискретно по 4 при 16мцг и по 8 при 8ми. Это вызывает дрейф значений +-8мкс при чтении, что в свою очередь завтавляет сервы дрожать. И если для какого планера-тренера ещё не так страшно, то для чего либо побыстрее уже очень критично. Так что в первую очередь надо избавиться от использования функции micros() в расчетах и для этих целей использовать последний свободный таймер...
Пару фоток на закуску:
Стабилитрон и резистор распашные прямо на разъем, питание берём там же.
Самый обычный линейный стаб на 5в для питания Меги.
Вот так пока все на соплях. Плату изобретать не хотелось - все же макет.
ISP разъем - прошивку менять придётся часто. Рядом ещё тх/рх уарта, для отладки.
Можно закрывать и дальше работать над кодом.
В следующей части постараюсь привести код к минимальному рабочему состоянию, осталось только найти на это время...
ИМХО, если хочешь точности в 1мкс таймер надо тактировать хотя бы от 10МГц. .+ Купить новый(!) качественный кварц со стабильностью 10^-8 - 10^-12. + Надо убедиться, что фронты импульсов измеряемого сигнала достаточны для стабильной работы таймера мк. + Уверены, что такая погрешность не приходит с первого пульта? На крайний случай я бы округлял значения, с шагом 5-10 единиц.
эмм, стабилитрон сразу на ногу контроллера, не боитесь? рабочий ток ноги маленький, может стоило гасящий резистор поставить или буфер на чем то вроде 1G125?
Автор, у тебя ж 16ая мега, там есть жтаг, нафига тебе этот исп разъем? Ну и использовать 16 мегу и не пользоваться благами настоящей отладки в железе по жтагу - как то странно.
открыл свой чемоданчик с zxSpetrum'омо Нафаней, прослезился .... закрыл. Старечку уже 28 лет, но он в рабочем состоянии.