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

atmega32 - czy sprawdzi i pokaże zawartość ramek idących po kablu?

subratri 01 Mar 2013 13:47 4773 37
  • #1 12002366
    subratri
    Poziom 13  
    Witam.
    Czy da się tak zaprogramować ATMEGA32 aby udawał prosty oscyloskop?
    Chodzi mi o to, żeby sprawdzić nim co idzie po kablu.
    Chciałbym zczytać ramki jakie idą do sterownika tak, żebym mógł później tę konkretną ramknę samemu wpuścić w ten kabel.
    Oscyloskopy są koszmarnie drogie.
    Mam płytkę uruchomieniową z tym prockiem
    kwarc 16Mhz. Wydawało by się, że można by się wpiąć w kabel i przeczytać co po nim idzie.
    Tylko jak to zapamiętać, wyświetlić, przefiltrować tak, żeby ten pomiar miał jakąś wartość.

    Czy da się to może wysłać do kompa, żeby ten zapamiętał i wyświetlił?

    Jakies podpowiedzi jak to ugryźć?
  • #2 12002373
    tmf
    VIP Zasłużony dla elektroda
    A jaki to interfejs? Nie prościej spróbować chociażby jakiegoś triala programu szpiegującego interfejs komputera?
    Oczywiście na AVR też to zrobisz.
  • #3 12002413
    subratri
    Poziom 13  
    sorka za niedomówienie.
    Kabel jest w samochodzie i raczej nie jest to CAN a jesli jest to jedna linia.
  • Pomocny post
    #4 12002454
    mickpr
    Poziom 39  
    subratri napisał:
    Kabel jest w samochodzie i raczej nie jest to CAN a jesli jest to jedna linia.
    K-Line?

    Co do Atmegi - 16MHz - czyli próbkowanie mógłbyś zrobić mniej więcej (przy dobrze napisanym programie) w granicach do ok 4MHz. Wystarczy?
    Przykład: https://www.elektroda.pl/rtvforum/topic1253788.html
  • #5 12002508
    subratri
    Poziom 13  
    super!!
    Spróbuję adoptować to do m32.
    Niestety moja wiedza jest ograniczona ;) więc może nie być takie proste.
    A czy wystarczy? No myślę, że tak. Z tego co wiem jest tam 100kbit/sek.
    analizatory CAN działają na rezonatorze 4MHz.

    Dodano po 23 [minuty]:

    no i pierwszy problem ;) Jak do tąd używałem BASCOMa tylko. Ten mi nie czyta hexa.
    Muszę zainstalować C,żeby zobaczyć co tam jest i ewentualnie dopasować do M32?
  • #7 12002662
    piotrva
    VIP Zasłużony dla elektroda
    Z pliku hex nic się nie dowiesz, chyba, ze jesteś ekspertem assmeblera - plik hex zawiera tylko instrukcje kodu maszynowego.
    Zobacz sobie to: http://www.ikalogic.com/scanalogic-the-beginning/
  • #8 12002669
    subratri
    Poziom 13  
    no to gorzej ;)
    jak szybki maksymalnie sygnał można przesłać przez USB? Czy pójdzie mi 16MHz? Bo tak naprawdę to potrzebuję przetworzyć tyko jedną linię więc chyba mogę taktować na maksa ;)
  • #9 12002704
    piotrva
    VIP Zasłużony dla elektroda
    A jak chcesz po tym USB cokolwiek posyłać? Bo na AVR programowo na pewno takich prędkości nie osiągniesz. 16MHz to taktowanie procesora, czyli wykonuje on 16 milionów operacji "assemblera" na sekundę - na pewno z taką częstotliwością nie zdołasz próbkować - jak napisano wcześniej - na AVR maksymalnie popróbkujesz sobie 4MHz przy dobrych układach.
    Ogólnie samemu przy takim stanie wiedzy raczej analizatora nie napiszesz.
  • #10 12002708
    mickpr
    Poziom 39  
    subratri napisał:
    jak szybki maksymalnie sygnał można przesłać przez USB? Czy pójdzie mi 16MHz? Bo tak naprawdę to potrzebuję przetworzyć tyko jedną linię więc chyba mogę taktować na maksa :wink:
    Piny (D+ czy D-) portu USB nie są zwykłymi pinami I/O. Od tego zacznijmy.
    Chyba nie wiesz o czym piszesz.
    Zrób ten analizator na LPT, lub kup Atmegę 16 i o ile uda ci się zaprogramować ją, ustawić fusebity i wgrać wsad (nie Bascom'em)... to możesz pokusić się o ten pierwszy projekt.
    Możesz też kupić sobie porządny analizator - (porządny do twoich celów to taki za 100-200 zł).
  • #11 12002736
    subratri
    Poziom 13  
    To się nauczę. ;) W końcu chodzi o zabawę w tym wszystkim. :) Trzeba ruszać szarymi myślącymi, żeby nie poszły na emeryturę.

    No ja to widzę chyba tak.
    Ponieważ płytka uruchomieniowa taka: http://zestawyuruchomieniowe.pl/pl/zestawy/10-evb-43v4-atmega32-delux.html

    pozwala mi na wysyłanie przez USB. No przynajmniej do terminalu emulatora "wyników",
    to może po prostu zrobić z M32 przekaźnik ;) który będzie słał sygnał z wejścia na USB.

    Czy to nie jest za duży skrót?

    Dodano po 3 [minuty]:

    Niestety w moim przypadku zakup czegokolwiek jest wyzwaniem na czas przynajmniej tygodnia plus duże koszta przesyłki... Fajnie byłoby więc, gdybym mógł wykorzystać ten mikrokomputer, który już mam pod ręką. Sprawa z pomiarem jest raczej jednorazowa więc zakup analizatora... Hmm plus czekanie na niego. Wolałbym nie.
  • #12 12002784
    mickpr
    Poziom 39  
    subratri napisał:
    niestety w moim przypadku zakup czegokolwiek jest wyzwaniem na czas przynajmniej tygodnia plus duże koszta przesyłki plus
    Ja nie rozumiem takiego podejścia. Chcesz się nauczyć a szkoda ci 10-20 zł na przesyłkę.
    Oszczędzanie na nauce mści się potem na zarobkach.
    subratri napisał:
    To może poprostu zrobić z M32 przekaźnik :wink: który będzie słał sygnał z wejścia na USB.
    Atmega może być "przekaźnikiem" z innego analizatora na USB - jak właśnie napisałeś. Problemem będzie prędkość i ilość zebranych próbek sygnału. Nie wyrobisz się z tym ani czasowo, ani nie zmieścisz wielu próbek w pamięci RAM Atmega32.

    Pamiętaj także, że podpinanie czegokolwiek do samochodu - może się dla sterownika skończyć źle. Na początek proponuje przetestować na czymś innym.
    W szczególności pomyśl o dopasowaniu poziomów sygnałów.
  • #13 12002824
    subratri
    Poziom 13  
    mickpr napisał:
    Ja nie rozumiem takiego podejścia. Chcesz się nauczyć a szkoda ci 10-20 zł na przesyłkę.

    chodzi raczej o 56 zł ale to nie boli jak strata tygodnia na czekanie. strata czasu mści sie bardziej ;)
    mickpr napisał:
    Problemem będzie prędkość i ilość zebranych próbek sygnału

    no właśnie szukam jak duży jes tam bufor... czytałem o tym niedawno ale się zapomniało.
    Co do podpinania - samochód lubi 12V, ATm lubi 5v, więc i tak ... no własnie - starczy sam rezystor?

    No i jeszcze muszę uruchomić ten nieuruchamialny scanlogic na win 7
  • #14 12002855
    piotrva
    VIP Zasłużony dla elektroda
    Żeby scanlogic się uruchomił to musisz ustawić język formatowania wartości liczbowych na USA - inaczej nie działa.
  • #15 12002869
    mickpr
    Poziom 39  
    subratri napisał:
    Co do podpinania - samochód lubi 12V, ATm lubi 5v, więc i tak ... no własnie - starczy sam rezystor?
    Nie chcę wyjść na złośliwca (bo nie jestem takim), ale zacznij od tego np. http://en.wikipedia.org/wiki/On-board_diagnostics
    Potem przetrenuj na czymś normalnym (może RS232 na początek).
    Żebyś nie przeklinał moich słów płacąc potem rachunek za nowy sterownik w aucie.
  • #16 12002910
    subratri
    Poziom 13  
    ale nie... Ja nie chcę się wpinać w OBD.
    Przed silnikiem szyb mam kabel który daje jakiś sygnał pozwalający na pracę tego silnika. Miernik nie widzi tam nic, stąd wnioskuję ze idzie jakiś bardzo szybki sygnał cyfrowy.
    To co chcę zrobić, to go zobaczyć tak, zeby móc go nasladować. Później raczej odetnę ten kabel fizycznie przekaźnikiem zanim podam na niego sygnał. Taki sam jak zczytany.
    Jest też nadzieja, że uda się wyizolować tę konkretną ramkę która jest mi potrzebna, jesli tak, to będę się zastanawiał nad sposobami podania jej globalnie.

    Nawet jesli nie zobaczę jaki woltarz ma sygnał, to go sobie dostosuje podnosząc małymi kroczkami.

    Problem jest w tym, że to niby nie jest linia CAN, a napewno jest to kabel sygnałowy, na którym nie daje sie miernikiem nic zmierzyć.

    Dodano po 29 [minuty]:

    kurcze gdzie mam dograć COMDLg32.ocx ?Tego brakuje żeby ruszyć program.

    Dodano po 56 [minuty]:

    https://www.elektroda.pl/rtvforum/topic2154882.html
    tutaj jest soft co idzie na polskich ustawieniach
  • #17 12006336
    mpietras
    Poziom 17  
    subratri napisał:

    Problem jest w tym, że to niby nie jest linia CAN, a napewno jest to kabel sygnałowy, na którym nie daje sie miernikiem nic zmierzyć.


    Podejrzewam, że jest to LIN
  • #18 12006666
    subratri
    Poziom 13  
    a czym jest taka linia? Co robi? co po niej idzie?
  • #19 12006726
    kamyczek
    Poziom 38  
    Silniczki w drzwiach pracują albo po can albo po lin .Do podsłuchania tego typu sygnałów potrzebny jest Analizator a nie oscyloskop. Da się taką transmisję zrealizować za pomocą układów AVR lecz wymaga to sporej wiedzy obawiam się że porywa się kolega z motyką na słońce .
  • #21 12007060
    subratri
    Poziom 13  
    Zawsze tak się porywam ;) I z regóły kończy się to sukcesem.

    Kiedyś dużo wiedziałem o transmisji danych. Ta wiedza uległa zatarciu, ale odświerzanie to nie to samo co nauka od zera. Jakieś proste układy też kiedyś pisałem. Później jednak trzeba było się zdecydować na kierunek który będzie przynosił dochód. Elektronika odeszła więc na b daleki plan.
    Teraz jednak jest czas i miejsce na nowe hobby, a że spędzam 3/4 życia w samochodzie to chciałbym, żeby ten dopasował się do mnie a nie ja do niego ;)

    Oczywiście jest alternatywne rozwiązanie - jesli ten sygnał się nie odnajdzie, ale alternatywą jest skrót większy od kopiowania tego co przez sekundę przeczytam na tym kablu :D

    Sory za to wypracowanie. Chciałem tylko powiedzieć, że to, że teraz czegoś nie wiem nie znaczy, że będę miał problem z nauczeniem się tego. Od zawsze jednak mam tak, że mogę się uczyć wszystkiego pod warunkiem, że mogę tę wiedzę odrazu wykorzystać. Tak więc rzucam się na głęboką wodę, bo wiem, że za miesiąc zobaczę rzeczywisty i fajny efekt tego czego się teraz uczę.


    A wysłanie sygnału cyfrowego za pomocą AVR to przecież nie problem.

    A co do tematu - czyli analizator CAN pozwoli mi podsłuchać ten sygnał ? Jesli tak, to sobie poprostu taki zakupię. Zysk z tego będzie taki, że roześlę globalnie i nie będzie problemu z niepotrzebnymi przekaźnikami i demolką w instalacji.

    Dodano po 1 [minuty]:

    mpiertas - bez "bus" mi nie znalazł. dzięki.

    Dodano po 6 [minuty]:

    a za tąże wikipedią -
    " Aby magistralę wybudzić, master albo slave musi wysłać ramkę WAKE-UP ('0x80')" i dalej opis ramek...

    no i tyle :D
    mpietras dzięki wielkie !! :D
    A może ktoś z Was wie jaką transmisję ma Renault?
    jeśli 9600 to napewno znajdę gotowca i będę słał ;)
  • Pomocny post
    #22 12007817
    mpietras
    Poziom 17  
    Do podsłuchania wystarczy mcp2003 i ft232. Ramki zaczynają się od 0x55, dalej jest PID, Dane i Suma kontrolna. Przyporządkowanie PID'ów i rozszyfrowanie znaczenia bitów danych to już inżynieria wsteczna. Co w ogóle chciałbyś zrobić?
  • #23 12007895
    subratri
    Poziom 13  
    wysterować szyby z pilota przy wyłączonym sterowniku.
    Na tej płytce co odałem wyżej mam wyprowadzone TS, SR, CD, A1 z 232 na goldpiny, oraz mam 4 małe i dwa duże wyjścia z 2003 i wejścia na goldpinach.
    Niestety scanlogic nie chce się łączyć z M32 - jak więc chciałbyś to podsłuchać za pomocą tych dwóch klocków?

    Jak pisałem wcześniej - mieszkam w pogańskim kraju gdzie nie praktykuje się kultu klienta, mam więc duzy problem z dostępem do części.

    Dodano po 2 [minuty]:

    http://www.youtube.com/watch?feature=player_embedded&v=C5S2UP42V4c
    ogólnie taki sofcik już poszedł, zachowana tylko zasada działania - sterowanie dachem i szybami.
    Narazie z błędami logicznymi ale to dlatego, że mnie te szyby trzymają.
  • #24 12009805
    subratri
    Poziom 13  
    ehh, teraz pojąłem :D To nie to samo 2003 :D teraz pojąłem. Dobra to zamawiam klocki. To mcp2003 kosztuje tyle co nic, natomiast jeśli chodzi o 2003 to znalazłem gotową płytkę z wyprowadzeniami.
    Na forum znalazłem jakieś programy i opisy do tego więc powinienem ogarnąć.
    Dzięki jeszcze raz.
  • #25 12013273
    subratri
    Poziom 13  
    taki prosty sofcik już coś robi.
    Teraz tylko pytanie jak sprawdzić z jaką częstotliwością on taktuje. Niestety ciężko uwierzyć w to,że basic wykorzystuje najprostrze polecenia.
    no i jeszcze jedno - czy wejście lepiej ustalić jako 1 lub zero czy zostawić tak jak jest - pływające?
    Kolejnym problemem jest to, że zapisuje mi wartości jedna pod drugą, a to do analizy w żaden sposób się nie nadaje...


    Zmienna A, jest tylko teraz dla testów, żeby dało się ekran emulatora wyczyścić.
    atmega32 - czy sprawdzi i pokaże zawartość ramek idących po kablu?
  • #26 12013369
    mickpr
    Poziom 39  
    Twoja pętla się skończy, a potem co? Atmega pójdzie "w buraki"?
    Nie wiem co Bascom (optymalizator) zrobi z twoim kodem, ale może okazać się że nie działa on w ogóle.

    Przede wszystkim - program umieść w niekończącej się pętli to raz.
    A dwa - daj opóźnienia między tymi instrukcjami.

    Co do wyboru środowiska - to Bascom jest moim zdaniem najgorszym wyjściem, cokolwiek nie mówić o jego "prostocie".
  • #27 12013449
    subratri
    Poziom 13  
    Taki wybrałem, bo do takiego mam instrukcję... Myślę, że przynajmniej na razie powinien mi wystarczyć. Jak napisałem - pętla się kończy tylko na potrzeby testowe, mogłem tu wkleić bez liczenia zmiennej.
    No ja też nie wiem, czy "liczy równomiernie", no i co ile. Dlatego zastanawiam się, jak to sprawdzić, nie mając pod ręką żadnego generatora...

    Co z tym wejściem pływającym? Wiem, że będę miał śmieci na "luźnym" kablu, ale czy to nie będzie mi przeszkadzać podczas odczytu?

    Dodano po 43 [minuty]:

    Zmierzyłem sobie na kablu internetowym takie coś:
    "001111001111100111100111110011110011110001111001111001111100111100111100011110011110011111001111001111000111100111100111110011110011110001111001111001111100111100111110".

    Jest pełna powtarzalność tego ciągu. Ciekawe jednak jest to, że co jakiś czas pojawiają się nieparzyste zera (000) i nieparzyste jedynki (11111).

    No i dalej jestem nigdzie, no bo albo się wstrzeliłem z częstotliwością czytania, albo czytam co któryś...
    Czy ktoś wie, czy ten sygnał ma jakiś sens? Zabrany z luźnego kabla wiszącego z routera.
  • #28 12014330
    kamyczek
    Poziom 38  
    Generalnie to nie zmierzyłeś nic i bez analizatora takie pomiary nie służą niczemu aby robić takie pomiary trzeba użyć np : takie urzadzenie
  • #29 12014379
    subratri
    Poziom 13  
    no nie zmierzyłem... Podstawowy problem to fakt, że RS do kompa idzie po 9600 a ethernet 10M ...
    Oj wyczerpujące jest odnawianie wiedzy...
    No nic - jutro też jest dzień ;)
  • #30 12014487
    mpietras
    Poziom 17  
    Podłącz tą linie przez diodę strzałką do Rx'a atmegi, podciągnij zewnętrznie do +5V przez 30kOhm i czytaj jak normalnego uarta. Spróbuj przy prędkościach 9600 i 19200 kbps
REKLAMA