Здравствуйте! В мануале на процессор указано назначение вывода I2C4_CUR_PU_EN (BB25) как выход сигнала включения токовой подтяжки. Больше в тексте нигде нет ссылки на это название и непонятно, что с этим выводом делать. На схеме исследовательской платы этот вывод заведен на ПЛИС.
На последней ревизии модуля SMARC мы его просто оставили в воздухе.
Но он же для чего-то нужен?
В стандарте I2C в п.5.3.1 “High speed transfer” сказано, что в высокоскоростном режиме (до 3.4 Мбит/с) если ёмкость шины высокая, то для уменьшения длительности переднего фронта на линии SCLKH, мастер может включать дополнительную подтяжку к высокому уровню на клоковой линии.
Могу предположить, что этот сигнал предназначен, что бы через внешнюю цепь подключать и отключать эту дополнительную подтяжку.
Спасибо, теперь все понятно. Вопросы возникают в связи с тем, что в мануале наименования выводов никак не соотносятся с наименованием полей в регистрах. При поиске по наименованию вывода ничего не находится. Интуитивно догадываюсь, что управляет этим выводом сигнал i2c4_ren в регистре pads_ren.
Судя по описанию, i2c_ren включает встроенные в чип слабые подтяжки (обычно около 30 кОм). При правильной разводке платы эти слабые подтяжки не требуются (когда на самой плате на линиях SCL и SDA имеются внешние подтягивающие резисторы 2-5 кОм).
Было бы логично, если бы пин I2C4_CUR_PU_EN управлялся автоматически самим блоком I2C. Т.е., когда I2C находится в режиме High speed, то этот пин должен работать в режиме Push-Pull и, скорее всего, будет повторять сигнал на SCLKH. И если к нему подключить транзистор, который будет включать/выключать внешнюю сильную подтяжку, то транзистор будет включаться в момент, когда SCLKH отпускает шину, и включаться, когда SCLKH притягивает шину к нулю.
Но это просто моё предположение, основанное на чтении спецификации I2C и документации на микросхему.