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
![]()
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.
![]()
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?
![]()
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
![]()
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.
![]()
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 |