Arduino Nano не работает I2C

Тема в разделе "Arduino & Shields", создана пользователем Семен Шторкин, 20 янв 2017.

  1. Добрый день.
    Столкнулся со странной и нелепой на мой взгляд проблемой. Попал мне в руки LCD 1602 с припаянным I2C адаптером, решил проверить быстродействие, под рукой была платка Nano. Подключил, не работает. Но вопрос не про дисплей, забудем про него. Начал разбираться, подключил анализатор непосредственно к SCL и SDA и увидел странную штуку

    screenshot_.png

    На диаграмме видно, что передача по i2c инициализируется, но ничего не передается, как будто Wire.write() ничего не делает. Вот код (дефолтный пример MasterWriter из Arduino IDE):
    Код (C++):

    #include <Wire.h>

    voidsetup(){
      Wire.begin();// join i2c bus (address optional for master)
    }

    byte x =0;

    voidloop(){
      Wire.beginTransmission(8);// transmit to device #8
      Wire.write("x is ");       // sends five bytes
      Wire.write(x);             // sends one byte
      Wire.endTransmission();   // stop transmitting

      x++;
    //delay(500); закомментировал для более плотной диаграммы
    }
     
    Схему подключения приводить не буду, т.к. анализатор банально подключен тремя проводами к соответствующим выводам Nano.

    Никто не сталкивался с подобным феноменом?

    P.S. С Ардуино я ранее не работал, все проекты делал на голых мегах, разводя сразу печатные платы, а код писал в Atmel Studio, с I2C никогда никаких проблем не было. До сего дня.

    P.P.S. Nano абсолютно рабочая, подключал к ней различные LCD, чтобы проверить их работоспособность.
     
  2. rkit

    rkit Гуру

    Подтверждения не приходит, как я понимаю. На девятом импульсе на SCL слейв должен притянуть SDA вниз.
     
    Семен Шторкин нравится это.
  3. Спасибо, я сам дурак, слейва то на шине нет...
     
  4. Самое интересное, что со слейвом на шине та же история :)
    screenshot__.png
     
  5. rkit

    rkit Гуру

    Ответа-то всё равно нету.
     
  6. Да, видимо i2c serial интерфейс дохлый. Спасибо