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



Teraz jest 3 gru 2024, o 19:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 17 lip 2018, o 16:58 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Witam forumowiczów, mam problem następującej maści:
Z Układu USBtin który zakupiłem w internecie, wysyłam ramki po CAN-ie do mojego modułu MCP2515 a dane odebrane wyświetlam przez USART-a na terminalu.
Jednak gdy wysyłam liczbe przez USBTin np: 0x06, modul odbiera 0x04.
Maski mam ustawione na zero.
Obrazek
W czym może być problem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2018, o 07:30 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Jestem w stanie zapłacić za pomoc w rozwiązaniu problemu, wiec jeżeli ktoś miał podobny problem z błednymi danymi w buforze odbiorczym, bardzo proszę o kontakt.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2018, o 10:56 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2587
Pomógł: 128

Wklej zdjęcia całości, jak masz to polaczone itp, itd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2018, o 11:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Tak jak micky napisał musisz podać więcej informacji. Z obrazków wynika tylko że masz w odbieranych danych zerowany najmłodszy bit.
Czy możesz zrobić większą próbkę testów / wysyłanych wartości wraz z takimi z wysłaniem więcej bajtów w ramce niż jeden?
Czy w tym kupionym rozwiązaniu nie ma jakichś opcji konfiguracyjnych włączających jakieś specyficzne opcje?

Co na terminali oznacza wyświetlana informacja ERROR?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2018, o 11:55 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Arduino UNO mam podłaczone przez SPI do MCP2515.
Połączenia CANH CANL i GND wykonałem z użyciem złączek wago.
Mam zrobione 5 poziomowe menu, domyślnie przy starcie zmienna MENU=0.

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

Funkcja "Wyslij_na_segment_0" wyświetla wartość na pierwszych trzech segmentach wyświetlacza wartość odczytaną z rejestru RXB0D0 (decymalnie 102).
Po naciśnieciu klawisza 2, wysyłam ramkę z jedną daną (aktualną wartościa enkodera) o identyfikatorze 5.
Odbieram poprawnie tą daną na USBTinViewer - jeżeli chodzi o wysylanie danych , wszystko działa bez problemu.
Przy próbie wysłania danej z USBTinViewer do ukladu Arduino, odbieram błędne lecz powtarzające się wartości - może to bałagan przy filtrach i maskach?
Inicjalizacja MCP2515 wyglada u mnie tak:
Składnia: [ Pobierz ] [ Ukryj ]
język actionscript
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Informacja error jest to informacja z modułu Wi-FI -przy wysyłaniu wartości z USARTA, trafiają one na wejscie modułu, a ten zwraca wartość ERROR. Generalnie wyświetlam dane na wyswietlaczu 7-segmentowym.
Jest powtarzalność w tym co odbiera moduł - wysylam 0x0F --> Odbiera 14, wysyłam 0x07 --> Odbieram 6.
Jak wyśle 8 bajtow danych, np 0F 0F 0F 0F 0F 0F 0F 0F , w kolejnych rejestrach RXB0D0-D7 bede mial wartości 14.

------------------------ [ Dodano po: 50 minutach ]

Włączyłem moduł po dłuższej przerwie, wysłałem 1 daną 0x0F i odebrałem 15.
Następnie wysłałem 0x0E i pokazało 13, kolejne próby wysłania 0x0F zakończyły się odebraną daną równą 14 i do tej pory nic się nie zmienia.
Oto funkcja do odebrania danych:
Składnia: [ Pobierz ] [ Ukryj ]
język actionscript
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2018, o 13:25 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Oto przykladowe dane: wyslane_binarnie / odebrane_binarnie <-----------wyslane_decymalnie/odebrane_decymalnie

0000 0001 / 0000 0000 <-------- 1/0
0000 0010 / 0000 0000 <-------- 2/0
0000 0011 / 0000 0010 <-------- 3/2
0000 0100 / 0000 0000 <-------- 4/0
0000 0101 / 0000 0000 <-------- 5/0
0000 0110 / 0000 0100 <-------- 6/4
0000 0111 / 0000 0110 <-------- 7/6
0000 1000 / 0000 0000 <-------- 8/0
0000 1001 / 0000 0000 <-------- 9/0
0000 1010 / 0000 0000 <-------- A/0
0000 1011 / 0000 0100 <-------- B/4
0000 1100 / 0000 1000 <-------- C/8
0000 1101 / 0000 1000 <-------- D/8
0000 1110 / 0000 1100 <-------- E/12
0000 1111 / 0000 1110 <-------- F/14

