CANOPEN драйвер

Rine
Сообщения: 49
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 17 авг 2022, 15:28

Здравствуйте! Да, мы используем Ваш can драйвер. При подаче питания мы видим heartbeat посылку с данными 127, потом в данных 5(operational). Так и должно быть(при подачи питания приходит посылка с данными 127)?

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 18 авг 2022, 11:37

Так и должно быть.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

aeu!
Сообщения: 8
Зарегистрирован: 11 июн 2020, 16:15

Re: CANOPEN драйвер

Сообщение aeu! » 15 мар 2023, 16:46

Добрый день!
Столкнулся с проблемой. В новой партии плат на 1921ВК028 (схема близка к MotorControlBoard3) поставили кварц 16 МГц вместо 12 МГц.
Присвоил OSECLK_VAL соответствующее значение. Все работает, кроме прошивки из UniCON.
При запуске прошивки получаю сообщение "Ошибка получения ответа VERSION. dll недоступна."
На плате, изготовленной в 2020 году по той же документации, но с кварцем 12 МГц прошивка из UniCON идет нормально.

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: CANOPEN драйвер

Сообщение Disona » 20 мар 2023, 10:21

aeu! писал(а):
15 мар 2023, 16:46
Добрый день!
Столкнулся с проблемой. В новой партии плат на 1921ВК028 (схема близка к MotorControlBoard3) поставили кварц 16 МГц вместо 12 МГц.
Присвоил OSECLK_VAL соответствующее значение. Все работает, кроме прошивки из UniCON.
При запуске прошивки получаю сообщение "Ошибка получения ответа VERSION. dll недоступна."
На плате, изготовленной в 2020 году по той же документации, но с кварцем 12 МГц прошивка из UniCON идет нормально.

Добрый день.

Это связано с тем, что при переходе в режим прошивки по CAN, настройки тактирования в контроллере перенастраиваются, и делается это исходя из предположения, что стоит 12 МГц кварц.

Мы постараемся сделать для вас прошивальщик под 16 МГц в ближайшее время.

Не подскажете, какие вы значения делителей для PLL используете, чтобы получить 100 МГц?
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: CANOPEN драйвер

Сообщение Disona » 20 мар 2023, 17:57

aeu! писал(а):
15 мар 2023, 16:46
Добрый день!
Столкнулся с проблемой. В новой партии плат на 1921ВК028 (схема близка к MotorControlBoard3) поставили кварц 16 МГц вместо 12 МГц.
Присвоил OSECLK_VAL соответствующее значение. Все работает, кроме прошивки из UniCON.
При запуске прошивки получаю сообщение "Ошибка получения ответа VERSION. dll недоступна."
На плате, изготовленной в 2020 году по той же документации, но с кварцем 12 МГц прошивка из UniCON идет нормально.
Вот, попробуйте использовать вот этот файл:
X_CANFlashProgDataM4F_1921VK028_16MHz.zip
(17.42 КБ) 248 скачиваний
Вам нужно будет заменить файл "Vsrc/X_CANFlashProgDataM4F_1921VK028.c" на файл из архива.
Единственная проблема, у нас не на чем его проверить, поэтому не могу гарантировать на 100%, что всё получится.
И хорошо, если есть возможность прошить контроллер через JTAG на всякий случай ;)

Ждём обратную связь.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

aeu!
Сообщения: 8
Зарегистрирован: 11 июн 2020, 16:15

Re: CANOPEN драйвер

Сообщение aeu! » 21 мар 2023, 10:48

Добрый день!
Огромное спасибо за помощь! Новый прошивальщик работает на плате с кварцем 16 МГц.

Rine
Сообщения: 49
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 31 май 2023, 14:15

Здравствуйте, сколько используется буферов на отправку и приём в can драйвере на 1921вк01т? Возможна ли такая ситуация - если были запросы на чтение , а контроллер не успел ответить , тк can сеть забита на 100%(буферы на отправку забились, тк ответить нет возможности из-за загрузки can сети) , и вдруг приходит команда стоп, дойдёт ли эта команда, если буферы на отправку все заняты у микроконтроллера

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: CANOPEN драйвер

Сообщение Disona » 31 май 2023, 15:28

