Raspberry Pi:Примеры/Библиотека WiringPi/Quick2Wire и WiringPi/Тестирование I2C-модулей: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=Тестирование I2C-модулей<ref>[http://wiringpi.com/examples/quick2wire-and-wiringpi/testing-the-i2c-modules/ wiringpi.com - Testing the I2C modules]</ref>=
=Тестирование I2C-модулей<ref>[http://wiringpi.com/examples/quick2wire-and-wiringpi/testing-the-i2c-modules/ wiringpi.com - Testing the I2C modules]</ref>=
Строка 13: Строка 13:
Чтобы начать тестирование плат с '''I2C'''-интерфейсом, сначала нужно убедиться, что у вас загружены '''I2C'''-модули для ядра '''Linux'''. Если модули не загрузились автоматически, то загружаем их при помощи команды '''gpio''':
Чтобы начать тестирование плат с '''I2C'''-интерфейсом, сначала нужно убедиться, что у вас загружены '''I2C'''-модули для ядра '''Linux'''. Если модули не загрузились автоматически, то загружаем их при помощи команды '''gpio''':


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
gpio load i2c
gpio load i2c
</syntaxhighlight>
</syntaxhighlight>
Строка 19: Строка 19:
Далее можно воспользоваться либо командой '''i2cdetect''', либо '''gpio''' – они сами разберутся в отличиях между '''1''' и '''2''' версиями '''Raspberry Pi'''.
Далее можно воспользоваться либо командой '''i2cdetect''', либо '''gpio''' – они сами разберутся в отличиях между '''1''' и '''2''' версиями '''Raspberry Pi'''.


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
gpio i2cd
gpio i2cd
</syntaxhighlight>
</syntaxhighlight>
Строка 25: Строка 25:
Адрес по умолчанию для GPIO-расширителя '''MCP23017''' – это '''«0х20»''', а адрес по умолчанию для аналогового '''IO'''-чипа '''PCF8591''' – '''«0x48»'''. Разумеется, если у вас есть лишь одно из этих устройств, то результат будет отличаться от схемы, показанной ниже. То же верно и для случаев, когда переставлены перемычки (это меняет адрес '''I2C'''). К слову, перемычки иногда полезно переставлять с места на место, чтобы убедиться, что они делают то, что вам нужно.
Адрес по умолчанию для GPIO-расширителя '''MCP23017''' – это '''«0х20»''', а адрес по умолчанию для аналогового '''IO'''-чипа '''PCF8591''' – '''«0x48»'''. Разумеется, если у вас есть лишь одно из этих устройств, то результат будет отличаться от схемы, показанной ниже. То же верно и для случаев, когда переставлены перемычки (это меняет адрес '''I2C'''). К слову, перемычки иногда полезно переставлять с места на место, чтобы убедиться, что они делают то, что вам нужно.


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --  
00:          -- -- -- -- -- -- -- -- -- -- -- -- --  

Текущая версия от 13:15, 18 июня 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Тестирование I2C-модулей[1]

Если у вас нет I2C-модулей для Quick2Wire, эту статью можно пропустить.

16-контактная Quick2Wire с цифровым интерфейсом (внизу) и 5-контактная Quick2Wire с аналоговым интерфейсом (вверху)

Чтобы начать тестирование плат с I2C-интерфейсом, сначала нужно убедиться, что у вас загружены I2C-модули для ядра Linux. Если модули не загрузились автоматически, то загружаем их при помощи команды gpio:

gpio load i2c

Далее можно воспользоваться либо командой i2cdetect, либо gpio – они сами разберутся в отличиях между 1 и 2 версиями Raspberry Pi.

gpio i2cd

Адрес по умолчанию для GPIO-расширителя MCP23017 – это «0х20», а адрес по умолчанию для аналогового IO-чипа PCF8591«0x48». Разумеется, если у вас есть лишь одно из этих устройств, то результат будет отличаться от схемы, показанной ниже. То же верно и для случаев, когда переставлены перемычки (это меняет адрес I2C). К слову, перемычки иногда полезно переставлять с места на место, чтобы убедиться, что они делают то, что вам нужно.

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

Если у вас получилось так, как на схеме выше, то поздравляем! Как минимум в одном платы настроены – их чипы работают с шиной I2C.

Примечание: Если у вас ранняя версия 16-контактной IO-платы, то у нее номера выходных контактов инвертированы, т.е. контакт 7 – это контакт 0, 6 – это 1, 5 – это 2 и т.д.

См.также

Внешние ссылки