Подключение к EEPROM DS2436 по 1Wire

Тема в разделе "Закажу проект", создана пользователем vasya00, 4 окт 2018.

  1. vasya00

    vasya00 Нуб

    Здравствуте, пытаюсь подключится к DS2436 Battery Identification/Monitor Chip, прочитать из нее что нибудь внятное, и если получится подправить немного. Пользуюсь библиотекой OneWire.h. Примеров работы конкретно с DS2436 не нашел. Но в целом почитав даташит понял что это должно выглядить примерно так:

    Код (C++):
    #include <OneWire.h>
    #define POWER_MODE 1 // режим питания
    OneWire ds (11);
    byte data[100]; // сюда будем сохранять данные
    byte adr[8]; // здесь можно хранить адрес
    void setup(void) {
    Serial.begin(9600);
    }
    void loop(void) {
    ds.reset(); // сброс шины
    ds.write(0x33, POWER_MODE); // отправляем READ ROM
    // ds.write(0xD2, POWER_MODE); // можно обновить данные с датчика температуры
    ds.write(0xB2, POWER_MODE); // читаем Read Registers
    ds.write(0x80, POWER_MODE); // с ячейки 60 где хранится температура
    for (int i = 0; i < 99; i++) {
    data[i] = ds.read(); // читаем то что получилось
    Serial.print(data[i], HEX);
    Serial.print(" ");
    }
    delay(3000);
    Serial.println();
    }
    Но при таком раскладе ничего вразумительного прочитать не удается, то есть что то читаю, но не понимаю что.. Вот после 0x33, получаю 1B 22 81 56 0 0 0 42 FF FF FF FF... После остальных команд приходит что то, и после 0xB2 приходит всегда одно и тоже, вне зависимости от того с какой ячейки читаю.. Вообщем явно я что то недопонимаю. Подскажите, пожалуйста!
     
  2. parovoZZ

    parovoZZ Гуру

    а тайминги выдержаны?
     
  3. vasya00

    vasya00 Нуб

    Да наверно в этом проблема, или не только в этом.(
     
  4. Может не стоит посылать две разные команды подряд?
     
  5. vasya00

    vasya00 Нуб

    Да определенно не стоит