Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   740 / 1210
(#) edison14 válasza dani9228 hozzászólására (») Jan 15, 2016 /
 
Az XC8 az egy C fordító amiben C-ben megírhatod a forráskódot majd az lefordítja neked HEX-re.
(#) don_peter hozzászólása Jan 15, 2016 /
 
Srácok, PIC-el mérek áramerősséget, de a PIC analóg bemenetén nem folyamatosan nulla látható, hanem random beugrálnak véletlenszerű számok.
Az a baj, hogy ezek a számok zavarják a mérést.
Mivel tudom ezt kiszűrni?
(#) Bakman válasza don_peter hozzászólására (») Jan 15, 2016 /
 
Ha a bemenete biztosan nulla és nincs zavar, akkor a programban lehet valami hiba. Esetleg a bemenettel túl nagy ellenállás van sorbakötve, vagy vele párhuzamosan egy kondenzátor. Legalább az áramkört mutasd meg, így elég nehéz segíteni.
(#) Bakman válasza don_peter hozzászólására (») Jan 15, 2016 /
 
Már nem tudtam módosítani az előző hozzászólást. Most jutott eszembe, hogy én is találkoztam ilyennel, PIC18F46K80 esetében. A HW-en semmit nem változtattam, bele egy 46K22 és minden jó volt. Ugyanakkor érdemes megnézni a PIC-hez tartozó Errata doksit is. Egyik-másik kontroller esetében az ADC hibázik, de azt szinte mindig. Az eredményebn van offset, ami az ADC hibája. Igaz, az nem annyira véletlenszerű, inkább bizonyos értéknél folyamatos.
(#) don_peter válasza Bakman hozzászólására (») Jan 15, 2016 /
 
Eredetileg nem volt, semmilyen szűrés rátervezve, de sajnos be tud zavarodni.
Igazából 0-nál nincs zavar, legalább is most nem volt, de ha ráteszem a mérést, ugrál elég jól.

Próbáltam testre lehúzni ellenálláson keresztül (4K7, 1K), de nem volt eredménye.
Próbáltam 100nF-os kerámiával testre lehúzni a bemenetet, de az sem hozott eredményt.

ACS758LCB-100B-vel akarok áramot mérni.
Bővebben: Link
A gyári leírása szerint kellene egy RC tag, de azt mér nem tudom mekkora és milyen..
Lehetséges, hogy az IC miatt van?
(#) don_peter válasza Bakman hozzászólására (») Jan 15, 2016 /
 
Most a gyári adatai szerint kötöttem be egy 1k-os ellenállást sorsosan a bemenetre és egy 100nF-os kondit párhuzamosan földre húzva a bemenetet.
Sajnos ugrál a mérés erősen..

Az a baj, hogy ez így használhatatlan pontos mérésre..
ui: 18F46K22-őt használok..
A hozzászólás módosítva: Jan 15, 2016
(#) Bakman válasza don_peter hozzászólására (») Jan 15, 2016 /
 
Egy oszcilloszkópos mérés nem ártana, legalább kiderülne, honnan jön a zavar.
(#) jany1966 hozzászólása Jan 15, 2016 /
 
Sziasztok

Basichez értőktől kérnék segítséget.
Timeres megszakítást szeretnék írni.
Valami hasonlót csak itt a B port csinálja.
Ha jól látom.
(#) Hp41C válasza don_peter hozzászólására (») Jan 15, 2016 /
 
Attila86 küzdött ezzel a típussal. Több minta begyűjtése, a legkisebb és a legnagyobb kihagyása és átlagolás módszerét választotta.
(#) icserny válasza jany1966 hozzászólására (») Jan 15, 2016 /
 
Nem értek hozzá, de itt látok egy példát timer megszakításra.

A számodra érdekes lényeg:
  1. ' Set TMR0 to interrupt every 16.384 milliseconds
  2.  OPTION_REG = $55 ' Set TMR0 configuration and enable PORTB pullups
  3.   INTCON = $a0     ' Enable TMR0 interrupts
  4.  On Interrupt Goto tickint
  5. ...
  6. tickint:
  7.   ticks = ticks + 1          ' Count pieces of seconds
  8. ...
  9. tiexit:
  10.    INTCON.2 = 0    ' Reset timer interrupt flag
  11.   Resume
(#) Droot válasza don_peter hozzászólására (») Jan 15, 2016 /
 
A referencia feszültség és 0V közötti értékkel teszteld labortápról oszcilloszkóppal is figyeld a bemenetet.
Nem tudom ennek az Avcc ki van-e vezetve, egy kis ferrit gyűrűvel érdemes a vccre kötni.

A legkisebb legnagyobb minta eldobása és az átlagolás méréstechnikában általánosan használt.
Nem tudom milyen gyakran szükséges, hogy új értéket kapjál, érdemes 1-10msonként mérni 10-et, közben egy változóban mindig tárolod a max és min értéket, az új értékeket mindig össze kell adni. Ha megvan a 10 mintád a min max értékeket kivonod és 8-al elosztod.
Szerk: ne az áram értékeket, hanem az adc értékeket átlagold. Kijelzőn először csak az ad értékeket jelenítsd meg.
Szerk 2: AC áramot mérsz? Szerintem akkor az IC kimenetén AC fesz lesz. Szkópot tegyél rá. Ha AC fesz van akkor az RC tagot 50Hz vágási frekencia alá kell méretezni. Én a DC változatnál ha jól emlékszem 7Hz-re méreteztem.
A hozzászólás módosítva: Jan 15, 2016
(#) Pepebá hozzászólása Jan 15, 2016 /
 
Üdv.
AC 0-10A közötti mérésre milyen mérőelemet tudtok ajánlani, melyet lehet illeszteni PIC-hez. (vagy ADC illesztéssel Raspi-hoz)
ACS712- vel próbálkoztam, de csak DC esetében működött
A hozzászólás módosítva: Jan 15, 2016
(#) Bakman válasza Pepebá hozzászólására (») Jan 16, 2016 /
 
Én ilyennel próbálkoznék: Bővebben: Link.
(#) freeJoco hozzászólása Jan 16, 2016 /
 
Sziasztok!
Egy problémám adódott az MPLAB használatával. Mindkét verziót az MPLAB 8.92-t és az MPLABX-et is használom. Eddig nem volt gondom egyikkel sem. Mostanában azonban újratelepítettem a programokat, illetve frissítéseket raktam fel. Valamiért a korábban megírt programok egyike sem fut már egyik verzión sem. Amikor megnyitom a projektet vagy nem találja a sourse filet, vagy pedig amikor futtatok egy forrást akkor make1 és make2 esetén is hibaüzenettel lép ki, mintha nem találná ezeket a fileket. Mi lehet a gond?
(#) Hp41C válasza freeJoco hozzászólására (») Jan 16, 2016 /
 
Ha frissítettél fordítókat is, azok más könyvtárba települnek (verziószám az elérési útban), így az include útvonalakat igazítani kell.
A hozzászólás módosítva: Jan 16, 2016
(#) sonajkniz válasza freeJoco hozzászólására (») Jan 16, 2016 /
 
Szia!
Én épp tegnap telepítettem újra a számítógépemet. Előtte persze lementettem a komplett MPLABXproject könyvtárat.
Az újratelepítés után nem hoztam létre újabb projectet, hanem a File fülre, majd a lenyíló ablakban az Open project-re kattintva rákerestem a lementett mappára és behívtam. Az összes a mappán belüli projectem, és azok összes állománya működik.
(#) freeJoco válasza Hp41C hozzászólására (») Jan 16, 2016 /
 
Azt pontosan melyik menüben érem el MPLABX-nél? Próbáltam már a beállításokat, a fordítónál, de valamiért nem áll át.
(#) dani9228 válasza edison14 hozzászólására (») Jan 16, 2016 /
 
Oké, köszi. Megírtam a progit, de amikor a konfigurációs biteket állítottam be, nem kínálta fel a kvarc frekvenciáját. Így a sajátját használtam. A program lefordult, de a pic-re nem tudtam rátölteni a programot. Mellékeltem, hogy mit ír ki.
(#) don_peter válasza Droot hozzászólására (») Jan 16, 2016 /
 
+ megy Hp41C és Bakman-nak is.
Megnéztem oszcilloszkóppal is és valami zavart mutat amit nem igen tudok hová tenni.
Most jelenleg egy RC tag beiktatásával és folyamatos átlagolással kicsit jobb az eredmény, de még mindig nem stabil.
Majd ha már minden részével kész leszek a fedélzetinek akkor finomítok még rajta...

Mérések kb 100-150ms-onként van.
Egyelőre marad úgy..

Viszont tanácsotokat kérném abban, hogy egy kerékpárra szerelhető mágneskapcsolós jeladóval hogy tudom legkönnyebben mérni a sebességet?
1 jel lesz fordulatonként és 1mp-es mintákkal gondoltam számolni és kijelezni az értéket.
Nem is számolásban kellene segítség, hanem a mérés megvalósításában.

Jelenleg ott tartok, hogy van egy 1mp-es timer0 megszakításom ami, amúgy is van és abban végezhetem a számolásokat.
A jeladó kapcsolóként működik, amikor a mágnes elhalad a jeladó előtt, akkor rövid zár.
Ezt gondolom egy külső interrupt-al kellene figyelnem.
A gond ügye az, ha a kerék lassan forog akkor folyamatosan tud megszakítást okozni.
Ezzel a problémával már találkoztam, de nem tudtam megoldani.
Még mindig 18F46K22 a cél PIC.

Minden javaslatnak örülök.
Előre is köszi..
(#) sonajkniz válasza don_peter hozzászólására (») Jan 16, 2016 /
 
Idézet:
„A gond ügye az, ha a kerék lassan forog akkor folyamatosan tud megszakítást okozni.”

Ha a megszakítást IOC beolvasásra teszed, akkor nem. Igaz, így bekapcsoláskor és kikapcsoláskor is kiváltja a megszakítást, de a megszakításban ellenőrzöd, melyik volt, és a nem megfelelőnél kilépteted.
(#) kissi válasza don_peter hozzászólására (») Jan 16, 2016 /
 
Idézet:
„A gond ügye az, ha a kerék lassan forog akkor folyamatosan tud megszakítást okozni.”


Az hogy lehet? Ha élvezérelt, akkor csak prell miatt lehetséges, azt meg szoftveresen le kell kezelned !
(#) Bakman válasza kissi hozzászólására (») Jan 16, 2016 /
 
Valamelyik fórumban olvastam, állítólag több kontrolernél is sikerült reprodukálni a hibát: Ha az IOC megszakítással figyelt bemeneten szépen lassan csökkented a feszültséget, lehet találni nem is nehezen olyan pontot, ahol a megszakítás többször is lefut. Igaz, ezt egy schmitt trigger segítségével orvosolni lehet, így talán kevesebb a prell is.
(#) kissi válasza Bakman hozzászólására (») Jan 16, 2016 /
 
Általában az INT bemeneteket szoktam használni, bár már kellett IOC is... még nem tapasztaltam ilyet ( egyébként sem jellemző mágneskapcsolós jeladóra /Hall, Reed / a lassú jelváltozás !) .
(#) Bakman válasza kissi hozzászólására (») Jan 16, 2016 /
 
Azt írtad, ha élvezérelt, csak a prell miatt lehet gond. Erre írtam, hogy állítólag nem csak arra, hanem a túl lassú változásra is lehet ilyen gond. Jeladókra nem jellemző, de elsősorban érdekességként emeltem ki a dolgot. El tudok képzelni olyat, hogy valaki lefutó élt figyel, de az valami miatt lassan is változhat.

Már nem emlékszem pontosan, hogy INT vagy IOC volt a megszakítás, de ez éppen mindegy is.
(#) kissi válasza Bakman hozzászólására (») Jan 16, 2016 /
 
Értem, nem olvastam róla korábban !
(#) don_peter hozzászólása Jan 16, 2016 /
 
Köszönöm.
HALL szenzornál volt ez tapasztalható (prell), sima mágnes kapcsolónál amit a biciklire lehet szerelni azon nem tapasztaltam ilyet, most úgy fest frankon működik a megszakítás.
Lassú fordulatnál sincs gond...
(#) Bakman válasza don_peter hozzászólására (») Jan 16, 2016 /
 
Érdekes, mert minden Hall szenzornak van hiszterézise, nem nagyon okozhatna ilyet.
(#) don_peter válasza Bakman hozzászólására (») Jan 16, 2016 /
 
Nem igazán értem én sem, de sima kerékpáros mágneskapcsolóval nem okozott folyamatos megszakítást.
HALL szenzorral sajnos igen.
De majd még azért biztosan meg fogom nézni mert a motorba az van beleépítve és ki kellene használni, ha már ott van.
Az analóg bemenetet meg kondival és ellenállással fogtam meg, hogy ne ugráljon.
Majd még biztos azt is kell finomítani, de a lényeg, hogy már működik amit akarok..

Még egy kérdés:
Az 5.2-es zéneren is esik a feszültség igaz?
Elvileg 0.7v-ot? (Normál zéner)
(#) kissi válasza don_peter hozzászólására (») Jan 16, 2016 /
 
Lehet, hogy nem volt elég erős a mágneses tér ( nem kapcsolt stabilan!) !
Szkóppal/logikai analizátorral mit láttál ?!
A hozzászólás módosítva: Jan 16, 2016
(#) kissi válasza don_peter hozzászólására (») Jan 16, 2016 /
 
Normál ( nyitó!) irányban igen !

De ezt védelemnek ( párhuzamosan!) szokták berakni, akkor meg záró irányban kell lennie ( ha jól sejtem, hogy mire szánod! ) !
A hozzászólás módosítva: Jan 16, 2016
Következő: »»   740 / 1210
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