I2C
I2C осциллограмма
Так с помощью осциллографа DSO138 возможно посмотреть протокол I2C.
GIF сделана с помощью этого
У апельсинки две I2C шины:
sudo i2cdetect -l
i2c-0 i2c twi0 I2C adapter i2c-1 i2c twi1 I2C adapter
Подключаем осциллограф к выводам GND и SDA шины 0. Распиновка
Затем запускаем бесконечный опрос устройства 0x3c на шине 0:
while true; do; sudo i2cdump -y -r 0x00-0xff 0 0x3c; sleep 0.05; done
По схеме ниже:
1-3выставляем переключатели4выставляем интервал 10 мс- запускаем в автоматическом режиме:
5должен быть вAUTO- получаем пульсацию как на гифке
Чтобы «поймать кадр», проделываем следующее:
- прекращаем выполнение
i2cdump 5выставляем вSIGN6порог срабатывания ставим -0,12В, или другое очень малое значение7кнопкой нажимаем выбираемRunning- делаем единичный опрос:
sudo i2cdump -y -r 0x00-0xff 0 0x3c
В этот момент осциллограф должен схватить кадр:
Иногда он не успевает это сделать, поэтому меняем интервал 4 на 50 мс, а также проверяем порог срабатывания, который должен быть в районе -0,12В. При большем значении происходит запаздывание, и на захваченном кадре будет прямая полоса.
Частота «скачет» от 21кГц до 62 кГц, сказывается непродолжительное измерение. Реальная рабочая частота в районе должна быть в районе 100 кГц.
Ищем устройства I2C
Для нулевой шины:
sudo i2cdetect -y 0
0x48. Некоторые устройства i2c также могут его использовать, поэтому не будут видны. Например, ads1015 можно расположить на 0x48-0x4B, и если подсоединить ADDR к GND, этого устройства не будет видно.
Этими командами можно получить значения:
sudo i2cdump -y -r 0x00-0xff 0 0x49 sudo i2cget -y 0 0x48 0x40




