| Автор |
Съобщение |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Can bus проблем
Здравейте! Построил съм си CANbus линия с MCP2515 и SN65HVD230D. При нормални условия всичко е ОК. Проблемите започват ако няма нодове по линията. Как се установява липса на нодове?! За програмата съм използвал готова библиотека на CCS can-mcp251x. Проблемът е, че тези пичове на са доизпипали кода и когато няма други нодове, програмата забива. Вероятно буфера на MCP2515 се препълва и до там. Има ли някакъв прост начин да установя дали има други нодове по линията и да избегна тези проблеми?! Благодаря!
ПП: Мисля си да изпращам нещо като пинг - малко заклинание, на което нодовете да отговарят. Нз обаче какво би станало ако има много нодове и тръгнат да отговарят на куп...
_________________www.elkran.com
|
| Сря Авг 19, 2015 10:38 am |
|
 |
|
vesko_hard
Ранг: Ориентиран
Регистриран на: Сря Фев 08, 2006 3:32 pm Мнения: 253 Местоположение: Благоевград
|
 Re: Can bus проблем
То по спецификация кана не знае дали има нодове отсреща, Праща си и си чака. Терминирана ли е линията?
|
| Сря Авг 19, 2015 11:11 am |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Can bus проблем
Веско, това въобще не е вярно - знае си много добре, че отсреща няма никой и то точно по спецификация. Даже can контролера трябва да има брояч на грешките от изпратени, но не получени от никой съобщения и да дава прекъсване, в което програмата да се грижи да рестартира контролера когато въпросните грешки станат 127. Сега не знам как точно са го реализирали в майкрочипския чип, но би трябвало да е нещо подобно.
|
| Сря Авг 19, 2015 12:07 pm |
|
 |
|
vesko_hard
Ранг: Ориентиран
Регистриран на: Сря Фев 08, 2006 3:32 pm Мнения: 253 Местоположение: Благоевград
|
 Re: Can bus проблем
Това има ли го документирано някъде, да се образовам.
|
| Сря Авг 19, 2015 1:03 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Can bus проблем
Естествено - би трябвало да го има както в дейта шитовете, така и в стандарта. Става да закачиш и осцилоскоп и ще видиш как като няма никой отсреща да отгивори на акнолиджа и контролера не изпраща цялото съобщение а бичи нонстоп нещо като приамбъл и в същото време трябва да инкрементира брояча, за който споменах по-горе. CAN бъса е доста интелегентен и доста сейфти, което е естествено като се има предвид къде се ползва. Аз затова винаги го препоръчвам вместо RS-485 защото за разлика от него софтуера не трябва да се грижи за нищо на физическо и ниско ниво.
|
| Сря Авг 19, 2015 1:35 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: Can bus проблем
Въпрос! Да кажем, че намеря как да получа достъп до въпросния регистър! По принцип грешка може да възникне по ред причини - сиреч да се инкрементира регистъра. Как да различа двете неща? Кога е просто грешка и кога липса на получател?! Поздрави!
_________________www.elkran.com
|
| Сря Авг 19, 2015 5:22 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: Can bus проблем
ама ти наистина ли искаш някой да ти прочете какво пише на стр. 48 от чаршафа за MCP2515?
|
| Сря Авг 19, 2015 6:05 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Can bus проблем
Дедо, ама ти даже си отворил и чаршафа ли  Веско, в чиповете дето аз ползвам няма разграничаване на грешката, ама ти ако се замислиш тя е само липса на друг нод, което разбира се може да е откъсната или шортната жица. Ти толкова категорично се изказа в първия ти пост, че сега чак няма логика във въпросите ти  .
|
| Сря Авг 19, 2015 7:39 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Can bus проблем
На база на споменатите броячи контролера минава в error passive (май беше над 128 грешки) или ако продължи затъмнението стига до bus off state. Това нормалните контролери го имат като статус, като прекъсване и т.н. На МЦП-то не помня, минаха 10-тина години откак съм го ползвал. Разпознаването дали има друг активен node на бъса е че в края на съобщението предаващия пуска един бит, който всеки активен нод е длъжен да натисне и така предаващия разбира че някой е видял съобщението и то е минало валидно по бъса. Между другото, сега е момента да си осъвремениш платформата - SPI към CAN е загуба на време, в смисъл времето дето ще загубиш да питаш по форумите докато разбереш че е шит, ще ти стигне да си смениш платформата с такава с вграден кан.
|
| Сря Авг 19, 2015 9:58 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: Can bus проблем
Нямам под ръка удобен контролер с вграден CAN. Иначе благодаря за съветите. Утре ще видя как да осъвместя четенето на вътрешните регистри на MCP с това, което имам като код... Поздрави!
_________________www.elkran.com
|
| Сря Авг 19, 2015 10:27 pm |
|
 |
|
Quadro
Ранг: Новодошъл
Регистриран на: Нед Окт 31, 2004 3:42 pm Мнения: 175
|
 Re: Can bus проблем
Ще може ли малко повече обяснение защо това е така ? Мисля да пробвам един CAN за любителски проект и LPC-тата, които ползвам нямат вграден CAN,та мислех по SPI <-> CAN контролер с някакъв вграден transceiver.
|
| Вто Окт 13, 2015 4:57 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Can bus проблем
Майкрочипския спи кан контролер има бъгове и лимитации от дизайна. Мина много време откак го настъпих, но по спомен: - СПИ интерфейса не държи специфицираната скорост, май го пишеха 8мбит но не ги държи - броя мейлбокси е малък - имаш само един интерръпт (не можеш да вържеш определени пакети да генерират по-високо приоритетно прекъсване от други) - трябват ти микро с повече пинове - СПИ + интеръпт и ресет поне, отколкото двата на кан-а - към момента избора на микроконтролери с вграден кан започва от цени, по-ниски от тези на едно мцп - нема кой да се занимава с него, освен китайците докато клонират някой архаичен дизайн (примерно някой диагностики за коли) - имаше и други неща, но не помня вече - продуктът си работеше (работи) но всяка мотика удължаваше развоя и така си умря тоя дизайн (мина на микро с вграден кан) Много по-ефективно е да го имаш вътре контролера. Със сигурност има специфични проекти, в който няма микроконтролер с всички необходими периферии - например новите ELM327 китайците ги правят с някакъв блутут чип (май ARM7 или 9 имаше вътре  ) и на него му закачат микрочепа. Ако си в тази ситуация има резон.
|
| Сря Окт 14, 2015 1:57 pm |
|
|