
Andrew
22.05.2018
11:26:10
Рэбзя
Находил инфу когда-то что иногда прошивка nodemcu ложытся криво из-за плохой флеш памяти
Мол сперва надо флеш полностью затереть
Кто-нибудь сталкивался?

Алексей
22.05.2018
11:26:49

22.05.2018
11:53:21
Тут есть кто ремонтирует частотный переоброзавтелей?


Alexey
22.05.2018
11:57:42
Кто работал с i2c протоколом с множеством устройств на шине?
Подскажите как защитить i2c порты от выгорания.
Я подключил к мастеру RPI на i2c (пины 3, 5) 8 внешних i2c устройств (stm32).
Устройства все 3.3 вольта. RPI была запитана - отдельно, устройства - отдельно, RPI была связана с ними только тремя проводами: SDA, SCL, GND
На RPI есть встроенные pull up резисторы 1.8k на i2c на 3, 5 пинах. Поэтому я не ставил дополнительно, это бы уменьшило номинал только.
Подал на них команду и RPI сгорела ?
Я сделал несколько ошибок, но хочу разобраться какая их них была фатальной.
- у всех устройств был один адрес
- команда блокировала цикл на 10 сек. Т.е. как я понимаю STM принимала команду, подвешивала i2c шину, выполняла команду (крутила мотор) и дальше заканчивала сеанс работы с i2c и разблокировала шину.
Я знаю что для I2C очень важны pull up резисторы иначе будет короткое замыуание. И они были встроенные в RPI.
Думал, что pull up резисторы - это стопроцентная защита от выгорания i2c.
Можете мне объяснить почему сгорела RPI в моем случае?

Google

sifun
22.05.2018
11:58:54
нет резисторы никакого отношения к защите не имеют

Alexey
22.05.2018
11:59:17
Т.е. программно можно убить i2c?
Как защититься?

sifun
22.05.2018
12:00:23


Alexey
22.05.2018
12:01:08
"Для реализации линии, требуется всего два провода. Один SCL, другой SDA. Что по ним бегает. По проводу SCL бегают тактовые синхроимпульсы, а по проводу SDA данные. Те два резистора справа должны подтягивать линии к плюсу питания. Значение может лежать от 4,7К до 10К. Теперь давайте разберемся зачем нужны эти резисторы. Дело в том что данные по линиям передаются следующим образом. Если мне нужно передать ноль, то я прижимаю линию к нулю. Если мне надо передать единицу, то мне нужно прижать линию к плюсу. Но вот не задача. Ведущий прижимает линию к нуля, а в это время ведомый прожевал данные и выкатил единицу на линию. Что будет? Верно, короткое замыкание. Вероятнее всего порты погорят. Как быть? Вот для этого и установлены резисторы. Когда кому-то приспичит выставить единицу, то он просто отпускает линию, переведя свою ногу в Z состояние, а резисторы подтянут к питанию и на линии появится единица. В этом случае даже если кто-то прижмет линию к нулю, короткого не будет. Все довольны и все счастливы. Таким образом решается арбитраж если на линии больше одного ведущего. Тот кто первый выставил ноль, тот и главнее, а другие ведущие увидев ноль переходят в режим ведомых. "
http://www.avrki.ru/articles/content/shina_i2c/


Rabu
22.05.2018
12:01:11
Кто работал с i2c протоколом с множеством устройств на шине?
Подскажите как защитить i2c порты от выгорания.
Я подключил к мастеру RPI на i2c (пины 3, 5) 8 внешних i2c устройств (stm32).
Устройства все 3.3 вольта. RPI была запитана - отдельно, устройства - отдельно, RPI была связана с ними только тремя проводами: SDA, SCL, GND
На RPI есть встроенные pull up резисторы 1.8k на i2c на 3, 5 пинах. Поэтому я не ставил дополнительно, это бы уменьшило номинал только.
Подал на них команду и RPI сгорела ?
Я сделал несколько ошибок, но хочу разобраться какая их них была фатальной.
- у всех устройств был один адрес
- команда блокировала цикл на 10 сек. Т.е. как я понимаю STM принимала команду, подвешивала i2c шину, выполняла команду (крутила мотор) и дальше заканчивала сеанс работы с i2c и разблокировала шину.
Я знаю что для I2C очень важны pull up резисторы иначе будет короткое замыуание. И они были встроенные в RPI.
Думал, что pull up резисторы - это стопроцентная защита от выгорания i2c.
Можете мне объяснить почему сгорела RPI в моем случае?
если ты ставишь программно + на шине которая на выход во время работы слейва то твоему порту пиздец


sifun
22.05.2018
12:01:36
и защищает это только от коллизий при нормальной работе


Rabu
22.05.2018
12:02:02
"Для реализации линии, требуется всего два провода. Один SCL, другой SDA. Что по ним бегает. По проводу SCL бегают тактовые синхроимпульсы, а по проводу SDA данные. Те два резистора справа должны подтягивать линии к плюсу питания. Значение может лежать от 4,7К до 10К. Теперь давайте разберемся зачем нужны эти резисторы. Дело в том что данные по линиям передаются следующим образом. Если мне нужно передать ноль, то я прижимаю линию к нулю. Если мне надо передать единицу, то мне нужно прижать линию к плюсу. Но вот не задача. Ведущий прижимает линию к нуля, а в это время ведомый прожевал данные и выкатил единицу на линию. Что будет? Верно, короткое замыкание. Вероятнее всего порты погорят. Как быть? Вот для этого и установлены резисторы. Когда кому-то приспичит выставить единицу, то он просто отпускает линию, переведя свою ногу в Z состояние, а резисторы подтянут к питанию и на линии появится единица. В этом случае даже если кто-то прижмет линию к нулю, короткого не будет. Все довольны и все счастливы. Таким образом решается арбитраж если на линии больше одного ведущего. Тот кто первый выставил ноль, тот и главнее, а другие ведущие увидев ноль переходят в режим ведомых. "
http://www.avrki.ru/articles/content/shina_i2c/
прижимать порт на единицу это грубейшая ошибка всех червей пидоров


Alexey
22.05.2018
12:02:15
нет
Тогда почему у меня сгорела RPI? Это же пример программного воздействия.

Rabu
22.05.2018
12:02:21
ты должен просто отпустить линию, шоб подать единицу

sifun
22.05.2018
12:02:34
а пины не специальные?

Google

Rabu
22.05.2018
12:02:41
а ты ее прижимаешь на плюм

sifun
22.05.2018
12:02:56
если ты переконфигурировал пины сам виноват
и резисторы подтягивающие никак не помогут и не помешают

Rabu
22.05.2018
12:03:17
а и слейв может спалить твою малину если подаст +, твои пины то на 3.3 и не толерантны

Alexey
22.05.2018
12:03:38
Сейчас покажу код
У меня нету 5v, везже 3.3


FisHlaBsoMAN
22.05.2018
12:04:50
Кто работал с i2c протоколом с множеством устройств на шине?
Подскажите как защитить i2c порты от выгорания.
Я подключил к мастеру RPI на i2c (пины 3, 5) 8 внешних i2c устройств (stm32).
Устройства все 3.3 вольта. RPI была запитана - отдельно, устройства - отдельно, RPI была связана с ними только тремя проводами: SDA, SCL, GND
На RPI есть встроенные pull up резисторы 1.8k на i2c на 3, 5 пинах. Поэтому я не ставил дополнительно, это бы уменьшило номинал только.
Подал на них команду и RPI сгорела ?
Я сделал несколько ошибок, но хочу разобраться какая их них была фатальной.
- у всех устройств был один адрес
- команда блокировала цикл на 10 сек. Т.е. как я понимаю STM принимала команду, подвешивала i2c шину, выполняла команду (крутила мотор) и дальше заканчивала сеанс работы с i2c и разблокировала шину.
Я знаю что для I2C очень важны pull up резисторы иначе будет короткое замыуание. И они были встроенные в RPI.
Думал, что pull up резисторы - это стопроцентная защита от выгорания i2c.
Можете мне объяснить почему сгорела RPI в моем случае?
от чего были запитаным малины? куда gnd был подключен?
может тебя убило между розетками


Alexey
22.05.2018
12:06:10

FisHlaBsoMAN
22.05.2018
12:06:29
надо читать даташник малины
сцукко
я так с ходу не скажу

sifun
22.05.2018
12:07:27
а чем управляло это
какой мощности

Alexey
22.05.2018
12:09:31
https://gist.github.com/targence/6ab2e4c3702bb45a0abe17540126abcd#file-gistfile1-txt-L361
Это код. Я дал ссылку на строчку которая начинает выполнятся когда приходит команда по i2c

FisHlaBsoMAN
22.05.2018
12:12:02
где то ты обманываешь... не должно было ничего погореть

Alexey
22.05.2018
12:12:03
а чем управляло это
Управлял 12 моторами. Они были запитаны от отдельного БП, через драйверы. GND у RPI, драйверов моторов и i2c устройств общий
Пытаюсь разобраться

Google

Alexey
22.05.2018
12:12:44
В коде цикл блокируется
Я выше на это обращал внимание, это важно. Я дебажил его и не доделал. Поэтому он блокировался
И у всех устройств был один адрес. Поэтому, как я подал команду они все начали крутить моторами и это блокировало всю шину i2c. Т.е. пока они не открутят мотор устрлйства на шине не отвечают.
Но что оно сгорело я само собой не ожидал ?

покладник
22.05.2018
12:27:15
За сколько продать можно

Rabu
22.05.2018
12:27:31

Bastad
22.05.2018
12:29:06
расхищает он тут государственную собственность блет

покладник
22.05.2018
12:31:11

покладник
22.05.2018
12:31:14
Кому она сдалась

Alexey
22.05.2018
12:32:26
на слейве аппаратный айтуси?
Да, код посмотрите, выше ссылка. Там используется i2c либа и выбраны аппаратные пины. Просто с любыми пинами она бы не работала
Я склоняюсь что фатальным было что у всех устройст был один адрес, они не все успели поднянуть или отпустить что там им нужно было. Ну и может влияло что цикл блокировался.

Rabu
22.05.2018
12:37:07
спеки айтуси не допускают одновременного вещания всех слейвов
но и не приводят к сгоранию

Alexey
22.05.2018
12:38:34
Ну это не вносит ясности ?
Она сгорела и это факт ?

Google

Rabu
22.05.2018
12:38:59
какой конкретно пин сгорел?

Alexey
22.05.2018
12:39:14
У меня rpi перестала работать
Вообще

Rabu
22.05.2018
12:39:27
?

Alexey
22.05.2018
12:39:30
Лампочка горит и сильно греется
И все, признаков жизни не подает
Когда горела начало изображение пропадать, 3-4 раза мигнул экран и все
Больше не завелась

sifun
22.05.2018
12:45:15

First
22.05.2018
12:45:50

Admin
ERROR: S client not available

Bastad
22.05.2018
12:48:56

Alexey
22.05.2018
12:52:29
оптроны были?
Были где?
Управление моторами идет через микросхемы драйверы. Конкретно в моем случае это чуть более сложная конструкция. Сначала идет сдвиговый регистр, а тот уже управляет двумя моторами через драйверы
lv8548 - драйвер для моторов
hef4094 - сдвиговый регистр, по сути это интерфейс над драйверами для управления

sifun
22.05.2018
12:54:26
полная схема есть?

Alexey
22.05.2018
12:55:58
полная схема есть?
Нету, это готовое устройство с моторами, к которому я подключаю шилд с stm32 и управляю им через команды от RPI

sifun
22.05.2018
12:56:45
есть ли развязки где либо

Alexey
22.05.2018
13:04:24
есть ли развязки где либо
Не понял, как понять есть развязки?
Я выше писал. Что управляю stm моторами, описал как там питание подсоединено, что GND общий, моторы 12v и пр. RPI которая сгорела была подсоединена только через GND, SDA, SCL.
Если вопрос про схему.
Конкретно у этого готового устройства с моторами есть порт, я к этому порту подключаюсь и получаю доступ к пинам сдвигового регистра hef4094, даташит выше. А этот сдвиговый регистр уже управляте драйверами моторов. Есть код, его тоже скидывал, там видно как я дергаю пинами чтобы крутить моторы.
Для меня это внешний интерфейс которым я управляю stm32.

sifun
22.05.2018
13:05:51
целесообразно сделать развязку
чтобы не было соединено ничего

Google

First
22.05.2018
13:06:22
заебок. искал по номеру матрицы?
Я вбил название шлейфа + Дельфин подсказал какая модель подходит и я взял модель с почти таким же названием. Тоньше экран вышел. Я особо не парясь взял, так как прочитал в коментариях, что продавец шлёт с другим шлейфом — думал что бесплатно получу, но он прислал с тем что в описании и все подошло

Андрей
22.05.2018
13:06:37

sifun
22.05.2018
13:07:54
что то такого порядка

Андрей
22.05.2018
13:08:19
Но ведь у него драйвер мотора стоит.

Alexey
22.05.2018
13:08:37
чтобы не было соединено ничего
А что именно не должно быть соединено?
От RPI 3 провода всего.
GND общий - я не могу ешо убрать, не будет I2C работать.
То что GND общий у моторов 12v и у RPI 5v это мне не особо нравится, но так сделано это внешнее устройство с моторами ...

Андрей
22.05.2018
13:09:08
Чтобы гальванически не было соединения

sifun
22.05.2018
13:09:33
да
чем больше развязок тем лучше

Alexey
22.05.2018
13:09:43

Андрей
22.05.2018
13:09:55
Но всё равно странно, что Raspberry сгорела

Bastad
22.05.2018
13:10:34

Андрей
22.05.2018
13:14:10
@insta443 Либо один из подключенных девайсов имеет 5 вольтовую логику на I2C, либо выдали логическую единицу. Я всё же думаю, что дело в этом.

Alexey
22.05.2018
13:15:10

Андрей
22.05.2018
13:16:23
5v там нет. Все 3.3v
Ну значит скорее всего какой-то из девайсов почему-то выдал логическую один. По спецификации I2C этого в принципе быть не должно.
Ну выше тебе это же самое говорили.

Alexey
22.05.2018
13:21:42
Ну я понимаю это. Просто не доконца понимаю почему это произошло.
Я сейчас буду делать второй заход, само собой прошью разные id, разблокирую цикл и надеюсь этого не повторится.
Еще stm32 бывают подвисают так ято сбрасывать их надо, может и это повлияло.
По сути других мер тут я не смогу предпринять, чтобы это не повторилось.

Victor
22.05.2018
13:31:43
Стоечка приобретает вид...

Bastad
22.05.2018
13:32:05
ноомр