-
- кстати i2c, производители кард-ридеров и пинпадов активно используют - psL(22.06.2010 19:49)
- Сколько пурги из-за безобидного "КМК"... - Точка опоры(22.06.2010 16:59)
- КМК - это "как мне кажется" что ли? - psL(22.06.2010 19:34)
- Да. Что-то вроде IMHO. - Точка опоры(23.06.2010 10:43)
- КаМиКадзе :) - Лeoнид Ивaнoвич(22.06.2010 19:35)
- Ну я на всякий случай, уточнить... - psL(22.06.2010 19:54)
- КМК - это "как мне кажется" что ли? - psL(22.06.2010 19:34)
- +1. Имел когда-то неосторожность на 2 м протянуть - запись работала, а вот чтение удаленной PCF8574 так и не удалось победить. Хорошо, что только для тестирования читать нужно было. Сейчас между блоками обычно использую RS-485. - Лeoнид Ивaнoвич(22.06.2010 11:10)
- PCF8574 сам по себе достаточно веселый расширитель, может и внутри платы шину "повесить" - psL(22.06.2010 20:01)
- В какой ситуации? - Лeoнид Ивaнoвич(22.06.2010 23:28)
- Иногда нормально не завершается транзакция на шине, когда нет обработчика ошибки - шина виснет. - psL(23.06.2010 00:03)
- Туманно как-то. Что делает обработчик ошибки? И что будет на шине без него? Никогда с таким не сталкивался, хоть PCF широко использую и ошибки не обрабатываю. - Лeoнид Ивaнoвич(23.06.2010 00:26)
- Аппаратный узел I2C определяет ошибку на шине, обработчик переинициализирует узел I2C. Без обработки ошибки состояние завершения транзакции не будет достигнуто. Три PCF на шине. Туманно - согласен. - psL(23.06.2010 08:43)
- Что подразумевается под "переинициализацей"? Только инициализация аппаратного модуля I2C мастера? Или шина тоже реинициализируется? Не пробовали просто проCLOCKать шину, как это рекомендуется в спецификации I2C сразу после подачи питания? - rezident(23.06.2010 18:49)
- Вот пошёл бы кто и написал в wiki, что нужно "проклокать". Вокруг миллионы примеров как работать с I2C и никто этим не озабочен (соответственно раз из 1000 виснет). И, кстати, таймаут ещё нужен (например 10мс) и сброс шины. Если мастер отвалился в fk0(51 знак., 24.06.2010 11:29)
- Да блин RTFM! То бишь нужно внимательно и вдумчиво спецификацию I2C-BUS от производителя читать, а не ориентироваться на отсебятину и пересказы в каких-то там википедиях! rezident(24.06.2010 16:27 - 16:29, ссылка)
- Ну блин, мне как-то всё равно. Я-то читал и даже в осциллограф смотрел. - fk0(24.06.2010 16:48)
- Тайм-ауты в SMBus были добавлены. - vmp(24.06.2010 11:34)
- Да блин RTFM! То бишь нужно внимательно и вдумчиво спецификацию I2C-BUS от производителя читать, а не ориентироваться на отсебятину и пересказы в каких-то там википедиях! rezident(24.06.2010 16:27 - 16:29, ссылка)
- Да, мастер переинициализируется. А как переиницилизировать шину и что значит "проклокать"? У контроллера I2C немультиплицирован с GPIO. - psL(23.06.2010 21:10)
- Ну да, как ReAl ниже уже пояснил, нужно SCL "проклокать". Неважно каким способом вы это реализуете: "ногодрыгом" GPIO или передачей уже реинициализированного модуля I2C. Главное вывести автомат слейва из ступора при котором он блокирует шину. - rezident(24.06.2010 05:19)
- Если кто-то из устройств "залип" с SDA=0, то надо давать SCL до тех пор, пока не поднимется SDA=1, после чего сформировать STOP. - ReAl(24.06.2010 00:55)
- Только не STOP а START. И не SCLом, а подавать команды START, >10 раз. - Т.Достоевский(24.06.2010 01:01)
- Если SDA задавлен в 0 кем-то из слейвов, оборванным сбросом контроллера на пол дороге чтения или просто слегка сдуревшим, то START подать не удастся. Как и STOP. Нужно дочитать до "1" на SDA. - ReAl(24.06.2010 01:40 - 01:43)
- Да. Но подавать надо только старт(монтажное или таки). Иначе, стоп поданый на запись может чёнить не то, или не туда... - Т.Достоевский(24.06.2010 02:18 - 02:35)
- Если SDA задавлен в 0 кем-то из слейвов, оборванным сбросом контроллера на пол дороге чтения или просто слегка сдуревшим, то START подать не удастся. Как и STOP. Нужно дочитать до "1" на SDA. - ReAl(24.06.2010 01:40 - 01:43)
- Только не STOP а START. И не SCLом, а подавать команды START, >10 раз. - Т.Достоевский(24.06.2010 01:01)
- Вот пошёл бы кто и написал в wiki, что нужно "проклокать". Вокруг миллионы примеров как работать с I2C и никто этим не озабочен (соответственно раз из 1000 виснет). И, кстати, таймаут ещё нужен (например 10мс) и сброс шины. Если мастер отвалился в fk0(51 знак., 24.06.2010 11:29)
- Получается, проблема в мастере, а не в PCF. - Лeoнид Ивaнoвич(23.06.2010 10:42)
- Что подразумевается под "переинициализацей"? Только инициализация аппаратного модуля I2C мастера? Или шина тоже реинициализируется? Не пробовали просто проCLOCKать шину, как это рекомендуется в спецификации I2C сразу после подачи питания? - rezident(23.06.2010 18:49)
- Аппаратный узел I2C определяет ошибку на шине, обработчик переинициализирует узел I2C. Без обработки ошибки состояние завершения транзакции не будет достигнуто. Три PCF на шине. Туманно - согласен. - psL(23.06.2010 08:43)
- Туманно как-то. Что делает обработчик ошибки? И что будет на шине без него? Никогда с таким не сталкивался, хоть PCF широко использую и ошибки не обрабатываю. - Лeoнид Ивaнoвич(23.06.2010 00:26)
- Иногда нормально не завершается транзакция на шине, когда нет обработчика ошибки - шина виснет. - psL(23.06.2010 00:03)
- В какой ситуации? - Лeoнид Ивaнoвич(22.06.2010 23:28)
- А у меня отлично работает I2C на расстояниях до 30 м. На другом конце стоит PIC16F690, проблем нет. - FDA(22.06.2010 11:42)
- У меня тоже между контроллерами работало. Но решение это ненадежное, RS-485 лучше, если на том конце есть контроллер. - Лeoнид Ивaнoвич(22.06.2010 12:16)
- А чём "ненадёжность" заключается??? - FDA(22.06.2010 13:49)
- Заключается в том, что я подключил по I2C проводом 2 м микросхему PCF8574, а она читается со сбоями, хотя пишется нормально. Руки кривые? Возможно. Но сделанный теми же руками RS-485 работрает нормально. - Лeoнид Ивaнoвич(22.06.2010 15:34)
- "Я взял PIC, запрограммировал, программа глючит -- вся продукция микрочипа -- @##$@%$" - fk0(22.06.2010 16:45)
- Так и есть. И таких легенд много ходит. - Лeoнид Ивaнoвич(22.06.2010 23:43)
- "Я взял PIC, запрограммировал, программа глючит -- вся продукция микрочипа -- @##$@%$" - fk0(22.06.2010 16:45)
- Передача напряжением TTL по помехоустойчивости значительно уступает передаче дифференциального сигнала. - Al Volovich(22.06.2010 14:35)
- +100. Кроме того - это ОК, который в IDLE будет ловить всякие ЙЭХУ и Радио Свободы. - Точка опоры(22.06.2010 14:35)
- Клавиатура PS/2-шная ловит? А мышка? Причём на 10-метровых удлиннителях тоже не ловит. А Pull-UP-ы на PS/2 тоже так себе, не 330/680 Ом делитель, как на ИРПР. - ReAl(22.06.2010 15:25)
- У мну USB клава, мышка и хаб в мониторе регулярно сбрасываются, когда я на стуле с колёсиками подъезжаю к столу. Просто от статики. Но ничего, переенумеруются там на усб, и дальше работают... RS485 -- не нужен. - fk0(22.06.2010 16:46)
- Ловит клава. Еще как ловит. Вблизи от ЭМ-источников помех (типа разобранного в 0,5м на столе, но работающего 300Вт ИБП) вообще может вешаться. Правда там помеха прямо на схему клавиатуры воздействует, а не только на интерфейс связи :) - rezident(22.06.2010 15:37 - 15:40)
- У меня клавиатура при включении холодильника печатала разные символы :) Пришлось заменить. Холодильник. - Лeoнид Ивaнoвич(22.06.2010 15:43)
- Я на расстоянии ~20 сантиметров от провода клавиатуры пощёлкал 5-ваттной радиостанцией (на CB-диапазон). Клавиатура больше не работала! В смысле вообще... :-( Да, PS/2. В USB не зря кабель в экране целиком. - fk0(22.06.2010 16:48)
- Очень давно поборол такую же проблему путем включения компьютера через сетевой фильтр. Фильтр был выдран из чего-то советского, типа монитора МС6106. Холодильник с тех пор не менял, фильтр тоже. Комп сменил уже несколько раз. И электропроводку тоже vmp(23 знак., 22.06.2010 16:27)
- У меня клавиатура при включении холодильника печатала разные символы :) Пришлось заменить. Холодильник. - Лeoнид Ивaнoвич(22.06.2010 15:43)
- IDE-интерфейс (в 486 компутерах) с "адаптером" на ISA в виде набора резисторов никого не смущал. И на 60-см кабеле без всяких там радио работал. - fk0(22.06.2010 15:11)
- Ну и пусть ловит. Протокол обнаружит все ошибки, а центральный контроллер выполнит перезапрос! Скорости I2C вполне хватает. Вы же не собираетесь мегабайты качать по нему. I2C удобен для передачи управляющих команд. При скорости 100 кбит и длине пакета FDA(195 знак., 22.06.2010 14:51)
- Клавиатура PS/2-шная ловит? А мышка? Причём на 10-метровых удлиннителях тоже не ловит. А Pull-UP-ы на PS/2 тоже так себе, не 330/680 Ом делитель, как на ИРПР. - ReAl(22.06.2010 15:25)
- +100. Кроме того - это ОК, который в IDLE будет ловить всякие ЙЭХУ и Радио Свободы. - Точка опоры(22.06.2010 14:35)
- В I2C байты как есть гоняются, а в RS485 супер-надёжный протокол нано-космического уровня. Неужели не понятно. - fk0(22.06.2010 14:07)
- А кто мешает на i2c навесить нормальный протокол? Вы просто забываете, что i2c в первую очередь - это физический интерфейс передачи данных, а не EEPROM'има какая-нибудь! - FDA(22.06.2010 14:52)
- А вы "для себя" или "на продажу" ваяете? Если второе, то RS485 никого не удивит, а i2c может, при случае, сорвать сделку (незнакомый, для Клиента, протокол, ему боязно будет брать) - Скрипач(22.06.2010 16:32)
- Клиент покупает систему управления целиком и ему глубоко плевать какие там интерфейсы используются между блоками. Для связи системы с внешним оборудованием используется RS-485. - FDA(22.06.2010 16:40)
- Да-да, расказывайте. Меня тут, на сборке "умного дома", на самом что есть ширпотребе, управляющий чуть в дерьмо не размешал за "не-Феникс-контакт" клемники на плате, а вы говорите "плевать на протокол" :) Скрипач(43 знак., 22.06.2010 16:58)
- Мы с Вами разными вещами занимаемся. В моих задачах со стороны заказчика нет требований к внутренним протоколам оборудования. - FDA(23.06.2010 09:36)
- Ну да, и конкуренты, у вас, не вдувают в уши заказчику всякую полуправду :) Скрипач(273 знак., 23.06.2010 10:14)
- Мы с Вами разными вещами занимаемся. В моих задачах со стороны заказчика нет требований к внутренним протоколам оборудования. - FDA(23.06.2010 09:36)
- Да-да, расказывайте. Меня тут, на сборке "умного дома", на самом что есть ширпотребе, управляющий чуть в дерьмо не размешал за "не-Феникс-контакт" клемники на плате, а вы говорите "плевать на протокол" :) Скрипач(43 знак., 22.06.2010 16:58)
- Клиент покупает систему управления целиком и ему глубоко плевать какие там интерфейсы используются между блоками. Для связи системы с внешним оборудованием используется RS-485. - FDA(22.06.2010 16:40)
- Религия. - fk0(22.06.2010 15:09)
- А вы "для себя" или "на продажу" ваяете? Если второе, то RS485 никого не удивит, а i2c может, при случае, сорвать сделку (незнакомый, для Клиента, протокол, ему боязно будет брать) - Скрипач(22.06.2010 16:32)
- А кто мешает на i2c навесить нормальный протокол? Вы просто забываете, что i2c в первую очередь - это физический интерфейс передачи данных, а не EEPROM'има какая-нибудь! - FDA(22.06.2010 14:52)
- Заключается в том, что я подключил по I2C проводом 2 м микросхему PCF8574, а она читается со сбоями, хотя пишется нормально. Руки кривые? Возможно. Но сделанный теми же руками RS-485 работрает нормально. - Лeoнид Ивaнoвич(22.06.2010 15:34)
- А чём "ненадёжность" заключается??? - FDA(22.06.2010 13:49)
- У меня тоже между контроллерами работало. Но решение это ненадежное, RS-485 лучше, если на том конце есть контроллер. - Лeoнид Ивaнoвич(22.06.2010 12:16)
- PCF8574 сам по себе достаточно веселый расширитель, может и внутри платы шину "повесить" - psL(22.06.2010 20:01)
- Да, потому что он называется не I2C, а ACCESS.bus или DDC - vmp(22.06.2010 11:10, ссылка, ссылка)
- И что, ни разу не бывало, что комп при запуске не обнаруживал монитора, с которым работал вчера и ставил настройки видео "по умолчанию"? - Точка опоры(22.06.2010 14:41)
- Ай, мне уже пробовали объяснить, что DDC проложен в серийном видеокабеле, поэтому можно. А если я сам кабель сделаю даже из SFTP, то это всё равно плохо :-) У I2C лимитирована ёмкость шины, на это и нужно смотреть, когда говорить о допустимой доине ReAl(133 знак., 22.06.2010 12:57)
- Почему бред? Есть специальные умощнители I2C - P82B715TD. Дальность может достигать 100 м. FDA(192 знак., 22.06.2010 11:09)
- Я не спорю. Просто вовне прибора, КМК (повторяю), физ. уровень I2C совершенно не уместен. Точка опоры(237 знак., 22.06.2010 14:45)
- Сказано бред, значит бред. А противоречащие факты -- ересь. Все кто противоречит -- будут преданы святой инквизиции. А вообще даже не CRC нужен, а маркер конца. Ибо CRC об-FF-чивание хвоста длинных посылок не гарантированно ловит. - fk0(22.06.2010 11:35)
- +100 - koyodza(22.06.2010 10:38)