Konoplj2010, отключить и вновь включить порт с другой скоростью -- глазом не успеете моргнуть
Важнее (уже спрашивал) время реакции датчика: сколько миллисекунд проходит от выдачи FF до получения ответа и сколько времени от выдачи команды до ответа?
Этот топик читают: Гость
Ответов: 8921
Рейтинг: 823
|
|||
карма: 19 |
|
Ответов: 70
Рейтинг: 0
|
|||
Леонид писал(а): RESET выглядит так: https://www.maximintegrated.com/en/images/appnotes/214/1189Fig04.gif Передача выглядит так: https://www.maximintegrated.com/en/images/appnotes/214/1189Fig08.gif Приём выглядит так: https://www.maximintegrated.com/en/images/appnotes/214/1189Fig07.gif Но это на низком уровне. ------------ Дoбавленo в 19.34: Блин файл вставить не могу. Я бы показал по нагляднее. |
|||
карма: 0 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Konoplj2010, эти времена касаются формирования сигнала, а я спрашивал время реакции датчика: послали запрос/команду датчику, через сколько мсек придёт ответ?
Вот примерная схемка: code_36815.txt По нажатии "Старт" СОМ с периодом 100 мсек выдаёт на 9600 ваши "FF" и ждёт ответа (индикатор красный). При приходе ответа выдаёт "10" (Reset) и переключается на скорость 1115200 (индикатор светлозелёный). Номер датчика и команду можно выбрать из ранее записанных в выпадающем списке или вписать ручками в поле ввода (по Enter), ответ и в виде бинов и Hex выводится в список строк. (Вообще-то такая работа никому не понравится, надо в цикле опрашивать ваши датчики, а результат выводить на картинку, где каждому назначить линию и по центру допускаемое значение зелёным цветом, выше цвет красный, ниже -- синий. Один взгляд и картина ясна ) |
|||
карма: 19 |
| ||
файлы: 1 | code_36815.txt [12.8KB] [665] |
Ответов: 70
Рейтинг: 0
|
|||
Леонид писал(а): Я принял код, не очень хорошо понимаю его но попробую. Я ближе к 4 или к 5-ти часам смогу только проверить. ------------ Дoбавленo в 09.47: И ещё мы по прежнему с Вами не договорились о цене вопроса. |
|||
карма: 0 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Konoplj2010, полагаю, что коллега andrestudio напишет IC (код) более полно охватывающий процесс (если найдёт время и желание), вот с ним и поговорите
Ещё раз напомню о времени реакции датчиков на команды: дело в том, что порт будет принимать не только информацию от них, но и свои собственные послания, чтобы они не мешались при анализе, их надо удалять из буфера, можно это сделать или нет как раз зависит от времени реакции. |
|||
карма: 19 |
|
Ответов: 70
Рейтинг: 0
|
|||
Леонид писал(а): Датчик отвечает после сигнала RESET с задержкой 15-60 мсек, а длительность его сигнала присутствия примерно 60-240 мсек. Алгоритм и команды я и сам знаю. Если мы пошлём в линию сначала команду RESET и получим сигнал присутствия то датчик имеется и исправен. После этого подаём в линию команду поиска соответствия адреса устройства 0х55 и сразу же следом отправим 0х28 0х82 0х37 0х1E 0x07 0x00 0x00 0x18 (это адрес одного из моих датчиков) то все остальные датчики перестанут слушать что говорит мастер, а именно тот у кого этот адрес станет принимать следующую команду. А затем мы говорим 0х44 то для датчика понятно что нужно преобразовывать текущее значение температуры в цифру. Затем через 750 мсек датчик преобразовал значение температуры и готов её выдать в линию. Мы делаем всё тоже самое кроме последнего 0х44 отсылаем 0хBE что означает сказать датчику чтобы он ответил что у него получилось. Затем принять 2 байта (а вернее 2*8 байт на скорости 115200) эти данные можно понимать как результат замера температуры. Леонид писал(а): Что то не выходит. Как я понимаю сигнал RESET не проходит, то есть я вижу что светодиод Tx моргает но всё это как будто в цикле крутится. http://forum.hiasm.com/xf/attach/share/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%201-Wire.jpg Хотя бы так картинки можно показать. http://forum.hiasm.com/xf/attach/share/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%202%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%201-Wire.jpg http://forum.hiasm.com/xf/attach/share/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%203%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%201-Wire.jpg Вот так будет понятнее. Но это всё на примере только одного датчика. |
|||
карма: 0 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Konoplj2010 писал(а): 1. Передаёт на указанный порт со скоростью 9600 кБ/с значение 0xFF и в случае если устройство ответило (оно должно выдать от 0х10 до 0х90) сообщить |
|||
карма: 19 |
|
Ответов: 70
Рейтинг: 0
|
|||
Леонид писал(а): Так FF это и есть RESET, во всяком случае так описано в изиэлектрониксе. Просто по принципу работы после того как мастер сказал RESET то помощник отвечает сигналом присутствия "от 0х10 до 0х90" это зависит от самого датчика. ------------ Дoбавленo в 07.06: СТОП сбрехал не 0xFF, а 0xF0! А то я сам думаю "как же так 0xFF в линию всегда подаётся, там же резистор на подтяжке висит!". Я извиняюсь я Вас дезинформировал, правильно будит 0xF0, так как 0 это единственный активный уровень. То есть RESET подаётся сигналом 0xF0 на частоте 9600. https://www.maximintegrated.com/en/images/appnotes/214/1189Fig04.gif |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Konoplj2010, установи монитор порта, например этот http://www.serial-port-monitor.com/ сам им пользуюсь
К сожелению переходник не нашёл (на работе только USB->RS485) дома есть но найти не могу Портировал код в IC, можешь попробовать с ним code_36820.txt |
|||
карма: 4 |
| ||
файлы: 1 | code_36820.txt [5.6KB] [608] | ||
Голосовали: | Леонид |
Ответов: 8921
Рейтинг: 823
|
|||
andrestudio, (Давно пора подключиться ) Ой, новый СОМ-порт Сейчас попробую!
|
|||
карма: 19 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Леонид писал(а): Ой, новый СОМ-портА че COMEx не использовали, он же позволяет менять параметры на лету без перезагрузки порта -- точка doSetComState? IC использует все то же самое, что и COMEx, и ничего нового. |
|||
карма: 22 |
|
Ответов: 8921
Рейтинг: 823
|
|||
nesco, он, зараза, строку бьёт, да и кодировку путает
comex_error.jpg |
|||
карма: 19 |
| ||
файлы: 1 | comex_error.jpg [58KB] [821] |
Ответов: 5227
Рейтинг: 587
|
|||
Konoplj2010, попробуй со своим адаптером этой прогой http://arv.radioliga.com/content/view/238/44/ посмотреть серийник
Если нормально считает то лучше использовать этот драйвер OWDriver (там же на сайте лежит) ------------ Дoбавленo в 13.56: кстати у нас на сайте работы уже есть http://forum.hiasm.net/forum.html?q=3&p=264844 http://forum.hiasm.net/forum.html?q=3&p=196073 |
|||
карма: 4 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Konoplj2010, вот, упростил code_36823.txt
Нажать Start, или выбрать команду "10" (F0), индикатор светлозелёный, выбирать или вписывать команды в Edit (по Enter) в нужной последовательности. Принимает-ли датчик более одного байта (каждый из восьми байт 00 и FF), как я нарисовал в ListBox? |
|||
карма: 19 |
| ||
файлы: 1 | code_36823.txt [8.2KB] [762] |
Ответов: 70
Рейтинг: 0
|
|||
Леонид писал(а): вот, упростил code_36823.txthttp://forum.hiasm.com/xf/attach/share/HIAsm%201.jpg Вы так мне и не сказали о цене. |
|||
карма: 0 |
|