Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1253 / 1319
(#) Wezuv válasza cross51 hozzászólására (») Máj 5, 2017 /
 
Keresem, hogy az ICD3 milyen órajelet használ az ICSP-n, de nem találom. A J-Tag kommunikációban külön van be és kimenet, ez talán gyorsítja a debuggolás, de függ az órajeltől is. A Base (V9) 15MHz-et tud, a Pro 50MHz-et. Az ICD3 se lassú de a tesztek Pro-val hasonlítják össze, ami a mi esetünkben 3x is gyorsabb a Base-nél. Igaz nem erre veszem a V9-et, így nem érhet veszteség. Ellenben ha legalább úgy használható, mint az ICD3, akkor másoknak megfontolandó lehet (a V9 10alatt kapható, igaz nem tiszta a jogviszony, az ICD3 70felett...).
(#) glaci válasza Bakman hozzászólására (») Máj 5, 2017 /
 
Hurrá! Sikerült!

Felismerte a pickit2 a PIC18F46K80-at.
Hálásan köszönöm Neked is a rávezetést és Hp41C -nek a dat file okosítást.
(#) cross51 válasza Wezuv hozzászólására (») Máj 5, 2017 /
 
Bővebben: Link
Bővebben: Link

Ezek nem tudom mennyire valós adatok mert én se nagyon találtam semmit az MC honlapján erről, de ismét érdekes adatok.
(#) Hp41C válasza glaci hozzászólására (») Máj 5, 2017 /
 
Itt bújt el a válaszom.
(#) Hp41C válasza cross51 hozzászólására (») Máj 5, 2017 /
 
Szia!
Csak a PICkit3 -ról van tapasztalatom. Sokszor küld teljesen felesleges (megismételt) parancsokat.
(#) Wezuv válasza cross51 hozzászólására (») Máj 5, 2017 /
 
Talán azt lehet kiolvasni, hogy 6MHz az ICD3 ICSP-je (De lehet, hogy tévedek, mert ez inkább az NSDSP-re igaz, amit gyorsabbnak állítanak, így az ICD3 nem éri el a 6MHz-et). Ha a V9 15MHz et tud, akkor kétszer is gyorsabb lehet, ha Jtag-al lehetne használni, akkor még gyorsabb lehetne, feltéve, hogy a vonalak elbírják (nem véletlen a táblázat az ajánlott kondikkal). Kezd érdekessé válni a dolog, tűkön ülök...
A hozzászólás módosítva: Máj 5, 2017
(#) cross51 válasza Wezuv hozzászólására (») Máj 5, 2017 /
 
Ha megérkezik, akár lehet egy cikket is megérne, megnézi JTAG, ICSP ki milyen gyors, meg hogy ugyanúgy szétesik a (asszem sima HID driver-e van) a kapcsolat vagy megbízhatóbb-e.
Ha az ICSP is él rajta akár a kezdőknek is jó választás lehet (8 biten még nem láttam JATAG-et az MC-nél).
(#) pajti2 hozzászólása Máj 5, 2017 / 1
 
Az mc-nél mostanra az atmeles avr cuccok is ott vannak. Jtagosok mind. A pk2 tudja őket vinni, a pk3 nem. Az mc kicsi üdvöskéje pofára esett?
(#) Wezuv válasza cross51 hozzászólására (») Máj 6, 2017 /
 
Cikket biztosan nem fogok írni...
(#) Wezuv válasza pajti2 hozzászólására (») Máj 6, 2017 /
 
A pk2 hogyan?
(#) pajti2 válasza Wezuv hozzászólására (») Máj 6, 2017 /
 
Úgy, hogy a pk2 kimeneteihez még hozzá lehetett férni támogatott protokollal, és alkalmazás szinten újra lehetett definiálni a funkcionalitását, amit a pk3-ból _direkt_ kivettek (mert az MC görbe-orrú mindenségit nekije). Egy rövidke blog kiindulási pontnak, és egy külön megmentett letöltési lehetőség.
A hozzászólás módosítva: Máj 6, 2017
(#) Wezuv válasza pajti2 hozzászólására (») Máj 6, 2017 /
 
Meglepődtem volna, ha újra támogatnák! Nem érdemes ilyen megoldásokat alkalmazni, sokkal jobbak vannak.
(#) Hp41C válasza Wezuv hozzászólására (») Máj 6, 2017 / 1
 
Tényleg vannak jobb megoldások.
(#) Wezuv válasza Hp41C hozzászólására (») Máj 6, 2017 /
 
Minden elismerésem a tiéd, de egy mikrovezérlő beégetése nagyon szűk területe a vele való foglalkozásnak, főleg ha az egy 32bites eszköz hatalmas programterülettel és tudással. Gondolom te se PK2-t használsz amikor fejlesztesz...
(#) pajti2 válasza Wezuv hozzászólására (») Máj 6, 2017 /
 
A pickit sem több, mint egy szimpla digitális állapotgép, amit akár egy pic16f-el meg lehetne valósítani 8 bittől 32 bitig mindegyik pic-hez. Elvégre nem kell más, mint vezérelni valamilyen szintű meghajtást (pld fetes szintillesztőket vezérelni a pic kimeneteivel, illetve kell egy darab bemenet is szintillesztve), és adni égető feszültséget (amit szintén lehet digitálisan vezérelni, hogy mit állítson elő az usb 5 voltjából). Igaz, azon nem lenne programmer-to-go, de hát már a pk3-on sincs. Debugra sem biztos, hogy nagyon gyors lenne, de ha nem kell extra sebesség, arra bőven elég. A 16f-eket egy generic usb driver az mc libjével is meg tudja hajtani 64 kbyte / sec sebességig. Teljes kompatibilitás még android-ra is open source driverrel. Programozási sebességnek az is elég tud lenni. Nem kellene többé törődni még a pk2 beépített protokoljaival sem, le van-e valami dokumentálva vagy nincs, úgy működik-e, ahogyan írják, vagy úgymond félreértések vannak az egyes verzióknál és társaik. PC oldalra kerülhetne minden. Egyszer kellene csak megírni, és a világ végezetéig működhetne utána.

De lenne vele egy cefet nagy baj. Open hardware lenne. Bárki otthon kézileg le tudná barkácsolni 2-3k huf alkatrész + nyák költségből, és az úgy már nem jó. Még a végén hozzászokna a piac, hogy kreatív legyen és önálló. Mi történne akkor a kihasználhatósággal? Félnek azok a nyavajások az mc finanszírozási székeiben, hogy nem tudják majd zsírosra szedni magukat. Annyi az előnye a pk3-nak, a világon semmi más.
(#) cross51 válasza pajti2 hozzászólására (») Máj 6, 2017 /
 
Nekem be jön a dizájnja a PK3-nak úgyhogy nálam két előny van
De viccet félre téve 32MZ-hez használhatatlan, de lehet nem is kell ilyen messze menni lehet, hogy egy 128K 16 bithez se kényelmes.
(#) Wezuv válasza pajti2 hozzászólására (») Máj 6, 2017 /
 
Ebben egyetértek, de én nem is állítottam ennek ellenkezőjét. Amit én állítok, hogy házilag nem vagyunk képesek a PK2-t sem a 3-at debuggolásra bírni, akkármilyen ügyesek és profik is nagyunk, ha az IDE nem támogatja a kérdéses MC-t rajtuk keresztül. Programozni COM-on keresztül is lehet...
A hozzászólás módosítva: Máj 6, 2017
(#) cross51 hozzászólása Máj 7, 2017 /
 
Sziasztok!

Már régebben itt kérdeztem, hogy lehetne a LAT struktúra bármelyik elemére hivatkozni, hogy kicsit arduino-s módon lehetne pin címet átadni függvénynek, ott a define-t kaptam megoldásnak, de az nekem nem minden esetben a "legszebb megoldás".
Most jutott eszembe egy lehetőség ami működik C,C++-ban is és úgy akartam megcsinálni, hogy ne történjen akkora hatásfok csökkenés. És igazság szerint egy PIC32-vel működik csak a CLR, SET, INV regiszterek miatt. O3-ban nincs különbség LATGINV = _LATG_LATG12_MASK és LAT_INV(RG12) között 25-25MHz-el kapcsolgatja a lábat. O0-ban az első 20MHz-el a második 15MHz-el itt már csökken a hatásfok, de O0-ban még elfogadható szerintem (és ha jól emlékszem 200MHz-en megy a PIC).
Még csak vázlat, mert nincs benne minden regiszter meg, ha elkészül lehet felrakok egy header file-t aminek csak kell a pic header-je vagy az xc.h és #ifdef-el nézni fogja melyik láb mask-ja van definálva és csak azt fogja létrehozni.
  1. struct Pin
  2. {
  3.     volatile unsigned int* reg;
  4.     unsigned int mask;
  5. };
  6.  
  7. Pin RG12 = {&PORTG, _PORTG_RG12_MASK};
  8.  
  9.  
  10. #define TRIS_CLR(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) - 12) = pin.mask
  11. #define TRIS_SET(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) - 8) = pin.mask
  12. #define TRIS_INV(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) - 4) = pin.mask
  13. #define PORT_CLR(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 4) = pin.mask
  14. #define PORT_SET(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 8) = pin.mask
  15. #define PORT_INV(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 12) = pin.mask
  16. #define LAT_CLR(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 20) = pin.mask
  17. #define LAT_SET(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 24) = pin.mask
  18. #define LAT_INV(pin) *(volatile unsigned int *) (((unsigned int) pin.reg) + 28) = pin.mask

És egy példa a használatra
  1. void function(struct Pin pin) {
  2.     LAT_INV(pin);
  3. }


Mi a véleményetek? Szerintem ennek C-ben is haszna lehet.
(#) Hp41C válasza pajti2 hozzászólására (») Máj 7, 2017 /
 
Néhány pontosítás:
Idézet:
„Igaz, azon nem lenne programmer-to-go, de hát már a pk3-on sincs.”

Már (jó néhány verzióval a kezdeti után) működik a programmer-to-go a PICkit3 -on.

Idézet:
„Egyszer kellene csak megírni, és a világ végezetéig működhetne utána.”

Szinte minden héten más programozási algoritmust jelentet meg a gyártó. Ld. az SPI alapú 16F, és 18FxxK4x, hogy a PICkit3 -nak kényelmesebb legyen.

IDE kérdés:
32: Más IDE -t is lehet használni: Pl. Eclipse --- GDB interface utility for MIPS processors, including PIC32
18F: DBG18F
16F: ismert az ICD2 működése.
(#) Droot válasza cross51 hozzászólására (») Máj 7, 2017 /
 
Nekem személy szerint a szokásos megoldás is tökéletesen megfelel. Illetve aki PIC32-re fejleszt, felejtse el az arduino-t mert a kettő nagyon-nagyon messze van egymástól. Az arduino egy játékszer és erőforrás pocsékoló, csak annyit tanulsz vele hogy körülbelül hogy működhet egy egyszerűbb mikrokontroller, többet nem, mert a többi ctrl c és ctrl v.
(#) cross51 válasza Droot hozzászólására (») Máj 7, 2017 /
 
Sose használtam arduino-t csak a suliban elég sok embernek kellet még abban is segítsek így ismerem és láttam jó pár source-t belőle és valóban eléggé erőforrás pazarló. Azt is tudtam, hogy biztos, hogy nem az igazi, ez a pl digitalWrite, de tetszet, hogy hordozható egy láb, és nem mint ahogy eddig csináltam én is egy global define-ba leírni (persze ez is hasznos egy helyen van minden).

De ez a "High Level" I/O dir, level, pull-up... módosító más gyártónál is megvan.
De én személy szerint 200MHz-is sajnálok ilyen fv.-eket használni, mert ha mondjuk 320x240 pixelt rajzolok ki, akkor az elején egy CS_L a végén egy CS_H töredék, de akkor is több idő lenne.
Ezért nem használom már REGISTERXbits.BITY mert az 5 sorra fordul REISTERSET/CLR (asszem) 2 sorra.

Persze ahol nem időkritikus a működés kényelmes a high level, de ez a kis apróság szerintem a high és a low között táncol.
(#) Wezuv hozzászólása Máj 7, 2017 /
 
Láttatok már megoldást fájlok listázására TFT kijelzőn? Maga a listázás megy, nem ezzel van a gondom, hanem a névsorba rendezéssel. Azon belül nem magával a sorba rendezés algoritmussal, csak majdnem.
Elvi gondom van azzal, hogy hogyan lehet sorba rendezni egy kis memóriával rendelkező PIC-el sok elemet tartalmazó könyvtár neveit. FAT32-ben nagyon sok könyvtár és fájl lehet egy mappán belül. Ha sorba szeretném rendelni őket két lehetőség jut eszembe. Egyik, hogy mindet kiolvasom kétdimenzós char tömbökbe, majd sorba rendezem őket a listázáshoz, esetleg létrehozok egy másik tömböt, amibe a sorrendet tárolom le és ez szerint listáztatom. Lényeg, hogy minden mappa és fájl nevét tárolnom kell. Ez gyors lehetne...
A másik, hogy kiolvasgatom az összes bejegyzést és minden kiolvasáskor kiválasztom a névsorba illőt és megjelenítem. Ez viszont baromi lassú a folytonos kiolvasások miatt(pl. SPI SD elég lassú kommunikáció) és egyébként is valahogy azt is követni kellene, hogy melyikek voltak már megjelenítve egy tömbbe, ami megint erőforrás igényes.
Tudtok valami bevállt megoldást esetleg?
(#) killbill válasza cross51 hozzászólására (») Máj 7, 2017 /
 
Egy jo tanacs: ha makrot csinalsz, akkor mindig zarojelezd be az egeszet, ha barmilyen operator szerepel benne. Ebben az esetben nincs jelentosege, de maskor van. Jobb ezt megszokni. Egy kerdes: miert cast-olod ide-oda a pin.reg valtozot? A pointerbol is le tudsz vonni, hozza tudsz adni. Csak tudni kell, hogy, ha egy int pointerhez hozzaadsz egyet, akkor az valojaban kettovel vagy neggyel lesz tobb, hiszen egy int-nyit fog novekedni.
(#) cross51 válasza killbill hozzászólására (») Máj 7, 2017 /
 
Lehet ezért nem ment cast nélkül (ha az int 32 bites) és én egy intptr-hez adok hozzá '1'-et akkor annak a címe 4-el növekszik? Jól értem?

Szerk.:
Miért ne annyival növekedne ezt jól benéztem, akkor az int byte-jain belül járkálnék.
Köszi, hogy szóltál.
A hozzászólás módosítva: Máj 7, 2017
(#) pajti2 válasza Wezuv hozzászólására (») Máj 7, 2017 /
 
A jelek szerint te nagyon szeretsz belefutni a pic32mz korlátaiba Előzőleg a grafikus kijelzővel kaptad el a problémát, hogy jobb lenne nagy adag cache ram, most meg a filesystemmel futottál bele ugyan abba.

Ha van esetleg rálátásod, mekkora lehet az általános igény dinamikus memóriára pic kategóriás mikrovezérlőkhöz (például 128 megabit kapacitás egy dip-6-os tokban), bármilyen meglátásodnak örülnék a kérdésben, ugyanis annak a témának a marketing problémáival is foglalkozom
(#) Wezuv válasza pajti2 hozzászólására (») Máj 7, 2017 /
 
Oké, de ez a probléma nem csak PIC-nél lép fel, hanem PC-n is. Kérdés, hol húzzuk meg a határt. Az NTFS ben 4 milliárd fájl lehet akár egy mappa alatt is. Ezt PC-n sem túl egyszerű kezelni, sok fájlkezelő meg se jelenít 30ezernél többet. A FAT32 esetében 65536 a max. ami PIC léptékben már sok, főleg, ha az nem 32MZ! Nem nagyon láttam ilyen megoldásokat, ezért kérdem, hogy ezt hogy szokták megoldani? Lehet azt mondani, hogy ezer és idomuljon a felhasználó? Persze lehet több fájl, csak azokat már nem tudja névsorba rendezni. A SYS_FS_DirRead() függvény sorban kiolvassa a fájlokat, azok létrehozásának sorrendjében, aminek nem a dátum az alapja, hanem a bejegyzés sorrendje. Még nem néztem meg, de valószínű, hogy az itt felhasznált index 16bites egész. Már az 128k-ba kerülne, ha csak a sorrendet kellene letárolni egész számonként...
(#) pajti2 válasza Wezuv hozzászólására (») Máj 7, 2017 /
 
PC-n úgy oldják meg, hogy a filesystem beolvassa a teljes mappát, és indexelve kezdi el feljegyezni belőle a tételeket. Azután megjeleníti. Ha megnyitsz egy intézőt, az riasztást kér az aktív mappát érintő változásokra, és azt a windows tudja, hogy most olyan szektorhoz volt írási hozzáférés, ami ahhoz a könyvtárhoz tartozik, ergo megy ki a riasztás mindegyik alkalmazásnak. Nem ördöngösség, ha van elég memóriád mindenfélét feljegyezni. Nem ész kell hozzá, hanem hardware

Fat 32 esetén hol találtál olyat, hogy egy könyvtár nem tartalmazhat több bejegyzést, mint 64k? Ugyanis képtelenség vfat alatt bármiféle korlátot meghúzni. A vfat mappák tipikusan olyanok, hogy szinte minden file szemét bennük marad, ami valaha bennük volt, ergo csak híznak és híznak. Egykori szerkezeti gyengeség a hosszú file nevek támogatása miatt. Pontosan ugyan az a probléma, mint ami miatt a 286-os időkben szabdalódott használhatatlanra a memória, ha valamelyik program dinamikusan foglalt / szabadított fel memória területeket (lásd c++ csak a 386-os időkben kezdett el terjedni, amikor már voltak vcpi és dpmi driverek is ems-t supportolni). De a maximális méretük nem különbözik a file-ok korlátjától (4 giga). Egy fat32-n a könyvtár file tipikusan addig hízik, míg az OS észre nem veszi, hogy már olyan törölt bejegyzések is vannak benne, amiknek a bejegyzett adatterületük is másik file-hoz tartozik (be-cache-eli mindegyik könyvtárat + a teljes fat-ot is, és tudja, mert real-time nyilvántartja), és akkor újraírja a teljes könyvtárat (azt a felesleget végleg kitörli belőle). De addig minden benne marad. Anno nem volt ritkaság a megabyte méretű könyvtár file sem, és az ráadásul azokban az időkben, amikor a teljes HDD kapacitások is csak 850 megabyte körül ingadoztak.
(#) killbill válasza cross51 hozzászólására (») Máj 7, 2017 /
 
Igen, a pointerek eseteben az "egyseg" az annyi, amekkora a megcimzett tipus. Ha van egy 24 byte-os strukturad, akkor annak a pointere 24-gyel fog novekedni, ha leirod, hogy p++. Ha ket pointert kivonsz egymasbol, akkor az eredmeny is az elemek szamat fogja megadni, nem pedig a fizikai cimek kozotti kulonbseget. Ebbol adodik az is, hogy csak azonos tipusra mutato pointereket lehet egymasbol kivonni. Pointerekkel semmi mas matematikai muveletet nem lehet vegezni.
(#) Hp41C válasza pajti2 hozzászólására (») Máj 7, 2017 /
 
Idézet:
„Fat 32 esetén hol találtál olyat, hogy egy könyvtár nem tartalmazhat több bejegyzést, mint 64k?”

Semelyik FAT32 -n nem sikerült még 32000 + egynéhányszáz állománynál többet létrehoznom.
(#) Wezuv válasza pajti2 hozzászólására (») Máj 7, 2017 /
 
Nem a PC megvalósítást keresem, nyílván a memória megold mindent, bár 4 milliárd sztring, ami lehet 256 hosszú is, szerintem igencsak érdekes dolgokat művelne az oprendszerrel!

Engem a korlátos memóriával rendelkező eszközöknél szokásos megoldások érdekelnének. Van-e valamilyen dinamikus megoldás, vagy milyen korlátozások a szokásosak? Mert, hogy korlátozásokra szükség van, az szinte biztos.

Nem tudom hol találtam, de ezt találtam:
  1. FAT32
  2. •Maximum disk size: 2 terabytes
  3. •Maximum file size: 4 gigabytes
  4. •Maximum number of files on disk: 268,435,437
  5. •Maximum number of files in a single folder: 65,534
  6.  
  7. NTFS:
  8. •Maximum disk size: 256 terabytes
  9. •Maximum file size: 256 terabytes
  10. •Maximum number of files on disk: 4,294,967,295
  11. •Maximum number of files in a single folder: 4,294,967,295
Következő: »»   1253 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.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