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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 18 kwi 2025, o 17:43


    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: 2595
    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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: 2595
    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 2 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