Re: Ультрабюджетные проводные датчики/исполнительные устройс
Добавлено: Вс окт 19, 2014 4:00 pm
Программатор в составе STM8SVLDiscovery. Обошелся в 10USD тогда, сейчас есть отдельный полноценные на алиэкспресс и по 7USD.
Обсуждение проекта
https://www.mjdm.ru/forum/
Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.artko писал(а):Идея очень примитивная, в общем.
Есть уровень на шине доминантный(для моего случая это прижатие к земле линии) и рецессивный (никто не трогает). Собственно, обычный открытый коллектор с подтяжкой к питанию.
Рецессивный считаю нулем, низшим приоритетом.
Предположим, две сразу станции начинают передачу. Пока у них одинаковые биты - никакой коллизии нет, все нормально будет считано другими. Но как только у одной очередной бит станет единицей(доминантой) - вторая передающая при проверке линии после начала передачи бита(линия должна встать в ожидаемый уровень) увидит, что состояние не соответствует ожидаемому - коллизия. Для станции это однозначно прекращение передачи и переход в состояние ожидания простоя канала.
Вторая, у которой приоритет передачи выше (именно для этого в начале пакета ставлю адрес, 0x00 - минимальный приоритет получателя, 0xFF максимальный) - продолжит работу.
В чем фокус такого подхода - пакет, передача которого уже начата - дойдет до конца без искажения и необходимости перепосылки.
Не особо и много, хотя аппаратным модулем, безусловно, удобнее. ну и rs-485 имхо использовать не особо удобно - формирователи нужны, отдельный провод. Я подумываю уже у себя перевести на ethernet/wi-fi + шлюзы. Реально железки подешевели еще, возиться со специфическим своим творением оправдано (лично мне) только для буквально однокнопочных решений, где просто жаба не позволяет полноценный интерфейс ставить (выключатели света, датчики движения и т.п.).ksgroup писал(а):Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.
Ivan писал(а):оделитесь пожалуйста разводками и кодом
Также было бы очень интересно посмотреть на фото готовые устройства
P.S. Обожаю CAN, но не стал применять дома, т.к. устройство получается не дешевое (чип+драйвер). Иначе бы думать не стал и использовал его везде. Плюсы: однопроводный кан, возможность будить чип на уровне протокола, большая адресация. Минусы: топология шина (Но думаю тут можно намудрить как в 1-Wire, хотя поставить GateWay - лучший вариант)


применил классическое решение в виде фототранзистора и синей изоленты - дешево и надежно (если солнце не светитRS428 - Считывание счётчика (тест работает)
нет, я здесь пас. как по мне проще какой-то железный транслятор сделать, для приведения к более стандартным настройкам.Ivan писал(а):Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 9600 Even 7bit
Уже всё перепробовал не отвечает.
Если есть опыт работы с serrial в Linux - помоги пожалуйста