Dla 0xBB: 1011 1011 / 1011 0100 <------0xBB(187_decymalnie)/0xB4(180_decymalnie)
Dla 0x36: 0011 0110 / 0010 1000 <--------0x36(54_decymalnie)/0x28(40_decymalnie)

Dla 0xF0: 1111 0000 / 1111 0000 <------- Tutaj dobrze
Dla 0xE0: 1110 0000 / 1110 0000 <------- Tutaj dobrze
Dla 0xD0: 1101 0000 / 1100 0000 <------- Tutaj źłe
Dla 0xC0: 1100 0000 / 1100 0000 <------- Tutaj dobrze
Dla 0xB0: 1011 0000 / 1010 0000 <------- Tutaj żle
Dla 0xA0: 1010 0000 / 1000 0000 <------- Tutaj żle



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2018, o 15:32 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Sprawdziłem co dzieje się w rejestrze RXB0DLC(0x65) podczas wysylania ramek - sytuacja jest taka sama, tzn. dla ilości danych 1,2,4,5,8 w rejestrze jest 0. dla 3 jest 2, a dla 6 jest 4, a dla 7 wyslanych danych jest 6 (sytuacja identyczna jak przy odbieraniu danych).
Może ktoś podrzucić przykładowy kod do odebrania danych z MCP2515?
Funkcje inicjalizacji?
Może krok po kroku ktoś rozumie w jaki sposób MCP2515 zainicjalizować odczyt danych z bufora 0?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2018, o 15:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

KrzysztofP napisał(a):
Może ktoś podrzucić przykładowy kod do odebrania danych z MCP2515?
Zajrzyj do https://github.com/dergraaf/avr-can-lib ... aster/src/

A tu masz pełny opis http://www.matejk.cz/zdroje/mcp2515-avr-can-spi.pdf

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2018, o 23:23 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Tak wygląda moja funkcja inicjalizacji MCP2515:
Składnia: [ Pobierz ] [ Ukryj ]
język actionscript
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Może brakuje tutaj czegoś? Dane odebrane zachowują się tak jakby przechodzily przez jakiś filtr - do RXF0 I RXF1(SIDH oraz SIDL) mam wpisane zera.
pomysły mi się kończą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 14:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

KrzysztofP napisał(a):
pomysły mi się kończą.
A po obu stronach masz na pewno zgodną konfigurację, bo może wysyłasz coś inaczej / z jakimiś specjalnymi opcjami?
Najlepszym rozwiązaniem byłoby podpięcie się do szyny i sczytanie co po niej idzie, dzięki temu będzie wiadomo czy masz problem z wysyłaniem czy odpieranie danych.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 17:18 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Wysyłam dane z Arduino +MCP2515 do Usbtin i wszystko działa jak należy. Zauważyłem ,że wszelkie dane które chce odczytać z rejestrów mają ten sam problem- wysyłam 15, odbieram 14. Wyślę dana z Usbtin do Arduino, dam identyfikator 15, przez układ odbieram 14. Wyślę id=7, odbiorę 6. Problem jest z funkcją do odczytu danych z spi. Moja funkcją SpiTransmit wygląda tak jak w jednym z wątków powyżej, może trzeba zastosować dwie osobne funkcje z nadawaniem i odbieraniem danych? Póki co mam tylko jedną funkcję która wykorzystuje do nadawania jak i odbierania.

------------------------ [ Dodano po: 8 minutach ]

UsbTin testowałem również z modułem CAN falownika firmy Lenze, wszystko działa i pracuje jak należy. Próbowałem na wszystkie możliwe sposoby konfigurować spi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2018, o 21:10 
Offline
Nowy

Dołączył(a): 06 lip 2018
Posty: 8
Pomógł: 0

Problem rozwiązany.
Powodem był programator- przy rozłączeniu układu z programatorem usbasp dane w buforach zaczęły przyjmować poprawne wartości.
Mimo to dziękuję z pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2018, o 21:39 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2587
Pomógł: 128

Dlatego pisałem, żebyś wkleił zdjęcie całości...



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: 13 ] 

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO