Fórum témák
» Több friss téma |
Fórum » Parallax P8x32 kezdőknek
Talán mert nem az a téma címe: Miért nem jó a Propeller? Vagy miért hú de jó a ... Ha nem haragszotok - ha igen akkor is - maradok az eredeti témánál. A chipet nem én gyártottam, nem én forgalmazom - csak használom - és erre buzdítok mindenkit, aki ismerkedni szeretne vele. Én sem kezdtem azon köszörülni a nyelvem, melyik mikrokontroller sorozatnak hány száz féle hibája van. Mert van bőven. GPeti1977 hozzászólása jogos - az ő alkalmazásához abban a konstrukcióban nem szerencsés megoldás volt a propeller - bár gyanítom én tudtam volna olyan hardver környezetet kialakítani amiben meg igen. De ez is más lapra tartozik. Én itt be is fejeztem ezt a részét. AKi tud jobbat, küldje el a chip fejlesztőinek - ugyanis a Parallax nyílt platformon tervez. Talán hajlandóak lesznek egy köztes chip legyártására is - nagyobb memóriával.
Kezdjük is az elején. Mi tetszett meg elsőként a P8x32 programozói felületében? 1.) A mérete. Nem kellett több száz Mega felesleges szoftvert feltöltenem a PC-mre csak azért, hogy futtathassak egy pár kB-os programocskát. 2.) Az egyszerűsége. Lássuk csak (kép). A szoftverbe lehet kommenteket írni (nagy cucc, mondanák mások). Azonban ezek eleve TXT alapú programok és a megjegyzések is TXT alapúak. Ez már jobban tetszik, mert nem gond másolni, beilleszteni, nyomtatni. Ami azonban zseniális, hogy a program, használható dokumentációként is, mindössze egy saját Parallax karakterkészlet segítségével. A mellékelt programrészlet ezt (remélem) jól szemlélteti.
Folytassuk, ahogyan a sorozat mondja: Természetesen jelmagyarázatot is tudunk így a rajzunkhoz biggyeszteni (jelmagyarazat.jpg). Ezzel nagyjából el is értünk a fejléc-jelmagyarázat végéhez, bár ragozhatnánk egy darabig. Az érdemi rész ezután kezdődik A "CON" feliratú rész után. Érdekessége a Propeller Toolnak (bár messze nem egyedi), hogy a megfelelő parancsokat színekkel elkülöníti a többi programszakasztól. A megjegyzések eddig halványsárgák voltak, A "CON" már egy élénkebb sárga színt kapott. Mire is jó ez a szakasz? Sok alap adat itt kap értéket, nevet, itt adhatjuk meg az órajelet, a szorzót:
Itt rendelhetjük például össze a bemenetek PIN-jeit a saját elnevezéseinkkel:
Természetesen itt is használhatunk kommenteket. Vájt szeműeknek biztosan feltűnt, hogy hiányoznak egyes ékezetes betűk. Nos a programrészlet megírása óta a Propeller Tool fejlődött és képes használni a magyar ékezetes betűket is, csak engedélyezni kell az unicode-ot.
Legközelebb belecsapunk a lecsóba. Elsőként leírom azt, amit minden kezdő programozó elől elhallgatnak - és amivel a legtöbbet lehet szívni: Hogyan lehet 0-ból 1-be pöckölni egy bitet. Azaz, hogyan gyújtsunk világosságot egy LED segítségével. A Propeller kimenetei 3,3V-on maximum 40mA-ig terhelhetőek a katalógus szerint. Azaz egy led-et gond nélkül ráaggathatunk, hogy teszteljük. Nem állítom, hogy mindent tanári alapossággal fogok tudni tálalni - de igyekszem segíteni annak - aki igényli. A példaprogramok spin kiterjesztésű fájlok lesznek, mivel ez a propeller natív nyelve.
Ember tervez.... De addig is a net segítségével - találtam ezt az oldalt Itt gyönyörűen látható, miért is egyszerű ezt a mikrokontrollert használni. Ennél kisebb, egyszerűbb panelt én sem építettem, csak furatraszteres panelre. Ott is a foglalat alá került az eeprom helytakarékosságból. Ez viszont egy komplett koncepció - méghozzá nem is rossz.
Sikerült végre leülnöm 2 percre, így mellékelném is mindjárt az első világot jelentő kódot a "Hello World!" után:
Mivel nem igazán van felkészítve a HE erre a karakterkészletre, mellékelem a spin kódot is
A led villogtató program 5MHz-es kristályt feltételez, külső eeprom nélkül is működik , de nyilván a tápfeszültség elvételekor elfelejti a mikrokontroller. 24c256 vagy 24c512 eeprom használatával a program a külső eepromban is eltárolódik és minden bekapcsoláskor azonnal működni kezd. Sok sikert!
Látható volt, egy átlag program felépítése. Globális változók, helyi változók. A mikrokontrollerre töltéskor megadható, hogy kizárólag RAM-ba legyen letárolva a program, vagy a külső eeprom tárolóba. Belinkeltem előzőleg a legegyszerűbb hardvert. Ez áll általában a
1.) A P8x32-ből azaz a propellerből, 2.) valamint az 5MHz-es kvarcból, 3.)és egy 3,3V-os tápfeszültségből. 4.) reset gomb 5.) Opcionálisan i2c-s eeprom 6.) programozáskor vagy PropPlug RS232-USB programozó, vagy Ugyanez a panalre téve, mint a fejlesztőpaneleken (Jellemzően FT232 és egy tranzisztor a reset körrel) Azaz nem túllihegett a hardver.
A villogtató szoftver persze sokkal egyszerűbben, más módszerekkel is megvalósítható. Most erre is teszek fel 1-2 példát. Egyben látható, hogy a kvarc sem feltétlenül szükséges a működéshez, hiszen létezik RCSLOW mód is, ilyenkor megközelítőleg 13-33kHz az órajel, illetve RCFAST mód, amikor 8-20MHz közötti órajellel működik a mikrokontroller. Sok egyszerű feladat elvégzéséhez - ez is elegendő. Van persze minimális túlhajtási lehetőség, amikor 96 MHz az elérhető sebesség 6,25MHz-es kvarccal. A kvarc nélküli órajel a hőmérséklet függvénye, illetve túlhajtáskor is - figyelni kell a hőmérséklet befolyásoló hatására.
Ugyanez RCFAST beállításával:
Ami a lényeg, az most jön. Miért is jó igazán, pontosabban miben is jó igazán ez a mikrokontroller? A 8db32 bites magban. Íme egy teszt a párhuzamos futtatásra. 16..23 lábak a kimenetek, de átírható a szoftverben tetszőlegesen. Az output spin egy külső függvényként működik, ezt hívja meg a blinker2.spin főprogram. Hogy ez nem nagy szám? 80MHz-en már az. Hogy ez mire jó? Beszéljenek a számok és a képek: Fine-Grained Parallax Propeller based multi-chip SIMD Parallel Processor Szuperszámítógép mikrokontrollerekből.
Többmagos ARM3 rendszer egy csipen USB -vel, 512k 1M byte on chip FLASH programtárral néhány ezer forintért. Bővebben: Link
Ez van, senki nem használja a Propeller-t. Tényleg led-et villogtatni jó de egy bonyolultabb feladatot megcsinálni vele nem egyszerű, mármint nem az obex-ről letölteni.
Amiben verhetetlen az a videó és VGA kimenet, meg ha nagy frekvenciás órajel kell 128MHz ig, a spin nyelv is elég frappáns kár hogy a csúnya kapcsos zárójeles C-t nem váltja le, meg gyorsan lehet rátölteni a programot, nem egy több gigabájtos fordító kínozza a gépet lásd MPLABX. A beígért propeller2 is már késik éveket.
A Propeller 2 a felhasználóknak készül. A pótigények is belekerülnek. Nem gondolnám, hogy késik, ahogyan azt sem, hogy egy ARM lesz ilyen megbízható. Én úgy mondanám, kevés olyan feladatról tudok, amit ne tudnék a propellerrel megoldani. Mindenkit megtéveszt a 32kb memória. Pedig - rengeteg. Csak érteni kell a feltöltéséhez. Én persze értem, hogy mindenki kényelmes fejlesztőkörnyezeteket akar, de azoknak nagyon súlyos árai vannak. Fordítási hibák, folyamatos fordító frissítés, operációs rendszer frissítések, oprendszer kapcsolódó frissítései, szoftveres hibák tömkelege, archiválási gondok, reprodukciós problémák, vírusok, memóriazabáló szoftverek stb. Aki hardvert akar készíteni - maradjon a hardvernél. Ez az én véleményem. A csilivili maradjon meg a programozóknak és a menedzsereknek.
A hozzászólás módosítva: Dec 4, 2015
Sajnos nem tudom másnak, csak késésnek értelmezni:
Idézet: „The last time we provided a schedule update for Propeller 2 was in February, 2014. That schedule had us in the foundry this month with samples arriving by the end of October. Today it’s nearly October and we’re nowhere near being ready to submit any design files for fabrication! The drawback of our transparency about an upcoming product is that all of us must be willing to accept the research and design cycle that accompanies a small company that decides to design its own chip. But we think the benefits are much bigger: early FPGA releases, the open source Propeller 1, and early details to design the Propeller 2 into your project before it is available. This is your chip as much as it is ours. ... There is no date. This is taking longer than we thought. Our best estimate is that customers could hope for an FPGA image by Christmas.” Idézet: „senki nem használja a Propeller-t” Dehogynem. Egész remek dolgokat lehet összehozni vele egész könnyen. Például megmutatom a készülgető, nagyon kombinált laborműszerem kijelző és kezelő felületét. Nagyjából egy szatyornyi lcd kijelzőt takarítok meg vele és még az asztal túlsó végéről is olvasható. Egy öreg monitor kellett csak hozzá, amit odatehetek a páka közelébe és nem kell féltenem, mint pl. egy laptopot a fröccsenő óntól. Kell még egy egér, amivel állítom az értékeket. Ja, és kb. két óra munkám van benne eddig. Kezel majd két-három adatvonalat, egy usb kapcsolatot vagy sd kártyát, még nem tudom. Lesz még olyan funkciója is, hogy egy-egy műszer kijelzését átváltja óriás számokra, ilyen vaksi felhasználóknak, mint én. Elég sok mikrovezérlővel dolgoztam már, de messze a legegyszerűbben ezzel lehet megcsinálni ilyesmit nagyon gyorsan és kompromisszumok nélkül. Szóval nem rossz kis eszköz ez, csak meg kell érteni a filozófiáját.
Jól néz ki - megérne egy cikket is. Azért nem elfelejtendő, hogy ezeket a hozzászólásokat kezdőknek igyekeztem címezni. Sok mikrokontrollerrel futottam össze és ez a szám csak gyarapodik. De nagyon kevés olyat tudok mondani, amihez ennyire kevés alkatrész és ilyen kicsi, kompakt szoftverkörnyezet tartozik és egyből használható. A Propeller és a Propellertool mint páros - jól sikerült konstrukció. Elsőre a Launhpad is nagyon vonzó volt, de olyan mennyiségű a kínálat, hogy amit ma beszerzek, holnap már nincs is. A demo fejlesztőpanelt is szinte azonnal lecserélték másik chipre. Amit én rendeltem az mást tartalmazott, mint amit a barátom. A gépemre feltelepített többszáz mega szoftverről inkább ne is beszéljek és arról sem, ha valamit komolyan akarok - vegyem meg a fizetős verziót... A propellertool ingyenes. Propeller - egy van, de teszi a dolgát. Nálam 5 éve vannak beépítve a házba. Nincs velük gond. Egyet sikerült csak ellőnöm tesztelés közben, mert 24V-véletlenül hozzáért a drótrengetegől az egyik lábhoz. De csak azt az egy portlábat nem tudom használni, a többi azóta is megy. Ha olcsóbb is lenne - talán nem kapna ennyi kritikát. A programozása zseniálisan egyszerű. Igen vannak szögletes zárójelek. Azonban amit az ember sűrűn használ - kiteheti külső függvényként. Utána akár egy a betű is megfelelhet egy sor programnak. Többé nem kell használni a zárójelet sem. Olyan mikrokontrollerről pedig eddig nem hallottam a propelleren kívül aminek a szoftverében a kapcsolási sémát is archiválni lehetne. Ez is hatalmas előny.
Sziasztok! Az ember tudatos lény, próbál tervezni. Ez nem mindig sikerül, mert az élet felülírja a teendőket. Ezért most egy TIL311-es kijelzőmeghajtására írt példaprogramot tennék közzé - szintén kezdő kategóriában. A program a ciklusnak megfelelően elszámol 0-tól F-ig, majd lekapcsolja a digitet. A második digitnél ugyanez a helyzet. Ha egyszerre kell használni a két kijelzőt, akkor nyilván 25Hz fölötti sebességgel kell váltogatni a kódokat és az engedélyeket, hogy folyamatos képet lássunk mindkét kijelzőn.
Mivel 32 IO áll rendelkezésre lehetséges a kijelzők párhuzamos meghajtása is. Akkor a BCD kódolást is kijelzőnként kell megcsinálni. Mivel 8 kijelzőt lehet ilyen módon párhuzamosan rákötni és 8 cog van a mikrokontrollerben, akár egy kijelzőt egy maghoz is köthetünk. Azaz párhuzamosan működhet mind a 8 kijelző, egymástól függetlenül. A közösített BCD vezetékekkel vezetéket lehet megspórolni. Ilyen módon lehetséges 8 kijelző meghajtása 32 helyett mindössze 12 vezetékkel. Így megmarad 20db IO láb, amit felhasználhatunk például DS hőmérők fogadására, vagy fordulat, esetleg feszültség mérésére. Mivel nagyon sok példaprogram elérhető az obex.parallax.comoldalról, könnyedén építhető ilyen módon akár 8 digites multiméter, vagy tekercselőgéphez fordulat számláló. A TIL311-es kijelzők előnye, hogy betűket is képes kijelezni. Régi bevált megoldásként C520D vagy A2020 IC-vel felépített panelméternél a feszültség értékeket számokkal, áram értékeket "A" betűvel lehetett egyszerűen megjeleníteni. A kapcsolás itt most nem tért ki a TIL 311 tizedespontjainak kapcsolására - azok további 1 lábat foglalhatnak le kijelzőnként.
Sziasztok!
Sokféle eszközt programoztam már (PIC, Arduino-AVR, PC, stb), Parallaxot már néztem többször, de nem mélyültem el benne. Teljesen kezdőként kérdezem, hogy ez valóban 8 db 32 bites processzort jelent, ami képes párhuzamosan dolgozni, tehát meg tudom azt csinálni, hogy külön feladatok futnak párhuzamosan, melyek akár az IO lábakat is külön vezérlik (nyilván nem ugyanazt a lábat) vagy valójában ugyanaz, mintha megírnám egy erősebb PIC-re a feladatot multitaszkosan, pl. 10ms ideig fut az egyik task, 10ms a másik, ... ? Lenne egy erős procit igénylő munkám, ahol 4-5 tasknak kellene valóban párhuzamosan futni, sok precíz időzítésre lenne szükségem, ezért gondoltam a P8x32-re. Nem tudom, hogy ez tényleg jobb-e ilyen feladatra, mint egy PIC szálakkal? A hozzászólás módosítva: Ápr 1, 2016
Pontosan így működik. A nyolc mag önállóan fut, van saját memóriája, annyi a korlát, hogy a közös memóriához és pár belső eszközhöz minden nyolcadik ütemben fér hozzá.
Szia! Ha azt mondom 8 VGA monitort képes meghajtani egyszerre - elmondtam mindent? Igen a magok valóban önállóak, csak a perifériákhoz fér hozzá rotációsan. A legtöbb infót magyar nyelven itt találod meg. A Legnagyobb hátrányaként a 32k memóriát említik. Nekem egy webszerverem fut kevesebb mint 16k-ban. Érdemes megnézned ezt a demót is, mi fér 32k-ba:
Szia!
Sajnos nem vagyok egy Propeller szakértő, ezért fordulnék most hozzád egy kérdéssel. Lehetséges-e megvalósítani ezzel a processzorral GSM és GPS modul kezelését? A GSM modultól érkező adatokból kellene kiszűrni a földrajzi koordinátákat, és továbbítani SMS formájában, vagy Google szerverre feltölteni (okostelefonon megjelenített térképen meg tudjam nézni, hol van a készülék). I2C buszos IO bővítőn keresztül 8-10 digitális bemenetet kellene figyelni, illetve 8 relés kimenetet kezelni. Mindezt autós környezetben (-40 ... +85C hőmérséklet).
Szia! Köszönöm a megtisztelő bizalmat - de szakértő én sem vagyok azért . Itt találsz némi infót,illetve Itt elég sok, mások által már megírt szoftvert.. Nekem van webszerver mintám, amit a propellerben futtatok. Azaz, ha egy szerverhez csatlakoztatod - akkor akár okostelefonnal, PC-vel vagy más TCP/IP alapú eszközről lekérdezheted az adataidat. A GSM-hez bár én nem értek, de AT parancsokkal vezérelhetőek tudtommal, így sima soros kommunikáció révén már lekezeli a propeller is. Nekem a padlástér a tesztkörnyezetem. -15 től 90 fokig kapott mindent a propeller. Hőmérséklet probléma nem volt vele. Autóban inkább a rázkódásra kell odafigyelni. De ha nem propeller kell feltétlenül, van kész megoldásom GSM-re és GPS-re. De ez már magánjellegű.
Időközben találtam egy ilyet is. Ez tartalmazza a propellert és a vevőt, valamint a külső antennát. Csak programozni kell.
Próbálom megérteni a chip működését, az interpreter működése nem teljesen világos. Az interpreter a közös memóriában van, tehát ha Spin-ben írom a programot, a Cog-ba nem a Spin utasítás kerül, hanem a magas szintű Spin utasításnak megfelelő alacsony szintű assembly utasítások. Tehát minden egyes Spin utasítás végrehajtása előtt betöltődik az utasításnak megfelelő asm kód, de mivel ez a közös memóriából történik, ezért csak akkor történik ez meg, amikkor az aktuális Cog hozzáférhet a közös memóriához.
Ha valamit nem jól gondolok, javítsatok ki.
Már látom, nem jól gondoltam a dolgot. Találtam egy részletesebb leírást.
Én meg sem próbáltam megérteni - csak használom... Amit én tudok a működéséről az annyi, hogy a chipnek 64k memóriája van összesen, amiből 32k az interpreter. Ha nem használsz külső memóriát akkor a feltöltött szoftvered addig működik, amíg van tápfesz. Induláskor megnézi, hogy van-e az RX TX lábon valami, vagy az i2c-ne külső memória. Ha van külső memória, akkor átemeli a 32k szabad memóriába a külső eeprom tartalmát és onnan már megint csak addig képes futni , amíg van tápfesz - vagy meg nem szakítja az RS232 csatlakoztatásakor egy reset. Mivel interpreter alapú, csak gyanítom, hogy valós időben fordít, ezért lehetséges a spin fájlok azonnali végrehajtása. Nyilván ezért is lassabbak a spin utasítások, mint a direkt assembly-k. Megfeledkezel amúgy a cog-ramról, hiszen van minden cognak saját memóriája is. Ez a jegyzet talán segíthet kicsit. Az ábrán szépen ki vannak rajzolva a magok, hogyan is néz ez ki.
Van egy nagy kedvencem Propellerre. Ma már megmosolyogtató, de mégis valahol lenyűgöző. Igazán az a botrányos, amikor az ember rátölti a demoboardra, ráköt egy VGA monitort és egy multimédia hangszórót: Turbulence demo Parallax Propeller (1) mikrokontrollerre
|
Bejelentkezés
Hirdetés |