KSN 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба Суть проблемы. Конфигурирую оба принимающих буфера на прием любых сообщений при выключенных масках и фильтрах (RXM1 = 1,RXM0 = 1). Регистры маскок и фильров равны 0. По СAN интерфейсу посылаю 1 посылку(c другого устройства) с идентификатором 0x3001 и 1 байтом данных, равным 0xFE; MCP2515 выдает, что приняла посылку 0x3001 и 1 байт данных 0xFE. И тут же сигналит, о принятии еще одной посылки: идентификатор 0x0000 и 4 байта данных 0xFE 0x00 0x00 0x00. Откуда она берет вторую посылку? Объясните... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KSN 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Разобрался. Тема закрыта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KSN 0 27 ноября, 2007 Опубликовано 27 ноября, 2007 · Жалоба Прошу прощения, но ляп был в том, что я только начал осваивать CAN. Проблема заключалась в следующем. В сеть CAN было включено 2 устройства, один на AT90CAN128, второе на mcp2515. Для AVR использовал библиотеку 2003 года от Atmel(если не ошибаюсь из примера загрузчика). Так вот, с AVR посылал 1 пакет. MCP2515 принимал этот пакет и еще выдавал, что принял второй пакет. Осциллографом просмотрел CAN шину, действительно, после отправления "правильного" пакета на шине еще были посылки. Интуитивно понятно, что что-то не так. Не стал копаться в библиотеке, а взял библиотеку от Atmel 2007 года и все заработало. Сколько посылок послал, столько mcp2515 и принял - не больше, но и не меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Здравствуйте. Что бы тем не плодить, напишу здесь. Я думаю в тему будет. Так вот. Пытаюсь справиться с принятием сообщений. Непонятно, каким то образом, регистр RXB0CTRL изменяет свои биты, конкретно биты RXM1 и BUKT. В программе он конфигурируется только один раз в режиме конфигурации и принимает только значение RXM1 = 1 (принятие расширенных сообщений, ), BUK = 0 (Запись сообщения из RXB0 в RXB1 запрещена). Работает система так: устройство на шине посылает 8 сообщений с идентификатором 00 FF10 00. Моё устройство (которое не так работает) имеет 8 раз дёргает ногу RX0BF (которая настроена на опускание при принятии правильного сообщения в RXB0). Читаю RXB0 и RXB1 и смотрю: Данные с адресом лежат в RXB1. Регистр RXB0CTRL = 0. И вот как он это делает ума не приложу. Посоветуйте, куда копать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 28 апреля, 2011 Опубликовано 28 апреля, 2011 (изменено) · Жалоба И есть ещё такое поведение: Адрес сообщения 00 FF 10 00 Так вот, Если фильтр RX0 настроить на этот адрес, то не принимает, а если отличный любой другой ,то принимает сообщения. Маска RXM0 FF FF FF FF Изменено 28 апреля, 2011 пользователем KARLSON Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Всё. Исправил ситуацию. Ошибка в монтаже приёмника. RX0BF и RX1BF выводы были перепутаны местами. И другим примечание. Если требуется принимать сообщения только с одним идентификатором, настраиваете фильтр 0 (RXF0) и маску 0 (RXM0) на нужный идентификатор, а фильтр1 (RXF1) и маску 1 (RXM1) на FF FF FF FF, что бы буфер RXB1 не работал. Если RXB1 не настроить, то он всё подряд будет принимать. Зачем лишние действия контроллеру)). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 26 мая, 2011 Опубликовано 26 мая, 2011 · Жалоба Что-то я с ним никак не подружусь. Через некоторое время работы сам переходит в конфигурационный режим. Как это вообще возможно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться