Thread View: pl.comp.lang.delphi
16 messages
16 total messages
Started by stchebel
Sat, 15 Apr 2017 08:05
Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Sat, 15 Apr 2017 08:05
Date: Sat, 15 Apr 2017 08:05
12 lines
1847 bytes
1847 bytes
Witam, Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... Trochę irytujące jak na 2-rdzeniowy procesor zasuwający w okolicach 1GHz.. Czy da się zrobić odczyt równoległy słowa 8/16-bitowego w jakiś sensowny sposób na Rpi korzystając z Lazarusa? Jeżeli tak, to bardzo proszę o wskazówki. Jeżeli TAK, to jak zdefiniować/przypisać konkretne piny GPIO do odpowiednich bitów w słowie 8/16 bitowym? A tymczasem.. Wesołych i Smacznych Świąt !!
Re: Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Sat, 15 Apr 2017 09:29
Date: Sat, 15 Apr 2017 09:29
17 lines
2561 bytes
2561 bytes
W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał: > Witam, > Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... > > Trochę irytujące jak na 2-rdzeniowy procesor zasuwający w okolicach 1GHz.. > > Czy da się zrobić odczyt równoległy słowa 8/16-bitowego w jakiś sensowny sposób na Rpi korzystając z Lazarusa? Jeżeli tak, to bardzo proszę o wskazówki. > > Jeżeli TAK, to jak zdefiniować/przypisać konkretne piny GPIO do odpowiednich bitów w słowie 8/16 bitowym? > > A tymczasem.. > > Wesołych i Smacznych Świąt !! ============ Aha!! Chodzi o podłączenie 12-bitowego ADC z wyjściem równoległym, Fs=40MHz (Max.). W mojej aplikacji wystarczy Fs=20-30MHz. Mam co prawda sprawdzone wyjście awaryjne, transmisja przez USB z wykorzystaniem FT2232H, 35MB/s bez problemu w trybie synchro FT245, ale z pewnych powodów bardziej by mi pasiło zrobić to na GPIO/Rpi. Da się ?
Re: Rpi/Lazarus - odczyt bajtowy
Author: Sebastian Biały
Date: Sat, 15 Apr 2017 13:44
Date: Sat, 15 Apr 2017 13:44
4 lines
1198 bytes
1198 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.). Zmien grupę na pl.misc.elektronika. Z Delphi nie ma to nic wspólnego.
Re: Rpi/Lazarus - odczyt bajtowy
Author: miab
Date: Sat, 15 Apr 2017 15:49
Date: Sat, 15 Apr 2017 15:49
24 lines
2391 bytes
2391 bytes
W dniu 15.04.2017 o 11:29, stchebel@gmail.com pisze: > W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał: >> Witam, >> Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... >> >> Trochę irytujące jak na 2-rdzeniowy procesor zasuwający w okolicach 1GHz.. >> >> Czy da się zrobić odczyt równoległy słowa 8/16-bitowego w jakiś sensowny sposób na Rpi korzystając z Lazarusa? Jeżeli tak, to bardzo proszę o wskazówki. >> >> Jeżeli TAK, to jak zdefiniować/przypisać konkretne piny GPIO do odpowiednich bitów w słowie 8/16 bitowym? >> >> A tymczasem.. >> >> Wesołych i Smacznych Świąt !! > > ============ > > Aha!! Chodzi o podłączenie 12-bitowego ADC z wyjściem równoległym, Fs=40MHz (Max.). W mojej aplikacji wystarczy Fs=20-30MHz. Mam co prawda sprawdzone wyjście awaryjne, transmisja przez USB z wykorzystaniem FT2232H, 35MB/s bez problemu w trybie synchro FT245, ale z pewnych powodów bardziej by mi pasiło zrobić to na GPIO/Rpi.. Da się ? > Szukałeś może w internacie na temat wiringpi ? Poważnie da się wyciągnąć 35MB/sec na usb z raspberry pi? miab
Re: Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Sat, 15 Apr 2017 22:03
Date: Sat, 15 Apr 2017 22:03
11 lines
1985 bytes
1985 bytes
W dniu sobota, 15 kwietnia 2017 15:44:11 UTC+2 użytkownik Sebastian Biały napisał: > 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.). > > Zmien grupę na pl.misc.elektronika. Z Delphi nie ma to nic wspólnego. Nie masz racji Sebastianie. "Odrutowanie" ADC=>Rpi_GPIO, to trywialny temat. Po prostu przypinamy się do dostępnych pinów GPIO i tyle.. Dokumentację techniczną masz tutaj: https://botland.com.pl/index.php?controller=attachment&id_attachment=1836 Nie ma co gitary zawracać na elektronice, bo z tego punktu widzenia sprawa jest prosta jak przysłowiowa "budowa cepa". Problemem jest soft..
Re: Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Sat, 15 Apr 2017 22:29
Date: Sat, 15 Apr 2017 22:29
36 lines
3819 bytes
3819 bytes
W dniu sobota, 15 kwietnia 2017 17:52:27 UTC+2 użytkownik miab napisał: > W dniu 15.04.2017 o 11:29, stchebel@gmail.com pisze: > > W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał: > >> Witam, > >> Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... > >> > >> Trochę irytujące jak na 2-rdzeniowy procesor zasuwający w okolicach 1GHz.. > >> > >> Czy da się zrobić odczyt równoległy słowa 8/16-bitowego w jakiś sensowny sposób na Rpi korzystając z Lazarusa? Jeżeli tak, to bardzo proszę o wskazówki. > >> > >> Jeżeli TAK, to jak zdefiniować/przypisać konkretne piny GPIO do odpowiednich bitów w słowie 8/16 bitowym? > >> > >> A tymczasem.. > >> > >> Wesołych i Smacznych Świąt !! > > > > ============ > > > > Aha!! Chodzi o podłączenie 12-bitowego ADC z wyjściem równoległym, Fs=40MHz (Max.). W mojej aplikacji wystarczy Fs=20-30MHz. Mam co prawda sprawdzone wyjście awaryjne, transmisja przez USB z wykorzystaniem FT2232H, 35MB/s bez problemu w trybie synchro FT245, ale z pewnych powodów bardziej by mi pasiło zrobić to na GPIO/Rpi.. Da się ? > > > > Szukałeś może w internacie na temat wiringpi ? To akurat nie jest problem. "Podrutować" można to w zasadzie byle jak. No co prawda zgodnie z dokumentacją: https://botland.com.pl/index.php?controller=attachment&id_attachment=1836 > Poważnie da się wyciągnąć 35MB/sec na usb z raspberry pi? > Dobre pytanie!! Protokół USB nie jest protokołem "przerwaniowym", gdzie przeskok do procedury obsługi urządzenia następuje natychmiast po wystąpieniu jakiegoś zdarzenia. USB, to "scheduled protocol", no i co jakiś czas OS odpytuje dostępne urządzenia, czy mają coś do powiedzenia. Częstotliwość owego odpytywania jest dosyć mizernawa. 1ms lub jak kto woli 1kHz.. Ale!! Jak już się dorwiemy do urządzenia, to możemy zapychać po LVDS na poziomie Gb/s. I nie ma znaczenia czy jest to Rpi, czy cokolwiek innego. Jeżeli spełnia normy protokołu USB, to jest OK. W mojej aplikacji wygląda to tak: ADC=>FPGA=>FT2232H=>Dowolny pecet. Pomostem pomiędzy moim badziewiem, a światem zewnętrznym (pecetem) jest kostka FT2232H. W trybie FT245 synchro, spokojnie wyciskam ~35MB/s.Słownie: MegaBajtów. Poważnie !!
Re: Rpi/Lazarus - odczyt bajtowy
Author: Sebastian Biały
Date: Sun, 16 Apr 2017 18:11
Date: Sun, 16 Apr 2017 18:11
9 lines
1626 bytes
1626 bytes
On 4/16/2017 12:03 AM, stchebel@gmail.com wrote: >> 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.). >> Zmien grupę na pl.misc.elektronika. Z Delphi nie ma to nic wspólnego. > Nie masz racji Sebastianie. "Odrutowanie" ADC=>Rpi_GPIO, to trywialny temat. Ale potencjalnych ludzi którzy to dalej robili w C znajdziesz własnie na pl.misc.elektronika. Innymi slowy szanse rosną na osoba która miała z tym do czynienia, lub z podobnym problemem.
Re: Rpi/Lazarus - odczyt bajtowy
Author: konsul41
Date: Tue, 18 Apr 2017 06:16
Date: Tue, 18 Apr 2017 06:16
27 lines
2747 bytes
2747 bytes
W dniu 16-04-2017 o 00:03, stchebel@gmail.com pisze: > W dniu sobota, 15 kwietnia 2017 15:44:11 UTC+2 użytkownik Sebastian Biały napisał: >> 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.). >> >> Zmien grupę na pl.misc.elektronika. Z Delphi nie ma to nic wspólnego. > > Nie masz racji Sebastianie. "Odrutowanie" ADC=>Rpi_GPIO, to trywialny temat. Po prostu przypinamy się do dostępnych pinów GPIO i tyle.. Dokumentację techniczną masz tutaj: > > https://botland.com.pl/index.php?controller=attachment&id_attachment=1836 > > Nie ma co gitary zawracać na elektronice, bo z tego punktu widzenia sprawa jest prosta jak przysłowiowa "budowa cepa". Problemem jest soft.. > Jeżeli dobrze cię zrozumiałem to "Rpi" => Raspberry Pi czyli elektronika z Linuxem na pokładzie, tak? Jeżeli tak to dostęp do pinów procesora nie jest bezpośredni tylko za pomocą sterowników (chyba, że są inne sposoby), sterowniki tworzą odpowiednie pliki w drzewie katalogów /proc itd..., więc nie chodzi o samo "Odrutowanie". Więc jak chcesz mieć bezpośredni dostęp do pinów bez sterownika? i dobrze radzą ci idź na pl.misc.elektronika, przynajmniej powiedzą Ci gdzie szukać. Jak będziesz miał sterownik to wtedy można rozmawiać o dostępie do "ADC=>Rpi_GPIO". --- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Tue, 18 Apr 2017 20:40
Date: Tue, 18 Apr 2017 20:40
32 lines
3341 bytes
3341 bytes
W dniu wtorek, 18 kwietnia 2017 08:16:18 UTC+2 użytkownik kons...@wp.pl napisał: > Jeżeli dobrze cię zrozumiałem to "Rpi" => Raspberry Pi czyli > elektronika z Linuxem na pokładzie, tak? Dokładnie!! > Jeżeli tak to dostęp do pinów procesora nie jest bezpośredni tylko za > pomocą sterowników (chyba, że są inne sposoby), sterowniki tworzą > odpowiednie pliki w drzewie katalogów /proc itd..., więc nie chodzi o > samo "Odrutowanie". Jak już wcześniej w jakimś innym wątku pisałem, "mistrzem" w sofcie nie jestem. Wiadomo jednak, że wiele możliwości jest uzależnionych od OS'a. No to może inaczej: ADC[0] => jest przypięte/podrutowane => Rpi_GPIO[n] ADC[1] => jest przypięte/podrutowane => Rpi_GPIO[n+1] I tak dalej aż do (n+m-1). Dla słowa (n-1, "drutowego"). > Więc jak chcesz mieć bezpośredni dostęp do pinów bez sterownika? Nie rozumiemy się.. Chodzi o to : jak poukładać przypisanie odpowiednich pinów do odpowiednich bitów słowa odczytywanego, aby słowo typu (byte) było odczytywane do jakiejś tam zmiennej w jednym takcie. Po prostu chcę zrobić odczyt słowa n-bitowego, a nie 1-dno bitowego w jednej instrukcji.. No i żeby za tą instrukcją nie stało "pierdyljon" instrukcji na poziomie podstawowym (assembler).. Innymi słowy, po zdefiniowaniu/przypisaniu GPIO do konkrentnych pinów, chciałbym zrobić w miarę szybko, czyli na ile jest to możliwe słowa wystawianego przez ADC, przypięte "gdziekolwiek" do dostępnych, ale sensownych GPIO.. > i dobrze radzą ci idź na pl.misc.elektronika, przynajmniej powiedzą Ci > gdzie szukać. Jak będziesz miał sterownik to wtedy można rozmawiać o > dostępie do "ADC=>Rpi_GPIO". > > --- > Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. > https://www.avast.com/antivirus
Re: Rpi/Lazarus - odczyt bajtowy
Author: konsul41
Date: Wed, 19 Apr 2017 06:21
Date: Wed, 19 Apr 2017 06:21
22 lines
2798 bytes
2798 bytes
> Nie rozumiemy się.. Chodzi o to : jak poukładać przypisanie odpowiednich pinów do odpowiednich bitów słowa odczytywanego, aby słowo typu (byte) było odczytywane do jakiejś tam zmiennej w jednym takcie. Po prostu chcę zrobić odczyt słowa n-bitowego, a nie 1-dno bitowego w jednej instrukcji.. No i żeby za tą instrukcją nie stało "pierdyljon" instrukcji na poziomie podstawowym (assembler).. > > Innymi słowy, po zdefiniowaniu/przypisaniu GPIO do konkrentnych pinów, chciałbym zrobić w miarę szybko, czyli na ile jest to możliwe słowa wystawianego przez ADC, przypięte "gdziekolwiek" do dostępnych, ale sensownych GPIO.. >> i dobrze radzą ci idź na pl.misc.elektronika, przynajmniej powiedzą Ci >> gdzie szukać. Jak będziesz miał sterownik to wtedy można rozmawiać o >> dostępie do "ADC=>Rpi_GPIO". Masz racje nie rozumiemy się. Linux ma podobny model dostępu do GPIO jak Windows. Bez sterownika ani rusz. Innymi słowy nie ma bezpośredniego dostępu do pinów GPIO, tym bardziej nie ma mowy o taktach procesora. Poczytaj sobie http://bitpassion.blogspot.com/2013/08/programowanie-sterownikow-pod-linux.html lub poszukaj sterownika, który da Ci dostęp do pinów procesora( coś na zasadzie givio w WinAVR pod XP i dostęp do LPT). --- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Rpi/Lazarus - odczyt bajtowy
Author: darekm
Date: Wed, 19 Apr 2017 09:23
Date: Wed, 19 Apr 2017 09:23
17 lines
2169 bytes
2169 bytes
W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał: > Witam, > Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... Pewnie że się da. Można to zrobić bezpośrednio odwołując się do rejestrów doczytaj dokumentację BCM2835 w bibliotekach typu HAL są przykłady odwołań bezpośrednio do rejestrów linki do bibliotek tu: http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi osobiście używam http://asphyre.net/products/pxl -- Darek
Re: Rpi/Lazarus - odczyt bajtowy
Author: stchebel
Date: Thu, 20 Apr 2017 01:35
Date: Thu, 20 Apr 2017 01:35
22 lines
2611 bytes
2611 bytes
W dniu środa, 19 kwietnia 2017 11:23:33 UTC+2 użytkownik darekm napisał: > W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał: > > Witam, > > Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... > > > Pewnie że się da. > Można to zrobić bezpośrednio odwołując się do rejestrów > doczytaj dokumentację BCM2835 > w bibliotekach typu HAL są przykłady odwołań bezpośrednio do rejestrów > > linki do bibliotek tu: > http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi > > osobiście używam http://asphyre.net/products/pxl > > -- > Darek ============ Jestem mile zaskoczony. Bo juz myślałem że sie nie da. Jak wcześniej pisałem, w temacie programowania nie zaliczam się do "Guru". Za parę linijek kodu, jak podpiąć Rpi_GPIO do n-bitowego ADC (akurat sensowne HW - podpięcie , to małe piwko) , i jak do tego się dobrać, będę b. wdzięczny. Temat jest komercyjny, więc jeżeli nie tutaj, to na priva. Tam omówimy szczegóły...
Re: Rpi/Lazarus - odczyt bajtowy
Author: Sebastian Biały
Date: Thu, 20 Apr 2017 18:16
Date: Thu, 20 Apr 2017 18:16
42 lines
3268 bytes
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.
Re: Rpi/Lazarus - odczyt bajtowy
Author: Sebastian Biały
Date: Thu, 20 Apr 2017 18:24
Date: Thu, 20 Apr 2017 18:24
12 lines
1390 bytes
1390 bytes
On 4/20/2017 8:16 PM, Sebastian Biały wrote: > Kilka problemów: Zapomnniałbyłbym: Ograniczeniem najpowazniejszym jest sam hardware i predkość GPIO a ta nie wygląda różowo: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/ W procesorach przeznaczonych do oglądania porno na facebooku nikt tak naprawde nie bedzie montował super szybkiego GPIO.
Re: Rpi/Lazarus - odczyt bajtowy
Author: darekm
Date: Fri, 21 Apr 2017 11:52
Date: Fri, 21 Apr 2017 11:52
54 lines
3953 bytes
3953 bytes
W dniu czwartek, 20 kwietnia 2017 03:35:21 UTC+2 użytkownik stch...@gmail.com napisał:
> W dniu środa, 19 kwietnia 2017 11:23:33 UTC+2 użytkownik darekm napisał:
> > W dniu sobota, 15 kwietnia 2017 10:05:18 UTC+2 użytkownik stch...@gmail.com napisał:
> > > Witam,
> > > Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty...
> >
> >
> > Pewnie że się da.
> > Można to zrobić bezpośrednio odwołując się do rejestrów
> > doczytaj dokumentację BCM2835
> > w bibliotekach typu HAL są przykłady odwołań bezpośrednio do rejestrów
> >
> > linki do bibliotek tu:
> > http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi
> >
> > osobiście używam http://asphyre.net/products/pxl
> >
> > --
> > Darek
>
> ============
>
> Jestem mile zaskoczony. Bo juz myślałem że sie nie da. Jak wcześniej pisałem, w temacie programowania nie zaliczam się do "Guru". Za parę linijek kodu, jak podpiąć Rpi_GPIO do n-bitowego ADC (akurat sensowne HW - podpięcie , to małe piwko) , i jak do tego się dobrać, będę b. wdzięczny. Temat jest komercyjny, więc jeżeli nie tutaj, to na priva. Tam omówimy szczegóły...
Możemy tutaj
tak jak mówiłem używam biblioteki Asphyre
zajrzyj do modułu PXL.Boards.RPi
tam jest klasa TFastGPIO
i czytanie bitu:
<code>
function TFastGPIO.GetPinValue(const Pin: Integer): TPinValue;
var
PinBCM: Integer;
begin
PinBCM := ProcessPinNumber(Pin);
if ReadMemSafe(GetOffsetPointer($34 + (Cardinal(PinBCM) div 32) * 4)) and (1 shl (PinBCM mod 32)) > 0 then
Result := TPinValue.High
else
Result := TPinValue.Low;
end;
</code>
biblioteka pracuje bezpośrednio na rejestrach systemowych (taki myk z mapowaniem pamięci )
jak widać czytany jest jeden rejestr a potem wycinany jeden bit,
więc nie ma problemu otrzymanie całego słowa.
tyle że faktycznie może być problem z szybkością,
nawet jeżeli poświęcisz jeden rdzeń na czytanie to nie wiem czy osiągniesz wiele więcej niż kilka MHz a jeszcze gdzieś musisz zapisać otrzymane dane
Inaczej musisz się zacząć bawić z DMA (przykładowo https://github.com/notro/spi-bcm2708/blob/master/spi-bcm2708.c)
--
Darek
Re: Rpi/Lazarus - odczyt bajtowy
Author: krolikbest
Date: Sat, 29 Apr 2017 13:04
Date: Sat, 29 Apr 2017 13:04
26 lines
2126 bytes
2126 bytes
W dniu 2017-04-15 o 10:05, stchebel@gmail.com pisze: > Witam, > Albo się nie doczytałem czegoś w sieciowych dokumentacjach, albo się nie da tego zrobić?! Z tego co się doczytałem w dokumentacji Rpi, jest możliwość komunikacji ze Światem Zewnętrznym na poziomie jednego bitu. Odczyt wciśniętego buttona, zaświecenie LED'em i takie tam pierdulamenty... > > Trochę irytujące jak na 2-rdzeniowy procesor zasuwający w okolicach 1GHz.. > > Czy da się zrobić odczyt równoległy słowa 8/16-bitowego w jakiś sensowny sposób na Rpi korzystając z Lazarusa? Jeżeli tak, to bardzo proszę o wskazówki. > > Jeżeli TAK, to jak zdefiniować/przypisać konkretne piny GPIO do odpowiednich bitów w słowie 8/16 bitowym? > > A tymczasem.. > > Wesołych i Smacznych Świąt !! > Odczyt naciśniecia przycisku się da -> wiringPi jak zdaje się już miab zapodał. Ale prawdą jest też co Sebastian pisał, gpio jest wolny, obciążony linuxem. Dlatego najlepszym wyjściem jest niezatrudniać RPi (korzystając z wirinPi) do zbyt szybkich procesów jak próbkowanie. HINT : FT245R (ftdi) :) krolikbest
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads