Перейти к содержанию
    

Не проходит инициализация CAN Stm32

On 6/4/2021 at 11:28 AM, ovn said:

https://istarik.ru/blog/stm32/159.html

STMCubeMX, настраиваю CAN по этой статье для STM32F103, открываю пример с Гита и пробовал сам всё проинициализировать, но программа вешается при инициализации CAN в отладчике, при этом после POR(выключения питания) нормально запускается из FLASH. Что может быть?

Ну, раз из FLASH стартует нормально, значит, проект в целом рабочий. Почему при всем этом вешается в отладчике - надо разбираться. Тут вам и флаг в руки. Так и становятся настоящими embedded programmers.

 

Кстати, на этом пути вам на этом форуме охотно помогут. Не любят только откровенных любителей халявы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При отладке еще, кстати, по-умолчанию, флаг 'DBG' в регистре MCR установлен. Это так, к слову.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делюсь (переходник CAN-USB, правда, на STM32F0x2, т.к. F103 не умеет одновременно USB и CAN).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 часа назад, Eddy_Em сказал:

Делюсь (переходник CAN-USB, правда, на STM32F0x2, т.к. F103 не умеет одновременно USB и CAN).

Спасибо, я этот проект нашёл ещё в первый час заморочек, вот и получается, что на git всего 3 простых проекта, при этом под другие чипы. А если кто-то что то и делает, в принципе простенькое, то это уже ноу-хау и на этом деньги можно срубить, никто исходниками делиться не будет. Простой пример, намотка пробега авто, просто замена пакетов от ABS: https://www.drive2.ru/b/558230025954920672/

Изменено пользователем ovn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, Arlleex сказал:

Повторю, все-таки. Регистр MCR, бит 'DBF' по умолчанию в 1
image.png.19360d30aec812a47894ca7541175dc6.png

Понял, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подключил шильд приёмопередатчика(трансивер TJA1050), при этом один ранее купленный другой SN65HVD230 оказался дохлым, в режимах Loopback combined with Silent, Loopback и Silent работает, я могу передавать в шину и принимать из шины кадры, анализатором CAN вижу, что кадры правильные, а в режиме Normal

выходит в 

void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan)
{
    uint32_t er = HAL_CAN_GetError(hcan);
    sprintf(trans_str,"ER CAN %08lX", er);
    HAL_UART_Transmit(&huart1, (uint8_t*)trans_str, strlen(trans_str), 100);
}

ошибка 0x80

Изменено пользователем ovn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сдается мне, что где-то у Вас разошлись скорости или настройки точек семплирования в девайсах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

TJA1050 похоже в каком-то симплексном режиме работает, с ним в режиме Normal ошибки, поменял нерабочий SN65HVD230, подключил и заработало.

09.06.2021 в 08:47, Arlleex сказал:

Повторю, все-таки. Регистр MCR, бит 'DBF' по умолчанию в 1
image.png.19360d30aec812a47894ca7541175dc6.png

Если всё настроено нормально, то не требуется.

Изменено пользователем ovn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/7/2021 at 12:17 PM, ovn said:

их всего то штуки 3 на весь GIT, всё перелопачено за эти дни по нескольку раз

а если копнуть?

https://github.com/iDoka/awesome-canbus#arm

On 6/10/2021 at 8:33 AM, Arlleex said:

Сдается мне, что где-то у Вас разошлись скорости или настройки точек семплирования в девайсах.

вроде бы точка семплирования выбирается не исходя из идентичности настроек, а исходя из длины/топологии шины

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

основная проблема, что на STM32F446RE при инициализации CAN из HAL вылетает в ошибку, на STM32F103C8 всё нормально, хотя код инициализации CAN идентичный, не важно HSI или HSE, бит готовности опорника выставляется. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10.06.2021 в 08:33, Arlleex сказал:

Сдается мне, что где-то у Вас разошлись скорости или настройки точек семплирования в девайсах.

Посмотрите соседнюю тему: автор до сих пор не смог правильно настроить тактирование МК. О каком CAN в таком случае может идти речь?

41 минуту назад, ovn сказал:

основная проблема, что на STM32F446RE при инициализации CAN из HAL вылетает в ошибку

Когда строят дом, сперва делают фундамент, а уж только после этого - кладут стены и крышу.

Так и у вас: о программировании какого CAN-а может идти речь, если вы до сих пор не сумели нормально запустить тактирование МК?

Один из первых этапов с которых начинается создание проекта на МК: изучение и настройка тактирования (различных генераторов и доменов), питания, GPIO, мультиплексоров пинов, средств отладки, обработки исключений/прерываний и т.п. базовых вещей. Только после того, как это всё будет работать чётко и без вопросов, только после этого можно приступать к CAN, UART и прочим интерфейсам и периферийным блокам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, jcxz сказал:

Посмотрите соседнюю тему: автор до сих пор не смог правильно настроить тактирование МК. О каком CAN в таком случае может идти речь?

Когда строят дом, сперва делают фундамент, а уж только после этого - кладут стены и крышу.

Так и у вас: о программировании какого CAN-а может идти речь, если вы до сих пор не сумели нормально запустить тактирование МК?

Один из первых этапов с которых начинается создание проекта на МК: изучение и настройка тактирования (различных генераторов и доменов), питания, GPIO, мультиплексоров пинов, средств отладки, обработки исключений/прерываний и т.п. базовых вещей. Только после того, как это всё будет работать чётко и без вопросов, только после этого можно приступать к CAN, UART и прочим интерфейсам и периферийным блокам.

Уже написано, что тактирование РАБОТАЕТ, и CAN на STM32F103C8 полностью работает во всех режимах, а на  STM32F446RE нет. 

Изменено пользователем ovn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, ovn сказал:

Уже написано, что тактирование РАБОТАЕТ, и CAN на STM32F103C8 полностью работает во всех режимах, а на  STM32F446RE нет.

И при чём тут F103, если запускаете на F446?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

47 минут назад, jcxz сказал:

И при чём тут F103, если запускаете на F446?

Сначала запускал на F103, потом на F446, а надо на F205, которого пока нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...