реклама на сайте
подробности

 
 
> CAN на dsPIC33, Знакомство с примером
skyv
сообщение Jan 13 2014, 08:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Доброго дня.
Есть вопрос по 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?
Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- skyv   CAN на dsPIC33   Jan 13 2014, 08:03


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 03:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016