Несколько DS18B20 на одной линии - ?

Oct 14, 2019 21:30


Доброго времени суток, коллеги! Помогите пожалуйста разгадать загадку, пока я умом не тронулся... Решаю сейчас задачу - на одной линии висят три 1-ware термодатчика. В зависимости от их показаний, должны открываться-закрываться шаровые клапаны, с электроприводами. Пытаюсь на ассемблере описать процедуру автоматического поиска и регистрации новых ( Read more... )

Leave a comment

Comments 73

oldporuchik October 14 2019, 11:37:05 UTC
Не нежно ассемблеров, нужна заглушка на каждый датчик, которая подключается на время замены датчика.

Reply

aterentiev October 14 2019, 11:48:02 UTC
как можно сделать заглушку на датчик, находящийся на общей шине?
или делать количество заглушек, равное количеству датчиков? и если обнаружена заглушка, то сейчас появится новое ID на то место?

Reply

ctbr83 October 14 2019, 12:17:05 UTC
Хм... заглушка? Интересная идея, надо подумать в эту сторону. Спасибо за участие

Reply


aterentiev October 14 2019, 11:40:43 UTC
Хехе, плаг-н-плей в МК :)
Если у устройства есть интерфейс управления - это туда.

Иначе есть только такая идея:
В случае, если известных датчиков на 1 меньше, чем надо, то новое ID - это замена исчезнувшему ID
В случае, если их меньше, подключение нужно делать в конкретном порядке, а лучше для такого случая забить на автоматизмы и предусмотреть "первичную настройку", ибо "все плохо".
А в случае, если их больше, чем надо, то бес попутал, игнорировать неизвестный

Reply

dmitryk1 October 15 2019, 02:21:25 UTC

bigmaxx October 14 2019, 11:47:00 UTC
Я бы вначале написал вменяемое ТЗ на обычном русском языке, а уж потом реализовывал его (без разницы, какими инструментами).

Reply

ctbr83 October 14 2019, 12:21:52 UTC
Да ТЗ, как такового, нету в общем-то нету. Вернее это моя личная инициатива, что бы пользователь не парился с заменой датчиков, и меня не дёргал с ковырянием прошивки каждый раз. :)

Reply

bigmaxx October 14 2019, 14:07:57 UTC
Ну не знаю, я ТЗ пишу сам для себя, потому что предпочитаю сначала составить формальное описание того, что и как хочу сделать, обычным человеческим языком. Это помогает избежать системных ошибок, которые потом очень проблематично исправить.

Reply

ctbr83 October 14 2019, 14:27:52 UTC
Ну что тут скажешь - ни добавить, ни убавить... Вы абсолютно правы

Reply


trojanrabbit October 14 2019, 11:54:50 UTC
сталкивался с девайсом где штук 20 таких датчиков стояло и ещё какие-то на барометры i2c в том же шлейфе - там прям в разъеме стояла i2c флешка с конфигурацией.
поменяли датчик - переписали флешку.

Reply

aterentiev October 14 2019, 12:00:33 UTC
кстати, интересная и элегантная идея

Reply

trojanrabbit October 14 2019, 12:11:31 UTC
у них ещё автонастройка на лабораторном стенде была при сборке шлейфа - шлейф герметичный - создаем градиент температуры в трубе, суем туда шлейф и командуем контроллеру калибровку. контроллер видит градиент и по порядку вписывает датчики во флеш.

Reply

simsun October 14 2019, 21:32:16 UTC
C трубой - отлично!)

Reply


feeshblood October 14 2019, 12:23:00 UTC
А может, сделать отдельный вход для того, чтоб "познакомить" микроконтроллер с новым датчиком? И задать, за что он отвечает. А потом смонтировать на рабочую шину.

Или отбирать датчики: id заканчивающиеся на 1, 4, 7..- это первая группа, на 2, 5, 8..- вторая, на 3, 6, 9...- третья

Или (не дочитал даташит) - там есть про алармы в eeprom датчиков. Если их можно считать- может, заранее программировать эти данные в датчик (используя только для идентификации), опять-таки, создав три группы?

---

Управление- то какое-нибудь предусматривается, или вещь в себе?

Reply

ctbr83 October 14 2019, 13:51:51 UTC
Вообще, вещь в себе. Опрос датчиков и передача данных. Там ещё и доступ к ним в некотором роде ограничен. Поэтому задача максимально упростить конструкцию. Идея познакомить контроллер с новым датчиком, на первый взгляд, неплоха - завтра я её подумаю, сейчас уже с трудом соображаю - у нас тут полночь уже без малого :) Спасибо за подсказку

Reply

feeshblood October 14 2019, 14:55:13 UTC
Просто если снять сразу 2 датчика- фигзна, какой, первый или второй, монтажники присоедининят первым. А оно так случится!:) Неопределенность.

Может, следить, не замкнута ли шина? Типа, ткнул 2 раза отверткой по 1 секунде- сейчас появится датчик второй группы. Замкнул шину на 5 секунд- сброс валидации датчика, предпологаемого на место отсутствующего, и надо "сигналить" короткими замыканиями по-новой.

Если нет доступа к контроллеру- жаль. Остается предварительная сортировка по id датчика либо предварительная же зашивка в датчик температуры аларма...

Reply


Leave a comment

Up