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

 
 
> CAN для LPC23xx, Не слишком понятна настройка тайминга
Polaris
сообщение Dec 28 2009, 15:39
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Добрый день!

Хотел бы использовать аппаратный CAN у LPC2368. Возникнет также необходимость эскплуатировать его в одной сети с MCP2515. Но при изучении документации возникла непонятная ситуация с настройкой тайминга. В стандарте CAN и у MCP2515 в бите упоминается четыре сегмента - Synchronization Segment, Propagation Segment, Phase Segment 1, Phase Segment 2. В документации же к LPC23xx Propagation Segment отсутствует, что создает неоднозначность в тактировании. Как быть?

Заранее спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Polaris
сообщение Jan 14 2010, 15:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Вот такой процесс инициализации я использую, нашел в исходниках кайла, что-то менял, но что - не особо помню уже.
void CAN_setup (uint32_t ctrl) {
CAN_TypeDef *pCAN = (ctrl == 1) ? CAN1 : CAN2; /* select CAN controller */

if (ctrl == 1) {
PCONP |= 1 << 13; /* Enable clock for CAN1 */
PINSEL0 &= 0xFFFFFFF0; /* Reset CAN1 bits */
PINSEL0 |= 0x00000005; /* Set CAN1 bits to b0101 */

*(&VICVectAddr23) = (unsigned long) CAN_ISR; /* Set interrupt vector for CAN */
*(&VICVectCntl23) = 1;

VICIntEnable = (1 << 23); /* Enable CAN Interrupt */
} else {
PCONP |= 1 << 14; /* Enable clock for CAN2 */
PINSEL0 &= 0xFFFFF0FF; /* Reset CAN2 bits */
PINSEL0 |= 0x00000A00; /* Set CAN2 bits to b1010 */

*(&VICVectAddr23) = (unsigned long) CAN_ISR; /* Set interrupt vector for CAN */
*(&VICVectCntl23) = 1;

VICIntEnable = (1 << 23); /* Enable CAN Interrupt */
}

CANAF->AFMR = 2; /* By default filter is not used */
pCAN->MOD = 1; /* Enter reset mode */
pCAN->IER = 0; /* Disable all interrupts */
pCAN->GSR = 0; /* Clear status register */
CAN_cfgBaudrate(ctrl, 250000); /* Set bit timing */
pCAN->IER = 0x0003; /* Enable Tx and Rx interrupt */
}
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 20:45
Рейтинг@Mail.ru


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