Коллеги, предлагаю дискутировать , не переходя на личности. Уважайте друг друга. Читать такие вещи противно если честно. Взрослые ведь уже. Мы тут письками не мереемся, мы пытаемся сеть построить.
Коллеги, предлагаю дискутировать , не переходя на личности. Уважайте друг друга. Читать такие вещи противно если честно. Взрослые ведь уже. Мы тут письками не мереемся, мы пытаемся сеть построить.
(Так тут я сбредил, здесь пишут про ресет на 17 ноге и выводе на INT)
19 нога не задействована я уже почти пришел к тому чтобы через 10кОм на 19 ногу GPIO от ардуино подпаять и держать там HIGH для ресета дать LOW на 10-20 мс
автосброс по этой схеме используется для того чтобы он происходил автомаически один раз при подаче питания (требование даташита MCP2515 делать сброс после подачи питания), но нам это не нужно, т.к. мы с ардуины делаем сброс при помощи SPI.
Вообще сброс по SPI эквивалентен, я так понял, сбросу по пину Reset. Вот выдержка из текста описания MCP2515
MCP2515 различает два способа сброса:
1. Hardware Reset (аппаратный сброс) - низким уровнем на выводе /RESET.
2. SPI Reset - подачей команды Reset через SPI.
Функционал обоих видов сброса эквивалентен. Важно осуществить один из этих способов сброса после включения питания, чтобы гарантировать переход логики и регистров в свое состояние по умолчанию.
Я научился делать фильтры правильно. Маске 0 соответсвуют фильтры 0 и 1. Маске 1 соответствуют фильтры 2,3,4,5. Так вот нужно задавать все маски и фильтры, иначе MCP воспринимает маску и фильтр как 0, что не правильно.
Но, т.к. у нас один из фильтров на второй разряд ID равен 00 (шириоковещательные), то в целом будут пролетать ID вообще со всеми нулями, что нам не нужно. Тут два выхода:
- Сделать широковещательные 0xFF (будет проблем с enum, т.к. выходит за пределы)
- устанавливать брошенный нами бит direction в 1 на ВСЕХ используемыми нами сообщениях, таким образом, наши сообщения никогда не будут с ID равном полностью 0 - считаю наилучший вариант.
если мы так сделаем, то аппаратно не будут проходить большие ID 0х00000000 и маленькие 0х000. Думаю это даст шанс на исправление косяков.
(Так тут я сбредил, здесь пишут про ресет на 17 ноге и выводе на INT)
19 нога не задействована я уже почти пришел к тому чтобы через 10кОм на 19 ногу GPIO от ардуино подпаять и держать там HIGH для ресета дать LOW на 10-20 мс
(Нужно схему смотреть с платы, вешером посмотрю)
бывают два корпуса MCP2515 - 20 ногий TSSOP и 18 ногий PDIP/SOIC.
У нас 18 ногий PDIP/SOIC. Поэтому пин reset у нас 17 нога. У 20 ногого TSSOP reset, всё правильно, 19 нога. Надеюсь до этого гемора с хард ресетом не дойдет.
ЗЫ есть ещё корпус 20 ногий 4x4 QFN* у него reset тоже 17 нога.
пока вот 11 версия. Теперь аппаратно не просачиваются 0х00000000 и 0х000. Поставил в нашем скетче в отправляемом фрейме в заголовке бит direction везде "1" (надеюсь везде исправил).
И судя по схеме через R3 на 17 ногу всегда подается +5. Знаешь номинал R3?
дак конечно, это потяжка к питанию, чтобы помехи не влияли, а то бы так постоянно спонтанно перезагружался MCP2515. Я думаю кОм 10 он. Да, всё верно, щас проверил 10кОм. (маркирвка резистора 103)
вот инфа из описания MCP2515 как детектируются ошибки в MCP2515
[Детектирование ошибок]
Протокол CAN предоставляет изощренные механизмы определения наличия ошибок. Можно детектировать следующие ошибки.
CRC Error. Проверка контрольной суммы (Cyclic Redundancy Check, CRC): передатчик вычисляет специальные проверочные биты для данных начиная от SOF и заканчивая полем данных. Последовательность бит CRC передается в поле CRC фрейма. Принимающий узел также вычисляет последовательность бит CRC по той же самой формуле, что и передатчик, и сравнивает вычисленную CRC с принятой. Если обнаружено несовпадение, то произошла ошибка CRC, и тогда генерируется фрейм ошибки. Передача сообщения повторяется.
Acknowledge Error. В поле подтверждения сообщения передатчик проверяет, находится ли там доминантный бит (доминантный бит должен быть установлен приемником сообщения, тогда как передатчик посылает этот бит как рецессивный). Если в поле подтверждения отсутствует доминантный бит, то значит противоположный узел не принял корректно фрейм. Как следствие возникает ошибка подтверждения (acknowledge error), генерируется фрейм ошибки и передача сообщения повторяется.
Form Error. Если узел детектирует доминантный бит в одном из 4 сегментов, где его не должно быть - включая конец фрейма end-of-frame (EOF), промежуток между фреймами interframe space (IFS), разделитель подтверждения (acknowledge delimiter) или разделитель CRC, то тогда возникает ошибка формы, и генерируется ошибка фрейма. Передача сообщения повторяется.
Bit Error. Ошибка бита возникает, если передатчик детектирует противоположный уровень бита, не соответствующий тому, который был послан (например, передавался доминантный бит, но был детектирован рецессивный, или был передан рецессивный бит, но на шине вместо него был обнаружен доминантный бит).
Исключение имеется только для поля арбитража и слота подтверждения: если передатчик посылает рецессивный бит, и детектирует доминантный, то не генерируется ошибка бита, потому что это нормальные ситуации арбитража и получения подтверждения в протоколе CAN.
Stuff Error. Если в промежутке между началом фрейма (start-of-frame, SOF) и разделителем CRC, обнаружено 6 следующих друг за другом бит одинаковой полярности, то нарушено правило бит-стаффинга. Тогда происходит ошибка бит-стаффинга и генерируется ошибка фрейма. Передача сообщения повторяется.
Состояния ошибки. Про обнаруженные ошибки все другие узлы сети CAN узнают через генерацию и получение фреймов ошибки (error frame, см. рис. 2-4). Передача фрейма ошибочного сообщения прерывается, и этот фрейм повторяется, как только это становится возможным. Кроме того, каждый узел CAN находится в одном из 3 состояний ошибки, каждое из которых соответствует значению внутренних счетчиков ошибок:
1. Error-active (состояние активной ошибки).
2. Error-passive (состояние пассивной ошибки).
3. Bus-off (шина выключена, это относится только к передатчику).
Состояние error-active это обычное состояние, когда узел может передавать сообщения и фреймы активной ошибки (построенного из доминантных бит, см. рис. 2-4) без каких-либо ограничений.
В состоянии error-passive могут передаваться сообщения и фреймы пассивной ошибки (состоящие из рецессивных бит).
Состояние bus-off временно делает невозможным для узла участвовать в обмене по шине. Во время этого состояния сообщения не могут ни приниматься, ни передаваться. Только передатчики могут перейти в состояние bus-off.
Режимы ошибки и счетчики ошибок. Контроллер MCP2515 содержит 2 счетчика ошибок: счетчик ошибок приема Receive Error Counter, REC (см. регистр 6-2) и счетчик ошибок передачи Transmit Error Counter, TEC (см. регистр 6-1). Значения этих обоих счетчиков может прочитать управляющий микроконтроллер. Эти счетчики инкрементируются / декрементируются в соответствии со спецификацией шины CAN.
MCP2515 находится в состоянии error-active, если значение обоих счетчиков меньше 128, предела error-passive. В состояние error-passive MCP2515 переходит, если как минимум один из счетчиков ошибок равен или больше 128.
В состояние bus-off контроллер переходит, если TEC превышает 255, предел bus-off. Контроллер остается в этом состоянии, пока не будет принята последовательность восстановления шины (bus-off recovery sequence). Bus-off recovery sequence состоит из 128 передач следующих друг за другом 11 последовательных рецессивных бит (см. рис. 6-1).
Примечание: после того, как MCP2515, перейдет в bus-off, он восстановится обратно в состояние error-active без какого-либо вмешательства со стороны управляющего микроконтроллера, если шина остается в состоянии ожидания (idle) на время 128 * 11 бит. Если это нежелательно, то такая ситуация должна быть адресована обработчику прерывания.
Текущий режим работы MCP2515 может быть прочитан управляющим микроконтроллером через регистр EFLG (см. регистр 6-3).
Дополнительно есть бит флага предупреждения о состоянии ошибки (error state warning flag, EFLG:EWARN), который установится, если как минимум один из счетчиков ошибок превысит лимит 96. Бит EWARN сбрасывается, если оба счетчика ошибок станут меньше 96.
По идее в момент глюка можно вывести инфу в каком режиме по ошибкам находится MCP2515. Переполнены ли буферы.
И судя по схеме через R3 на 17 ногу всегда подается +5. Знаешь номинал R3?
дак конечно, это потяжка к питанию, чтобы помехи не влияли, а то бы так постоянно спонтанно перезагружался MCP2515. Я думаю кОм 10 он. Да, всё верно, щас проверил 10кОм. (маркирвка резистора 103)
Я тут посоветовался со своими разработчиками, они насоветовали от GPIO DUE через диод и резистор 500 ом + стабилитрон на ногу 17 подать 0. Ну это на бегу.
Воткнул твою функцию readErrorFlags_MCP2515 (); в 5 мест
1. в RX() в начале где return по 0 ID
2. в RX() в конце где default case
3. в test() под 9
4. В printStatus() в начале.
5 В конце MCP2515_Init
В итоге при кадом выводе статуса имеем список ошибок, при сбое имеем список ошибок, после инит имеем список ошибок, ну и ручками всегда можем посмотреть.
Поставил ждем.
Кстати к размышлению. У меня громе DUE которые включены в комп, все осталные платы (узлы 6-21) на автономном питании от единого БП, я из как включил 2 дня назад так и не выключал. Так вот там ошибок нет.
Но они интенсивно в отличии от мастера с передачей 1 раз в секунду не обмениваются.
Т.е получается валимся при интенсивном обмене и не в терминаторах дело. В общем буду смотреть накопление ошибок.
вот немного подкорректированная функция чтения ошибок. Показывает кроме флагов также количество ошибок. Я в два места запихал. CTRL+F ом найдешь. 12 версия.
поставь 12 версию, посмотрим как количество ошибок меняется. В описании написано что счётчики увеличиваются и уменьшаются в соответствии со спецификацией CAN - уж не знаю по какому алгоритму.
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
NO ErrorFlags
TX Errors = 0
RX Errors = 12
Error Initializing MCP2515...
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 7
RX Errors = 0
Init1
NO ErrorFlags
TX Errors = 0
RX Errors = 0
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
NO ErrorFlags
TX Errors = 0
RX Errors = 0
Error Initializing MCP2515...
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 0
RX Errors = 0
Init1
NO ErrorFlags
TX Errors = 0
RX Errors = 0
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
NO ErrorFlags
TX Errors = 0
RX Errors = 12
Error Initializing MCP2515...
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 7
RX Errors = 0
Init1
NO ErrorFlags
TX Errors = 0
RX Errors = 0
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
NO ErrorFlags
TX Errors = 0
RX Errors = 0
Error Initializing MCP2515...
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 0
RX Errors = 0
Init1
NO ErrorFlags
TX Errors = 0
RX Errors = 0
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
NO ErrorFlags
TX Errors = 0
RX Errors = 12
Error Initializing MCP2515...
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 7
RX Errors = 0
Init1
NO ErrorFlags
TX Errors = 0
RX Errors = 0
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID CE0D0401
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - ЛАМПА НА ПОТОЛКЕ БУЛЕВАЯ
DATA FRAME NOT DATA, BECAUSE REMOTE FRAME
--------------------------------------------
лог не скачивается. почему опять всё время инит происходит? Сделай отладку для мастера таким образом
#define debug //отладка в сериал_монитор. Закоментировать строку после отладки
#ifdef debug
#define debugStatus //отладка в сериал_монитор - таблица статусов узлов CAN сети (для МАСТЕРА) Закоментировать строку после отладки
bool ID_Print = 0 ; //флаг распечатки CAN FRAMES в монитор. 0 - будут, только адресованные на данный узел. 1 - все CANFRAMES
bool statusprint = 0 ; //флаг распечатки статусов в монитор.
#include "debug.h"
#endif
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
00:00:38:30
NO ErrorFlags
TX Errors = 0
RX Errors = 0
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
Default msg_id !=0 && >12
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID 8E090400
type_msg - Неизвестное сообщение
node_addr - node_9_Kitchen_net_center
Rem_addr - node_4_Net_center_Due1
Dev_type - NULL DEVICE
DATA FRAME 00 00 00 00 00 00 00 00
--------------------------------------------
RX or TX errors >= 96
RX errors >= 96
TX errors >= 96
RX errors >= 128. Mode ErrorPassive is ON
TX errors >= 128. Mode ErrorPassive is ON
TX errors == 255. Mode BusOff is ON
Переполнен буфер приёма RX0
Переполнен буфер приёма RX1
TX Errors = 255
RX Errors = 255
MCP2515 Initialized Successfully! after REINIT
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 0
RX Errors = 255
Init!
RX or TX errors >= 96
RX errors >= 96
TX errors >= 96
RX errors >= 128. Mode ErrorPassive is ON
TX errors >= 128. Mode ErrorPassive is ON
TX errors == 255. Mode BusOff is ON
Переполнен буфер приёма RX0
Переполнен буфер приёма RX1
TX Errors = 255
RX Errors = 255
00:00:39:00
NO ErrorFlags
TX Errors = 0
RX Errors = 0
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
00:00:39:30
NO ErrorFlags
TX Errors = 0
RX Errors = 0
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
ага неизвестный тип сообщения , да ещё фрейм ремоут докучи О_О. Эта шина над нами издевается, ноль убрали - дак это стало просачиваться. При том что MCP2515 виснет к тому же при получении такого сообщения. И видимо на пине INT висит сигнал что сообщение принято, и он одно и тоже глюкавое б/у шное сообщение показывает.
отключи узел 13, может он козлит. По одному отключай и смотри. Судя по логу, вообще беда. еще и ардуина докучи перезагружалась , смотри время сбрасывалось вначале лога на 4 мин.
отключи узел 13, может он козлит. По одному отключай и смотри. Судя по логу, вообще беда. еще и ардуина докучи перезагружалась , смотри время сбрасывалось вначале лога на 4 мин.
Ну а сейчас от 9 было
041
-------CAN MESSAGE RX ADRRESSED TO ME-------
042
ID 8E090400
043
type_msg - Неизвестное сообщение
044
node_addr - node_9_Kitchen_net_center
045
Rem_addr - node_4_Net_center_Due1
046
Dev_type - NULL DEVICE
047
DATA FRAME 00 00 00 00 00 00 00 00
048
--------------------------------------------
Важно же не только из-за чего но и что делать если. Мало того CAN сам должкн отрабатывать
ООП более структурировано, привыкнете писать красиво и правильно. По своему опыту знаю проекты, начавшиеся на чистом С, обычно переписываются на С++, обратно никогда.
riv пишет:
вопрос про легкость согласования длинноволновых линий связи. Утверждение основано на опыте или теории?
Опыт в соответствии с теорией. Произвольную топологию в принципе нельзя согласовать. Задержка распространения сигнала в медном кабеле 4.8 мкс/км, 19200 это предел для несогласованной линии 1 км.
ООП более структурировано, привыкнете писать красиво и правильно. По своему опыту знаю проекты, начавшиеся на чистом С, обычно переписываются на С++, обратно никогда.
riv пишет:
вопрос про легкость согласования длинноволновых линий связи. Утверждение основано на опыте или теории?
Опыт в соответствии с теорией. Произвольную топологию в принципе нельзя согласовать. Задержка распространения сигнала в медном кабеле 4.8 мкс/км, 19200 это предел для несогласованной линии 1 км.
Я то насчет КСВ с КБВ и четверть волонового трансформатора имел в виду. Ну и чем длиннее волна тем сложнее согласовывать линии. Снижение скорости снижаетчастоту но и увеличивает длинну волны.
Я конечно понимаю что тут манипуляция а не модуляция, так как физ линия, но все же.
Ну и проблемы то у нас другого характера, ошибки на CAN есть но они очень эпизодические. Явно если бы линиям было недостаточно согласования она бы часами не стояла нормально.
00:01:31:30
NO ErrorFlags
TX Errors = 0
RX Errors = 0
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
Default msg_id !=0 && >12
-------CAN MESSAGE RX ADRRESSED TO ME-------
ID 8E0D0400
type_msg - Неизвестное сообщение
node_addr - node_13_WC_waterleak
Rem_addr - node_4_Net_center_Due1
Dev_type - NULL DEVICE
DATA FRAME 61 80 00 00 00 00 00 00
--------------------------------------------
RX or TX errors >= 96
RX errors >= 96
TX errors >= 96
RX errors >= 128. Mode ErrorPassive is ON
TX errors >= 128. Mode ErrorPassive is ON
TX errors == 255. Mode BusOff is ON
Переполнен буфер приёма RX0
Переполнен буфер приёма RX1
TX Errors = 255
RX Errors = 255
MCP2515 Initialized Successfully! after REINIT
Мой адрес в сети CAN: node_4_Net_center_Due1 MASTER!
NO ErrorFlags
TX Errors = 0
RX Errors = 255
Init!
RX or TX errors >= 96
RX errors >= 96
TX errors >= 96
RX errors >= 128. Mode ErrorPassive is ON
TX errors >= 128. Mode ErrorPassive is ON
TX errors == 255. Mode BusOff is ON
Переполнен буфер приёма RX0
Переполнен буфер приёма RX1
TX Errors = 255
RX Errors = 255
00:01:32:00
NO ErrorFlags
TX Errors = 0
RX Errors = 0
NODES CAN COMMUNICATION:
node_5_Net_center_Due2 OK
node_6_Hallway_net_center OK
node_7_Hallway_main OK
node_8_Hallway_light OK
node_9_Kitchen_net_center OK
node_10_Kitchen_main OK
node_11_Kitchen_light OK
node_12_WC_main OK
node_13_WC_waterleak OK
node_14_Bathroom_main OK
node_15_Boxroom_main OK
node_18_Loggia_recuperator OK
node_19_Livingroom_main OK
node_20_Bedroom_main OK
node_21_Cabinet_main OK
Причем заметь опять ID 8E0D0400
Это не глюк это системная ошибка, причем приглядись к датафрейму 61 80 00 00 00 00 00 00.
А вообще регистры неадекватно показывает. То все биты сразу 1. То все 0. Ошибки то 255, то 0 - бред. Хотя проверял на регистре режима работы (нормал, лупбэк, листен онли, слип) - нормально показывает, значит правильно запрашиваю. и раз ID начинается с 8 значит direction равно 0. А я везде сделал его 1. То бишь бабайка этот фрейм отправил. Домовёнок у тебя к кану подключился. 21 век как никак.
И самое главное как оно просочилось через фильтр? О_О
Фильтр стоит что direction только с 1 должен проходить. можешь проверить на простом скетче. Это не поддается объяснению.
А вообще регистры неадекватно показывает. То все биты сразу 1. То все 0. Ошибки то 255, то 0 - бред. Хотя проверял на регистре режима работы (нормал, лупбэк, листен онли, слип) - нормально показывает, значит правильно запрашиваю. и раз ID начинается с 8 значит direction равно 0. А я везде сделал его 1. То бишь бабайка этот фрейм отправил. Домовёнок у тебя к кану подключился. 21 век как никак.
dlc 8 не везде. В REQUEST_SEND я вообщето direction исправил в 11 версии ещё вроде как . Ты хоть мои скетчи то заливаешь или гибриды опять делаешь? А то наворотим щас тут. Я буду думать что исправил, а у тебя в итоге не исправлено. А потом думай, почему не работает. Часы 3231 есть. код выложу
короче если опять шина закозлит заливай опять упрощённый скетч - я его немного поправил. Он на коротких ID. мастер шлёт статус ID 666. Узлы отвечают 0XX, где ХХ - адрес узла. Посмотрим как себя поведёт. Заметь скорость поставил 125 кбит. 500 больше не ставь нигде, нафиг такая большая не нужна. Тем более расстояния довольно большие. 125 в самый раз.
dlc 8 не везде. В REQUEST_SEND я вообщето direction исправил в 11 версии ещё вроде как . Ты хоть мои скетчи то заливаешь или гибриды опять делаешь? А то наворотим щас тут. Я буду думать что исправил, а у тебя в итоге не исправлено. А потом думай, почему не работает. Часы 3231 есть. код выложу
Заливаю твои, но подкручиваю дебаг, сам видишь как выводит, меня это отправлено в CAN достает в логе.
Вроде залита 11 с измененной ф-й вывода ошибок из 12. Я специально спросил, ты только ее изменил.
Я кстати про это и говорил что
1. Вставляй в основной файл что то вроде //ver 12
2. По времени подготовить код и залить его во все контроллеры это 2-3 часа. Поэтому без серьезных изменения я только в DUE меняю код. И кстати МК не вснут
короче если опять шина закозлит заливай опять упрощённый скетч - я его немного поправил. Он на коротких ID. мастер шлёт статус ID 666. Узлы отвечают 0XX, где ХХ - адрес узла. Посмотрим как себя поведёт. Заметь скорость поставил 125 кбит. 500 больше не ставь нигде, нафиг такая большая не нужна. Тем более расстояния довольно большие. 125 в самый раз.
Ок завтра поставлю. Пусть 12 простоит ночь. Уже 4 часа без малого стоит.
Вроде залита 11 с измененной ф-й вывода ошибок из 12. Я специально спросил, ты только ее изменил.
нужно наверное убрать в 5 местах обращения к регистрам - коряво всё это работает почему то
riv пишет:
1. Вставляй в основной файл что то вроде //ver 12
ладно, просто в шапке показывается же название файла. Но ок, мне не сложно это добавлять.
riv пишет:
По времени подготовить код и залить его во все контроллеры это 2-3 часа. Поэтому без серьезных изменения я только в DUE меняю код.
но вот это конечно не гуд, из-за этого и могут быть проблемы. Где то скетч старый остался, а мы тут гадаем, че за шляпа творится. И убери пока DUE - глючная она. Потом вернёшь когда всё наладится.
ладно, просто в шапке показывается же название файла. Но ок, мне не сложно это добавлять.
но вот это конечно не гуд, из-за этого и могут быть проблемы. Где то скетч старый остался, а мы тут гадаем, че за шляпа творится. И убери пока DUE - глючная она. Потом вернёшь когда всё наладится.
Посмотри файл лога, как на DUE добиться такого вывода настройками?
Я беру твой пакет, создаю под каждый папку с именем узла, переименовываю основной файл, открываю, настраиваю. На выходе если нет указателя что за версия то хрен поймешь что стоит. Так что лучше даже в лог пусть выводит вместе с именем узла.
Ну я условно сказал. Везде стоит 11 версия, так как лог я снимаю только с DUE то протсо вставил ф-ю снятия ошибок из регистров.
DUE завтра поменяю. Но я думаю не в DUE дело. Каждая плата свои либы имеет и может конфликтовать.
Посмотри файл лога, как на DUE добиться такого вывода настройками?
ну вот что это в отладке ?
Default msg_id !=0 && >12
----------CAN BROADCAST MESSAGE RX----------
ID 20
type_msg - NULL_C
node_addr - ШИРОКОВЕЩАТЕЛЬНО
Rem_addr - ШИРОКОВЕЩАТЕЛЬНО
Dev_type - Неизвестное устройство
DATA FRAME
--------------------------------------------
какое то Default msg_id !=0 && >12 вспыло. зачем ты ID_Print в труе ставишь. Нафиг эти рамки - по ID уже и так на глаз всё определяем, примелькаклось уже.
У меня кстати при удачной перинициализации вообще не так в отадке всё было . см видос. Че то у тебя не так как у меня в скетче, похоже.
Посмотри файл лога, как на DUE добиться такого вывода настройками?
ну вот что это в отладке ?
Default msg_id !=0 && >12
----------CAN BROADCAST MESSAGE RX----------
ID 20
type_msg - NULL_C
node_addr - ШИРОКОВЕЩАТЕЛЬНО
Rem_addr - ШИРОКОВЕЩАТЕЛЬНО
Dev_type - Неизвестное устройство
DATA FRAME
--------------------------------------------
какое то Default msg_id !=0 && >12 вспыло. зачем ты ID_Print в труе ставишь. Нафиг эти рамки - по ID уже и так на глаз всё определяем, примелькаклось уже.
У меня кстати при удачной перинициализации вообще не так в отадке всё было . см видос. Че то у тебя не так как у меня в скетче, похоже.
#define debug //отладка в сериал_монитор. Закоментировать строку после отладки
#ifdef debug
#define debugStatus //отладка в сериал_монитор - таблица статусов узлов CAN сети (для МАСТЕРА) Закоментировать строку после отладки
bool ID_Print = 0 ; //флаг распечатки CAN FRAMES в монитор. 0 - будут, только адресованные на данный узел. 1 - все CANFRAMES
bool statusprint = 0 ; //флаг распечатки статусов в монитор.
Эээ я как бы твой код из другого места (чуть выше) взял и ткнул в нужное мне место ( RX default)
У меня отладка Ночью идет и места на твой развернутый как в видео дебаг в консоле нет, она начнет затираться.
Я вывожу раз в 60 сек сост узлов и при аварии состояние авариии. Смотреть чем обмениваются в другое время узлы нет смысла.
я не знаю в чём у тебя там проблема, но на узле аж на 4 часа хватает такой записи в мониторе порта. Этого хватит, чтобы косяки засечь. Не говоря уже про мастер, где данные два раза в минуту пишутся. Там весь лог записался от начала до конца. Вот 5-часовой тест мастера и одного узла №10. Глюки отсутсвуют полностью. В конце, для прикола, сделал с монитора порта переинициализацию MCP2515. Если бы были косяки, по такой отладке у узла можно определить что и когда он отсылал и получил. Время у него посмотреть, не простаивало ли. Сравнить что в это время на мастере творилось.
я не знаю в чём у тебя там проблема, но на узле аж на 4 часа хватает такой записи в мониторе порта. Этого хватит, чтобы косяки засечь. Не говоря уже про мастер, где данные два раза в минуту пишутся. Там весь лог записался от начала до конца. Вот 5-часовой тест мастера и одного узла №10. Глюки отсутсвуют полностью. В конце, для прикола, сделал с монитора порта переинициализацию MCP2515. Если бы были косяки, по такой отладке у узла можно определить что и когда он отсылал и получил. Время у него посмотреть, не простаивало ли. Сравнить что в это время на мастере творилось.
#define debug //отладка в сериал_монитор. Закоментировать строку после отладки
#ifdef debug
#define debugStatus //отладка в сериал_монитор - таблица статусов узлов CAN сети (для МАСТЕРА) Закоментировать строку после отладки
bool ID_Print = 0 ; //флаг распечатки CAN FRAMES в монитор. 0 - будут, только адресованные на данный узел. 1 - все CANFRAMES
bool statusprint = 0 ; //флаг распечатки статусов в монитор.
Так нужно?
Инициализация у меня тоже работает.
Но вот когда глюк серьезный то сеть летит. Лог сам видел.
Представь определения в студию, и к ним интерфейсы добавь. Посмотрим, что ты нафантазировал, посмеемся когда у тебя SPI "асинхронным" окажется.
Напомни мне где я врал и на чем был ловлен с поличными
В #781 врал, в #797 был пойман на вранье.
Ты послан. Можешь не отвечать.
А, так ты слился, соплячок. Накозлил глупостей с три короба - и теперь в кусты.
Коллеги, предлагаю дискутировать , не переходя на личности. Уважайте друг друга. Читать такие вещи противно если честно. Взрослые ведь уже. Мы тут письками не мереемся, мы пытаемся сеть построить.
Коллеги, предлагаю дискутировать , не переходя на личности. Уважайте друг друга. Читать такие вещи противно если честно. Взрослые ведь уже. Мы тут письками не мереемся, мы пытаемся сеть построить.
Согласен полностью.
Т.к. согласно схемы http://electronicsworld.ru/wp-content/uploads/2017/11/niren_mcp2515-CAN-Bus-Module-Schematics.png
(Так тут я сбредил, здесь пишут про ресет на 17 ноге и выводе на INT)
19 нога не задействована я уже почти пришел к тому чтобы через 10кОм на 19 ногу GPIO от ардуино подпаять и держать там HIGH для ресета дать LOW на 10-20 мс
http://microsin.net/images/stories/hard/MCP2515-RESET-pin-example-fig9-1.png
Думаю диод с конденсатором и R не нужны т.к автосброс мы не реализуем.
(Нужно схему смотреть с платы, вешером посмотрю)
автосброс по этой схеме используется для того чтобы он происходил автомаически один раз при подаче питания (требование даташита MCP2515 делать сброс после подачи питания), но нам это не нужно, т.к. мы с ардуины делаем сброс при помощи SPI.
Вообще сброс по SPI эквивалентен, я так понял, сбросу по пину Reset. Вот выдержка из текста описания MCP2515
Я научился делать фильтры правильно. Маске 0 соответсвуют фильтры 0 и 1. Маске 1 соответствуют фильтры 2,3,4,5. Так вот нужно задавать все маски и фильтры, иначе MCP воспринимает маску и фильтр как 0, что не правильно.
Но, т.к. у нас один из фильтров на второй разряд ID равен 00 (шириоковещательные), то в целом будут пролетать ID вообще со всеми нулями, что нам не нужно. Тут два выхода:
- Сделать широковещательные 0xFF (будет проблем с enum, т.к. выходит за пределы)
- устанавливать брошенный нами бит direction в 1 на ВСЕХ используемыми нами сообщениях, таким образом, наши сообщения никогда не будут с ID равном полностью 0 - считаю наилучший вариант.
если мы так сделаем, то аппаратно не будут проходить большие ID 0х00000000 и маленькие 0х000. Думаю это даст шанс на исправление косяков.
(Так тут я сбредил, здесь пишут про ресет на 17 ноге и выводе на INT)
19 нога не задействована я уже почти пришел к тому чтобы через 10кОм на 19 ногу GPIO от ардуино подпаять и держать там HIGH для ресета дать LOW на 10-20 мс
(Нужно схему смотреть с платы, вешером посмотрю)
бывают два корпуса MCP2515 - 20 ногий TSSOP и 18 ногий PDIP/SOIC.
У нас 18 ногий PDIP/SOIC. Поэтому пин reset у нас 17 нога. У 20 ногого TSSOP reset, всё правильно, 19 нога. Надеюсь до этого гемора с хард ресетом не дойдет.
ЗЫ есть ещё корпус 20 ногий 4x4 QFN* у него reset тоже 17 нога.
Нв выходе пока бъемся с софтом?
И судя по схеме через R3 на 17 ногу всегда подается +5. Знаешь номинал R3?
пока вот 11 версия. Теперь аппаратно не просачиваются 0х00000000 и 0х000. Поставил в нашем скетче в отправляемом фрейме в заголовке бит direction везде "1" (надеюсь везде исправил).
Исправил фильтры
И судя по схеме через R3 на 17 ногу всегда подается +5. Знаешь номинал R3?
дак конечно, это потяжка к питанию, чтобы помехи не влияли, а то бы так постоянно спонтанно перезагружался MCP2515. Я думаю кОм 10 он. Да, всё верно, щас проверил 10кОм. (маркирвка резистора 103)
вот инфа из описания MCP2515 как детектируются ошибки в MCP2515
По идее в момент глюка можно вывести инфу в каком режиме по ошибкам находится MCP2515. Переполнены ли буферы.
И судя по схеме через R3 на 17 ногу всегда подается +5. Знаешь номинал R3?
дак конечно, это потяжка к питанию, чтобы помехи не влияли, а то бы так постоянно спонтанно перезагружался MCP2515. Я думаю кОм 10 он. Да, всё верно, щас проверил 10кОм. (маркирвка резистора 103)
Я тут посоветовался со своими разработчиками, они насоветовали от GPIO DUE через диод и резистор 500 ом + стабилитрон на ногу 17 подать 0. Ну это на бегу.
По идее в момент глюка можно вывести инфу в каком режиме по ошибкам находится MCP2515. Переполнены ли буферы.
Сможешь это сделать? Я с регистрами вообще на Вы.
вот фукция, а вот когда её вызывать вопрос. Если мастер , то можно при каждом получении статуса от узла
Если узел, то при каждом получении статуса мастера.
Воткнул твою функцию readErrorFlags_MCP2515 (); в 5 мест
1. в RX() в начале где return по 0 ID
2. в RX() в конце где default case
3. в test() под 9
4. В printStatus() в начале.
5 В конце MCP2515_Init
В итоге при кадом выводе статуса имеем список ошибок, при сбое имеем список ошибок, после инит имеем список ошибок, ну и ручками всегда можем посмотреть.
Поставил ждем.
Кстати к размышлению. У меня громе DUE которые включены в комп, все осталные платы (узлы 6-21) на автономном питании от единого БП, я из как включил 2 дня назад так и не выключал. Так вот там ошибок нет.
Но они интенсивно в отличии от мастера с передачей 1 раз в секунду не обмениваются.
Т.е получается валимся при интенсивном обмене и не в терминаторах дело. В общем буду смотреть накопление ошибок.
вот немного подкорректированная функция чтения ошибок. Показывает кроме флагов также количество ошибок. Я в два места запихал. CTRL+F ом найдешь. 12 версия.
Вот вылезло
поставь 12 версию, посмотрим как количество ошибок меняется. В описании написано что счётчики увеличиваются и уменьшаются в соответствии со спецификацией CAN - уж не знаю по какому алгоритму.
Ты в ней только
да
Вот смотри что происходит
Вот глянь весь лог
https://yadi.sk/d/ozOcbX7B3V5hYy
log_18.05.18.txt
лог не скачивается. почему опять всё время инит происходит? Сделай отладку для мастера таким образом
Смотри полный лог, файл просто долго синхронизировался.
Инит происходит т.к постоянно получаем то что попадает в default
А вот сейчас ресетнулось
Ну вот откуда эти левые ID 8E090400
ага неизвестный тип сообщения , да ещё фрейм ремоут докучи О_О. Эта шина над нами издевается, ноль убрали - дак это стало просачиваться. При том что MCP2515 виснет к тому же при получении такого сообщения. И видимо на пине INT висит сигнал что сообщение принято, и он одно и тоже глюкавое б/у шное сообщение показывает.
отключи узел 13, может он козлит. По одному отключай и смотри. Судя по логу, вообще беда. еще и ардуина докучи перезагружалась , смотри время сбрасывалось вначале лога на 4 мин.
отключи узел 13, может он козлит. По одному отключай и смотри. Судя по логу, вообще беда. еще и ардуина докучи перезагружалась , смотри время сбрасывалось вначале лога на 4 мин.
Ну а сейчас от 9 было
041
-------CAN MESSAGE RX ADRRESSED TO ME-------
042
ID 8E090400
043
type_msg - Неизвестное сообщение
044
node_addr - node_9_Kitchen_net_center
045
Rem_addr - node_4_Net_center_Due1
046
Dev_type - NULL DEVICE
047
DATA FRAME 00 00 00 00 00 00 00 00
048
--------------------------------------------
Важно же не только из-за чего но и что делать если. Мало того CAN сам должкн отрабатывать
Я то насчет КСВ с КБВ и четверть волонового трансформатора имел в виду. Ну и чем длиннее волна тем сложнее согласовывать линии. Снижение скорости снижаетчастоту но и увеличивает длинну волны.
Я конечно понимаю что тут манипуляция а не модуляция, так как физ линия, но все же.
Ну и проблемы то у нас другого характера, ошибки на CAN есть но они очень эпизодические. Явно если бы линиям было недостаточно согласования она бы часами не стояла нормально.
Вот новый сбой но ресетнулось нормально
Причем заметь опять ID 8E0D0400
Это не глюк это системная ошибка, причем приглядись к датафрейму 61 80 00 00 00 00 00 00.
говорю отключай этот 13 узел, он несчастливый)
А вообще регистры неадекватно показывает. То все биты сразу 1. То все 0. Ошибки то 255, то 0 - бред. Хотя проверял на регистре режима работы (нормал, лупбэк, листен онли, слип) - нормально показывает, значит правильно запрашиваю. и раз ID начинается с 8 значит direction равно 0. А я везде сделал его 1. То бишь бабайка этот фрейм отправил. Домовёнок у тебя к кану подключился. 21 век как никак.
И самое главное как оно просочилось через фильтр? О_О
Фильтр стоит что direction только с 1 должен проходить. можешь проверить на простом скетче. Это не поддается объяснению.
Вот уже 3 часа работает с 2мя сбоями и самовосстановлением.
Просбочка есть встрой код часов, стобы выдавалось не только милс время но и от часов. Или я свой набросаю, встрой потом в скетч.
У меня трое часов загашнике нашлось
DS1302
DS1307
DS3231
Если у тебя нет каких то из них я тогда свой код под DS3231 напишу.
А вообще регистры неадекватно показывает. То все биты сразу 1. То все 0. Ошибки то 255, то 0 - бред. Хотя проверял на регистре режима работы (нормал, лупбэк, листен онли, слип) - нормально показывает, значит правильно запрашиваю. и раз ID начинается с 8 значит direction равно 0. А я везде сделал его 1. То бишь бабайка этот фрейм отправил. Домовёнок у тебя к кану подключился. 21 век как никак.
Это из твоего кода ф-я RX case REQUEST_SEND
Первый 0 это dir 0
Ну и вообще может уйти от 11bit ID и произвольных DLC
Везде 29 и 8?
dlc 8 не везде. В REQUEST_SEND я вообщето direction исправил в 11 версии ещё вроде как . Ты хоть мои скетчи то заливаешь или гибриды опять делаешь? А то наворотим щас тут. Я буду думать что исправил, а у тебя в итоге не исправлено. А потом думай, почему не работает. Часы 3231 есть. код выложу
короче если опять шина закозлит заливай опять упрощённый скетч - я его немного поправил. Он на коротких ID. мастер шлёт статус ID 666. Узлы отвечают 0XX, где ХХ - адрес узла. Посмотрим как себя поведёт. Заметь скорость поставил 125 кбит. 500 больше не ставь нигде, нафиг такая большая не нужна. Тем более расстояния довольно большие. 125 в самый раз.
dlc 8 не везде. В REQUEST_SEND я вообщето direction исправил в 11 версии ещё вроде как . Ты хоть мои скетчи то заливаешь или гибриды опять делаешь? А то наворотим щас тут. Я буду думать что исправил, а у тебя в итоге не исправлено. А потом думай, почему не работает. Часы 3231 есть. код выложу
Заливаю твои, но подкручиваю дебаг, сам видишь как выводит, меня это отправлено в CAN достает в логе.
Вроде залита 11 с измененной ф-й вывода ошибок из 12. Я специально спросил, ты только ее изменил.
Я кстати про это и говорил что
1. Вставляй в основной файл что то вроде //ver 12
2. По времени подготовить код и залить его во все контроллеры это 2-3 часа. Поэтому без серьезных изменения я только в DUE меняю код. И кстати МК не вснут
короче если опять шина закозлит заливай опять упрощённый скетч - я его немного поправил. Он на коротких ID. мастер шлёт статус ID 666. Узлы отвечают 0XX, где ХХ - адрес узла. Посмотрим как себя поведёт. Заметь скорость поставил 125 кбит. 500 больше не ставь нигде, нафиг такая большая не нужна. Тем более расстояния довольно большие. 125 в самый раз.
Ок завтра поставлю. Пусть 12 простоит ночь. Уже 4 часа без малого стоит.
код часов. Не проверял, нету под рукой DS3231. библиотека
в либе смотри пример, как часы настроить и вообще почитай коменты
Опять сбойнуло https://yadi.sk/d/ozOcbX7B3V5hYy
log_18.05.18-2.txt
Опять сбойнуло https://yadi.sk/d/ozOcbX7B3V5hYy
log_18.05.18-2.txt
Да и смотри какое кино реконект по com порту ресетит MCP нормально.
Заливаю твои, но подкручиваю дебаг, сам видишь как выводит, меня это отправлено в CAN достает в логе.
Я же тебе говорил как дебаг настроить
нужно наверное убрать в 5 местах обращения к регистрам - коряво всё это работает почему то
ладно, просто в шапке показывается же название файла. Но ок, мне не сложно это добавлять.
но вот это конечно не гуд, из-за этого и могут быть проблемы. Где то скетч старый остался, а мы тут гадаем, че за шляпа творится. И убери пока DUE - глючная она. Потом вернёшь когда всё наладится.
Я же тебе говорил как дебаг настроить
ладно, просто в шапке показывается же название файла. Но ок, мне не сложно это добавлять.
но вот это конечно не гуд, из-за этого и могут быть проблемы. Где то скетч старый остался, а мы тут гадаем, че за шляпа творится. И убери пока DUE - глючная она. Потом вернёшь когда всё наладится.
Посмотри файл лога, как на DUE добиться такого вывода настройками?
Я беру твой пакет, создаю под каждый папку с именем узла, переименовываю основной файл, открываю, настраиваю. На выходе если нет указателя что за версия то хрен поймешь что стоит. Так что лучше даже в лог пусть выводит вместе с именем узла.
Ну я условно сказал. Везде стоит 11 версия, так как лог я снимаю только с DUE то протсо вставил ф-ю снятия ошибок из регистров.
DUE завтра поменяю. Но я думаю не в DUE дело. Каждая плата свои либы имеет и может конфликтовать.
ну вот что это в отладке ?
какое то Default msg_id !=0 && >12 вспыло. зачем ты ID_Print в труе ставишь. Нафиг эти рамки - по ID уже и так на глаз всё определяем, примелькаклось уже.
У меня кстати при удачной перинициализации вообще не так в отадке всё было . см видос. Че то у тебя не так как у меня в скетче, похоже.
ну вот что это в отладке ?
какое то Default msg_id !=0 && >12 вспыло. зачем ты ID_Print в труе ставишь. Нафиг эти рамки - по ID уже и так на глаз всё определяем, примелькаклось уже.
У меня кстати при удачной перинициализации вообще не так в отадке всё было . см видос. Че то у тебя не так как у меня в скетче, похоже.
Эээ я как бы твой код из другого места (чуть выше) взял и ткнул в нужное мне место ( RX default)
У меня отладка Ночью идет и места на твой развернутый как в видео дебаг в консоле нет, она начнет затираться.
Я вывожу раз в 60 сек сост узлов и при аварии состояние авариии. Смотреть чем обмениваются в другое время узлы нет смысла.
я не знаю в чём у тебя там проблема, но на узле аж на 4 часа хватает такой записи в мониторе порта. Этого хватит, чтобы косяки засечь. Не говоря уже про мастер, где данные два раза в минуту пишутся. Там весь лог записался от начала до конца. Вот 5-часовой тест мастера и одного узла №10. Глюки отсутсвуют полностью. В конце, для прикола, сделал с монитора порта переинициализацию MCP2515. Если бы были косяки, по такой отладке у узла можно определить что и когда он отсылал и получил. Время у него посмотреть, не простаивало ли. Сравнить что в это время на мастере творилось.
я не знаю в чём у тебя там проблема, но на узле аж на 4 часа хватает такой записи в мониторе порта. Этого хватит, чтобы косяки засечь. Не говоря уже про мастер, где данные два раза в минуту пишутся. Там весь лог записался от начала до конца. Вот 5-часовой тест мастера и одного узла №10. Глюки отсутсвуют полностью. В конце, для прикола, сделал с монитора порта переинициализацию MCP2515. Если бы были косяки, по такой отладке у узла можно определить что и когда он отсылал и получил. Время у него посмотреть, не простаивало ли. Сравнить что в это время на мастере творилось.
Поставил 12 версию на мастер без
+
Так нужно?
Инициализация у меня тоже работает.
Но вот когда глюк серьезный то сеть летит. Лог сам видел.
Так 12 версия не работает.
Постиавил 11 с теми же настройками и скопировал тольуо ф-ю с ошибками MCP
что в 12 не работает?