Перейти к содержанию
    

CAN на dsPIC33

Доброго дня.

Есть вопрос по CAN на dsPIC33.

Имею два контроллера на dsPIC33, которые соединены шиной CAN.

Один девайс принимает сообщения CAN, а другой передает только одно сообщение.

Для передающего устройства взял Example 21-1(см. документ DS70353C- описание ECAN page 21-35),

где показан порядок настройки аппаратуры передатчика для формирования одного сообщения c использованием буфера 0.

В последней строке примера в тело while(1); добавил:

- паузу в 1сек.

- /* Request message buffer 0 transmission */

C1TR01CONbits.TXREQ0 = 0x1;

- while(C1TR01CONbits.TXREQ0 == 1);

В этом случае нет никаких вопросов по работе передатчика. Осциллографом вижу формирование своего сообщения один раз в секунду.

 

При замене буфера 0 на любой другой, например буфер 1, возникают непонятности.

Раз в секунду продолжает формироваться одно сообщение, но при этом кроме моего сообщения,

которое я видел в предыдущем эксперименте, стабильно возникает сообщение с SID отличным от моего.

В чем тут может быть причина?

 

В ходе экспериментов вышел на такой вариант. Если в тело while(1); после паузы в 1сек (перед запросом на передачу) добавить такой код:

C2CTRL1bits.REQOP = 4;

while(C2CTRL1bits.OPMODE != 4);

C2CTRL1bits.WIN = 0;

C2CTRL1bits.REQOP = 0;

while(C2CTRL1bits.OPMODE != 0) , то все работает как в исходном варианте с буфером 0.

Почему для нормальной работы с буфером отличным от 0 мне пришлось делать, на мой взгляд, ненужные вещи?

В чем может быть причина такой странной работы передатчика CAN?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...