Jump to content

    

Компас I2C

Здравствуйте.

Есть вот такой GPS+компас. Внутри стоит модуль GPS, компас 5883 (QMC или HMC) и какая-то микросхема со затертым названием.
I2C микросхемы компаса подключено к микросхеме без названия (предполагаю что это микроконтроллер), а уже от нее
2 вывода идут на разъем и подписаны SDA и SCL.

Так вот, этот компас не получается ни прочесть ни записать конфигурацию в него.

Опытным путем удалось добиться что эта безымянная микросхема отвечает на адрес 0x40 (чтение - 0x81, запись - 0x80).
Не понятно как с ней работать. Поиск информации по форумам и даташитам компасов не дал результатов.

Может кто имел дела с таким устройством, поделитесь таблицей регистров.
Или есть предположения, кто из компасов может быть с адресом 0x40.
Или может быть есть мысли как еще можно добиться от него показаний.


Это устройство обычно используется теми кто занимается коптерами и прочими летающими аппаратами, по их форумам
полазил не нашел ничего.

compass1.png

compass2.jpg

Share this post


Link to post
Share on other sites

Микросхема или драйвер/развязка - усиливает I2C от 5883 и UART от Ublox, или микроконтроллер.

Проще прошвырнуться по исходникам engine для коптеров и посмотреть как с ним общаться.

Share this post


Link to post
Share on other sites

Думал  уже что может быть это просто буфер, но:
- он отвечает по I2C на адрес 0x40, а  у компаса адрес 0x0D
- если встать лог анализатором на выводы I2C между этой микросхемой и компасом, то видна инициализация и чтение компаса (период примерно 20мс).
Судя по обмену компас это QMC5883.

По исходникам смотрел, ничего похожего не нашел, чтобы было с адресом 0x40. Искал и 0x80 и 0x81.

Такое впечатление что китайцы ставят на плату дешевый компас, который представляется более дорогим.
Другого объяснения я не нахожу. Это люди которые за каждый микроцент дерутся, а тут целую микросхему поставили.

Share this post


Link to post
Share on other sites
16 hours ago, iamnot said:

который представляется более дорогим.

Да, такое было уже.

Могу предположить, что эта микросхема конвертирует регистры компасов выдавая один за другой. Приятелю попадался такой финт и вроде как на каком-то буржуинском форуме люди выпаивали этот чип и замыкали вход с выходом и все работало. Но, поскольку, ему такая возня ни нать, ему полетать спокойно, то просто поменял. 

Можно попробовать, что вам терять? Выпаиваете и с компаса прямо на разъем перемычками.

За интерес ради посмотреть на включение этой мсх - питание, вход от компаса, обвязка, выход... Попытаться как-то идентифицировать. Скорей всего авр какой ни то или микрочип.

Share this post


Link to post
Share on other sites

Значит у этой микросхемы распиновка такая.
1 -  GND
2 - SCL на компас
3 - SDA на компас
4 - SCL на разъем
5 - SDA на разъем
16 - +3,3В
Остальные никуда не идут. Обвязки тоже никакой :cray:.
Корпус TSOP16 вроде бы.

Находил на гитхабе вроде бы картинку где похожая истария, там была выпаяна микросхема и интерфейс соединен напрямую.
Придется на этом экхемпляре так же поступить, а вот как быть дальше. 
 

 

Share this post


Link to post
Share on other sites

Думаю нет, так как
- он отвечает по I2C на адрес 0x40, а  у компаса адрес 0x0D
- если встать лог анализатором на выводы I2C между этой микросхемой и компасом, то видна инициализация и чтение компаса (период примерно 20мс).

Share this post


Link to post
Share on other sites

Это может быть и магнитометр 2D или 3D (кроме компаса), иногда ставят и гроскоп с акселем. А что за устойство где эта плата установлена?

Нужно запросить ID девайса по этому I2C адресу 0x40, если чип отвечает, может удастся определить что за part number, mfg.

Share this post


Link to post
Share on other sites

Это GPS + компас в одном устройстве. Применяется обычно в коптерах и подобной тематике.
ID устройства можно было бы запросить, но не знаю в каком регистре он находится.

Пробовал читать регистры по порядку начиная с 0 (читаю по 1 байту). первые 8 регистров он шлет данные
0x39 0x0 0x5F 0x00 0x00 0x00 0x20 0xBC.
Если читать 9 и далее то повторяется то есть 9й будет 0x39 и т.д.
Теперь, если читать по несколько байт, то ситуация меняется. Первые 2 байта от каждого регистра читаются со значениями:
0 - 0x39 0x9F, 1 - 0x00 0x30, 2 - 0x5F 0x42, 3 - 0x00 0x00, 4 - 0x00 0x00, 5 - 0x00 0x00, 6 - 0x20 0x00, 7 - 0xBC 0x10.
Остальные 0xFF, причем NAK не шлет, можно хоть до 255 байт прочесть и все будут 0xFF.

Эти регистры на повороты компаса не реагируют, стоят все время в этих   значениях.
:dash2:
 

Share this post


Link to post
Share on other sites

Если из старых разработок, то может быть и датчик температуры для темп. калибовки чипа компаса.

Share this post


Link to post
Share on other sites

Это свежая разработка, может поэтому на нее еще нет информации.

Share this post


Link to post
Share on other sites
18 часов назад, iamnot сказал:

Это GPS + компас в одном устройстве. Применяется обычно в коптерах и подобной тематике.

"В коптерах и подобной тематике" применяются не компасы, а гироскопы. Либо гироскоп + компас. Но главный всё равно - гироскоп.

И Ваш затёртый чип похож по функционалу и корпусу на MPU-6050. Да и как видно по фотке корпус у вас не "TSOP16 вроде бы", а QFN.

У MPU-6050 как раз корпус QFN24, и он имеет два I2C-интерфейса (один (primary) - для подключения к МК, другой (auxiliary) - для опционального подключения компаса (магнетометра)).

Правда адрес по primary у него 0x68 или 0x69, а не 0x40. Так что это возможно какой-то аналог MPU-6050.

Share this post


Link to post
Share on other sites

Какой же он QFN, когда не то что TSSOP, а вообще широкий SOIC16 ? В QFN там компас, рядышком.

Share this post


Link to post
Share on other sites
9 минут назад, rx3apf сказал:

Какой же он QFN, когда не то что TSSOP, а вообще широкий SOIC16 ? В QFN там компас, рядышком.

Я из фотки понял что стёртый - это тот у которого рядом написано "U3". Если речь про соседний чип, то тогда да - это не оно.

Автору нужно яснее излагать мысли, хотя-бы пометить на фотке о чём речь. Ну или фотки делать разборчивые, а не такие смазанные.

 

PS: И если U3 - это гироскоп, то какой? Маркировки ни фига не видно. И куда идут его I2C (если они есть)? Связаны ли они с главным чипом или с затёртым чипом?

Уже за эти дни можно было прозвонить дорожки платы и выложить принципиальную схему.

Share this post


Link to post
Share on other sites

jcxz, Вы не внимательно читали сообщения.
U3 - это 3-Axis Magnetic SensorQMC5883L. Это установлено лог анализатором по обмену между безымянной микросхемой и компасом.
Вывод SDA компаса идет на 3й вывод TSOP16, SCL на 2й.
Выводы 4 и 5 микросхемы TSOP16 идут на разъем и обозначены на нем SDA и SCL соответственно.

На плате TSOP16 не имеет позиционного обозначения и ее название на корпусе стерто.
Предположительно это микроконтроллер из дешевых, потому как он опрашивает компас сам.
 

28 минут назад, jcxz сказал:

Уже за эти дни можно было прозвонить дорожки платы и выложить принципиальную схему.

Выше в абзаце и выше в сообщениях указано что куда подключается. Именно то что нужно, без лишних подробностей.
Компас -> I2C -> TSOP16 -> I2C -> разъем.
Нужно ли еще что-то рисовать, я думаю человек который в теме, поймет.
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this