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

Atmega + CAN - poprawość schematu

11 Mar 2012 11:49 10808 17
  • Poziom 18  
    Witam
    Czy ktoś obeznany w temacie CAN mógłby spojrzeć na poniższy schemat i ocenić jego poprawność ?

    Atmega + CAN - poprawość schematu
  • Poziom 18  
    Czy w Twoim projekcie musi być ATmega8? Bo jeśli nie musi, mógłbyś użyć np. AT90CAN32/64/128, zależnie od potrzebnego rozmiaru pamięci.
    Gdy robiłem projekty z CANem używałem AT90CAN128 + PCA82C250 (driver CANa). Nie trzeba mieć wtedy pośredniczącego układu MCP2515.
    MCP2551 nie znam, ale podejrzewam, że to coś bardzo podobnego do PCA82C250.

    Aha, mogłoby wyjść nawet taniej niż teraz, bo co prawda AT90CANxx są droższe niż ATmega8, ale za to pozbywasz się tego MCP2551. No i powierzchniowo też by pewnie było lepiej.

    AT90CAN128 to prawie to samo co ATmega128, tyle, że ma dodany CAN i parę innych szczególików. ATMEL udostępnia też dla niego prostą bibliotekę do obsługi CANa i na początek można zupełnie na niej bazować - są tam wysokopoziomowe funkcje do konfiguracji tzw. Message Objects (zestawy rejestrów konfigurujące dany typ telegramu do wysyłania/odbierania) oraz funkcje do wysyłania/odczytywania. Naprawdę szybko można uruchomić działający kod.

    Nie wiem, jak to jest zrobione w MCP2551, ale w AT90CAN128 możesz nałożyć w kontrolerze CANa nałożyć maskę odbioru (żeby przyjmować jedynie ramki o konkretnych ID lub z konkretnego zakresu ID) i nie obciążać samego CPU obsługiwaniem tych ramek, które na danej magistrali nie są przeznaczone dla Twojego urządzenia.
  • Użytkownik usunął konto  
  • Poziom 11  
    STM32F103 rowniez ma CANa, mniejszy stm z 32 kb flasha to koszt 13 zl jak dobrze pamietam.
  • Poziom 18  
    heh, zamiast odpowiedzieć koledze maximus22_kr wprost na jego pytanie, podaliśmy mu przykłady 3 innych uC. Ciekawe co on na to.
  • Poziom 18  
    Witam
    MCP2551 to układ bardzo podobnego do PCA82C250 - akurat sprzedający na allegro miał oprócz Atmega te układy, więc zakupiłem

    wiem, że jest Atmega a CAN, jednak na razie montaż w obudowie TQFP trochę mnie przeraża - dlatego wziąłem Atmega8 z DIP ( w sumie w razie czego wejdzie Atmega328p )

    co do układów Microchip to nie wiedziałem, że mają modele z wbudowanym CAN - ale na razie zacząłem do Bascom, kierując się powoli w stronę C++. W układach PIC dominuje C++, a na razie nie mój poziom C++ jest mocno podstawowy.
  • Moderator Mikrokontrolery Projektowanie
    maximus22_kr napisał:
    W układach PIC dominuje C++, a na razie nie mój poziom C++ jest mocno podstawowy.

    Coś Ci się pomyliło: Kompilatory Microchipa

    Dodaj kondensatory filtrujące zasilanie uC.
    Pokaż część zasilającą.
    Dajesz do sprawdzenia schemat bez wartości elementów biernych - mamy wróżyć?
  • Poziom 18  
    Poprawiłem nieco schemat
    Atmega + CAN - poprawość schematu

    Wartości elementów
    R1, R7, R8, R13 - 10 k ( podciągniecie do VCC )
    R2, R3, R4 - 100k ( podciągnięcie do VCC - według dokumentacji )
    R5 - 47K
    R6 - 120 ( terminator )
    R9, R10, R11, R12 - 330
    Q1 - 20 MHz
    Q2 - 16 MHz
    C1, C2, C5 , C6 - 22pF
    C3, C4, C7, C9 , C10 - 10 nF
    C8 - 220 uF
  • Moderator Mikrokontrolery Projektowanie
    Nanieś wartości na schemat i dopiero wklej do sprawdzenia - oszczędzaj nasz czas i swój przy okazji.
  • Poziom 18  
    maximus22_kr napisał:
    wiem, że jest Atmega a CAN, jednak na razie montaż w obudowie TQFP trochę mnie przeraża - dlatego wziąłem Atmega8 z DIP ( w sumie w razie czego wejdzie Atmega328p )


    Abstrahując od tego czy wybierzesz AVR czy PICa - montażu TQFP w domowych warunkach nie trzeba się bać. Problemem może być tylko wylutowanie (bez hot-air nie da rady), więc trzeba jedynie zamontować dobrze a potem niczego nie spalić ;).
    W każdym razie AT90CAN128 jest w obudowie TQFP-64 z rastrem 0,8mm.
    Przy montażu pozycjonujesz sobie kostkę pincetą i lutujesz 2 piny po przekątnej. Potem wystarczy przejechać po obwodzie topnikiem a potem lutownicą z grotem typu mini-fala. Od "bidy" wystarczy zwykły grot.
    Całą kostkę lutujesz w parę sekund i nic się nie powinno zewrzeć. Podstawą jest właśnie topnik. Potem tylko kontrolujesz montaż pod lupą albo mikroskopem, jeśli masz dostęp. Albo sprawdzasz omomierzem. I tyle.
    Jak się przełamiesz, pewnie nie wrócisz już do THD - wielkie toto, przestarzałe i na dodatek pogarsza plane'y masy.
  • Poziom 38  
    Niekoniecznie przestarzałe, w układach gdzie masz duże prądy nie da się uniknąć przewlekania :)
  • Poziom 18  
    gaskoin napisał:
    Niekoniecznie przestarzałe, w układach gdzie masz duże prądy nie da się uniknąć przewlekania :)

    Oczywiście, ale mi chodziło o niskoprądową elektronikę. Pewnie w 95% można wstawić SMD.
    No, tyle chciałem rzecz w kwestii poprawności schematu Atmega + CAN :)
  • Poziom 18  
    Schemat z naniesionymi wartościami
    Atmega + CAN - poprawość schematu

    Kolego Ostry23
    część elementów jest w wersji SMD, kondensatory, układ MCP2515.
    Układ MCP2551 oraz procesor jest w DIP - procesor wolałem w DIP, bo nie chciałem się przywiązywać do jednego - można przecież użyć Atmega168 lub Atmega328
  • Poziom 18  
    maximus22_kr napisał:
    procesor wolałem w DIP, bo nie chciałem się przywiązywać do jednego - można przecież użyć Atmega168 lub Atmega328


    Ok, jeśli tak wolisz i zamierzasz ew. wymieniać procesor, to nie ma się czego czepiać.

    A wracając do schematu:
    1. 47k pomiędzy RS a GND jest po to, żeby ograniczyć slew rate linii CANa do ok. 10 V/µs?

    2. Dziwi mnie, że w nocie katalogowej MCP2551 na schematach jest terminacja w postaci rezystancji 60 Ω. Czemu nie 120?

    3. Kondensator filtrujący zasilanie MCP2515 mógłbyś narysować przy pinie VCC (18) a nie od strony masy (9) do strzałki symbolizującej VCC. Elektrycznie nic nie zmienia, ale nie trzeba się będzie zastanawiać, czy on tam w ogóle jest.

    4. Rozumiem, że kondensatory filtrujące zasilania to co najmniej pojedyncze 100n? Nie zaszkodzi dać równolegle do nich ceramików 1uF, zwłaszcza przy uC.

    5. Rezystory R2, R3 i R4 nie są potrzebne - piny TXnRTS mają wewnętrzne pull-up'y.

    6. Masz wolne kilka GPIO w Atmedze. Podepnij sobie do nich:
    CLKOUT - może służyć jako sygnał "Start-of-frame" - wg noty
    RX0BF, RX1BF - również mogą być użyte do powiadamiania

    7. Po co jest pull-up na pinie INT MCP2515?

    8. LED1 i LED2 - podpięte w złą stronę.

    9. Pull-up na RESET też nie jest potrzebny - ATmega8 ma wewnętrzny pull-up.

    10. Ograniczyłbym prąd LED3 i LED4, żeby mieć pewność, że w stanie niskim linie TXCAN i RXCAN będą miały odpowiednio niski potencjał.

    11. Dobrze, że jest pull-up na CS.

    12. Nie wiem jakie LCD i z jaką "pinologią" podłączasz, ale czy przypadkiem nie potrzebujesz na któryś pin złącza do LCD doprowadzić napięcia z dzielnika na potencjometrze? Chodzi mi o regulację kontrastu. Masz ją przy samym LCD, czy chcesz ją realizować na płytce?

    Poza tym wszystko jest OK, przy czym poprawność podłączeń do złącz musisz sobie sam sprawdzić.
  • Poziom 19  
    Twój shemat maximus22_kr będzie niezły jak dostosujesz się do zmian jakie ci proponuje kolega Ostry23.

    Zabawiam się też CAN , opracowałem schemat węzła CAN.
    Jest to schemat sprawdzony .wielokrotnie modyfikowany.
    Płytkę udało się wykonać na laminacie jednostronnym 43mm x35mm
    Wyprowadziłem większość portów ATMEGI.
    Zastosowałem DIP SWITCH05 bardzo przydatny do zabawy z CAN
    Atmega rezonator wew 4Mhz
    Mcp 2515 rezonator zew 16Mhz
  • Poziom 2  
    Witam
    A co myślicie o AT90CAN32 w takich rozwiązaniach
  • Poziom 19  
    Jest wiele procesorów z CAN .
    Obecnie do zastosowań profesjonalnych nikt nie stosuje MCP2515 i ATMEGI
    Natomiast do celów poznawczych jak najbardziej uważam że warto zacząć od takiego schematu ,jest to niezły trening zanim zaczniemy używać gotowe procedury do obsługi CAN np. w STM32F103RB.

    Tu jest odrobina jak ożywić MCP2515
    https://www.elektroda.pl/rtvforum/topic2168306.html
  • Poziom 9  
    maximus22_kr właśnie zabrałem się za stworzenie takiego układu wyświetlającego docelowo prędkość i obroty silnika na wyświetlaczu ze strownikiem 47880, czy mógłbyś mi podać jakieś informacje jak to rozwiązać od strony programowej jak zaprogramować komunikacje między tymi uC (MCP2551 i MCP 2515). Jakąś ksiażke albo strone albo jakieś własne teorie. Byłbym wdzięczny