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

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

R2T2
 R2T2
(@r2t2)
New Member

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

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

Цитата
Topic starter Размещено : 26.10.2021 17:32
Тэги темы
Aveal
(@aveal)
Illustrious Member 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, то не включено:

 

Нравится: 1
ОтветитьЦитата
Размещено : 27.10.2021 11:50
R2T2
 R2T2
(@r2t2)
New Member

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

ОтветитьЦитата
Topic starter Размещено : 28.10.2021 09:02
Aveal
(@aveal)
Illustrious Member Admin

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

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