|
CAN...не понятно((((, как начинается передача? |
|
|
|
Nov 26 2012, 10:10
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 9-11-12
Пользователь №: 74 296

|
Простите если глупый вопрос... Но что-то уже пол-дня не разобраться...
В какой момент микроконтроллер (at90can128) начинает передачу данных (Отправляет данные из Moba настроенного на передачу)??? в USART все просто UDR0=0x01 и передача начилась.... А вот в CAN'е не понятно))))
|
|
|
|
|
 |
Ответов
|
Nov 27 2012, 08:20
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633

|
Это код как раз для AT90CAN128 на передачу данных в настроенный канал(в данном случае первый). Вас непосредственно интересуют две последние строчки. CODE CANPAGE = (1 << 4); CANIDT2 = (U8)(msg_id << 5); CANIDT1 = (U8)(msg_id >> 3); CANCDMOB = size; if (NULL != data_p) { if (DLC_MAX >= size) { while (size--) { CANMSG = *data_p++; } } else { D_LOG_MDL(D_LOG_WARNING, "data overflow!"); return ERR_OVERFLOW; } } CANSTMOB = 0; while (HAL_BIT_CHECK(CANGSTA, TXBSY)); CANEN2 |= (1 << 1); /* channel 1 enable */ CANCDMOB |= CH_TxENA; /* emission enabled */
--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
|
|
|
|
|
Nov 27 2012, 08:21
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 9-11-12
Пользователь №: 74 296

|
Цитата(PheeL @ Nov 27 2012, 11:20)  Это код как раз для AT90CAN128 на передачу данных в настроенный канал(в данном случае первый). Вас непосредственно интересуют две последние строчки. CODE CANEN2 |= (1 << 1); /* channel 1 enable */ CANCDMOB |= CH_TxENA; /* emission enabled */
Спасибо большое))) а в регистр CANEN2 разве можно записывать? у меня в документации сказано что только Read. и CH_TxENA это аналог 1<<CONMOB0 ?
Сообщение отредактировал lons83 - Nov 27 2012, 08:25
|
|
|
|
|
Nov 27 2012, 08:38
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633

|
Цитата(lons83 @ Nov 27 2012, 12:21)  Спасибо большое))) а в регистр CANEN2 разве можно записывать? у меня в документации сказано что только Read. Да, действительно, он только Read. Значит эту команду можно игнорировать. Код частично достался в наследство, я не сильно вчитывался ) Цитата(lons83 @ Nov 27 2012, 12:21)  и CH_TxENA это аналог 1<<CONMOB0 ? Прошу прощения, забыл #define указать. #define CH_TxENA 0x40
--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
|
|
|
|
|
Nov 27 2012, 09:13
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 9-11-12
Пользователь №: 74 296

|
Цитата(PheeL @ Nov 27 2012, 11:38)  Да, действительно, он только Read. Значит эту команду можно игнорировать. Код частично достался в наследство, я не сильно вчитывался )
Прошу прощения, забыл #define указать. #define CH_TxENA 0x40 В целом разобрался. остался только такой момент. может сможете подсказать. передаю MOB0 (с индефикатором = 0 то есть наивысший приоритет) 1 байт. но идет бесконечная передача одного байта. это что то в настройках? или нужно отключать передачу? и чтобы закончить передачу нужно MOB запретить или на прием настроить?
|
|
|
|
|
Nov 27 2012, 09:37
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633

|
Цитата(lons83 @ Nov 27 2012, 13:13)  передаю MOB0 (с индефикатором = 0 то есть наивысший приоритет) 1 байт. но идет бесконечная передача одного байта. это что то в настройках? или нужно отключать передачу? и чтобы закончить передачу нужно MOB запретить или на прием настроить? Не уверен в деталях, это лучше написано в документации, но насколько помню, передача автоматически заканчивается с отправкой последнего байта из CANMSG заданного значением в CANCDMOB. Посмотрите, пожалуйста, описание. Насчёт сценария с бесконечной отправкой подсказать не могу. Возможно вы ставите в тупик контроллер шины который не получает подтверждение о доставке пакета и повторяет посылку?
--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
|
|
|
|
Сообщений в этой теме
lons83 CAN...не понятно(((( Nov 26 2012, 10:10 редактор Вариантов реализации CAN-контроллера много. Но все... Nov 26 2012, 12:09 lons83 Цитата(редактор @ Nov 26 2012, 15:09) Вар... Nov 26 2012, 17:27  Dog Pawlowa Цитата(lons83 @ Nov 26 2012, 20:27) все н... Nov 26 2012, 19:25   lons83 Цитата(Dog Pawlowa @ Nov 26 2012, 23:25) ... Nov 26 2012, 19:46    Dog Pawlowa Само по себе заполнение данными не вызывает переда... Nov 27 2012, 04:22     lons83 Цитата(Dog Pawlowa @ Nov 27 2012, 07:22) ... Nov 27 2012, 04:53 Dog Pawlowa Цитата(lons83 @ Nov 26 2012, 13:10) А вот... Nov 26 2012, 12:31     lons83 Цитата(PheeL @ Nov 27 2012, 12:37) Не уве... Nov 27 2012, 09:48      PheeL Цитата(lons83 @ Nov 27 2012, 13:48) Всем ... Nov 27 2012, 10:25 редактор С вероятностью 99% что у вас на шине CAN нет друго... Nov 28 2012, 07:49 lons83 C передачей вроде разобрался.
Но беспокоит момент... Dec 3 2012, 07:20 Vlad1977 Подскажите плииз, кто с CAN-ом разбирался, 2ой дек... Feb 26 2013, 09:21 Vlad1977 Разобрался с соединением опторазвязка сделана, пос... Feb 26 2013, 12:52 Vlad1977 Может у кого естьобработчик ошибок от CAN, в интер... Feb 27 2013, 08:41 Vlad1977 Люди есь кто живой? Что может быть такое, на подтв... Feb 28 2013, 05:22 =GM= Цитата(PheeL @ Nov 27 2012, 09:25) Ещё лу... May 23 2013, 10:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|