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

 
 
 
Reply to this topicStart new topic
> CAN контроллер в LPC21xx, работает кто с ним?
Andy Mozzhevilov
сообщение Oct 24 2005, 04:41
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Что-то по errata список багов довольно внушительный.
Вообще с ним работать можно реально?
Ну фильтры там не работаеют, wake up и т.п., конечно хреново, но просто можно не пользовать и анализировать все программно, но вот последний баг что-то меня совсем удручил
"Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node."
Вообще, нужен неразлапистый ARM с CAN, не более QFP64. У Atmel нету, у филипса х.з., можно ли пользовать, у кого есть?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 6 2006, 03:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Подниму тему еще раз.
Реально кто-либо запускал проект с CAN на LPC?
Все ли баги, описанные в errata реально обходятся?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
net
сообщение Jun 6 2006, 05:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473



Цитата(Andy Mozzhevilov @ Jun 6 2006, 07:49) *
Подниму тему еще раз.
Реально кто-либо запускал проект с CAN на LPC?
Все ли баги, описанные в errata реально обходятся?

в RTX есть драйвера в исходниках з- я думаю все должно работать
собираюсь попробовать эту штуку - примерно через месяц
Go to the top of the page
 
+Quote Post
elantra
сообщение Jun 6 2006, 07:34
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 28-07-05
Пользователь №: 7 162



Мы сделали уже три модуля. Реализовали на нем почти CANopen. Работает. Фильтры действительно не используем. Программист Эрраты как-то обошел. Так-что не бойтесь.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 6 2006, 07:45
Сообщение #5


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Я использовал LPC2129, работал он норамально
но особого трафика по CAN не было, и кстати errata был намного меньше, посмотрел свежий действительно впечатляет.
Скорее всего баг с arbitration lost проявляется очень редко.
Все остальные легко обходятся.

Кстати фильтры прекрасно работают! И в ерр ата указан баг только для FULL CAN режима и то легко обходится.

Есть еще у ST арм с CAN STR712 например. (тоже 64 ноги)
http://mcu.st.com/mcu/modules.php?name=mcu...TR712FR2&FAM=86
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 6 2006, 07:52
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(elantra @ Jun 6 2006, 13:34) *
Мы сделали уже три модуля. Реализовали на нем почти CANopen. Работает. Фильтры действительно не используем. Программист Эрраты как-то обошел. Так-что не бойтесь.


Фильтры можено реализовать программно, это не проблема, меня волнует вот этот баг:
"Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node."
Может кто объяснит подробно, что это есть и с чем его едят?
Work-around прочитал, но хотелось бы услышать мнение, если кто уже обходил этот баг.

Цитата(KRS @ Jun 6 2006, 13:45) *
Есть еще у ST арм с CAN STR712 например. (тоже 64 ноги)
http://mcu.st.com/mcu/modules.php?name=mcu...TR712FR2&FAM=86


Да, такой у меня есть. У него правда есть несколько мелких неудобств, типа нет встроенного осцииллятора, нужно только внешний генератор вешать.
Но сейчас меня интересует наоборот толстый uC и с 3 CAN молулями и EMI, смотрю LPC2294.
Может еще кто присоветует ARM с тремя CAN?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 6 2006, 08:06
Сообщение #7


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Andy Mozzhevilov @ Jun 6 2006, 11:52) *
Фильтры можено реализовать программно, это не проблема, меня волнует вот этот баг:
"Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node."
Может кто объяснит подробно, что это есть и с чем его едят?
Work-around прочитал, но хотелось бы услышать мнение, если кто уже обходил этот баг.

Вот это самый страшный баг! Если вдруг одновременно начнет пердавать филипс и кто то еще - возникнет arbitration lost, но один их пакетов который имеет наименьший приоритет проходит (dominant bit у него раньше), так вот филипс его выкидывает (похоже).
Рекоминдация по обходу конечно идиотская! они рекомендуют делать Self Reception Request (т.е заодно и все свои пакеты принимать) и к тому же свои пакеты еще и фильтр не должен выкидывать!

Цитата(Andy Mozzhevilov @ Jun 6 2006, 11:52) *
Да, такой у меня есть. У него правда есть несколько мелких неудобств, типа нет встроенного осцииллятора, нужно только внешний генератор вешать.
Но сейчас меня интересует наоборот толстый uC и с 3 CAN молулями и EMI, смотрю LPC2294.
Может еще кто присоветует ARM с тремя CAN?


Есть TMS с 3 CAN
http://focus.ti.com/docs/prod/folders/prin...s470r1b768.html

и STR73x тоже с 3 CAN
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 6 2006, 08:57
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(KRS @ Jun 6 2006, 14:06) *
Цитата(Andy Mozzhevilov @ Jun 6 2006, 11:52) *

Фильтры можено реализовать программно, это не проблема, меня волнует вот этот баг:
"Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node."
Может кто объяснит подробно, что это есть и с чем его едят?
Work-around прочитал, но хотелось бы услышать мнение, если кто уже обходил этот баг.

Вот это самый страшный баг! Если вдруг одновременно начнет пердавать филипс и кто то еще - возникнет arbitration lost, но один их пакетов который имеет наименьший приоритет проходит (dominant bit у него раньше), так вот филипс его выкидывает (похоже).
Рекоминдация по обходу конечно идиотская! они рекомендуют делать Self Reception Request (т.е заодно и все свои пакеты принимать) и к тому же свои пакеты еще и фильтр не должен выкидывать!

То есть я правильно понимаю, чтобы обойти этот баг нужно принимать всегда свои передаваемые пакеты и после этого сравнивать ID принятого пакета с переданным, если он не совпадает, то считать, что это пакет принят от другого узла CAN и обрабатывать его в соответствии с этим?
То есть CAN контроллер в LPC напоминает автомобиль с педальным приводом.

Цитата
Цитата(Andy Mozzhevilov @ Jun 6 2006, 11:52) *

Да, такой у меня есть. У него правда есть несколько мелких неудобств, типа нет встроенного осцииллятора, нужно только внешний генератор вешать.
Но сейчас меня интересует наоборот толстый uC и с 3 CAN молулями и EMI, смотрю LPC2294.
Может еще кто присоветует ARM с тремя CAN?


Есть TMS с 3 CAN
http://focus.ti.com/docs/prod/folders/prin...s470r1b768.html

На эти у меня чего то не стоит. Какие-то мутные.

Цитата
и STR73x тоже с 3 CAN

А эти слишком новые, вроде только где-то только в анонсах встречал. Или реально уже есть в продаже?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 6 2006, 09:08
Сообщение #9


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Andy Mozzhevilov @ Jun 6 2006, 12:57) *
То есть я правильно понимаю, чтобы обойти этот баг нужно принимать всегда свои передаваемые пакеты и после этого сравнивать ID принятого пакета с переданным, если он не совпадает, то считать, что это пакет принят от другого узла CAN и обрабатывать его в соответствии с этим?
То есть CAN контроллер в LPC напоминает автомобиль с педальным приводом.


Примерно так, судя по описанию в ERRATA
честно говоря когда я начинал с LPC2129 этого errata не было и я не знал про этот баг smile.gif и в общем с этой проблемой не столкнулся.

Цитата
Есть TMS с 3 CAN
Цитата

На эти у меня чего то не стоит. Какие-то мутные.


Да это хорошее замечание! Они наверное поэтому и не пользуются у нас особой популярностью.
Но вот на семинаре по MSP430 про них немного зашла речь... говорят у них ядро вылизано и глюков нет.

Цитата
и STR73x тоже с 3 CAN
Цитата

А эти слишком новые, вроде только где-то только в анонсах встречал. Или реально уже есть в продаже?


Похоже что нет sad.gif
а ведь у них и питание 5 V! что иногда довольно интересно.
Go to the top of the page
 
+Quote Post
Velund
сообщение Jun 6 2006, 15:23
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Кстати у моторолы (точнее Freescale) есть серия MAC7xxx - АРМ7 с кучей вкусностей, включая CAN... Питание 3.3 или 5 вольт.
Go to the top of the page
 
+Quote Post
Pugachyov
сообщение Jun 6 2006, 15:54
Сообщение #11





Группа: Новичок
Сообщений: 11
Регистрация: 19-01-06
Пользователь №: 13 370



Сейчас в стадии прогона находится система, в которую входят и устройства на LPC2129. Также на линии висят узлы на MB90F497 и SJA1000 - всё прекрасно работает.
Раньше использовали SJA1000, поэтому переползать на LPCx было несложно. CAN функционирует, фильтры работают. Вы наверное имели в виду баг с неработоспособностью фильтров в FullCAN mode и рекомендацией реализовывать это программно - но без FullCAN можно жить, в остальном соответствует документации.
PS - гонял линию с большой загрузкой - больше 60% от теоритической полной пропускной способности на разных скоростях, и при просмотре статистики узлов видно, что имеет место быть потеря пакетов. Процент очень маленький, порядка сотых долей %, но бывает. Правда, у нас такие ситуации отрабатываются вышележащим протоколом с повторной передачей.

Сообщение отредактировал Pugachyov - Jun 6 2006, 16:00
Go to the top of the page
 
+Quote Post
Alex03
сообщение Jun 7 2006, 08:02
Сообщение #12


Местный
***

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



Цитата(Andy Mozzhevilov @ Jun 6 2006, 14:57) *
Цитата(KRS @ Jun 6 2006, 14:06) *

Цитата(Andy Mozzhevilov @ Jun 6 2006, 11:52) *

Фильтры можено реализовать программно, это не проблема, меня волнует вот этот баг:
"Messages might not be received correctly if during a CAN Transmission the CAN bus arbitration is lost to another CAN node."
Может кто объяснит подробно, что это есть и с чем его едят?
Work-around прочитал, но хотелось бы услышать мнение, если кто уже обходил этот баг.

Вот это самый страшный баг! Если вдруг одновременно начнет пердавать филипс и кто то еще - возникнет arbitration lost, но один их пакетов который имеет наименьший приоритет проходит (dominant bit у него раньше), так вот филипс его выкидывает (похоже).
Рекоминдация по обходу конечно идиотская! они рекомендуют делать Self Reception Request (т.е заодно и все свои пакеты принимать) и к тому же свои пакеты еще и фильтр не должен выкидывать!

То есть я правильно понимаю, чтобы обойти этот баг нужно принимать всегда свои передаваемые пакеты и после этого сравнивать ID принятого пакета с переданным, если он не совпадает, то считать, что это пакет принят от другого узла CAN и обрабатывать его в соответствии с этим?
То есть CAN контроллер в LPC напоминает автомобиль с педальным приводом.


По моему вы както не правильно понимаете этот пункт Errata.
Т.е. LPC-CAN не принимает пакет от другого узла выйгравший arbitration если он (LPC-CAN) в то-же время пытался передать пакет. При этом retransmit своего пакета вяко будет. Всё это если передача без Self Reception Request

Баг конечно неприятный, но work-around вполне приемлимый.
Все пакеты передаёте с Self Reception Request.
Если у вас ID передаваемых и принимаемых пакетов не пересекаются то Acceptance Filter устраняет всё что надо. В противном случае - ДА, надо програмно отсеивать, но с третьей стороны програмно оно как правило и так отсеивается (парсится).

В общем у меня 2292 вполне работает. Раньше и 3 передатчика работали вместе, пока в errata о них не появилось бага.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Feb 28 2007, 07:01
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Вот руки дошли поднимать CAN на 2294.
Более вдумчиво перечитал errata, и вроде сейчас она не внушает какого-то большого ужаса. Но не понятен баг CAN.5

CAN.5 Handling Reset Mode and Abort Transmission
Introduction: In Reset Mode, the CAN operations are disabled and writable registers can be written. If an Abort Transmission command is issued then a pending transmission request is cancelled if not already in progress.

Problem: Normal operation cannot be resumed after reset or abort transmission without using one of the workarounds below.

Может кто-то прокомментировать, в чем этот баг выражается? И кто как понимает условия его возникновения?
Предложенные способы решения мне как-то не очень нравятся и имеют определенные недостатки.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Feb 28 2007, 07:20
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



То есть правильно ли я понимаю, что вышеозначенная проблема проявляется именно при остановке передачи фрейма CAN, и не будет проявляться при установке RESET mode, если или Abort Transmission, если в текущий момент кадров на передачу в буфере нет?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:18
Рейтинг@Mail.ru


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