Создание собственной системы стабилизации

mahowik

как там говорят: “дьявол в деталях”… а может именно с дискавери платой какая особенность… хз…

кстати попробуй проект открыть мой (точнее твой, но адаптированный под мпу6050 😃), может там в настройках самого проекта что нить не то… собери мне хекс-у и почтой кинь… проверю…

rual
mahowik:

как там говорят: “дьявол в деталях”…

это да

mahowik:

а может именно с дискавери платой какая особенность…

это нет

mahowik:

там вполне структурировано и не коряво с виду написано…

Да, компоновка настроек неплохая, и код написан для абстрактного порта, описанного в структуре. Но сами алгоритмы ничем не отличаются.

mahowik
rual:

это нет

а оказалось да 😃 бомба в дискавери-Ф4 на PA9 висит 😃 че блин сразу не залез в схему, раз догадки были… кондер блин на 4.7мкф на лапе сидит…
micromouseonline.com/…/using-usart1-on-the-stm32f4…
my.st.com/public/STe2ecommunities/…/Flat.aspx?Root…

перевесил USART1 на PB6, PB7 и все пошло, но пока мучился уже успел портануть USART+DMA из MWArmF4 😃
терь покрасивше чуток… конфиг такой вышел

SerialPortDef SerialPorts[MAX_SERIAL_PORTS] = { // Tx, Rx
    { true, USART1, GPIO_AF_USART1, GPIOB,
        GPIO_Pin_6, GPIO_PinSource6, // PB6
        GPIO_Pin_7, GPIO_PinSource7, // PB7
        true, USART1_IRQn,
        false, DMA_Channel_4,
        DMA2_Stream7, DMA2_Stream7_IRQn,
        DMA2_Stream5,
        115200
        },

    ...
    };
SergDoc

а цыфирку то 115200 зачем там переменная speed есть через cli можно любую скорость ставить…

mahowik:

перевесил USART1 на PB6, PB7 и все пошло

для baseflight это критично, для прошивки через терминал загоняется R - ппроц спускается до лодыря, а лодырь у тебя на других лапах усарт ищет 😃

mahowik:

перевесил USART1 на PB6, PB7

на новой плате он там:) но по другим причинам…

rual
mahowik:

перевесил USART1 на PB6, PB7 и все пошло, но пока мучился уже успел портануть USART+DMA из MWArmF4

)))) нудык! этаж не дискавери, этаж надо смотреть

SergDoc:

на новой плате он там но по другим причинам…

По этим же причинам, VBUS там.

SergDoc
rual:

По этим же причинам, VBUS там.

А нафига они там кондёр то повесили? я на старой плате закоротил, теперь если шиться через usart1 припрёт (лодырь залить с полным стиранием) только шнурок от usb отцепить дабы питание на pa9 не шло - и прекрасно работает… гы у тебя похоже не получалось через usart1 лодырь залить по той же причине 😃 - я считаю косяк проца в этом (неудобство для пользователя) не ну конечно есть DFU через USB - но чёт я так и не понял как через него всю флеш стереть😵
Там же по моему даже питание на плату с того USB не идёт? (discovery)
вот и вывод - хочешь USB, либо делай лодырь, либо вешай 1.5К на VBUS - D+ и используй программно свободную лапу…

rual
SergDoc:

А нафига они там кондёр то повесили?

Дык, usb та там ОТГ, нужно ж в некоторых демках от него внешнее устройства питается.

SergDoc:

я считаю косяк проца в этом (неудобство для пользователя)

да нее, не косяк, тут либо-либо. если есть USB то нах усарт? Если нет USB? тогда пожалуста usart.

SergDoc:

но чёт я так и не понял как через него всю флеш стереть

То что всё стереть нельзя, дык это в демо софте. Если сильно надо протокол открытый.
А кстати, зачем надо? У нас с тобой проблема прошивки не в этом была.

SergDoc:

вот и вывод - хочешь USB, либо делай лодырь,

Сергей, из чего такой вывод? При формировании ДФУ из нормального HEX это нафиг не надо.

Лодырь для Ф4 нужен только для одного, чтоб шится шифрованной прошивкой, это всё… Других применений собственного лодыря придумать не могу.

SergDoc
rual:

То что всё стереть нельзя, дык это в демо софте. Если сильно надо протокол открытый.
А кстати, зачем надо? У нас с тобой проблема прошивки не в этом была.

rual:

Сергей, из чего такой вывод? При формировании ДФУ из нормального HEX это нафиг не надо.

Лодырь для Ф4 нужен только для одного, чтоб шится шифрованной прошивкой, это всё… Других применений собственного лодыря придумать не могу.

Через демку не сотрёшь - а это однозначный косяк при перезаписи!!! т.е. как выход надо делать свою софтину DFU, или каждому в довесок к плате St-Link собирать? ну или как вариант покупать discovery ибо отдельно программатор как-то не по вкусной цене. Выход для простого пользователя - лодырь (ну тот-же арду - залился планера и привет - новая прошивка) да была бы USB демка такая-же как uploader по Usart да цены б ей небыло и вопросов бы не возникало USB или Usart. Ну вот зачем простому пользователю лишние телодвижения, в той же baseflightGUI всё встроено загоняет проц в режим лодыря и запускает прошивальшик без дёрганий втыкания BOOT0…

При формировании ДФУ из нормального HEX это нафиг не надо.

Кстати надо поработать над техникой 😃 по идее можно заставить компилятор сразу создавать DFU займусь новым лодырем (ну под новую плату) поэкспериментирую…

rual:

А кстати, зачем надо? У нас с тобой проблема прошивки не в этом была.

А вот я пробовал залить арду (vrbrain) а потом обратно baseflight - и усё не стартует…

rual
SergDoc:

А вот я пробовал залить арду (vrbrain) а потом обратно baseflight - и усё не стартует…

Серёг, это косяк НЕ ПРОЦЕССОРА, это КОСЯК прошивки. Либо она заливается не в те адреса, либо что то ищет в не размеченной компиллером области и находит что-то не то.
Было бы не плохо вычислить что её надо, как это сделать не знаю.

Drinker
SergDoc:

Через демку не сотрёшь - а это однозначный косяк при перезаписи!!! т.е. как выход надо делать свою софтину DFU

Че за демка и что тут стираете? Чем дфу тестер не устраивает?

Стер всё им и прошился им-же

SergDoc
rual:

либо что то ищет в не размеченной компиллером области и находит что-то не то. Было бы не плохо вычислить что её надо, как это сделать не знаю.

Конечно ищет 😃 у неё ж там виртуалка 😃 так вот в том то и проблема что если мы что-то меняем в DFU через USB то только в том месте куда прошиву льём… при чём оно просто заменяет данные, а не стирает а потом записывает 😦

Drinker:

Че за демка и что тут стираете? Чем дфу тестер не устраивает?

через USB нативный…

Drinker
SergDoc:

через USB нативный…

Наверное я чето не понимаю. В чем проблема лить проши через усб? Я лична только так и шьюсь. И никак иначе.

Drinker
SergDoc:

DFUse ? она не даёт стирать флеш…

STDFU Tester я использую…

Стирает все к чертям.

SergDoc

Помню что оно у меня не пошло, а почему не помню, оказывается у меня версия STDFU Tester 3.0.0 а она зараза только видимость создаёт, по сей причине я и пользовал dfuse, сейчас скачаю новую посмотрю…
Скачал - побаловался, да действительно всё делает, но не удобно для тех кто привык нажимать одну кнопку…

Drinker

[quote=SergDoc;4646870]да действительно всё делает[/quo
Ну так.

SergDoc:

побаловался, да действительно всё делает, но не удобно для тех кто привык нажимать одну кнопку…

Все усилия брось на однокнопочнегоф! А если по делу, то самый вариант - это бут в мк и прога - запузыриватель прошы. Посмотри на форк либмапле и там есть бутлодер, занятная вещь.

rual
SergDoc:

Конечно ищет у неё ж там виртуалка

виртуальная флеш чтоли? в каком месте нутекс с ней работает?

SergDoc:

при чём оно просто заменяет данные, а не стирает а потом записывает

ну да, заменяет одну прошивку на другую, и эта другая прошивка не должна лезть не в свои сегменты памяти. А если лезет только в свои, то там должна находить то что ей нужно.
Единственная проблема бывает, когда прошивка читает битые (либо старые) данные настроек из виртуальной флешки процессора. Ну дык это должно быть предусмотрено, и либо должно игнорироваться либо давать возможность стереть (или прописать умолчательные) данные функциями самой прошивки.

Ну а имеющийся встроенный ЮСБ загрузчик надо использовать по полной, ибо такая возможность ни пропадет никогда пока жив проц. На АПМ1.0 имел счастье криво загрузится, потом пришлось разбираться в подключении ИСП программатора и поиском кода лодыря. А как решают этот вопрос те, кто с АВРом в жизни не сталкивался?
У Ф4 эта проблема решена с рождения, ничего не надо подключать и допиливать - нажимаешь две кнопки и запускаешь прогу на компе. Любой НЕПОДГОТОВЛЕННЫЙ пользователь по трехстрочной инструкции это легко сделает.

А ещё вопрос: как пользователь будет заливать лодырь в пустой проц?

Drinker
rual:

А ещё вопрос: как пользователь будет заливать лодырь в пустой проц?

Переведет его в режим дфу и зальёт бутлодырь. Не?

кнопку сделать которую нада нажать в момент подачи питалова и усе.

SergDoc
rual:

А ещё вопрос: как пользователь будет заливать лодырь в пустой проц?

Не-не это будет как в страшном сне😈 будет искать того, кто сможет залить лодырь 😃 это как у опенпилотов такая суровая инструкция была, что отбивала охоту вообще что-то делать 😃
вон сделать инструкцию как у pixhawk pixhawk.ethz.ch/px4/users/bootloader_update, помоему достаточно нормально написано, читать с Upload via DFUse, верхнюю часть пропустим, допустим что есть готовый dfu-файл…