Автор |
Съобщение |
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 4:44 pm Мнения: 90
|
STM32F446 CAN проблем
Здравейте, ползвам STM32F446RET6 двата CAN комуникират с 2 други устройства. Всичко работи известно време без проблем и през няколко минутки (нама точно определено време. Всеки път различно) изписка по няколко фрейма. Пробвах приемането да е двата CAN да са на едно FIFO, пробвах и да са на различни - никаква разлика. Ако работи само единия кан вдига немислими скорости без да има грешки. Ако приема по единия, а предава по другия - също няма проблем. но когато работят и двата, когато си реши си поизпуска по някой фрейм. Някой да е имал подобен проблем? Идеи също приемам всякакви. Може да се появи идея която да не съм пробвал. А, да дам малко уточнения. Фреймовете вървят през около 1 милисекунда приблизително. приетите данни се пишат в опашка през прекъсване. Задачата която обслужва данните седи в изчакване. Общо взето - стандартна история. скоростта на двата CAN e 500 kb. Процесорите се клатят на 180 MHz... Има време бол дето се вика... Вече почнах да си мисля, че имат някакъв проблем с този модул, но не намерих нищо описано в нета. Нито някоя ерата, нито друго описание точно на този проблем.
|
Съб Апр 01, 2023 7:26 pm |
|
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 10:22 pm Мнения: 3074
|
Re: STM32F446 CAN проблем
Не съм работил с CAN, но какво значи горното? Не пристига нито един байт? Има индикация за грешен пакет, за грешен байт?
|
Съб Апр 01, 2023 7:56 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27993 Местоположение: София
|
Re: STM32F446 CAN проблем
Погледни да не изтърваш прекъсване. Как обслужваш прекъсванията, тоя STM не ми е познат но предполагам са вектори, има ли място където ги маскираш ? FIFO как ти е реализирано, хардуерно или ти си го правиш, ако го правиш ти пак опираме до възможен проблем с прекъсването. Възмножно е и да имаш хардуерен проблем. Пробвал ли си да оставиш само това и вместо прекъсване да полираш, и от там вече ако работи да почнеш да дириш дали ти изтърваш прекъсването или то изобщо не иде.
|
Нед Апр 02, 2023 5:17 am |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4714
|
Re: STM32F446 CAN проблем
що па по два CAN резистори в краищата има цлока на STMите "стабилни" ли са
_________________ main[-1u]={1};
|
Нед Апр 02, 2023 7:03 am |
|
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 4:44 pm Мнения: 90
|
Re: STM32F446 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 между двата и да видя какво ще се получи.
|
Нед Апр 02, 2023 4:10 pm |
|
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 10:41 am Мнения: 1664
|
Re: STM32F446 CAN проблем
А, дали фрейм с ID 3 е въобще предаден по линията?
|
Вто Апр 18, 2023 12:58 pm |
|
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 4:44 pm Мнения: 90
|
Re: STM32F446 CAN проблем
Да, предават се от 0 до 7FF
|
Пон Апр 24, 2023 4:19 pm |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4714
|
Re: STM32F446 CAN проблем
схема? или FIFO-то пропуска
_________________ main[-1u]={1};
|
Пон Апр 24, 2023 4:24 pm |
|
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 10:41 am Мнения: 1664
|
Re: STM32F446 CAN проблем
"Предават се" - защото "така прави софтуера", или го видя със някакъв снифер?
|
Чет Апр 27, 2023 9:31 am |
|
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 4:44 pm Мнения: 90
|
Re: STM32F446 CAN проблем
Предават се, защото аз ги предавам Гарантиеано. И проблема е решен. Оказа се, проблем с ретрансмишъна.
|
Нед Апр 30, 2023 8:33 pm |
|
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 10:41 am Мнения: 1664
|
Re: STM32F446 CAN проблем
Значи все пак не са се предавали...
|
Вто Май 02, 2023 12:37 pm |
|
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 4:44 pm Мнения: 90
|
Re: STM32F446 CAN проблем
Значи са се предавали! Не се приемаха! Проблема е решен с приемането. Приемника препредавашеприетия фрейм и просто през това време пропуска да приеме друг ако се появи в същото време.
|
Съб Май 06, 2023 9:21 pm |
|
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 10:41 am Мнения: 1664
|
Re: STM32F446 CAN проблем
Няма как да има 2 фрейма едновременно по CAN шина... Най-вероятно е настъпвала колизия и все пак фрейма не е бил предаван...
|
Нед Май 07, 2023 10:16 am |
|
|