Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

STM32F446 CAN проблем
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=18794
Страница 1 от 1

Автор:  eddiesoft [ Съб Апр 01, 2023 8:26 pm ]
Заглавие:  STM32F446 CAN проблем

Здравейте, ползвам STM32F446RET6 двата CAN комуникират с 2 други устройства. Всичко работи известно време без проблем и през няколко минутки (нама точно определено време. Всеки път различно) изписка по няколко фрейма. Пробвах приемането да е двата CAN да са на едно FIFO, пробвах и да са на различни - никаква разлика. Ако работи само единия кан вдига немислими скорости без да има грешки. Ако приема по единия, а предава по другия - също няма проблем. но когато работят и двата, когато си реши си поизпуска по някой фрейм. Някой да е имал подобен проблем? Идеи също приемам всякакви. Може да се появи идея която да не съм пробвал.
А, да дам малко уточнения. Фреймовете вървят през около 1 милисекунда приблизително. приетите данни се пишат в опашка през прекъсване. Задачата която обслужва данните седи в изчакване. Общо взето - стандартна история. скоростта на двата CAN e 500 kb. Процесорите се клатят на 180 MHz... Има време бол дето се вика... Вече почнах да си мисля, че имат някакъв проблем с този модул, но не намерих нищо описано в нета. Нито някоя ерата, нито друго описание точно на този проблем.

Автор:  stefan63 [ Съб Апр 01, 2023 8:56 pm ]
Заглавие:  Re: STM32F446 CAN проблем

Цитат:
, когато си реши си поизпуска по някой фрейм.

Не съм работил с CAN, но какво значи горното? Не пристига нито един байт? Има индикация за грешен пакет, за грешен байт?

Автор:  ToHu [ Нед Апр 02, 2023 6:17 am ]
Заглавие:  Re: STM32F446 CAN проблем

Погледни да не изтърваш прекъсване. Как обслужваш прекъсванията, тоя STM не ми е познат но предполагам са вектори, има ли място където ги маскираш ? FIFO как ти е реализирано, хардуерно или ти си го правиш, ако го правиш ти пак опираме до възможен проблем с прекъсването. Възмножно е и да имаш хардуерен проблем. Пробвал ли си да оставиш само това и вместо прекъсване да полираш, и от там вече ако работи да почнеш да дириш дали ти изтърваш прекъсването или то изобщо не иде.

Автор:  TheWizard [ Нед Апр 02, 2023 8:03 am ]
Заглавие:  Re: STM32F446 CAN проблем

що па по два CAN
резистори в краищата има
цлока на STMите "стабилни" ли са

Автор:  eddiesoft [ Нед Апр 02, 2023 5:10 pm ]
Заглавие:  Re: STM32F446 CAN проблем

stefan63 написа:
Цитат:
, когато си реши си поизпуска по някой фрейм.

Не съм работил с CAN, но какво значи горното? Не пристига нито един байт? Има индикация за грешен пакет, за грешен байт?




Предавам фреймове с последователни ID. 0,1,2,...
приемам 0.1.2 и фрейм с ID 3 го няма ,а има вече този с 4. И така пропуска през съвсем произволно време по 1 фрейм.
Но това се получава когато предавам и към двата CAN едновременно.
Направх си експеримент: Платка 1, предава през платка 2 на Платка 3. Тя връща през 2 пак на 1 каквото е приела. и на платка 1 гледам дали е върнато каквото съм предал. Така няма абсолютно никакъв проблем. Всичко работи идеално.
Но, за който не е запознат с тия процесори, двата CAN използват общи ресурси. Т.е не са 2, а 1.5 CAN. Има си хардуерни 2 FIFO, които не се препълват. (това мога да го видя)
Софтуера е оргаизиран по следния начин. В прекъсване от CAN пиша в опашка и в задача приетото в опашката го предавам по другия CAN. Опашките с тази скорост на предаване не записват повее от 1 елемент (макар, че са за по 10) т.е. не се препълват. От към софтуер е до краен предел изпилено и оптимизирано (поне тка си мисля)
Сега, понеже нямам друг процесор с 2 CAN мисля да вуржа 2 процесора с по 1 CAN и SPI между двата и да видя какво ще се получи.

Автор:  relsys [ Вто Апр 18, 2023 1:58 pm ]
Заглавие:  Re: STM32F446 CAN проблем

eddiesoft написа:
приемам 0.1.2 и фрейм с ID 3 го няма ,а има вече този с 4. И така пропуска през съвсем произволно време по 1 фрейм.


А, дали фрейм с ID 3 е въобще предаден по линията?

Автор:  eddiesoft [ Пон Апр 24, 2023 5:19 pm ]
Заглавие:  Re: STM32F446 CAN проблем

Да, предават се от 0 до 7FF

Автор:  TheWizard [ Пон Апр 24, 2023 5:24 pm ]
Заглавие:  Re: STM32F446 CAN проблем

схема? или FIFO-то пропуска

Автор:  relsys [ Чет Апр 27, 2023 10:31 am ]
Заглавие:  Re: STM32F446 CAN проблем

eddiesoft написа:
Да, предават се от 0 до 7FF


"Предават се" - защото "така прави софтуера", или го видя със някакъв снифер?

Автор:  eddiesoft [ Нед Апр 30, 2023 9:33 pm ]
Заглавие:  Re: STM32F446 CAN проблем

Предават се, защото аз ги предавам :) Гарантиеано.
И проблема е решен. Оказа се, проблем с ретрансмишъна.

Автор:  relsys [ Вто Май 02, 2023 1:37 pm ]
Заглавие:  Re: STM32F446 CAN проблем

eddiesoft написа:
Предават се, защото аз ги предавам :) Гарантиеано.
И проблема е решен. Оказа се, проблем с ретрансмишъна.


Значи все пак не са се предавали...

Автор:  eddiesoft [ Съб Май 06, 2023 10:21 pm ]
Заглавие:  Re: STM32F446 CAN проблем

Значи са се предавали! Не се приемаха! Проблема е решен с приемането. Приемника препредавашеприетия фрейм и просто през това време пропуска да приеме друг ако се появи в същото време.

Автор:  relsys [ Нед Май 07, 2023 11:16 am ]
Заглавие:  Re: STM32F446 CAN проблем

eddiesoft написа:
Значи са се предавали! Не се приемаха! Проблема е решен с приемането. Приемника препредавашеприетия фрейм и просто през това време пропуска да приеме друг ако се появи в същото време.


Няма как да има 2 фрейма едновременно по CAN шина...
Най-вероятно е настъпвала колизия и все пак фрейма не е бил предаван...

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/