Страница 4 из 15

Re: CANOPEN драйвер

Добавлено: 10 июн 2019, 14:25
Rine
drv_status_code [510Bh.02h] не читается без Юникона(верхнего уровня), с чем это может быть связано?

Re: CANOPEN драйвер

Добавлено: 10 июн 2019, 15:14
Rine
Прошу прощения, неверно запрос делал, должно работать

Re: CANOPEN драйвер

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

Re: CANOPEN драйвер

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

По поводу прошивальщика - это наша собственная реализация, она к протоколу CANopen отношения не имеет (хотя и пользуется его объектами). У нас пока нет описания этого протокола "на публику", только внутрннее. Напишите запрос на info@motorcontrol.ru

Re: CANOPEN драйвер

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

Re: CANOPEN драйвер

Добавлено: 27 июн 2019, 16:22
Лашкевич Максим
Достаточно CAN. Смотрите файл X_CANFlashProgStarterM4F.c

Re: CANOPEN драйвер

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

Re: CANOPEN драйвер

Добавлено: 12 июл 2019, 22:21
Лашкевич Максим
Добрый день. Если прием задания идет через PDO, то используйте существующие co_RPDO1_Callback - co_RPDO7_Callback колбеки для отслеживания посылок. Если по SDO, то привяжите свой колбек к нужному параметру через COODEdit по аналогии с callback_dlog, например. Подробнее смотрите документацию на драйвер CANOpen.

Re: CANOPEN драйвер

Добавлено: 13 апр 2021, 14:31
YaroslavVR!
Добрый день.

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

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

Re: CANOPEN драйвер

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

Лучше всего поупражняться с посылками через компьютер - подключиться к сети каким-то USB-CAN переходником и смотреть, что посылает контроллер, правильно ли это, что ему отвечают и отвечают ли. Можно сформировать ответ самому и проверить получение. В переходнике от фирмы марафон утилитой canwise всё это можно.