Sida 1 av 6
En 8 pipes propeller som snurrar i 160MIPS
Postat: 30 juni 2006, 08:10:30
av chille
Fick tips av strombom här på forumet att det finns en microcontroller som heter
Propeller som
Parallax har utvecklat. Kunde inte hitta någon tråd om den. Nu när det dessutom är rea på deras minsta starterkit (bara 450kr) så passar jag på att tipsa er.
* 32bitars arkitektur
* 8 COG's (pipes/kärnor/processorer, ja, du läste rätt)
* Varje COG snurrar i 20MIPS, dvs totalt 160MIPS
* 2KB minne per COG
* 16KB globalt minne
* 32KB ROM
* Finns med DIP40, QFP44 eller QFN44-kapsel
* Programmeras i antingen assembler eller deras egna flexibla högnivåspråk, SPIN
* Programmeras via en enkel serieportsadapter, eller USB
Vad mer kan man kräva? Ett 32bitars multiprocessorsystem med 8 pipes för cirka 200kr låter ju som en dröm
(
länk)
Den har inga interface av något slag. Om man till exempel ska ha en serieport måste man bitbanga. Dock är det inga problem då man har 8st COG's och tonvis med färdiga moduler för interface:a mot olika saker. Till exempel så finns det färdig kod för att interface:a mot vanliga VGA-skärmar. Det finns kod för att generera en RF-signal på 60MHz, direkt i processorn, som man sedan kan skicka till en TV. Verkar också finnas nått tjaffs som kunde genera vågformer på upp till 125MHz, en signal per COG. Blablablablabla... det här kan hålla på i all oändlighet. Enkelt förklarat så är den ganska flexibel och kraftfull.
Ett löst chip i DIP40-kapsel kostar 179:- + moms hos
Lawicel, dvs typ lika billigt som att köpa direkt från Parallax. Finns som sagt ett starterkit, som förvisso är ganska dyrt, hos Parallax för $59. Är man beredd att spendera $210 kan man dessutom få ett schysst starterkit och en jättesöt 2.4" färgskärm
Finns hur mycket som helst att skriva om den. Kan omöjligt få plats med allting här, men nu har ni i alla fall fått en hint. Ni kan ju gissa vad jag ska beställa på måndag, då Lawicel vaknar upp igen efter helgen (tyvärr har de stängt idag).
Btw, hoppas inte tråden blir lika lång som när jag tipsade om bluetooth-modulerna strombom tipsade mig om.
(Nördhumor på hög nivå: "My
Propeller won't
SPIN")
Postat: 30 juni 2006, 11:06:16
av $tiff
Ja, den var uppe för ett tag sedan här på forumet, men det blev inte mycket väsen om den.
Jag tycker det verkar onödigt att t.ex behöva offra en kärna för att få en UART, istället för att ha den hårdvaruimplementerad.
Hursomhelst, priset är ju förmånligt. Vad är haken?
Parallax är ju inte direkt kända för att göra kraftfulla eller flexibla lösningar alltid.
Postat: 30 juni 2006, 11:33:58
av chille
Inte kraftfull? Nä, man kan ju bara generera en RF-signal och skicka in i en TV, och med färgbilder dessutom. Kan du det med en AVR?
Och vad jag har förstått behöver man ju inte offra en hel COG för en UART, jag tror man ska kunna köra flera saker i en COG. Typ en COG för I/O, en för GUI, en för att generera grafik/videosignal osv.
EDIT:
Kamera->Propeller->Skärm
Btw, har du någon länk till den andra tråden? Sökmotorn här funkar ju inte så bra och google ger inga träffar när man söker på "propeller".
Postat: 30 juni 2006, 17:12:14
av pheer
Avfärdades inte den som ett förstaprilskämt i den tråden? Den finns alltså på riktigt

Postat: 1 juli 2006, 09:49:43
av chille
Förstaaprilskämt? Nä det hoppas jag verkligen inte :-x
Angående UART så verkar det krävas en hel COG om man kör med deras exempelkod. Men jag har svårt att tro att man inte skulle få in mer om man kodade själv. Kan tänka mig att UART:en använder en timer. Då skulle man ju kunna multitaska och ha en thread med hög prioritet som körs av timern och sköter UART, och en med låg prioritet som gör andra saker
Av att kika lite i databladen får man känslan av att alla "conditional branches" är inbakade direkt i instruktionen, dvs man slipper typ alla brne, breq, sbic och liknande som man kör på AVR. Dock har jag inte fått det bekräftat då jag inte kan hitta assembler-referensen på deras sida
Är det ingen här som lekt med med Propeller? Borde ju vara olagligt att ha ett helt forum med folk som kännt till den, där ingen provat den än.

Postat: 1 juli 2006, 11:51:59
av tobon48
Hej !
Jag skrev om den för ett tag sen men det råkade vara 1 April
Jag har ganska mycket kontakt med Parallax då jag översätter deras kurser till svenska så om någon har frågor så kan jag fram föra dom.
mvh
tobon48
Postat: 1 juli 2006, 12:09:29
av chille
Äntligen, sökte jag på ditt namn, tobon48, så dök tråden upp, som varken sökfunktionen på sidan eller googla kunde hitta
HIT ME!
Konstiga är att folk tolkar det som aprilskämt fast det är postat den 8e? För Propeller fanns ju redan i februari, och kanske ännu tidigare. Det var ju inte så att varken din post eller Propeller har något med 1a april att göra.
Postat: 1 juli 2006, 15:52:27
av BEEP
Finns det någon återförsäljare här i Sverige?
Postat: 1 juli 2006, 16:22:04
av LaRdA
Ett löst chip i DIP40-kapsel kostar 179:- + moms hos Lawicel , dvs typ lika billigt som att köpa direkt från Parallax. Finns som sagt ett starterkit, som förvisso är ganska dyrt, hos Parallax för $59. Är man beredd att spendera $210 kan man dessutom få ett schysst starterkit och en jättesöt 2.4" färgskärm
Postat: 1 juli 2006, 18:09:01
av chille
Alla verkar bara klanka ner på processorn utan att ens veta något om den. Folk verkar vara så skeptiska och säga att det säkert är skit bara för att det är Parallax. Så jag har suttit hela dagen och forskat vad som som skulle kunna vara ett argument för att den är dålig.
1) Jag trodde man kunde kombinera SPIN och Assembler i samma fil. Visst, det går... men... när en COG startas så ställs den in på att antingen köra SPIN eller assembler, vilket leder till nummer 2.
2) SPIN var tydligen som basic stamp. Det ligger en interpreter i ROM på chipet som tolkar SPIN-koden i form av bytekod. Dock finns ju fördelen att man får ner storleken rejält om man kör avancerade saker såsom flyttalsberäkningar och liknande.
3) Det verkar som om RAM används även för att köra kod. Om det nu stämmer betyder ju det att om man har ett 2KB stort program kommer det äta upp allt RAM-minne i en COG.
4) Interpretern ligger i en del av ett ROM som tydligen inte går att uppdatera. Det betyder att man kan inte uppdatera SPIN-språket, vilket man hade kunnat göra om SPIN bara var ett högnivåspråk som kompilerades ner till lågnivå för att sedan tolkas direkt som maskinkod av processorn.
5) Den är inte 32 bitar, det är instruktionslängden som är 32 bitar. I varje instruktion så lagras även datat. Det sägs vara anledningen till att det bara är 32KB RAM, den klarar inte av att adressera mer utan att behöva ha mer bitar för varje instruktion.
6) Det interna ROM verkar bara vara för att spara saker såsom lookup-tables och data. Man _måste_ (?) ha extern ROM för programkoden.
Men med tanke på fördelarna så är det nog lungt. Är ju schysst att kunna generera en 1024x768 VGA-signal med bara 2 COG's. Synd bara att minnet inte räcker till.
EDIT: La till en 6e nackdel
Postat: 1 juli 2006, 20:06:15
av Icecap
Visst, den är snabb och sånt men att programmera den att göra mer avancerat saker känns lite som att be en pingvin flyga.
Parallax har någon teori om att bara skiten jobbar snabbt kan man allt med den! Jag håller med om det i teorin men inte i praktiken, program till ett system med ett par soft-UART och den sorts blir snabbt stort och oöverskådligt, det medför samtidig att man ofta kan ha svårt att debugga då programmet blir så stort osv.
Hög hastighet ger samtidig problem med EMI, onödig hög strömförbruk osv.
Så visst är Parallax-processorerna snabba och har en bra support i programexempler osv men de appelera inte till mig alls, de känns ganska mycket som att ta en PIC16F84 och sätta turbo på: gammal och "tråkig" konstruktion som kan lite ..... men den kan sitt lite snabbt som ögat!
Alltså: en 3-hjulat cykel är en 3-hjulat cykel fastän den kan köra 110 knyck.
Postat: 2 juli 2006, 00:00:51
av $tiff
Visst, det är väl kul om man vill generera lite video, om man inte tycker om externa kretsar eller FPGA.
I övrigt är jag föga imponerand av den spinnande saken. Det var väl ungefär som jag misstänkte, att man är ganska låst till "SPIN", ungefär som Basic för Basic Stamp.
För allt annat än de applikationer som vekligen behöver de 160 (låtsas?)-MIPSen så duger en PIC/AVR bättre. Varför inte ta en ARM om man behöver kraften!?
Postat: 2 juli 2006, 00:23:16
av Kaggen
En annan sak, jag kollade in parallax forum om propellern, den verkar arbeta med 3,3V. Det innebär att du lär ta hänsyn till detta i din design om du skall använda den tillsammans med 5V kretsar (I/O, I2C bussar å sånt). Om inte jag missupfattat något i länken nedan.
http://forums.parallax.com/forums/defau ... 5&m=124837
Postat: 2 juli 2006, 05:01:35
av chille
Icecap:
Jag har kollat igenom en hel del kod för att till exemepl generera VGA, köra sigma-delta A/D och D/A osv, jag tycker inte koden blir speciellt avancerad. Inte värre än att den skulle gå och felsöka lika enkelt som på en AVR.
Onödigt hög strömförbrukning är väl inget problem så länge man inte ska göra batteridrivna applikationer? Kör man en COG i 20kHz så drar den 30µA, kör man igång alla COG:ar i 80MHz (maximum) så kommer den dra 75mA, vilket jag anser är fullt acceptabelt.
$tiff:
Jo, men nu har vi kommit till det stadiet att vi kanske inte måste välja en FPGA för att generera video? Man kan ju lika gärna välja en Propeller för att generera videon, och få 75-90% ledigt efter att ha genererat själva videosignalen.
"Ganska låst till SPIN"? Varför skulle man vara det? Vill du inte koda SPIN så kodar du inte SPIN, problemet löst.
Låtsas-MIPS? Folk på forumet säger ju iaf att en Propeller inte är jämförbar med en 160MIPS processor, då Propellern oftast klarar av mer.
Självklart kan man ju ta en ARM. Men de flesta brukar ju ändå säga att ARM är dyrt och jobbigt att komma igång med. Propeller lär ju vara enklare än både AVR och PIC då TILLVERKAREN(!) har väldigt bra programexempel och ett riktigt bra forum där till och med han som utvecklat processorn hänger och hjälper till om det är något
Kaggen:
Ta ett 10k seriemotstånd så är problemet löst, så gör alla som kör Propeller.
För övrigt kan jag säga att det finns en dåre som byggt en 10MHz logikanalysator av en Propeller. Den visar datat direkt på en TV-skärm eller liknande. Tror det var snack om 1000 samples minne, lär ju iofs gå att utöka. Inte så jättekraftfullt. Men om man har en Propeller på lager och skulle behöva felsöka en logiksignal är det ju ganska enkelt att slänga upp en Propeller och typ 5-10 vanliga komponenter som man har på lager, och sedan koppla in i TV:n/datorskärmen.
Finns det verkligen INGEN här på forumet som gillar processorn? Hade det inte vart Parallax, utan istället Atmel, som tillverkat den så hade säkert alla gillat den

Postat: 2 juli 2006, 08:55:49
av Icecap
Nej, jag ser faktisk inte grejen med den.
Den använder ett gemensamt minnesområde för att kommunicera mellan de enstaka processerna, det minne har en begränsat bandbredd (såklart) men det hjälps av att varje process har ett eget minne.
Det jag förvånas över är att kretsen överhuvudtagit tillverkas, i min värld är PIC/ARM "små & klena" processorer som man lösar simplare uppgifter med och när det blir tyngre saker som kräver mer minne blir det 16 eller 32-bitars processorer med lagom med hårdvara.
Visst är det kul att den kan generera VGA-signal men då det inte är plats till innehåll i det signal ser jag inte vilken nytta man ha av detta faktisk, den kan möjligen komme på tal om man ska göra en signalgenerator....
Som sagt: en trehjuling är en trehjuling hur fort den än kan köra...
I mina ögon är det en kul grej i fel segment.