Создание собственной системы стабилизации
нет они навсегда его… и в бутлоадер если бы влез то прощай проц, а так в dfu и пишется и стирается…
т.е. через DFU все шьется а через стлинк 0 эффекта? хм странно…
мне на хмеге с этим попроще, ПДИ программатор = 1 микруха + горсточка рассыпухи, прошивается по ЮСБ -> залил бутлоадер в хмегу и шей микруху через DFU FLIP-ом + виртуал ком порт через тот же юсб при норм работе на любой скорости без необходимости переключения в микрухе
П.С. Вчера дошли таки руки, портанул FreeIMU библиотеку к себе, правда остался один непонятный ньюанс - компас при калибровке эллипсоидом рисует не дугу, а ступеньками -> по компасу направление плавает в пределах +/- 5 градусов, по горизонту +/- 1 примерно, но это просто откалибровать получше нужно
теперь остается переделать опрос датчиков по типу вия и внедрить нормально в вий окружение
чуть не забыл, время цикла получается даже меньше виевского, 2000-2200 на 32МГц и 1500 на 48
кстати… знает кто как победить atan/atan2 чтобы при наклоне >90 градусов значения не уменьшалиль до 0 а работало до 180?
в STM-ах родной бутлоадер с завода, не переписывается, не стирается, все остальные типа Мапловский или Опенпилотовский - это вторичные бутлоадеры, располагаются в основной флеши вместе с программой и стартуют после основного. Так вот основной бутлоадер при условиях BOOT0 и BOOT1 либо грузит с внутреннего флеша, либо с внешнего, или же с UART-портов и USB (DFU)… при пустой флеши или с программкой (тестовой) St-Link - видит и читает, и пишет, и отлаживает, а ежели я своё запихиваю то кирдык - тишина, так вот я и думаю что в ресете проц подвешивает, или питание в какой стендбай загоняет, ибо на кварце 0, а вот что на ресете не померял, если не забуду тестер то проверю вечером…
по компасу направление плавает в пределах +/- 5 градусов, по горизонту +/- 1 примерно,
Mahowik писал, что траблы там с калибровкой новой, загонял старую…
Короче пошел изучать всё с ноля, я на сколько понимаю ошибка где-то в инициализации…
У себя в дневнике если мне память не изменяет…
У себя в дневнике если мне память не изменяет…
не… с Фабио библиотекой не игрался… ток заглядывал… сейчас в mwii_2.2 версии работу с компасом в ИМУ подправили и даж при наклонах уплывания мизер… устраивает и так…
п.с. Дописал бета версию инерциалки аксель+гпс, но погода блин тупит… в альфа версии перепутал знак одной из компонент конечного пид регуля… пошел летать и думаю, шо за х%ня, вместо удержания позиции раскачки и танцы 😃
Киньте кто в меня где почитать про ПДП в F4, а то чёт не могу разобраться какой канал для чего, и Stream ?
Киньте кто в меня где почитать про ПДП в F4
Сергей, читай родную доку, а лучше возми пример для девборды, там всё чётко расписано.
п.с. Дописал бета версию инерциалки аксель+гпс,
Я тож самоё пытаюсь сделать только с оптодальномерами, чёт пока не очень. Александр, у тебя аксель какой?
у тебя аксель какой?
отвечу - mpu 6050
Сергей, читай родную доку, а лучше возми пример для девборды, там всё чётко расписано.
на сколько я вкурил у f10x и f4xx довольно по разному всё это делается, например uart1 в f10x сидит на 4-м канале, а в f4xx на 4-м канале 3-й uart по 10х есть табличка где что, а вот на 4хх не нашел 😦
на сколько я вкурил у f10x и f4xx довольно по разному всё это делается
Про ф4 ничего нескажу, дисковери мне ещё не пришли, могут быть конфликты по ресурсам. может есть смысл вообще от ПДП отказаться для УАРТ, сделать в прерывании?
в 3-й и в 4-й периферия одинаковая вроде…
и на сколько перелистал, не нашел, на какую литературу опереться…
Сергей, качай вот это www.st.com/st-web-ui/static/…/DM00031020.pdf
см. стр. 215. далее смотришь всё что ниже и доходишь до Таб 35.
Вкрацце примерно так: выбираешь поток который будешь использовать для передачи, потом разрешаешь потоку канал соответсвующий устройству (таб35), и не забываешь разрешить устройству соответсвующий запрос ПДП.
Кста, ПДП у Ф3 такое же как Ф1, у Ф4 более гибко.
И ещё прикол, есть железософт Ф4 под меломягкий Ц# www.st.com/st-web-ui/static/…/DM00063340.pdf
Вот где с железом можно не париться, вебкоптер для д😁мохозяек!
Спасибо - будет что почитать на ночь 😃 к мелкомягким отношусь - а никак не отношусь 😃 чё и полез под эклипс, дабы уплыть с win/
у меня пока две новости:
в dfu - проц видится из-под st-link, значит отпаиватся больше ненадо и вторая - под эклипсом и кейлом прошивки получаются идентичные, значит всё собирается одинаково, а да уже на кварце появились правильные напряжения (осциллограммы не смотрел ибо мой личный С-61 домой тягать напряжно, а на работе некогда…) …
если что от ST-link у меня 6 проводов, SWDIO, SWCLK(не зря на плате контактные площадки сделал 😃 ), RESET, на порт B3(не понял зачем?), +5V, GND…
p.s. Могу сделать схему и печатку под полный ST-Link, с поддержкой JTAG интерфейса, правда пока не вижу смысла, но если кому понадобится нарисую(безвоздмездно-тобишь даром:) )…
p.p.s. ПДП2 использовал для АЦП из примера - вроде пошло…
к мелкомягким отношусь - а никак не отношусь
да я это не тебе, не помню в какой ветке встречалось, вроде здесь новички спрашивали компактную платформу с высокоуровневым программированием.
если что от ST-link у меня 6 проводов
на дисковери тоже 6
Сергей, качай вот это www.st.com/st-web-ui/static/a...DM00031020.pdf
Ещё раз спасибо, на 219 стр. как раз то что и искал, UART1 только DMA2 в ф4, а я его пытался в первый запихнуть как в 103-м 😃
на дисковери тоже 6
а нафига на B3?
вроде здесь новички спрашивали
Александр, подскажите, (настраиваю L3gd20) что есть параметр “bandwidth” типа “ширина полосы”,
поставил у гиры FULL SCALE 2000 а данные на выходе (в терминал) скачут аж до 6000!, ничего не могу понять…
Да еще как то странно не совпадают оси “X” и “Y” , а “Z” вообще не реагирует…
Вот мой “быдлокод”:
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}
SPI_SendData8(SPI1,0xE8);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[0]=SPI_ReceiveData8(SPI1);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[1]=SPI_ReceiveData8(SPI1);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[2]=SPI_ReceiveData8(SPI1);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[3]=SPI_ReceiveData8(SPI1);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[4]=SPI_ReceiveData8(SPI1);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){}
GYR[5]=SPI_ReceiveData8(SPI1);
GPIO_SetBits(GPIOD,GPIO_Pin_7);
GX=(int16_t)(((uint16_t)GYR[1]<<8)+GYR[0]);
GY=(int16_t)(((uint16_t)GYR[3]<<8)+GYR[2]);
GZ=(int16_t)(((uint16_t)GYR[5]<<8)+GYR[4]);
У ST есть драйвер и как с ним общаться www.st.com/web/en/catalog/tools/PF257526
а я по прежнему не могу завести проц 😦 даже пока не знаю где копать…
Вот где с железом можно не париться, вебкоптер для дмохозяек!
А зря Вы так смеетесь когда много лет назад сидел на Эмбедет студио от Микрософта, когда андроида не существовало и была только Win CE, когда производители железа использовали кто мипсы кто АРМы, Микрософт тогда имел мольный сдк и отличную документацию для разработки под узкий круг процов. Вообще круче мелкмягких по документации равных и сейчас нет. Самое главное это же сократить сроки разработки, а не процесс ради процесса. После мелкомягких мне переходить на эклипсоподобный софт было как даунгрейд.
Я конечно же туповатый, но упрямый, дебаггер я запустил, по всей видимости проц не стартует, куда в первую очередь ткнуться?
проц уже определяется дебаггером - всё что пока могу сказать…
А зря Вы так смеетесь когда много лет назад сидел на Эмбедет студио от Микрософта, когда андроида не существовало и была только Win CE
О да, EVС++ 3.0 и 4.0 была вполне неплоха, последняя которую использовал, была VS2003/2005 и SDK под WM5.0, по возможностям отладки очень даже (например посмотреть HTML с форматированием прямо в дебаггере), в Эклипсе до сих пор такого вроде нет. Плюс практически все возможности винды - MFC, ATL, COM, GDI, и пр, на мобильном устройстве.
C# кстати под WinMobile тогда уже был, правда довольно-таки урезанный и бесполезный.