-
- Если это х-мега то у меня был т ак ой глюк. Шина падала вновь когда появлялось на шине два прибора. Второй блок -работал и связь не пропадала. Была проблема в том, что пользовался чужими б MURS(115 знак., 15.03.2017 20:48)
- у меня тоже два устройства на шине, но не дерутся (всё нормально) выяснил, что одно из них и вешает шину (не мастер, как думал вначале) Теперь вот "чешу репу" чего я с этим слейвом не так делаю :(( (max30101 есличо :)) - Adept(15.03.2017 20:54)
- PMEN: Promiscuous Mode Enable MURS(220 знак., 15.03.2017 21:29)
- Вспомнил... В общем хмега давала ак на свой и чужой адрес. Увидел когда убрал другой блок. Когда появлялся второй блок. Шина падала. Второй аналогичный прибор работал с такой колизией и шина не падала. Думали про мифические иголки а оказалось MURS(45 знак., 15.03.2017 21:19)
- Не помню точно. Давно это было. Но то что бит как-то в х-меге установили или снял. Но ситуация похожая. Это был один раз. Взяли этот камень так как на любую ногу можно было пребывание заводить. Типа куча защит блока. - MURS(15.03.2017 21:07)
- Так что интересно второй блок работал и обмен не падал. Даже при такой ситуации. - MURS(15.03.2017 21:01)
- у меня тоже два устройства на шине, но не дерутся (всё нормально) выяснил, что одно из них и вешает шину (не мастер, как думал вначале) Теперь вот "чешу репу" чего я с этим слейвом не так делаю :(( (max30101 есличо :)) - Adept(15.03.2017 20:54)
- прерывание от twi используется? - m16_home(15.03.2017 19:58)
- Без прерываний. Там фактически линейные процедуры чтения данных, во время которых программа ничем более не занимается, поэтому последовательность действий для одиночных байт и циклы для пакетов, всё с контролем флагов и времени. - Adept(15.03.2017 20:22)
- А вы при старте программы, сразу после enable, делайте state=idle: Ксения(120 знак., 15.03.2017 18:09)
- зачем-то у меня именно так и сделано :)) (процедуры работы с I2C перетащены из другого проекта (с XMEGA A4) там, кстати, Adept(718 знак., 15.03.2017 18:48 - 19:01)
- А STOP? Ilyaul(478 знак., 16.03.2017 00:04 - 00:14)
- Давайте тогда сверим часы - мне тоже интересен ваш код обмена, хотя вы его откуда-то позаимствовали, а я писала сама. :) Ксения(1708 знак., 15.03.2017 19:11)
- думаю большого смысла в этом нет и вот почему: Adept(627 знак., 15.03.2017 19:51)
- зачем-то у меня именно так и сделано :)) (процедуры работы с I2C перетащены из другого проекта (с XMEGA A4) там, кстати, Adept(718 знак., 15.03.2017 18:48 - 19:01)
- Традиция такова что обслуживание аппаратного I2C на 90% состоит из костылей по выходу их всяких левых ситуаций. Если есть хоть маленькая возможность - используйте софтовую реализацию. Безотносительно типа контроллера сей чудесный модуль является 1111111(345 знак., 15.03.2017 17:58)
- Уже терли. Я на микрочипах проблем не имел. Правильный арбитраж и все на железе. Много мастеров - нет проблем. - Shatun_(15.03.2017 18:32)
- Если у микрочипа получилось то это прекрасно. Но еще не статистика. На дуракоустойчивость проверялось? - 1111111(15.03.2017 18:44)
- Ну стрэсс тэсты делал. Уже лет пять полет нормальный. Как писал здесь - связь коробок внутри шкафа. - Shatun_(15.03.2017 22:12)
- Он же ВНУТРИПРИБОРНЫЙ (inter integrated circuit), хотя есть индивидуумы, которые вытаскивают его наружу и потом удивляются "а чо сбоит ?:(( Adept(510 знак., 15.03.2017 20:44)
- Если у микрочипа получилось то это прекрасно. Но еще не статистика. На дуракоустойчивость проверялось? - 1111111(15.03.2017 18:44)
- +1. Один из вариантов - отслеживание времени транзакции и при зависании принудительные действия: повторная инициализация или отключение TWI/I2C от выводов МК. Отсутствие ответа Slave запросто может "подвесить" TWI/I2C - AU08(15.03.2017 18:06)
- Вы непоследовательны - если шину подвешивает Slave, то софтовая реализация Мастера не поможет. Нужно было поставить предложению 1111111 не +1, а -1 :) - Ксения(15.03.2017 18:31)
- Не отпускает мастер, а в виноватые записали слейва. Основы ораторского искусства:) - 1111111(15.03.2017 18:42)
- Если шину подвешивает Slave - в состоянии логического нуля - то это всё, приехали... Только перезапуск. - AU08(15.03.2017 18:34)
- время транзакции и элементарных операций у меня отслеживаются (даже с ретреями), но парадоксальность ситуации в том, что после того, как шину "неотпускает" :)), никакие действия, ни с какими регистрами (даже включение и выключение интерфейса Adept(117 знак., 15.03.2017 18:22)
- Или логическим анализатором проверить какая фигня выдаётся в линию :) - AU08(15.03.2017 18:41)
- так там и на осцилле всё видно (Рыгол DS2102 с дешифровкой протоколов) - после успешного чтения пакета, линия "SDT" притягивается к земле (клок - "high"), т.е. состояние "BUSY" и всё... - Adept(15.03.2017 18:56)
- Или логическим анализатором проверить какая фигня выдаётся в линию :) - AU08(15.03.2017 18:41)
- Вы непоследовательны - если шину подвешивает Slave, то софтовая реализация Мастера не поможет. Нужно было поставить предложению 1111111 не +1, а -1 :) - Ксения(15.03.2017 18:31)
- Уже терли. Я на микрочипах проблем не имел. Правильный арбитраж и все на железе. Много мастеров - нет проблем. - Shatun_(15.03.2017 18:32)
- Если это х-мега то у меня был т ак ой глюк. Шина падала вновь когда появлялось на шине два прибора. Второй блок -работал и связь не пропадала. Была проблема в том, что пользовался чужими б MURS(115 знак., 15.03.2017 20:48)