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

Arduino MEGA - Wielokanałowy licznik zdarzeń

22 Wrz 2014 23:13 1527 14
  • Poziom 12  
    Witam, stoje przed zadaniem zmajstrowania na Arduino Mega wielokanałowego licznika zdarzeń.

    Licznik ma posiadać 32 niezależne kanały, z czego każdy będzie odbierał impulsy co, jeśli dobrze pamietam, jakieś 100ns. I teraz pierwsze pytanie, czy na tym Arduino jest to możliwe?



    Pozdrawiam :)
  • PCBway
  • Poziom 1  
  • PCBway
  • Poziom 12  
    Sprawdziłem dokładniej: zliczenia miały by być od 0 do ok. 200000 na sekunde :)

    Jest możliwość obslużenia tego dla 32kanałów? Czy nie da rady? jeśli nie, to ile maksymalnie zliczeń na sekunde jestem w stanie zmierzyć?

    Druga sprawa - jakie dodatkowe elementy Kolega miał na myśli?

    Jeśli chodzi o prezentacje wyników planowałem przez usb, aby wyniki zostały przesyłane jakos do LabVIEW, ew. w najgorszym razie na kartę SD.

    Co do samego projektu - celem jest zliczanie fotonów z lasera poprzez matryce detektorów :)
  • Poziom 1  
  • Specjalista - Mikrokontrolery
    No fakt, jak detektor fotonowy, to mikrokontroler musi być 8-bitowy, odpowiednio stary i niewydajny, broń Boże coś współczesnego, tańszego i szybszego, co by bez trudu poradziło sobie z tym zadaniem.

    A może by tak najpierw postawić założenia, a potem zastanowić się nad doborem sprzętu, a nie odwrotnie?
  • Moderator Mikrokontrolery Projektowanie
    BlueDraco napisał:
    No fakt, jak detektor fotonowy, to mikrokontroler musi być 8-bitowy, odpowiednio stary i niewydajny, broń Boże coś współczesnego, tańszego i szybszego, co by bez trudu poradziło sobie z tym zadaniem.

    A może by tak najpierw postawić założenia, a potem zastanowić się nad doborem sprzętu, a nie odwrotnie?


    To może zaproponuj jakieś rozwiązanie? Parametry już mamy, IMHO to co proponuje Marek jest optymalne. Proste FPGA sobie z tym poradzi lepiej niż jakikolwiek mikrokontroler. O ile wiem, żaden ARM nie ma 32 kanałów capture, ale popraw mnie jeśli się mylę. A choćby nie wiem jak szybkiego ARMa wybrać to z rozdzielczością 100 ns bez sprzętu tych pomiarów nie zrobi. A jeśli już mamy FPGA, który załatwia część sprzętową, to co będzie interfejsem USB jest kompletnie bez znaczenia... Równie dobrze może być to wykopana z muzeum '51.
  • Specjalista - Mikrokontrolery
    Też stawiałbym na FPGA, chociaż zapewne jakiś STM32F407 też jakoś by sobie z tym poradził.
  • Moderator Mikrokontrolery Projektowanie
  • Moderator Mikrokontrolery Projektowanie
    Dobre pytanie. Niemniej jeśli zdarzenie w danym kanale może wystąpić co 100 ns to jest problem - w ciągu tego czasu procek musi je obsłużyć, bo flaga sygnalizująca przerwanie jest tylko flagą, w efekcie kolejne zdarzenia byłyby zgubione. Co gorsze jeśli np. wystąpi na raz kilka zdarzeń w różnych kanałach i w jednym dwa lub więcej to też je zgubimy, chyba, że wszystkie obsłużymy w czasie <100 ns co jest nierealne na jakimkolwiek mikrokontrolerze. No nic, zobaczymy co autor wątku nam powie.
  • Moderator na urlopie...
    No właśnie - odpowiednia szybkość to jest to.

    Też bym polecał FPGA - implementacja 32 timerów będzie banalna, do tego można albo zrobić procesor w układzie FPGA, albo zastosować mniejszy FPGA/CPLD i do tego podpiąć procesor do komunikacji z PC.
  • Poziom 12  
    Dziękuje kolegą za rozjaśnienie sprawy :) FPGA będzie, ale to w przyszłości :). A na moment obecny, w takim razie może zmienię założenia:

    1. Zrezygnujemy na razie z 30 kanałów, niech były by sobie na moment obecny ze dwa.

    2. impulsów miało by być do ok 200tys na sekundę, co mi daje impuls co ok 5μs na kanał, a nie tak jak wstępnie napisałem co 100ns (jeśli źle liczę proszę mnie poprawić). No a jeżeli dalej nie da rady tyle wyciągnąć, to niech było by mniej, i w takim wypadku spytał bym sie ile?

    3. Impulsy nie będą występować regularnie

    4. Do Piotrva i tmf: Co do pomiaru czasu - nie będzie potrzebny. Przynajmniej na moment obecny :D


    5. Do Marka Skalskiego:
    5.1 (VCP/CDC?) - w sumie nie wiem, cokolwiek co może przesłać informacje do komputera, i będzie proste ;) Na razie wykorzystując arduino wykorzystywałem wirtualny port COM, i udało mi sie to połączyć z LabVIEW :) Być może w taki sposób by wystarczyło?

    5.2 tak troche na uboczu: jeśli kiedyś, powiedzmy, bym chciał zrobić większa ilość kanałów, jakich potrzebował bym liczników i rejestrów?

    5.3 Mógł byś napisać coś więcej nt. układ dopasowania impedancji i/lub formowania impulsu? wiem na moment obecny, ze impedancja wejściowa powinna mieć 50Ω, zeby nie było odbić, aczkolwiek nie za bardzo ogarniam temat.. (co pewnie widać :lol: ).
  • Moderator Mikrokontrolery Projektowanie
    Jeśli kanałów będzie tylko dwa to możesz podać te impulsy na wejście zegarowe licznika, wtedy mogą być nawet i co owe 100 ns.
  • Poziom 12  
    tmf napisał:
    Jeśli kanałów będzie tylko dwa to możesz podać te impulsy na wejście zegarowe licznika, wtedy mogą być nawet i co owe 100 ns.


    i teraz w końcu czas na te głupie pytanie :P które to są piny? :P bo nie używałem ich jeszcze. :P Bardzo bym prosił o krótkie objaśnienie które to piny i gdzie mogę znaleźć informacje nt. ich obsługi/programowania :)


    A i jeszcze jedno pytanie: zanim będe podpinał detektor, mam do dyspozycji generator sygnału, ktory mógł bym użyć do testów, czy wszystko działa ok. Zakres napięcia 0-5V, jak powinienem go podłączyć pod Arduino?
  • Specjalista - Mikrokontrolery
    1. Przeczytaj opis timera.

    2. Dwoma przewodami - masa i sygnał.