-
- Передавай потетрадно... 1 байт = тетрада + инверсия этой же тетрады. Ну и желательно с минимальными паузами. - argus98(04.02.2013 13:45)
- проблема в том что виснет эта и2с ...иногда... - whale(04.02.2013 14:49)
- Если используется аппаратный I2C меги, то 99% что неправильно написан обработчик состояний автомата. Достаточно прилепить на шину два проводка и шорхать ими по плюсу и земле - довольно быстро вылезет необрабатываемое в программе состояние. 1111111(144 знак., 04.02.2013 15:59)
- у меня в проге стоит собака по портам i2c которая если порт долго в нуле лежит перезапускаем i2c но все равно как то не очень. - whale(04.02.2013 19:19)
- Там не порт в нуле, там автомат в ракообразном состоянии заклинивает - 1111111(04.02.2013 19:37)
- автомат вроде прописан всеми возможными состояниями...разве он еще какие родит по ходу дела ) - whale(04.02.2013 19:42)
- Дык проверить надо:) Пробегал слух что могут вылезти и левые - 1111111(04.02.2013 20:14)
- пошел за напильником ) - whale(04.02.2013 20:24)
- Дык проверить надо:) Пробегал слух что могут вылезти и левые - 1111111(04.02.2013 20:14)
- автомат вроде прописан всеми возможными состояниями...разве он еще какие родит по ходу дела ) - whale(04.02.2013 19:42)
- Там не порт в нуле, там автомат в ракообразном состоянии заклинивает - 1111111(04.02.2013 19:37)
- Тест напильником -- это да, лучшии рекомендации от freescale кажись (тут картинка была, прямо напильник в даташите и нарисован). - fk0(04.02.2013 17:54)
- черт, забыл про этот мега тест надо попробовать ) - whale(04.02.2013 19:17)
- у меня в проге стоит собака по портам i2c которая если порт долго в нуле лежит перезапускаем i2c но все равно как то не очень. - whale(04.02.2013 19:19)
- дык я про уарт с ёмкостной развязкой, а не про и2с - argus98(04.02.2013 15:23)
- байты бывают и 0 и ff причем часто а сильно быстро передавать нельзя тк помехи есть 50кгц и выше от 500 ватного DC/DC - whale(04.02.2013 19:16)
- Если есть помехи, то нельзя передавать медленно... Потому, что вероятность протолкнуть между ними пакет стремится к нулю. А помеха портит любую посылку (SCL сигнал). И CRC в конце обязательно (причём 16-битный, если в посылке больше ~16 байт). И, fk0(219 знак., 04.02.2013 19:24)
- почему же, можно передавать медленно а на входе поставить кондер+резистор получим фильтр нч от всех помех. - whale(04.02.2013 19:38)
- Можно, но маразм. Тогда вместо I2C нужно было взять LINBUS и не морочить мозг. И не нужны конденсаторы. И от пропадания питания защищено (если трансивера нет готового, то можно сделать самодельщину на транзисторе и диоде). - fk0(04.02.2013 19:43)
- это аналог CAN вроде, а по русски не завалялась ссылка почитать ? - whale(04.02.2013 19:52)
- Не аналог. Источники русскоязычной информации обычно лучше не читать... - fk0(04.02.2013 20:58)
- ляттьь... - Гудвин(04.02.2013 20:16)
- кстати и2с еще висла помню при Т ниже -10 град ) - whale(04.02.2013 19:48)
- это аналог CAN вроде, а по русски не завалялась ссылка почитать ? - whale(04.02.2013 19:52)
- Можно, но маразм. Тогда вместо I2C нужно было взять LINBUS и не морочить мозг. И не нужны конденсаторы. И от пропадания питания защищено (если трансивера нет готового, то можно сделать самодельщину на транзисторе и диоде). - fk0(04.02.2013 19:43)
- почему же, можно передавать медленно а на входе поставить кондер+резистор получим фильтр нч от всех помех. - whale(04.02.2013 19:38)
- Если есть помехи, то нельзя передавать медленно... Потому, что вероятность протолкнуть между ними пакет стремится к нулю. А помеха портит любую посылку (SCL сигнал). И CRC в конце обязательно (причём 16-битный, если в посылке больше ~16 байт). И, fk0(219 знак., 04.02.2013 19:24)
- байты бывают и 0 и ff причем часто а сильно быстро передавать нельзя тк помехи есть 50кгц и выше от 500 ватного DC/DC - whale(04.02.2013 19:16)
- Если используется аппаратный I2C меги, то 99% что неправильно написан обработчик состояний автомата. Достаточно прилепить на шину два проводка и шорхать ими по плюсу и земле - довольно быстро вылезет необрабатываемое в программе состояние. 1111111(144 знак., 04.02.2013 15:59)
- проблема в том что виснет эта и2с ...иногда... - whale(04.02.2013 14:49)
- а без премудростей - чо вообще нужно-то? - Mahagam(04.02.2013 12:45)
- 1. чтобы выдерживала 40в по шине 2. если зависнет одно уст-ва оно не отрубало шину для других. whale(125 знак., 04.02.2013 14:51)
- бывают внешние PHY+MAC. к МК по тойже SPI, например, цепляются. - Snaky(04.02.2013 14:57)
- я у курсе )во первый стоят денег во вторых места занимают много считай 3 меги 16 - whale(04.02.2013 14:59)
- если перейти разве на мк со встроеным phy ... - whale(04.02.2013 15:01)
- Н'дык и перейди. PIC18....J60 аккурат для "выключателей" годиццо. - Гудвин(04.02.2013 15:19)
- это легко сказать... - whale(04.02.2013 19:39)
- Н'дык и перейди. PIC18....J60 аккурат для "выключателей" годиццо. - Гудвин(04.02.2013 15:19)
- если перейти разве на мк со встроеным phy ... - whale(04.02.2013 15:01)
- я у курсе )во первый стоят денег во вторых места занимают много считай 3 меги 16 - whale(04.02.2013 14:59)
- бывают внешние PHY+MAC. к МК по тойже SPI, например, цепляются. - Snaky(04.02.2013 14:57)
- 1. чтобы выдерживала 40в по шине 2. если зависнет одно уст-ва оно не отрубало шину для других. whale(125 знак., 04.02.2013 14:51)
- манчестер + трансформатор ~ ethernet phy? - Хитрый Китаец(04.02.2013 09:31)
- этот вариант я думаю пока ) придеться всю обработку писать с нуля - whale(04.02.2013 14:47)
- Нафига, возьмите чип phy + транс, а ip никто не просит поддерживать. Но это - паранойя. - Хитрый Китаец(04.02.2013 18:36)
- это надо собраться с силами ) - whale(04.02.2013 19:19)
- Нафига, возьмите чип phy + транс, а ip никто не просит поддерживать. Но это - паранойя. - Хитрый Китаец(04.02.2013 18:36)
- этот вариант я думаю пока ) придеться всю обработку писать с нуля - whale(04.02.2013 14:47)
- ну так SPI, клок кондёрами развязывается на раз. а данные гоним по 9 бит. городим 8b/9b ну или что-то подобное. а дальше софтово обрабатываем лишний бит. такое тоже получится кондёрами развязать. Mahagam(220 знак., 03.02.2013 23:00)
- Нифига в I2C не развязывается. SCK может и мастером и слейвом управляться (и более того, если слейвом микроконтроллер -- наверняка будет). - fk0(04.02.2013 00:46)
- надо обдумать. - whale(03.02.2013 23:29)
- кажется, где-то это уже обсуждали. после того как автор объяснил зачем -- стало совсем страшно. AC ничем не хуже DC в момент включения, например. И подохнет та мега сразу. - fk0(03.02.2013 14:19)
- вот представь у тебя 10 дивайсов и все на одной шине и2с сидят, тут происходит гамма-всплеск на солнце и 10-й дивайс попадает под облучений в результате чаго и2с на нем виснет намертво, заодно отрубая от сети и все остальные 9 дивайсов. - whale(03.02.2013 18:13)
- По шине I2C фирмой Philips (NXP) очень много чего наработано и там есть готовые решения на многие случаи жизни. Не нужно изобретать велосипед с квадратными колёсами. И оптическая развязка есть (не нужная в данном случае, оптика это больше от fk0(1434 знак., 04.02.2013 01:04)
- опторазвязка не спасет от кз на землю, всякие мультиплексоры и хабы это из области фантастики, whale(255 знак., 04.02.2013 02:27)
- Кондер нельзя подобрать... LCRLCRLCRLCRLCR с произвольно меняющимся R -- фаза сигнала на выходе х.з. какая. Я тебе уже сказал. Всё это надумано и связано исключительно с AVR. Проще взять нормальный контроллер и нормально его программировать (чтоб fk0(22 знак., 04.02.2013 12:31)
- Да нормально работает собака в АВР, что-то тут не то в реализации. - Vladimir Ljaschko(04.02.2013 15:59)
- Собаку можно плохо запрограммировать. А в AVR не то в реализации GPIO выходов. Там диоды на +VCC стоят. И горбатого уже только могила исправит. Впрочем, если шина питания у всех одна -- пофигу. Если разная -- придётся думать головой и конденсаторы fk0(545 знак., 04.02.2013 17:59)
- все же можно разобраться - виснет весь контроллер или неполная поддержка I2C. Отсюда и пути разные. Если виснет контроллер, то собака или абсолютно бездарная схемотехника и исполнение. Если сам I2C, то переводится на пониженную скорость и софтовую Vladimir Ljaschko(35 знак., 04.02.2013 18:47)
- Чтоб повис контроллер -- это очень постараться (при грамотной схемотехнике и разводке ПП). В голову приходят только залётные фотоны высоких энергий и просачивание больших зарядов электронов через выводы, за всеми пределами absolute maximum fk0(869 знак., 04.02.2013 19:33)
- подтяжка 1,5к стоит если что ) whale(198 знак., 04.02.2013 19:46)
- Слейв, если обмен начался и не завершился за определённое время -- сбрасывает свой I2C модуль и освобождает шину (если держал SCL в нуле и т.п.) Мастер свой сброс выполняет так в общем случае: через SFR регистры сбрасывает свой I2C модуль (если fk0(1400 знак., 04.02.2013 20:04)
- насчет сброса whale(316 знак., 04.02.2013 20:23)
- Всё НЕ В ПОРЯДКЕ. На N/ACK вообще расчитывать нельзя, но даже не в том дело. "Зависать" может на более низком уровне: слейв увидел лишний клок, например, где его нет (помеха). И в ACK ему подошёл какой нужно битик. А дальше висит с SDA=0 ожидая fk0(358 знак., 04.02.2013 21:02)
- эээ ну эта whale(469 знак., 04.02.2013 22:52 - 23:13)
- При коллизии мастер прекращает работу и где-то в SFR появляется битик "коллизия". И так в цикле. И ничего не сделать, кроме как не проклокать вручную. Напильник на "+" не надо. На GND достаточно. - fk0(04.02.2013 23:22)
- это понятно что на минус ) короче тест напильник сделал whale(105 знак., 04.02.2013 23:28)
- При коллизии мастер прекращает работу и где-то в SFR появляется битик "коллизия". И так в цикле. И ничего не сделать, кроме как не проклокать вручную. Напильник на "+" не надо. На GND достаточно. - fk0(04.02.2013 23:22)
- эээ ну эта whale(469 знак., 04.02.2013 22:52 - 23:13)
- Всё НЕ В ПОРЯДКЕ. На N/ACK вообще расчитывать нельзя, но даже не в том дело. "Зависать" может на более низком уровне: слейв увидел лишний клок, например, где его нет (помеха). И в ACK ему подошёл какой нужно битик. А дальше висит с SDA=0 ожидая fk0(358 знак., 04.02.2013 21:02)
- Выдержки из слейва на atmega, может поможет: fk0(8069 знак., 04.02.2013 20:13)
- у меня все на асе написано ) - whale(04.02.2013 20:26)
- атмега. ассемблер. конденсаторы в I2C. просто классика жанра. лучше бросай это... - fk0(04.02.2013 23:20)
- ниче, еще помучимся - whale(04.02.2013 23:28)
- атмега. ассемблер. конденсаторы в I2C. просто классика жанра. лучше бросай это... - fk0(04.02.2013 23:20)
- у меня все на асе написано ) - whale(04.02.2013 20:26)
- насчет сброса whale(316 знак., 04.02.2013 20:23)
- Слейв, если обмен начался и не завершился за определённое время -- сбрасывает свой I2C модуль и освобождает шину (если держал SCL в нуле и т.п.) Мастер свой сброс выполняет так в общем случае: через SFR регистры сбрасывает свой I2C модуль (если fk0(1400 знак., 04.02.2013 20:04)
- подтяжка 1,5к стоит если что ) whale(198 знак., 04.02.2013 19:46)
- Чтоб повис контроллер -- это очень постараться (при грамотной схемотехнике и разводке ПП). В голову приходят только залётные фотоны высоких энергий и просачивание больших зарядов электронов через выводы, за всеми пределами absolute maximum fk0(869 знак., 04.02.2013 19:33)
- все же можно разобраться - виснет весь контроллер или неполная поддержка I2C. Отсюда и пути разные. Если виснет контроллер, то собака или абсолютно бездарная схемотехника и исполнение. Если сам I2C, то переводится на пониженную скорость и софтовую Vladimir Ljaschko(35 знак., 04.02.2013 18:47)
- Собаку можно плохо запрограммировать. А в AVR не то в реализации GPIO выходов. Там диоды на +VCC стоят. И горбатого уже только могила исправит. Впрочем, если шина питания у всех одна -- пофигу. Если разная -- придётся думать головой и конденсаторы fk0(545 знак., 04.02.2013 17:59)
- надо доделать на том что есть потом уже перейдем времени нет. - whale(04.02.2013 14:46)
- Да нормально работает собака в АВР, что-то тут не то в реализации. - Vladimir Ljaschko(04.02.2013 15:59)
- Кондер нельзя подобрать... LCRLCRLCRLCRLCR с произвольно меняющимся R -- фаза сигнала на выходе х.з. какая. Я тебе уже сказал. Всё это надумано и связано исключительно с AVR. Проще взять нормальный контроллер и нормально его программировать (чтоб fk0(22 знак., 04.02.2013 12:31)
- опторазвязка не спасет от кз на землю, всякие мультиплексоры и хабы это из области фантастики, whale(255 знак., 04.02.2013 02:27)
- то есть следующие варианты вы не рассматриваете ?! 1) по питанию произошел тиристорный эффект и все 10 отрубились. 2) модуль I2C ушел в теоретический самовозбуд и генерация пролазит через кондеры и также не дает нормально работать - MegaJohn(03.02.2013 23:46)
- это уже мало вероятно а вот вот сбой модуля и2с от помехи по шине запросто. - whale(04.02.2013 02:30)
- ИМХО, если помехи такие, что сбоит модуль на кремнии - нужно принимать какие-то другие меры, но никак не развязку кондерами. - Хитрый Китаец(04.02.2013 14:28)
- Нужна функция "пересброса всего". С выключением питания. В т.ч. в случае превышения потребляемого тока. А для шины есть диодики, подойдут те, что для защиты USB. - fk0(04.02.2013 12:32)
- диодики стоят сразу после резисторов в 150 ом ) - whale(04.02.2013 14:44)
- это уже мало вероятно а вот вот сбой модуля и2с от помехи по шине запросто. - whale(04.02.2013 02:30)
- По шине I2C фирмой Philips (NXP) очень много чего наработано и там есть готовые решения на многие случаи жизни. Не нужно изобретать велосипед с квадратными колёсами. И оптическая развязка есть (не нужная в данном случае, оптика это больше от fk0(1434 знак., 04.02.2013 01:04)
- вот представь у тебя 10 дивайсов и все на одной шине и2с сидят, тут происходит гамма-всплеск на солнце и 10-й дивайс попадает под облучений в результате чаго и2с на нем виснет намертво, заодно отрубая от сети и все остальные 9 дивайсов. - whale(03.02.2013 18:13)
- почему именно конденсаторами? есть опто и ADUM. чтобы полноценно развязать кондерами надо сигнал без DC в спектре, типа манчестер2 - Snaky(03.02.2013 12:53)
- понятно что без dc, опто места занимает. А что манчестер uart может принимать ? - whale(03.02.2013 13:09)
- Манчестеры и прочия легко стряпаются на таймере с захватом и сравнением. Загрузка как и у уарта в фоне, а процесс перенастройки под следующий бит - в прерывании. Формат придумать можно любой и напряга с времянками никакого - 1111111(03.02.2013 14:46)
- ну есть такой вариант передавать импульсами и в прерывании порта делать из каждого бит который идет на уарт whale(61 знак., 03.02.2013 18:17)
- Нет, конечно. Может хватит мучить старушек, и перейти на ARM - Cortex ? - tesla(03.02.2013 14:44)
- +много. Объясните, что за привычка везде совать атымел. Похожая привычка - везде использовать PCAD. Наверное, я что-то пропустил... - SciFi(03.02.2013 18:27)
- +1. Изделие на Atmel AVR -- признак дикой любительщины. Не всегда конечно, но слишком уж часто. Как PIC16F84 лет 10 тому назад. Контроллеры же эти реально уже устарели. Для мелких поделок хорош PIC24, для крупных -- наверное кортексы NXP и ST. fk0(700 знак., 04.02.2013 01:25)
- Кстати, таки , и у Атымел есть Cortex. Другое дело, что ... - tesla(03.02.2013 19:10)
- А про Атымел - "старый конь борозды не портит", впрочем, и "глубоко не пашет". Сравните частоты у Atmel, NXP, STM. Ничего личного, онли бизнес. - tesla(03.02.2013 19:00)
- PCAD, вроде как не привязан к конкретной архитектуре. tesla(25 знак., 03.02.2013 18:49)
- PCAD в СССР утащили раньше всех прочих сапров. Так что это просто исторически сложилось. Ну и под него написали тонны конвертеров в то непонятное, что понимали наши станки и фотоплоттеры. - alex68(03.02.2013 18:31)
- где Atmel? - POV(03.02.2013 18:29)
- Как где? Мега - не Атымел? - tesla(03.02.2013 19:01)
- Он АРМ предлагает. - POV(03.02.2013 22:33)
- Как где? Мега - не Атымел? - tesla(03.02.2013 19:01)
- ;-))) - whale(03.02.2013 18:08)
- +много. Объясните, что за привычка везде совать атымел. Похожая привычка - везде использовать PCAD. Наверное, я что-то пропустил... - SciFi(03.02.2013 18:27)
- Манчестеры и прочия легко стряпаются на таймере с захватом и сравнением. Загрузка как и у уарта в фоне, а процесс перенастройки под следующий бит - в прерывании. Формат придумать можно любой и напряга с времянками никакого - 1111111(03.02.2013 14:46)
- понятно что без dc, опто места занимает. А что манчестер uart может принимать ? - whale(03.02.2013 13:09)
- Передавай потетрадно... 1 байт = тетрада + инверсия этой же тетрады. Ну и желательно с минимальными паузами. - argus98(04.02.2013 13:45)