Easyelectronics.ru

Электроника для всех
Текущее время: 29 сен 2020, 03:57

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



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

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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
cheblin писал(а):
по STM32 CAN bus ''bit dominant error'' уже гуглили?


Да, говорят, возможно где-то кз. Но я проверил - нету


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

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

26
Цитата:
Квантов в бите 13 + 2 +1 = 16.

1+(13+1)+(2+1) = 18!
Рекомендую залезть в даташит!


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Eddy_Em писал(а):
alex1457 писал(а):
Предделитель = 25;

26
Цитата:
Квантов в бите 13 + 2 +1 = 16.

1+(13+1)+(2+1) = 18!
Рекомендую залезть в даташит!


Попробовал с такими настройками:
hcan.Init.Prescaler = 25;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_11TQ;
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;

Всё так же.

Насчет предделителя, в функции инициализации от него отнимется 1. Поэтому 25.

(Но попробовал и с 24)


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

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
alex1457 писал(а):
Предделитель = 25;
Квантов в бите 13 + 2 +1 = 16.

Чьи цифры? Не ваши?
Вложение:
Снимок.PNG
Снимок.PNG [ 46.78 Кб | Просмотров: 112 ]

калькулятор может и удобный, но сути происходящего вы явно не улавливаете. Нет никакого КЗ, ошибка чисто программная.

_________________
Everybody lies


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Может быть в схеме ошибка?

(На данной съеме перекинуты ножки TxD и RxD, которые идут от мк (были перепутаны))


Вложения:
Схема.jpg
Схема.jpg [ 154.34 Кб | Просмотров: 112 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 19:23 
Старожил
Аватара пользователя

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Так как в моей технике везде скорость 250к, то коэффициенты следующие:
Тактирование 48МГц
SJW = 1
BS1 = 3
BS2 = 4
Prescaler = 24.

Проверить просто: 48/((1+3+4)*24)=0,25

_________________
Everybody lies


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Попробовал с такими настройками:
hcan.Init.Prescaler = 25;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_11TQ;
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;

Всё так же.

Насчет предделителя, в функции инициализации от него отнимется 1. Поэтому 25.

(Но попробовал и с 24)


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

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


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

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
alex1457 писал(а):
Попробовал с такими настройками:
hcan.Init.Prescaler = 25;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_11TQ;
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;

Предположим, что кал "сам" отнимает отовсюду единицу. Поэтому получаем, prescaler=25, BS1=11, BS2=2. Частота будет меньше системной в 25*(1+11+2)=350 раз.

Ну и как у вас 100кбод получится при такой настройке? Тактовая камня 35МГц что ли?
Какая частота шины APB?
Почему BS2 такой короткий?

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


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

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

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Eddy_Em писал(а):
mrKirill, так он вот сейчас возьмет, да засунет в BS1 тройку, а в BS2 — четверку! Забыв отнять от них единицу...
Или кал единицу сам отнимает?
// еще раз лучи негодования за использование кала вместо вменяемого программирования!

Судя по *.h от SPL, там за BS1_3TQ скрывается 2. Про HAL не в курсе, не пользую.

_________________
Everybody lies


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

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Ну вот. "Методом тыка" выяснили, что кал "самостоятельно" все единицы отнимает. Писец, как "удобно": ты в даташите одно читаешь, а кал тебе другое делает…
alex1457, если у тебя реально частота AHB 40MHz, ставь в prescaler 50, а размеры сегментов сделай такими: BS1=5, BS2=2. И будет тебе щассье.


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Eddy_Em писал(а):
Ну вот. "Методом тыка" выяснили, что кал "самостоятельно" все единицы отнимает. Писец, как "удобно": ты в даташите одно читаешь, а кал тебе другое делает…
alex1457, если у тебя реально частота AHB 40MHz, ставь в prescaler 50, а размеры сегментов сделай такими: BS1=5, BS2=2. И будет тебе щассье.


Для понимания, как работает HAL добавил картинку. Что вписывает в регистр при Ваших настройках.


Вложения:
BTR.JPG
BTR.JPG [ 16.58 Кб | Просмотров: 109 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 19:50 
Старожил
Аватара пользователя

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
И не работает?

PS. Бля, а SJW почему 4???? Ставьте 1.

_________________
Everybody lies


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

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

PS. Бля, а SJW почему 4???? Ставьте 1.


И с 1 не работает.


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

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
А зачем в SJW писать тройку? Пусть нуль по умолчанию и остается. Я уже давал ссылку на свой код, еще раз приведу пример:
Код:
CAN->BTR =  2 << 20 | 3 << 16 | (6000/speed - 1);

Это — для частоты 48МГц. Проверял на 50, 100, 250 и 500кбод (подопытный девайс на CANOpen не очень-то широкие возможности выбора скоростей предоставляет).


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

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Частота точно 40МГц?

_________________
Everybody lies


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

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

BS2 должен быть примерно в 3 раза меньше, чем (BS1+1).
И тоже присоединяюсь к вопросу: точно ли частота APB равна 40МГц?
Для этого можно подключить осциллограф к выходу Tx, включить режим loopback и гнать в шину данные.


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

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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
mrKirill писал(а):
Частота точно 40МГц?


Да. Но если верить Кубу)


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

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

Хочется плакать!
Код надо удалить. Затем с нуля написать правильный — без калокубов всяких! Чтобы можно было, взглянув в код, понять, что там что-то не так. А не гадать на кофейной гуще…


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

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

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Выкладку тактирования из Cuba в студию.
Коэффициенты не трогайте пока, пусть остаются 1, 5, 2, 50.

_________________
Everybody lies


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
mrKirill писал(а):
Выкладку тактирования из Cuba в студию.
Коэффициенты не трогайте пока, пусть остаются 1, 5, 2, 50.


Вложения:
BTR.JPG
BTR.JPG [ 17.27 Кб | Просмотров: 106 ]
Настройки в Cube.JPG
Настройки в Cube.JPG [ 78.18 Кб | Просмотров: 106 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интерфейсный модуль CAN NI-9861
СообщениеДобавлено: 02 июн 2020, 20:16 
Старожил
Аватара пользователя

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Давайте лучше выдержку из реального кода.
Реально тактируете от внутреннего источника?

_________________
Everybody lies


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
Show


Show


Show


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

Зарегистрирован: 22 мар 2020, 10:51
Сообщения: 31
mrKirill писал(а):
Давайте лучше выдержку из реального кода.
Реально тактируете от внутреннего источника?


От внутреннего


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

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Ну в этом коде ничего странного нет, всё совпадает и приходится верить, что на выходе действительно 40МГц. Осциллограф есть? Как-то всё же нужно оценить качество этих самых МГц

_________________
Everybody lies


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


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


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

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


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

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

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