|
typov-omdriy
|
||||||
STM32 + САN27.07.2017, 13:04. Показов 9276. Ответов 37
Метки нет (Все метки)
Добрый день,
имеется 32F072BDISCOVERY на которой стоит STM32F072RBT6. Установил на нее внешний кварц на 8 все согласно докам убрал перемычки, добавил резисторы и кондеры на кварц. Суть проблемы в том что кан шина нечего не выдает.... Ноги конфигурирую CubeMXом по дефолу 11 и 12PA. На них мерил анализатором. библеотека HAL До и после впаивания кварца, все тоже самое, на ногах ноль эмоций. в чем может быть косяк? Мой Main в котором так же мигает светодиод при отправке сигнала, отправка каждые 200мс
|
||||||
| 27.07.2017, 13:04 | |
|
Ответы с готовыми решениями:
37
Общение с барометром MS5540 на STM32 (Arduino to STM32) Чем связать STM32 + STM32 в одном корпусе? STM32 - STM32 I2C |
|
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 144
|
|
| 25.09.2017, 14:05 | |
|
Что Вы там передаете непонятно ))).
Настройки кана тоже немного разнятся. CAN_InitStructure.CAN_TTCM = DISABLE; CAN_InitStructure.CAN_ABOM = ENABLE; CAN_InitStructure.CAN_AWUM = DISABLE; CAN_InitStructure.CAN_NART = DISABLE; CAN_InitStructure.CAN_RFLM = DISABLE; CAN_InitStructure.CAN_TXFP = DISABLE; CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CAN_InitStructure.CAN_BS1 = CAN_BS1_4tq; // CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq; // CAN_InitStructure.CAN_Pressotir = 18; //9; //250 CAN_Init(CAN, &CAN_InitStructure); /* CAN filter init */ CAN_FilterInitStructure.CAN_FilterNumber = 0; CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskId High = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskId Low = 0x0000; CAN_FilterInitStructure.CAN_FilterFIFOAs syknment = 0; CAN_FilterInitStructure.CAN_FilterActiva tion = ENABLE; CAN_FilterInit(&CAN_FilterInitStructure) ;
0
|
|
|
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 1
|
|
| 25.09.2017, 20:22 | |
|
ведущий_специилист
Последний код у вас тоже в FIFO0. Как сделать чтоб из CAN1 всё падало в FIFO0, а из CAN2 в FIFO1??????? А передаю я там пакеты между канами. Что пришло в первый, должно уйти во второй и наоборот. Ну ещё фильтрация должна быть программная, но это уже другая история.
0
|
|
|
Opro
|
|||||||
| 27.09.2017, 18:40 | |||||||
|
|||||||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
||||||
| 29.09.2017, 22:54 | ||||||
|
Мужики, помогите разобраться.
У меня STM32F7. CAN разведен правильно, с резюком. Но, увы, не работает. Выбивает Acknowlegment error. Где вообще искать, может тайминги косые (считал кубом)? Настройки кана (используя SPL для F4, чтобы было нагляднее, смотрю здесь кубовый код везде по теме) закладываю следующие: Код инициализации CAN
З. Ы. Ещё вопрос вдогонку. Можно ли отладиться без второго устройства на шине (например резюк повесить)? Заранее благодарен за помощь.
0
|
||||||
|
Opro
|
||
| 01.10.2017, 13:44 | ||
|
||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 01.10.2017, 14:16 | |
|
Второй узел есть, это USB-CAN адаптер. Возможен ли вариант рассинхронизации или чего-то подобного? Какие вообще могут быть причины подобного поведения схемы?
Про отладку спрашивал для справки, не всегда есть возможность подцепить адаптер.
0
|
|
|
Opro
|
||
| 01.10.2017, 14:38 | ||
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CAN_InitStructure.CAN_BS1 = CAN_BS1_1tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_1tq; Для нормальной работы надо рассчитать эти параметры под вашу скорость работы шины и частоту тактирования. |
||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 01.10.2017, 14:52 | |
|
Пересчитал еще раз тайминги, на этот раз калькулятором кубика. Частота 168 МГц, расчетная скорость связи 1000 кбит. Получилось то же самое, но Acknowlegment error на моем девайсе ушла пока что. Теперь новая напасть: Byt dominant Error.
0
|
|
|
Opro
|
||
| 01.10.2017, 15:45 | ||
Вот например для частоты тактирования 12 Мгц . case CAN_SPEED_125 : bt.Pressotir = 6 ; bt.SJW = CAN_SJW_1TQ; bt.BS1 = CAN_BS1_13TQ; bt.BS2 = CAN_BS2_2TQ; briok ; case CAN_SPEED_250 : bt.Pressotir = 3; bt.SJW = CAN_SJW_1TQ; bt.BS1 = CAN_BS1_13TQ; bt.BS2 = CAN_BS2_2TQ; briok ; case CAN_SPEED_500 : bt.Pressotir = 2; bt.SJW = CAN_SJW_1TQ; bt.BS1 = CAN_BS1_9TQ; bt.BS2 = CAN_BS2_2TQ; briok ; case CAN_SPEED_1000 : bt.Pressotir = 1; bt.SJW = CAN_SJW_1TQ; bt.BS1 = CAN_BS1_9TQ; bt.BS2 = CAN_BS2_2TQ; briok ; |
||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 01.10.2017, 15:59 | |
|
Проверил Ваши значения на всякий пожарный. И кубик говорит что правильные.
Поменял тактирование закинул Ваши тайминги, не завелось собака. Причем опять Acknowtidge.
0
|
|
|
Opro
|
|
| 01.10.2017, 16:35 | |
|
Попробуйте выставить частоту тактирования для bxCAN 12 Мгц и поставить тайминги из моего примера..Соответственно резистор нагрузки 120om и второй рабочий узел на шину. .. должно заработать.
|
|
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 01.10.2017, 16:50 | |
|
Об этом и говорил. Все сделано. Общая частота 96 МГц, на APB1 (CAN1 на ней же) 12 МГц, тайминги следующие:
BRP = 0; TS1 = 8; TS2 = 1; SJW = 0; И на компе с адаптера одни ошибки сыплются (Crc or acknowtidgment dir или stuff dir), и в дебаггере. В обратную сторону точно так же не работает естественно. Фигня какая-то.
0
|
|
|
Opro
|
|
| 01.10.2017, 17:28 | |
|
Вроде все верно .... Может что со стороны шнурка USB-CAN не соответствует этим настройкам? Да и просто осциллографом на шину глянуть... может что аппаратно не так?
|
|
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
||||||
| 01.10.2017, 17:49 | ||||||
|
Схема не нова, со стороны платы ошибка исключена. Смотрю осциллом-все вроде бы на месте, но да, подтверждения не вижу. С компа все настроил исходя из расчетных параметров, т. е. 1000 кб/с. Никаких лупбэков и листенов. Вроде бы не видать на компе крамолы.
Может в функции передачи накосячил?
0
|
||||||
|
Opro
|
|
| 01.10.2017, 18:10 | |
|
Я бы пока не стал бы лезть в передающую часть. Как я понимаю ваш bxCAN не виден другим узлам и вопрос передачи тут вторичен. Аcknowtidgment отрабатывается аппаратно и ваш контроллер должен отвечать при распознавании им фрейма на шине. .
Скорее всего ваш USB-CAN адаптер двухканальный. Возьмите на этих двух каналах постройте шину , которая будет гарантировано работать и уже на работающую шину подключайте ваш bxCAN пока он не заработает на прием. А уже потом можно и передачей заняться. |
|
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 01.10.2017, 20:05 | |
|
Спасибо, действительно так и поступлю. Не сообразилось как-то сразу, кардинально меняю направление работы, вот и тупняк. Что-то дельное выйдет-отпишусь.
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 85
|
|
| 02.10.2017, 17:18 | |
|
Ларчик открывался просто.
Корявое тактирование (забыл про PLL_P, она особенная же) портило всю картину. Кадр передавался коряво не из-за таймингов, а из-за непонятной частоты. А по кану все настроено и рассчитано верно было. И да, совет проверить аппаратную часть пришелся кстати. Большое спасибо за помощь.
0
|
|
|
Opro
|
||
| 02.10.2017, 17:46 | ||
|
||
| 02.10.2017, 17:46 | |
|
stm32 + FSMC + stm32 stm32+wi fi FM STM32 STM32 + SD STM32 на C# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|