🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #345740

Re: Rpi/Lazarus - odczyt bajtowy

#345740
From: Sebastian Biały
Date: Thu, 20 Apr 2017 18:16
42 lines
3268 bytes
On 4/15/2017 11:29 AM, stchebel@gmail.com wrote:
> Aha!! Chodzi o podłączenie 12-bitowego ADC z wyjściem równoległym, Fs=40MHz (Max.).
> W mojej aplikacji wystarczy Fs=20-30MHz.

Kilka problemów:

a) co z tego ze masz procesor rzedu GHz skoro podpinasz ADC pod 
uniwersalne GPIO co oznacza kilka[nascie|dziesiąt] instrukcji w celu 
zebrania jednego sampla, ba, dodatkowo busyloop na koniec przetwarzania. 
Nie mając żadnego wsparcia w hardware procesor będzie pracował na 
granicy wydajności machając drutami.

b) nie będziesz w stanie *dokładnie* wzbudzać przetwornika bo przy 
takich predkościach procesor będzie nieprzewidywalny. To duży procesor z 
cache, nie ma jak sensownie pisać kodu cycle-exact. Jesteś więc skazany 
na przerwania, w dodatku będa one miały jitter w zalezności od stanu 
cache. I co jeszcze lepsze, procesor który musi przyjąc 30mln przerwań 
na sekundę musi też 30mln razy na sekundę odkładać gdzieś stan. IMHO 
niewykonalne, zakladając nascie cykli na przerwanie nic nie będzie robil 
tylko stosem się bawił.

c) obsługa przetwornika zje cała moc procesora, system w tle będzie 
nieuzywalny, z resztą skoro to system RT to postawienie linuxa nie 
wchodzi w grę, bedzie musiało tam coś banglać ręcznego. Czyli miesiące 
pracy.

d) 30MHz ADC popędzany nieprzewidywalnym jitterem na wyzwalaniu 
próbkowania będzie źrodlem szumu, zapewne na tyle dużego że nie ma sensu 
w dowolnej aplikacji do jakiej jest projektowany. Szum pochodzacy od 
jittera clocka w tym wypadku będzie nieprzewidywalny i wolnozmienny, 
czyli koszmarny.

Mala rada: STM32/whatever, z jednej strony wpięty w USB, z drugiej w 
przetwornik. USB2.0 powinno dać rade przesłać te 30mln próbek/s (pytanie 
czy Pi ma pełną prędkośc na usb i czy stm da radę, ostatecznie Cypress 
produkuje uC z USB dającym radę max). To jest rozwiązanie do d.py ale ma 
jakieś szanse działać. Poprawnie: wziąć Zynq i sampling zrobić w FPGA.

IMHO PI się do tego nie nadaje z wielu powodów. Natomiast nadaje się 
jesli miałby te dane pobierać przez DMA (ethernet albo USB). Ktoś musi 
je wczesniej przygotować podiadajac hardware które do tego służy. bez 
pośredniego kontrolera IMHo to nie wyjdzie.
Technical Details
Message-ID: <odattq$7sq$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <6e8a3eec-fdeb-4e4b-b4a6-3b9e097d8120@googlegroups.com> <1efb49f3-158f-465c-bed5-2e14c097d102@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Sebastian Biały <heby@poczta.onet.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Rpi/Lazarus - odczyt bajtowy
Date: Thu, 20 Apr 2017 20:16:17 +0200
Organization: ATMAN - ATM S.A.
Lines: 43
Message-ID: <odattq$7sq$1@node2.news.atman.pl>
References: <6e8a3eec-fdeb-4e4b-b4a6-3b9e097d8120@googlegroups.com> <1efb49f3-158f-465c-bed5-2e14c097d102@googlegroups.com>
NNTP-Posting-Host: 176.115.85.233
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1492712186 8090 176.115.85.233 (20 Apr 2017 18:16:26 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 20 Apr 2017 18:16:26 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
In-Reply-To: <1efb49f3-158f-465c-bed5-2e14c097d102@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit