Uniwersalna Płytka Analizatora Logicznego

Chyba nie trzeba nikogo przekonywać jak wspaniałym urządzeniem jest analizator stanów logicznych. Ten zostawia daleko w tyle wszystkie wiekowe wersje pod LPT jak i również konstrukcje oparte o AVR z zewnętrzną pamięcią RAM. W zależności od programu obsługującego (analizatora właściwego), potrafi np. zbierać 24 miliony próbek na sekundę z 8 kanałów jednocześnie, a pojemność bufora próbek to po prostu ilość wolnej pamięci RAM w komputerze…


Wstęp

2Osiągi są imponujące, w zupełności wystarczające dla hobbystów czy nawet dla zawodowców. Oferuje błyskawiczne przełączanie się pomiędzy kilkunastoma urządzeniami za pomocą jednego przycisku. Próbki są przesyłane w czasie rzeczywistym przez port hi-speed USB – zalecane jest użycie krótkiego, dobrego jakościowo przewodu USB. Jako że jest to urządzenie klonujące czyjąś ciężką pracę (ale jakże ich wiele na rynku już jest) nie będę wymieniał tutaj nazw tych analizatorów, ale takie informacje można bardzo łatwo znaleźć w sieci :) Wszystkie te konstrukcje wykorzystują praktycznie to samo rozwiązanie, różnią się jedynie elementami dodatkowymi takimi jak bufory czy zabezpieczenia linii. Układ główny, CY7C68013, potrafi przedstawić się w systemie z dowolnym identyfikatorem, który pobiera z dołączonej pamięci eeprom. Więc aby móc wykorzystać te urządzenie z różnymi aplikacjami na PC (jedna jest lepsza w tym, inna w tamtym), trzeba zmienić zawartość tego eepromu. Niektóre klony sprzedawane na rynku posiadają dwie takie pamięci oraz zworkę, dzięki której można zmienić identyfikator. Rozwiązanie niezbyt wygodne no i umożliwia zapis tylko dwóch identyfikatorów, albo dołożenie kolejnych eepromów i zworek. Prezentowana tutaj wersja umożliwia błyskawiczne przełączanie się pomiędzy kilkunastoma urządzeniami za pomocą jednego przycisku, a dodatkowo dla każdego z nich automatycznie ustawia kierunek buforów, tak aby mogły pracować w roli analizatora lub generatora.

Działanie:

Samo przełączanie identyfikatorów jest zrealizowane na malutkim uC AVR, Attiny25. Można uzyć też Attiny13, jest znacznie tańszy. Początkowo wybrany został Attiny25, ponieważ pierwsze założenie było takie, że będzie on po prostu EMULOWAŁ eeprom I2C, przy pomocy wbudowanego modułu USI (universal serial interface) który można też skonfigurować do pracy w trybie I2C – byłby dość szybki aby współpracować w takim układzie. Jego wewnętrzny eeprom miał zostać podzielony na 16 lub 8 bajtowe fragmenty, służące do zapisywania identyfikatorów. Jego praca miała polegać na przełączaniu tych fragmentów pamięci, oraz obsługiwaniu zapisu i odczytu przy emulacji zwykłego eepromu I2C. Czyli – wciskamy przycisk, układ Cypress się resetuje, a w tym samym czasie nasz Attiny zwiększa offset wskazując na kolejny fragment pamięci. Cypress startuje, i odczytuje sobie tę pamięć jako zwykły eeprom, w systemie pojawia się nowe urządzenie.

Zrezygnowano jednak z tej opcji ponieważ nie tyle że była jakoś trudna czy niemożliwa w realizacji, ale pojawił się inny pomysł, znacznie prostszy. Działa to tak:
1. Wciśnięcie przycisku, reset układu Cypress i sygnał dla Attiny.
2. Attiny podtrzymuje stan resetu własnym pinem, aż do zakończenia operacji.
3. Attiny komunikuje się ze zwykłym sprzętowym eepromem I2C na płytce (wspólna szyna I2C), i tak jak poprzednio zwiększa offset, odczytuje nowy (kolejny) identyfikator z wewnętrznej pamięci eeprom, tyle że tym razem zapisuje te dane w sprzętowy eeprom.
4. Attiny przełącza swoje linie I2C w tryb wejść oraz zwalnia reset Cypressa.
5. Cypress startuje i odczytuje identyfikator z eepromu.

Zalety takiego rozwiązania to przede wszystkim o wiele prostsza realizacja, oraz fakt, że aplikacja wgrana w główny układ ma swobodny dostęp do pamięci eeprom, w przypadku emulowania byłoby to mocno ograniczone zarówno programowo, jak i pojemnościowo (mały wew. eeprom Attiny).

Płytka:

1Na płytce znajdują się szybkie dwukierunkowe bufory 74LVC245A, akceptujące napięcie stanu wysokiego w przedziale od 2V do 5.5V, oraz niskiego od 0V do 0.8V, co umożliwia analizę w praktycznie wszystkich układach logicznych pracujących z napięciami TTL. Dodatkowo każde wejście i wyjście bufora posiada zabezpieczenie przed ESD (wyładowania elektrostatyczne). Bufor posiada możliwość przełączenia kierunku pracy wszystkich linii, w zależności od tego czy układ ma pracować jako generator czy jako analizator. Tym zadaniem również zajmuje się nasz Attiny, jego dwa piny sterują kierunkiem obydwu buforów.

Na płytce znajduje się też zworka do wyboru „wielkości” naszej pamięci eeprom, i należy wlutować ją zgodnie z tabelką znajdującą się w nocie układu CY7C68013. Mówi nam ona tyle, że dla pamięci od 16B do 256B (czyli adresowanych bajtem), pin adresowy A0 ustawiamy w dół, a dla pamięci od 4KB do 16KB (adresowanych słowem) w górę. Wynika to ze sposobu adresowania tychże, jeśli pamięć odpowie dla układu pod adresem 160, to wie on że ma do czynienia z adresowaniem bajtami, a jeśli nie, to układ pyta pod adresem 162 – i po odpowiedzi wie że ma adresować ją słowem. Tutaj mała uwaga, nie wszystkie klonowane urządzenia będą potrafiły pracować z większymi pamięciami, przed montażem pamięci należy sprawdzić jaki jej typ pracuje w oryginalne.

Dwustronna płytka o wymiarach 41mm x 61mm, dostosowana do obudowy typu Z-24A. Płytka ze zdjęć jest w rewizji pierwszej, więc różni się od tej z załącznika (rev 1.1) i można się nią sugerować, zmiany są niewielkie, przesunięto otwory montażowe aby „lepiej pasowały” do obudowy Z-24A, usunięto zworkę wyboru linii I2C, eeprom/attiny, oraz zmieniono pin resetujący układ główny tak aby nie kolidował z ISP (spore problemy z programowaniem). Na płytkach ze zdjęć znajduje się tylko jeden bufor, a to z prostego powodu – pomyliłem się przy zamówieniu :) Aplikacje z których jednak korzystam nie obsługują drugiego kanału, więc się tym nie przejmuję. W zasadzie to drugi kanał dodany został na zapas.

Identyfikatory:
Każdy identyfikator urządzenia składa się z numerów VID oraz PID, przedstawiających urządzenie w systemie. Zmiana tych numerów spowoduje przedstawienie się jego w systemie jako inne urządzenie, np. jako inny analizator czy generator. Zapis dla CY7C68013 wygląda tak:
C0 B4 04 13 86 00 00 00
C0 – mówi że po nim następują numery VID i PID
B4 04 – numer VID
13 86 – numer PID
00 00 00 – ustawienia dla układu, nie istotne, ale dobrze jest wpisać w nie zera.
Powyższy identyfikator to „EZ-USB FX2LP”, czyli nasz chip Cypress ( także w przypadku gdy eeprom będzie pusty) dzięki temu będzie widziany w Konsoli EZ-USB
Należy pamiętać, że bajty w słowach identyfikatorów przy podawaniu należy zamienić miejscami – zapis w formie LITTLE ENDIAN. Czyli, prawdziwe identyfikatory dla tego urządzenia to „04B4 8613” i tak też będą widziane w systemie.

