Перейти к содержанию
    

Надо реализовать сеть на общей шине при помощи CAN-интерфейса из 4-5 абонентов. В целях удешевления задумки рассматриваю микроконтроллеры с встроенным CAN-трансмиттером, чтобы не ставить внешнюю микросхему CAN-контроллера. В таком решении меня настораживает, что микроконтроллер ничего не отделяет от CAN-шины, на которой могут быть наводки, помехи и т.д. Так же на шине должны быть установлены согласующие резисторы 60 Ом, которые дают дополнительную нагрузку на микроконтроллер. С другой стороны вешают же несколько микроконтроллеров на одну шину I2C. Подскажите, пожалуйста, справедливы ли мои опасения, подключают ли так контроллеры или все же внешний контроллер шины предпочтительнее в целях защиты МК?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, aleksandr-zh сказал:

а каковы расстояния и скорость обмена?

До 1 метра, до 1Мбит/с

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 минуты назад, Turgenev сказал:

В целях удешевления задумки рассматриваю микроконтроллеры с встроенным CAN-трансмиттером, чтобы не ставить внешнюю микросхему CAN-контроллера

В названии темы STM. Разве бывают STM с втроенным трансмиттером? Там же вроде бы только контроллер на борту, драйвер шины для всех (?) моделей STM нужен внешний. С внешним драйвером все ваши вопросы отпадают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, Сергей Борщ сказал:

В названии темы STM. Разве бывают STM с втроенным трансмиттером? Там же вроде бы только контроллер на борту, драйвер шины для всех (?) моделей STM нужен внешний. С внешним драйвером все ваши вопросы отпадают.

Вот этот момент я и не понимаю: отличие контроллера от драйвера. Например, STM32F042F4P6, в нем есть CAN-контроллер. Можно ли его напрямую вешать на шину CAN и чем это чревато?

Тут, например, пишут что наоборот лучше без периферии:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так почитайте, в чем разница! Тот же RS-232 тоже нельзя напрямую к ногам цеплять — сгорит МК.

Ведь CAN — это дифлиния, ему нужен драйвер (преобразователь уровней на ОУ). Я себе преобразователь CAN-USB собирал на STM32F0x2. С гальваноразвязкой в те времена себестоимость платы была около трехсот рублей, без гальваноразвязки — немного дешевле.

8 minutes ago, Turgenev said:

Тут, например, пишут

Не читайте за завтраком советских  газет!

"Встроенный" в STM32 CAN — это по сути программный уровень. На Tx выдаются данные, с Rx они принимаются. Анализируются коллизии и т.д., и т.п. Если вы хотите соединить на маленьком расстоянии несколько МК при помощи CAN, возможно, достаточно будет у всех Rx и Tx соединить в кучу. Но ведь скорость все равно будет низкой, лучше уж для локальных связей нечто пошустрей использовать, чем несчастный мегабит в секунду (сами можете посчитать, какая будет предельная скорость, если ~45% битов в обычном CAN — служебные)!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Eddy_Em сказал:

Ну так почитайте, в чем разница! Тот же RS-232 тоже нельзя напрямую к ногам цеплять — сгорит МК.

Ведь CAN — это дифлиния, ему нужен драйвер (преобразователь уровней на ОУ). Я себе преобразователь CAN-USB собирал на STM32F0x2. С гальваноразвязкой в те времена себестоимость платы была около трехсот рублей, без гальваноразвязки — немного дешевле.

Так я глянул физ уровень CAN- там максимум 4.5 В, но да, сигнал дифференциальный. У 3.3 вольтовых STM есть пины толерантные к 5В, а значит, думалось мне, реально засунуть туда и полноценный CAN. У RS-232 хоть и тоже дифференциальный сигнал, но напряжения по стандарту там горааааздо выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, Turgenev сказал:

У RS-232 хоть и тоже дифференциальный сигнал, но напряжения по стандарту там горааааздо выше.

Диф. сигнал у RS422, RS485, но не RS232

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, CAN - очень удобная штука. Вот, не так давно делали с мужиками новый прибор, толпа шаговиков, на каждом — пусироботовский драйвер. К компу (легкий безвентиляторный, куплен на али за 25тыр) подключен через мой переходник CAN-USB. Вообще шикарно: ничего разрабатывать на МК не нужно, просто подключил, написал под комп ПО, и все работает. Правда, все равно пришлось разработать модуль управления нагрузкой (релюшки, ШИМ) на STM32F042.

Очень плохо, что для управления промышленными моторами так мало приводов на CAN: из наиболее доступных — дорогущие SEW'овские. А все попсовые дешевые — на ублюдском модбасе, который разве что совсем старый пердун будет использовать (древний же и совершенно убогий протокол).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Turgenev сказал:

Вот этот момент я и не понимаю: отличие контроллера от драйвера.

Контроллер занимается логикой, драйвер - согласованием электрических сигналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, Turgenev сказал:

Вот этот момент я и не понимаю: отличие контроллера от драйвера. Например, STM32F042F4P6, в нем есть CAN-контроллер. Можно ли его напрямую вешать на шину CAN и чем это чревато?

Чем читать всякий сомнительный мусор в помойке инете, непонятно кем и с какой квалификацией написанный, лучше изучите примеры реальных рабочих плат с CAN. Можно посмотреть на отладочные платы с CAN. Например:

http://starterkit.ru/html/index.php?name=shop&op=view&id=66

http://starterkit.ru/html/index.php?name=shop&op=view&id=62

(есть там же и на других МК). Схемы плат там также имеются. Вроде и исходники каких-то примеров на них были.

А также почитайте RM и даташиты на МК и чипы со схем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, Eddy_Em said:

соединить на маленьком расстоянии несколько МК при помощи CAN, возможно, достаточно будет у всех Rx и Tx соединить в кучу. 

нужно еще резистор подтягивающий к питанию и все выходы в режим open drain (на русском приблизительно "открытого коллектора")

но не советую так делать - драйвер это микросхема 8 ног - проще ее подпаять. чтобы драйвер был в контроллере - никогда такого не видел, там все-таки 30V не должно перегорать - то есть "попрочнее" должен быть кремний, чем в микроконтроллере.

 

UPD вот кстати продается такое https://www.chipdip.ru/product0/8001775767

чипидип дерет с трудящихся три шкуры,наверно, можно и подешевле найти (ну и если не в Москве, то наверно такого добра и в алиэкспресах есть)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 минуту назад, yes сказал:

UPD вот кстати продается такое https://www.chipdip.ru/product0/8001775767

чипидип дерет с трудящихся три шкуры,наверно, можно и подешевле найти (ну и если не в Москве, то наверно такого добра и в алиэкспресах есть)

ТСу выгоднее целую отладку: http://starterkit.ru/html/index.php?name=shop&op=view&id=27

за 2т.р. купить. Там не только чип CAN-физики, но и МК и всё остальное. Это будет гораздо выгоднее, чем что-то колхозить жечь и переделывать. А переделывать скорей всего придётся с его уровнем владения предметом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, yes said:

можно и подешевле найти

MCP2551, я их пару лет назад по 20р на али несколько десятков брал. Отлично  работают. Но лучше брать ISO1050+B0505S — будет гальваноразвязка при стоимости немногим больше 100 рублей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ваши советы и критику. Все прочитал, усвоил, буду применять на практике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...