Можно ли использовать I2C на других пинах, не 20 и 21? (Mega 2560)

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

по описанию, I2C аппаратно реализован на пинах 20 и 21.

У меня эти пины задействованы под энкодер, т.к. них висят прерывания 3 и 2.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Нельзя

Garry
Garry аватар
Offline
Зарегистрирован: 07.04.2012

Тут что-то было про это.

Vittaly
Offline
Зарегистрирован: 19.04.2013

Попробуйте использовать программный i2c. Тогда может получиться. Ищите по i2c или TWI (это одно и то же).

axill
Offline
Зарегистрирован: 05.09.2011

Tomasina пишет:

по описанию, I2C аппаратно реализован на пинах 20 и 21.

У меня эти пины задействованы под энкодер, т.к. них висят прерывания 3 и 2.

оттолкнитесь от того для чего именно вам I2C. Бывает так, что библиотека под конкретное устройство I2C уже имеет програмную реализацию этого протокола. С програмной реализацией цепляться можно почти на любые пины

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

на I2C висят часы RTC DS1307, датчик давления BMP085, возможно, еще и дисплей на них подсядет в будущем.

Vittaly
Offline
Зарегистрирован: 19.04.2013

Ну тогда точно ищите программный i2c. Например, вот здесь: https://sites.google.com/site/marthalprojects/home/arduino/i2c-via-digital-pins

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013
Gomez
Offline
Зарегистрирован: 09.09.2017

Приподниму немного старую тему... Тоже Arduino Mega.

Суть в чем - много устройств на шине, и у каждого свои подтягивающие резисторы. Все это подглючивает из-за падения уровня сигнала. Выпаивать не хочу, да и не везде это просто. Хотелось бы пару девайсов повесить на software i2c, остальные оставить на аппаратной.

Я же правильно понимаю, что при помощи библиотеки https://github.com/felias-fogg/SoftI2CMaster я осуществлю задуманное без конфликтов?

dezz0riented
dezz0riented аватар
Offline
Зарегистрирован: 27.07.2014

Параллельное соединение резисторов... Каких номиналов резисторы и сколько таких устройств на шине?

А выпаивать всё равно придётся, софтовый или хардварный I2C - электрически разницы никакой, по идее.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну да, нагрузить один I2C резистором на 900 Ом или два по 1.8 кОм - никакой разницы.