путаете во-первых, SCL - это клок, шина i2c - она синхронная, поэтому каждый бит тактируется ну и особые комбинации SCL/SDA - это start и stop как я уже сказал, slave может по окончанию приёма байта прижать SCL к земле, это называется что-то типа Hold Master например, Вы датчику даёте команду считать показания и пока он их внутри себя не приготовит, он будет держать шину, чтобы ошибочные данные не считали
Комментарии: 9
Maxim
Хуевый датчик. Но да, слейв может тупить и тормозить мастера, если не может прожевать такой поток байт
Unsupported
я просто наглядный пример привёл
Anonim
наскольок я понимаю у каждого i2c устройстройства есть адрес!
Unsupported
есть, поэтому иметь такой слейв - плохо :) ну и не совсем у каждого устройства, если вы ставите одинаковые устроства, то адрес у них будет одинаковый, хорошо, чесли у них будет CS
Anonim
и чтобы считать данные ему сначала нужно обратиться к этому устройству по адресу чтобы он приготовил данные, выждать время для подготовки датчиком данных и потом опять с адресом этого устройства обратиться но уже с тем что он будет читать данные!
Unsupported
как вариант - использовать расширители или аналоговые коммутаторы по SDA минимум
Anonim
и никакой путаницы не будет!
Unsupported
а сколько ждать?
Anonim
устройство будет держать данные до новой команды