Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STM32F103RB - Brak komunikacji CAN

Zelu00 13 Sie 2013 10:36 1911 7
  • #1 13 Sie 2013 10:36
    Zelu00
    Poziom 15  

    Witam,

    Próbuje uruchomić komunikacje po maigsitrali CAN. Jednak bez sukcesu.
    Mierząc linie RX i TX (PB8 i PB9) cały czas mam 3.3V. Brak jakiejkoliwek reakcji.
    Kod poniżej.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Może ktoś wypatrzy jaki błąd popełniam?

    0 7
  • #2 13 Sie 2013 10:48
    alagner
    Poziom 25  

    A ustaw ramce jakikowiek ID. Tak czysto "dla BHP". Poza tym masz pewność, że to jest wysłane w ogóle?

    0
  • #3 13 Sie 2013 10:51
    Zelu00
    Poziom 15  

    ID jest ustawione tutaj:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wysyłane raczej nie jest, bo na oscyloskopie nic nie widać. Cały czas 3.3V.

    0
  • #4 13 Sie 2013 13:05
    nibbit
    Poziom 19  

    A masz w ogóle z drugiej strony podłączone urządzenie po CAN z odpowiednią terminacją?

    0
  • #5 13 Sie 2013 13:28
    Zelu00
    Poziom 15  

    Ale nic nie pojawia sie na PB9, wiec terminowanie nie ma tu nic do rzeczy. Sprawdzam pin na wejściu do transceiver'a.
    Pozatym bez terminowania na CAN'ie powinny pojawić się przynajmniej Error Frames.

    0
  • #6 14 Sie 2013 14:15
    Zelu00
    Poziom 15  

    Okazuję się, że brak komunikacji w Normal Mode spowodowany jest przez brak podpiętego transceiver'a. Po podpięciu i zaterminowaniu mam "coś" na lini Tx, ale na CANie widze error frames.

    Czy ktoś w takim razie mógłby się podzielić swoim SW z obsługą CAN'a? Najlepiej pod eclipsa, z użyciem biblioteki std peripheral i pod STM32F103 :o.
    Ale wszelkie inne sprawdzone źródła również przyjmę.

    0
  • Pomocny post
    #7 20 Sie 2013 22:22
    Darekg
    Poziom 17  

    Zelu00 napisał:
    Okazuję się, że brak komunikacji w Normal Mode spowodowany jest przez brak podpiętego transceiver'a. Po podpięciu i zaterminowaniu mam "coś" na lini Tx, ale na CANie widze error frames.

    Czy ktoś w takim razie mógłby się podzielić swoim SW z obsługą CAN'a? Najlepiej pod eclipsa, z użyciem biblioteki std peripheral i pod STM32F103 :o.
    Ale wszelkie inne sprawdzone źródła również przyjmę.


    Ja używałem CAN-a i nie miałem z nim problemów.
    Inicjowanie:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wysyłanie:
    Kod: c
    Zaloguj się, aby zobaczyć kod



    Odbieranie:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    U nie to działa bezproblemowo.

    0
  • #8 21 Sie 2013 07:57
    Zelu00
    Poziom 15  

    CAN działa. Okazało się, że zegary były chyba źle zainicjalizowane.
    Skopiowałem funkcję pll_start() z przykładów Freddiego i wszystko ruszyło.

    0