TViT 0 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба Всем привет. Народ подскажите есть ли у кого опыт, по переходу с STM32F103RET6 на GD32F103RET6. У меня в проекте все работает если прошивку от stm32 залить в туже плату только с GD32 и spi и uart и порты, но вот CAN не работает. Причем пакеты посылаются корректные все как stm32, но приема CAN пакетов от другого устройства не происходит. Фильтры все в 0, принимают все кадры. CAN-снифер показывает что посылки идут, но устройство на GD32 не принимает пакеты. Хотя посылает их корректно. При отладке не вызывается колбэк по приему, как будто в принципе не было пакетов на линии или они аппаратно CAN-контроллером не пропускаются на верхний уровень в приложение. Подскажите куда копать, кто сталкивался с такой проблемой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба Первое - вы все же ошиблись темой, разместите ее лучше в разделе STM32 ;) Второе - тема аналогов STM32 всплывает тут далеко не первый раз. Достаточно пройтись поиском, чтобы в этом убедиться. Например: тут 25 minutes ago, TViT said: У меня в проекте все работает если прошивку от stm32 залить в туже плату только с GD32 и spi и uart и порты, но вот CAN не работает. Это в целом нормально для GD32. С этим многие сталкивались - та же самая прошивка от STM32 работает, но частично. К слову, у меня CAN (не куб, исключительно на регистрах) на GD32 завелся сразу нормально и не только он, но были особенности с HSE, пришлось пересобирать отдельную прошивку под GD32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 26 апреля, 2022 Опубликовано 26 апреля, 2022 (изменено) · Жалоба 44 минуты назад, Forger сказал: Второе - тема аналогов STM32 всплывает тут далеко не первый раз. Достаточно пройтись поиском, чтобы в этом убедиться. Например: тут Да всплывает то много чего, но мне нужна конкретика, четкие шаги, где взять то, где это, для того и этого чтобы исправить ситуацию, а не общие рассуждения... По вашей ссылке как раз просто обсуждения без технических подробностей и конкретики. 44 минуты назад, Forger сказал: К слову, у меня CAN (не куб, исключительно на регистрах) на GD32 завелся сразу нормально и не только он, но были особенности с HSE, пришлось пересобирать отдельную прошивку под GD32. Вот это уже интереснее )) Подробнее можно, на какой библиотеке настраивали, может примеры есть как скрестить HAL lib и библиотеку для GD32. А если напрямую сами регистрами управляете, можете ли поделиться исходником... Изменено 26 апреля, 2022 пользователем TViT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба 47 minutes ago, TViT said: Да всплывает то много чего, но мне нужна конкретика, четкие шаги, где взять то, где это, для того и этого чтобы исправить ситуацию, а не общие рассуждения... Повторюсь, в моем проекте работа с CAN с STM32 заработала сразу же с GD32. В своей библиотеке CAN (на регистрах) вообще ничего не менял под GD32. Просто копи-паст. RCC тоже (в GD32 он называется RCU). Это означает, что по внутреннему тактированию блоков разницы тоже нет. А значит CAN точно должен заводится с полпинка. По "монстроподобныму" CUBE ничего не скажу, давно перестал на нем работать ( 47 minutes ago, TViT said: Подробнее можно, на какой библиотеке настраивали, Сугубо по даташиту. Но чтобы не "рисовать" вручную тонную битовых масок и регистров, использовал готовые h-файлы CMSIS: stm32f10x.h и gd32f10x.h для STM32 и GD32 соотв. Работаю в KEIL, паки с этими файлами его родные. KEIL поддерживает GD32. Поэтому под разные камни созданы разные проекты на базе общих исходников проекта и разных периферийных библиотек. 47 minutes ago, TViT said: можете ли поделиться исходником... Они сугубо на c++, не для распространения, извините Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба Ну что ж будем ждать более конструктивной помощи. Поскольку KEIL не использую, для независимости от какой либо IDE. Проект текущий тестирую в Eclipse, собирается через makefile. По сути нужно решить одну проблему, почему пакеты не принимаются. Хотя все пакеты отправляются без проблем и ошибок и не отличаются от stm32. Может какой бит иначе нужно выставлять при настройке CAN в gd32 или наоборот сбрасывать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба 21 minutes ago, TViT said: Может какой бит иначе нужно выставлять при настройке CAN в gd32 или наоборот сбрасывать... Нет. Аппаратно они одинаковые, в чем лично убедился конкретно на этих камнях в реальном проекте. Откройте даташиты, сравните. Разница была с АЦП, в частности с самокалибровкой. Там был нюанс. В остальном камни одинаково работали. 21 minutes ago, TViT said: Ну что ж будем ждать более конструктивной помощи. Присылайте проект вместе с железом и софтом. Это будет платно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 26 апреля, 2022 Опубликовано 26 апреля, 2022 (изменено) · Жалоба 30 минут назад, Forger сказал: Присылайте проект вместе с железом и софтом. Это будет платно. Это невозможно и бессмысленно (не настолько нужно чтобы рисковать целым проектом открывая его). Проект большой, платы под него тоже не 100х100мм. Плюс проект не мой, я его улучшаю дорабатываю и исправляю глюки. Просто сейчас на всякий случай появились мысли наперед действовать переходить на другие контроллеры. Поэтому нет так нет... Может еще кто-то сталкивался с такими проблемами время терпит, подожду еще помощи... Изменено 26 апреля, 2022 пользователем TViT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 27 апреля, 2022 Опубликовано 27 апреля, 2022 · Жалоба В 19-м году тестировал GD105, модуль CAN для примера можете посмотреть. can.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 27.04.2022 в 11:00, Edit2007 сказал: В 19-м году тестировал GD105, модуль CAN для примера можете посмотреть. can.zip 6 kB · 5 скачиваний Спасибо большое, но мне скорее нужно на базе текущей реализации проекта на базе HAL lib понять в чем различия в настройке CAN. Например какой-то бит не так настроен, чем отдельно на базе GD32 lib или регистров портировать весь проект. Может есть соображения на этот счет, буду рад любой информации )) Ткните носом где различия CAN модуля. Чтобы было понятно что вкл или откл при настройке CAN в текущем проекте через HAL lib. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 16 минут назад, TViT сказал: Ткните носом где различия CAN модуля. Чтобы было понятно что вкл или откл при настройке CAN в текущем проекте через HAL lib. С чего Вы решили, что различия именно в CAN? Различия могут быть где угодно: в системе тактирования например или конфигурировании ног или ещё где-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 23 minutes ago, TViT said: Ткните носом где различия CAN модуля. В CAN блоке их нет. Откройте наконец даташиты на оба камня и убедитесь в этом лично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 (изменено) · Жалоба 40 минут назад, jcxz сказал: С чего Вы решили, что различия именно в CAN? Различия могут быть где угодно: в системе тактирования например или конфигурировании ног или ещё где-то. Могут конечно. Но я их не вижу. Все ноги задействованы в этом МК. Даже SWO-pin для отладки хотелось бы иметь, но и его пришлось задействовать. Все пины работают и порты ввода вывода лампочки мигают по UART с правильнами скоростями все передается и принимается. Частота тоже 72МГц иначе бы все тайминги уплыли, там и FreeRTOS и опрос каждые 10мс по CAN разных устройств и все четко работает. Кроме приема по CAN. 33 минуты назад, Forger сказал: В CAN блоке их нет. Откройте наконец даташиты на оба камня и убедитесь в этом лично. Даташит смотрел, на сколько хватает моих познаний не увидел больших отличий. Поэтому и прошу помощи и наставлений у опытных людей. Изменено 28 апреля, 2022 пользователем TViT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Captain777 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба Было такое на GD32F105. Передача идет - приема нет. Вылечилось изменением порядка инициализации. STM при этом работал. После, одна прошивка заработала и на STM и на GD. Тоже самое и с USB было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 29 апреля, 2022 Опубликовано 29 апреля, 2022 · Жалоба 17 часов назад, Captain777 сказал: Было такое на GD32F105. Передача идет - приема нет. Вылечилось изменением порядка инициализации. STM при этом работал. После, одна прошивка заработала и на STM и на GD. Тоже самое и с USB было. Да у меня такое и на STM32 было )) Год назад примерно осваивал какой-то модуль, так вот пока в определенный порядок не выставил функции инициализации не работало. Но сейчас, что-то никак все перетасовал. Да и тасовать то особа нечего... Вы про эти функции имели ввиду? HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_CAN_Init(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TViT 0 29 апреля, 2022 Опубликовано 29 апреля, 2022 (изменено) · Жалоба Может есть у кого-то возможность простой проект создать для работы с CAN и у себя проверить наверняка есть такие процы у многих, если работает я проверю ваш проект у себя. Может у меня чип сбойный... Вот мой проект, только без драйверов, форум не дает больше 4Мб прикрепить TEST_CAN.7z Изменено 29 апреля, 2022 пользователем TViT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться