Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 30.12.2021, 14:44  
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
Вопрос STM32F407VET HAL CAN не работает

Здравствуйте.

Есть у меня двигатель MF5015 v1. Работает через CAN шину и через модуль USART. Через последовательный порт все нормально работает.

А вот через CAN никак не могу добиться ответа.
Даташиты приложил. Связывался с китаццами. Они сказали какие настройки шины сделать. На фотке прикладываю переписку.

Нажмите на изображение для увеличения
Название: can.png
Просмотров: 0
Размер:	20.1 Кб
ID:	168759

Отправку делаю вот так:
Код:
void SendCAN(uint8_t ID, uint32_t mbx) {
	if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan1) != 0) {
		CAN_TxHeaderTypeDef msgHeader;
		uint8_t msgData[8];
		memset(msgData, 0, 8);

		msgHeader.StdId = 0x140;
		msgHeader.DLC = 8;
		msgHeader.TransmitGlobalTime = DISABLE;
		msgHeader.RTR = CAN_RTR_DATA;
		msgHeader.IDE = CAN_ID_STD;

		uint32_t mailBoxNum = mbx;

// по даташиту это запрос состояния
		msgData[0] = 0x9A;

		HAL_CAN_AddTxMessage(&hcan1, &msgHeader, msgData, &mailBoxNum);
	}
}

Настройки CAN
Код:
void MX_CAN1_Init(void)
{

  /* USER CODE BEGIN CAN1_Init 0 */

  /* USER CODE END CAN1_Init 0 */

  /* USER CODE BEGIN CAN1_Init 1 */

  /* USER CODE END CAN1_Init 1 */
  hcan1.Instance = CAN1;
  hcan1.Init.Prescaler = 4;
  hcan1.Init.Mode = CAN_MODE_NORMAL;
  hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
  hcan1.Init.TimeSeg1 = CAN_BS1_6TQ;
  hcan1.Init.TimeSeg2 = CAN_BS2_2TQ;
  hcan1.Init.TimeTriggeredMode = DISABLE;
  hcan1.Init.AutoBusOff = DISABLE;
  hcan1.Init.AutoWakeUp = DISABLE;
  hcan1.Init.AutoRetransmission = DISABLE;
  hcan1.Init.ReceiveFifoLocked = DISABLE;
  hcan1.Init.TransmitFifoPriority = DISABLE;
  if (HAL_CAN_Init(&hcan1) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN CAN1_Init 2 */

  /* USER CODE END CAN1_Init 2 */

}

Фильтр вроде бы как должен пропускать абсолютно все сообщения
Код:
CAN_FilterTypeDef canFilterConfig;
	canFilterConfig.FilterBank = 0;
	canFilterConfig.FilterActivation = DISABLE;
	canFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
	canFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;

	canFilterConfig.FilterIdHigh = 0xffff;
	canFilterConfig.FilterIdLow = 0x0000;
	canFilterConfig.FilterMaskIdHigh = 0x0000;
	canFilterConfig.FilterMaskIdLow = 0x0000;

	canFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
	canFilterConfig.FilterActivation = ENABLE;
	canFilterConfig.SlaveStartFilterBank = 14;
	HAL_CAN_ConfigFilter(&hcan1, &canFilterConfig);

	HAL_CAN_Start(&hcan1);
	HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);

Пробовал отправку в режиме loopback - все работает и прерывание срабатывает.
Даже заморочился с анализатором шины. Подключил два канала.
Нажмите на изображение для увеличения
Название: can_mes.png
Просмотров: 0
Размер:	92.1 Кб
ID:	168760

Терминатор на 120 ом вроде как есть в двигателе как написано в даташите.


В чем может быть еще проблема??? Каким образом можно наладить связь?
Вложения:
Тип файла: pdf LK-TECH motor control protocol (CAN)V2.3.pdf (847.7 Кб, 0 просмотров)
Тип файла: pdf MF servo motor manualV2.3.pdf (3.42 Мб, 0 просмотров)
Реклама:
worldmasters вне форума  
Непрочитано 30.12.2021, 21:28  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

worldmasters, а собрать на втором камне своего второго клиента и наладить обмен?
Вместо saleae посмотреть на происходящее на шине осциллографом. ЛА применяют при уверенности в работоспособности железа (он таки логический).
Есть уверенность в полной работоспособности железа (CAN) на стороне двигателя?
Неплохо бы проверить функционирование и положение пятого (R) переключателя в блоке DIP переключателей.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
worldmasters (11.01.2022)
Непрочитано 31.12.2021, 12:43  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

Ошибки возникают? Я как-то мучился с китайским шаговиком: в даташите скорость 100, а фактически оказалась 250! Очень полезно все эти bus fault'ы и т.п. отслеживать.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Сказали "Спасибо" eddy
mike-y-k (31.12.2021)
Непрочитано 09.01.2022, 20:37  
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

Сообщение от mike-y-k Посмотреть сообщение
Есть уверенность в полной работоспособности железа (CAN) на стороне двигателя?
Китаец утверждает что все работает. В последней переписке сказал что стоит драйвер TCAN337. Готовых модулей для проверки не нашел. Только микросхемы. Только непонятно какое напряжение используется шиной. Думаю что то которое я даю для питания двигателя. Это около 18 вольт. Надеюсь стм не сгорит.

Сообщение от mike-y-k Посмотреть сообщение
Неплохо бы проверить функционирование и положение пятого (R) переключателя в блоке DIP переключателей.
Это разобрать двигун?? Так то он дорогой и страшновато. Были попытки но после откручивания всех видимых винтов он не поддался.. скривился и дальше смелости не хватило ломать.
worldmasters вне форума  
Непрочитано 09.01.2022, 20:59  
do-vitas
Временная регистрация
 
Регистрация: 16.09.2008
Сообщений: 87
Сказал спасибо: 25
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
do-vitas на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

Вы не написали какое железо стм-ка какая. Я когда себе делал переходник USB-CAN чтобы отладить can в настройках стм-ки выбираешь замкнут сам на себя и отправляешь и получаешь, если все проходит убираешь настройку туда и обратно, у меня передача так выглядела:
Вложения:
Тип файла: txt CAN-USB-LAWic.txt (8.5 Кб, 0 просмотров)
do-vitas вне форума  
Непрочитано 09.01.2022, 21:36  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

worldmasters, а на схему терминатора посмотреть? Проверить сопротивление (без питания двигателя) при обоих положениях 5-го переключателя, оставить ближнее к 120Ω. Если не меняется и сильно выше требуемого - проблема с терминатором.
Оптимальнее всего в положении отключенного терминатора установить в колодке двигателя сопротивление 120Ω между CANH и CANL. Тогда будет полная уверенность в правильной терминации со стороны двигателя, аналогично и на стороне МК.

Питание TCAN337 3V3 и это размах сигнала на шине (смотрите ISO11898-2)

Пробуйте выдавать запрос по шине для инициализации (по данным от продавца). Он таки должен был дать Вам описание протокола обмена.
Смотрите осциллографом (в два канала желательно) на состояние CANH и CANL в процессе обмена. При отсутствии ответа увеличивайте скорость с минимума и до 1Mbit/s или от 1Mbit/s до минимума с некоторым шагом. При отсутствии обмена при таком подходе вопрос о жизнеспособности управления по CAN уже в плоскость контакта с продавцом на предмет разборки модуля управления и проверки (пока предположительно TCA337) на предмет работоспособности.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
worldmasters (11.01.2022)
Непрочитано 10.01.2022, 09:15  
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

Сообщение от mike-y-k Посмотреть сообщение
Тогда будет полная уверенность в правильной терминации со стороны двигателя, аналогично и на стороне МК.
Со стороны МК тоже надо припаять такое сопротивление?? Там я просто два провода вытащил и все.
У меня кабель вроде всего 15см. неужели так критично это сопротивление.


Сообщение от mike-y-k Посмотреть сообщение
Пробуйте выдавать запрос по шине для инициализации (по данным от продавца). Он таки должен был дать Вам описание протокола обмена.
Так даташит с командами представлен. Там нету команд инициализации.


Сообщение от mike-y-k Посмотреть сообщение
При отсутствии ответа увеличивайте скорость с минимума и до 1Mbit/s или от 1Mbit/s до минимума с некоторым шагом.
тут он тоже представил точные параметры настройки скоростей. К сожалению осцилографа нету ... (((
worldmasters вне форума  
Непрочитано 10.01.2022, 10:36  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

worldmasters, терминаторы нужны, но в некоторых случаях на низких скоростях и коротких линиях работает и без них.
А что, под рукой нет USB-CAN для проверки? У меня на гитхабе лежит простейший переходничок на STM32F0x2 (там и схема, и PCB; но можно и просто на макетке прошить). Протокол текстовый, устройство выдает себя за PL2303, т.е. должно даже в андроиде работать!
P.S. А осциллограф таки нужен, хоть даже проверить - не попутал ли CANL/CANH.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Сказали "Спасибо" eddy
mike-y-k (10.01.2022)
Непрочитано 10.01.2022, 16:06  
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

Сообщение от eddy Посмотреть сообщение
А осциллограф таки нужен, хоть даже проверить - не попутал ли CANL/CANH.
Ну у меня можно перевернуть разъем. Оно не так не так не работает. Попробую припаять резюк. Может и правда в нем дело.
worldmasters вне форума  
Непрочитано 10.01.2022, 19:25  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: STM32 HAL CAN не работает

worldmasters, резисторы 120Ω должны соединять CANH и CANL на концах линии. Другие варианты тут не будем рассматривать.
В описании протокола обмена есть что-то типа опроса устройства, на которое оно что-то отвечает?
Без осциллографа Вам придется очень долго гадать о происходящем на шине… Может там просто тишина со стороны MK…
Модель Вашего МК и схему его подключения к CAN в студию.

eddy, ТСА337 у меня на столе с 10см линии без терминаторов не заводились от слова совсем. Выдавали FAULT. С терминаторами работали на всех скоростях.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
worldmasters (11.01.2022)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает камера с зеркалом OBDPEAK H6 Eugenio Видеотехника 9 01.11.2021 16:14
STM32G431 DAC средствами HAL DanilinSA ARM 10 12.10.2021 22:24
Atmega16 + 24c04 не работает в железе eu8cc Микроконтроллеры, АЦП, память и т.д 25 29.06.2012 21:54
Не работает PD4 в ATTINY 4313 HeatSink Микроконтроллеры, АЦП, память и т.д 37 14.06.2011 17:46
Объясните, как работает микросхема El-Shang Источники питания и свет 1 30.07.2010 17:33


Часовой пояс GMT +4, время: 01:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot