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

[ATMEGA168] ATmega168 oscyloskop cyfrowy – maksymalna częstotliwość próbkowania ADC, doświadczenia

pawelvod 25 Cze 2006 18:33 10381 26
REKLAMA
  • #1 2762965
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Co myślicie o urządzeniu pomiarowym zbudowanym na ATmega168 (20Mhz) i jego wewnętrznym przetworniku. Do zbierania próbek wystarczy jego wewnętrzny ram. Wystarczyło by jedynie zastosowanie wzmacniacza i dzielników napięcia, oraz jakiegoś wyświetlacza. Nie mogę się doczytać w nocie katalogowej ile cykli potrzebuje przetwornik A/D na pomiar a co za tym idze jaka będzie maksymalana częstotliwośc próbkowania. Próbował ktoś robić kiedyś coś takeigo?
  • REKLAMA
  • #2 2762979
    przesladowana
    Poziom 12  
    Posty: 83
    Pomógł: 1
    niedam za to glowy ale to chyba nie zalezy od predkosci zegara i wynosi okolo 200kHz
  • #3 2762988
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    76,9KSPS to max dla ADC, czyli maksymalna częstotliwość wyniesie ledwo ponad 38KHz - lepiej kupić używany radziecki oscyloskop, bo to będzie straszna lipa, bardziej będzie to przypominać szybki woltomierz niż oscyloskop
  • REKLAMA
  • #4 2763087
    Anderian
    Poziom 18  
    Posty: 406
    Pomógł: 9
    Ocena: 3
    a co myslicie o AD775 - 8-Bit 20 MSPS
  • #5 2763271
    filip_gd
    Poziom 12  
    Posty: 103
    Pomógł: 1
    Ocena: 2
    Chyba najlepiej nadaje się jakiś nowy ARM nie wiem jaki jest szybki jego wew. przetwornik ale można w razie czego dołączyć zew.
    Prędkość które uzyskasz mogą być bardzo duże.
    Też myślałem nad takim projektem ale jak już to na ARM
  • #6 2763451
    Anderian
    Poziom 18  
    Posty: 406
    Pomógł: 9
    Ocena: 3
    arm wydaje sie ciekawa alternatywa
    mam jakas pamiec ze skanera musze ja odszyfrowac moze nada sie na oscyloskop
  • #7 2763537
    upanie
    Poziom 22  
    Posty: 434
    Pomógł: 33
    Ocena: 7
    W ARMach atmela AT91SAM7Sxxx to chyba 200-250KHz.
    Ale po kiego grzyba procek w oscyloskopie?
    Nawet używając zewnętrznego ADC np. 20MHz to i tak procek (nawet ARM) nie będzie w stanie nic z tym zrobić. Bo przy F_CPU=60MHz będą raptem 3 cykle na obsłużenie danych od ADC, ale to i tak nie ma najmniejszego znaczenia bo porty ARMów sobie z tym nie poradzą. To musi być większy ARM z zewnętrzną magistralą do pamięci. Mimo to i tak nie jest ona w stanie pracować z częstotliwością CPU. Nic z tego nie wyjdzie.
    Lepszą alternatywą jest użycie FPGA. Poza tym potrzebna jest szybka (przez duże S) pamięć i to najlepiej dwubramowa albo spore FIFO.
    Kolejna rzecz to synchronizacja, wyzwalanie, generowanie podstawy czasu itp., itp. Jednym słowem masa roboty i czasami świetna zabawa ;) a ile się można nauczyć podczas takiego projektu :D
    Np. do zwiększenia częstotliwości próbkowania można użyć kilku szybkich ADC i wykonać jakąś sprytną synchronizację wyzwalania i odczytu pomiarów.

    Powodzenia. Jakby co to chętnie służę pomocą.
  • #8 2763540
    adamusx
    Poziom 27  
    Posty: 977
    Pomógł: 94
    Ocena: 28
    Ja proponuje przetwornik TDA8703 (+ pamiec FIFO lub |UM61256 + FPGA lub bramki logiczne, AVR sa za wolne) .Na necie jest pare ciekawych projekcikow oscyloskopow opartych o takie rozwiazania, czetotliwosc probkowania dochodzi do 40Mhz,teoretycznie mozna takim oscyloskopem mierzyc sygnaly do 20Mhz . Sam przymierzalem sie do budowy takiego czegos, ale nie mam zbytnio czasu :)

    http://www.volny.cz/elecon/cz/pcosciloskop/pc...obrazky/pcosciloskop_schema_digital_v_1_0.gif
  • #9 2763628
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Pamięć FIFO jest droga i ciężko ją dostać

    Wystarczy automat adresujący pamięć SRAM i taktujący przetwornik, do tego jakiś uC który będzie czytał pamiątki i wysyłał do kompa. To akurat najłatwiejsza część zabawy. Wyzwalanie trzeba zrobić co nie jest sprawą prostą, zdecydować się na jakieś pasmo i zaprojektować filtry na wejście, które odetną za wysokie częstotliwości. Bloki wzmacniaczy wejściowych, których zaprojektowanie nie jest łatwe, trzeba się liczyć z wszystkimi umilaczami sygnałów analogowych (zakłócenia, szumy, wzbudzanie) Zaprojektować jakoś sprytnie ukłąd taktujący przetwornik i automat pamięciowy, napisać oprogramowanie na PC i do uC, którego jakość zeżre mnustwo czasu.

    Co z tego mamy? Oscyloskop który wyciąga 20Mhz, przepuszcza szpilki i nie daje wiarygodnych odczytów (na tyle wiarygodne na ile sam w to wierzysz) Koszty bardzo wysokie - części i robocizna.

    Chcesz tani oscyloskop cyfrowy, nie da się, lepiej kupić porządną używke analogową - są tanie i przyzwoitej jakości, w mojej opinii cyfrówka mniej niż 100MSPS nie ma szans z odpowiadającym (50Mhz) analogowym oscyloskopem.

    Wnioski: Jeżeli chcesz się sprawdzić jako elektronik, powodzenia, ale przetwornik i procesor to jeszcze nie oscyloskop i poza nimi jest jeszcze masa innych bzdetów, gotowych projektów w internecie jest sporo, ale porządnego sprzętu jeszcze nie widziałem (ciekawie zapowiadał się 4-kanałowy cyfrak z EP, ale projekt umarł na ostatniej prostej)
  • #10 2763868
    yego666
    Poziom 33  
    Posty: 2175
    Pomógł: 239
    Ocena: 564
    McRancor napisał:
    Chcesz tani oscyloskop cyfrowy, nie da się, lepiej kupić porządną używke analogową - są tanie i przyzwoitej jakości, w mojej opinii cyfrówka mniej niż 100MSPS nie ma szans z odpowiadającym (50Mhz) analogowym oscyloskopem.

    Gdyby oscyloskop cyfrowy był funkcjonalnie równoważny oscyloskopowi analogowemu, to faktycznie na powyższym stwierdzeniu należałoby dowód zakończyć, jednak niestety lub na szczęście tak nie jest.
    Oscyloskopy cyfrowe oferują rożne dodatkowe funkcje takie jak łapanie ramki o zadanych parametrach (niepowtarzalnej cyklicznie), szczególnych parametrów wyzwalania ramki, składowanie wielu ramek, przeglądanie ich off-line, rożne filtracje, przeskalowania, statystyki i wiele wiele innych ciekawych funkcji, których nigdy nie było w oscyloskopach analogowych. Z tego powodu oscyloskopy cyfrowe są po prostu innymi i raczej nieporównywalnymi urządzeniami do oscyloskopów analogowych. Gdyby zrobienie oscyloskopu cyfrowego było łatwe, to nie warto by było się tym zajmować. Jest to niewątpliwie ciekawe i złożone zagadnienie (o ile mówimy o czymś więcej niż o wyświetlaczu kolejnych samplowanych ramek). Myślę, że skoro poza wejściowym przetwornikiem A/D i ew kilkoma filtrami cala reszta jest cyfrowa, to byłoby słuszne umieszczenie tego wszystkiego w FPGA - jak sugerowali koledzy powyżej - a zamiast wysyłać wyniki do PC wrzucić do tego FPGA jakiś procek (soft core) by przetwarzał dane i sterował rożnymi nastawami oraz jakimś GUI na ekraniku LCD lub dołączonego monitora VGA. Jako ze oko ludzkie nie jest w stanie odbierać aktywnie obrazków zmieniających się szybciej niż jakieś 10 razy na sekundę, to na analizę i prezentację każdej ramki procesor miałby jakieś 100ms, co przy jakichś 256 punktach pomiarowych na ramkę nie jest żadnym wyczynem, nawet jeśli trzeba zrobić jakąś zaawansowaną arytmetykę czy statystykę.
    Nawet jakiś dość słaby soft core by sobie z tym poradził.
    Oczywiście, gdyby chcieć badać wszystkie ramki "on the Fly", to trzeba by trochę lepszy procesor.
    Pozwolę sobie zauważyć, że takie procesory są dostępne choćby na www.opencores.org a nawet na elektrodzie są takie projekty dostępne do wzięcia.
    Najpierw jednak należy się dobrze zastanowić co się będzie chciało od takiego urządzenia, bo to określi jego schemat funkcjonalny i zakres prac HW/SW.
    Pozdrawiam, yego
  • #11 2764024
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Tu Cię zaskoczę (może) mam oscyloskop HP-1703A który wyposarzony jest w tzw. lampe pamiętającą, działa to na tej zasadzie że przemiatający punkt zostawia ślad, ktory jest jeszcze długo widoczny (do 2 godzin) co w połączeniu z trybem single-shot triggera daje taki efekt jak w oscyloskopie cyfrowym czyli zapamiętanie przebiegu nieokresowego, do tego jest jeszcze funkcja delayed trigger (tylko pretriggera brakuje) i persystencja (dobre do wyłapywania odchyleń sygnału od normy)
  • REKLAMA
  • #12 2764377
    yego666
    Poziom 33  
    Posty: 2175
    Pomógł: 239
    Ocena: 564
    Coz, trudno opisac caly swiat w kilku zdaniach.

    A taki sprzet jak Twoj to maja nieliczni. Nowy kosztowal zapewne wiecej niz przecietny smiertelnik moglby zaplacic, wiec w swiecie oscyloskopow analogowych typu amatorskiego de facto taki sprzet "nie istnieje".

    Jak wiesz "Jedna jaskolka wiosny nie czyni", wiec dla ogolnosci wywodu zapomnij ze masz sprzet lepszy niz teoria pozwala :).

    Sa jeszcze ciekawsze rozwiazania, ale zasadniczo dla cywilow nie istnieja.
    Nadto, dokladanie jakichkolwiek "madrzejszych" funkcji do oscyloskopow analogowych jest duzo trudniejsze i drozsze niz do cyfrowych.

    Ja mam zwykly analog 2-kanalowy do 50MHz i w zasadzie mi wystarcza, ale byc moze kiedys sie pokusze o zrobienie sobie cyfraka w jednej kostce FPGA, ot tak dla sprawdzenia czy potrafie.
    Ostatnio pojawily sie FPGA z funkcjami analogowymi, ale dzialaja na razie do 600kilo sampli na sekunde, wiec taki oscyloskop bylby troszeczke za wolny.
    Moze nastepna generacja tych kostek bedzie szybsza.
    Jest to dosc ciekawe rozwiazanie ze wzgledu na to iz jest dostepny soft core ARMa do tej FPGA.
    Ale poki co poczekajmy co autor postu dalej powie, bo bez zainteresowanego mozemy sie nakrecac az do technologii XXX wieku, a autorowi moze chodzi tylko o czestotliwosci audio.

    Pozdrawiam, yego
  • #13 2768781
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Elektronika to moje hobby. Nie mam jeszcze w swoim warsztacie żadnego oscyloskopu, jedynie prosty częstotliwościomierz własnej konstrukcji. Konstrułuję głównie elektronikę cyfrową więc urządzenie mogło by analizować przebiegi 0-5V komunikujących się urządzeń cyfrowych. Dodatkowo mam w planach zrobić falownik 20kHz o wysokom napięciu (200V a przez 0,2s nawet 1000V) i tutaj też przydał by mi się oscyloskop. FPGA znam z teorii więc chętnie użyłbym go wreszcie w praktyce (nie lubię z armatą na muchę, ale tutaj rzeczywiścei wydaje się idealny) dla samej nauki. Co do podpowiedzi zawartych wyżej wydaje mi się, że ciekawym pomysłem jest użycie kilku przetworników A/C przełączanych pzrez FPGA i szybkiej pamięci zbierającej dane adresowanej też z FPGA. Byłby do tego potrzebny mały (niedrogi) układ. Co do późniejszej obróbki wykorzystałbym tradycyjny mikrokontroler który wyświetlał by wszystko na wyświetlaczu, lub transportował do komputera. Cena jest też dla mnie ważna. Tak jak napisałem urządzenei powstało by głównie w celach edukacyjnych i dla własniej satysfakcji. Nie chciałbym jednak zrobić czegoś co nie spełni moich oczekiwań lub czegoś co mogło by byś przy tym samym nakładzie pracy i kosztów dużo funkcionalniejsze dzięki Waszej pomocy. :D
  • #14 2769664
    yego666
    Poziom 33  
    Posty: 2175
    Pomógł: 239
    Ocena: 564
    pawelvod napisał:
    Co do podpowiedzi zawartych wyżej wydaje mi się, że ciekawym pomysłem jest użycie kilku przetworników A/C przełączanych pzrez FPGA i szybkiej pamięci zbierającej dane adresowanej też z FPGA. Byłby do tego potrzebny mały (niedrogi) układ. Co do późniejszej obróbki wykorzystałbym tradycyjny mikrokontroler który wyświetlał by wszystko na wyświetlaczu, lub transportował do komputera.
    Przetworniki A/D pewnie i musza byc osobnymi ukladami, ale skoro chcesz uzyc FPGA, to po jakiego grzyba dawac jeszcze osobny procesor na zewnatrz FPGA skoro mozna go zaimplementowac wewnatrz?
    To tak jakbys mial Porszawke, ale chcac oszczedzic na paliwie dolozyl jej dyszel i ciagal ja koniem po autostradzie :) To samo dotyczy szybkiej pamieci. FPGA ma to w srodku, wiec po co robic to poza FPGA ? Pamiec w lichym FPGA pracuje nawet do czestotliwosci 200MHz. Taka pamiec na zewnatrz bedzie Cie kosztowac drozej niz sama FPGA. Czy to ma sens ?

    Pozdrawiam , yego
  • #15 2770012
    _Matik_
    Poziom 19  
    Posty: 390
    Pomógł: 25
    Ocena: 7
    A ja sie nie zgadzam. Czytalem juz wiele poprzednich postow kolegi yego666 i czuje sie jakbym zyl w innym swiecie :D. Moje poczatku z FPGA (nadal jestem na etapie poczatkow) byly fatalne, proba stworzenia nawet dosyc prostego projektu na FLEX10K konczyla sie dziesiatkami warningow na temat przekroczenia czasow ustalania i trzymania w ukladzie
    A kolega chce od nas zebysmy od razu robili wszystko w jednej kostce i jeszcze implementowali w niej mikrokontroler. Podziwiam Twoje doswiadczenie, ale dla mnie, pospolitego zjadacza mikrokontrolerow AVR, i pewnie dla wielu innych na tym forum, rzucenie sie na projekt z samym FPGA to samobojstwo :>.

    Duzo prosciej, moim zdaniem bedzie na poczatku posilkowac sie zewnetrznym mikrokontrolerem, ktorego dzialanie jest (przynajmniej dla mnie) w duzym stopniu przewidywalne. Dlatego ja bym to widzial podobnie jak pawelvod, czyli FPGA (np. Cyclone) zajmuje sie bardzo szybkim zapisem danych z przetwornikow ADC (cos firmy Analog Devices), do pamieci (Samsung, np. K6R4016V1D). Nastepnie mikrokontroler (atmega128) odczytuje i przetwarza dane z tej pamieci (i wysyla do PC co trzeba) a nastepnie zapuszcza kolejny cykl pracy w FPGA (odczyt z ADC i zapis do SRAM).

    Od jakiegos czasu jestem w trakcie projektowania czegos takiego i moze wreszcie rusze z tym do przodu tylko niech sie ta cholerna sesja juz skonczy... ;].
  • #16 2770082
    yego666
    Poziom 33  
    Posty: 2175
    Pomógł: 239
    Ocena: 564
    _Matik_ napisał:
    A A kolega chce od nas zebysmy od razu robili wszystko w jednej kostce i jeszcze implementowali w niej mikrokontroler. Podziwiam Twoje doswiadczenie, ale dla mnie, pospolitego zjadacza mikrokontrolerow AVR, i pewnie dla wielu innych na tym forum, rzucenie sie na projekt z samym FPGA to samobojstwo :>.
    .

    rzeczy czyni sie nie dla tego, ze sa proste, tylko dla tego ze sa trudne. Inaczej zadna z tego nauka jesli ciagle robimy rzeczy, ktore juz potrafimy.

    Nadto, nie proponuje bysmy wszyscy robili procesory w FPGA. Na necie jest z tuzin ciekawych core'ow gotowych do uzycia i niewymagajacych wielkiej wiedzy z FPGA czy VHDla.
    Ja tez jadam chleb i nie jestem z lepszej gliny niz wszyscy, a czasu tez nie mam wiele - tak jak my wszyscy, jednak nie lubie dwa razy stosowac tego samego tricku, bo nic sie z tego nie ucze. Czy jest cos niewlasciwego w takim podejsciu ?
    Czy nalezy sie spodziewac, ze gdy sie za cos zabieramy uda sie od pierwszego kopniecia ? Nie ! I to jest wlasnie fajne.

    Pozdrawiam, yego

    P.S. Przepraszam za ten quasi-filozoficzny wywod, ale chyba watpliwosci kolegi _Matik_ sa wlasnie takiej natury.
  • #17 2785961
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Czasu na razie niestety brak. Rozejrzałem się trochę w FPGA i rzeczywiście wsadzenie wszystkiego w jeden układ będzie ciekawym wyzwaniem. Jak trochę zelży praca to się za to zabiorę i pociągnę dalej temat. Co do powyższych wypowiedzi to yego to racja z małym wyjątkiem. Każdy projekt mnie coś uczy. W każdym staram sie "dorzucić" coś czego nie robiłem jeszcze. Tylko problemy zaczynają sie gdy skok jest za duży i tak jak w tym przypadku wszystkie w zasadzie elementy będą nowe. Od obsługi softwaru do FPGA, po język programowania i kompilator na wirtualny procesor. Dlatego jestem zwolennikiem wolniejszej (co w efekcie daje szybszą) nauki gdzie w nowym projekcie mam do czynienia z jedną innowacją którą muszę opanować. Unikam w ten sposób sytuacji gdzie układ nie działa, a ja nie wiem gdzie mam łapy włożyć.
  • #18 2786833
    yego666
    Poziom 33  
    Posty: 2175
    Pomógł: 239
    Ocena: 564
    Super :)
    Zatem cel wydaje sie blizszy. proponuje w razie trudnosci czy watpliwosci zaczac nowy temat w podforum Uklady Programowalne. W razie klopotow na pewno znajdzie sie ktos kto pomoze :)

    Do odwaznych swiat nalezy. powodzenia.

    pozdrawiam, yego
  • #19 3240326
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Również myślałem o stworzeniu prostego oscyloskopu cyfrowego, jednak na ARMie. Użyłbym do tego zewnętrznego przetwornika A/D 8-bit 10 MHz (czy I/O w AT91SAM7S może być taktowane z 10 MHz???)
    Co chciałbym tym wyświetlać?
    - przebiegi generowane w zasilaczach impulsowych
    - przebiegi prądu pobieranego przez impulsówki (w linii 230V) - czyli też zrobienie na tej podstawie watomierza
    - przebiegi cyfrowe o prędkości oczywiście max. kilka MHz (warunki nie pozwalają na więcej..)
    - funkcja częstotliwościomierza, mierzenie większych częstotliwości poprzez zastosowanie dzielników częst.

    Nigdy niestety nie pracowałem z prawdziwym oscyloskopem, więc tym bardziej zadanie będzie trudne. Wyobrażam sobie to oczywiście jako przetwornik+procesor+wyświetlacz. Gdyby wyświetlacz był za wolny, to np. pomiar przez jakiś okres czasu z zapisem do ramu i wyświetlanie wyników off-line.

    Czy taki projekt ma szanse? Niestety, nie wyobrażam sobie zrobienia czegoś na FPGA bo bym się chyba zajechał... o ich konstrukcji zielonego pojęcia nie mam, a ARMów dopiero się uczę (wcześniej tylko AVR). Sam pomiar częstotliwości i wyświetlanie przebiegów cyfrowych to już byłby dla mnie całkiem niezły bajer...
    Pytanie tylko: jakie maks. częstotliwości generują zasilacze impulsowe? Kilkadziesiąt kHz, czy może dużo więcej (np. komputerowy, ładowarka do telefonu itp.)

    Dodano po 4 [minuty]:

    P.S. Działanie oscyloskopu wyobrażam sobie jako działanie szybkiego woltomierza... Jakieś łapanie ramek itp. to dla mnie czarna magia... Czy w powyższych zastosowaniach sprawdzi się w miarę ten sprzęt?
  • #20 3240420
    _Matik_
    Poziom 19  
    Posty: 390
    Pomógł: 25
    Ocena: 7
    Tez myslalem o ARMie jako o tanim oscyloskopie, wlasciwie wydaje sie to jedyne tanie i sensowne rozwiazanie oparte na pojedynczym procesorze, bez zadnego kombinowania z zewnetrznymi pamieciami i generatorami adresu. Ja nawet myslalem o zastosowaniu przetwornika wewnetrznego w AT91SAM7S bo on ma do kilku Mhz. Taki oscyloskopik bylby naprawde tani w stosunku do mozliwosci. A i SAM ma obsluge USB, takze praktycznie wszystko w ukladzie za 40 zl.

    Pomysl z ARMEM powstal w momencie kiedy moj oscyloskop na FPGA przekroczyl cene 500 zl za elementy+PCB... a tu jeszcze nie ma stopnia wejsciowego :>. Ale dziala toto prawie dobrze i probkuje z czestotliwoscia 295MHz. Na allegro to chyba tego nie sprzedam :D
  • #21 3240829
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Jestem pod wrażeniem że udało Ci się coś na FPGA zbudować :) Ten przetwornik w SAMie ma owszem częstotliwość 8 MHz (ADCClock), ale czas konwersji przy 8 bitach wynosi 1.25 us, czyli 800 KHz.

    A w TME znalazłem układzik ADS830E, który kosztuje 28 zł brutto i ma konwersje max. 60 MHz (prędkość sterowana sygnałem zegarowym)!
    Datasheety: http://www.datasheetcatalog.com/datasheets_pdf/A/D/S/8/ADS830E.shtml

    To byłaby ciekawa opcja, ale pytanie: jaką prędkość linii I/O ma ten AT91SAM7S?? Bo jeżeli by taktować rdzeń zegarem 50 MHz to pewnie 5 milionów próbek (10 taktów/próbkę) dałoby się osiągnąć, czyli kilkakrotnie więcej niż wewnętrzny ADC. Można by samo czytanie z ADC rozwiązać jakoś inaczej sprzętowo aby można było osiągnąć próbkowanie 60 M/s, ale nie wiem jak...

    Dodano po 36 [minuty]:

    Update: przyjrzałem się temu kitowi AVT: http://www.sklep.avt.com.pl/photo/_pdf/AVT527.pdf
    Zastosowano w nim układ o max. 60 Msampli/s kosztujący u mnie w sklepie 19 zł, czyli tańszy :P
    Tamten projekt jest oparty na 89C51, więc ARMem myślę, że wyciśniemy z tego układu lepsze parametry (im się udało 1 Msampli).

    Dodano po 12 [minuty]:

    Update: widzę że najwolniejsze piny a AT91SAM7S... mają 12.5 MHz taktowanie, więc jedyną przeszkodą będzie prędkość procesora... Max według datasheeta to 55 MHz.

    Pytanie: ile taktów procesora zajęłoby wykonanie jednego przebiegu poniższej pętli (czyli to co w klamrach)?

    i - 16-bitowa całkowita
    tablica - tablica 8-bitowych całkowitych
    for (i=0;i<65535;i++)
    {
    tablica[i]=wartosc_pinow_od_PA0_do_PA7
    ustawienie sygnalu clk dla zewnętrznego ADC (zanegowanie PA8?)
    }

    ile jeden przebieg takiej pętli zająłby taktów procesora? Jaką częstotliwością da się go realnie taktować?
  • REKLAMA
  • #22 3241250
    _Matik_
    Poziom 19  
    Posty: 390
    Pomógł: 25
    Ocena: 7
    Cytat:
    Jestem pod wrażeniem że udało Ci się coś na FPGA zbudować Ten przetwornik w SAMie ma owszem częstotliwość 8 MHz (ADCClock), ale czas konwersji przy 8 bitach wynosi 1.25 us, czyli 800 KHz.


    No faktycznie... nie wzialem pod uwage ze czas konwersji wynosi 10 cykli procesora plus jeszcze czas akwizycji... to odpada w takim razie.

    Cytat:

    To byłaby ciekawa opcja, ale pytanie: jaką prędkość linii I/O ma ten AT91SAM7S?? Bo jeżeli by taktować rdzeń zegarem 50 MHz to pewnie 5 milionów próbek (10 taktów/próbkę) dałoby się osiągnąć, czyli kilkakrotnie więcej niż wewnętrzny ADC. Można by samo czytanie z ADC rozwiązać jakoś inaczej sprzętowo aby można było osiągnąć próbkowanie 60 M/s, ale nie wiem jak...


    No wlasnie... ja samo czytanie a ADC wykonuje na FPGA, generuje adres do zewnetrznej pamieci i zapisuje probki... tylko trudno stosowac FPGA za 100 zl do projektu ktory ma byc tani (ja uzylem Altera Cyclone, bo taki mam w firmie i ten model ma 240 nozek a ja potrzebowalem duzo nozek bo mam dwie pamieci i 2 ADC dwuportowe + 16 pinow na analizator stanow). Moze daloby sie najprostsza logike zrobic na jakims tanim CPLD, albo na bramkach 74HC (tylko ze z HC ludzie maja problemy bo takie projekty juz powstawaly, no i bardzo to ogranicza mozliwosci i zwieksza ilosc ukladow).
    A jakbys chcial jeszcze zrobic wyzwalanie pomiaru zboczem, poziomem, sygnalem zewnetrznym... to ja tego nie widze bez FPGA... a glownie o to chodzi w oscyloskopie cyfrowym, zebysmy mogli wyzwolic przebieg, zapisac jak najwiecej probek, i podejrzec, inaczej nie ma sensu robic cyfrowego bo lepiej kupic na allegro najtanszy analogowy.

    Cytat:

    Update: widzę że najwolniejsze piny a AT91SAM7S... mają 12.5 MHz taktowanie, więc jedyną przeszkodą będzie prędkość procesora... Max według datasheeta to 55 MHz.


    Procka sie da podkrecic do prawie 100MHz podobno... a z pinami to nie wiem jak jest, trzebaby zrobic testy praktyczne.

    Cytat:

    Pytanie: ile taktów procesora zajęłoby wykonanie jednego przebiegu poniższej pętli (czyli to co w klamrach)?

    i - 16-bitowa całkowita
    tablica - tablica 8-bitowych całkowitych
    for (i=0;i<65535;i++)
    {
    tablica[i]=wartosc_pinow_od_PA0_do_PA7
    ustawienie sygnalu clk dla zewnętrznego ADC (zanegowanie PA8?)
    }

    ile jeden przebieg takiej pętli zająłby taktów procesora? Jaką częstotliwością da się go realnie taktować?


    Niestety tutaj tez by trzeba zrobic testy praktycznie... albo chociaz podejrzec jak kompilator to przetlumaczy i policzyc instrukcje w assemblerze (na AVR to bym zrobil od reki, na assemblerze arma sie nie znam i zajelo by to wiecej czasu)

    Niestety ja mam juz tyle projektow na glowie ze praktycznie slonca nie widze na niebie ostatnio. Narazie bede w wolnych chwilach walczyl z moim oscyloskopem na FPGA zeby nie stal sie kolejnym projektem zamieszkujacym moja szafe.
    Ale temat taniego oscyloskopu jest ciekawy, moze cos z tego powstanie ;].
  • #23 4596061
    Krzychu ADC
    Poziom 15  
    Posty: 97
    Pomógł: 9
    Ocena: 3
    czesc,
    ciekawy temat z tym oscyloskopem,
    pozwolę sobie wznowić wątek ponieważ nurtuje mnie trochę inna kwestia niż w wiekszości poruszane dotychczas, a jednak również bardzo istotna jak nie istotniejsza.
    Oscyloskop cyfrowy musi posiadać tor analogowy w skład którego będą wchodzić: tłumik, bufor, wzmacniacz wstępny, sumator, komparator wyzwalacza ( trigger) i inne wzmacniacze ( o ile któryś z segmentów jest sterowany - sterowane wzmocnienie np sygnałem różnicowym).
    Jak widzicie tą kwestie?
    Może ma ktoś pomysł jak rozwiązać problem silnego wzmacniania szumów za tłumikiem wstępnym ( o dużym stosunku) w przypadku kaskadowego łączenia wzmacniaczy.
    Lub też inny pomysł na próbkowanie zarówno sygnałów o dużych jak i skrajnie małych amplitudach.

    pozdrawiam i liczę na nawrót zainteresowania tematem
  • #24 4596770
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Witaj
    Przełaczasz dzielniki i masz bardzo szeroki zakres. Jeśli trzeba to właczasz wzmocnienie (WO). Jeśli szumy wzmocnienia są stałe, to je uwzględniasz w algorytmie przetwarzania.
    Pozdrawiam
  • #25 4597162
    Krzychu ADC
    Poziom 15  
    Posty: 97
    Pomógł: 9
    Ocena: 3
    Przełączanie dzielników to jest jakieś rozwiązanie ( chociaż bardziej dla stacjonarnej przystawki niż dla przenośnego urządzenia).
    Dla w pełni przenośnego oscyloskopu mogło by to być niewygodne ( a ze względu na oszczędność energii, automatyczne przełączanie za pomocą np przekaźników - nawet niewykonalne)
    Poza tym pozostaje niebezpieczeństwo uszkodzenia stopnia wejściowego gdy pojawi się pik o dużej amplitudzie na niskim zakresie.

    Przymierzam się do wykonania takiego oscyloskopu ( 20 - 30MSPS) więc w dalszym ciągu oczekuję na propozycje i wszelkie pomysły. Być może nie obędzie się bez pomijania tłumika ( za pomocą przekaźnika), chociaz wolał bym tego uniknąć.

    pzdr
  • #26 4599910
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    A czy oscyloskopu kupionego za grube pieniądze takim pikiem wysokiej energii nie możesz załatwić?
    Wszystko zależy od zabezpieczeń: Twoich :) Wstawiasz transila na odpowiednie napięcie i się mocno nie przejmujesz. Nowoczesne przekaźniki nie potrzebują amperów do podtrzymywania styków. I tak więcej energii zmarnujesz na podświetlanie ekranu (jeśli taki masz) albo stabilizację napięcia niż podtrzymanie przekaźnika czy dwóch, W całkiem profesjonalnym sprzęcie przenośnym firmy HP widziałem (słyszałem) przekaźniki. Myślę że te 10mA można poświęcić po to, by sprzęt był o wiele prostrzy. Lepsze to niż zasilanie wzmacniacza operacyjnego z +/-15V i stosowanie sztywnego dzielnika juz na wejściu. Bez przekaźników się nie obejdziesz :)
  • #27 4936601
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości wykorzystania mikrokontrolera ATmega168 (20 MHz) z wbudowanym przetwornikiem A/C do budowy prostego oscyloskopu cyfrowego. Maksymalna częstotliwość próbkowania ADC w ATmega168 wynosi około 76,9 kSPS, co przekłada się na realne próbkowanie do około 38 kHz, co jest niewystarczające do pomiarów szybkich sygnałów i bardziej przypomina szybki woltomierz niż oscyloskop. Wskazano, że mikrokontrolery AVR są zbyt wolne do zaawansowanych oscyloskopów cyfrowych, a lepszym rozwiązaniem są układy FPGA z szybką pamięcią FIFO lub SRAM oraz zewnętrzne szybkie przetworniki ADC (np. TDA8703, ADS830E). FPGA umożliwia synchronizację, wyzwalanie i szybki zapis próbek, co jest kluczowe w oscyloskopach cyfrowych. Alternatywnie proponowano użycie nowoczesnych mikrokontrolerów ARM (np. Atmel AT91SAM7S) z wewnętrznym lub zewnętrznym ADC o wyższej częstotliwości próbkowania (do kilku MHz). W dyskusji poruszono także kwestie toru analogowego oscyloskopu, w tym wzmacniaczy, tłumików, wyzwalaczy i problemów z szumami oraz przełączaniem zakresów pomiarowych. Podkreślono, że budowa oscyloskopu cyfrowego to złożone wyzwanie wymagające kompromisów między szybkością, precyzją, kosztami i złożonością układu. Wskazano, że tanie oscyloskopy cyfrowe o wysokich parametrach są trudne do wykonania, a dla amatorów lepszym rozwiązaniem może być zakup używanego oscyloskopu analogowego. Wątek został wznowiony z pytaniami o rozwiązania toru analogowego i wzmacniania sygnału, a także o sposoby radzenia sobie z dużym zakresem amplitud sygnałów.
Wygenerowane przez model językowy.
REKLAMA