Перейти к содержанию
    

Как сделать chip select для I2C?

10 minutes ago, xvr said:

Странные задачи требуют странных решений, а для них нужны странные идеи :)

Задача обыденная, решается одним транзистором. А тут изоляторы, компараторы (привет двунаправленности SCL) и прочие велосипеды с квадратными колесами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, aaarrr сказал:

А тут изоляторы, компараторы (привет двунаправленности SCL) и прочие велосипеды с квадратными колесами.

Ничего этого не нужно, включая транзисторы. Все есть внутри почти любого МК. Надо уметь пользоваться, а не изобретать велосипеды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, quark said:

Возьмите МК с двумя встроенными компараторами. "Клок" заведите им на внешние  входы. ....

Задержка, вносимая компараторами - несущественна, и на работу I2C не повлияеет.

А если хоть одно из этих устройств использует clock stretch?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, Allregia сказал:

А если хоть одно из этих устройств использует clock stretch?

Правильно выбрать скорость обмена для этого устройства, чтобы избежать конфликта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, quark сказал:

Правильно выбрать скорость обмена для этого устройства, чтобы избежать конфликта.

Это может быть невозможно, так как такая скорость может оказаться ниже необходимой задаче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, jcxz сказал:

Это может быть невозможно, так как такая скорость может оказаться ниже необходимой задаче.

Для каких-то экзотических случаев - это решение может и не подойдет. Для них есть другие решения.

А для большинства задач - будет работать. ТС свои требования в отношении clock stretch нее озвучивал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 minutes ago, quark said:

Правильно выбрать скорость обмена для этого устройства, чтобы избежать конфликта.

Тоесть сделать не 100кгц и 100 герц?

И это поможет для устройств, использующих стречт?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/20/2023 at 7:38 AM, Harbinger said:

Взять МК, в котором I2C может ремапиться на разные пины.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 минут назад, Allregia сказал:

Тоесть сделать не 100кгц и 100 герц?

И это поможет для устройств, использующих стречт?

А что, есть такие устройства, которые работают-работают на 100 кГц, а потом вдруг начинают "затягивать" процесс обмена до 100 Гц?
По моему, это экзотика. Большинство нормальных устройств работают на заявленной у них в паспорте скорости без всяких "затягиваний".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде ж, ТС ясно указал, что 2 устройства повешены на 1 шину I2C и это надо разрулить. Ремапы МК и прочие физические расслоения - это же ведь не решение озвученной проблемы, не находите?

Опять же, ТС не озвучил, в какой стадии работа - это разработка или сопляж-доработка уже сделанного. Адекватное решение зависит только от этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, quark сказал:

А что, есть такие устройства, которые работают-работают на 100 кГц, а потом вдруг начинают "затягивать" процесс обмена до 100 Гц?
По моему, это экзотика. Большинство нормальных устройств работают на заявленной у них в паспорте скорости без всяких "затягиваний".

Это не "экзотика", а именно обычное применение clock stretching. Clock stretching используется в случаях когда слэйву нужно временно приостановить обмен: Например получил он какие-то данные на 400кГц, теперь ему надо их применить (установить внутренние регистры на основании принятых данных или ещё какие-то операции сделать) - вот он только в этот момент и притормаживает SCLK. Да хотя бы та же самая FLASH: получила данные на макс.скорости, а стирает/программирует флешь - столько времени, сколько нужно, притормаживая получение новых данных.

Или вы предлагаете: раз например стирание сектора занимает 100 мсек, то и SCLK пусть будет не более 10 Гц?  :sarcastic::fool:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, quark said:

Большинство нормальных устройств работают на заявленной у них в паспорте скорости без всяких "затягиваний".

Большинство да.

Но в данном случае, переключать лучше не клок а дату, которая двунаправленная, и тут с компараторами будет проблема.

22 minutes ago, Arlleex said:

Ремапы МК и прочие физические расслоения - это же ведь не решение озвученной проблемы, не находите?

А без "физического расслоения" тут проблема и не решится. Ремап, транзиторы, компараторы и прочее - это лишь способы реализации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, Arlleex сказал:

Вроде ж, ТС ясно указал, что 2 устройства повешены на 1 шину I2C

Это где ТС такое писал??? :shok:  Ткните носом, плиз.

Вроде он писал, что просто нужно подключить 2 слэйва, у которых нет ни чип-селектов ни возможности задания адресов (т.е. - никаких способов выбора чипов). А то, что они "на одной шине" - этого не писал. А значит: ремап ног МК - вполне себе годное решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, jcxz сказал:

Это где ТС такое писал??? :shok:  Ткните носом, плиз.

Там на схеме у него нарисовано. Да и будь оно подключено к разным шинам-пинам, никакого вопроса и не возникло бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...