Мой BMA421 заперт?

Я пытался настроить датчик движения BMA421 в смарт-часах на базе nrf52, используя спецификацию для BMA423, который имеет тот же интерфейс. У меня был датчик, хорошо работающий с оригинальным исходным кодом, но я пытался настроить его сам. Он подключен через I2C, адрес 0x18.

Я допустил несколько ошибок в своем первоначальном коде. Я пытался инициализировать чип потоком байт 6 Кб (как в первоисточнике), кусками по 64 байта. Я не отправлял регистр повторно в начале каждого блока данных, поэтому в итоге записывал байты в случайные регистры.

К сожалению, мне удалось привести датчик в неисправимое состояние - теперь он возвращает 0xFF для всех считываний и не реагирует на код мягкого сброса (регистр 0x7E=0xB6). Даже истощение батареи часов для питания чипа, похоже, не помогает.

Я нашел кого-то с похожей проблемой на форуме Borsch Sensortec, поэтому надеюсь, что полный разряд батареи сработает.

Есть ли у кого-нибудь еще какие-нибудь предложения?

, 👍-1

Обсуждение

Вы используете I2C или SPI? SPI не имеет адресов, но у каждого ведомого устройства есть контакт выбора чипа. С другой стороны, I2C имеет адреса и не имеет контакт выбора чипа., @chrisl

Извините, исправили - это I2C., @Mark Williams

В настоящее время мой план действий-разрядить аккумулятор, а затем оставить на неделю, чтобы посмотреть, смогу ли я сбросить чип. Не слишком оптимистично., @Mark Williams

Предложение из другого источника состояло в том, что я перевел устройство в режим SPI и отключил его от шины I2C - это, безусловно, объяснило бы результат., @Mark Williams

хорошая мысль. Из-за "разряженной батареи" я предполагаю, что аппаратное обеспечение в основном интегрировано, так что вы не можете просто попробовать подключить SPI и снова настроить его поверх этого?, @chrisl

Это, к сожалению, верно. Это готовые смарт-часы, которые нельзя открывать! Как только он будет запущен с шины I2C, пути назад не будет до тех пор, пока не завершится цикл питания. Я спрашиваю здесь, потому что у меня есть работающая прошивка Arduino, запущенная на ней для тестирования периферийных устройств. Положительным моментом является то, что если бы я переключил его в режим SPI, я вряд ли перезаписал бы NVRAM!, @Mark Williams


1 ответ


Лучший ответ:

0

БМА-421 не был заперт. Ошибочная запись в неправильный регистр переключила его на (несуществующий) SPI-интерфейс. Решение состояло в том, чтобы включить питание датчика.

,