Skocz do zawartości

Jak ustawic parametry szybkości przy transmisji CAN


slawek7

Pomocna odpowiedź

Cześć.

Czy może mi ktoś z Was wytłumaczyć jak ustawić parametry transmisji CAN

Dla prędkości 100kb/s wygląda to tak:

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;    
     CAN_InitStructure.CAN_BS1=CAN_BS1_7tq;    
     CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;   
     CAN_InitStructure.CAN_Prescaler=24;       
     CAN_Init(CAN1, &CAN_InitStructure);

dla prędkości 200kbs jest coś takiego:

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;    
     CAN_InitStructure.CAN_BS1=CAN_BS1_5tq;    
     CAN_InitStructure.CAN_BS2=CAN_BS2_6tq;   
     CAN_InitStructure.CAN_Prescaler=15;       
     CAN_Init(CAN1, &CAN_InitStructure);

A jak ustawić dla prędkości 50kbs? Zewnętrzny kwarc 25MHz rdzeń taktowany 72MHz

Nie wiem co tam wpisać w te pola oraz skąd to się bierze?

Link do komentarza
Share on other sites

Tutaj masz całkiem dobry artykuł opowiadający o samym CANie oraz o jego konfiguracji w STMie. Jeżeli przyjmiesz najbardziej powszechne wartości, czyli:

SYNC_SEG                          = 1
PROP_SEG + PHASE_SEG1       = BS1 = 10
PHASE_SEG2                  = BS2 = 7

To możesz obliczyć sobie preskaler według (zakładjąc, że częstotliwość PCLK1 jest równa standardowej częstotliwości 36MHz):

div = 36 000 000 / prędkość * (BS1 + BS2 + 1) = 36 000 000 / (50 000 * 18) = 40
Link do komentarza
Share on other sites

... najbardziej powszechne wartości ...

Są to parametry ustawiane według uznania i doświadczenia programisty. Na przykład jeśli masz krótką magistralę i dużo node'ów to dla oszczędności energii możesz ustawić mniejsze wartości BS1 i BS2 (wtedy będziesz mógł ustawić większy dzielnik częstotliwości). Z moich niewielkich doświadczeń te wartości nie mają większego znaczenia dopóki nie ustawiasz im jakichś granicznych wartości.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Chciałem się jeszcze zapytać o samo podłączenie do linii CAN. Jeśli mam działającą sieć np komunikacja pomiędzy dwoma modułami i podpinam się do tego z osobnym modułem który zasilany jest z odrębnego źródła to czy ja muszę podpiąć też GND? Nie mogę nic na ten temat znaleźć a jedyne co mi się udało to że GND jest opcjonalna, ale w jakim sensie to już nie.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.