Lista identyfikatorów urządzeń została umieszczona w pamięci eeprom Attiny, nie dla tego że zabrakło miejsca w pamięci programu (program zajmuje 462 bajty, jest do bólu prosty), lecz dla tego że taką pamięć jest chyba łatwiej sczytać i edytować nawet zwykłym edytorem binarnym, aniżeli przekompilowywać kod – nie każdy przecież się musi na tym znać, ale zakładam że jeśli ktoś czyta ten opis, to edytor binarny nie jest mu obcy :) Wygląda to tak jak na poniższym obrazku:

Jak widać pamięć została „podzielona” na 8 bajtowe fragmenty, czyli wpisując identyfikatory, bajt 0xC0 powinien zawsze znajdować się co 8 bajtów, czyli pod adresami 00, 08, 10, 18 itd (hex). Program najpierw sprawdza czy pierwszy bajt to 0xC0 – a jeśli nie to uznaje że dotarł do końca listy i skacze pod adres 00. Na przykładzie wyżej widać konstrukcję pliku eeprom. Znajduje się w nim 7 identyfikatorów różnych urządzeń, każdy zaczyna się od bajtu 0xC0 oraz każdy zajmuje 8 bajtów.

Kierunki buforów ustala się najmłodszymi bitami w ostatnim bajcie identyfikatora. Bit 0 to kierunek kanału pierwszego (0-7), a bit 1 to kierunek kanału drugiego (8-15). Resetując te bity, ustawiamy kanał jako wejście, a ustawiając, jako wyjście. Jeśli jedno urządzenie / aplikacja może pracować jako analizator lub generator, a samo w sobie w oryginale nie ma bufora, tutaj musimy wpisać dla niego dwa takie same identyfikatory, lecz z różnym ustawieniem buforów. Czyli za pierwszym naciśnięciem dostaniemy urządzenie X mogące pracować jako wejście, za drugim także urządzenie X pracujące jako wyjście. Na ten przykład, 128B pamięć eeprom Attiny25 pomieści 15 identyfikatorów – ostatnia 8 bajtowa przestrzeń używana jest przez kod do zapisu ustawień. 64B pamięć Attiny13 pomieści 7 identyfikatorów.


Montaż, uruchomienie:

5Składamy wg schematu. Układ Cypress polecam lutować jakimś zwykłym płaskim grotem z ogromną ilością topnika, metodą pobielania padów i dociskania nóżek, pokazaną TUTAJ. Staranny montaż zapewni łatwiejsze uruchomienie w razie kłopotów. Nie polecam zostawiać topnika pod układem, a płytkę dokładnie umyć, w szczególności okolice rezonatora i jego kondensatorów. Układ CY7C68013 jest dość kapryśny jeśli popełnimy jakiś niewielki błąd, i zwyczajnie w systemie się nie przedstawi. TUTAJ znajduje się nota AN15456 w której opisano możliwe problemy i wypunktowano ich rozwiązywanie, gdyby układ nie chciał przedstawić się w systemie.

Samo uruchomienie polega po prostu na zainstalowaniu sterownika do urządzenia zgodnego z naszym aktualnym identyfikatorem. Na początek polecam zainstalować konsolę EZ-USB (układ oczywiście musi się przedstawić z odpowiednim dla niej identyfikatorem, podanym wyżej w przykładzie, lub pustym eepromem). Uwaga, sterownik nie jest podpisany, i na systemach win vista czy win 7 będzie trzeba ten sterownik wskazać mu siłą, bo system może wykryć urządzenie jako nieznane a my będziemy szukali błędów na płytce.

Galeria:

A tak wygląda zmiana identyfikatorów (na filmie są zmieniane losowo, błąd w pierwszej wersji programu)

Pliki:
POBIERZ – Pliki eagle 5.10: PCB, SCH, alternatywne PDF rewizja 1.1
Wsad HEX, pliki źródłowe BAS wersja 1.03.



5.00 avg. rating (96% score) - 1 vote

