Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC
Электрика и DCC Обсуждение цифрового и аналогового управления

Ответ
 
Опции темы Опции просмотра
Старый 30.11.2009, 15:38   #1
jenya83
Пользователь
 
Аватар для jenya83
 
Регистрация: 11.10.2008
Адрес: Киев
Сообщений: 703
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 1,208
Поблагодарили 942 раз(а) в 263 сообщениях
Репутация: этим человеком можно гордиться (1005)
По умолчанию Свой декодер для twin-coil переключателя стрелки

Добрый день всем.
Пытаюсь сделать самостоятельно декодер для управления стрелкой Atlas с двойной катушкой и магнитным сердечником. Пытаюсь снять "команду" с командной станции для программирования микроконтроллера, но она сыпет поток из 10 000 команд в секунду (NCE Power Cab). Подскажите как выделить команду для стрелки из этого информационного потока или может кто знает где взять прошивку для микроконтроллера.
Спасибо.
jenya83 вне форума   Вверх
Старый 30.11.2009, 15:47   #2
Onegin
4400 horse power
 
Аватар для Onegin
 
Регистрация: 19.02.2008
Адрес: Нижний Тагил
Сообщений: 1,724
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 981
Поблагодарили 422 раз(а) в 247 сообщениях
Репутация: - просто великолепная личность (698)
По умолчанию

http://www.opendcc.de/elektronik/ope...endecoder.html
В исходных кодах все расписано, разжевано и в рот положено.
__________________

http://mef.tagnet.ru/oneg/400-223_sm.jpg
XpressNet и разные чудеса с ним.
Onegin вне форума   Вверх
Старый 02.12.2009, 09:16   #3
Жорик_У
Пользователь
 
Регистрация: 16.09.2008
Адрес: Туапсе
Сообщений: 338
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 69 раз(а) в 38 сообщениях
Репутация: скоро придёт к известности (139)
По умолчанию

"как выделить команду для стрелки из этого информационного потока"
цифровым бациллоскопом или контроллером, у которого порт работает на прием и загоняет данные в РАМ (например кэш от 486-х и первых пней)... - Дальше вручную разбор принятого кода. Если известен протокол и адрес устройства, на контроллере воротим ловушку- по которой снимаем следующие н-байт за адресом (или м-байт - кому сколько надо) - возни на вечер, но при этом ручная разборка кода отменяется

Если надо могу выложить печатку под АТмегу8535 и 32кБ кэша + МАХ232, оговорюсь сразу железяка воротилась давно и не под эту задачу, потому софта нет, но подсказать чего и как могу. В принципе это ОНО и есть - цифровой ТТЛ осцилоскоп, точнее все что есть под него уже готово. Теоретически надо будет срастить ДСС распознаватель + анализатор потока (парсер по-умному)+укладывалку КЭШа+выгонялку КЭШа на СОМ-порт. Куски всех этих кодов есть.
Жорик_У вне форума   Вверх
Старый 02.12.2009, 11:15   #4
Onegin
4400 horse power
 
Аватар для Onegin
 
Регистрация: 19.02.2008
Адрес: Нижний Тагил
Сообщений: 1,724
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 981
Поблагодарили 422 раз(а) в 247 сообщениях
Репутация: - просто великолепная личность (698)
По умолчанию

Цитата:
Сообщение от Жорик_У Посмотреть сообщение
"как выделить команду для стрелки из этого информационного потока"
цифровым бациллоскопом или контроллером, у которого порт работает на прием и загоняет данные в РАМ (например кэш от 486-х и первых пней)... - Дальше вручную разбор принятого кода. Если известен протокол и адрес устройства, на контроллере воротим ловушку- по которой снимаем следующие н-байт за адресом (или м-байт - кому сколько надо) - возни на вечер, но при этом ручная разборка кода отменяется

Если надо могу выложить печатку под АТмегу8535 и 32кБ кэша + МАХ232, оговорюсь сразу железяка воротилась давно и не под эту задачу, потому софта нет, но подсказать чего и как могу. В принципе это ОНО и есть - цифровой ТТЛ осцилоскоп, точнее все что есть под него уже готово. Теоретически надо будет срастить ДСС распознаватель + анализатор потока (парсер по-умному)+укладывалку КЭШа+выгонялку КЭШа на СОМ-порт. Куски всех этих кодов есть.
Зачем такие сложности, если протокол DCC подробно документирован на указанном сайте?
__________________

http://mef.tagnet.ru/oneg/400-223_sm.jpg
XpressNet и разные чудеса с ним.
Onegin вне форума   Вверх
Старый 02.12.2009, 14:39   #5
Жорик_У
Пользователь
 
Регистрация: 16.09.2008
Адрес: Туапсе
Сообщений: 338
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 69 раз(а) в 38 сообщениях
Репутация: скоро придёт к известности (139)
По умолчанию

так, Жень протокол и на НМРА в первозданном, я так понял ему надо выцепить из потока определенную последовательность. Это только железом, а иначе как?
Или я чего не понял?

"как выделить команду для стрелки из этого информационного потока"
тогда вариант два: считаем длительности между переходами через ноль, соотносим их к эталонным, указанным в РП.НМРА определяем чего приняли 0 или 1, потом необходимо зацепиться за преамбулу а от нее распознавать адрес, данные, еррдетект и т.д. Под это кусок кода тоже есть: находит преамбулу, вычисляет свой адрес после него набивает данные в память, считает ЦРЦ
Жорик_У вне форума   Вверх
Старый 02.12.2009, 14:49   #6
Onegin
4400 horse power
 
Аватар для Onegin
 
Регистрация: 19.02.2008
Адрес: Нижний Тагил
Сообщений: 1,724
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 981
Поблагодарили 422 раз(а) в 247 сообщениях
Репутация: - просто великолепная личность (698)
По умолчанию

Цитата:
Сообщение от Жорик_У Посмотреть сообщение
так, Жень протокол и на НМРА в первозданном, я так понял ему надо выцепить из потока определенную последовательность. Это только железом, а иначе как?
Или я чего не понял?

"как выделить команду для стрелки из этого информационного потока"
тогда вариант два: считаем длительности между переходами через ноль, соотносим их к эталонным, указанным в РП.НМРА определяем чего приняли 0 или 1, потом необходимо зацепиться за преамбулу а от нее распознавать адрес, данные, еррдетект и т.д. Под это кусок кода тоже есть: находит преамбулу, вычисляет свой адрес после него набивает данные в память, считает ЦРЦ
Я так понял, что цель сделать именно аксессуарный декодер. Соответственно нужно ловить из DCC нужные команды.

ЗЫ. у меня такое уже tiny25 научился делать, хотя попадать в тайминги с 8ми битным таймером сложновато. 1.1% погрешность в меньшую сторону.
__________________

http://mef.tagnet.ru/oneg/400-223_sm.jpg
XpressNet и разные чудеса с ним.
Onegin вне форума   Вверх
Старый 02.12.2009, 15:24   #7
Жорик_У
Пользователь
 
Регистрация: 16.09.2008
Адрес: Туапсе
Сообщений: 338
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 69 раз(а) в 38 сообщениях
Репутация: скоро придёт к известности (139)
По умолчанию

"Я так понял, что цель сделать именно аксессуарный декодер. Соответственно нужно ловить из DCC нужные команды."
Да какой бы он ни был начинать надо с определения 0 и1 и далее по нарастающей...
Жорик_У вне форума   Вверх
Старый 02.12.2009, 15:56   #8
Onegin
4400 horse power
 
Аватар для Onegin
 
Регистрация: 19.02.2008
Адрес: Нижний Тагил
Сообщений: 1,724
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 6 раз(а) в 5 сообщениях
Сказал(а) спасибо: 981
Поблагодарили 422 раз(а) в 247 сообщениях
Репутация: - просто великолепная личность (698)
По умолчанию

Цитата:
Сообщение от Жорик_У Посмотреть сообщение
"Я так понял, что цель сделать именно аксессуарный декодер. Соответственно нужно ловить из DCC нужные команды."
Да какой бы он ни был начинать надо с определения 0 и1 и далее по нарастающей...
А чего сложного? Программируем таймер на 87мс. Вешаем на int0 сигнал с рельс (через опторазвязку, резисторный делитель и т.д.). Ловим int0, запускаем таймер. Через 87мс приходит прерывание таймера (счетчик на нуле), смотрим есть ли "1" на порту int0, если есть, то значит это логическая "1", если нет, значит логический "0".
__________________

http://mef.tagnet.ru/oneg/400-223_sm.jpg
XpressNet и разные чудеса с ним.
Onegin вне форума   Вверх
Старый 02.12.2009, 16:50   #9
Жорик_У
Пользователь
 
Регистрация: 16.09.2008
Адрес: Туапсе
Сообщений: 338
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 69 раз(а) в 38 сообщениях
Репутация: скоро придёт к известности (139)
По умолчанию

Ну, так а я о чем?
Я о том, что сначала ЕМУ надо выщемлять 0 и 1 , протом ловить преамбулу, по ней цеплять адрес, определяться наш или нет и затем забивать данные попутно сверяя ЦРЦ...
Как бы с алгоритмом проблем нет, давно работает...
Обнаковенный анализатор потока, который работает в принципе везде, иного пока вроде не придумано...
Жорик_У вне форума   Вверх
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декодер для стрелки LGB на Ардуино BR95009 Arduino 42 25.10.2016 16:13
Как скрестить привод стрелки LGB и декодер RocoSwitch BR95009 Цифровая аппаратура Modelldepo 12 07.05.2014 09:59
Мультимаус, декодер ajl2 и стрелки Piko tsgarp Электрика и DCC 16 25.04.2012 15:55
Использование RocoSwitch как "переключателя" Enkee Электрика и DCC 16 12.04.2012 19:20
Свой проект DCC. Onegin Электрика и DCC 61 12.10.2008 16:53


Текущее время: 02:30. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -