Elektroda.pl
Elektroda.pl
X

Search our partners

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

Parallax Propeller P8X32A

PietrekDer 21 Apr 2011 15:19 9024 15
Metalwork
  • #1
    PietrekDer
    Level 13  
    Witam
    Czy ktoś się kiedyś zajmował wyżej wymienionym mikrokontrolerem (P8X32A, opis)? Chciałbym się dowiedzieć czy ten procek jest wart zainteresowania, czy jest ciekawym rozwiązaniem, i czy daje duże pole do popisu :P Ogólnie jeśli się ktoś nim zajmował, to jakie są jego wrażenia :D

    PS: Gdyby się taki ktoś znalazł i miałby na zbyciu jakieś sztuki, to byłbym zainteresowany.
  • Metalwork
  • #2
    Seba319
    Level 24  
    Przyznam że zaciekawił mnie ten uC, jednak niewiele na jego temat można znaleźć w necie. Co do osiągów to:

    Quote:
    8 x 32-bitowych procesorów RISC na jednym chipie
    Moc obliczeniowa do 20 MIPS
    Programowanie w „SPIN” lub asemblerze
    Odpowiednie do wideo, robotyki i wielu innych
    Zestaw startowy i Proto-Board dostępne osobno
    Natężenie prądu pobieranego w stanie standby mniejsze od 10 µA

    Oprogramowanie do bezpłatnego ściągnięcia na www.Parallax.com


    W zasadzie fajna spraw bo 8 rdzeni niezależnych i 32-bitowe. Moc obliczeniowa jednak nie jest imponująca. Atmega8 ma do 16 MIPS z tym że rdzeń jeden i 16-bitowu, co moim zdaniem zupełności wystarcz by realizować dość złożone projekty. Środowisko programowe "SPIN"? Chyba coś na wzór BASCOM-a tyle tylko, że nikomu nie znane, jako alternatywa asembler. Więc brak środowiska wysokiego poziomy typy C/C++. Nota katalogowa dość uboga, podobnie jak liczba zintegrowanych modułów. Być może jest to ciekawe narzędzie, ale mało popularne, a wiec brak dobrego wsparcia. Osobiście wole AVR do których bez problemu znajdziesz mnóstwo materiałów, nawet w języku polski. Bez problemu można pisać w C/C++, noty katalogowe są bardzo obszerne i poparte przykładami z języku C oraz ASM (możliwe są również wstawki kody asemblerowego w C). Jeśli zaczynasz zabawę z mikrokontrolerami, to raczej bym polecał jakąś ATmege, do bardziej zaawansowanych projektów wybrał bym jakiegoś ARM ze względu na o wiele lepsze wsparcie. To oczywiście moje osobiste zdanie i uważam, że ten uC nie jest wart zbytniej uwagi.

    Pozdrawiam!
  • Metalwork
  • #3
    PietrekDer
    Level 13  
    A nie nie, ja już z AVRkami przesiedziałem trochę czasu :) Po prostu chciałem poznać nową rodzinę mikrokontrolerów. I ten Parallax jest nawet ciekawy. Trochę już o nim czytałem, i uważam że strona producenta jest naprawdę b. dobra. Może faktycznie, ciężko znaleźć takiego datasheet'a jak np do ATmega8, do tej pory trafiałem na takie bardziej ogólnikowe opisy, jednak jest dość dużo dokumentacji, przykładowych układów uruchomieniowych itp, ogólnie do czytania jest sporo materiału, właśnie go przerabiam :D Chciałem tylko zasięgnąć opinii tych, którzy mieli z tym styczność. A i kompilator C też jest i nazywa się Catalina (jestem w trakcie zapoznawania się z nim). Dodatkowo z tego co wiem, ma on (procek) sprzętowe wsparcie dla generowania sygnału Video oraz VGA. No i może brakuje np tak rozbudowanych peryferiów jak np RS232, SPI, TWI, itd itp, ale może w jednym rdzeniu dałoby się to zrobić programowo a wtedy na pozostałych można szaleć :D
    No i jest jeszcze problem z dostępnością, u nas niby da się kupić, ale od 50zł w górę, podczas gdy np w DigiKey kosztuje 7.99$, czyli ok 22zł.
  • #4
    nsvinc
    Level 35  
    Co to są za bzdury, gdzie ty widziałeś 16bitową atmege?!

    -------------

    Rodzina propellerów nie zadziwia niestety niczym - scalaki są drogie, ciężko dostępne, i wolne. Naczytałem się kiedyś materiałów na ich temat.
    1. Spin to badziewie. Sami się przyznali do tego, że soft w spinie marnuje sporo mocy obliczeniowej rdzeni. Siłę procka widać dopiero wtedy, gdy pisze się w assemblerze.
    2. Programowanie i debug, ciężka sprawa... Nie ma łatwo dostępnych narzędzi do zabawy z tymi prockami.
    3. Sam procesor może i fajny, ale 8x20MIPS daje 160MIPS 32bitowego procka. Niestety, zestaw instrukcji leży, głupi ARM9 ma lepszy, nie wspominając o Cortex-M4 lub -R4(F). Więc MIPSy MIPSom nie równe.
    IMO nie warto sie w to bawić, lepiej wziąć popularnego STM32 lub LPC17xx, i w efekcie końcowym wydajność będzie podobna, o ile nie lepsza, nawet dla przełączanych zadań (aby ściemnić 8 rdzeni)
    4. Kontroler pamięci leży. Czytając dokumentacje dochodziłem często do wniosku, że panowie designerzy siedząc nad tym prockiem w końcowej fazie projektu ciężko kminili, co by tu jeszcze spieprzyć lub ograniczyć :(
    5. Gdzie są przerwania? ONI doszli do wniosku, że jak jest osiem rdzeni, to można conajmniej jeden zmarnować na polling! Głupota. Czyli chcesz badać stany jakichś linii wejściowych w kółko - to już nie masz jednego z rdzeni.
    6. Kupa krzemu zmarnowana na bootloadery, parsery wysoce nieefektywnego SPINa, zamiast po prostu zaimplementować IAP i napisać porządny kompilator języka, którym ludzie sie posługują (ANSI C, C++ ?) pisząc na mikrokontrolery.
    7. Skoro ONI "naficzerowali" te procesory do granicy absurdu (bo 3/4 z tego nie bedzie używane w zwykłych aplikacjach), to czemu nie ma FPU, MPU/MMU, instrukcji SIMD? "Jak już, to już..."

    Architektura całego scalaka też nie zadziwia. Znacznie lepsze osiągi miałby układ oparty o dispatcher i wiele jednostek wykonawczych...

    Ten procek to mniej więcej:
    silnik od lamborghini wsadzony do fiata 125p na kołach od ciągnika, jest skóra na siedzeniach, podstawki pod kubki i lodówka, ale nie ma immobilizera ani alarmu, skrzynia automatyczna lecz drążek do zmiany biegów jest poza zasięgiem kierowcy, elektrycznie otwierany jest tylko bagażnik, a maski nie da się wogóle otworzyć (bo tego konstruktorzy nie przewidzieli) :]
    To już mogli nawet tego procka opychać 2x drożej, aby tylko był LEPIEJ przemyślany i miał funkcjonalności z których "się korzysta", zamiast zbędnych wodotrysków.

    A jak ktoś chce RDZENIE i PARALELIZM, to niech kupi 8 kości nawet LPC1112 po 1.5 dolca, połączy je magistralą (SPI). Propeller dostanie bezwzględnie w d...
  • #5
    Seba319
    Level 24  
    nsvinc wrote:
    Co to są za bzdury, gdzie ty widziałeś 16bitową atmege?!

    Nigdzie nie napisałem o 16-bitowje ATmega, czytaj dokładnie! Rdzeń AVR posiada 16-bitową organizacje pamięci programu oraz 16-bitowe rozkazy, a wiec organizacja pamięci programu jest 16-bitowa.
  • #6
    nsvinc
    Level 35  
    koleszka wrote:
    Rdzeń AVR posiada 16-bitową organizacje pamięci programu oraz 16-bitowe rozkazy, a wiec organizacja pamięci programu jest 16-bitowa.

    Whatever, dude...
  • #7
    tmf
    Moderator of Microcontroller designs
    koleszka wrote:
    nsvinc wrote:
    Co to są za bzdury, gdzie ty widziałeś 16bitową atmege?!

    Nigdzie nie napisałem o 16-bitowje ATmega, czytaj dokładnie! Rdzeń AVR posiada 16-bitową organizacje pamięci programu oraz 16-bitowe rozkazy, a wiec organizacja pamięci programu jest 16-bitowa.


    A gdzie ty tam widzisz te 16-bitowe rozkazy? Chyba, że masz na myśli to, że opcode zajmuje 16-bitów, ale co to ma wspólnego z 16-bitową architekturą? To już Z80 jest bardziej 16-bitowy niż AVR, cokolwiek by tam Atmel nie naskrobał.
    Co do tego propellera, kiedyś sobie poczytałem o tym, parę lat temu kiedy to widziałem to może było i ciekawe. Szczególnie jeśli ktoś chce się pobawić i kupić inne zabawki z parallaxa. Do robotyki IMHO ta firma jest niezła, dużo gotowych modułów, fragmentów kodu, tylko posklejać razem i można uzyskać w łatwy sposób niezłe efekty. Leczy poza tym to tak jak poprzednik pisze - są lepsze procesory i co ważniejsze z dostępnymi normalnymi kompilatorami.
  • #8
    PietrekDer
    Level 13  
    No właśnie jeśli chodzi pisanie programów, to chyba pozostaje asembler. Też gdzieś wyczytałem, że wykorzystywanie tego SPIN'a może dość znacznie spowalniać program, tzn kod nie jest tak lekki jak pisany bezpośrednio w asm, co jest logiczne :] Fakt, może i są procki bardziej znane, jak chociażby jakieś LPC z rdzeniem Cortex M0, które mają wydajność > niż ATmega128 a są w podobnej cenie (jeśli nie tańsze). W każdym bądź razie tak jak kolega nsvinc ocenił niezbyt pozytywnie tego procka, tak samo widziałem i opinie bardzo zachwalające tą konstrukcję :]
    Tak więc w zasadzie nadal mam dylemat, czy ten procek jest wart zapoznania :?:
    A chyba jednak nie ma tu na forum zbyt dużo ludzi, którzy by kiedyś coś przy tym grzebali.
  • #9
    nsvinc
    Level 35  
    Każdy procek jest wart poznania jeśli jesteś pasjonatem i masz zamiar i ochotę "władać krzemem" :] Ja pisałem swoją opinię pod kątem użytecznych zastosowań. Ale jeśli jestes pasjonatem, to mogę radzić ci mniej więcej to: bierz się za architekturę każdą, do której czujesz pociąg. Wiedza i doświadczenie na wagę złota...
  • #10
    pik33
    Level 2  
    nsvinc wrote:
    Co to są za bzdury, gdzie ty widziałeś 16bitową atmege?!

    -------------

    Rodzina propellerów nie zadziwia niestety niczym - scalaki są drogie, ciężko dostępne, i wolne. Naczytałem się kiedyś materiałów na ich temat.
    1. Spin to badziewie. Sami się przyznali do tego, że soft w spinie marnuje sporo mocy obliczeniowej rdzeni. Siłę procka widać dopiero wtedy, gdy pisze się w assemblerze.
    2. Programowanie i debug, ciężka sprawa... Nie ma łatwo dostępnych narzędzi do zabawy z tymi prockami.
    3. Sam procesor może i fajny, ale 8x20MIPS daje 160MIPS 32bitowego procka. Niestety, zestaw instrukcji leży, głupi ARM9 ma lepszy, nie wspominając o Cortex-M4 lub -R4(F). Więc MIPSy MIPSom nie równe.
    IMO nie warto sie w to bawić, lepiej wziąć popularnego STM32 lub LPC17xx, i w efekcie końcowym wydajność będzie podobna, o ile nie lepsza, nawet dla przełączanych zadań (aby ściemnić 8 rdzeni)
    4. Kontroler pamięci leży. Czytając dokumentacje dochodziłem często do wniosku, że panowie designerzy siedząc nad tym prockiem w końcowej fazie projektu ciężko kminili, co by tu jeszcze spieprzyć lub ograniczyć :(
    5. Gdzie są przerwania? ONI doszli do wniosku, że jak jest osiem rdzeni, to można conajmniej jeden zmarnować na polling! Głupota. Czyli chcesz badać stany jakichś linii wejściowych w kółko - to już nie masz jednego z rdzeni.
    6. Kupa krzemu zmarnowana na bootloadery, parsery wysoce nieefektywnego SPINa, zamiast po prostu zaimplementować IAP i napisać porządny kompilator języka, którym ludzie sie posługują (ANSI C, C++ ?) pisząc na mikrokontrolery.
    7. Skoro ONI "naficzerowali" te procesory do granicy absurdu (bo 3/4 z tego nie bedzie używane w zwykłych aplikacjach), to czemu nie ma FPU, MPU/MMU, instrukcji SIMD? "Jak już, to już..."

    Architektura całego scalaka też nie zadziwia. Znacznie lepsze osiągi miałby układ oparty o dispatcher i wiele jednostek wykonawczych...

    Ten procek to mniej więcej:
    silnik od lamborghini wsadzony do fiata 125p na kołach od ciągnika, jest skóra na siedzeniach, podstawki pod kubki i lodówka, ale nie ma immobilizera ani alarmu, skrzynia automatyczna lecz drążek do zmiany biegów jest poza zasięgiem kierowcy, elektrycznie otwierany jest tylko bagażnik, a maski nie da się wogóle otworzyć (bo tego konstruktorzy nie przewidzieli) :]
    To już mogli nawet tego procka opychać 2x drożej, aby tylko był LEPIEJ przemyślany i miał funkcjonalności z których "się korzysta", zamiast zbędnych wodotrysków.

    A jak ktoś chce RDZENIE i PARALELIZM, to niech kupi 8 kości nawet LPC1112 po 1.5 dolca, połączy je magistralą (SPI). Propeller dostanie bezwzględnie w d...


    Nie do końca to wszystko prawda. Z jednym tylko mogę się zgodzić: scalak jest kompletnie niedostępny w Polsce.

    (1) Spin służy do 2 rzeczy: zapewnia szybki start dla nowicjusza, (2) służy jako loader do procedur asm
    (2) Narzędzia są, co prawda nie open source ale i tak free, przykładowych programów i gotowych obiektów leżą na stronach Parallaxa setki
    (3,4) Zestaw instrukcji jest dobrze dopasowany do wewnętrznej struktury procesora. Jest inny ale warto najpierw zastanowić się nad tym, co ta inność daje. To samo kontroler pamięci. Jeśli rzecz ma działac szybko i deterministycznie, lepiej się tego nie zrobi, jest 8 rdzeni, musi być arbitraż, a założenia były takie, że ma być pełna symetria, każdy rdzeń ma dokładnie te same prawa.
    (5) Do czego przerwania w tej strukturze i jaki polling? Kto ma co przerywać, który rdzeń ma przerwać pracę i podjąć procedurę obsługi przerwania? Znowu nie ta struktura. Usypiasz rdzeń i czekasz na stan wybranego pinu. Po złapaniu "przerwania" budzi się w ciągu chyba dwóch taktów i zaczyna robić swoje bez pobierania wektorów, zrzucania na stos i przeszkadzania innym rdzeniom w robocie
    (6) Ta Kupa krzemu to 32k ROMu. ROM jest tani.
    (7) Nie ma, bo nie naficzerowali do granic, tylko zrobili inaczej, niż wszystkie.

    To nie silnik od Lamborghini wsadzony do fiata 125. Jak już trzymać się takich porównań, to jest samochód który ma oddzielny silnik na każde koło, żadne z nich się nie da skręcić, bo nie trzeba, a wszystko to sterowane jest joystickiem zamiast pedałami i kierownicą. Trzeba poświęcić czas na naukę operowania tym cudem ale w zamian może pojechać tak, jak żaden inny samochód.

    Jak ktoś koniecznie chce to programować w C, to jest kompilator o nazwie Catalina.

    Po prostu: ten scalak jest inny. Jeśli ktoś poświęci chwilę czasu na opanowanie tej inności, może wycisnąć z niego niesamowite rzeczy. O Propellerze należy myśleć raczej jak o systemie na chipie: każdy z rdzeni pozwala stworzyć z siebie specjalizowane szybkie urządzenie I/O. Jeden z rdzeni przeznaczamy na program główny, można wtedy zaprogramować go w spinie albo, jak ktoś koniecznie chce, w C, reszta służy do obsługi "przerwań" i całej reszty I/O. Do programowania I/O nie trzeba się męczyć, tylko najpierw poszukać gotowca w zasobach producenta. Są darmowe.Zrobienie czegoś konkretnego z tym układem może zająć parę minut: ściągnąć gotowe obiekty, takie jekie sa potrzebne, napisać parę linijek w spinie, koordynujących pracę tych obiektów i system gotowy.


    Z ciekawostek, ktoś zrobił na jednym z 8 rdzeni emulator SIDa. Oraz AY-3-8910. Ktoś zaemulował - na jednym rdzeniu - Z80, a w dalszej kolejności ZX Spectrum. Mając emulator SIDa ktoś podczepił do propellera czterema drutami gniazdo na kartę SD i trzy przyciski, robiąc z niego odtwarzacz do zgromadzonych na SD muzyczek C64. Niemieccy entuzjaści zrobili z trzech propellerów "retrokomputer" - "hive-project". Układ po prostu jest niezwykle elastyczny i pozwala realizować prawie wszystko.

    Płytka uruchomieniowa do tego o nazwie "propeller demo board" kosztuje 60 dolarów. W naszych warunkach najtaniej z tego co udało mi się znaleźć, ma ją Spinvent, 60 funtów plus 4 funty wysyłka, opłata przez paypal. Mając ją można nauczyć się wszystkiego o tym układzie, program "Propeller tools" zawiera kilkadziesiąt przykładów różnych ćwiczeń.
  • #11
    Urgon
    Editor
    AVE...

    Nie ma sensu zajmować się układem, którego nie da się kupić w tym kraju. Ponadto przy tej prędkości samego procesora przetwarzanie równoległe niewiele da. Ja bym radził iść w stronę Cortex'ów jak już. A jakbyś chciał pobawić się w przetwarzanie równoległe, to weź kilka tańszych mikrokontrolerów współpracujących z zewnętrznym RAMem przez DMA i połącz je. Piszesz kod dla każdego oddzielnie i współdzielisz dane w pamięci zewnętrznej tak samo, jak to robi Propeller. Albo bierzesz jakiś duży układ FPGA i tworzysz w nim wielordzeniowy procesor...
  • #12
    tmf
    Moderator of Microcontroller designs
    Panowie, odgrzewacie temat sprzed roku :)
    Urgon - a skąd info, że w Polsce nie da się kupić? Odcięli ci Internet?:)
    Procki, jak procki. Nie są super, ale firma daje do nich fajne zestawy z gotowym softem. Dla osoby, która nie chce poznawać mikrokontrolerów, a np. interesuje się robotyką i chce się skupić na celu a nie metodach jego osiągnięcia IMHO propozycja Parallax jest świetna. Nie mówię o samym procesorze, ale o całości. Dzieciakowi np. nie kupiłbym ARMa, bo niby co z nim miałby zrobić, ale parę modułów z Parallaxa owszem.
  • #13
    zbigniew169
    Level 10  
    Odgrzewam kotlet bbbbbbbbaaaaaaaaaaaaaaaaaaaaardzo stary bo sprzed 4 lat, ale może warto.

    Mam kilka P8X32A w DIL40 i od roku zamierzam zrobić płytkę prototypową, mam pamięci serial EEPROM 32kx8, oraz 64kx8 od Microchipa a nawet "końcówkę" do programowania ISP zakupioną od Firmy Paradox, która te procesory produkuje. Niestety do scalaków zabieram się jak pies do jeża.

    Jestem co prawda niesamowitym dinozaurem jeśli chodzi o wiek, ale aby nie zapeszać: Jak zająłem się elektroniką to lampy były w pogardzie, a z procesorami ATMEL'a mam do czynienia od 2002. Niemniej ostatnio używam TYLKO Arduino Uno, a przyczyną nie jest głupota dotycząca MCU tylko totalne lenistwo.

    Toteż mam propozycję, ostąpię NIEODPŁATNIE 1 szt. P8X32A plus pamięć 8x32k, komuś kto chce się pobawić tym mikropocesorem, warunkiem [którego nie wymuszę] jest projekt płytki prototypowej lub sama samo PCB, według humoru obdarowanego.

    Poproszę o pvt e-mail na zbigniew169 at gmail dot com, najlepiej może ktoś z Warszawy jeśli się trafi, wtedy możemy się spotkać [jestem z Ochoty]. Jeśli ktoś się bardzo zaintresuje to można też: 665-597-400 w godzinach 11:00-23:00.

    Kto wie może nawiąże się współpracę korzystną dla obu stron.

    Pozdrawiam wszystkich potencjalnie zainteresowanych
  • #14
    pik33
    Level 2  
    Nie będę się pisał na darowizny bo mam w szufladzie trochę P8X32A wraz z resztą potrzebnych drobiazgów :) Ale jak masz DIL to nie baw sie w projekty tylko kup płytke uniwersalną i wklej w nią podstawki na Propa i eprom, tudzież to co tam jeszcze chcesz.

    Uwaga: ten scalak nie lubi problemów z zasilaniem: pada mu od tego PLL, generujący zegar procesora. Więc bezwzględnie kondensatory blokujące przy samych nogach zasilanie-masa. Ma on po dwie nogi Vdd i Vss i obowiązkowo zasilanie doprowadzasz do obu par i obie traktujesz kondensatorkiem.

    Jeśli nie masz proppluga, to na stronach Parallaxa jest schemacik, jak ustrojstwo podłączyć do (prawdziwego!) RS232. Użycie "byle jakiej" przejściówki USB-RS232 może wiązać się z również opisanymi u nich problemami; w każdym razie może nie zadziałać ale problem jest opanowany i opisany. Jeśli masz, to musisz wyprowadzić cztery piny dla niego. Dwoma drutami podpiąć eeprom... i to by było na tyle.
  • #15
    zbigniew169
    Level 10  
    Mam pro pluga!

    https://www.parallax.com/product/32201

    Tylko go w swoim poście niefortunnie nazwałem. Dzięki za rady, będę uważał na zasilanie, w końcu scalak jest zasilany 3.3V więc może źle tolerować przepięcia nawet o wysokości 5V z USB czy większe z innych źródeł.

    Idzie zima i mam kilka płytek uniwersalnych, może wezmę się do roboty.

    Jak możesz to napisz proszę odrobinę na temat Twojej opini i doświadczeniach z P8X32A.
  • #16
    pik33
    Level 2  
    5V bezwzględnie ujara Propellera puszczając z niego dym magiczny. A zasilanie to klasyk, wszyscy radzą na to uważać. Dwa dobrej jakości kondensatory z dwóch stron scalaka powinny załatwić problem. No i kwarc 6.25 MHz warto mieć dla okrągłej liczby na liczniku. 100 MHz wytrzyma każdy chip, 10 ns na takt zegara - łatwiej liczyć czas