Цитата(upc2 @ Oct 14 2005, 15:55)
Разобрался с ошибками.Регистр CANINTF указывал на регистр EFLG.
Тот указывал на ошибку "Передатчик в пассивном состоянии сч.ошибок >127"
Передатчик переходит в пассивное состояние, если при передаче зафиксировано больше 127 ошибок. Также передатчик будет переходить в пассивное состояние и там оставаться, если он не получил 127 подтверждений ACK от других CAN контроллеров на шине.
То есть однозначно у вас передатчик не слышит приемника, либо приемник вообще не принимает.
Цитата
Ошибка "Посылка с ошибками" указывала , что приемный буфер переполнен.
Это в каком контроллере, том же который передает?
Цитата
Что-то я запутался.Счетчик ошибок отключает передатчик.При передаче одной посылки набегает столько ошибок?Наверно помехи.
Нет, в CAN же аппаратное подтверждение приема пакетов. Поэтому единожды начав передавать сообщение CAN контроллер будет его пытаться передать, пока оно не будет подтверждено другими CAN контроллерами в сети.
Если других CAN контроллеров в сети нет, или они не работают, то передатчик попытается передать сообщение 128 раз, каждый раз добавляя ошибку передачи, и потом перейдет в пассивный режим. Как он будет в пассивном режиме работать, не помню, нужно спецификацию CAN смотреть, там эта ситуация описана.
Цитата
Сейчас буду разбираться.
Надо немного перепаять схемы.Это я смотрел на закоротку предложенную sfj.
Вы сначала убедитесь, что второй CAN контроллер у вас принимает пакеты и подтверждает их ACK. Третий раз уже советую это сделать.