Создание собственной системы стабилизации
там просто транзит, а вот по 6000 бог его знает, надо чтобы мпу мастером читала компас записывала в регистры, а потом их (данные) можно было забрать через spi…
Там как раз так и сделано, во всяком случае в 2.2:
Чтение компаса:
//The MAG acquisition function must be replaced because we now talk to the MPU device
#if defined(MPU6050_I2C_AUX_MASTER)
void Device_Mag_getADC() {
i2c_getSixRawADC(MPU6050_ADDRESS, 0x49); //0x49 is the first memory room for EXT_SENS_DATA
#if defined(HMC5843)
....
инициализация MPU:
#if defined(MPU6050_I2C_AUX_MASTER)
//at this stage, the MAG is configured via the original MAG init function in I2C bypass mode
//now we configure MPU as a I2C Master device to handle the MAG via the I2C AUX port (done here for HMC5883)
i2c_writeReg(MPU6050_ADDRESS, 0x6A, 0b00100000); //USER_CTRL -- DMP_EN=0 ; FIFO_EN=0 ; I2C_MST_EN=1 (I2C master mode) ; I2C_IF_DIS=0 ; FIFO_RESET=0 ; I2C_MST_RESET=0 ; SIG_COND_RESET=0
i2c_writeReg(MPU6050_ADDRESS, 0x37, 0x00); //INT_PIN_CFG -- INT_LEVEL=0 ; INT_OPEN=0 ; LATCH_INT_EN=0 ; INT_RD_CLEAR=0 ; FSYNC_INT_LEVEL=0 ; FSYNC_INT_EN=0 ; I2C_BYPASS_EN=0 ; CLKOUT_EN=0
i2c_writeReg(MPU6050_ADDRESS, 0x24, 0x0D); //I2C_MST_CTRL -- MULT_MST_EN=0 ; WAIT_FOR_ES=0 ; SLV_3_FIFO_EN=0 ; I2C_MST_P_NSR=0 ; I2C_MST_CLK=13 (I2C slave speed bus = 400kHz)
i2c_writeReg(MPU6050_ADDRESS, 0x25, 0x80|MAG_ADDRESS);//I2C_SLV0_ADDR -- I2C_SLV4_RW=1 (read operation) ; I2C_SLV4_ADDR=MAG_ADDRESS
i2c_writeReg(MPU6050_ADDRESS, 0x26, MAG_DATA_REGISTER);//I2C_SLV0_REG -- 6 data bytes of MAG are stored in 6 registers. First register address is MAG_DATA_REGISTER
i2c_writeReg(MPU6050_ADDRESS, 0x27, 0x86); //I2C_SLV0_CTRL -- I2C_SLV0_EN=1 ; I2C_SLV0_BYTE_SW=0 ; I2C_SLV0_REG_DIS=0 ; I2C_SLV0_GRP=0 ; I2C_SLV0_LEN=3 (3x2 bytes)
#endif
надо что бы компас физически сидел на доп. i2c шине mpu…
Александр, но эт понятно, жаль Сергей в своей плате это не предусмотрел.
Я как-то не вижу в этом особого смысла, можно будет, если всё нормально, в доработанной версии предусмотреть перемычки как в AIO
проект скомпилировал, но он, к сожалению, не запустился 😦
сижу разбираюсь…
проект скомпилировал, но он, к сожалению, не запустился
ну дык ты его отладчиком проутюжь, хотя бы инициализацию внутренних устройств, проблема скорей всего там.
Я как-то не вижу в этом особого смысла,
Смысл есть в части упрощения процедур чтения датчиков, можно в пдп через SPI всё читать одним потоком в память, а там разбирай как хочешь. Тут смысл не в скорости, а в надёжности. Единственнный вопрос как МПУшка как мастер и2ц выводит шину из зависания.
не могу разобраться с памятью:
*** error 65: access violation at 0x40023800 : no 'read' permission
это в кеил, что дебаггер не знает такого камня?
Думаю надо начинать всё сначала, сделать периферию, а потом уже wii встраивать, ибо я уже запутался где что…
это в кеил, что дебаггер не знает такого камня?
Это ты эмулятором отлаживаешь? Если да, то не стоит, подключи JTAG.
Думаю надо начинать всё сначала, сделать периферию, а потом уже wii встраивать, ибо я уже запутался где что…
Это правильное решение, разберись где алгоритм обращается к датчикам и устройствам и от этих точек рисуй функции вниз к перефирии.
залил в GIT, то что сейчас имеется github.com/SergDoc/…/Tests_NO_flight , ибо не имею представления где сейчас копать. проект под кеил и эклипс (не хочет нормально hex собирать в эклипсе, кеил собирает)…
подключи JTAG.
на данный момент, я это - сапожник без сапог 😃
под эклипсом ошибку нашел, в макефайле, теперь hex собирается, буду переделывать периферию 😦
SRCSASM := $(wildcard src/*/startup_stm32f4xx.S)
проц не стартует вообще…
опытным путём установлено: multipilot32 лезет в мой проц, но тоже не запускается 😦 точнее родная прошивка пытается запускаться… буду изучать…
так что пока работает только моргалка светодиодами. И это на Ф4 - помоему перебор с процем 😃
а у меня dfu работает 😃 можно лить во флеш через usb code.google.com/p/multipilot32/downloads/detail?na…
намного быстрее чем через com…
оно мне определяет все 12 секторов флеши, странно…
дабы не потерялось, чтобы эклипс дружил с pde и ino файлами надобно провернуть:
Once you have Eclipse installed and running you should select ‘Help’ -> ‘Install New Software…’ from the menu bar. Click the ‘Add…’ button in the upper-right hand corner of the dialog box. Fill in the fields as follows:
Name: Processing Plug-in
Location: eclipse.processing.org/plugin/site.xml
опытным путём установлено: multipilot32 лезет в мой проц, но тоже не запускается
Сергей, без отладчика пересаживать прошивку это жёстко. Единственный вариант это ставить маячки на прошождение инициализации. Но тогда нужно очень внимательно глазами проверить инициализацию счёчика команд и стека. Для начала инициализировать в майне вывод на светодиод, и потихньку перемещать его включение ниже по программе.
Сергей, без отладчика пресаживать прошивку это жёстко.
на дискавери на чём ST-Link собран? F103? http://i074.radikal.ru/1207/d9/8569eda4c994.jpg
что-то типа этого надо собрать 103-й у меня один есть… сделаю, только паршивку слить откуда?
на дискавери на чём ST-Link собран? F103?
Да.Да.
Схема и прошивка здесь -> www.st.com/web/catalog/tools/FM146/…/PF219866
Да.Да.
Схема и прошивка здесь -> www.st.com/web/catalog/tools/FM146/…/PF219866
Чёт не нахожу прошивку.
Собрал я что-то ужасно-непонятное из платки от какого-то китайского полётного контроллера подареной Gapey, страх смотреть, но работать должно, пока с прошивкой ещё не разбирался, не проверял, устал на работе страх - все поболели, метался как угорелый и за своим и за чужим и на телефоне…
taylorkillian.com/…/retrieving-st-linkv2-firmware-… похоже зря потраченное время 😦
Чёт не нахожу прошивку.
похоже зря потраченное время
Да, блин… ((( нетути…
получается прощще взять дискавери и отпилить от неё.
можно ещё опенпилотовский Jtag собрать но ft232 нету… блин не вовремя…