Как работает S88? Arduino-OpenDCC-RocRail
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Как работает S88? Arduino-OpenDCC-RocRail
Коллеги, можно попросить пояснить как работает S88?
Я правильно понимаю, что алгоритм работы таков:
PS/Load - сигнал отправляемый читающим устройством (КС) модулям и указывающий на начало чтения.
Следующие за ним clock сигналы - указатели на то, что нужно передать через DATA, следующий бит регистра.
А теперь вопросы по существу:
Если модулей с датчиками много, как определяется конец данных от одного модуля и начало данных другого? Только настройкой в КС? А как первый модуль в цепочке узнает что нужно опять слать свои данные?
Что должно происходить по сигналу Reset? Просто очистка битов данных в модулях?
Ну и последнее. У станции OpenDCC какие частоты для PS и clock? Я намерял примерно 650 PS и 6500 clock в секунду. Это похоже на правду? И почему количество отличается ровно в 10 раз, а не в 8 как логично было бы ожидать?
Заранее спасибо за ответы
PS: Это я Ардуино прикручиваю как S88 модуль.
Я правильно понимаю, что алгоритм работы таков:
PS/Load - сигнал отправляемый читающим устройством (КС) модулям и указывающий на начало чтения.
Следующие за ним clock сигналы - указатели на то, что нужно передать через DATA, следующий бит регистра.
А теперь вопросы по существу:
Если модулей с датчиками много, как определяется конец данных от одного модуля и начало данных другого? Только настройкой в КС? А как первый модуль в цепочке узнает что нужно опять слать свои данные?
Что должно происходить по сигналу Reset? Просто очистка битов данных в модулях?
Ну и последнее. У станции OpenDCC какие частоты для PS и clock? Я намерял примерно 650 PS и 6500 clock в секунду. Это похоже на правду? И почему количество отличается ровно в 10 раз, а не в 8 как логично было бы ожидать?
Заранее спасибо за ответы
PS: Это я Ардуино прикручиваю как S88 модуль.
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
- antobel
- Сообщения: 923
- Зарегистрирован: Ср дек 30, 2009 1:32 pm
- Имя: Антон Беляев
- Откуда: 153км по М7...
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Как работает S88
Лоад - загружает состояние всех датчиков в сдвиговый регистр.
ресет - сбрасывает входные защёлки-триггеры датчиков, т.е.
после лоада проходит ресет - и до следующего лоада срабатывание датчиков фиксируется.
число тактов в цикле опроса = N*8+1(или+2) (для синхронизации лоада и ресета) соответствует ОПРАШИВАЕМОМУ массиву датчиков (т.е. определяется в КС числом опрашиваемых байт.)
ресет - сбрасывает входные защёлки-триггеры датчиков, т.е.
после лоада проходит ресет - и до следующего лоада срабатывание датчиков фиксируется.
число тактов в цикле опроса = N*8+1(или+2) (для синхронизации лоада и ресета) соответствует ОПРАШИВАЕМОМУ массиву датчиков (т.е. определяется в КС числом опрашиваемых байт.)
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Re: Как работает S88
Спасибо, я таки понял как это работает Хотя мне и тяжело было сообразить объяснения с точки зрения железной реализации
На всякий прилеплю картинку с таймингами, может кому-то еще понадобится.
На всякий прилеплю картинку с таймингами, может кому-то еще понадобится.
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
А продолжу-ка я эту тему здесь. Думал где поспрашивать, но сам не знаю откуда проблемы, поэтому буду тут. Заодно и выложу всякие наработки по ардуине.
Столкнулся с проблемой, для того, что бы получить устойчивое срабатывание датчика подключенного по S88 в RocRail+OpenDCC скорость прохождения магнита мимо Холла или геркона должна быть небольшой. Я бы конечно списал все на кривость моей реализации модуля S88 на ардуино, если бы точно такое же поведение не наблюдалось и с модулями BLO (Холл и геркон). С модулем от BLO скорость прохождения магнита которую он еще ловит, чуть выше, но совсем ненамного.
Посему вопрос, есть ли какой-то параметр у станции или у рокрейла, который отвечает за время, в течение которого наличие единички от датчика с модуля S88, будет "засчитано" как срабатывание? Или в надежде на аппаратный антидребезг, станция/рокрейл сразу учитывают как сработку, первую пришедшую единичку?
Столкнулся с проблемой, для того, что бы получить устойчивое срабатывание датчика подключенного по S88 в RocRail+OpenDCC скорость прохождения магнита мимо Холла или геркона должна быть небольшой. Я бы конечно списал все на кривость моей реализации модуля S88 на ардуино, если бы точно такое же поведение не наблюдалось и с модулями BLO (Холл и геркон). С модулем от BLO скорость прохождения магнита которую он еще ловит, чуть выше, но совсем ненамного.
Посему вопрос, есть ли какой-то параметр у станции или у рокрейла, который отвечает за время, в течение которого наличие единички от датчика с модуля S88, будет "засчитано" как срабатывание? Или в надежде на аппаратный антидребезг, станция/рокрейл сразу учитывают как сработку, первую пришедшую единичку?
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
- LABA
- Сообщения: 1616
- Зарегистрирован: Пт мар 20, 2009 9:25 pm
- Откуда: Питер
- Благодарил (а): 32 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
Вася, это проблема самой программы. Она почему-то игнорирует короткие сработки от датчиков. Несмотря на то, что сервер от станции получал данные о сработке датчиков, он их не обрабатывал.
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
То есть это проблема Рокрейла? Жесть какая.... И как эту штуку обойти?
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
- LABA
- Сообщения: 1616
- Зарегистрирован: Пт мар 20, 2009 9:25 pm
- Откуда: Питер
- Благодарил (а): 32 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
Да, это проблема программы. Растягивать длину импульса аппаратно, в самом модуле обратной связи.
- LABA
- Сообщения: 1616
- Зарегистрирован: Пт мар 20, 2009 9:25 pm
- Откуда: Питер
- Благодарил (а): 32 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
Ради интереса попробуй подключить к Траинконтроллеру. Более, чем уверен, что там все будет работать нормально.
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
Спасибо!
Попробую и то и другое. О результатах доложу
Попробую и то и другое. О результатах доложу
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
- Василий
- Модератор
- Сообщения: 9437
- Зарегистрирован: Чт мар 06, 2008 9:03 am
- Имя: Василий Васильчиков
- Откуда: Северо-западное Болото
- Благодарил (а): 344 раза
- Поблагодарили: 456 раз
- Контактная информация:
Re: Как работает S88? Arduino-OpenDCC-RocRail
Алексей, ты был прав. С трейнконтроллером гораздо более короткие срабатывания фиксируются.
In der Grosse Familie nicht der клювом клац-клац!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!
--------------------------------------------------------------------------
Не натягивайте сову на глобус!