Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 23:16

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 21 апр 2020, 12:34 
Старожил

Зарегистрирован: 24 июн 2011, 14:05
Сообщения: 309
Откуда: Новочеркасск
Если верить даташиту ADuM1200 - однонаправленый двух канальный, нужен ADuM1201 или вообще его выкинуть и без развязки если на столе отладить. А MCP2551 - это вообще драйвер CAN. Холодное и горячее (даже наверное не так: это вообще микросхемы с абсолютно разными назначениями) не путайте без MCP2551 или аналога ничего не получиться. Конечно в stm32 полноценная поддержка CAN. Вы только документацию читайте иногда, тогда вопросов не будет таких. На ногах МК сигналы 0<->Vio, а в CANH - (Vio/2<->Vio), CANL - (0<->Vio/2) (если используется изолированный CAN то уровни могут быть отличные от Vio на стороне шины), вот чтобы согласовать это и нужен драйвер. Вы же RS-485 через драйвер подключаете к МК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 30 апр 2020, 15:02 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Посмотрел схему еще раз, оказалось перепутаны ножки TxD и RxD
Теперь сигнал до от переходника доходит до модуля NI, но доходит кадр ошибки. В обратную сторону ничего не доходит.
Может ли быть причина в изоляторе ADuM1200? То есть в обратную сторону ничего не должен пропускать.

Datasheet для ADuM1200/ADuM1201:
https://www.analog.com/media/en/technic ... 0_1201.pdf

Пример использования изоляторов для кана:
https://www.analog.com/media/en/technic ... AN-770.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 30 апр 2020, 15:27 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
И еще раз, на всякий случай хочу уточнить, так как в мануале ничего конкретного не указано. Обеспечивает ли stm32f042 именно CAN на физическом уровне? Как показано на картинке.


Вложения:
1920px-CAN-Bus-frame_in_base_format_without_stuffbits.svg.png
1920px-CAN-Bus-frame_in_base_format_without_stuffbits.svg.png [ 91.6 Кб | Просмотров: 533 ]
Can.jpg
Can.jpg [ 17.34 Кб | Просмотров: 533 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 30 апр 2020, 15:37 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
На физическом уровне это обеспечивает преобразователь уровней. Рублей за 5.
Например, MCP2551.
У меня на таком CAN-сниффер самопальный работает. Схема там же — в директории canbus (точнее, там — макетка, на которой я разрабатывал USB и CAN на STM32F072, сам сниффер намного компактней, надо будет как-нибудь нарисовать плату и на jlcpcb заказать).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 30 апр 2020, 18:53 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2955
о. а расскажите, плз, вот если делаю устройство с tja1040 (в чем отличия от tja1050?) - нужно ли там этот самый ADuM1201 ставить?
или в low-end девайсе типа можно и без защит обойтись? чем чревато?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 01 май 2020, 13:14 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
ADUM'ы — это гальваноразвязка. Она нужна только в том случае, если у вас между концами кабеля могут быть разные потенциалы земли. Т.е. когда кабель через улицу проходит; либо внутри помещения, но на оборудование, сидящее на разных земляных контурах. Также — если рядом всякие мощные источники ЭМП.
А когда надо CAN-шину перекинуть внутри кабинета, гальваноразвязка не нужна. У нас, кстати, уже 18 лет на телескопе система управления работает, где длина кабеля за 150м, а на нем всего пара устройств с гальваноразвязкой, остальные "напрямую" подключаются. Но там "земля" — сам корпус телескопа, дура в 650т…

Кстати, вот хреново, что все эти дешевые can-преобразователи работают от 5В! А те, что на 3.3В уже дороже значительно…
Ну и совсем хреново, что нет (по крайней мере, я не нашел) интегрированных оптоизолированных трансиверов — чтобы не нужно было дополнительно еще и оптоизолированный DC/DC ставить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 01 май 2020, 17:25 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2955
меня больше автомобильная практика интересует.
кто на коленке делает - обходятся без изоляции. а вот в OEM девайсах как?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 01 май 2020, 17:27 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Дык, взять — и вскрыть.
Честно говоря, сильно сомневаюсь, что там в каждой железке по адуму натыкано. Максимум - в ЭБУ. А на железках — от силы PESDCAN для защиты от статики.
P.S. Вожусь сейчас с контроллером ШД на CANopen. Коробчонка настолько мелкая, что мне все интересно ее разломать (китайцы термопроводящим клеем все склеили, гады) и посмотреть, что ж там внутри! Потому что я не представляю себе, как можно в такой малюсенький корпус запихнуть микроконтроллер, драйвер ШД, преобразователь CAN-уровней и еще кучу обвязки. Но уж гальваноразвязки там стопудово нет: не влезла бы!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 04 май 2020, 22:20 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
Да не такая уж и маленькая коробка, все это прекрасно влезет, если грамотно решено охлаждение. Тем более что часто применяют гибко-жесткие платы, и складывают их бутербродом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 05 май 2020, 16:59 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2955
про гибко-жесткие платы - поподробнее плз? что за чудо-зверь?

про CAN - сначала остановился на SN652HVD30
а потом увидел ISO1050 среди basic parts на jlcpcb.
я правильно понял, что оно вполне себе такая стоящая замена?

ЗЫ впрочем, в easyeda уже цена вдвое выше и стока нет (а на сайте - $1.30 и много в запасе). хз чему верить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 11:38 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Добрый день!

Столкнулся с такой проблемой:
Stm'ка отсылает пакеты до интерфейса NI. Этот интерфейс видит пакеты только тогда, когда CAN на STM настроен в режим LOOPBACK. В нормальном режиме доходят кадры ошибок.
В обратную сторону ничего не приходит.
В чем может быть причина?
Ставил разные скорости - не помогает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 12:06 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Что-то у вас там явно не так: посмотрите картинку из RM! В loopback-режиме Tx и Rx внутри замкнуты, наружу идет только Tx.
Вы контролируете ошибки? Что там происходит? И что за "интерфейс NI" такой?
Кстати, скорости интерфейсов согласованы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 13:29 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Eddy_Em писал(а):
Что-то у вас там явно не так: посмотрите картинку из RM! В loopback-режиме Tx и Rx внутри замкнуты, наружу идет только Tx.
Вы контролируете ошибки? Что там происходит? И что за "интерфейс NI" такой?
Кстати, скорости интерфейсов согласованы?



Да, я смотрел в RM, пробовал разные режимы.
Интерфейс NI - 9861 - https://www.ni.com/ru-ru/support/model.ni-9861.html

При попытке отправить от stm к NI В регистре ошибок CAN_ESR выскакивает ошибка с кодом 0x05, что значит:
101: Bit dominant Error (ошибка доминантного бита)

Пишут, что где-то есть короткое замыкание между дорожками CAN_H и CAN_L. Проверил - кз нет. Между ними, как и должно быть, 120 Ом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 13:33 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Насчет скоростей я уверен, что согласованы. Так как в режиме Loopbak пакеты доходят правильно.

Мне кажется, что:
1. посылка доходит именно в режиме, когда rx изолирована от внешнего мира
2. в нормальном режиме выскакивает именно ошибка проверки доминантного бита
Это как-то взаимосвязано

Но опять же повторюсь, что на наличие кз я проверил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 13:45 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
alex1457 писал(а):

Чуть не подавился, увидев цену!
Цитата:
При попытке отправить от stm к NI В регистре ошибок CAN_ESR выскакивает ошибка с кодом 0x05, что значит:
101: Bit dominant Error (ошибка доминантного бита)

У меня такая ошибка выскакивала как раз при несогласовании скоростей.
Да: а что используется в качестве драйвера физического уровня? Все тот же проблемный модуль с опторазвязкой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 13:52 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Цитата:
При попытке отправить от stm к NI В регистре ошибок CAN_ESR выскакивает ошибка с кодом 0x05, что значит:
101: Bit dominant Error (ошибка доминантного бита)
У меня такая ошибка выскакивала как раз при несогласовании скоростей.
Да: а что используется в качестве драйвера физического уровня? Все тот же проблемный модуль с опторазвязкой?


Я думаю, если бы скорости были не согласованы, то и в режиме loopbaack ничего не доходило нормально)

ISO1050DUB
https://pdf1.alldatasheet.com/datasheet ... 50DUB.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 27 май 2020, 14:03 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Цитата:
Я думаю, если бы скорости были не согласованы, то и в режиме loopbaack ничего не доходило нормально)

Блин, с чего бы?
Предлагаю еще раз открыть даташит и убедиться, что в режиме loopback нога Rx вообще отключена!!! Т.е. МК принимает лишь то, что сам и посылает.
А в обычном режиме работы скорее всего и возникает проблема из-за рассогласования скоростей. Проверяйте настройки МК. А еще можно осциллографом посмотреть, что там в момент подключения на шине происходит.
Я вот не так давно наткнулся на такую же проблему: на 100кбод CAN работал, а на 250 — уже нет. Полез в код: и действительно, я там единичку не учел при вычислении значений, записываемых в регистр. Переписал правильно — заработало на всех скоростях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 13:19 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Добрый день всем ещё раз)

Всё та же проблема:
Сообщения доходят только в режиме "Loopback". (Именно до получателя, а не обратно до платы)
Но в нормальном режиме доходят ошибки

Настройки приведены на скриншотах. Оба устройства работают на 100 KBaud.
Плата stm32 работает на 40 MHz.

На МК при попытке отправить что-то выставляется ошибка 0х05 "Ошибка установки доминантного бита."

Не могу понять, в чем моя ошибка.


Вложения:
Настройки_CAN_на_NI.jpg
Настройки_CAN_на_NI.jpg [ 129.22 Кб | Просмотров: 137 ]
Настройки CAN на stm32.JPG
Настройки CAN на stm32.JPG [ 53.06 Кб | Просмотров: 138 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 14:26 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Если точно нет лажи со скоростью, проверяйте трансиверы.
Правда, я сомневаюсь, что с кодом все чисто — когда он на кале написан!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 18:18 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Eddy_Em писал(а):
Если точно нет лажи со скоростью, проверяйте трансиверы.
Правда, я сомневаюсь, что с кодом все чисто — когда он на кале написан!


А как проверять? В чем может быть проблема в них?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 18:30 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3569
Откуда: Китай, Пекин
по STM32 CAN bus ''bit dominant error'' уже гуглили?

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 18:37 
Старожил
Аватара пользователя

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
alex1457 писал(а):
Настройки приведены на скриншотах. Оба устройства работают на 100 KBaud.
Плата stm32 работает на 40 MHz.

Расскажите логику расчета коэффициентов:
Prescaler = 25
CAN_SJW_4TQ
CAN_BS1_13TQ
CAN_BS2_2TQ

Я вот считаю и получается 47,5 МГц...Не выходит ваших 40...

PS. Если тактирование CAN 40МГц, то скорость у вас настроена 84,21к

_________________
Everybody lies


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 19:01 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
mrKirill, фрейм получается из SYNC_SEG+BS1+BS2, в данном случае — 1+(13+1)+(2+1)=18 тактов. Если Prescaler — это BRP, то частота тактирования в (25+1)=26 раз меньше частоты PCLK.
Итого, получается, что скорость шины у ТСа есть PCLK/26/18=PCLK/468.
Тут и барану понятно, что 100кГц он никак не получит с такими настройками. О чем я с самого начала и твержу: "проверь скорость"!

А я выше говорил: код написан на кале! Следовательно, его нужно 100 раз перепроверить (я принципиально не читаю код, если вижу, что там кал или SPL)!!111

Вот так я настраиваю заданную скорость на STM32F0x2. У меня частота шины 48МГц (HSI48, чтобы USB без кварца работал), сегменты: BS1=4 кванта, BS2=3 кванта. В этом случае выражение [6000/speed - 1] отлично позволяет преобразовать скорость в кбод в BRP.


Последний раз редактировалось Eddy_Em 02 июн 2020, 19:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 19:03 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
mrKirill писал(а):
[

PS. Если тактирование CAN 40МГц, то скорость у вас настроена 84,21к


40 000 000 / 25 / 16 = 100 000

Предделитель = 25;
Квантов в бите 13 + 2 +1 = 16.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 19:05 
Заглядывает иногда

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Удобный калькулятор есть:
http://www.bittiming.can-wiki.info/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу Пред.  1, 2, 3, 4, 5  След.


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


Кто сейчас на конференции

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


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB