Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
MetalworkMetalwork
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Pytanie o analizator stanów logicznych

rpal 25 Jun 2009 00:45 5137 31
  • #1
    rpal
    Level 27  
    Takie ustrojstwo dajmy na to 8 kanałowe mniej więcejile kosztuje a co najważniejsze czy działanie opiera się na obrazowaniu stanów ON LINE na ekranie komputera czy idzie to do wewnętrznej pamięci i obrazowane jest niejako po fakcie ?
  • MetalworkMetalwork
  • #2
    Balu
    Level 38  
    8kanałowe a ile próbek? Najtańsze nowe ok. 500zł (atlantec) taki z akcesoriami 800zł, oczywiście, że wew. pamięć a potem "po fakcie", jak Sobie wyobrażasz oglądanie ONLINE przebkiegu 100MHz?xD
  • MetalworkMetalwork
  • #3
    AvrArm
    Level 15  
    Ostatnio "wygooglałem" coś takiego:
    Link
    Uprog ICP / USB - analizator i programator w jednym i to rodzimej produkcji.
    Jestem ciekawy jakie są opinie użytkowników tego systemu.
  • #4
    rpal
    Level 27  
    Balu wrote:
    8kanałowe a ile próbek? Najtańsze nowe ok. 500zł (atlantec) taki z akcesoriami 800zł, oczywiście, że wew. pamięć a potem "po fakcie", jak Sobie wyobrażasz oglądanie ONLINE przebkiegu 100MHz?xD

    Masz racje pytanie było debilne. O ile koledzy byliby na tyle uprzejmi prosiłbym także poddanie recenzji poniższego pomysłu.
    Z góry zaznaczam ze nie do końca jestem pewien czy opłaci się skórka az wyprawkę, ale..
    Poddałem szacunkom ile jest w stanie wydusić z siebie najszybszy ATMEGA gdy użyć najprostszego sposobu kontrolowania linii wejściowych czyli podłączonych wprost na port i zapisywanie tego w wewnętrznej pamięci. Wyszło mi że próbkowanie na poziomie 400kHz(przy zegarze 20MHz) to szczyt możliwości. Obsługa w przerwaniach np. Timera no i w zasadzie takie ATMEGA niż poza obsługą tego przerwania nie byłby w stanie zrobić. Szacuję na obsługę przerwania na jakieś 20 linii kodu(w assemblerze). To trochę za mało no pamięć do 4KB także na niewiele się przyda. Zatem ten pomysł z góry odpada. Można w prawdzie ograniczając tempo próbkowania wysyłać to wprost na zewnątrz a np. po RS232 ale to poza oszczędnością na pamięci nic nie poprawia a wręcz przeciwnie pogarsza.
    Drugim pomysłem który przyszedł mi do głowy to puszczenie sygnałów z linii wejściowych na rejestr przesuwny który byłby taktowany określoną częstotliwością zegarową i zarazem zliczaną albo licznikiem zewnętrznym albo pochodzącym z ATMEGA tak aby po 8 bitach sygnalizować przepełnienie. Wyjście równoległe tego rejestru byłoby wejściem danych dla pakietu pamięci a zadaniem ATMEGA w zasadzie jedynym byłoby obsługiwanie przerwania od przepełnienia i generowanie 16bitowego adresu dla pamięci i sygnałów OE i WE. Po zapełnieniu pamięci następowałby ich odczyt i przetworzenie danych oraz wysłanie na zewnątrz. Tak na mój gust dałoby się juz z tego wydusić częstotliwość próbkowania 2-4 Mhz co generalnie byłoby juz wystarczające. Do tego trzeba by było dodać trochę buforów lub ew. muliplekserów aby przełączać linie danych dla zapisu pamięci i odczyt przez uP. Wielkość pamięci w zasadzie ograniczona szerokością linii adresowych i ilością linii wejściowych i jako rozsądną wartość uznałem że 8x32KB wystarczy z powodzeniem. lub ew 8x128 kB pamięci 64KB są już coraz trudniej dostępne. Nie wiem tylko czy warto sobie za kwotę 500 PLN zawracać tym głowę i czy słuszny tok rozumowania przyjąłem w zakresie konstrukcji.
    No i ew. aplikacja do obrazowania na PC ale to akurat nie jest dla mnie problemem.
    Układy programowalne odpadają bo nie mam ani wiedzy do tego ani narzędzi.
  • #5
    Balu
    Level 38  
    Jeśli interesuje Cię tani i prosty 4-bitowy analizator to ja z mojej strony mogę polecić Ci http://www.ikalogic.com/phpBB3/viewtopic.php?f=16&t=178&p=3096#p3096, do tej pory tego używałem i było ok, gdyby nie mały bufor próbek:) (Mogę się podzielić działającym projektem w 99%smd z usb, zamykany w małej obudowie serii z-xx)
    A w chwili obecnej właśnie walczę ze sobą, który analizator z atlantec'a wziąść:)
  • #6
    rpal
    Level 27  
    przynam że nie bardzo mogę się w tej stronie połapać :) Tak myślę że na razie pomyślę nad schematem i jak mi coś z tego konkretnego wyjdzie to zamieszczę go tutaj aby szanowne grono wyraziło swoją opinię. Inną sprawą byłoby podłaczenie tego pod jakiś w miarę popularny program do obrazowania zapamiętanych wyników.:)
  • #8
    rpal
    Level 27  
    Teraz to inna rozmowa, używałeś tego jak rozumiem. Czy istotnie próbkowanie jest 4 MHz? Pytam bo na mój gust to dośc fantastyczna wartość.
  • #9
    Balu
    Level 38  
    Tak maksymalnie 4MHz, ale jest wtedy tak krótki czas akwizycji, że aż dupę ściska;)
    Na mój nie, jeśli jest to w pętli, a nie przerwaniu:)
    mov x, 0xffff (rozbij na dwa)
    aaa:
    in r16, PINA
    st x-, r16
    breq dalej
    jmp aaa
    dalej:
    Masz 4 cykle;)
    Ja go używałem na niższych prędkościach (podsłuch magistral w Renault:P)

    Dodano po 2 [minuty]:

    Aha wyzwalanie jest bardzo skromne:)
    Który kanał, plus jaki transition:)

    Dodano po 39 [sekundy]:

    No i są źródła gdzieś w C podane, więc jak ktoś ma chęć, to można na jakiś CPU z więcej ramu wciepać:)
  • #10
    rpal
    Level 27  
    No to może jednak poczekam i sam sobie zrobię i ew. "pomajsterkuję" przy aplikacji która obrazu dane. Coś wiesz kolego jaki jest format transmisji bo jesli urzadzenie nie jest nastawiane z poziomu PC-ta to byłoby w zasadzie po prostu przetransferowanie pamięci po rs232 czy raczej do prostego rozgryzienia.
  • #11
    Balu
    Level 38  
    Jest nastawiane:)

    Dodano po 42 [sekundy]:

    Wiem, że tak też będzie prsote do rozgryzienia, ale zamknięta aplikacja = konkretna liczba próbek którą może otrzymać = nie ma sensu większy ram;)
  • #12
    rpal
    Level 27  
    No cóż, więc trzeba będzie zakasać rękawy i coś wyskrobać np. Visual Basic bo to akurat mam pod ręką.
    Drogi kol.Balu miałem nieco casu siedząc dziś na kiblu i tak sobie wyliczyłem że operacje na pamięci to jakby nie liczyć 2 cykle zegarow inne niby 1 przyjmując to nijak nie wyjdzie mi że te ustrojstwo lata z 4MHz próbkowania 1 operacja na pamięci typu mov daje zwłokę czasową (kwarc 16 MHz) 125 ns, powiększanie rejestrów inteksowych czyli st + inne badziewne mnemoniki , odkładanie na stos rejestrów indeksowych wyjdzie jak nic z 10 linii kodu każda po 62,5n czyli 625 ns. Biorąc to pod uwagę to osiągniesz powtarzające się strobowanie z czestotliwością poniżej 2 MHZ a sądzę że to optymistyczny wariant. Poza tym coś musi stabilizować te impulsy czyli przerwanie. Myślę że konstruktor nieco przesadził z wydajnością swojej konstrukcji. Jeśli się myle mogę zeżreć to co tu napisałem :)
  • #13
    Balu
    Level 38  
    Hmmm, fakt wychodzi 5 cykli:) Zerknę jak on to sampluje i dopiszę;P

    Dodano po 13 [minuty]:

    Patrzę w te źródła i patrzę i rzyć widzę:p
    Albo jeszcze kac trzyma, albo nie ma tam w ogóle dla 4MHz obsługi:P
    I przy okazji znalazłem miejsce w którym są źródła do softu PC :P
    No ale wracając to ja od ręki mogę zrobić fosc/6 sampli:)
  • #14
    rpal
    Level 27  
    No to jeśli kac minie a chęć pozwoli to ew. źródło dlas softu by mnie interesowało ale to tylko po stronie PC :) Kefir polecam lub maślankę.
  • #15
    Balu
    Level 38  
    Pamiętaj, proszę, że zgodnie z prośbą autora, każda modyfikacja powinna być zapostowana na forum Ika'ego!:>

    Quote:
    As my life is getting more and more busy lately, i decided to give up the source codes for the scanalogic solutions, with one and only condition : "any modified version should be hosted only on ikalogic forum".

    So, here we go, the computer software is in visualbasic 6

    the source code is in C with embedded asm.

    Please try to make maximum effort before saying you do not understand the code and need help ;)

    good luck, and waiting for new developed versions..
  • #16
    rpal
    Level 27  
    Bede pamietał, choć jak znam życie to lepiej napisac od nowa niz po kims poprawiać. Dzięki
  • #17
    Balu
    Level 38  
    Ano:) Ale jakieś rozwiązanie zawsze jest, pewnie w tej funkcjonalności wystarczy zwiększyć liczbę próbek odbieranych i potem odpowiednio duży wykres :)

    Dodano po 52 [sekundy]:

    Powiem szczerze, że mi się nad tym siedzieć nie chciało:) Przejrzałem na szybko te źródła w notatniku i pokiełbaszone ;) A komentarzy zbyt wielu nie było:P

    Dodano po 22 [minuty]:

    Tak nad tym myślałem:P
    Lepiej to zrobić jak chcemy duży bufor zupełnie inaczej:) Całość zupełnie sprzętową, a procek tylko do adresowania dziada.
    Już piszę co i jak widzę:)
    C:\Users\Lukasz\Documents\Bluetooth\Inbox
    Generalnie licznik 2... lub 3 połaczone kaskadowo, generator dla nich to CTC z procka, liczniki generują adres dla sram'u, 4066 przełącza co godo z ramem, czy wejście (sondy) czy CPU, generalnie trochę części tam będzie, 2...3 liczniki, jeden sram, dwa 4066, tak na szybko to wystarczy i masz wtedy fsamplemax=pwmmax z cpu a tutaj 4MHz na pewno się znajdą, a jak nie, to zawsze można generować adres na CPU, ale to już trwać będzie, 4MHz na avrze nie ma bata wtedy:), wtedy siakiś arm, avr32 lub coś:)

    To jest chyba najlepszy sposób na analizator jeśli nie chce fpga:)
    Mogę zaprojektować laminacik itd:) Nawet procka oprogramować, ale na prawdę część windowsowa musi być szprytna;)

    (No i jeśli użyć takiej kostki 128KB to jest to w kiiij duży bufor:) na 32ms transmisji 4megowej, ale jak już dawać 3 liczniki to lepiej tam wsadzić jakiś 1MB:> adresów i tak styknie;)
    Tyle odemnie :) Chyba się za to wezmę, wyjdzie ze stówkę:> A nie 800:P

    Pozdro i napisz co myślisz:>

    Pytanie o analizator stanów logicznych
  • #18
    rpal
    Level 27  
    Ja też podobnie myślę ale na mój gust wyjdzie więcej niż stówke. Interesuje mnie jak się w takich gadzinach realizuje sposób wyzwalania, zboczem, czy poziomem a moze z ręki. Określenie końca przetwarzania ? Czy do oporu czy też orientuje się na ilość próbek lub czas. Takie techniczne pytania. Dam za kilka minut do recenzji pomysł na modół wejściowy. Procek właśnie tylko po to aby generować adres i na nic więcej.
    Pytanie o analizator stanów logicznych
    widze to tak: adres generowany zgodnie z impulsami zegarowymi "CLK" np. przez wejście na kaskadę 7493 natomiast cała robota dla uP to zliczenie na wewnętrznym liczniku i wygenerowanie przerwania przepełnienia/zgodnego porównywania (do wyboru) które wyłączy przetwarzanie, lub też gdy się zastosuje liczniki z serii 74193 z linii przeniesienia. To już kompletnie uniezależnia układ od częstotliwości pracy uP i pozwala ganiac z przyzwoitymi prędkościami. Konieczne jest zliczanie każdych 8 impulsów zegarowych aby uP mógł wygenerować sygnał sterujace OE, lub WE. Jakby na to nie patrzeć konieczne jest zewnętrzne źródło częstotliwości zegarowej i to o programowanym stopniu podziału. Mam na oku zeriie CD40xx jestm tak gotowy scalak nie pomnę teraz jego numeru.
    Odczyt już za pomocą "nieco" sprzętową do linii L0-L7 przez multiplekser który zamieni do na postać odpowiednią dla linii a nie rejestru przesównego , jakby nie liczyć wyjdzie ich 8 szt. Adres dla pamięci generowany w sposób jak dla zapisu. jakby nie patrzec na to to pamięć będzie 8X32 kB czyli 256 kB próbek dla linii 8 linii wejściowych. Tak na marginesie taka kość 7493 jest sprzedawana za jakieś kosmiczne pieniądze jak dla tego typu scalaków bo za ok 5 PLN !
  • #19
    Balu
    Level 38  
    Przeczytałem ten Twój topic...i...chyba trochę kombinujesz;)
    Co do wyzwalania,myślałem, o prostym pretrigu czy jak to się tam nazywa, ale o tym może za chwilkę, szczerze, to bardziej mi się podoba moje rozwiązanie:P Jakby prostsze, patrzyłem, do szczęścia wystarczają mi dwa liczniki 4040 (2x12bit), zbieranie próbek myślę do full'a, i z tego generowanie INT'a dla procka do zatrzymania zegara (czy nawet na jakieś bramki kluczujące zegar i na procek równocześnie)
    masz 24bity do zabawy więc przestrzeni adresowej w tzw *** dużo:) pamięć widziałem 128Kx8 na tme po 10zł, takich można wsadzić nawet 5...:>
    Liczniki po 1zł, procek niech będzie 20 (mega128) reszta to grosze:)
    w sumie myślę, że bez sond 100zł, no może 150zł za wersję 0,5Mx8
    A co do pretrig'a myślałem, żeby na dodatkowej małej pamięci zbierać próbki w kółko (bufor kołowy) i kończyć ich zbieranie (blokować zegar) z odblokowaniem zegara dla dużej pamięci

    Dodano po 18 [minuty]:

    No i jeszcze proste rozwiązanie na podwojenie prędkości próbkowania... dwa układu (liczniki+ ramy) chodzące na drugim zboczu:)

    Dodano po 18 [minuty]:

    Chyba dochodzę do wniosku, że lepiej to na PIC24/ARMie zrobić:P

    Dodano po 3 [minuty]:

    Co do wyzwalania to poziomem chyba nie ma sensu, bardziej zboczem, myślę, że fall i rise + instant trig wystarczą do szczęścia:) No jeszcze external;)

    Dodano po 11 [minuty]:

    Jakbyś chciał to mam 32Kx8 KM62256 8 sztuk, generalnie do oddania za flaszkę:) lub dobre słowo:)

    Dodano po 1 [godziny] 19 [minuty]:

    Co do generatora, myślałem nad zamiast tego PWM'a licznik jako dzielnik stabilizowany jakimś 4/8MHz kwarcem i przełączanie muxem wyjść licznika na tamte liczniki (+jednego noga z muxa taktowana z procka co by się łatwo odbierało dane):)
  • #20
    rpal
    Level 27  
    Masz racje kolego przekombinowałem, lepiej "sztucznie" wygenerować sygnały dla pamięci.
  • #21
    Balu
    Level 38  
    Znalazłeś coś odnośnie tego wyzwalania? Bo coś tam przejrzałem i generalnie nic ciekawego:P

    Dodano po 7 [minuty]:

    http://www.allaboutcircuits.com/vol_4/chpt_10/5.html Coś takiego znalazłem i takie też nam na lekcjach PTCa pokazywali dawno temu:) 3 bramki dla opóźnienia i zbramkowane jedną większą bramką:)

    Teraz tylko, jeśli by się chciało na każdy z 8 kanałów robić takiego cudaka...to to wyjdzie na samo wykrywanie zbocz dodatkowe 2scalaki/kanał:/ Nie mówiąc o wykorzystaniu późniejszym tych triger condition;) Bo to przecież trzeba jakoś ustalać z którego kanału wyzwalanie;) Można by switche na obudowie ale to takie mało Pr00H4x0r5k13:)
    I tu można by muxy użyć prawdopodobnie;)

    Ot tyle przemyśleń więcej:)

    Aha, jeszcze jedno, myślałem, żeby nei robić jednej wielkiej kobylastej PCB tylko karty moduły wsuwane (wlutowane) na szpilkach pionowo (jak ram w PCie, tylko na stałe)
    I można by porobić np. na takiej karcie 2 kanały kondycjonowanie wejść, wyzwalanie:)

    Masz jakieś ciekawe rozwiązania odnośnie kondycjonowania wejść? Zabezpieczenia, przesuwanie poziomu?:)

    Dodano po 43 [minuty]:

    Szukałem jeszcze o generatorze czegoś, i ciężko jest, był fajny scalaczek `536 ale nei do kupienia oczywiście:/
    Chyba generację zegara trzeba będzie zostawić procesorowi w trybie CTC przy 16MHz spokojnie 4MHz wychodzą:) a potem to już wiele opcji :)
  • #22
    rpal
    Level 27  
    Póki co zaprzestałem kombinowania ale tak wg mojego małego rozumu to wydaje mi się że wystarczy dodać oddzielną linię na samo wyzwalanie z możliwością zmiany poziomu wyzwalania. Tak jest prościej. Natomiast montaż na szpilkach też mi się od razu narzucił.
  • #24
    Test123
    Level 14  
    Ciekawy i "raczej" nie drogi w wykonaniu uklad na ATMegaXXX jest tutaj
    Link

    8 Kanalow, max. 50MSample/s, 4000 Sample pamieci, Trigger.
  • #25
    rpal
    Level 27  
    masz rozumieć że wyzwalanie to linia której poziom służy tylko do odpalenia a nie jest linią któej przebieg miałby być rejestrowany.
  • #26
    Balu
    Level 38  
    No tak, oczywiście, że tak, ale fajnie by było, żeby dało się to wybrać w sofcie (channel x, fall/rise edge, external edge, immediate), a to mocno komplikuje:)
    Skąd w ogóle pomysł z rejestrowaniem zdarzenia wyzwolenia?:)
  • #27
    rpal
    Level 27  
    to chyba oczywiste, to też może być interesujący przebieg.
  • #28
    Balu
    Level 38  
    Eeee , no jeśli mowimy o prosty wyzwalaniu zboczem to generalnie wiesz, że nastąpił przed pierwszą próbką(a jak pretriga masz to i w środku, wtedy może mieć sens marker "wyzwolenie" ale i to bez sensu bo to widać:P) , co w nim ciekawego?
  • #29
    rpal
    Level 27  
    No choćby długość ? Niedawno robiłem klawiaturę matrycową i tak się składa że będąc ograniczony ilością portów musiałem na jednym porcie wsadzić klawiaturę, zespół diod LED, i jeszcze w dodatku wyświetlacz LED-siedmiosegmentowy x 4 cyfry. Użyłem między innymi 74HC123 do generowania przerwania klawiatury i zależało mi na jego pracy w trybie podtrzymywania. Fakt miałem oscyloskop ale zdecydowanie łatwiej byłoby mi dobrać parę RC wiedząc dokładnie jakie są szerokości impulsów tak aby 74123 na amen się zatykał po wciśnięciu klawisza. Więc to wcale nie jest taki głupi pomysł.