Всем привет!
Столкнулся с необходимостью определять положение устройства в пространстве. Купил MMA7455. Сделал плату. Написал протокол обмена с атмегой.
Регистры конфигурации читаются/пишутся нормально. Конфигурирую регистр 0x16 в 0b01100101 (режим измерения, 2g), отключаю I2C (работаю в SPI) 0x0D <= 0b10000000
Но при попытке чтения регистров 0x00 - 0x05 (там должны лежать значения ускорения по осям) или 0x6-0x8 (аналогично,только 8 бит) читаю какой-то бред - то там 0x16, то 0x250,0x1,0x140. Это всё для оси Х. По другим осям аналогично.
Датчик лежит неподвижно.
Если датчик вращать, что-то меняется - этот "генератор случайных чисел" сдвигается то в строну увеличения, то в сторону уменьшения - в зависимости от поворота. Т.е вроде работает, но мусор и выбросы мешают жить.
Датчик на плате, обратная сторона - земля. Питание - 2 RC цепочки-фильтра (т.е к питанию резистор на 10 ОМ, потом, 10 мк и 0.1 на землю), как в даташите.
Кто-нить работал с этим датчиком? Может, он так и должен работать? Странно...