Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   848 / 1319
(#) geri12 válasza watt hozzászólására (») Nov 29, 2010 /
 
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.
(#) watt válasza geri12 hozzászólására (») Nov 29, 2010 /
 
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?
(#) geri12 válasza watt hozzászólására (») Nov 29, 2010 /
 
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.
(#) benzinkutas hozzászólása Nov 29, 2010 /
 
Ü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?
(#) vilmosd válasza benzinkutas hozzászólására (») Nov 29, 2010 /
 
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
(#) icserny válasza benzinkutas hozzászólására (») Nov 29, 2010 /
 
Idézet:
„Azt szeretném kérdezni, hogy mire is jó ez?”
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.

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.
(#) benzinkutas hozzászólása Nov 29, 2010 /
 
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?
(#) watt válasza geri12 hozzászólására (») Nov 29, 2010 /
 
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ű...
(#) icserny válasza benzinkutas hozzászólására (») Nov 29, 2010 /
 
Idézet:
„Tehát ha megtanulom akkor Pascalba feltudom programozni a mikrovezérlőt?”
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.

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:
„Ha akarok valamit vezérelni vele akkor kell egy másik panelt készíteni”
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é.
(#) geri12 válasza watt hozzászólására (») Nov 29, 2010 /
 
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!
(#) watt válasza geri12 hozzászólására (») Nov 29, 2010 /
 
Abszolút!
(#) geri12 válasza watt hozzászólására (») Nov 29, 2010 /
 
Ö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)
(#) watt válasza geri12 hozzászólására (») Nov 29, 2010 /
 
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?
(#) geri12 válasza watt hozzászólására (») Nov 29, 2010 /
 
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.
(#) watt válasza geri12 hozzászólására (») Nov 30, 2010 /
 
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...
(#) haczi hozzászólása Nov 30, 2010 /
 
Ü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?
(#) watt válasza haczi hozzászólására (») Nov 30, 2010 /
 
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. )
(#) icserny válasza haczi hozzászólására (») Nov 30, 2010 /
 
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
(#) haczi válasza icserny hozzászólására (») Nov 30, 2010 /
 
Köszönöm a segítséget, azt hiszem, h még nem jó helyen járok.
(#) messer hozzászólása Nov 30, 2010 /
 
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.
  1. #include <30F2010.h>
  2. #fuses HS,NOWDT
  3. #use delay(clock=20000000)
  4.  
  5.  
  6. void main(void)
  7. {
  8.  
  9. setup_timer2(TMR_INTERNAL | TMR_DIV_BY_1, 0xFFC0);
  10. setup_compare(1, COMPARE_PWM | COMPARE_TIMER2);
  11. set_pwm_duty(1,200 * (int16)64);
  12.  
  13. while(1)
  14.   {
  15.         delay_us(10);
  16.         }
  17. }

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.
(#) watt válasza messer hozzászólására (») Nov 30, 2010 /
 
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...
(#) geri12 válasza watt hozzászólására (») Nov 30, 2010 /
 
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.
(#) messer válasza watt hozzászólására (») Nov 30, 2010 /
 
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.
(#) watt válasza geri12 hozzászólására (») Nov 30, 2010 /
 
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.
(#) watt válasza messer hozzászólására (») Nov 30, 2010 /
 
- ITT - az Application Notes alatt rengeteg példa van, de a demoboardhoz is vannak példakódok.
(#) szilva válasza watt hozzászólására (») Nov 30, 2010 /
 
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.
(#) icserny válasza watt hozzászólására (») Nov 30, 2010 /
 
Idézet:
„A másik megoldás, ha egy gyári FAT demót felhasználsz”
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ó.
(#) trudnai válasza watt hozzászólására (») Nov 30, 2010 /
 
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.
(#) watt válasza trudnai hozzászólására (») Nov 30, 2010 /
 
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.
(#) watt válasza szilva hozzászólására (») Nov 30, 2010 /
 
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.
Következő: »»   848 / 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