46 komentarzy

  1. Witam. Zainstalowałem znaleziony na stronie Cypress’a sterownik dla win7 64bit. Urządzenie jest poprawnie wykrywane przez system niestety konsola EZ-USB go nie widzi. Masz jakiś pomysł?

    • Hmm ten problem rozwiązałem ale mam inny: w pamięci eeprom mam VID/PID dla USBee AX. Po podpięciu kabla usb wszystko działa, lecz odpalenie USBee powoduje zmianę zapisanego VID/PID i po ponownym podpięciu układ zgłasza się jako nieznane urządzenie i muszę wgrywać od nowa VID/PID. Na płytce mam dwie pamięci eeprom przełączane zworką. Ma ktoś pomysł czemu zmienia mi się VID/PID? Eeprom z numerami od Saleae działa normalnie.

    • Nie wiem czemu tak się dzieje, być może jakieś zabezpieczenie programu… w przypadku przedstawianego tutaj układu nie ma to znaczenia, bo eeprom za każdym razem jest uzupełniany odpowiednimi danymi :)

  2. Witam.
    A jaki program jest do obsługi tego analizatora.
    Jakie parametry ma analizator.
    Czy obsługuje jakieś protokoły tzn. dekoduje?

    • Witaj.

      Żeby była jasność, układ sam w sobie nie jest analizatorem, a jedynie płytką, dzięki której można sklonować komercyjne rozwiązania oparte o ten chip. Zdecydowałem że nie będę publikował szczegółów na ten temat, bo jak by nie patrzeć jest to czyjaś praca – jednakże w sieci można znaleźć mnóstwo informacji na ten temat.

      Ten wątek będzie pomocny: http://diy.elektroda.eu/forum/viewtopic.php?f=1&t=10

      Dwa najpopularniejsze to Saleae oraz Usbee (parametry oraz obsługiwane protokoły znajdują się na ich stronach).

  3. witam,
    czy płytka jest wykonana przez Ciebie? skąd nabyłeś CY7C68013 w tej obudowie???

  4. Zastanawiam się czemu na pcb w rarze projektu nie zawiera warsty miedzi na masę? (przeoczenie czy coś innego).

    Z ciekawości spróbowałem zrobić płytkę termotransferem (płytka nr 2 termotransferem w mojej karierze ;) … o ile nawet się udało to nie zauważyłem owego braku miedzi. Drugi problem z padami przelotek, kłopot z takim tycim wiertełkiem. Chyba skończy się na zamówieniu pcb w jakiejś firmie.

    • Jeśli chodzi o pole miedzi w pliku .brd, to po załadowaniu projektu w eagle, należy kliknąć na przycisk „ratsnest” – podstawy obsługi :)

      Nie podejmowałbym się wykonania takiej płytki w warunkach domowych :)

  5. W domu nawet da radę ją zrobić tylko przelotki trzeba by ciut powiększyć i poprzesuwać bo z nimi (wiercenie) największy wyszedł mi problem. Reszta wyszła całkiem znośnie, w tym pady pod cypressa.

    „ratsnest” – działa choć idea takiego rozwiązania w (podobno taka sama w wielu programach pcb jak i w) eagle jest mi nieznana :-)

    • Wiercenie wierceniem, ale co z połączeniem tych przelotek pod cypressem? Będzie trochę odstawał :)

      A powiedz, zamawiałeś układ z ebay? Ile Ci to wyszło?

  6. Trzeba będzie polutować przelotki na płasko (ew. rezultat trochę spłaszczyć pilnikiem/papierem ściernym). Myślę, że da radę – będzie eksperyment :-)

    Jeszcze nie kupowałem – najpierw próby z płytką, jak coś wyjdzie to na ebayu cypress jest po 40-50zł z przesyłką. Taniej ciężko znaleźć.

  7. … aha, te cypressy są taniej (CY7C68013A-56PVXC – 27zł z przesyłką) no ale to inna obudowa, przerabianie płytki etc.

    • Tak zgadza się płytka została zaprojektowana pod te większe dla tego że takie układy mieliśmy. Myślę że można się pokusić o przeprojektowanie pod te tańsze, wtedy więcej osób by się tym zainteresowało. Nie wiem jednak kiedy znajdę czas bo pewnie calutka płytka do zmiany będzie.

  8. Witam,
    które rezystory 0R należy wlutować dla pamięci AT24C02? Po uruchomieniu płytki i zainstalowaniu sterowników układ przedstawia się jako Cypress EZ-USB FX2LP No EEPROM(3.4.5.000). Wciskanie przycisku nie powoduje żadnych zmian.

    • Na linii SDA obydwa (R7 i R6), a linię A0 ustawić należy zgodnie z pojemnością kości – tj. R5 dla adresowanych bajtem, lub R6 dla adresowanych słowem. Polecam te pierwsze bo nie każdy analizator będzie na dużych chciał pracować.

      Przycisk jest bezpośrednio połączony z nogą reset cypressa, więc układ powinien się przynajmniej rozłączać.

  9. Na linii SDA wlutowałem obydwa, na linii A0 wlutowanie R8 nic nie zmieni gdyż jego pady są połączone, lecz dla pewności przlutowałem. W przypadku wlutowania R5, Vcc i GND zostanie zwarte. Niestety nie rozwiązuje to problemu. Po wciśnięciu przycisku układ się rozłącza i nic się nie zmienia.

    • Tak więc pozostaje źle zaprogramowany procesor.

      …aha, chwileczkę, jeśli masz zwarty R8 to znaczy że wlutowałeś kość eeprom adresowaną słowem? Jakiej pojemności, jeszcze dopytam? Kod z załącznika pracuje z kości adresowanymi bajtem, jak zajrzysz w źródło to zobaczysz zakomentowany fragment kodu który powinien działać z twoim eepromem. Po prostu usuwasz komentarz z „init i2c eeprom (word addressed)” i zakomentowujesz fragment „init i2c eeprom (byte addressed)”.

  10. Wsad dla procesora Attiny 13A należy zmienić czy można wgrać oryginalny z załącznika?

    • Rezystor R8 jest zwarty na stałe. Tak jest w wersji płytki z załącznika. Jego wlutowanie czy wylutowanie nic nie zmieni gdyż jego pady i tak pozostaną zwarte. Rezystora R5 nie można wklutować gdyż zewrze on linie Vcc i GND ponieważ rezystor R8 jest zwarty. Moja pamięć to http://www.tme.eu/pl/details/at24c02c-sshm-b/pamieci-eeprom-szeregowe/atmel/# o pojemności 2kbit.

    • No, to kolego, adres A0 należy ustawić zgodnie z tym co wyżej napisałem, w nocie Twojej pamięci też to będzie. Ścieżka między padami to tylko domyślne ustawienie, jeśli nie odpowiada to scieżkę ciach i ustawiamy po swojemu.

      Program skompilowany pod attiny25 oczywiście nigdy w życiu nie ruszy pod attiny13. Nie uruchamiałem tego kodu na attiny13 i podejrzewam że po za zmianą deklaracji procesora będzie wymagał jeszcze innych zmian takich jak prędkość taktowania i zmianę kolejności portów, niestety nie mam przy sobie żadnych dokumentacji żeby to porównać. Rozumiem że będziesz potrzebował przy tym pomocy?

  11. Piny nie różnią się w obu procesorach. Z przerobieniem programu nie dam rad, nigdy nie pisałem w Bascomie..

    • Ok w poniedziałek postaram się przekompilować to pod T13 ale nie obiecuję.

    • Kupiłem już Attiny25, zaprogramowałem i przylutowałem. Niestety nadal jest kłopot, urządzenie nie zostaje rozpoznane przez system. Jaką pamięć kolega zastosował w układzie? Być może moja jest nieodpowiednia.

    • Pamięć spełnia wymóg 400kHz przy 3.3V więc jest ok. Czy procek na pewno jest dobrze zaprogramowany? Zawartość jego pamięci eeprom również musi zostać zapisana (plik eep).

    • Procesor zaprogramowany, także eeprom, weryfikacja przeszła pomyślnie, fusy takie jak fabryczne. Rezystory 0R przylutowane: R6, R7, R5, ścieżka zwierająca pady lutownicze R8 przecięta. Po sprawdzeniu miernikiem wszystko jest ok. Sprawdziłem wszystko pod względem montażu i nie zaauważyłem błędów. Po podlączeniu do komputera układ przedstawia się jako EZ-USB FX2LP No EEPROM. Przyciśnięcie przycisku powoduje zniknięcie układu z listy menedżera urządzeń, po dłuższej chwili pojawia się komunikat o awarii urządzenia USB następnie pojawia się nieznane urządzenie.

    • Chciałem podesłać Ci link gdzie opisywałem jak ręcznie zmienić zawartość eepromu poprzez konsolę EZ-USB – http://mdiy.pl/forum/viewtopic.php?p=194

      Niestety od przenosin serwera stare załączniki nie działają na forum i nie wiem jak to naprawić, w podlinkowanym poście był jeszcze obrazek z oznaczonymi przyciskami w programie, ale może poradzisz sobie bez niego. Jest też taki link http://www.cypress.com/?id=4&rID=34121 do instrukcji na ich stronie.

      Możesz w ten sposób ręcznie zmienić zawartość eepromu i zobaczyć co się stanie. Najlepiej odepnij I2C attiny wylutowując zworkę, tak aby nie namieszała przy resecie, i będzie wiadomo czy układ w ogóle chce startować z innymi PID i VID.

      Jaki masz system operacyjny w komputerze? Podobno na tych inteligjentnych (powyżej XP) urządzenie potrafi się właśnie przedstawić jako nieznane lub nawet z błędem, jeśli na siłę nie poda się sterowników. Sam tego nie mogę potwierdzić bo jadę na XP ale znajomy który to uruchamiał przeszedł przez masę problemów a chodziło o sterownik. Ewentualnie jak pojawi się jako „nieznane” to zajrzyj w menedżerze, właściwości, i powinien być podany VID i PID.

    • Mój system operacyjny to Windows 7 x64. Po podłączeniu zasilania identyfikator to USB\VID_04B4&PID_8613 więc wszystko się zgadza. Po wciśnięciu przycisku identyfikator zmienia się na USB\VID_0000&PID_0000\5&1E41AFF0&0&4 więc coś jest nietak.. Znalazłem trochę czasu (sesja) i zaprogramowałem procesor (pliki hex i eep), weryfikacja przeszła pomyślnie. Przylutowałem nowy, więc jestem na sto procent pewny, że procesor jest sprawny i odpowiednio zaprogramowany. Pamięć także zmieniłem na AT24C04N. Rezystory 0R wlutowane: R5, R6, R7. Może coś nietak z plikiem eep z załącznika? Sam już nie wiem gdzie szukać błędu.

    • Zajrzałem do pierwszej z brzegu noty AT24C04N napisano w niej że 400kHz jest dostępne przy 5V, przy niższych napięciach tylko 100kHz. A ma być 400kHz przy 3.3V. Ale podejrzewam że nie jest to pełne oznaczenie, musisz odszukać jej właściwą notę i sprawdzić.

      Plik eepromu jest w formacie HEX i taki trzeba wybrać w programatorze, być może był wgrywany jako binarny?

      Po przyciśnięciu przycisku zgłasza się z wyzerowanym PID i VID, ale po odcięciu i ponownym podłączeniu zasilania znów jest identyfikator fabryczny? Jeśli tak, to znaczy że program działa ale nie daje rady nic zapisać do pamięci.

      Czy możesz wykonać instrukcje z mojej wcześniejszej odpowiedzi, wtedy będziemy wiedzieli czy do pamięci jest coś zapisywane i co.

    • Był wgrywany jako binarny niestety..
      Chciałem spróbować wgrać wszystko za pomocą BASCOM jednak gdy kompiluje program wyskakuje błąd w liniach:
      Portb.1 = Buffers.0 ERAM variable can not be esed [BUFFERS.0]
      Portb.3 = Buffers.1 ERAM variable can not be esed [BUFFERS.1]

      Programowałem wcześniej za pomocą AVR Burn-O-Mat w Flash wybierałem plik 1.03.hex, następnie write i werify. Następnie wybierałem eeprom ze wskazaniem pliku 1.03.eep (pliku 1.03.hex nie da się wgrać) i podobnie jak wcześniej write i werify.

      Podejrzewam, że dobrze zaprogramować mogę wszystko przez BASCOM po skompilowaniu programu.

      Za jakiś tydzień będę miał dostęp do programatora EEPROM więc wylutuję pamięć, zaprogramuję i sprawdzę czy działa.

    • No i tu jest pies pogrzebany. Wybierz plik 1.03.eep a obok zmień typ na Intel HEX i pójdzie dobrze. Program może nie rozpoznawać bascomowskiego rozszerzenia eep.

      Program kompiluje się ok, nie pamiętam na jakiej wersji bascoma, ale na pewno coś z tych nowych 2.0.cośtam. Być może masz starszy.

  12. Trafiłem tu przez przypadek w sumie i po pierwszym akapicie mam od razu pytanie:

    „…potrafi np. zbierać 24 miliony próbek na sekundę z 8 kanałów jednocześnie…”
    24*8*8=1,5Gb/s
    jak to możliwe?? A są to tylko dane 8 bitowe. Jeśli przetwornik jest więcej bitowy? powiedzmy 2 bajty a nie jeden (do 16 bitów) to daje nam 3Gb/s, a dolicz jeszcze protokół (warstwa aplikacji, fizyczna…) to prędkość do obsługi takiego próbkowania musiałaby wzrosnąć jeszcze o kilkanaście albo kilkadziesiąt procent….
    Jak to możliwe, żeby przez usb tyle osiągnąć?

    • OK, widzę swój błąd, to nie przetwornik:) a 8 kanałów to jeden bajt, co daje 24*8=192 Mb/s danych + protokół co i tak jest mocno wyśrubowaną prędkością, nawet dla USB3.

  13. P.S. Co ja gadm przez usb, jak pecet to obsłuży???

  14. Nie wnikałem w Twoje obliczenia, ale jeśli 192Mb/s podzielimy jeszcze przez 8 to wyjdzie 24MB/s co USB2.0 obsłuży – chyba że to wcześniejsze to literówka :)

    Masz rację nie da się przesłać tyle próbek, w rzeczywistości wygląda to tak że jeśli walimy na 8 kanałach jednocześnie bardzo gęste zmiany stanów to po chwili program proponuje niższe próbkowanie bo z takim sobie nie radzi. W zacytowanym przez Ciebie opisie jest błąd, powinno być „do 24 milionów próbek” – w angielskiej wersji opisu jest poprawnie a tu się walnąłem.

    Na szczęście, w praktyce nie miałem jeszcze potrzeby badania urządzenia które obracało by taką ilością danych, jeśli było szybko to tylko na jakimś SPI, a jeśli było dużo kanałów to jakaś transmisja równoległa ale wolniejsza. Działa to tak że przesyłane są tylko faktyczne dane a puste próbki omijane, dzięki temu przepustowość USB jest wykorzystywana elastycznie.

    Co do PC, jeśli jest szybki to poradziłby sobie z odbiorem takich danych bez problemu, ale 2GB RAM zapełniłby w kilka sekund.

  15. Propaganja

    Masz może do sprzedania pcb i resztę elementów od tego cuda, albo gotową płytkę?

  16. Powielam pytanie o PCB. Odkupiłbym 2szt

  17. Czy analizator działa w trybie 16bit’ow ?

  18. Bardzo mi sie podoba wykonanie tego analizatora, czy jest mozliwosc kupienia od Pana tego urzadzenia i w jakiej cenie??

  19. Skąd można pobrać programy do obsługi tego urządzenia?

  20. Tak dziś przypadkiem mi to w oko wpadło że to Cypress. Mam oryginalną UPA z Elrasoft`u i ją można rozłożyć. Otrzymujemy osobny moduł z Cypressem i gniazdem 40 pinowym. Musze sie temu przyjrzeć albo znaleźć schamat do UPA. Zgłasza się jako EEprom Missing ale można by z UPA jeszcze coś nowego wyciągnąć ;)

  21. Witam,
    Czy nie uzyskam podobnych możliwości z analizatorem 8 kanałowym firmy Saleae (i jego klonowi) ?

  22. Witajcie, planuję budowę tego analizatora i prawdopodobnie będę zamawiał płytki w firmie. Z tego co widzę koszt 10szt to 13$. Gdyby ktoś chciał kupić PCB to proszę o kontakt, o ile cena produkcji się nie zmieni to jedna sztuka będzie po 1.3$ + wysyłka czym kto chce.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę pozostawić te dwa pola tak jak są: