Например TDA7294

Форум РадиоКот • Просмотр темы - Microchip MCP2515 CAN BUs Нарушается порядок отправки.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн янв 12, 2026 18:18:37

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Вс май 26, 2024 02:14:26 
Прорезались зубы

Карма: 6
Рейтинг сообщений: 5
Зарегистрирован: Пн ноя 14, 2011 22:48:42
Сообщений: 213
Рейтинг сообщения: 0
Я если честно даже не знаю где спросить, попробую здесь. Вдруг встречу того кто ковырялся сталкивался и разбирается.
50% успеха это хорошо сформулированный вопрос. И я понимаю что мне его подробно сформулировать сложно. Делаю устройство в котором важна последовательность пакетов кан.
Два дня дебажил ловил баг. Проблема у меня в том что из-за быстрой передачи ловлю баг, и два пакета меняются местами.
Попробую визуально текстом c простого.
Вот это работает: < Пакет ID1 летит ко мне ловлю, вычитываю по spi, меняю айди, отправляю по spi в mcp2515 и она его в кан отправляет >Пакет ID2
А тут баг: летят два пакета ко мне < Пакет ID1 (1), < Пакет ID1 (2) ловлю оба? ( не пойму как, не знаю какой размер у буфера приема MAB - Message Assembly Buffer). Вычитываю по spi первый пакет, меняю айди, по spi шлю пакет и команду RTS TXB0 в MCP2515(и она пытается отправить > Пакет NewID1 (1)) НО в этот момент кан шина занята там летят другие пакеты от меня не зависящие, поэтому MCP2515 логично не отправляет этот пакет в кан, а ждет. Пока она ждет я делаю тоже самое со вторым пакетом который прилетел шлю пакет и команду RTS TXB1 по spi. В этот момент кан шина освобождается, и MCP2515 что первым делом делает? По моей логике должна отправить в кан сообщение из буфера TXB0 который был в режиме ожидания. Pending. Но так как я отправил команду RTS TXB1 в момент когда шина освободилась, MCP2515 взяла и отправила сначала TXB1, и за ним сразу TXB0.
Хотя я "расставлял" задачи в порядке TXB0 => TXB1
В общем без очереди залез пакет с TXB1
Че делать ума не приложу.
Еще все усложняет что среда у меня MikroC со встроенной библиотекой которая закрыта, ничего не поправить. Так то наверно еслиб библиотеку использовать стороннюю, наверно можно предусмотреть этот момент, и например сделать проверку чист ли буфер TXB0 перед тем как слать команду RTS TXB1


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Пн июн 03, 2024 09:15:11 
Держит паяльник хвостом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 210
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 938
Откуда: от туда
Рейтинг сообщения: 0
Ответ простой - используй очередь на отправку пакетов и жди подтверждения отправки предыдущего.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Пн июн 03, 2024 09:34:05 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 70
Зарегистрирован: Чт май 03, 2012 17:03:35
Сообщений: 196
Откуда: Гомель, Беларусь
Рейтинг сообщения: 0
zombie47 писал(а):
По моей логике должна отправить в кан сообщение из буфера TXB0 который был в режиме ожидания.

Советую еще почитать в даташите, как оно по логике производителя чипа. Все же у него мэйлбоксы - это не очередь, это просто пул на отправку. А вот правила выбора приоритетов должны быть описаны. Не знаю, как там конкретно у 2515, поэтому посмотрите. Обычно в первую очередь отправку делают по правилам арбитража - чем меньше ID, тем выше приоритет. Если ID одинаковые - тогда уже будет еще какая-то логика.
Как выше написали, если нужно изменить эту схему - делайте очередь в МК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Пн июн 03, 2024 13:35:54 
Прорезались зубы

Карма: 6
Рейтинг сообщений: 5
Зарегистрирован: Пн ноя 14, 2011 22:48:42
Сообщений: 213
Рейтинг сообщения: 0
Ответ простой - используй очередь на отправку пакетов и жди подтверждения отправки предыдущего.

Да но как получить это подтверждение отправки предыдущего?
Цитата:
Если ID одинаковые - тогда уже будет еще какая-то логика.
Как выше написали, если нужно изменить эту схему - делайте очередь в МК.

ID одинаковые. Я тоже сначала думал дело в арбитраже)
Чтоб сделать очередь мне нужна инфа о том что пакет отправлен, а у меня этой инфы нету. Так как библиотека закрытая, нужно только искать и прикручивать библиотеку на отправку открытую и в ней уже регистры брать.
Ну или просто читать какой то адрес регистра второй раз.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Пн июн 03, 2024 16:09:23 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
zombie47 писал(а):
Ну или просто читать какой то адрес регистра второй раз.

И что в этом плохого, ещё раз прочитать у себя регистр? Главное- это настроить приём пакетов из сети, а не из внутреннего буфера, тогда такое чтение будет не беЗполезным: проверишь, что в сеьт нет КЗ, а в программе запущен механизм приёма-отправки через CAN.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Microchip MCP2515 CAN BUs Нарушается порядок отправки.
СообщениеДобавлено: Пн июн 03, 2024 21:04:31 
Прорезались зубы

Карма: 6
Рейтинг сообщений: 5
Зарегистрирован: Пн ноя 14, 2011 22:48:42
Сообщений: 213
Рейтинг сообщения: 0
Ну типо дублирую запрос. Там сама библиотека постоянно спрашивает у MCP состояние регистров, и я еще добавлю. Время эфира займу) Время деньги )


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

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y