Быстрей всего так for (n = 0; n < 8; n++), это тоже самоеstapmoff писал(а):Всему виной была вот эта строчкаfor (n = 0; n <= 7; n++) // рассчитываем crc8
тут была 8
Прием данных по UART
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Прием данных по UART
Win10-64, FLProg (portable)
Прием данных по UART
Даrw6cm писал(а):У вас есть пакет который должен проходить, (правильный)?
Добавлено (13.07.2017, 12:42)
---------------------------------------------
Только что написали их компании кто придумал этот протокол. Подтвердили что не правильно считается контрольная сумма, но а как тогда при приеме запроса мой слэйф правильно читает сумму, вот загадка
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось stapmoff 13 июл 2017, 12:43, всего редактировалось 1 раз.
Прием данных по UART
Вот правильные пакеты
блин повторно скинул
Добавлено (13.07.2017, 12:52)
---------------------------------------------
Странно, сейчас принудительно вписал ему правильную контрольную сумму и все равно мастер не видит. Или так не прокатит))
блин повторно скинул
Добавлено (13.07.2017, 12:52)
---------------------------------------------
Странно, сейчас принудительно вписал ему правильную контрольную сумму и все равно мастер не видит. Или так не прокатит))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось stapmoff 13 июл 2017, 12:45, всего редактировалось 1 раз.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Прием данных по UART
Все верно, это алгоритмstapmoff писал(а):Вот правильные пакеты
CRC-8/MAXIM
Нужен правильный сдвиг регистров, из его данных:
Check = 0xA1, Poly = 0x31, Init = 0x00, RefIn = true, RefOut = true, XorOut = 0x00.
Честно сказать для меня пока это "вынос мозга" (на понимание трачу уйму времени)
Думаю нужна "подсказка зала" или "звонок другу" ))
Последний раз редактировалось rw6cm 14 июл 2017, 06:21, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
Прием данных по UART
Да, так точно именно он.rw6cm писал(а):Все верно, это алгоритмCRC-8/MAXIM
Добавлено (14.07.2017, 07:31)
---------------------------------------------
Добился правильного расчета суммы, ошибка была в расстановке байт. Поменял местами и вуаля, но все равно мастер не видит слэйф))))
Последний раз редактировалось stapmoff 14 июл 2017, 07:31, всего редактировалось 1 раз.
Прием данных по UART
Может теперь дело в интервалах передачи?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Прием данных по UART
какая хорошая инфа, почему бы ее в начале темы не выложить, кучу время экономили бы ))Dev1 писал(а):Описание протокола обмена
Похоже здесь с типом данных не увязка. byte -> hex -> stringDev1 писал(а):Может теперь дело в интервалах передачи?
Понимает ли он,
может все это одним блоком с одним типом, чтоб не путаться.
В символьном режиме, по описанию, вообще по другому все.
Последний раз редактировалось rw6cm 14 июл 2017, 09:45, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
Прием данных по UART
поддерживаю. я тож самое писалrw6cm писал(а):Похоже здесь с типом данных не увязка.
- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Прием данных по UART
Это к автору, описать протокол нужно было с самого началаrw6cm писал(а):какая хорошая инфа, почему бы ее в начале темы не выложить, кучу время экономили бы ))
Не я писалrw6cm писал(а):Цитата Dev1 ()Может теперь дело в интервалах передачи?
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

Прием данных по UART
В символьном режиме работать не будет, так как мастер шлет команду 06h, а это значит однократная выдача данных в hex. Я тоже подумываю о том, что посылка скорее всего должна быть разбита по байтно, а не строкой. Только вот как это сделать пока ума не приложу?
Добавлено (14.07.2017, 10:21)
---------------------------------------------
Может сделать у блока 9 выходов типа байт? Или лучше саму отправку в юарт сделать в самом блоке?
Добавлено (14.07.2017, 10:30)
---------------------------------------------
Ну короче узнал я у разработчиков протокола. Сказали отправка должна быть по байтно.
Добавлено (14.07.2017, 10:21)
---------------------------------------------
Может сделать у блока 9 выходов типа байт? Или лучше саму отправку в юарт сделать в самом блоке?
Добавлено (14.07.2017, 10:30)
---------------------------------------------
Ну короче узнал я у разработчиков протокола. Сказали отправка должна быть по байтно.
- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Прием данных по UART
Описание протокола обменаПротокол поддерживает два типа протокола обмена: в бинарном (HEX) виде и в символьном виде
(передачей ASCII-последовательностей). Для работы рекомендуется использовать бинарный
протокол обмена.
После подачи питания на датчик уровня топлива Omnicomm LLS и перед подачей первой команды
запроса необходимо выждать время не менее 100 мс.
При работе с датчиками Omnicomm LLS, находящимися в режиме slave, после отправки команды
запроса необходимо дождаться ответа от датчика. Время задержки ответа зависит от скорости
обмена и типа протокола обмена (не более 100 мс).
Данные, между датчиком и внешним устройством передаются в виде сообщений, передающихся
пакетами байт. Передача каждого байта начинается СТАРТ битом, а завершается СТОП
битом (Рисунок 1). Данные передаются младшим байтом вперёд.
Интервал между последующими байтами в пакете (Тт) должен быть меньше длительности
передачи 35 бит или меньше 1 мс (если 35/скорость<1 мс).
Тбайт – время передачи одного байта информации;
Тт – интервал между последовательными байтами в пакете.
Окончанием пакета байт считается, если последующий байт не приходит в течение времени (Тп),
превышающего максимальный интервал (Тт) + 1 мс.
(передачей ASCII-последовательностей). Для работы рекомендуется использовать бинарный
протокол обмена.
После подачи питания на датчик уровня топлива Omnicomm LLS и перед подачей первой команды
запроса необходимо выждать время не менее 100 мс.
При работе с датчиками Omnicomm LLS, находящимися в режиме slave, после отправки команды
запроса необходимо дождаться ответа от датчика. Время задержки ответа зависит от скорости
обмена и типа протокола обмена (не более 100 мс).
Данные, между датчиком и внешним устройством передаются в виде сообщений, передающихся
пакетами байт. Передача каждого байта начинается СТАРТ битом, а завершается СТОП
битом (Рисунок 1). Данные передаются младшим байтом вперёд.
Интервал между последующими байтами в пакете (Тт) должен быть меньше длительности
передачи 35 бит или меньше 1 мс (если 35/скорость<1 мс).
Тбайт – время передачи одного байта информации;
Тт – интервал между последовательными байтами в пакете.
Окончанием пакета байт считается, если последующий байт не приходит в течение времени (Тп),
превышающего максимальный интервал (Тт) + 1 мс.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Прием данных по UART
Это укоз кривой, который раз замечаю, цитирую одного а ник лепит другого ))Dev1 писал(а):Не я писал
Думаю наилучший вариант.stapmoff писал(а):Или лучше саму отправку в юарт сделать в самом блоке?
Win10-64, FLProg (portable)
Прием данных по UART
rw6cm, поможете реализовать?
Добавлено (14.07.2017, 14:55)
---------------------------------------------
Заработало УРА! Дело еще было в мах485, вернее перепутал пины на разрешение приема и передачи. Всем спасибо за подсказки, всего вам доброго!
Добавлено (14.07.2017, 14:55)
---------------------------------------------
Заработало УРА! Дело еще было в мах485, вернее перепутал пины на разрешение приема и передачи. Всем спасибо за подсказки, всего вам доброго!
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Прием данных по UART
Последний раз редактировалось rw6cm 14 июл 2017, 15:04, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
Прием данных по UART
Последний раз редактировалось pan 14 июл 2017, 15:01, всего редактировалось 1 раз.
Прием данных по UART
Как понимать ваш смайл?
Добавлено (14.07.2017, 20:18)
---------------------------------------------
pan, А?
Добавлено (14.07.2017, 20:18)
---------------------------------------------
pan, А?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя