CAN без драйверов

Nov 28, 2003 17 Replies

Hello, All!



Есть платка, на ней два Fujitsu MB 90F387. Надо их связать. CAN свободен.



Вопрос, можно ли попросту зацепить can-овский RX одного камня на TX другого и наоборот, и получить быстрый канал связи? Какую скорость можно получить? Какие трудности поджидают меня?



Bye.


Для начала поинтересуйся таблицей истинности CAN-трансивера (например, PCA82C250)

Соединить все 4 конца в одной точке. Точку эту подтянуть к питанию. Оба TXD через диоды Шотки.

Максимальную для чипа, если резистор подтяжки достаточно мал.

преодолимые... ;)

<< Фиг нас догонишь... (с) Светочка и Машенька << Dmitry Kuznetsov, Moscow,
formatting link
Беговая Черепаха] [Team LEXX] *

Anton Gusev и All в прошлый раз беседовали в пятницу, 28-го ноября, в 19:56

Как твои дела, Anton ?

AG> Есть платка, на ней два Fujitsu MB 90F387. AG> Hадо их связать. CAN свободен.

AG> Вопрос, можно ли попросту зацепить can-овский RX AG> одного камня на TX другого и наоборот, и получить AG> быстрый канал связи? AG> Какую скорость можно получить? AG> Какие трудности поджидают меня? Пpостите пожалуйста, но CAN - многоточечная сеть. И куда вы будете подключать 3 устpойство? В этой сети все CANH цепляются паpаллельно, а все CANL дpугим пpоводом тоже цепляются паpаллельно. Это пpи использовании с дpайвеpами. Без дpайвеpов не пpобовал, но возможно, достаточно и одной ноги. Или H и L соеденить чеpез инвеpтоp. Какой ноги - надо экспеpиментиpовать. Hо пpедваpительно надо понять, сможет ли контpоллеp, выдающий лог 1 пеpежить момент, когда эту ногу дpугой давит нулем.

Hу бывай! Пиши, Anton, незабывай!

Hi Dmitry Kuznetsov! You wrote to Anton Gusev on Sat, 29 Nov 2003 08:02:29 +0000 (UTC):

DK>> Есть платка, на ней два Fujitsu MB 90F387. DK>> Надо их связать. CAN свободен.

DK> Для начала поинтересуйся таблицей истинности DK> CAN-трансивера (например, PCA82C250)

Посмотрел. Вроде никаких инверсий...

DK> Соединить все 4 конца в одной точке. Точку эту DK> подтянуть к питанию. Оба TXD через диоды Шотки.

А! То есть, CAN контроллер должен слышать свою передачу? Понятно...

DK>> Какие трудности поджидают меня?

DK> преодолимые... ;) Большое спасибо, буду пробовать...

Bye!

Hi Leonid Egorov! You wrote to Anton Gusev on Sat, 29 Nov 2003 21:32:00 +0300:

AG>> Есть платка, на ней два Fujitsu MB 90F387. AG>> Hадо их связать. CAN свободен.

LE> Пpостите пожалуйста, но CAN - многоточечная сеть. LE> И куда вы будете подключать 3 устpойство?

Да мне не надо третье. Надо просто связать 2 микроконтроллера. У микроконтроллеров есть неиспользуемый CAN. Вот я и хочу его задействовать.

И вроде уже понятно как... (Dmitry Kuznetsov подсказал)

Bye!

AG> Какую скорость можно получить? AG> Какие трудности поджидают меня? LE> Пpостите пожалуйста, но CAN - многоточечная сеть. И куда вы будете LE> подключать 3 устpойство?

2-ух точечная - это тоже многоточечная, с точки зрения CAN

LE> В этой сети все CANH цепляются паpаллельно, а все CANL LE> дpугим пpоводом тоже цепляются паpаллельно. Это пpи использовании с дpайвеpами. LE> Без дpайвеpов не пpобовал, но возможно, достаточно и одной ноги. Или H и L LE> соеденить чеpез инвеpтоp. Какой ноги - надо экспеpиментиpовать. Hо LE> пpедваpительно надо понять, сможет ли контpоллеp, выдающий лог 1 пеpежить LE> момент, когда эту ногу дpугой давит нулем.

Можно сделать драйвер типа открытый коллектор.

DK>>> Есть платка, на ней два Fujitsu MB 90F387. DK>>> Надо их связать. CAN свободен.

DK>> Для начала поинтересуйся таблицей истинности DK>> CAN-трансивера (например, PCA82C250)

AG> Посмотрел. Вроде никаких инверсий...

Дело не в инверсиях, а в доминантных и рецессивных уровнях.

DK>> Соединить все 4 конца в одной точке. Точку эту DK>> подтянуть к питанию. Оба TXD через диоды Шотки.

AG> А! То есть, CAN контроллер должен слышать свою AG> передачу? Понятно...

Не только свою, а всех на шине.

DK>>> Для начала поинтересуйся таблицей истинности DK>>> CAN-трансивера (например, PCA82C250)

AG>> Посмотрел. Вроде никаких инверсий...

AM> Дело не в инверсиях, а в доминантных и рецессивных уровнях.

Ну и? Или это просто так, к слову пришлось?

DK>>> Соединить все 4 конца в одной точке. Точку эту DK>>> подтянуть к питанию. Оба TXD через диоды Шотки.

AG>> А! То есть, CAN контроллер должен слышать свою AG>> передачу? Понятно...

AM> Не только свою, а всех на шине.

:-) В моём случае - это одно и то же.

Bye!

DK>>>> Для начала поинтересуйся таблицей истинности DK>>>> CAN-трансивера (например, PCA82C250)

AG>>> Посмотрел. Вроде никаких инверсий...

AM>> Дело не в инверсиях, а в доминантных и рецессивных уровнях.

AG> Ну и? Или это просто так, к слову пришлось?

Не к слову. 0 - выданный любым передатчиком должен перетянуть все 1 на шине, выданные другими передатчиками. Инверсии здесь не при чем. Вообще, посмотри спецификацию CAN, тогда станет ясно, как организовать обмен, используя нестандартный phy-уровень.

Hello, Andy Mozzhevilov! You wrote to Anton Gusev on Mon, 1 Dec 2003 05:41:56 +0000 (UTC):

AM>>> Дело не в инверсиях, а в доминантных и рецессивных уровнях.

AG>> Ну и? Или это просто так, к слову пришлось?

AM> Не к слову. 0 - выданный любым передатчиком должен перетянуть AM> все 1 на шине, выданные другими передатчиками. Инверсии здесь не AM> при чем. AM> Вообще, посмотри спецификацию CAN, тогда станет ясно, как AM> организовать обмен, используя нестандартный phy-уровень.

Мне казалось, что всё уже прояснилось... То есть, то что мне написал Dmitry Kuznetsov - не заработает?

Bye!

AM> Не к слову. 0 - выданный любым передатчиком должен перетянуть AM> все 1 на шине, выданные другими передатчиками. Инверсии здесь не AM> при чем. AM> Вообще, посмотри спецификацию CAN, тогда станет ясно, как AM> организовать обмен, используя нестандартный phy-уровень.

AG> Мне казалось, что всё уже прояснилось... AG> То есть, то что мне написал Dmitry Kuznetsov - не заработает?

Мое имхо, что нужно не только знать ответ на вопрос "как", но и "почему именно так". Поэтому я всегда обращаюсь к первоисточнику - а в данном случае это спецификация CAN, что я и порекомендовал. В противном случае, если у тебя что-то не заработает, ты вероятно не сможешь сам найти причину. Но по большей части это все философия различных подходов к разработке,и углубляться в ее обсуждение я сейчас не хочу.

Привет!

AM>> Hе к слову. 0 - выданный любым передатчиком должен перетянуть AM>> все 1 на шине, выданные другими передатчиками. Инверсии здесь не AM>> при чем. AM>> Вообще, посмотри спецификацию CAN, тогда станет ясно, как AM>> организовать обмен, используя нестандартный phy-уровень.

AG> Мне казалось, что всё уже прояснилось... AG> То есть, то что мне написал Dmitry Kuznetsov - не заработает?

Заработает, но не на максимальной скорости... Выходной "0" у MB90 не очень крепкий, 4ма по паспорту поэтому без "драйвера" нагрузка "монтажного И " должна быть 1К, А какова общая емкость схемы СAN без драйвера? Эти два параметра определяют время перехода из доминантного в рецессивный уровень.

Для информации: на шине CAN для скорости 1Мбит стоит нагрузка на крайних драйверах по 120 Ом...

Hello, Andy Mozzhevilov! You wrote to Anton Gusev on Mon, 1 Dec 2003 06:26:10 +0000 (UTC):

AM> Мое имхо, что нужно не только знать ответ на вопрос AM> "как", но и "почему именно так". Поэтому я всегда обращаюсь к AM> первоисточнику - а в данном случае это спецификация CAN, что я и AM> порекомендовал. В противном случае, если у тебя что-то AM> не заработает, ты вероятно не сможешь сам найти причину.

Я же не отказывался читать спецификацию CAN! Просто сначала мне надо было выяснить принципиальную возможность.

Вот смотри: я спрашиваю: можно? Вариант ответа от Dmitry Kuznetsov : Да, только надо сделать так-то и так. Твой вариант: Почитай спецификацию CAN

Мне больше по душе первый.

AM> Но по большей части это все философия различных подходов к AM> разработке,и углубляться в ее обсуждение я сейчас не хочу.

Ладно, я больше не буду.

Bye!

AG> Я же не отказывался читать спецификацию CAN! Просто сначала мне AG> надо было выяснить принципиальную возможность.

AG> Вот смотри: я спрашиваю: можно? AG> Вариант ответа от Dmitry Kuznetsov : AG> Да, только надо сделать так-то и так. AG> Твой вариант: AG> Почитай спецификацию CAN

Мой ответ был не на твой первый вопрос, а на твое замечание: AG>>> Посмотрел. Вроде никаких инверсий...

AG> Мне больше по душе первый.

Я не счел нужным дублировать ответ DK, лишь указал тебе, что инверсии там не при чем.

AG> Ладно, я больше не буду.

Вот и хорошо.

Hello, Andy Mozzhevilov! You wrote to Anton Gusev on Mon, 1 Dec 2003 09:52:46 +0000 (UTC):

AM> Мой ответ был не на твой первый вопрос, а на твое замечание: AG>>>> Посмотрел. Вроде никаких инверсий...

AM> Я не счел нужным дублировать ответ DK, лишь указал тебе, что инверсии AM> там не при чем.

Ну как же не при чём? Если бы контроллер CAN передавал инверсно (активная единица), то я бы не смог соединить 2 контроллера напрямую. Если бы логика приёмника была инверсной по отношению к логике передатчика - опять же не смог бы.

AG>> Ладно, я больше не буду.

AM> Вот и хорошо.

Не удержался:-)

Bye!

AM> Мой ответ был не на твой первый вопрос, а на твое замечание: AG>>>> Посмотрел. Вроде никаких инверсий...

AM> Я не счел нужным дублировать ответ DK, лишь указал тебе, что инверсии AM> там не при чем.

AG> Ну как же не при чём? Если бы контроллер CAN передавал инверсно AG> (активная единица), то я бы не смог соединить 2 контроллера AG> напрямую. Если бы логика приёмника была инверсной по отношению AG> к логике передатчика - опять же не смог бы.

Так DK посоветовал тебе поинтересоваться таблицей истинности CAN-трансивера (например, PCA82C250) - а это phy-драйвер а не контроллер CAN. Ты же сделал непонятные выводы по отсутствию инверсии у CAN контроллера :)

Hello, Andy Mozzhevilov! You wrote to Anton Gusev on Mon, 1 Dec 2003 11:03:31 +0000 (UTC):

AM> Так DK посоветовал тебе поинтересоваться таблицей истинности AM> CAN-трансивера (например, PCA82C250) - а это phy-драйвер а не AM> контроллер CAN. Ты же сделал непонятные выводы по отсутствию AM> инверсии у CAN контроллера :)

Я скачал pdf на PCA82C250, посмотрел эту таблицу истинности, и по ней выяснил, как передаёт CAN-контроллер. О чём радостно и сообщил. Ну не знал я этого!

Bye!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required