CANOPEN драйвер

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

Re: CANOPEN драйвер

Сообщение Rine » 10 июн 2019, 14:25

drv_status_code [510Bh.02h] не читается без Юникона(верхнего уровня), с чем это может быть связано?

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

Re: CANOPEN драйвер

Сообщение Rine » 10 июн 2019, 15:14

Прошу прощения, неверно запрос делал, должно работать

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

Re: CANOPEN драйвер

Сообщение Rine » 14 июн 2019, 15:19

Добрый день! В штатной реализации can open используется не расширенное id(и где можно поменять на расширенное)?
И второй вопрос, -
У нас есть система верхнего уровня, общающаяся с МК по can, мы хотим воспользоваться встроенным бутлоадером. Не могли бы Вы предоставить описание или протокол, как осуществить прошивку, используя свое ПО верхнего уровня по протоколу can

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 14 июн 2019, 18:39

Добрый день. Про расширенный ID не понял. Штатно в CANOpen 11 бит идентификатор. Юникон умеет слать 29 бит (который ведомыми устройствами принимается как 11 бит) чтобы исключить конфликты на линии на случай работы двух юниконов в сети. Настраивается это галочкой в настройках модуля связи в юниконе. Никакой полезной нагрузки в 29 идентификаторе нет.

По поводу прошивальщика - это наша собственная реализация, она к протоколу CANopen отношения не имеет (хотя и пользуется его объектами). У нас пока нет описания этого протокола "на публику", только внутрннее. Напишите запрос на info@motorcontrol.ru
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

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

Re: CANOPEN драйвер

Сообщение Rine » 27 июн 2019, 11:39

А в bootloader я могу уйти программно, или мне придется делать внешний сброс процессора? Сформулирую так, - Нужно ли на аппаратном уровне что-то добавлять в схему или достаточно can, чтоб поменять прошивку

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 27 июн 2019, 16:22

Достаточно CAN. Смотрите файл X_CANFlashProgStarterM4F.c
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

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

Re: CANOPEN драйвер

Сообщение Rine » 12 июл 2019, 12:07

Добрый день! Допустим мне приходит задание на частоту вращения(задание может длительное время приходить одно и тоже), как мне лучше организовать защиту такого рода, что если задание не приходит больше чем 2 секунды обнулить этот параметр

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 12 июл 2019, 22:21

Добрый день. Если прием задания идет через PDO, то используйте существующие co_RPDO1_Callback - co_RPDO7_Callback колбеки для отслеживания посылок. Если по SDO, то привяжите свой колбек к нужному параметру через COODEdit по аналогии с callback_dlog, например. Подробнее смотрите документацию на драйвер CANOpen.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

YaroslavVR!
Сообщения: 9
Зарегистрирован: 04 мар 2021, 15:06

Re: CANOPEN драйвер

Сообщение YaroslavVR! » 13 апр 2021, 14:31

Добрый день.

Я хочу реализовать SDO-клиент на микроконтроллере для управления энкодером, чтобы можно было проверить его настройки и при необходимости их подправить. Но по умолчанию в энкодере отключен Hearbeat. Как правильно проверить то, что он подключен к шине?

Как я понял, нужно посылать SDO-запросы функцией co_SDOrequestRead, и ждать успешного ответа. Но я не могу найти, где настроить время ожидания ответа, точнее время, через которое в co_SDOrequestStatus появится ошибка 0xFF.

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 13 апр 2021, 18:44

Насколько я прочитал код драйвера, таймаута нет. Драйвер будет ждать ответа вечно, пока другой запрос его не перетрёт. Но я могу ошибиться, программист драйвера сейчас в командировке.
В co_SDOrequestStatus в младших битах выставляется 0xFF сразу же при отправке запроса, таймаута нет, а вот когда приходит ответ, то статус переписывается с учётом того, что пришло из сети.

Лучше всего поупражняться с посылками через компьютер - подключиться к сети каким-то USB-CAN переходником и смотреть, что посылает контроллер, правильно ли это, что ему отвечают и отвечают ли. Можно сформировать ответ самому и проверить получение. В переходнике от фирмы марафон утилитой canwise всё это можно.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить