Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2018-ноя-16 12:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 2014-сен-05 14:10 
Не в сети

Зарегистрирован: 2014-сен-05 14:04
Сообщения: 2
Здравствуйте. Скажи пожалуйста возможна ли работа сразу нескольких буферов CAN_BSR? Если да, то как провести активацию? Я пробовал следующим образом:
CAN_BSR = 0x00;
CAN_CS = 0x83;
CAN_BSR = 0x01;
CAN_CS = 0x83;
CAN_BSR = 0x02;
CAN_CS = 0x83;
и т.д.
Но убедиться в работе не получилось.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-сен-08 10:12 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
да, использование нескольких буферов возможна.
В принципе все правильно. Включите блок CAN предварительно.
Расшифруйте, пожалуйста, фразу: "Но убедиться в работе не получилось".
Программу пишите на С или ASM?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-сен-08 14:28 
Не в сети

Зарегистрирован: 2014-сен-05 14:04
Сообщения: 2
Petr писал(а):
да, использование нескольких буферов возможна.
В принципе все правильно. Включите блок CAN предварительно.
Расшифруйте, пожалуйста, фразу: "Но убедиться в работе не получилось".
Программу пишите на С или ASM?

Пишу на C в IDE1886. Не получилось убедиться: отправляли >1 сообщения по CAN. предварительно я инициализировал пины, чтобы они выставляли высокий уровень при срабатывании прерывания по каждому из буферов CAN_BSR. Сообщения посылали с использованием устройства от "Марафон" CAN-bus-USB и программы CAN WISE. Срабатывал только один буфер, то есть он успевал принять все 6 сообщений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-сен-08 16:05 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Так если один буфер принимал все сообщения, то в чем проблема? Значит между сообщениями большой временной интервал, позволяющий обработать CAN-сообщение и подготовить данный буфер к приему нового сообщения.
Собственно ситуация такая: вы посылаете сообщение с ПК, контроллер его принимает, помещает в первый свободный буфер с наименьшим номером (в нашем случае в 0-й буфер), возникает событие прерывания, вы благополучно считываете данные из этого буфера (освобождаете его), далее этот 0-й буфер ждет новое сообщение, принимает его и т.д. Так? В этом случае налицо штатный режим работы блока CAN.
Чтобы увидеть прием сообщений во все буферы, которые вы настроили на прием, попробуйте не очищать буфер после приема сообщения (не сбрасывать бит RXFULL в регистре CAN_RXCS), тогда следующее сообщение должно будет разместиться в следующем буфере (первом) и т.д.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB