Не хочет работать i2c, нет обмена.

Olegos
Offline
Зарегистрирован: 29.11.2014

Приветствую. Есть у меня контроллер наголовного дисплея, который управляется по i2c обычным микроконтроллером (не AVR не PIC). Мне необходимо записать в один из его регистров значение, которое должно включить стерео режим. Вариант сделать это мультимастером, или заменив Мастер на Arduino.

Мне известны адрес слейва, номер регистра и его значения. Вешаю ардуинку, но результатов нет, сажусь осцилом, обмена нет, линии SDA и CLK выставлены на 3,3V,шина свободная. Ещё раз прогоняю код, пакета на выходе Arduino нет.

Пробую другие платы (ProMini 328/16 и ProMini 168/16), пробую профили от ArduinoMini, ArduinoNano. Пакета нет. Сношу Arduino IDE, был 1.5.1, ставлю 1.6.1 (удаляю библиотеки из “Мои документы\Arduino”, они всё равно дублируются). Обмена нет.

Смотрю осцилом на оторванные пины старого контроллера, на них есть пакеты i2c, на Arduino нету.

Я вообще не понимаю в чём дело, почему нет пакетов даже на не подключённой Arduino (ну хотябы старт и адрес, до ACK), но и этого нет.

Slave 0x68

Register 0x41

Volume 0x36

 

Код примерно такой

 

include <Wire.h>

 

 void setup()  

 {

   Wire.begin(); //включить i2c как мастер

 }

 

 

void loop()

 {

 Wire.beginTransmission(0x68);

 Wire.write(41);

 Wire.write(36);

 Wire.endTransmission();

 delay (5000);

 }

Olegos
Offline
Зарегистрирован: 29.11.2014

Подключено SDA-SDA а SCL-SCL, уровни у контроллера 3.3 у ардуины тоже 3.3 (я её запитал с 3.3V).

 

В паре две ардуины ещё не включал (Master-Slave), поэкспериментирую сегодня-завтра. В моем понимании пакет должен быть и у неподключённой ардуины (S+ADR+DIRECT до ACK).