slawek7 Napisano Listopad 5, 2013 Udostępnij Napisano Listopad 5, 2013 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 More sharing options...
danioto Listopad 6, 2013 Udostępnij Listopad 6, 2013 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 More sharing options...
slawek7 Listopad 6, 2013 Autor tematu Udostępnij Listopad 6, 2013 Czytałem to, natomiast nie wyjaśnia mi to skąd wiozłeś BS1 i BS2? Link do komentarza Share on other sites More sharing options...
danioto Listopad 6, 2013 Udostępnij Listopad 6, 2013 ... 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 More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
slawek7 Listopad 9, 2013 Autor tematu Udostępnij Listopad 9, 2013 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 More sharing options...
danioto Listopad 10, 2013 Udostępnij Listopad 10, 2013 Faktycznie, CAN jest siecią różnicową, co mogłoby wykluczać konieczność podłączenia masy, jednak tego nie próbowałem i nie wiem. Może ktoś bardziej doświadczony się wypowie. Link do komentarza Share on other sites More sharing options...
slawek7 Listopad 10, 2013 Autor tematu Udostępnij Listopad 10, 2013 No właśnie w Ethernecie też nie ma masy i jest siecią też różnicową, to może faktycznie nie trzeba? Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »