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

 
 
> LPC2378 CAN
Vladimir Baryshn...
сообщение Jan 14 2008, 12:49
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 11-01-08
Пользователь №: 33 986



Не удается запустьтить CAN на LPC2378. Передача идет (генерятся прерывания, пакеты идут в сеть), приема нет. Тетовые пакеты генерю с помощью USB->CAN. Пакеты реально идут (смотрел осцилографом). Вот кусок кода инициализации:

#define CANINTNUM 23
#if PROCESSOR == LPC23xx // øî ïèïåö çàäîëáàëà ìåíÿ ýòà êðîñïëàòôîðìåíîñòü

#ifdef USECAN0
PINSEL0 &= (0x0F);
PINSEL0 |= (0x05);
PCONP |= (1 << 13); // Enable clock to the peripheral

C1MOD = 0x01;
C1BTR = CAN0BRP | (CAN0SJV<<14) |(CAN0TSEG1<<16) | (CAN0TSEG2<<20);
C1IER |= (1<<9)|(1<<10)|(1<<1)|1|(1<<7);
C1GSR = 0;

SetInt(1, CANINTNUM, (DWORD) CANIntHandler);
EnableInt(CANINTNUM);
C1MOD = 0x00;

#endif // #ifdef USECAN0
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vladimir Baryshn...
сообщение Jan 15 2008, 06:01
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 11-01-08
Пользователь №: 33 986



Еще одна особенность, пакеты реально принимаются вот только прерывания не возникает и не выставляется флаг RBS (в GSR) не возникает ошибок шины. Весьма странно, таких проблем небыло на LPC2194. Может быть кто сталкивался с подобным?

Сообщение отредактировал Vladimir Baryshnikov - Jan 15 2008, 06:06
Go to the top of the page
 
+Quote Post
deadman
сообщение Jan 15 2008, 07:04
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 13-09-07
Пользователь №: 30 506



Просмотрел, сорри. У Вас похоже нет строчки типа
AFMR = 0x02;

При сбросе Acceptance filter mode register в "Acceptance filter Off mode" (0x01), т.е. контроллер ничего не принимает.
Затем конфигурируем фильтры, если надо, и меняем режим работы фильтра либо в "bypass"(принимаем все, 0x02) или "Operating Mode and FullCAN Mode" (0x00)

Вам похоже подойдет bypass.

Сообщение отредактировал deadman - Jan 15 2008, 07:05
Go to the top of the page
 
+Quote Post
Vladimir Baryshn...
сообщение Jan 15 2008, 09:30
Сообщение #4





Группа: Новичок
Сообщений: 6
Регистрация: 11-01-08
Пользователь №: 33 986



Цитата(deadman @ Jan 15 2008, 10:04) *
Просмотрел, сорри. У Вас похоже нет строчки типа
AFMR = 0x02;

При сбросе Acceptance filter mode register в "Acceptance filter Off mode" (0x01), т.е. контроллер ничего не принимает.
Затем конфигурируем фильтры, если надо, и меняем режим работы фильтра либо в "bypass"(принимаем все, 0x02) или "Operating Mode and FullCAN Mode" (0x00)

Вам похоже подойдет bypass.


Да, вы действительно правы.
Точнее, эта строчка есть но значительно выше этого кода который я приводил, т.о. CAN контроллер еще небыл включен ("PCONP |= (1 << 13)"), и соответственно режим работы небыл задан корректно. На LPC2194 это работало.
Спасибо за подсказку.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 3rd July 2025 - 16:13
Рейтинг@Mail.ru


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