Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Magistrala CAN MCP2510 dana jest 2 razy za duża

lukaszg99 19 Lut 2009 20:44 2642 2
  • #1 19 Lut 2009 20:44
    lukaszg99
    Poziom 8  

    Robię pracę dyplomowa o magistrali CAN

    Informacje z magistrali CAN odbieram za pośrednictwem SPI od controlera CAN MCP2510.
    Komunikacje jest nawiązana tylko mam taki problem ze odebrana dana jest 2 razy większa od danej wysłanej np. jeżeli wyśle 3 to odbieram 6

    Odbieram i wysyłam standardową ramkę danych, filtry i maski mam wyłączone, przerwanie INT również jest wyłączone

    link do datasheet MCP2510:
    http://www.datasheetcatalog.org/datasheet/microchip/21291e.pdf
    http://www.silaresearch.com/data/mcp2510.pdf

    nie mam pojęcia dlaczego tak się dzieje:?:

  • #2 20 Lut 2009 02:40
    master_pablo
    Poziom 16  

    Mnozenie przez 2 to przesuniecie o 1 bit w lewo, moze po prostu zle interpretujesz to, co odbierasz (lub zle wysylasz)?

  • #3 20 Lut 2009 17:46
    lukaszg99
    Poziom 8  

    program pisze w bascomie i to tak wyglada:
    Sub Nadaj
    Dim I As Byte
    Call Mcpw(&H30 , &H03)
    Call Mcpw(&H31 , &H1) konfiguracja danej do wysłania jaki identyfikator
    Call Mcpw(&H32 , &H0)
    Call Mcpw(&H35 , Do_nadania)-zapisz do rejestru 0x35 MCP ile bajtow do nadania
    For I = 1 To Do_nadania
    A = &H35 + I- rejestr danej
    Call Mcpw(a , Nadawane(i))- zapisz daną Nadawane(i) w rejestrze A (np H35+1= &H36 czyli dana będzie zapisana w rejestrze &H36)
    Next I
    Call Mcpnadx - procedura zezwalająca na wysłanie wiadomości
    Waitms 1
    End Sub

    po odebraniu wiadomości dana zostaje przeniesiona z bufora do rejestru &H66
    procedura czytania wiadomości od MCP:
    Sub Mcpr
    Local Q As Byte
    Local Aa As Byte
    Reset Ss
    A=&H66-adres rejestru z którego ma odczytać wiadomość
    Aa = 3
    Waitus 10
    Spiout Aa , 1- wysłanie na SPI 3 pozwala odczytać wiadomości od MCP
    Spiout A , 1- adres czytanego rejestru z daną otrzymaną z CAN
    Spiin Przyjete , 1- odbierz 1 bajt danych i zapisz w Przyjęte
    Odebrane(1) = Przyjete
    Waitus 10
    Set Ss
    Call Mcpw(&H2b , &H0)- czyszczenie flagi identyfikatora
    Przyjete = 0

    Waitus 5

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo