Акселерометр (Troyka-модуль) - Как присвоить другой адрес I(2)C?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем DallySon, 6 ноя 2015.

  1. DallySon

    DallySon Нерд

    Всем доброе время суток.
    Подскажите пожалуйста:
    Требуется в шине использовать два акселерометра. Но оба сенсора на одном адресе.
    Когда то использовали температурные датчики АйТуСишные - так там на платке модуля можно было путем комбинации резисторов - играть адресами.. А здесь чегоЙто не по глазам.. Или это и есть та черная кошка, которая в комнате темной отсутствует?..
    Если же вдруг - такая возможность существует - то способна ли библиотечка распознать другой адрес?
    Все заранее спасибо!!
     
    siriniti и egordorichev нравится это.
  2. egordorichev

    egordorichev Гик

    Библиотека может:
    Код (C++):
    class Accelerometer : public LIS331DLH_TWI
    {

    };

    ....

    class LIS331DLH_TWI
    {
        public:
            LIS331DLH_TWI(uint8_t addr = LIS331DLH_TWI_ADDRESS);
        ....
    };


    .....

    LIS331DLH_TWI accel(0x19); // Или Accelerometer accel(0x19);
     
    Но вот плата.... похоже что нет.
     
  3. DallySon

    DallySon Нерд

    Спасибо большое!! Одна проблема будем считать решена...!
    А про плату слышать грустно... ну не ставить же второе ядро для съема с этого датчика.. :( совсем не хочется)
     
    siriniti нравится это.
  4. siriniti

    siriniti Нуб

    Здравствуйте! Не подскажете, удалось ли вам решить вопрос работы двух акселерометров по I2C? И если да, то каким был путь решения?
     
  5. Alex19

    Alex19 Гуру

    Сам чип LIS331DLH поддерживает изменение адреса - http://files.amperka.ru/datasheets/LIS331DLH-accelerometer.pdf стр. 18, пин на чипе SDO/SA0.

    А вот на модуле Troyka-модуле его не вывели, предположу, что было важно сохранить совместимость в подключении (с Troyka-модулями, в прочем данный пин можно было вывести где-нибудь сбоку).

    Как Вы можете решить данную проблему, есть 2 варианта.
    1. открыть схему данного модуля - http://files.amperka.ru/schematics/module-m13-imu-b4.pdf (там их несколько, найти свой). Найти пин SDO/SA0 он идет на землю через резистор, перерезать дорожку и подать туда необходимое напряжение. На странице 13 данного руководства http://files.amperka.ru/datasheets/LIS331DLH-accelerometer.pdf есть таблица максимальных значений питания.
    2. Купить модуль на LIS331DLH у которого пин SDO/SA0 будет выведен и пользоваться библиотекой от Амперки. Немного изменив ее.
     
    Последнее редактирование: 14 дек 2015
  6. siriniti

    siriniti Нуб

    Спасибо большое!!!
     
  7. DallySon

    DallySon Нерд

    Здравствуйте. я попытался реализовать переключение между устройствами непосредственно переключением питания между ними. Потребление модуля около 10 мА - поэтому запитывать их можно непосредственно с порта. Таким образом при опросе - я включал их поочередно и читал. Вроде как заработало - но что то меня тогда смущало.. Врать не буду - не помню.Вроде как необходимость длительной задержки при переключении. Но в процессе изысканий - надобность отпала. Но буду благодарен - если вы отпишитесь - как Вы решили эту проблему.
     
  8. siriniti

    siriniti Нуб

    Хорошо, буду разбираться. Спасибо за информацию!