Как мне кажется, скорости ардуины должно было бы хватить на переброску пакетов в обе стороны. если дописать кусочки кода с учетом пина INT и еще не совсем понятно как в случае если это шлюз я ставлю между двумя блоками как организовать арбитраж..?
Как Вы думаете? Процедура арбитража соблюдается в библиотеке МСР2515 или в библиотеке canhacker?
Арбитраж сделан на уровне железа МСР2515. При отправке сообщения будет ошибка. Вам нужно отлавливать такие ошибки и отправлять сообщение заново.
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Как мне кажется, скорости ардуины должно было бы хватить на переброску пакетов в обе стороны. если дописать кусочки кода с учетом пина INT и еще не совсем понятно как в случае если это шлюз я ставлю между двумя блоками как организовать арбитраж..?
Как Вы думаете? Процедура арбитража соблюдается в библиотеке МСР2515 или в библиотеке canhacker?
Арбитраж сделан на уровне железа МСР2515. При отправке сообщения будет ошибка. Вам нужно отлавливать такие ошибки и отправлять сообщение заново.
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Неверно понимаете. Почитайте документацию по MCP и посмотрите другие примеры. В инете их полно.
Позвольте пояснить что я имею ввиду:
есть блок А.который отправляет сообщение с более высоким приоритетом, одновременно с этим модуль МСР проигрывает арбитраж помечает ошибку.. так сообщение от блока А которое выиграло арбитраж оно куда делось?
Передатчик, проигравший арбитраж, хранит кадр в буфере, пока не сможет его отправить. Сегмент, в котором находится, модуль#1 никак не связан по арбитражу с сегментом, в котором находится модуль #2
есть блок А.который отправляет сообщение с более высоким приоритетом, одновременно с этим модуль МСР проигрывает арбитраж помечает ошибку.. так сообщение от блока А которое выиграло арбитраж оно куда делось?
Ну раз сообщение от блока А выиграло, то оно ушло по назначению.
Вы можете работать только со своими сообщениями которые отправляете !
Режим One-Shot. Режим одиночной передачи (One-Shot mode) гарантирует, что будет осуществлена только одна попытка отправить сообщение. Обычно, если сообщение CAN проиграло арбитраж, или если его передача была уничтожена фреймом ошибки, то сообщение передается повторно. Когда разрешен режим One-Shot, то попытка отправить сообщение будет произведена только 1 раз, независимо от проигрыша арбитража или ошибки фрейма.
Режим One-Shot требуется для того, чтобы поддерживать времена слотов в детерминированных системах, таких как TTCAN.
MaksVV, какая у ТС скорость? - по-моему, у ТС все "тормозит" вовсе не из-за отсутсвия прерываний. просто атмега328 , как мы знаем, даже одну МСР-шку не тянет. где уж ей две осилить
согласен, но вдруг такое небольшое ускорение даст эффект. Вот и хочу посмотреть. Ну и в общем то не тянет только на скоростях CAN 500 и выше. Думаю на 250кбит/с уже должна более менее тянуть.
MaksVV, опробую твой код завтра в течении дня. Спасибо.
Я еще раз, хочу попросить разъяснить мне такой момент:
Та же схема: Блок А - МСР2515(1) - ардуино - МСР2515(2) - Блок В
допустим модуль МСР2515(1) передает сообщение, тут Блок А начинает передавать более важное сообщение. Модуль MCP2515(1) проиграл арбитраж(или Frame error) и сообщение Блоку А осталось в буфере отправки MCP2515(1). А куда делось сообщение Блока А, которое выиграло арбитраж? оно сохранилось в буфере приема MCP2515(1) для дальнейшей отправки Блоку В?
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
потенциально да. Но не рассчитывайте на прерывание, как на панацею. Известно, что на скорости 500 атмега328 не успевает даже просто вычитывать сообщения из буфера, так что справится с ролью ретранслятора шансов у нее мало
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
потенциально да. Но не рассчитывайте на прерывание, как на панацею. Известно, что на скорости 500 атмега328 не успевает даже просто вычитывать сообщения из буфера, так что справится с ролью ретранслятора шансов у нее мало
Принял к сведению. Как вы думаете может это все таки тяжелая библиотека?
У меня есть готовый блок (компактный, с двумя физическими CAN, все необходимое на борту) только контроллер там стоит ST10F269. Рассматриваю замену ардуине в этом "проекте" Кто-нибудь пробовал на нем работать?
...допустим модуль МСР2515(1) передает сообщение, тут Блок А начинает передавать более важное сообщение. Модуль MCP2515(1) проиграл арбитраж(или Frame error) и сообщение Блоку А осталось в буфере отправки MCP2515(1). А куда делось сообщение Блока А, которое выиграло арбитраж? оно сохранилось в буфере приема MCP2515(1) для дальнейшей отправки Блоку В?
Сообщение от блока А никуда не делось. Выигрывая арбитраж, оно просто продолжается передаваться в шину в нормальном режиме, поэтому да, оно поступит на буфер приёма MCP2515(1), ну и в дальнейшем, по вашей задумке, пойдет на отправку блоку В, через ардуино и MCP2515(2).
Тут дело в физике процесса. Есть биты (доминантные). Они перебивают биты рецессивные. На этом и построен арбитраж. Арбитраж ведь происходит побитно. То сообщение, которое выигрывает арбитраж, имеет доминантный бит в данный момент времени. А то, которое проиграло - рецессивный. Проигравший блок узнает это так: Шлет на шину рецессивный бит (ну такой очередной бит сейчас ему пришелся к отправке), и слушает, если рецессивный на шине не установился, значит кто-то в этот момент на шину положил доминантный, всё, я проиграл значит. Отправляемое сообщение откладывается до освобождения шины.
Функции CANBridgeIP Устройство предназначено для соединения устройств работающих по CAN шине на любое расстояние. Используется беспроводное соединение и IP протокол для передачи CAN пакетов любых форматов и скоростей. Данные проверяются при прохождении через CANBridgeIP для исключения искажения информации.
Я сегодня собрал схему на столе. сделал нормальное общее питание для всего снаряжения. И чудо все работает стабильно(с кодом из поста номер 3. правда на столе. Полагаю, что из-за ненадежного питания и наводок модули МСР настраивались неважно...
Машина пока уехала. в реалии не проверить.
MaksVV. Ваш код сохранил, опробую его, если "мой вариант" не пройдет.
Еще хотел спросить у тех, кто знаком с модулем Blue pill stm32.
Все таки для компактности и надежности, хотелось бы иметь встроенный в контроллер CAN.
В каком то источнике было сказано о возможности переназначения ножек порта CAN. Имеется ли возможность прямо в коде(во время исполнения программы), их переназначать? может таким образом получится реализовать DUAL CAN. повесить на них два драйвера шины и пересылать сообщения в обе стороны...
а на столе какой трафик по шине то подавали? в машине трафик CAN гораздо выше, поэтому возможно на столе все работало хорошо
Делал трейсером запись...воспроизведение по кругу работает норм.
в машине конечно еще чего нибудь добавится...буду пробовать. в процессе передачи на канхакере загорается ошибка (красный диод) если выборочно слать сообщение то все норм горит зеленый.
Но еще раз подчеркну, что сейчас работает стабильно. и не тормозит.
Вы по вопросу ST10 не сильны, случаем?
Имеется ли возможность прямо в коде(во время исполнения программы), их переназначать? может таким образом получится реализовать DUAL CAN. повесить на них два драйвера шины и пересылать сообщения в обе стороны...
переназначать можно, но дуал-контроллер так не сделать. Каждое переназначение - это новая переинициализация стека, ни о какой скорости приема в этом случае говорить нет смысла.
Если у вас в основном шлюз принимает данные с одного КАН и передает на другой - можно принимающую часть, как более критичную - реализовать на внутреннем контроллере, а передающую - на внешнем
С Ардуино недавно познакомился, цель такая: я отправляю диагностический запрос, и пытаюсь отловить ответ, вот что у меня получилось, сильно не пинайте)
как верно подметил коллега, зачем так часто слать запросы? так можно всю шину задосить. шлите запросы ну раз в секунду, например. Это раз. Во-вторых, вы не инициализировали Serial, так ничего туда печататься не будет. Также внимательнее - скорости Serial в скетче и мониторе порта должны совпадать.
В случае всё равно неудачи можно все сообщения в монитор порта распечатать, чтобы понять вообще что-нибудь ловит ваш МК или нет. (для этого раскомментировать строку 36)
как верно подметил коллега, зачем так часто слать запросы? так можно всю шину задосить. шлите запросы ну раз в секунду, например. Это раз. Во-вторых, вы не инициализировали Serial, так ничего туда печататься не будет. Также внимательнее - скорости Serial в скетче и мониторе порта должны совпадать.
В случае всё равно неудачи можно все сообщения в монитор порта распечатать, чтобы понять вообще что-нибудь ловит ваш МК или нет. (для этого раскомментировать строку 36)
Привет. Собрал схему на uno. Подключаю напрямую к диагностическому сканеру шину. Скорость 500, кристал 8. Скеч can read в мониторе порта отображает как положено запросы от сканера. Заливаю код под канхакер. Скорости порта и указанная в канхакере совпадают. Подключается кан хакер к сборке без проблем. Но при всем этом, канхакер ничего не отображает... Не принемает... При этом в кан шине осциллографом видны фреймы... Почему софтина может не видеть поток из порта?
На кан хакере установить скорость в два раза ниже и два раза выше. Если заработало - библиотеку не ту взяли
Если речь о кварце, в библиотеке задано 8мгц. Скорость задается самой программой кан-хакер в настройках. Так же?
да в настройках. Я имел ввиду не скорость ком порта (это понятно, что в скетче и настройках кан хакера они должны быть одинаковые), а скороcть "CAN baudrate". также убрать галку listen only если стоит. У меня вроде было, что с этой галкой не работало.
В файле usb_cdc.ino SPI_CS_PIN и INT_PIN правильно указали?
Попробуйте раскомментировать код под uncomment that lines for Leonardo, Pro Micro or Esplora
попробую. Спасибо. Пины заданы верно. Чтение и вывод в ком порт пакетов работает. А вот сама прога канхакер не хочет отображать их. Как то можно дебажить, что в порте происходит во время работы приложения? Дебаг режим нигде в опциях не нашел. Т.е.подозреваю, что косяк какой то работе протокола, по которому софтинка общается с ардуинкой
На кан хакере установить скорость в два раза ниже и два раза выше. Если заработало - библиотеку не ту взяли
Если речь о кварце, в библиотеке задано 8мгц. Скорость задается самой программой кан-хакер в настройках. Так же?
да в настройках. Я имел ввиду не скорость ком порта (это понятно, что в скетче и настройках кан хакера они должны быть одинаковые), а скороcть "CAN baudrate". также убрать галку listen only если стоит. У меня вроде было, что с этой галкой не работало.
понял. Сейчас буду дальше "страдать"... ) но вроде пробовал и так
Все, всем спасибо!!! Ничего не понял, почему вчера не получалось... Сейчас, ничего не меняя, попробовал повторно - пакеты канхакер ловить начал. Супер...
В режиме "только слушать" ардуинка в ком порт ничего не отдает... косяк в библиотеке "кан хакера" где-то. так же при определенных условиях ардуинка прекращает вывод в ком порт... при переподключении из буфера вываливаются ранее "пойманные" пакеты...
Подскажите ,пожалуйста,есть скетч,в котором сначала идет два запроса по кану,а потом считывание 2 ответов.
Все отлично работает,за исключением того,что при отключении от сети кана(тест на обрыв проводов),он запоминает последние значения,а хотелось бы,чтобы писал ошибку.
Каким образом можно проверять наличие соединения кан?
Пробовал через if(CAN0_Message_available) но сообщения постоянно доступны
Спасибо, vadiks!
Как мне кажется, скорости ардуины должно было бы хватить на переброску пакетов в обе стороны. если дописать кусочки кода с учетом пина INT и еще не совсем понятно как в случае если это шлюз я ставлю между двумя блоками как организовать арбитраж..?
Как Вы думаете? Процедура арбитража соблюдается в библиотеке МСР2515 или в библиотеке canhacker?
Арбитраж сделан на уровне железа МСР2515. При отправке сообщения будет ошибка. Вам нужно отлавливать такие ошибки и отправлять сообщение заново.
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Спасибо, vadiks!
Как мне кажется, скорости ардуины должно было бы хватить на переброску пакетов в обе стороны. если дописать кусочки кода с учетом пина INT и еще не совсем понятно как в случае если это шлюз я ставлю между двумя блоками как организовать арбитраж..?
Как Вы думаете? Процедура арбитража соблюдается в библиотеке МСР2515 или в библиотеке canhacker?
Арбитраж сделан на уровне железа МСР2515. При отправке сообщения будет ошибка. Вам нужно отлавливать такие ошибки и отправлять сообщение заново.
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Всё понятно: "что-то где-то теряет пакеты, найдите за меня проблему". Здесь это не работает.
Ваш Ник за себя все говорит... Я прошу помощи подсказать мне то что я не понимаю
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Неверно понимаете. Почитайте документацию по MCP и посмотрите другие примеры. В инете их полно.
Понятно. а сообщение которое выиграло арбитраж. оно сохраняется в приемном буфере МСР? его же нужно передать дальше...
Неверно понимаете. Почитайте документацию по MCP и посмотрите другие примеры. В инете их полно.
Позвольте пояснить что я имею ввиду:
есть блок А.который отправляет сообщение с более высоким приоритетом, одновременно с этим модуль МСР проигрывает арбитраж помечает ошибку.. так сообщение от блока А которое выиграло арбитраж оно куда делось?
схема такая : Модуль А - МСР2515 - ардуино - МСР2515 - Модуль В
vadiks, спасибо.
Передатчик, проигравший арбитраж, хранит кадр в буфере, пока не сможет его отправить. Сегмент, в котором находится, модуль#1 никак не связан по арбитражу с сегментом, в котором находится модуль #2
Позвольте пояснить что я имею ввиду:
есть блок А.который отправляет сообщение с более высоким приоритетом, одновременно с этим модуль МСР проигрывает арбитраж помечает ошибку.. так сообщение от блока А которое выиграло арбитраж оно куда делось?
Ну раз сообщение от блока А выиграло, то оно ушло по назначению.
Вы можете работать только со своими сообщениями которые отправляете !
Для информации
Режим One-Shot. Режим одиночной передачи (One-Shot mode) гарантирует, что будет осуществлена только одна попытка отправить сообщение. Обычно, если сообщение CAN проиграло арбитраж, или если его передача была уничтожена фреймом ошибки, то сообщение передается повторно. Когда разрешен режим One-Shot, то попытка отправить сообщение будет произведена только 1 раз, независимо от проигрыша арбитража или ошибки фрейма.
Режим One-Shot требуется для того, чтобы поддерживать времена слотов в детерминированных системах, таких как TTCAN.
Пробуем такой скетч. библиотека другая, тынц . INT одной mcp2515 цепляем на пин 2, другой - на пин 3. CS ки тоже не путаем.
MaksVV, какая у ТС скорость? - по-моему, у ТС все "тормозит" вовсе не из-за отсутсвия прерываний. просто атмега328 , как мы знаем, даже одну МСР-шку не тянет. где уж ей две осилить
согласен, но вдруг такое небольшое ускорение даст эффект. Вот и хочу посмотреть. Ну и в общем то не тянет только на скоростях CAN 500 и выше. Думаю на 250кбит/с уже должна более менее тянуть.
MaksVV, опробую твой код завтра в течении дня. Спасибо.
Я еще раз, хочу попросить разъяснить мне такой момент:
Та же схема: Блок А - МСР2515(1) - ардуино - МСР2515(2) - Блок В
допустим модуль МСР2515(1) передает сообщение, тут Блок А начинает передавать более важное сообщение. Модуль MCP2515(1) проиграл арбитраж(или Frame error) и сообщение Блоку А осталось в буфере отправки MCP2515(1). А куда делось сообщение Блока А, которое выиграло арбитраж? оно сохранилось в буфере приема MCP2515(1) для дальнейшей отправки Блоку В?
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
потенциально да. Но не рассчитывайте на прерывание, как на панацею. Известно, что на скорости 500 атмега328 не успевает даже просто вычитывать сообщения из буфера, так что справится с ролью ретранслятора шансов у нее мало
П.С. Мне кажется наличие прерывания должно повысить точность передачи...
потенциально да. Но не рассчитывайте на прерывание, как на панацею. Известно, что на скорости 500 атмега328 не успевает даже просто вычитывать сообщения из буфера, так что справится с ролью ретранслятора шансов у нее мало
Принял к сведению. Как вы думаете может это все таки тяжелая библиотека?
У меня есть готовый блок (компактный, с двумя физическими CAN, все необходимое на борту) только контроллер там стоит ST10F269. Рассматриваю замену ардуине в этом "проекте" Кто-нибудь пробовал на нем работать?
Сообщение от блока А никуда не делось. Выигрывая арбитраж, оно просто продолжается передаваться в шину в нормальном режиме, поэтому да, оно поступит на буфер приёма MCP2515(1), ну и в дальнейшем, по вашей задумке, пойдет на отправку блоку В, через ардуино и MCP2515(2).
Тут дело в физике процесса. Есть биты (доминантные). Они перебивают биты рецессивные. На этом и построен арбитраж. Арбитраж ведь происходит побитно. То сообщение, которое выигрывает арбитраж, имеет доминантный бит в данный момент времени. А то, которое проиграло - рецессивный. Проигравший блок узнает это так: Шлет на шину рецессивный бит (ну такой очередной бит сейчас ему пришелся к отправке), и слушает, если рецессивный на шине не установился, значит кто-то в этот момент на шину положил доминантный, всё, я проиграл значит. Отправляемое сообщение откладывается до освобождения шины.
https://youtu.be/Ag4BDehOAc0
Функции CANBridgeIP Устройство предназначено для соединения устройств работающих по CAN шине на любое расстояние. Используется беспроводное соединение и IP протокол для передачи CAN пакетов любых форматов и скоростей. Данные проверяются при прохождении через CANBridgeIP для исключения искажения информации.
Прошивка https://drive.google.com/file/d/1wmG8NzFNeAYMBSDWBUw6VqBUCHqZHQXO/view?usp=sharing
Я сегодня собрал схему на столе. сделал нормальное общее питание для всего снаряжения. И чудо все работает стабильно(с кодом из поста номер 3. правда на столе. Полагаю, что из-за ненадежного питания и наводок модули МСР настраивались неважно...
Машина пока уехала. в реалии не проверить.
MaksVV. Ваш код сохранил, опробую его, если "мой вариант" не пройдет.
Еще хотел спросить у тех, кто знаком с модулем Blue pill stm32.
Все таки для компактности и надежности, хотелось бы иметь встроенный в контроллер CAN.
В каком то источнике было сказано о возможности переназначения ножек порта CAN. Имеется ли возможность прямо в коде(во время исполнения программы), их переназначать? может таким образом получится реализовать DUAL CAN. повесить на них два драйвера шины и пересылать сообщения в обе стороны...
а на столе какой трафик по шине то подавали? в машине трафик CAN гораздо выше, поэтому возможно на столе все работало хорошо
"настраивались неважно"? Это что-то новенькое.
а на столе какой трафик по шине то подавали? в машине трафик CAN гораздо выше, поэтому возможно на столе все работало хорошо
Делал трейсером запись...воспроизведение по кругу работает норм.
в машине конечно еще чего нибудь добавится...буду пробовать. в процессе передачи на канхакере загорается ошибка (красный диод) если выборочно слать сообщение то все норм горит зеленый.
Но еще раз подчеркну, что сейчас работает стабильно. и не тормозит.
Вы по вопросу ST10 не сильны, случаем?
"настраивались неважно"? Это что-то новенькое.
Ааа..И Вы здесь? )
sadman41
Может быть Вы поможете мне пристроить мою платку в этот проект?
Имеется ли возможность прямо в коде(во время исполнения программы), их переназначать? может таким образом получится реализовать DUAL CAN. повесить на них два драйвера шины и пересылать сообщения в обе стороны...
переназначать можно, но дуал-контроллер так не сделать. Каждое переназначение - это новая переинициализация стека, ни о какой скорости приема в этом случае говорить нет смысла.
Если у вас в основном шлюз принимает данные с одного КАН и передает на другой - можно принимающую часть, как более критичную - реализовать на внутреннем контроллере, а передающую - на внешнем
Ребят, доброго времени суток всем!
С Ардуино недавно познакомился, цель такая: я отправляю диагностический запрос, и пытаюсь отловить ответ, вот что у меня получилось, сильно не пинайте)
В примере, смотрим поднят ручник или нет.
Когда отправляю запрос кан хакером, то все гуд, в ответ прилетает нужное сообщение с ИД 0x77E.
Если пробую так как в коде, в ответ либо вообще не валится сообщения с ИД 0x77E, либо что-то левое, подозреваю, что дело в моей криворукости)
Прошу помочь, заранее спасибо!)
проверьте поля отсылаемого запроса - точно там все верно? Что-то код запроса 0x714 при ответе 0x77E кажется мне ошибкой.
если все верно - попробуйте поставить задержку побольше. Вы же в коде бомбардируете шину запросами 200 раз в секунду, не слушая ответов
MCP2515 только одна)
MCP2515 только одна)
Купите вторую. Не такая она и дорогая ))
А вопросов снимет кучу. И мы не будем гадать на кофейной гуще.
MCP2515 только одна)
Купите вторую. Не такая она и дорогая ))
А вопросов снимет кучу. И мы не будем гадать на кофейной гуще.
В свободной продаже их нет, заказал в Китае, жду, неизвестно когда приедет)
как верно подметил коллега, зачем так часто слать запросы? так можно всю шину задосить. шлите запросы ну раз в секунду, например. Это раз. Во-вторых, вы не инициализировали Serial, так ничего туда печататься не будет. Также внимательнее - скорости Serial в скетче и мониторе порта должны совпадать.
В случае всё равно неудачи можно все сообщения в монитор порта распечатать, чтобы понять вообще что-нибудь ловит ваш МК или нет. (для этого раскомментировать строку 36)
как верно подметил коллега, зачем так часто слать запросы? так можно всю шину задосить. шлите запросы ну раз в секунду, например. Это раз. Во-вторых, вы не инициализировали Serial, так ничего туда печататься не будет. Также внимательнее - скорости Serial в скетче и мониторе порта должны совпадать.
В случае всё равно неудачи можно все сообщения в монитор порта распечатать, чтобы понять вообще что-нибудь ловит ваш МК или нет. (для этого раскомментировать строку 36)
Спасибо огромное! Сегодня испробую, а что имелось в виду под инициализацией Serial?
Serial.begin(9600); ?
Заранее спасибо!
Serial.begin(9600); ?
да
Привет. Собрал схему на uno. Подключаю напрямую к диагностическому сканеру шину. Скорость 500, кристал 8. Скеч can read в мониторе порта отображает как положено запросы от сканера. Заливаю код под канхакер. Скорости порта и указанная в канхакере совпадают. Подключается кан хакер к сборке без проблем. Но при всем этом, канхакер ничего не отображает... Не принемает... При этом в кан шине осциллографом видны фреймы... Почему софтина может не видеть поток из порта?
На кан хакере установить скорость в два раза ниже и два раза выше. Если заработало - библиотеку не ту взяли
Если речь о кварце, в библиотеке задано 8мгц. Скорость задается самой программой кан-хакер в настройках. Так же?
да в настройках. Я имел ввиду не скорость ком порта (это понятно, что в скетче и настройках кан хакера они должны быть одинаковые), а скороcть "CAN baudrate". также убрать галку listen only если стоит. У меня вроде было, что с этой галкой не работало.
попробую. Спасибо. Пины заданы верно. Чтение и вывод в ком порт пакетов работает. А вот сама прога канхакер не хочет отображать их. Как то можно дебажить, что в порте происходит во время работы приложения? Дебаг режим нигде в опциях не нашел. Т.е.подозреваю, что косяк какой то работе протокола, по которому софтинка общается с ардуинкой
да в настройках. Я имел ввиду не скорость ком порта (это понятно, что в скетче и настройках кан хакера они должны быть одинаковые), а скороcть "CAN baudrate". также убрать галку listen only если стоит. У меня вроде было, что с этой галкой не работало.
понял. Сейчас буду дальше "страдать"... ) но вроде пробовал и так
Какой номер COM порта в системе?
Если больше 4-го, поменяйте номер.
3й
Посмотрите обмен канхакера с ардуиной каким нибудь монитором COM порта.
Все, всем спасибо!!! Ничего не понял, почему вчера не получалось... Сейчас, ничего не меняя, попробовал повторно - пакеты канхакер ловить начал. Супер...
также убрать галку listen only если стоит. У меня вроде было, что с этой галкой не работало.
Проверил, именно так. Не хочет слушать, если эта опция включена. Ошибка в протоколе где-то походу...
В режиме "только слушать" ардуинка в ком порт ничего не отдает... косяк в библиотеке "кан хакера" где-то. так же при определенных условиях ардуинка прекращает вывод в ком порт... при переподключении из буфера вываливаются ранее "пойманные" пакеты...
Добрый день
Подскажите ,пожалуйста,есть скетч,в котором сначала идет два запроса по кану,а потом считывание 2 ответов.
Все отлично работает,за исключением того,что при отключении от сети кана(тест на обрыв проводов),он запоминает последние значения,а хотелось бы,чтобы писал ошибку.
Каким образом можно проверять наличие соединения кан?
Пробовал через
if
(CAN0_Message_available) но сообщения постоянно доступны
Может есть еще какие-то методы проверки?
Есть методы. Три раза пульнуть посылку и получить "Все буфера заняты".