Fórum témák
» Több friss téma |
Fórum » MPIDE Arduino kompatibilis platform PIC32 mikrovezérlőkhöz
Témaindító: GPeti1977, idő: Ápr 25, 2014
Témakörök:
Sokan ismeritek az Arduino-t mint fejlesztő környezetet 8 bites AVR mikrokontrollerekre, ugyanez megvan a PIC32 kontroller családra is, a hozzátartozó fejlesztő eszközök itthon is forgalomban vannak, számomra meglepő hogy szinte alig ismert ez a fejlesztő környezet. Például egy PIC32MX795F512L kontrollerrel mi mindent el tudunk készíteni ami egy 8 bites AVR-rel szinte lehetetlen, szinte kimeríthetetlen flsah memória, RAM, beépített RTC, Ethernet RMII interfésszel, 2 CAN bus, több SPI, UART, USB host vagy device stb.
Itt a honlap ahol több infó olvasható róla: Bővebben: chipKIT Saját fejlesztésű internet rádió és MP3 lejátszó: Bővebben: HE A hozzászólás módosítva: Ápr 25, 2014
Kösz a leírást.
Úgyis pont ilyen piccel foglalkozok mostanában. Lehet megtetszik belőle valami.
Pedig teljesen arduino szintaktikája, felépítése van, illetve sok hardver specifikus könyvtár is át van írva benne, sőt annál is több van, csak nagyobb kontrollerrel. Hátránya hogy 3,3V ról megy de ez mégsem hátrány mert a PIC legtöbb lába 5V kompatibilis, illetve a hozzá tartozó fejlesztő panelek kissé drágábbak.
Nem tudom leírhatom kik az itthoni forgalmazói nem reklám hanem tanulás céllal? Bővebben: Digilent
Fejlesztéshez szóbajöhet a Fubarino SD is, kicsit barátibb árral.
Vagy a kisebb PIC32-esek, ezek még olcsóbbak is. (Fubarino Mini, ChipKit DP, ChipKit PI, ...) Valamint lehet kapni PIC32MX250F128B kontrollert DIP28-as tokban előre programozott USB bootloaderrel is kb 1000 Ft-ért. Ehhez kell 3.3V táp, kvarc, pár kondi, és már lehet is használni. (Kis trükközéssel a kvarc is elhagyható, de akkor módosítani kell kicsit a bootloadert.) Nem MPIDE, de PIC32: http://www.cpustick.com. Itt van egy komplett BASIC rendszer többek között PIC32-re, érdemes megnézni ! Fubarino SD-re egy az egyben feltölthető. A forrás egy része is elérhető, sikerült működésre bírni egy Fubarino Minin is. Vissza az MPIDE-hez. Elkezdtem egy Forth-ot portolni ChipKit DP-re, de sajnos mostanában nincs időm foglalkozni vele. Ami eddig elkészült az itt elérhető: https://github.com/wittend/CKF (Van benne például analóg, digitális I/O, megszakítás, LCD, PWM, I2C, OneWire.) Ha feltölti valaki a Basic vagy Forth interpretert, onnan kezdve egy terminál emulátor kell csak a programozáshoz. Mindkettővel interaktívan lehet "piszkálni" a kontrollert. Szerintem elinduláshoz hasznos kis cuccok.
Most próbálkozom megismerni a 16 és 32 bites PIC-eket, bár a 8 bitessel (PIC18) is keveset foglalkoztam még. Tegnap "botlottam bele" valami link segítségével ebbe az MPIDE fejlesztő környezetbe. Letöltöttem, telepítettem, de még nem próbáltam. Arduinoval már foglalkoztam keveset, tetszik az egyszerűsége - szemben a most "szelidítgetett" MPLABX-el, bár az meg egy nagyágyú. Keresgéltem kicsit a neten, és ezt találtam, így már nekem is érdekes ez a fejlesztő környezet. Ahogy nézem, a ChipCAD-nek most nincs ilyen előre programozott PIC-je. Van gyári PICkit2-m illetve 3-am is, be lehet valahogy ezzel égetni a bootloadert?
Temészetesen Picki3- mal be lehet égetni a bootloadert.
Összeraktam egy nagyjából DP32-nek megfelelő panelt. Beégettem (PICkit3-al) a neten talált bootloader-t. Sikerült elindítanom az mpide-t (linux alapon).
1. Nem tudom, az e a normális működés, hogy a LED1 szaporán villog? 2. Programot beégetve fut a program. (2 LED villog váltva, lassabban). Ha viszont elveszem, majd visszaadom a tápot, illetve ha megnyomom a reset gombot, visszatér az alapállapot, a szapora villogás. Ez normális? Hogyan lehet indítani az általam beírt programot?
Induláskor reset után pár másodpercig villog a LED1 azután indulnia kell a programnak. Normális, így van megírva a bootloader.
Nekem nem indul a program, marad a villogás. Az MPLABX mellé is települ valami olyasmi, mint amit anno a PICkit2-höz is adtak, csak akkor még volt window$-om. A PICkit3-hoz már nem telepítettem ilyet, mert nincs window$-om. (Mióta nyögdíjas vagyok, kerülöm a picipuha software-it.)
Szóval azzal égettem be a bootloadert, de lehet, hogy nem jól? A "hex" file-on kívül meg lehetne adni valami SQTP-t is, de az nem tudom mi, a DP32 anyagában nem találtam, csak a hex file-t. Azt is olvastam, hogy a PIC32-eseknél külön memória van a bootoláshoz, most megpróbáltam kiválasztani a boot memóriát (eddig úgy volt beállítva, hogy az égető program válasszon), így egyáltalán nem villog, nem sikerült az mpide-vel sem programot tölteni bele. Valamit biztosan nem jól csinálok, csak rá kellene jönni, hogy mit? Van még egy kósza gondolatom, valamit ír a DP32 manuálja, hogy két gombot kell megfelelően megnyomni, akkor megy át a bootloaderbe. Majd holnap megpróbálom hozzá tenni a másik gombot is, jelenleg nincs kiépítve csak a reset. És sajnos az ángliussal is eléggé hadilábon állok, csak bogarászok, nem biztos, hogy mindig megfejtem a lényeget.
Válaszolok magamnak....
Kiépítettem az eredeti DP32 "BTN2/PGM" nyomógombját, és újra írtam a bootloadert a PICkit3-al, megint hagyva, hogy az égető program válassza a memóriát. Úgy tűnik, a program beírása után egyszer vissza kell váltani a két gomb (másik a RESET) segítségével a bootloader-re. Így most működik.
Nagyon kevesen használják azért is nincs válasz, de ha beszélünk róla akkor többen fogják használni már csak a kereső programok miatt is.
Idézet: Konkrátana BTN2 gombot kell lenyomva tartani, miközben lenyomod és felengeded a Reset gombot (ezt írják). „Van még egy kósza gondolatom, valamit ír a DP32 manuálja, hogy két gombot kell megfelelően megnyomni, akkor megy át a bootloaderbe.” Idézet: Csöppet sem meglepő ez a hozzá való kártyák árát, koncepcióját és viszonylag gyenge támogatottságát tekintve.„számomra meglepő hogy szinte alig ismert ez a fejlesztő környezet” Az Arduino koncepció azért lett annyira sikeres, mert egyszerű és olcsó eszközt adott a felhasználók kezébe. Ezzel messze lekörözte az elődjét, a Wiring-et, pedig az nagyobb teljesítményű mikrovezérlőt tartalmazott. De az a kártya drágább volt és bonyolultabb. A PIC32MX795F512L mikrovezérlő valóban nagytudású, kár, hogy egy normális kártyát sem tdtak tervezni hozzá. A PIC32 Ethernet Starter Kit jó lenne, de egy agyonminiatürizált csatlakozón vezetnek ki mindent. A ChipKIT MAX32-ről meg lefelejtették az Ethernet csatlakozót. Ennek ellenére közel $50 az ára (kb. annyi, mint a Beagle Bone Black RevB ára, ami már Linuxot futtat!), de még egy $55-os Network shield is kellene hozzá, hogy a beépített Ethernet vezérlőt használni is lehessen. Ha összevetem a konkurencia hasonló kaliberű termékeivel, akkor mellbevágó a különbség: -A Texas Instruments Tiva C Series EK-TM4C1294XL Launchpad kártya $20-ért már tartalmazza az Ethernet csatlakozót és programozó/debugger is van rajta. Energia (Arduino fork) környezeteben is programozható. A CCS 6-ba pedig importálható és debugolható a projekt... - A GR-Sakura kártya (full verzió) 12511 Ft-ért szintén tartalmazza az Ethernet csatlakozót. Arduino-szerű Web Compiler van hozzá. Nem akarok messzemenő következtetéseket levonni, csak annyit, hogy "van másik!", s ezt jó lenne a Microchipnek (és partnereinek) is szem előtt tartani! A hozzászólás módosítva: Jún 13, 2014
MX7CK board-ot használok ethernet kliensként, mivel a panel drága meg van ami rajta van, meg ami nincs, meg amúgy is csak prototípushoz jó kísérletezni ezért terveztem egy új panelt és az van használva.
Idézet: Korábban én is pont ilyen kártyát szerettem volna, csak az ára tartott vissza... Építeni meg nem állt módomban. Közben hozzájutottam az előző hozzászólásomban említett kártyákhoz, meg két TP-Link WR703N routerhez (OpenWRT-vel jól használható), s ezekkel jól elvagyok.„MX7CK board-ot használok ethernet kliensként” Jut eszembe: vagy két éve pályázatot hirdettek szabad forrású TCP-IP és USB stack készítésére az MP-IDE részére (mert a Michrochip USB és TCP-IP stack nem teljesen szabad - pl. nem publikálhatod a projektedben, csak a forráskód általad írt részét teheted közzé). Mi lett ebből a pályázatból? Mellesleg a bennfentesek szerint hasonló jogi korlátozások miatt lett a Wiring és az Arduino hardver alapja Atmel mikrovezérlő, nem pedig Microchip.
A DP32 kártyán 4 LED van. A programban hivatkozhatunk ezekre mint PIN_LED1 ... PIN_LED4-re. Belenéztem a kártyához tartozó Board_Defs.h és Board_Data.c forrásokba. A "h" fileban a következő módon vannak definiálva:
(Saját építésű tesztpanelem van, csak a kristály, a tápszűrő kondik, a RESET és a PGM gombok vannak rajta fixen. A többi áramköri részek kis kiegyészítő paneleken rakhatók hozzá.)
A chipKIT™ DP32™ Reference Manual-ban az 1. táblázat tartalmazza az IC lábak hozzárendelését.
Nagyon köszönöm, így már meg tudom csinálni, amit szeretnék!
Ez már csak kíváncsiság: mi benne a logika? Lehet tudni, valójában hol köti össze a kiosztott számot a tényleges lábbal (porttal)? Talán a fordítóban van beépítve? Idézet: MPIDE vonatkozásában nem tudok nyilatkozni, mert én nem használom. Arduino esetében a pins_arduino.h fejléc állományban definiálnak olyan tömböket, amelyben minden kiosztott számhoz be van jegyezve, hogy melyik porthoz, illetve a porton belül melyik helyiértékhez (bithez) tartozik.„Lehet tudni, valójában hol köti össze a kiosztott számot a tényleges lábbal (porttal)?” const uint8_t PROGMEM digital_pin_to_port_PGM[] és const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] a két tömb. Idézet: Túl sok logikát ne keress benne!„mi benne a logika?”
A hozzászólás módosítva: Jún 14, 2014
OK, nem keresem a logikát benne!
Tulajdonképp "tovább fejlesztették" az arduino környezetet, az általad említett ".h" ebben is megtalálható. Több helyen is, mert ezt a környezetet lehet használni sokféle gyártású (köztük arduino) panelekhez is. A program könyvtár struktúrája elágazik arduino és pic32 irányba, sok azonos nevű file is található bennük, gondolom a hardware különbségek változatai. Végül többszörös mélységű include-okon keresztül eljutottam a microvezérlő típusok szerinti "h" file-okhoz. Az enyémhez való több, mint 13000 sor.
A Chipkit DP32 boardot hogyan tudom kiválasztani? Nekem nincs ilyen a listában.
DIP tokos és könnyen után építhető.
Tools -> Board -> chipKIT -> chipKIT DP32
(Nekem kubuntu linuxom van, és az "mpide-0023-linux32-20140316" verzió.) Valóban könnyen utánépíthető, én is az elmúlt héten csináltam.
Bizonyára egy frissebb MPIDE változatot kellene telepíteni.
Erre sajnos csak "hülye" választ tudok adni: milyen jó, hogy mióta nyugdíjas vagyok, nem kell használnom a PiciPuha oprendszerét!
Az én menüm így néz ki: A hozzászólás módosítva: Jún 21, 2014
Hátha adok valakinek ötletet...
A gyári Microchip panelek baromi drágák, még évekkel ezelőtt "gyártottam" egy tanuló panelt csupalyuk nyákra. Csináltam egy alap panelt, amibe kétféle 40 lábú PIC18-at lehetett tenni. A "perifériák" öcsi-panelekre készültek, tüskesoros csatlakozással. Aztán sokáig altattam a tanulás projektet. Később egy kisebb arduino panelt raktam egy hasonló csupalyuk lapra, hogy a meglévő öcsi-paneleket tudjam használni hozzá. Aztán nemrég megint csináltam egy panelt PIC16-osokhoz, és közben bukkantam az mpide környezetre. Nehéz lett volna átszabni a panelt PIC32-re, begurultam, és csináltam egy általános panelt, amibe 8-40 lábig bármilyen DIP tokos mikrovezérlőt be lehet rakni. A csoporthoz igazítást egy-egy öcsi-panellel lehet változtatni, amit a textool foglalat fölé lehet bedugni. És még egy öcsi-panel ötlet. Csináltam szint illesztőt, de nem volt kedvem kétfélét, a két lehetséges iránynak megfelelően. Ezt öcsi-öcsi-panellel oldottam meg. (Kissé talán hülye ötlet csupalyuk panelon SMD FET-et és ellenállásokat használni, de csak így fért el.) A képeken a fő-panel az általam kreált DP32. A típushoz igazító öcsi-panelen csak a mindenképp szükséges kiegészítők vannak: táp és GND csatlakozás, USB vonal csatlakozás, a kristály, a reset gomb, és egy gomb, ami a bootloader/betöltött program váltáshoz kell.
Még gyorsan módosítottam a PIC32-höz való öcsi-panelt. A LED1-et érdemes rátenni, mert azon látható, mikor van a panel feltöltés módban (szapora villogás), illetve a feltöltés is látszik rajta (némi össze-vissza villódzás).
Idézet: Nálad 2104. márciusi verzió van telepítve, Petinél meg 2012-es. Ez lehet az eltérés fő oka... „Az én menüm így néz ki:”
Köszi amúgy is le akarom cserélni, mert
építettem egy web szervert de nem stabil, csak akkor ha rendes hálózaton van, pc-vel összekötve cross kábellel jó, úgy jó csak ha a client.print utasítások közé delayus(250) késleltetést berakok, így jó legalább is SD kártyáról történő "kiprinteléskor" működött stabilan. A hiba valamelyik ethernet függvényekben van de ezt csak az tudná kijavítani aki írta, fel kellene venni a kapcsolatot aki ezt megoldaná, regisztráltam a chipkit.net fórumra ott szokott lenni a fejlesztők közül is aki tudna segíteni, bár az ethernet a Microchip által megírt függvényektől megy. A hozzászólás módosítva: Jún 22, 2014
|
Bejelentkezés
Hirdetés |