Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Köszönöm a hozzászólásokat!
Kicsit bővebben: A soros portnál nem csak a TX,RX-et használja az eszköz, hanem a RTS-t és DTR-t is. Ezek szerint a PIC-nek meg kell szólitanija az eszközt? Viszont nekem az SD kártyás megoldás is tetszene. Nézegettem is neten leírásokat. Sőt lehet akkor a PIC-be lenne a konvertálás, értelmezés is, hogy már csak kiolvasni kellen a gépen az értéket.
Akkor vagy olyan PIC-et kell venned, amiben két soros port van, vagy USB-st, más megoldás nem jöhet számításba.
Az RTS, DTR működését pedig le kell kezelned, ha tényleg használja az eszköz. Az nem derül ki az adatlapjából, hogy milyen protokol szerint működik?
Nagyon primitív most hogy elolvastam. Nem is igazán van használva.
DTR-nek "low", az RTS-nek "high" szint kell. Ha ez megvan akkor RX-TX-en keresztül már kapcsolatot lehet létesíteni. BASIC protocol van írva. Szerintem USB-s lesz.
Üdvözlök minden fórumozót.
Kezdő vagyok ebben a műfajban így némi útbaigazítás kellene. Eddig párhuzamos porton oldottam meg vezérlési feladatokat a programot Turbo Pascal 7,0-ban , egy automata mosógépet működtetten. De szeretnék PIC-vel is feladatokat megoldani. Conrádéknál találtam egy K8048-as cuccot elég kevés infó volt róla. Azt szeretném kérdezni, hogy mire is jó ez? Milyen feladatok megoldására lehet használni?
Hali
Ez a cucc egy probapanel es egy JDM programozo otvozete. Nem tudom mennyi az ara, de nem hiszem hogy megeri megvenni. Foleg azert, mert a programozo resze nagy valoszinuseggel nem mukodik a mai PC-ken. Ha koltessz akkor inkabb vegyel egy PK2 programozot (esetleg csinalhatsz is) es csinalj (vagy csinaltatsz) egy 20labas vagy 18labas probapanelt. A PIC-hez van Pascal fordito , ami 2K kodig ingyenes. A pascalhoz van sok mintapelda, es ezzel elkezdhetsz kiserletezni. Csa Vili
Idézet: Ez egy kissé elavult PIC programozó (be lehet égetni vele a programot) és fejlesztői panel: ki lehet próbálni a programot, ha valamelyik foglalatba dugsz egy PIC mikrovezérlőt.„Azt szeretném kérdezni, hogy mire is jó ez?” Hasonló árért én valamilyen PICkit2 kezdőkészletet vennék a ChipCAD KFT-től. Például: PICKit 2 Starter Kit (8, 14 és 20 lábú mikrovezérlőkhöz ), vagy PICkit2 Debug Express (44 lábú PIC16F887). A PICkit2 programozó és nyomkövető ugyanis ezerszer többet tud, mint a Velleman soros porti programozója. Bár a PICkit2 Starter Kit kártyájába csak 20 lábú mikrovezérlők férnek, én mégis ezt preferálnám (a Debug Expressel szemben) a cserélhetőség és a választék miatt (a 8 lábú PIC12-től a 20 lábú PIC18-ig sokféle mikrovezérlőt próbálhatsz ki benne). De ez másodlagos szempont,hiszen a csomagban a nagyobb értéket a PICkit2 jelenti, melyhez később még sok kártyát vehetsz/építhetsz.
A gyors válaszokat köszönöm!
Még eszembe jutott egy-két kérdés! Tehát ha megtanulom akkor Pascalba feltudom programozni a mikrovezérlőt? Ha akarok valamit vezérelni vele akkor kell egy másik panelt készíteni, vagy feladatokra jó a kit is?
Részletek nincsenek? De majd kiderül, mert lehet, hogy csak küldi a bájtokat. Viszont ha nem, és nincs hozzá részletesebb leírás, akkor nem lesz könnyű...
Idézet: Nincs királyi út, tehát bármilyen nyelven programozol, előbb vagy utóbb bele kell menni a részletekbe, regiszterekig és bitekig lemenően.„Tehát ha megtanulom akkor Pascalba feltudom programozni a mikrovezérlőt?” Az indulásnál jelent némi segítséget a Pascal (másoknak a BASIC vagy valamelyik grafikus alkalmazásfejlesztő), de hosszú távon az assembly és a C megkerülhetetlen. Idézet: Vásárlás előtt nézd meg a panel fényképét, leírását (pl. a Microchip honlapján), s döntsd el, hogy elég-e annyi kivezetés (ha van), vagy sem. Ezek a kártyák általában tanuláshoz, kísérletezéshez jók, konkrét alkalmazáshoz, tartós használatra kevésbé. „Ha akarok valamit vezérelni vele akkor kell egy másik panelt készíteni”
Kicsit bővebb leszek, mert rájöttem szükséges. Na szóval egy időjárási adatokat mérő cucról van szó, mert hobbiból ezeket mérem. A belső memoriája elég kevéske, ráadásul áramszünet esetén felejt is. Soros porton lehet kiolvasni az adatokat belőle. Hogy ne kelljen éjjel nappal a számítógépnek mennie, ezért kéne egy külső rákapcsolt logger. Neten amugy kapható IP modul, mellyel csak netkapcsolat kéne, gép nem, de nekem az sem jó, mert ha elmegy a net nem vagyok előrébb.
A teljes byte adatfogadás, stb le van itt írva angolul: http://www.lavrsen.dk/foswiki/bin/view/Open2300/OpenWSAPI Ezek után kivitelezhető a dolog? Köszi!
Örülök!
Akkor ezek szerint tényleg nem bonyolult. Még annyi tanácsot adnál hogy szerinted akkor SD kártyás célszerübb vagy 24C és kiolvasni azt USB-n keresztül. (USB-s kiolvasás mellett döntöttem)
Az SD előnye, hogy nagyobb hely van rajta. Egyébként mindegy.
Az USB-hez nézd meg a HID-es cikkemet. A HID-et biztos kapcsolatnak tartom és nem kell külön driver, a CDC sokszor szórakozik. Gondolom a PC oldali programot is te fogod írni. Ha valami gyári programot akarsz használni, akkor marad a CDC, ami virtuális COM portként jelenik meg. Viszont akkor a programnak megfelelően kell átadni az adatokat a memóriából. Hogy lesz?
A programnál előnybe részesítem a gyárit, mert számítógépre programot még sosem írtam. Bár egyszer el kell kezdeni...
A többin még elmélkedem.
Ez érthető, de a gyári program képes egy adattömeget feldolgozni? Az adatlapon látszik, hogy egy protokol szerint kell a regiszterekből kihalászni az adatokat. Ez rendben is van, mert le van írva hogyan, azaz a PIC-re meg tudod írni a megfelelő lekezelő részt, ami a gyári PC programhoz hasonlóan fogja az adatokat kiolvasgatni, valamint ezen felül eltárolni egy memóriába. Eddig okés, de a gyári programban nem hiszem, hogy van olyan rész, ami ki tudja olvasni a PIC-en keresztül az adatokat, miután a kiolvasandó adatok egy memóriában vannak, nem regiszterekben, mint az eszközön. Ha meg is tudod írni az eszköz szimuláló programot a PIC-ben, még meg kell oldani azt is, hogy a PIC tudja, hogy melyik adattal, és mikor kezdje a memóriából az adatokat átadni sorban, mint ha az eszköz adná. Ehhez kell legalább egy adat, amire elkezdi a megadott memóriarekesz tartalmától sorban kiszolgálni a gyári PC program kéréseit, egészen az utolsó eltárolt bájtokig. Ezt a gyári program nem tudja megadni, miután az csak az eszköz éppen aktuálisan mért adatait tuja csak lekérdezni.
Ha ezt sikerülne is valahogy megoldani(pl. első címtől az utolsóig sorban, aztán törlés(index=0), mindezt gombbal indítva...), nem tudom, hogy a PC program képes-e eltárolni a begyűjtött adatokat, és hogy milyen sebességgel képes kiolvasni az eszközt, mert ha ennek is van üteme(lassú), akkor soha nem olvassa ki a memóriát. A másik megoldás, hogy az SD-re(vagy pendrive-ra) olyan fájlformátumban tárolod a gyűjtött adatokat, amit a PC program képes feldolgozni(ha képes ilyesmire egyáltalán). Ekkor viszont nincs szükség a PIC-PC közötti soros kapcsolatra, csak egy kártya olvasóra, amit icserny mester ajánlott. A PC-re átmásolt fájlt csak meg kell nyitni a PC programmal, ha erre van lehetőség. Harmadik, hogy írsz egy PC programot, ami USB-n keresztül beolvassa, eltárolja, megjeleníti, kiértékeli az eltárolt adatokat, kezeli a memóriát, azaz saját protokollal beszél a PIC-el. Én ez utóbbit választottam, mert nekem mindig nehezebb egy kész programhoz idomulni, mint a saját fejem után menni...
Üdv!
Hogy lehet egy tengely fordulatszámát meghatározni és egy LCD kijelzőre kiíratni? Milyen eszközökre van ehhez szükség? ilyen kijelzőre gondoltam: Bővebben: Link Ez mennyire bonyolult feladat egy kezdő számára?
Mivel ez egy PIC-es topic, ezért a válasz az, hogy PIC-el meg lehet oldani.
Mennyire bonyolult? A kérdés az, miben vagy kezdő, a PIC-ben, vagy az elektrotechnikában? Ha csak a PIC-ben(azaz a mérendő jelet tudod illeszteni, áramkört meg tudod tervezni, legyártani), akkor kb. 1 hónap alatt meg tudod oldani(itt biztosan tudunk segíteni is). Ha teljesen kezdő vagy, akkor 1 év(és természetes, akkor nem jó helyen jársz. )
Ha csak egy fordulatszámot kell kiíratni, akkor egyszerűbb 7 szegmenses kijelzőt, vagy alfanumerikus LCD kijelzőt használni. Kiindulási alap lehet egy digitális frekvenciamérő. A sok fordulatszám-mérő témájú topikról nem is szólva...Bővebben: Link
Köszönöm a segítséget, azt hiszem, h még nem jó helyen járok.
Sziasztok! dsPic pwm még mindig a szenvedésem tárgya. ccsc-vel dolgozom. A példa programokból(EX_PWM.C) ollóztam össze a következőt.
Le is fordul de nem jelenik meg egyik kimeneten sem a pwm jel. Kérlek benneteket nézzetek rá hátha valami nem jó. Segítségeteket köszönöm.
C30-al a gyári példák alapján fél óra alatt meglennél vele. Feltéve, ha a hardver jó... ccsc-ben nem tudok segíteni...
Igazad van! Az első lehetőség akkor mindenképp kilőve.
Nekem a második a legszimpatikusabb, de nem hiszem hogy kivitelezhető olyan egyszerűen. A gyári program egy .dat fájlba ír bekapcsoláskor. Nekem valami olyan tetszeni például hogy egy TXT fájlhoz hasonló megjelenítés lenne az sd kártyán. Tuldajdonképp a programban is txt-re mentjük le az adatsorokat amikor szükséges. Utána pedig a .dat-ot kell törölni hogy reseteljük. De ilyenkor is csak a programot reseteljük vele, mert már az állomástól az adatsorokat átvettük előzöleg a program bekapcsolásával a .dat fájlba. Elég macerás, ha minden kötél szakad, akkor USB és készíteni kell valami programot, ami értelmezi és le lehet menteni txt-be.
Az a baj, hogy még gyengének érzem a tudásomat a c30-hoz. de tudsz ajánlani egy c30-as példát a pwm-re akkor nagyon szívesen megnézem mert biztos nagyon hasonlít a ccs-hez.
Az jó, ha txt-ben kell az adat, mert akkor van egy egyszerű megoldás. Fogsz egy SD-t és megformatálod PC-n. Feltöltesz rá egy txt fájlt, amiben egy csomó space van(jó nagy txt-t kell generálni, ami elegendő az adatoknak a letöltések közötti időre).
A detektáláshoz a fájl elejére beírsz egy pár jól azonosítható karaktert, majd a PIC-el megkeresteted ezt a címet. Ezután ettől a címtől fogva írod az SD-re az adatokat, megfelelően formázva, ahogy tetszik, természetesen ASCII kódokkal. Azt még nem tudom, hogy a fájl CRC-je milyen gondot okozna kiolvasáskor, de elvileg azt is meg lehet keresni, kiszámolni, és újraírni. Ez azért egyszerű, mert FAT tábla kezelése nélkül tudsz egy txt fájlba írni, majd azt kártyaolvasóval kiolvasni PC-n. Olyan PIC kell, aminek a RAM memóriája nagy, legalább 1024bájt, hogy az SD 512bájtnyi blokkját egyszerre meg tudd írni, amikor ez a puffer megtelik. Erre azért van szükség, mert az SD kártyák blokkonként írhatóak és törölhetőek, bár törölni nem kell, simán át lehet írni az új adatra. Azért is jó ez, mert ha pont egy blokkírás után töltöd át az adatokat PC-re, akkor nem lesz adatvesztésed, mert addig a memóriában gyűlik az adat. Mondjuk nem tudom mennyi adatot akarsz gyűjteni percenként, és azt át is kell számolnod karakterszámra, így 1 bájtból rögtön 1...3 karakter lesz, és még tizedespont és az elválasztó vessző is helyet foglalhat... A másik megoldás, ha egy gyári FAT demót felhasználsz, bár ezzel még nem kísérleteztem, ebben nem tudnék konkrétan segíteni, viszont erről sok infó és kész programdemó van a gyártó oldalán, nem lehetetlen, csak bonyolultabb, több tanulást igényel és jobban terheli az SD-t is, viszont nem kell trükközni a fájlal.
- ITT - az Application Notes alatt rengeteg példa van, de a demoboardhoz is vannak példakódok.
Nem lehet-e az SD kártyát "raw" eszközként kezelni a PIC-ből?
Úgy tudnám elképzelni ezt, hogy egyszerűen egy körbeforduló puffernek használnám a memóriakártyát, teljesen saját formátumban írnék ki rá "rekordokat". A kiolvasás meg egy, a PIC-ben futó rutinon keresztül történne, ami a rögzített rekordokból valamilyen emészthető formátumú, például text-et gyárt, és ezt adja vissza. A beíráshoz és a kiolvasáshoz külön puffermutatókat használva meg lehetne valósítani azt, hogy kiolvasáskor mindig a legutolsó kiolvasás óta keletkezett adatokat adja át a PC-nek. Én a PC-s kapcsolatot USB-n keresztül oldanám meg (akár CDC, akár HID módban), úgy, hogy az az adatrögzítéstől teljesen független legyen. Így az adatrögzítő eszköz folyamatosan dolgozhatna, a PC pedig teljesen mindegy, hogy folyamatosan csatlakozik és csak időnként kérdez le tőle, vagy csak néha csatlakozik fel az USB-n a lekérdezéshez. Idézet: A FAT kezeléssel kapcsolatban egyértelműen a FatFs-t tartják a legjobbnak, s van ennek egy egyszerűsített változata is Petit FAT Fs címen. (-bites mikrovezérlőkhöz ez ajánlható. „A másik megoldás, ha egy gyári FAT demót felhasználsz”
Ezzel a modszerrel az a baj, hogy a file folyamatos elhelyezkedese nem garantalt. Elmeletben ha semmi mas nincs a lemezen (beleertve torolt file-okat is!), akkor az OS folyamatos helyre fogja helyezni a file-t. Illetve ha toredezettseg mentesitot lefuttatjuk ra, akkor jo eselyunk van erre.
Azonban foleg solid state eszkozokon elterjedt modszer, hogy hol ide hol oda irnak a memoriaban, hogy elkeruljek a blokkok elhasznalodottsagat (ugye a memoria limitalt torlest/irast visel csak el, es igy ahelyett, hogy mindig ugyanazt a teruletet irnak felul megprobaljak kicsit elosztani es igy kitolni az elettartamat). Ezt persze nem tudom belulrol az SD kartya vegzi-e el (tehat kivulrol tovabbra is folyamatos adatsornak latszik-e) avagy kivulrol a driver? Mindenesetre egy igazi FAT driver szerintem szerencsesebb lenne, legalabbis en biztonsagosabbnak ereznem azt, mint az egyebknet ketsegkivul egyszerubb modszert, amit javasoltal.
Igen, ezért szükséges előtte formázni a kártyát, és egy fájlt hozni létre rajta. Utána PC-vel csak olvasni szabad!
Nem a kártya csinálja a védelmi átpakolgatást, ez biztos, mert ilyen funkciót nem olvastam az SD doksikban. Ha a PIC nem csinálja, és a PC-vel nem piszkáljuk a kártyát, csak olvassuk, akkor változatlan marad a fájl elhelyezkedése, szerintem.
Dehogynem, lehet raw szerűen rögzíteni, én is úgy használom, mint egy sima memóriát, címenként.
Csak itt az a gond, hogy a PC-re porogramot kéne írni(ami fájlt csinál, stb.), ami jelen esetben geri12-nek még nem megy. Ezért próbáltam PIC-hez kötött megoldást taláni, és kész fájlt varázsolni az SD-re. |
Bejelentkezés
Hirdetés |