Rine писал(а):
31 май 2023, 14:15
Здравствуйте, сколько используется буферов на отправку и приём в can драйвере на 1921вк01т? Возможна ли такая ситуация - если были запросы на чтение , а контроллер не успел ответить , тк can сеть забита на 100%(буферы на отправку забились, тк ответить нет возможности из-за загрузки can сети) , и вдруг приходит команда стоп, дойдёт ли эта команда, если буферы на отправку все заняты у микроконтроллера
Добрый день.

В сети CAN отправка сообщений определяется идентификатором сообщения - чем ниже идентификатор, тем выше приоритет. Сообщение с более высоким приоритетом всегда выиграет арбитраж и будет отправлено первым. В драйвере CANopen есть куча разных сервисов (SDO, PDO, Heartbeat и т.д.). Каждый сервис характеризуется своим диапазоном идентификаторов CAN сообщений и, соответственно, сервисы имеют разные приоритеты. Всего драйвер использует для своих сервисов на отправку и прием 32 мэйлбокса (буфера, применительно к вашему вопросу).

Из вашего вопроса непонятно что за запросы на чтение, что за команда стоп и кем они посылаются. Если речь идет про взаимодействие нашего контроллера с программой UniCON, то это взаимодействие строится на базе сервиса SDO. Этот сервис устроен так, что ответ на запрос всегда имеет больший приоритет, чем приоритет запроса. Поэтому ситуация, когда ответы "копятся" и не отправляются из-за вновь отправляемых запросов на чтение невозможна. Тем не менее, следует учитывать, что сам по себе сервис SDO далеко не самый приоритетный. Если какой-то более приоритетный сервис (например PDO) забивает линию на 100%, то сервис SDO, имея более низкий приоритет, действительно не сможет пробиться - в этом случае и запросы и ответы будут ждать, когда линия освободится. Также не будут функционировать все остальные сервисы, имеющие приоритет ниже, чем у сервиса PDO.

P.S.:
Сама ситуация, что линия CAN загружена на 100% неправильная. Такая линия уже не может считаться линией реального времени, так как не гарантирует доставку сообщений за установленное время. Такую ситуацию лучше не допускать. Нормальным считается загружать линию CAN процентов на 50-60, что гарантирует, что все сообщения (даже имеющие низкий приоритет) будут отправлены. Если загрузка выше, то логично подумать об увеличении скорости обмена.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Rine
Сообщения: 49
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 31 май 2023, 15:52

Я имею ввиду какую ситуацию- блоку приходят запросы от верхнего уровня, ответить он не успевает, буферы заполняются сообщениями на ответ(но отправки нет, тк линия занята), что с приёмом в этой ситуации(может ли контроллер принимать посылки в такой ситуации, если он заполнил буферы на ответ и ждёт когда сеть разгрузится, чтоб отвечать)? Буферы на отправку и приём общие или они разделены?
Или перефразирую так - при заполненных буферах на ответ, сможет ли контроллер читать сообщения в линии , если 32 буфера общие и они заполнены сообщениями на отправку, то пакеты в линии прочитать невозможно, или все же буферы на приём и передачу разделены?

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: CANOPEN драйвер

Сообщение Disona » 31 май 2023, 16:16

Rine писал(а):
31 май 2023, 15:52
Я имею ввиду какую ситуацию- блоку приходят запросы от верхнего уровня, ответить он не успевает, буферы заполняются сообщениями на ответ(но отправки нет, тк линия занята), что с приёмом в этой ситуации(может ли контроллер принимать посылки в такой ситуации, если он заполнил буферы на ответ и ждёт когда сеть разгрузится, чтоб отвечать)? Буферы на отправку и приём общие или они разделены?
Или перефразирую так - при заполненных буферах на ответ, сможет ли контроллер читать сообщения в линии , если 32 буфера общие и они заполнены сообщениями на отправку, то пакеты в линии прочитать невозможно, или все же буферы на приём и передачу разделены?
У нашего драйвера отдельные мэйлбоксы на отправку и прием. Контроллер может принимать посылки, даже если не может на них ответить (но в чем смысл такого кейса нам не ясен).

Чтобы ответить детально нужно больше информации.
Не могли бы вы предоставить больше конкретики?
В рамках какого сервиса верхний уровень шлет запросы (какой идентификатор у CAN сообщений от верхнего уровня)?
Каким образом контроллер отвечает (какой сервис, какой идентификатор)?
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить