logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][C] Implementacja magistrali LIN oraz CAN

yburg 19 Lip 2011 17:03 5718 11
  • #1 9735342
    yburg
    Poziom 9  
    Witam. Na początku sorki za długi wstęp, ale mam nadzieje że nakreśli on m/w sytuację i pozwoli dokładnie zrozumieć o co mnie się w ogóle rozchodzi :P Otóż w ramach edukacyjnych chciałbym zmontować w samochodzie jakiś prosty, własny moduł śmigający na magistrali LIN (nie musi być skomplikowany - na początek będę zadowolony jak z jakiejś centrali uda mi się zwyczajnie pomrygać diodami w poszczególnych modułach wykonawczych:)) oraz w przyszłości być może podpiąć się pod magistralę CAN w pojeździe;) Oczywiście przejżałem już forum w poszukiwaniu informacji o tym zagadnieniu, ale niestety niewiele udało mi się znaleść, a absolutna większość odnalezionych postów jest strasznie stara (tymczasem podejżewam, że przez te kilka lat mogło się wiele zmienić, szczególnie w aspekcie sprzętowym). W internecie jest też trochę materiałów (oczywiście też stosunkowo starych) i jakkolwiek cały czas je wertuję, prosiłbym o wszelkie wskazówki gdzie i czego szukać, żeby dobrze temat poznać...

    Tymczasem przechodzę do sedna i aspektu w którym pilnie potrzebuję 'wsparcia' :D Otóż czy mógłby mi ktoś doradzić, w jaki sposób podłączyć moduły w różnych częściach pojazdu z centralą - docelowo każdy moduł będzie posiadał uC sterujący pracą w owym module i za jego pośrednictwem miałby komunikować się z głównym uC sprawującym pieczę nad całością - pytam ponieważ mam okazję niedługo położyć dowolną instalację w aucie zgodnie ze wszystkimi 'normami' - tj. przy seryjnych wiązkach itp. przez co nie mam zbyt wiele czasu na opracowanie struktury (a sam na placu boju pewnie bym go troche potrzebował :/). Chciałbym natomiast położyć tak te kable, bo mój 'obiekt badawczy' pracowałby wtedy w takich warunkach, w jakich normalnie funkcjonują takie układy (mam na myśli wszystkie zakłócenia od innych przewodów itp.), co niewątpliwie byłoby cenne przy nauce ;) Z góry dziękuję za wszelką pomoc i porady :)

    Proszę korzystać z:
    Link
    And!
  • #2 9742260
    yburg
    Poziom 9  
    Witam ponownie. To może zapytam nieco konkretniej, bo widze że na razie brak osób skorych do pomocy... :( Sorki w tym miejscu, jeśli moja prośba zabrzmiała zbyt roszczeniowo, ale po prostu zależy mi w tym jednym zagadnieniu na czasie, a na elektronice znam się tyle o ile... :( Wracając jednak do sprawy: z tego co się zorientowałem do połączenia modułów wystarczy pojedyncza żyła pełniąca rolę magistrali, pytanie tylko czy tego typu rozgałęzienia jak przedstawiłem schematycznie poniżej będą dobrze funkcjonowały...? Przeczytałem gdzieś jaki powinien być użyty przewód do takiej magistrali, ale teraz nie pamiętam już czy było to 0,25mm^2 czy 0,35mm^2 - mógłby się ktoś do tego ustosunkować?

    Ponadto zastanawiam się nad samymi transceiver'ami - otóż z założenia LIN to łatwo dostępna i jeszcze tańsza od CAN'a sieć - tymczasem na polskim rynku niemal nie sposób doszukać się dedykowanych pod LIN scalaków (albo to ja totalnie nie umiem szukać) ;O Nie wiem też tym samym, czy np. zwykłe transceiver'y magistrali np. z rodziny 75176 będą się nadawały do tego celu? Chciałbym uniknąć konieczności implementowania szczegółów protokołu w samym kontrolerze, dlatego przydałoby się jednak coś na miarę ATA6661... Może zna ktoś rynek nieco lepiej i jest w stanie doradzić gdzie i czego szukać? :/ Jeszcze raz z góry dzięki za wszelką pomoc :)
  • #3 9742269
    Nawigator
    Poziom 33  
    Na początek do testów wystarczą Ci jako drivery linii tranzystory z otwartym kolektorem. Wspólna linia musi mieć podciąganie rezystorem do Vcc.
    Odbiór z linii przez diodę bezpośrednio na procesor.
    Poszukaj noty aplikacyjne u Atmela, Microchipa, jakieś Wiki może.
    Są procesory z wbudowanym LIN-em.
    Drut może być cieńki.
    Co do CAN-a to wyższa szkoła jazdy i nie ma co go z LIN-em porównywać.

    N.
  • #4 9742408
    yburg
    Poziom 9  
    Dzięki za odpowiedź - faktycznie do testów wystarczy jakiś prosty układ, ale wspominałem iż mam okazję położyć samą instalacje w aucie (takim 'testowym' :P) i tam chciałbym już to zrobić przyszłościowo jak trzeba :) A układ z tranzystorem na pewno zmontuje u siebie na płytce - tylko mam pytanko jakie elementy zastosować? Schemat z tego co też gdzieś mi się przewinęło w necie mógłby być m/w taki jak zamieszczam niżej, niestety nie wiem jaką najlepiej dobrać rezystancję pull-up'a (napięcie VCC 5V ze stabilizatora 7805) - czy 5kOhm będzie ok? Tranzystor myślę wystarczy zwykły BC547? A jeśli chodzi o podłączenie uC do linii to miałeś na myśli to co jest na schemacie (wiadomo że nawet slave'y muszą też coś na linie nadawać)?

    [Atmega8][C] Implementacja magistrali LIN oraz CAN

    Nawigator napisał:
    Poszukaj noty aplikacyjne u Atmela, Microchipa, jakieś Wiki może.
    Są procesory z wbudowanym LIN-em.
    Co do procesorów z wbudowanym LINem, to wiem że są, tylko miałem nadzieję że da się to szybko pożenić ze zwykłą Atmegą8 czy podobną przez transceiver, bo te mam u siebie razem z płytkami uruchomieniowymi :)

    Nawigator napisał:
    Co do CAN-a to wyższa szkoła jazdy i nie ma co go z LIN-em porównywać.
    Heh no spodziewam się, dlatego napisałem iż "być może" i w "przyszłości" się tym zajme :P
  • #5 9747674
    kamyczek
    Poziom 38  
    Atmega 16M1 ,32M1 i 64M1 trzy układy AVR z can i lin na pokładzie wszystko co potrzeba w notach katalogowych ...
  • #6 9756751
    yburg
    Poziom 9  
    No pewnie - albo ATA6602/ATA6603 czy kto wie co tam jeszcze ma LIN oraz CAN "on board"... ;] To jeszcze tylko powiedz gdzie oraz ZA ILE to kupie? Wtedy Twój post nabierze być może jakiegoś sensu :) Bo ja tego na polskim rynku się nie doszukałem (zresztą na świecie też będzie pewnie problem skoro nawet na eBay'u tego nie ma ;O), tym samym nie wiem jak ma to pomóc rozwiązać mój problem...? :(
  • #7 9756975
    gayetan
    Poziom 18  
    Sprawdź tutaj ATMega. Jak nie mają to może sprowadzą?
  • #8 9757313
    kwiatek6324
    Poziom 11  
    Czy musisz miec LIN ?
    Bo ukladu z CAN typu AT90CAN32/64/128 sa bez problemu do dostania w Polsce.

    Ostatnio kupowalem AT90CAN128 za jakies 35zl/szt.
    Masz kontroler CAN wbudowany i dziala to naprawde rewelacyjnie.

    Pozdr
    AK
  • #9 9760106
    yburg
    Poziom 9  
    gayetan napisał:
    Sprawdź tutaj ATMega. Jak nie mają to może sprowadzą?
    Patrzyłem, ale nie mają nic nawet w ofercie, więc nie wiadomo ile trzebabyło by czekać jeśli w ogóle mogą coś sprowadzić...

    @kwiatek6324
    LIN musi być o tyle, że to właśnie jego chce sobie przyswoić :) A z drugiej strony nie ma raczej po co zaprzęgać CAN'a do prostych 'podsystemów' (czyli takich, jakie chce zmontować :)) - z tego zresztą względu powstał LIN :)

    Po kilku dniach poszukiwań znalazłem jednak pierwszą oferte w Polsce na ATMEGA32M1-AU w cenie 22zł/szt (nawet nie ma tragedii) - niestety w obudowie TQFP32, co wiązałoby się z mojej strony z koniecznością zmontowania chociażby jakiejś podstawki do programatora (cena za gotowe rozwiązania rzędu >300PLN to śmiech na sali). Niby nic, ale z SMD jeszcze nie miałem nigdy do czynienia, a ponadto wszystkie podstawki SMD na 32 piny które udało mi się znaleść są prostokątne (rozkład pinów 7x9) a mi potrzebna byłaby kwadratowa (piny 8x8) - biednemu zawsze wiatr w oczy... :/ Będę z tym jakoś kombinował bo układy na pewno zamówię (możliwość poćwiczenia na nich zarówno CAN'a jak i LIN'a to ciekawa opcja :))... A z połączeniem w oparciu o tranzystor dalej nikt nie jest w stanie nic doradzić? :(
  • #10 9760240
    tmf
    VIP Zasłużony dla elektroda
    Ale przecież LIN to prosta magistrala, którą można realizować całkowicie programowo, lub semisprzętowo przy pomocy USART/USI. Nie potrzebujesz żadnego procesora z w pełni sprzętowym LIN, tylko praktycznie dowolną ATMegę/ATTiny. Ba, nawet masz gotowce Atmela:
    AVR322: LIN v1.3 Protocol Implementation on Atmel AVR Microcontrollers. Ściągasz do tej noty soft i już.
  • #12 9763350
    yburg
    Poziom 9  
    tmf napisał:
    Ale przecież LIN to prosta magistrala, którą można realizować całkowicie programowo, lub semisprzętowo przy pomocy USART/USI.
    Zgadza się, dla kogoś kto w tym już troche siedzi jest to z pewnością bardzo proste :) Jak dla mnie to jest w tym jeszcze troche magii, więc jak pisałem już wcześniej wolałbym uniknąć implementacji protokołu w kontrolerze (programowo) :) Jakkolwiek z biegiem czasu wszystko przede mną :D

    tmf napisał:
    Ba, nawet masz gotowce Atmela:
    AVR322: LIN v1.3 Protocol Implementation on Atmel AVR Microcontrollers. Ściągasz do tej noty soft i już.
    Zgadza się, widziałem tą note, niemniej (pomijając że jest to LIN 1.3 a chciałoby się mieć najnowszy :P) przyznasz chyba, że nawet gdybym ściągnął takiego gotowca, to trzeba to jeszcze jakoś podłączyć?? I tu po raz 10 proszę o pomoc w doborze elementów... :( Dotarłem także do noty AVR308, gdzie są schematy przykładowych podłączeń slave'ów do magistrali, przy czym znów bez konkretnych wartości dotyczących elementów (typu pull-up czy ów tranzystor)...

    ksz napisał:
    Zdaje się, że musisz poszukać podstawek/płytek uniwersalnych pod TQFP?
    Dzięki za pomysł - jest to już jakieś realne rozwiązanie, szkoda tylko że wymaga każdokrotnego wlutowywania/wylutowywania układu na płytkę... :/ Będę jeszcze szukał tych podstawek 8x8, a jak nic nie znajde to pozostanie mi tylko dokupić cyny i topnika :P
REKLAMA