bookevg
Mar 11 2007, 18:20
Законнектил SAM7X128 и проц другой фирмы по CAN - работает прием и передача.
Начал коннектить два проца: SAM7X128 и SAM7X256 по CAN.
Возникли проблемы: SAM7X128 передает SAM7X256 принимает, есть подтверждение, но вот только длина принятого сообщения равна нуля, хотя по отсылается 3 байта - видно как в отладчике, так и на осциллографе - в чем проблема? Поделитесь опытом.
Да и вот еще не смог решить проблему: если на SAM7X запустить только одну передачу, на которую не будет подтверждение, то отмена передачи не работает, не помогает даже отключение маилбокса, помогает только отключение всего CAN - как то несерьезно для атмела - или я в чем то неправ?
Заранее большое спасибо!
bookevg
Mar 13 2007, 12:57
Проблема была в следующем: в программе при возникновении ошибки по отсутствию подтверждения - запускалось прерывание, которое выставляло команду на аборт передачи, но CAN SAM7X продолжал бомбить линию посылками, только он ограничил посылка - вместо заданной длины данных передавал ноль, а данные отсутствовали - если позже появлялось устройство, которому была предназначена посылка, то оно принимало это сообщение. Затем в программе с некоторой периодичностью поступали новые данные.
Главное что надо сделать: перед тем как вновь отправить данные по маилбоксу, по которому была прервана передача - это зановоно проинициализировать весь маилбокс