Top.Mail.Ru
Уведомления
Очистить все

[Решено] CAN на STM32, пропадают пакеты.

R2T2
 R2T2
(@r2t2)
New member

Коллеги, снова всех приветствую! Очередной вопрос по интерфейсу CAN.

Устройство отправляет пакеты раз в 500 мс, все стабильно. Как только устройство попадает в нагруженную сеть, то пакеты начинают пропадать. Приходят то раз в секунду, то раз в полторы-две. Я понимаю, что шина может быть занята в момент отправки, но разве CAN не так устроен, что при недоступной шине процесс передачи будет повторен?

Цитата
Создатель темы Размещено : 26.10.2021 17:32
Метки темы
Aveal
(@aveal)
Top level Admin

Очень похоже, что выставлен бит NART.

NART (No automatic retransmission): Normally, CAN hardware retries to transmit a message if its previous attempts fail, because of arbitration lost etc. But if you make this bit 1, the transmitter does not retry. This is required when you use Time Triggered Communication (TTCAN). Otherwise, you should keep this bit 0.

Если используется CubeMx, то не включено:

изображение

 

ОтветитьЦитата
Размещено : 27.10.2021 11:50
R2T2 reacted
R2T2
 R2T2
(@r2t2)
New member

@aveal действительно, это решило проблему! Просто огромная благодарность!!! Странно, что нигде явно не указано об этой настройке в STM32CubeMx.

ОтветитьЦитата
Создатель темы Размещено : 28.10.2021 09:02
Aveal
(@aveal)
Top level Admin

Еще более странно, что они внезапно в Cube сделали NART по умолчанию включенным.

ОтветитьЦитата
Размещено : 28.10.2021 10:10
R2T2 reacted
Поделиться: