Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 mar 2026, o 02:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 4 kwi 2017, o 13:36 
Offline
Nowy

Dołączył(a): 06 sty 2014
Posty: 20
Pomógł: 0

Witam Panow, chcialem dodac do mojego urzadzenia modul CAN, aby moglo sie komunikowac z moim sterownikiem silnika i wysylac do niego potrzebne mu informacje. Napotkalem kilka problemow, ktore w miedzy czasie rozwiazalem. Miedzy innymi musialem wymienic kwarc na plytce MCP, bo chyba byl uszkodzony i przez to nie moglem nawiazac komunikacji z MCP. Napisalem na bazie pdfa z interenetu o SPI wlasna funckcje programowego SPI na porcie C wykorzystujac biblioteki do MCP, ktore opublikowal uzytkownik SunRiver (bardzo za nie dziekuje). Poprawilem w funckji inicjacji mcp w pliku mcp2515.c ustawianie rejetrow CNF1, CNF2, CNF3. A kolega Gembcior pomogl mi stworzyc funkcje wysylajaca i odbierajaca 29 bitowe ID. Do rzeczy:
MCP sie inicjuje, odpowiada poprawnie na zapytanie o rejestr CNF3, na monitorku pokazuje mi sie MCP aktywny. Moj sterownik wysyla po CANIE reqeusty z ID, w ktorym jest zawarte co chce dostac, gdzie, do jakiego id i od jakiego id.... (bylem w stanie komunikaty zarejestrowac analizatorem stanow logicznych i rozkodowac). I tu zonk. bo po pierwsze komunikaty roznia sie od zalozonych i wyliczonych przeze mnie. pola danych tez wygladaja inaczej. Napisalem watek na forum od stewonika silnika i koledzy napisali mi, ze id wysylane sa poprawne i zgadzaja sie z moimi zalozeniami teoretycznymi.
Komunikaty odebrane: ID 0x00088438, Data: 0x07, 0x0D, 0x08; ID: 00288438, Data: 0x07, 0x0E, 0x08.
Wyliczenia teoretyczne: ID: 0x00094038, data: 0x07, 0x00, 0x48 (bit 4 nie uzywany); ID: 0x00294038, data: 0x07, 0x01, 0x44.
Przypuszczam, ze zle zrozumialem ramke z 29bitowym ID.... czy ktos moglby mi to wyjasnic?
Dodatkowo meczylem chlopakow o ustawienia CAN-a i bit timings, bo moj MCP nie odbiera nic z sieci CAN. jedyne co uzyskalem, to predkosc przesylu 500 kbps. Nic innego nie sa mi w stanie powiedziec.
Programowe SPI dziala poprawnie, komunikaty przeslane do MCP pokrywaja sie z tym co jest w kodzie w funkcji inicjujacej MCP.

Ponizej zrzuty ekrany z analizera stanow logicznych dla programowego SPI i dla szyny CAN
ObrazekObrazek


W kodzie ponizej zmienilem zakomentowane linijki na moje z write register. Z tego co rozumiem, to mam wlaczone przerwania i jak cos sie pojawi w buforze RX0 czy RX1 to na pinie INT pojawi sie stan niski, a maski akceptacji sa wylaczone i powinien odbierac wszystko, a wyglada ze bufor jest pusty :/, bo pin INT nigdy nie przyjmuje stanu niskiego. Dodam, ze na odpowiednim PINIe w atmedze mam wlaczony pull up.

Czy ktos moglby cos pomoc? jesli potrzebujecie cos wiecej, to piszcie smialo, bo nie wiem co potrzeba :)

Jeszcze jesli chodzi o extended ID przyjelismy z kolega Gembciorem, ze rejestry zapelniam w MCP od najstarszych bitow 29 bitowego ID.

I z gory przepraszam za brak polskich znakow, lecz laptop jest z niemiecka klawiatura.

pozdrawiam i dziekuje za jakakolwiek pomoc :)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


P.S. nie wiem czemu syntax nie rozpoznaje skladni, wpisalem w miejsce jezyk_programowania C.



Ostatnio edytowano 4 kwi 2017, o 15:27 przez kubeq_sq, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2017, o 14:45 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Wklej jeszcze raz kod, ale tym razem z małym "c", bo coś ci chyba ucięło pół kodu.
A to co za twór?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Na moje oko początkującego, to to się nigdy nie wykona, albo ugrzęźnie na tym.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2017, o 15:23 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

kubeq_sq napisał(a):
P.S. nie wiem czemu syntax nie rozpoznaje skladni, wpisalem w miejsce jezyk_programowania C.


Bo kolega nie chce się zastosować do instrukcji która jest na forum już czerwca 2014 roku - proszę poprawić formatowanie w pierwszym poście zgodnie z instrukcją

topic7402.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2017, o 20:35 
Offline
Nowy

Dołączył(a): 06 sty 2014
Posty: 20
Pomógł: 0

Harry, funkcja dziala poprawnie:) i to nie moj twor, tylko zaporzyczony od jakis amerykancow :)
Panie Mirku juz poprawione, przepraszam.
wkleje jeszcze funkcje odbierajaca ID, bo cos chyba poknocilismy z kolega, bo najstarsze 16 bitow wyrzuca mi same jedynki nie wiedzac czemu, a MCP wnioskujac po wykresie analizera odbiera poprawne ID.
:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czy ktos ma jakies pomysly czemu taksie dzieje? funkcja wyglada na pierwszy rzut oka na poprawna :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO