21.06.2018, 09:31
|
|
Временная регистрация
Регистрация: 15.12.2006
Сообщений: 74
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 3 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
Сообщение от serb-radio
|
Кто сталкивался в КАНе с J1939.
|
А нельзя ли на пальцах рассказать для чего нужен этот протокол и где он применяется. Я видел его реализацию на st.com
Насчет прерываний от CAN2. У can2 общая систем фильтров с can1, поэтому в этой сисиеме фильтров указывается где заканчивается can1 и начинается can2. В HAL БИБЛИОТЕКЕ это называется
Код:
|
CAN_FilterConfTypeDef filter_mass ;
filter_mass.BankNumber = 14; |
То есть из 28 фильтров первая половина для CAN1, вторая для CAN2 , ХОТЯ Я ДУМАЮ ЭТОТ ВОПРОС ДЛЯ ТЕБЯ УЖЕ НЕ АКТУАЛЕН.
Последний раз редактировалось retro55; 21.06.2018 в 09:51.
|
|
|
|
21.06.2018, 19:00
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
retro55, даже в wiki вполне вменяемая информация для начального понимания. В силу сильно выраженной проприетарности дальше продвинуться сильно сложнее. По сети мотаются обрывки, за документацию требуют денег, реализации протоколов конкретных вендоров совсем недоступны. А так он просто надстройка над физическим уровнем CAN.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
22.06.2018, 11:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
Сижу, мучаюсь с CAN-шиной на STM32F042. Пытаюсь сделать нормальной реакцию на пустую шину. Ничего пока не получается: если не реагировать на CAN_IER_LECIE, то прерывания по ошибке не возникает. Если же реагировать, то даже на 100кГц непрерывно генерируются прерывания и в итоге watchdog перезапускает МК. Флаги CAN_MCR_NART и CAN_MCR_ABOM не помогают (CAN_MCR_NART работает, т.е. передается лишь одно сообщение, но прерывания почему-то зацикливаются; CAN_MCR_ABOM должен после 127 ошибок вызвать прерывание, но его не происходит — возможно, из-за того, что у меня таймаут watchdog'а около 1.5с).
__________________
Смерть бандеровской мразоте!
|
|
|
|
22.06.2018, 14:12
|
|
Частый гость
Регистрация: 14.06.2008
Адрес: маленький провинциальный городок СПб
Сообщений: 14
Сказал спасибо: 19
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
что значит "пустая шина"?! если используется приемник и передатчик - то отосланный пакет будет принят самим же контроллером. ошибки возникают, если нет ни одного подтверждения приёма пакета (увеличивается TEC) или ошибки при проверке принятого пакета (увеличивается REC). к примеру, если замкнуть CANH и CANL между собой на выходе драйвера CAN, должны фиксироваться ошибки.
|
|
|
|
22.06.2018, 14:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
Цитата:
|
Пытаюсь сделать нормальной реакцию на пустую шину.
|
А это Вам зачем? Обычно делают реакцию на событие. В нем и обрабатывают событие.Вы хотите что-то передать? И ... если шина пустая - не значит что через мгновение не начнется передача.
Подробнее опишите логику работы устройства. И примерную схему взаимодействия устройств на шине.
Как вариант - пробуем передать. Если вывалились по ошибке - коллизия. Делаем паузу случайной продолжительности и пробуем передать повторно.
|
|
|
|
22.06.2018, 15:31
|
|
Временная регистрация
Регистрация: 15.12.2006
Сообщений: 74
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 3 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
Сообщение от mike-y-k
|
вполне вменяемая информация для начального понимания
|
Зачем оно нужно?
|
|
|
|
29.06.2018, 22:47
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Работающий пример CAN-RS232
Коллеги,
Предлагаю вашему вниманию простую программу, которая принимает все кан-сообщения на шине и передает id и данные по последовательному каналу рс-232 (115,2 кбод). Возможно, программа кому-то поможет напрямую, кому-то поможет опосредованно, чтобы написать что-то своё.
Программа написана под плату олимекс STM32-P103 с МК stm32f103 и изначально предполагалось, что это будет интерфейс кан-юэсби c внешним преобразователем rs-usb для работы с кан-опен. Так что не удивляйтесь, если в программе найдутся осколки этого интерфейса.
|
|
|
|
30.06.2018, 11:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
Сообщение от DanilinSA
|
А это Вам зачем?
|
Чтобы знать, что что-то не так (обрыв шины или сдохли все прочие устройства на шине) и замигать светодиодиком.
__________________
Смерть бандеровской мразоте!
|
|
|
|
10.09.2018, 09:34
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь запустил CAN на STM32 ???
недавно бодался с CAN целый день
а причина банально была в 1 вместо 2 в RCC_APB2PeriphClockCmd
откуда то копипастнул строчки
RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIO_CAN2, ENABLE);
перелопатил весь код все настройки - не работает ))))
и на первый взгляд это циферка не ловится/видится
вот так нужно проверять и шину тактирования
может кому полезно будет
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:50.
|
|