roboforum.ru

Технический форум по робототехнике.

HMC6352 проблема с компасом

HMC6352 проблема с компасом

Сообщение whale » 13 фев 2013, 12:51

Проблема с компасом HMC 6352
Сначала работал, выдавал 0-360 град но как то криво,
решил выяснить в чем дело и в конце концов компас стал выдавать только два угла
примерно 290 и 50 град, меняется при переходе через север/юг.
Сырые данные при регистре 4E =3 и 4 после калибровки и при ручной настройке
сдвига меняются синхронно но с разным знаком, те тангенс угла от них как раз и будет
постоянным что очень странно.
Кто нить встречался с таким поведением ?
Питание подается, на СА1 СВ1 есть импульсы пол питания, такое ощущение что или сбилась программа
или с магниторезисторам и какая то беда случилась а может какой нить командой загнался в непонятный режим.
Регистры менял все какие мог не помогло, все работает но нормального угла не выдает.
Бит перезагрузки магниторезисторов стоит.
Я понимаю если бы не работал совсем а так не понятно и есть шанс починить.

пзу:
0 = 68
1 = 255
2 = 251
3 = 0
4 = 5
5 = 1
6 = 1
7 = 6
8 = 0
-----------------------
0x74 = 80
0x4E = 0

угол который выдает при полном повороте
(должен выдавать 0 - 3599)

angle = 2295
angle = 2294
angle = 2296
angle = 2295
angle = 2294
angle = 2295
angle = 2298
angle = 2297
angle = 2298
angle = 2297
angle = 2295
angle = 2299
angle = 2298
angle = 2300
angle = 2300
angle = 2300
angle = 2307
angle = 2304
angle = 2305
angle = 2331
angle = 2700
angle = 450
angle = 481
angle = 479
angle = 489
angle = 492
angle = 491
angle = 492
angle = 491
angle = 495
angle = 496
angle = 495
angle = 495
angle = 496
angle = 495
angle = 497
angle = 495
angle = 499
angle = 507
angle = 563
angle = 2281
angle = 2292
angle = 2293
angle = 2290
angle = 2292
angle = 2296
angle = 2294
angle = 2296
angle = 2294
angle = 2296
angle = 2296
angle = 2295
angle = 2296
angle = 2294
angle = 2294
angle = 2296
angle = 2297
angle = 2295
angle = 2297
angle = 2296
angle = 2294
angle = 2296
angle = 2294

Raw данные с каждого магниторезистора с компенсацией (4E =3, 4)
Видно что данные меняются по абс величине синхронно, и тангенс будет один примерно,
как из них получить 0-360 град непонятно.


X = -110 Y =125
X = -110 Y =133
X = -112 Y =133
X = -112 Y =138
X = -120 Y =138
X = -120 Y =145
X = -121 Y =145
X = -121 Y =141
X = -117 Y =141
X = -117 Y =128
X = -99 Y =128
X = -99 Y =100
X = -76 Y =100
X = -76 Y =74
X = -56 Y =74
X = -56 Y =54
X = -34 Y =54
X = -34 Y =24
X = -8 Y =24
X = -8 Y =-4
X = 14 Y =-4
X = 14 Y =-23
X = 31 Y =-23
X = 31 Y =-49
X = 53 Y =-49
X = 53 Y =-71
X = 67 Y =-71
X = 67 Y =-87
X = 80 Y =-87
X = 80 Y =-100
X = 87 Y =-100
X = 87 Y =-104
X = 91 Y =-104
X = 91 Y =-103
X = 86 Y =-103
X = 86 Y =-91
X = 72 Y =-91
X = 72 Y =-73
X = 59 Y =-73
X = 59 Y =-55
X = 39 Y =-55
X = 39 Y =-34
X = 22 Y =-34
X = 22 Y =-9
X = -7 Y =-9
X = -7 Y =20
X = -27 Y =20
X = -27 Y =45
X = -46 Y =45
X = -46 Y =67
X = -66 Y =67
X = -66 Y =91
X = -83 Y =91
X = -83 Y =101
X = -89 Y =101
X = -89 Y =106
X = -94 Y =106
X = -94 Y =112
X = -96 Y =112
X = -96 Y =118
X = -103 Y =118
X = -103 Y =124
X = -109 Y =124
X = -109 Y =128
X = -114 Y =128
X = -114 Y =130
X = -112 Y =130
X = -112 Y =129
X = -111 Y =129
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение dccharacter » 13 фев 2013, 14:57

angle = 2294
это 1000 1111 0110
т.е.
-011100001001+1
-111 0000 1000
-1800
*коэф 0,1, т.е. -180 град ?????????
чо т фигня какая-то

Добавлено спустя 4 минуты 34 секунды:
Короче принимай данные в signed переменную
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: HMC6352 проблема с компасом

Сообщение whale » 13 фев 2013, 17:56

2295 это 229,5 градусов, текущий курс там с десятыми долями передается в десятичном виде.
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 13 фев 2013, 19:07

Может крыша съехала от внешнего сильного магнитного поля. Надо размагничивать. Как там работает калибровка - хз, а в других датчиках для размагничивания - дают ток в катушку датчика до 2-х ампер.
Pdf датчика говорит, что User Calibration надо проводить "The calibration time window is recommended to be from 6 seconds up to 3 minutes depending on the end user’s platform."

Добавлено спустя 11 минут 54 секунды:
Вот тут эпик фэйлы рассматриваются :)
forum68/topic8972.html

А вообще, брать современные датчики с акселями для компенсации. Как на discoveryF3
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: HMC6352 проблема с компасом

Сообщение whale » 13 фев 2013, 20:36

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

Добавлено спустя 27 минут 31 секунду:
Вот если принять версию что сенсоры намагнитились, как их размагнитить с помощью внешней катушки ?
Я так понимаю надо подержать компас в переменном маг поле с постепенным уменьшением силы.
ps положил на петлю размагничивания кинескопа, пощелкал несколько раз питанием, в компасе ничего не изменилось.
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 13 фев 2013, 22:25

А где ты географически находишься?
У тебя магнитные линии не фтыкаются перпендикулярно в землю? :)
Нагни плату и сравни результат.
У меня, по твоим данным, получилось так:
Код: Выделить всёРазвернуть
каждый третий:
X = -110 Y =125      =228,65222278
X = -112 Y =138      =230,9374161
X = -121 Y =145      =230,155584317
X = -117 Y =128      =227,57073711
X = -76 Y =100      =232,765166018
X = -56 Y =54      =223,958373324
X = -8 Y =24      =251,565051177
X = 14 Y =-23      =58,6713071322
X = 53 Y =-49      =42,7542574341
X = 67 Y =-87      =52,39959466
X = 87 Y =-100      =48,9767309752
X = 91 Y =-103      =48,5395591686
X = 72 Y =-91      =51,6486451833
X = 59 Y =-55      =42,990446187
X = 22 Y =-34      =57,0947570769
X = -7 Y =20      =250,709953781



Добавлено спустя 2 минуты 51 секунду:
whale писал(а):ps положил на петлю размагничивания кинескопа, пощелкал несколько раз питанием, в компасе ничего не изменилось.

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

Добавлено спустя 34 минуты 39 секунд:
Между x y сдвиг 180 град. Как будто датчик крутят перпендикулярно полю, а угол между полем и x,y по 45 град. :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: HMC6352 проблема с компасом

Сообщение whale » 13 фев 2013, 22:36

Поле тут примерно 45 град, это Волгоград.
Все работало именно в таком положении прекрасно раньше так что поле не виновато.
Я тоже об том же что сдвиг должен быть 90 град а не 180 при котором все теряет смысл.
Насчет намагничивания, у меня и магнитов то таких нет )
Если бы было дело в намагничивании то хоть какой нить был бы результат от кинескопа, токи там все таки нормальные
а компас я прикладывал прям на провода.
И если бы даже намагнитился, как то он аккуратно в фазу попал :roll:
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 13 фев 2013, 23:29

Данные мало смахивают на калиброванный датчик. Данные не симметричны относительно нуля, x меняется от -121 до 91, y от 145 до -104
Корень из (x^2 + y^2) должон быть константа. :)
Можно попробовать из данных выше вычислить offset и пересчитать. Должно получиться лучше

А вообще, брать провизию, теплые вещи и уходить в поле на калибровку :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: HMC6352 проблема с компасом

Сообщение whale » 14 фев 2013, 01:20

Если откалибровать точно прям чтобы - = + все равно ничего не меняется, пробовал,
и в поле тоже не работает увы.
Скорее всего чего нить случилось внутри мк, какое нить питание плохо подается на магниторезисторы или еще что.
Если кто нить подтянется с рабочим компасом и посмотрит raw данные при сумматоре =1 тогда сразу все станет понятно.
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 14 фев 2013, 01:43

А если откалиброваться относительно магнита? Это мои фантазии.
Будет правильно угол давать или 0 и 180град.? Только магнит по силе брать без фанатизма :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: HMC6352 проблема с компасом

Сообщение whale » 14 фев 2013, 13:36

С магнитом все тоже самое 50 и 230 град.
Смущает что если бы чего нит оторвалось то не работал бы совсем или один канал например а тут два и синхронно выдают корелирующие данные, мож на CA2 CB2 подать пол питания вот думаю это опора для внутренней ацп.
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 14 фев 2013, 17:44

Глюк интересный, но я могу только теоретизировать на эту тему, т.к. кроме pdf в глаза сенсор не видел. Сенсор выдает нормальный синусоидальный сигнал, только амплитуда явно занижена. (ацп 10 бит, это 1024 градаций). Т.е думаю, что сам сенсор работает.
whale писал(а):мож на CA2 CB2 подать пол питания вот думаю это опора для внутренней ацп.

По pdf это отрицательная обратная связь усилителя (ca1 ca2, cb1 cb2), там должна/или может быть фильтрующая цепь. (последняя стр. hmc6352_datasheet.pdf - Amplifier A,B Filter Capacitor Connection). Если туда подать фиксир. питания, то ацп микросхемы и будет его оцифровывать. Если ткнуться осциллографом на CA1 и CB1 то там будет аналоговый сигнал с датчиков с средним потенциалом 0.5 Vпит.

Добавлено спустя 33 минуты 5 секунд:
Во, повесить на ca1 ca2 и cb1 cb2 неэлектролитич. конденсаторы около 1 мкф. Из результата уйдет шум, будет понятнее что с данными, может начнет проглядываться фазовый сдвиг 90 град.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: HMC6352 проблема с компасом

Сообщение Michael_K » 14 фев 2013, 19:00

Я бы, честно, в коде поискал косяки.
Замедлить интерфейс в сто раз, просмотреть внимательно фронты, проверить еще раз адреса, биты и т.д.

Работал и вдруг перестал ("я ничего не трогала - оно само") - это симптом - где-то что-то "незначительное" подправили и забыли... Может делитель на кварце убрали или подтяжку с ноги сняли и т.п.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: HMC6352 проблема с компасом

Сообщение whale » 14 фев 2013, 21:05

Dmitry__ писал(а):


Наверно более вероятно что CA1 CB1 выход усилителя, кстати работает потому что если поставить там резистор усиление уменьшается, ставил 500 к все равно тоже самое.
Пощупаю еще эти выводы :)

Добавлено спустя 1 минуту 9 секунд:
Michael_K писал(а):Я бы, честно, в коде поискал косяки.
Замедлить интерфейс в сто раз, просмотреть внимательно фронты, проверить еще раз адреса, биты и т.д.

Работал и вдруг перестал ("я ничего не трогала - оно само") - это симптом - где-то что-то "незначительное" подправили и забыли... Может делитель на кварце убрали или подтяжку с ноги сняли и т.п.


С приемом-передачей по и2с все в порядке.
Перестал работать на одном дивайсе, вынул, сделал отдельную читалку по и2с все тоже самое.
Кварц там кстати не нужен.
Какие данные видны на осцилографе то и выдает прога.

Кстати компас умудряется работать без основного питания, через питание по линиям и2с :lol:
делаю полностью самодельный 3D принтер.
whale
 
Сообщения: 469
Зарегистрирован: 12 дек 2007, 05:56

Re: HMC6352 проблема с компасом

Сообщение Dmitry__ » 14 фев 2013, 21:59

whale писал(а):Наверно более вероятно что CA1 CB1 выход усилителя, кстати работает потому что если поставить там резистор усиление уменьшается,

Ну, ессно Cx1 это выход соотв. усилителя, а Cx2 - вход усилителя. Выведены для возможности создания отрицательной обратной связи для фильтров и уменьшения усиления.

Изображение

Добавлено спустя 14 минут 6 секунд:
Ткни туда конденсатор. Потому как твои данные:
Код: Выделить всёРазвернуть
X = -117 Y =141
X = -117 Y =128

Это - погода на Марсе, при одном значении х такая разница y.
Конденсатор уберет такой ацкий шум. И, возможно, станет более видно что там не так.
Например, датчик сконфигурирован на очень высокую частоту семплов, поэтому имеем такой маленький уровень оцифрованного сигнала.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

След.

Вернуться в Сенсорика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3