Cheerson CX-20 клон квадрокоптера DJI Phantom

An_private
drdupery:

куда ж они столько памяти сожрали

Буфера под USB. Судя по тому, что в makefile штатно есть опции и для 16u2 и для 32u2 - всё должно работать и там и там.

drdupery
An_private:

всё должно работать и там и там.

я тоже так считаю, а на чём там затык в данный момент, ничего у MFer не заработало?

а он 32U2 влил в 16U2, думаю, что если зальёт 16U2 в 16U2, то всё будет ok
можно скомпилить 32U2 и посмотреть сколько байт используется и если > 512, то вот он и ответ

An_private

--------- Target Information ---------
AVR Model: atmega32u2
Board: USER
Clock: 16000000Hz CPU, 16000000Hz Master
--------------------------------------

Size after:
AVR Memory Usage
----------------
Device: atmega32u2

Program: 5512 bytes (16.8% Full)
(.text + .data + .bootloader)

Data: 510 bytes (49.8% Full)
(.data + .bss + .noinit)

drdupery
An_private:

Data: 510 bytes (49.8% Full)

тогда остаётся только гадать заработает или нет 😃
но раз автор предусмотрел 16U2 то скорее да, чем нет
если только китайцы не стали использовать другие линии передачи инфы из маленького чипа в большой 😃

An_private
drdupery:

если только китайцы не стали использовать другие линии передачи инфы из маленького чипа в большой

С этим то разберёмся. Сейчас хотя бы добиться базовой работы - чтобы после перепрошивки увиделся по USB как com-порт.

drdupery:

раз автор предусмотрел 16U2

Там авторов - туева хуча - это же fork от ardupilot. А Кирилл добавил только отдельную библиотеку sbus вместо ppm.

drdupery
An_private:

Сейчас хотя бы добиться базовой работы

ждём, когда MFer зальёт 16U2 версию

MFer
drdupery:

ждём, когда MFer зальёт 16U2 версию

сорь затянул, т.к. сломался паяльник )))

итак, отчитываюсь:

  1. Arduino-usbdfu.hex - через USBAsp не заливается, выдает ошибку:

пришлось обратно шить нарытую в инете, которую я выкладывал выше в архиве (кстати убил на поиски подходящей часа два в прошлый раз - в оригинале она называлась Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex)…

  1. Arduino-usbserial.hex - через Flip в режиме DFU прошился, ком-порт определился, миссион планнер коннектится не захотел ни в какую, ни на каком баудрейте…

  2. Arduino-usbserial-sbus.hex - через Flip в режиме DFU прошился, ком-порт НЕ определился, но тут хотя бы в отличии от той проши (под 32-ю атмегу) устройство неопознанное определилось ))

оставил контроллер распаянным под дальнейшие эксперименты )))

An_private

У меня есть подозрение, что по мере развития проекта он просто перестал влезать в память 16u2 (занята практически вся оперативка, а еще должно быть место для стека и кучи). И на каком-то этапе на поддержку 16u2 просто забили. То есть старые прошивки существуют и шьются, а вот скомпилировать новую для 16u2 просто уже нельзя. Я сейчас скомпилировал обычную ppm прошивку под 16u2 из официального хранилища ardupilot (не sbus fork). Если она тоже не заработает, то я пас - значит для 16u2 надо искать старую работающую прошивку и реинтегрировать туда библиотеку s-bus от Кирилла. Это та еще работёнка, я ей заниматься не буду. Проще уж сдуть 16u2 и на её место поставить 32u2, либо поставить внешний конвертер s-bus -> ppm.

drdupery
An_private:

а еще должно быть место для стека и кучи

не знаю как в атмеге, а в других для стека специальная отдельная память, в слабеньких на максимум 4-5 вызовов
куча - это если мы выделяем память функциями в C, также переменные, но здесь это контролируется всё компилятором, так как в прошивке не используются сишные функции для выделения памяти

surfer_kz

А вся возня с Sbus только чтобы количество проводов уменьшить или еще какие-то плюсы есть?

darkcats
surfer_kz:

А вся возня с Sbus только чтобы количество проводов уменьшить или еще какие-то плюсы есть?

есть, помимо проводов, еще и 12 каналов! с приемника… на 10, и даже на 8… по PWM которые

An_private
drdupery:

не знаю как в атмеге, а в других для стека специальная отдельная память

Нет, здесь общая.

drdupery:

в прошивке не используются сишные функции для выделения памяти

Не проверял. Но вот на стек уже может и не хватить.

mfilitovich

Так ведь есть конвертер - микроплата sbus в ppm, попробую прикупить такую.
RCTimer Крошечные Конвертер SBUS ЧТОБЫ PPM или SpeSerial Приемник Freeshipping
www.aliexpress.com/item/…/32685683269.html
(from AliExpress Android)

MFer
An_private:

Так, а если вот это прошить?

Также как с предыдущим вариантом (без sbus) - шьется через Flip в режиме DFU, ком порт появляется, но при попытке законнектить в МП выдает таймаут.
Причем сначала как бы начинается коннект, а потом сразу таймаут - в конце ошибка - “получен только один пакет”…
i64.tinypic.com/2rruddw.png

Прошил обратно флипом раодную прошивку - все коннектится нормально…

При этом при нормальном коннекте диоды работают так:
i65.tinypic.com/2a27gi.jpg

При твоей прошивке - диоды приема/передачи данных не работают…

An_private

Ясно. Тогда отбой - если прошивка из основной ветки не работает - значит простыми способами вариант под 16u2 не сделать.
Ну, не смогла 😃

darkcats

слава богу я свой не стал пробовать шить… есть у кого стоит 32 то? чет лень вскрывать свой… у мя из последних…

MFer
darkcats:

слава богу я свой не стал пробовать шить…

че это в суе? )) ничего там сложного не оказалось. щас когда рука набита можно на поток ставить )))

darkcats
MFer:

че это в суе? )) ничего там сложного не оказалось. щас когда рука набита можно на поток ставить )))

а смысл то?)) надо чип перепаять…

An_private
MFer:

щас когда рука набита можно на поток ставить

Кстати, выложили бы куда-нибудь родную прошивку - вдруг кому понадобится.