Fórum témák

» Több friss téma
Fórum » MPIDE Arduino kompatibilis platform PIC32 mikrovezérlőkhöz
Lapozás: OK   2 / 2
(#) tomi52 válasza icserny hozzászólására (») Jún 22, 2014 /
 
Hát látod, én ezt a különbséget nem szúrtam ki. Mivel alig egy hete bukkantam erre a lehetőségre (Arduino környezetem már régebb óta van, szoktam is nézni, van-e frissebb), hát természetes, hogy nálam a legújabb van.
(#) tomi52 hozzászólása Júl 16, 2014 /
 
Üdv! Már megint kérdezek.
Saját librari-t próbálok írni. Még csak igen kevés van belőle, mert sokáig elakadtam. Nagy nehezen rájöttem, hogy ha "delay"-t teszek bele, ott megáll a futás. A "delayMicroseconds"-al viszont működik, természetesen az időt felszorozva kell megadnom. Mi ennek a magyarázata? Miért áll meg a delay-re? Nem tudom, lényeges-e, az áramkör saját készítés, nagyjából egy DP32 klón.
(#) tomi52 hozzászólása Aug 6, 2014 /
 
Az I2C-nél elakadtam. Még az eszköz címfelismerő mintaprogramja sem ad rendes eredményt. Próbáltam MCP23008-al, és kétféle RTC-vel is. Az MCP23008 arduino lappal működik, csak a 0-ra végződő cím esetén nem. Annyit találtam a neten, hogy ez hiba, a 0-ra, 8-ra végződő címeket nem kezeli jól. De a DP32 (saját építésű) klónommal és mpIDE-vel nem boldogulok.
Valaki használta már ebben a környezetben az I2C-t?
(linux alatt, mpide-0023-linux32-20140316 verzió)
(#) GPeti1977 válasza tomi52 hozzászólására (») Aug 6, 2014 /
 
Nem tudok pontos választ adni de elég bug-os ez fordító. Akartam vele egy komolyabb dolgot összehozni de nem sikerült, kellett volna egy csomó hardveres perifériát használni hardveres spi, külső megszakítás, uart, I2C, de ahogy haladtam vele ha az egyik perifériát akartam használni akkor a másik nem működött, pontosan nem tudom milyen sorrendben akadtam de majd leírom pontosan; érdekes hogy mikor az MPLABX -szel ismerkedtem abban szintén nem működött az I2C a PLIB.h alapján M32-vel, eepromot akartam kezelni de az i2crestart után kellett egy nagyon kevés késleltetés nop-okkal, de mire erre rájöttem 2 munkanap szkópolás, kísérletezés. Az MPLAB alatt eddig nem tudtam összehozni egy multivektoros INT0, INT1 megszakítást sem, nem tudom mi van vagy az értelmi szintemmel van gond (azaz hülye vagyok) annak ellenére hogy más fordítóknak van legalább mindenre egy példa programja amivel ez napi rutin, vagy a Microchip-pel van gond, nem tudom.

Eddig nem sikerült kihasználnom a 32 bites proci előnyeit, eddig két dolog sikerült ami egy atmeles arduinóval nem megvalósítható, egy korlátos web rádió, meg pendrive-ról sikerült lejátszanom egy mp3 számot vs1011 segítségével, sajnos a file kezelés nem ment megint a fenti okok miatt, még számot sem tudtam váltani, semmit.
(#) tomi52 válasza GPeti1977 hozzászólására (») Aug 6, 2014 /
 
Kössz a választ, nem valami biztató. Most az MPLABX-el próbálkozom (nekem csak linuxos dolog jó). Legalább így megtudtam - ha odajutok -, hogy az I2C-hez késleltetnem kell.
Végül is milyen fejlesztő eszközt használsz?
Assemblyt használsz? Ha igen, azzal mi a tapasztalatod?
Bár azzal nagyobb programot írni....
(#) GPeti1977 válasza tomi52 hozzászólására (») Aug 6, 2014 /
 
Hogy miket használok? PIC12, PIC16, PIC18-hez van Proton+ basic fordító, AVR-hez Bascom basic fordító ez a legjobb, AVRStudio (ezzel még csak egy valami készült) Arduino, MPIDE.
Ahol dolgozom ott megvettük az MPLABX legdrágább verzióját de még eddig senki nem használta.
ASM nekem magas.
(#) tomi52 válasza GPeti1977 hozzászólására (») Aug 6, 2014 /
 
Mint említettem, nekem csak linuxon futó eszköz jó, mióta nyögdíjas vagyok, kerülöm a picipuha eszközeit, így az azon futókat is. Ugyan tudom, hogy van a linuxra igazi nem cég által írt eszköz is, de még nem néztem utána, mert azt feltételezem, az nem minden PIC-hez jó.
Az assemblert szerettem, aktív koromban több processzoron is írtam néha-néha programot, vagy csak modulokat magas szintű nyelven írt programhoz, csak hát az nagyon macerás. És nagyon kell ismerni hozzá a hardware-t is, márpedig a mikrovezérlők terén ez nálam meglehetősen hiányos ismeret.
Ami a nyelveket illeti, a 70-es évek elején Videoton R10-en egyszer még gépi kódban is írtam egy rövid programot, amit a "mérnöki pult" kapcsolóin vittem be a gépbe, és mentettem ki lyukszalagra. Régen volt....
(#) GPeti1977 hozzászólása Okt 8, 2014 /
 
Letöltöttem KS108 128x64 LCD kijelzőhöz drivert innen: Bővebben: ChipKit GLCD

az a bajom vele hogy nagyon lassan ír a kijelzőre, van másik fordítóm is de az vagy 10x gyorsabban rajzolja ki a pixeleket, most megpróbálom átírni a driverét, eddig fél siker van, 2x gyorsabb lett.

  1. void _GLCD::send(unsigned char chip, unsigned char val)
  2. {
  3.         digitalWrite(this->pins.rw,LOW);
  4.         pinMode(this->pins.db0,OUTPUT);
  5.         pinMode(this->pins.db1,OUTPUT);
  6.         pinMode(this->pins.db2,OUTPUT);
  7.         pinMode(this->pins.db3,OUTPUT);
  8.         pinMode(this->pins.db4,OUTPUT);
  9.         pinMode(this->pins.db5,OUTPUT);
  10.         pinMode(this->pins.db6,OUTPUT);
  11.         pinMode(this->pins.db7,OUTPUT);
  12.  
  13.         digitalWrite(chip==0 ? this->pins.cs1 : this->pins.cs2, HIGH);
  14.  
  15.         digitalWrite(this->pins.db0, val & 0b00000001 ? HIGH : LOW);
  16.         digitalWrite(this->pins.db1, val & 0b00000010 ? HIGH : LOW);
  17.         digitalWrite(this->pins.db2, val & 0b00000100 ? HIGH : LOW);
  18.         digitalWrite(this->pins.db3, val & 0b00001000 ? HIGH : LOW);
  19.         digitalWrite(this->pins.db4, val & 0b00010000 ? HIGH : LOW);
  20.         digitalWrite(this->pins.db5, val & 0b00100000 ? HIGH : LOW);
  21.         digitalWrite(this->pins.db6, val & 0b01000000 ? HIGH : LOW);
  22.         digitalWrite(this->pins.db7, val & 0b10000000 ? HIGH : LOW);
  23.  
  24.         digitalWrite(this->pins.e,HIGH);
  25.         this->lcd_delay();
  26.         digitalWrite(this->pins.e,LOW);
  27.         this->lcd_delay();
  28.  
  29.         digitalWrite(chip==0 ? this->pins.cs1 : this->pins.cs2, LOW);
  30. }


A pinMode Output-okat kivettem mert nem kell mert soha nem olvasok a kijelzőről, illetve
az enable pin H szintjét ami eddig 2,2us volt megcsináltom üres for ciklussal 200ns körülire.
A kijelző minden portja szabadon vélasztható lábra köthető de a data 0..7 lábakat a PIC32 PORB:0 .. PORTB.7 lábaira kötöttem hogy a 8 sor
" digitalWrite(this->pins.db0, val & 0b00000001 ? HIGH : LOW); "
kínlódást ki tudjam váltani egy sorosra a plib.h -t használva:
mPORTBWrite(val); // &0xFF
vagy
LATB = (val & 0xFF);
A jelek ottvannak a portokon de még nem működik valamiért.
Egy kis hordozható oszcilloszkóp készülne ígéretes a sebesség is saját A/D átalakítóval 200kS/s mintavétel van ez 20kHz jelig használható, illetve párhuzamos portot A/D átalakítót 10MS/s sebességgel tudtam beolvasni akár egyszerre több mint 100kB adatmennyiségig(1MHz jel vizsgálható) de ezt még nem próbáltam tényleg működik-e jól csak ha lesz A/D IC-m.
A hozzászólás módosítva: Okt 8, 2014
(#) Hp41C válasza GPeti1977 hozzászólására (») Okt 8, 2014 /
 
A KS0108 -nak 140 ns (ld. Adatlap tasu) adatelőkészítési időt kell biztosítani az E jel felfutása előtt. Az adat beállítása után egy kis késleltetést kell betenni.
(#) GPeti1977 válasza GPeti1977 hozzászólására (») Okt 8, 2014 /
 
Közben kaptam választ miért is nem jó a web szerver, sajnos nem nagyon értem a lényeget hogy akkor mit is kellene csinálni hogy jó legyen:
Bővebben: web server probléma
(#) GPeti1977 válasza Hp41C hozzászólására (») Okt 9, 2014 /
 
Az volt a gond hogy a portb 16 bit széles, mikor beírtam a data értékét akkor a portb.8 .. 13 ra kötött vezérlő lábakra L szintet adott, nem tudtam kimaszkolni, így most a data lábakat a porte re tettem így már jobb egy fokkal, igazából az lenne a legjobb megoldás ha az lcd-t a PMP modullal vezérelném.
(#) Hp41C válasza GPeti1977 hozzászólására (») Okt 9, 2014 /
 
LATBINV = (val ^ LATB) & 0xFF;
(#) GPeti1977 válasza Hp41C hozzászólására (») Okt 10, 2014 1 /
 
Köszi a segítséget, minden ilyen arduinós digitálwritét átírtam akár MPLAB is lefordítható.
Csak egy gond van hogy nem lett sokkal gyorsabb, a PIC18F 32MHz menő Proton+ basic fordítómmal a vonalat olyan gyorsan rajzolja hogy nem látszik villózni a képernyő, viszont a 32 bites 80MHz procinál villódzik. Meg is mértem az enable szignál Proton+ nál 1us, a pic32-nél 3,5us periódusidő van, és már nem a portra írás miatt lassú mert ott levettem úgy az időzítéseket hogy éppen működjön, a számításoknál időzik sokat de ott nincs semmi bonyolult csak alapműveletek.

A szkóp meg csak ezzel lehet megépíteni mert tényleg beolvassa a port értékét 10MS/s sebességgel sajnos a PIC18F az nem.
A hozzászólás módosítva: Okt 10, 2014
(#) phr3ak hozzászólása Dec 16, 2015 /
 
Sajnos sem microchipben sem zilogban nincs versenyképes alternatívája az arduino due-nek. Drágák!
(#) GPeti1977 válasza phr3ak hozzászólására (») Dec 16, 2015 /
 
Igaz főleg ha megnézed a raspberry-k árát. Meg ezek az arduino klónok amit más kontrollerre írnak nem sikerülnek jól, erőltetik a kompatibilitást amúgy sem sikerül meg egy normális programban át kell váltani C re hogy működjön, hardvare közeli dolgokat is bele kell írni, de azzal csak elveszik az előnye tele van buggal stb. Nem csak PIC32 hanem MSP430 nál is.
(#) tomi52 hozzászólása Jan 28, 2016 /
 
Úgy tűnik nem, vagy kevesen használják ezt a környezetet, mert régóta semmi mozgás. Én is elég rég játszottam vele, de most körülnéztem, mert nemsokára szeretném használni. A következőt találtam: a chipKIT panelek megfelelő bővítés telepítésével berakhatók az Arduino 1.6.4-tő felfelé. (Pillanatnyilag 1.6.7-nél tartanak.) Még nem próbáltam csak telepítettem. Kíváncsi vagyok, mert Arduino amúgy is van a gépemen.
(#) phr3ak hozzászólása Dec 8, 2016 /
 
Mik ezek a chipkit panelek és mi a tapasztalat velük?
(#) tomi52 válasza phr3ak hozzászólására (») Dec 8, 2016 /
 
Microchip PIC32-es sorozatú microcontrolerrel épített panelek: chipKIT
Én egy DP32-nek megfelelőt raktam össze. Amikor foglalkoztam vele, akkor még külön fejlesztő környezete volt, most már beépül az Arduino fejlesztő környezetbe. A DP32 az egyik, vagy talán a legkisebb teljesítményű panel, ebben egy ilyen PIC32 van.
Nekem tetszett. Eredetileg Arduinon írt programot futtattam rajta, persze csak addig jó, amíg nincs benne assembly, mert az más. Szerintem érdemes kipróbálni, egy DP32 klónt könnyű összerakni, ezekben a PIC-ekeben helyből benne van az USB felület.
Egy dologban biztosan kevesebbet tudnak, nincs bennük EEPROM, de azt nem nehéz tenni mellé.
Következő: »»   2 / 2
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem