Змінюй хід війни! Допомагай ЗСУ!

Электрофлуд :)

  • Автор теми Автор теми RUH
  • Дата створення Дата створення
это самое, я просто спросил кто пользовался.
Я тоже выстукивал в своё время жала придавая нужную форму + температуру, и даже дырочку на конце ковырял, называл это орлиным клювом, сейчас это бы называлось загнутой микроволной. Но с тех пор я сменил паяльник на станции, несколько подрос и запросы несколько сместились.
У меня было медное жало с напылением, оно сносилось за полгода неторопливого использования, интересно сколько прослужит просто медное.
 
Есть мельхиоровая чайная ложка, но ее жалко. Красивая
 
Граждане, дайте, плиз, кто-нибудь, "работающий" проект CAN STM32 под Кейл. Только не пинайте меня на примеры из _StdPeriph_Driver, или пример от самого Кейла.
Желательно под F1... или F4..
 
Граждане, дайте, плиз, кто-нибудь, "работающий" проект CAN STM32 под Кейл. Только не пинайте меня на примеры из _StdPeriph_Driver, или пример от самого Кейла.
Желательно под F1... или F4..
Андрюха, что именно тебе от CAN надо, стэк? Пиши в скайп
 
В общем, разобрался сам - ничего сложного.
 
Ох и ядреный протокол! Одни положительные впечатления. и Мбит и 500 кбит и 125кбит, все описал, настроил , опробовал и задефайнил. Без логического анализатора можно было и не рыпаться даже.
 
Ох и ядреный протокол! Одни положительные впечатления. и Мбит и 500 кбит и 125кбит, все описал, настроил , опробовал и задефайнил. Без логического анализатора можно было и не рыпаться даже.
Ага, а ты какой конкретно юзал то, их видов аккулиард
 
Ох и ядреный протокол! Одни положительные впечатления. и Мбит и 500 кбит и 125кбит, все описал, настроил , опробовал и задефайнил. Без логического анализатора можно было и не рыпаться даже.

стрянно... Протокол - просто сказочный. Он, сцуко, с гарантированной доставкой, сам себя разруливает. Если 2 передатчика начинают одновременно орать - один распознает коллизию и заткнётся на подождать, не портя передачу второму.
Ни каких логических анализаторов не использовал, поднимал на 2510 и 2515. Тоже только положительные впечатления :) (ну и на SAM7X) поднимал - но там ещё проще, да ещё и DMA - вообще лафа.
 
стрянно... Протокол - просто сказочный. Он, сцуко, с гарантированной доставкой, сам себя разруливает. Если 2 передатчика начинают одновременно орать - один распознает коллизию и заткнётся на подождать, не портя передачу второму.
Ни каких логических анализаторов не использовал, поднимал на 2510 и 2515. Тоже только положительные впечатления :) (ну и на SAM7X) поднимал - но там ещё проще, да ещё и DMA - вообще лафа.

Славик, я использовал, как базу, пример от Кейла, какого-то "лохматого" года исполнения, который пришлось основательно переделать. Задрочка была со скоростью передачи данных. Потому, как для CAN, скорость в сети для всех устройств фиксированная, то никакие отклонения не допустимы.
Анализатором я увидел, что кадр отправляется превосходно, но вот частота посылки (мерял по двум одинаковым битам) была отлична от необходимой.
Вот "картинка" после "плясок с бубном" -

62500Гц - 125кбит и 250000Гц - 500кбит, соотв.
 

Вкладення

  • can125.webp
    can125.webp
    58.7 КБ · Перегляди: 83
  • can500.webp
    can500.webp
    50.9 КБ · Перегляди: 76
...кадр отправляется превосходно, но вот частота посылки (мерял по двум одинаковым битам) была отлична от необходимой.

Вот этого не понял... Есть баудрейт. Он нужен одинаковый. Иначе коллизии не разрулятся. Что такое частота посылки и как кадр отправляется превосходно, если он не с тем битрейтом? Ты мну запутал :)
Походу у тебя просто были устройства, настроенные на разную скорость, как я понял, на одной линии.
 
Вот этого не понял... Есть баудрейт. Он нужен одинаковый. Иначе коллизии не разрулятся. Что такое частота посылки и как кадр отправляется превосходно, если он не с тем битрейтом? Ты мну запутал :)
Походу у тебя просто были устройства, настроенные на разную скорость, как я понял, на одной линии.

Нет, вчитайся. Скорость можно установить разную, путем (я определил и просчитал для себя пока два режима скорости)-
#ifdef CAN_125
CAN1->BTR &= ~((( 0x03) << 24) | (( 0x07) << 20) | (( 0x0F) << 16) | ( 0x1FF));
CAN1->BTR |= ((((4-1) & 0x03) << 24) | (((5-1) & 0x07) << 20) | (((12-1) & 0x0F) << 16) | ((brp-1) & 0x1FF));
#else // 500
CAN1->BTR &= ~((( 0x03) << 24) | (( 0x07) << 20) | (( 0x0F) << 16) | ( 0x1FF));
CAN1->BTR |= ((((4-1) & 0x03) << 24) | (((5-1) & 0x07) << 20) | (((12-1) & 0x0F) << 16) | ((brp-13) & 0x1FF));
#endif
 
Нет, вчитайся. Скорость можно установить разную, путем (я определил и просчитал для себя пока два режима скорости)-
#ifdef CAN_125
CAN1->BTR &= ~((( 0x03) << 24) | (( 0x07) << 20) | (( 0x0F) << 16) | ( 0x1FF));
CAN1->BTR |= ((((4-1) & 0x03) << 24) | (((5-1) & 0x07) << 20) | (((12-1) & 0x0F) << 16) | ((brp-1) & 0x1FF));
#else // 500
CAN1->BTR &= ~((( 0x03) << 24) | (( 0x07) << 20) | (( 0x0F) << 16) | ( 0x1FF));
CAN1->BTR |= ((((4-1) & 0x03) << 24) | (((5-1) & 0x07) << 20) | (((12-1) & 0x0F) << 16) | ((brp-13) & 0x1FF));
#endif
Не мое это дело,но,как-то бы лучше эти магические цифры заменить на осмысленные имена...
 
Назад
Зверху Знизу