Свежие обсуждения
Микроконтроллеры

Проблема с компасом HMC 6352


Проблема с компасом 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

И собственно вопросы
1. как починить
2 или как из этих raw данных получить угол ?

 

Проблема решена тема закрыта.

 

И каким образом ?