Raspberry Pi:Примеры/Библиотека WiringPi/Quick2Wire и WiringPi/Тестирование I2C-модулей: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показана 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 | <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 | <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 | <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
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Тестирование I2C-модулей[1]
Если у вас нет I2C-модулей для 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 и т.д.