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   1048 / 1203
(#) usane válasza jdani hozzászólására (») Okt 4, 2018 /
 
Mondjuk feszültséghatárolni a bemenetet pl zénerrel, + kondi szűrésnek.
(#) Peter65 válasza jdani hozzászólására (») Okt 4, 2018 /
 
Külön táp, és optikai leválasztás.
A pwm fokozat RF szűrése.
A kódadó vezetékein lehet próbálkozni mindenféle szűrővel, kis-impedanciás fogadással is, de kínlódás lesz.
(#) jdani válasza Peter65 hozzászólására (») Okt 4, 2018 /
 
Erre az optikai leválasztásra gondoltam én is. De hogyan?
Tudnál mutatni egy rajzot?
(#) pipi válasza jdani hozzászólására (») Okt 4, 2018 /
 
Megkondizod a pic adatlábát, de ez nyilván nem jó az infrabemenetre, ott túl gyors az adatváltás,
az enkóderre gondolnék kb 47n kondit fehúzó ellenállástól függően, de soros elenállás is kéne 10-100ohm hogy az enkóder ne a feltültütt kondit zárja rövidre, hanem korlátozza az áramot.
(#) kaqkk válasza jdani hozzászólására (») Okt 4, 2018 /
 
Én átfordítanám programban a bemeneteket és 1k lehúzókat tennék rájuk.
A hozzászólás módosítva: Okt 4, 2018
(#) jdani válasza pipi hozzászólására (») Okt 4, 2018 /
 
Az infrabemenettel nincs gond. A falba egy helyen van vezetve a plafon LED világítás, és egy helyen jön a PICbe az enkóder jele. Ha a kimenetre más fogyasztót kötök, azzal jól működik minden.
Tehát a gond csak az enkóderek. Lehúzó ellenállásokat se tudok tenni okok miatt.
Így gondolod?
A nyomógomb mintha az enkóder egyik jele lenne.
A hozzászólás módosítva: Okt 4, 2018

c.JPG
    
(#) gyoran válasza jdani hozzászólására (») Okt 4, 2018 /
 
Kb ez lehet a jó, ezzel - vagy 100 nF-val - kb. 05-1 ms körüli időállandód van, ha jól számolom.
Ha az encodert 1 sec alatt körbetekerve pl. 100 impulzust vársz, akkor az 10 msec, egy nagyságrenddel nagyobb.
Ha az encoder egyébként kétszer nyitott állapotban van, akkor elvben olyan mintha rajta sem lenne, akkor az encoder lehúzott állapota szerint kellene működjön. Ha nincs ilyen, valamit elkötöttél, vagy én látom a dolgot rosszul. Mondjuk zárt érintkezőnél sem lehetne akkora tüske, ami zavart okoz, de ki tudja.
Ha minden kötél szakad, PIC az encoder mellé és differenciáls soros átvitel a kábelen brutális redundanciával, biztosan megoldaná. Na nem gondoltam komolyan, viszont biztos menne, de ehhez kevés a 3 ér.
A hozzászólás módosítva: Okt 4, 2018
(#) pipi válasza jdani hozzászólására (») Okt 4, 2018 /
 
Igen. Azt az R23-at egyszer kihagytam, akkora áramimpulzusokat/zavart generált az enkóder hogy a pic rendszeresen beresetelt. Azóta béke van
Csökkentheted az R23 értékét, akkor gyorsabban süti ki a kondit...
A hozzászólás módosítva: Okt 4, 2018
(#) jdani válasza gyoran hozzászólására (») Okt 5, 2018 /
 
Azt figyeltem meg, hogy zárt érintkezőknél jól működik. Amikor nincs jel, úgy működik a vezeték mint egy antenna, és szedi a zavart.
Kipróbálom akkor a 100nF, és egy 56R ellenállást.
(#) Kera_Will válasza jdani hozzászólására (») Okt 5, 2018 /
 
A port bemenete és a távoli kontaktus közé rakni egy optocsatolót.
Az optocsatoló kollektora közvetlen a port mellett legyen.
Az optocsatoló ledjén pedig "nagy" áramot kell áthajtani a hosszú dróton keresztül.
Akkor nem csak feszültség hanem "nagy" teljesítmény is fog utazni a vezetéken aminek egy LED több mA nyitó irányú áramát és feszültségét kell biztosítani esetleg még lehet sorba tenni 1 2 diódát is az opto ledjével ami növeli a nyitó feszültség szintjét.
Ezt már kevésbé fogja biztosítani a vezetékben indukálódó feszültség tüske ami a "csupasz" port lábat meg tudja zavarni.
(#) Hp41C válasza jdani hozzászólására (») Okt 5, 2018 /
 
Csavart érpárakkal bekötli a kontaktusokat.
(#) jdani válasza Kera_Will hozzászólására (») Okt 5, 2018 /
 
Tettem jelenleg egy javasolt 100nF kondit, eddig jó. Tesztelni fogom még.
(#) jdani hozzászólása Okt 5, 2018 /
 
(#) Bakman válasza jdani hozzászólására (») Okt 5, 2018 /
 
Ha a LED és a tranzisztor oldal galvanikusan össze van kötve, nem sok értelme van az optocsatolónak.
(#) proli007 válasza Bakman hozzászólására (») Okt 5, 2018 /
 
Hello! Pedig még is van. Tekintve, hogy a Led "árammal működik", nem egy kóbor tranziens feszültséggel. Ráadásul még "lassú" is..
(#) Bakman válasza proli007 hozzászólására (») Okt 5, 2018 /
 
Ezt értem, de így a tranziensek is átjutnak, nem?
(#) proli007 válasza Bakman hozzászólására (») Okt 5, 2018 /
 
A kontroller GND hálózatára igen. De a bemeneteire nem. De ha a tápoldalról is zavarérzékeny, akkor jelen esetben nem sok tenni való van, főleg hogy változtatni nem szeretne rajta. Maximum a hálózat oldali zavarszűrés. De ebbe nem akartam belemenni, mert a felépítés sem ésszerű, hogy az áramkör nem ott van, ahol a bementi jel képződik. Talán a teljesítmény jeleket kellet volna "távvezetékezni", nem a működtetést. A különböző szintű és feszültségnemű hálózatok egyébként sem lehetnének azonos csőben..
(#) jdani válasza proli007 hozzászólására (») Okt 5, 2018 /
 
Táp oldalról nincs gond.
Álmennyezetbe szerelni az elektronikát nem akartam. A villanykapcsoló helyére enkóder került, de ide az elektronika megint nem mehetett, nem fér. Ezért lett külön helyre téve. Amikor csinálram a kábelezést a házba, hálózati kábelt vísszintesen a konektor magasságába vezettem. Minden egyebet, TV NET, LED világítás függőlegesen egy helyen, gondolván hogy ezek alacsony áramok / jelek.
Most jut eszembe hogy a jelek netes kábelen keresztül mennek. De azok a LAN kábelek árnyékoltak...
Viszont annak csak úgy van értelme, ha a fólia árnyékolás a minusszal össze van kötve nem?
(#) proli007 válasza jdani hozzászólására (») Okt 5, 2018 /
 
Egy árnyékolt kábelnek mindig akkor van értelme, ha csatlakozik a GND pontra. És az a jó, ha ezt csak egyik oldalon teszi. Mert akkor nem alakul ki földhurok, ami megint beindukálhatja a zavarjeleket.
(#) pajti2 válasza gyoran hozzászólására (») Okt 7, 2018 /
 
Ha máshogy megoldani nem sikerül, borotváld le a protokol réteget az usb kapcsolatról, és használj csak generic bulk adatátvitelt. Lesz 1 milli sec időszeletenként egy 64 byte-os minicsomagod oda-vissza. Protokolt megírod magadnak. A generic usb driver mindegyik oprendszernek alapból része. Az eszközt a os alatt enumerátorral vid/pid alapján találod meg, azok a funkciók minden normális sw sdk alatt elérhetőek (os oldali szolgáltatásokra proxy függvények). A probléma vele csak annyi, hogy ugyan nem kell driver, de nincs is Ha közvetlenül soros portot szeretnél látni, azt nem fogsz látni.
(#) lóri hozzászólása Okt 7, 2018 /
 
Nos, megrajzoltam, lehuzaloztam a Hp41c által ajánlott kapcsolóüzemű tápot. A kérdésem az lenne, hogy az enable lábra egy feszültségosztót rakhatok-e így, hogy 0.8V-al megtápláljam, vagy így nem illik? Itt kezdtük el beszélni és pic-hez használom, azért ideraktam a kérdést.
A hozzászólás módosítva: Okt 7, 2018

mic4950.jpg
    
(#) Hp41C válasza lóri hozzászólására (») Okt 7, 2018 /
 
Az EN lábon az engedélyezési küszöb maximális feszültsége 1.2V is lehet, így az osztóval ennél egy kicsit nagyobb feszültséget kellene beállítani.
(#) lóri válasza Hp41C hozzászólására (») Okt 7, 2018 /
 
A leosztott feszültség 4.7V, elvileg 0.9V lesz az ena. De, módosítom, köszönöm.
(#) glaci hozzászólása Okt 7, 2018 /
 
Sziasztok!
PIC18F66K80 processzor RA0 lábát szeretném használni egyszer analóg bemenetként, ami egy termoelem feszültségét alakítaná át digitális jellé, máskor meg egy DS18B20 digitális hőmérő jelét olvasná be további felhasználásra. Az adatlapot olvasva, az ADCON0 regiszter 6-2 bitjeinek beállításával tudom az analóg bemenetet kiválasztani. Ha az ADON bit 1, akkor a analóg jel konverziója működik, ha 0 akkor a konverziós modul le van kapcsolva, tehát digitális jel beolvasására alkalmas.
Ha ez így van kérek megerősítést, ha nem akkor kérek útbaigazítást.
A hozzászólást előre is köszönöm!
(#) Hp41C válasza glaci hozzászólására (») Okt 7, 2018 /
 
Ha két meghajtó (a hőelem jelének feldolgozását végző áramkör és a 1-Wite eszköz) kimenete egy közös pontra (a RA0 lábra) dolgozik, egy időben csak az egyik meghajtása lehet alacsony impedanciás. A hőelem jelének feldolgozását végző áramkör kimenetét lehet nagy impedanciásra tervezni, de figyelembe kell A/D maximális meghajtó impedanciájának értékét (és ebből az A/D beállási idejét) és azt, hogy a 1-wire meghajtó felhúzó ellenállást igényel. Ez némiképp ellentmondásos, hiszen a felhúzó ellenállás a nagy impedanciás áramkörrel a mért érték torzításához vezet. A megoldás a felhúzó ellenállás kikapcsolása lenne a mérés idejére. Ehhez azonban egy PIC lábra lenne szükség. Ha felhasználnánk két lábat, miért nem választjuk szét a két bemenetet?
(#) glaci válasza Hp41C hozzászólására (») Okt 8, 2018 /
 
Szia!
Ezt valóban még át kell gondolni. A pic lábainak száma viszont kevés, mondhatnám korlátozott.
Mindenesetre a felvetés jogos és köszönöm.
(#) glaci válasza Hp41C hozzászólására (») Okt 8, 2018 /
 
Szia!
Azért a tegnapi kérdésem nem volt igazán teljes. Nem 1 termoelem és nem 1 DS18B20 kapcsolódik a PIC-hez, hanem 2 termoelem és 5 DS18B20. Az éppen aktuális mérőeszköz jelét egy CD4051 kapcsolja a PIC lábára. Így minden eszköz jele azonos impedanciával csatlakozik a PIC-hez.
Ezt igazából azért gondoltam így, mert így nem kell az 1 wire eszközöket a bekapcsoláskor egyenként azonosítani és a termoelemek jeleit is egy lábról lehet feldogozni.
Igaz, hogy így 5 lábat használok el a mérésekre 3 helyett, de nyerek egy kényelmi funkciót.
Így ismét az eredeti kérdés lett aktuális.
(#) Hp41C válasza glaci hozzászólására (») Okt 8, 2018 /
 
RA0 - komparátor kikapcsolva:
ANCON0 0. bitje 0 - RA0 láb digitális bemenet/kimenet a TRISA 0. bitje szerint, a PORTA regiszter 0 bitjén a lábon megjelenő logikai szintnek megfelelő értéket olvashatjuk.
ANCON0 0. bitje 1 - RA0 láb analóg bemenet:
ha TRISA 0. bitje 0, akkor digitális kimenet, a lábon mérhető feszültség kerül az A/D bemenetére. A PORTA regiszter 0. bitjén 0 olvasható.
ha TRISA 0. bitje 1, akkor a lábon mérhető feszültség kerül az A/D bemenetére. A PORTA regiszter 0. bitjén 0 olvasható.

Az üzemmód az ANCON0 és a TRISA regiszterekkel állítható be.
(#) glaci válasza Hp41C hozzászólására (») Okt 8, 2018 /
 
Köszönöm szépen!
(#) don_peter hozzászólása Okt 11, 2018 /
 
Srácok, megint egy mérési problémám van.
+-12v-os PWM jelet szeretnék vissza mérni egy 16F684-es PIC-el.
AN3-as csatornáját használóm a megfelelő osztókkal tudom is mérni a feszültséget, de csak is a pozitív részt és csak is PWM nélkül.
Ha a PWM jel megy, nem tudom megmérni a valós pozitív feszültséget.
PWM 1KHz-es jelen csattog + és -12v-on.
Timer2-vel állítom elő a PWM jelet és azt használom megszakításban a mérésre is.
Beállításaim a következőek:
  1. // 1KHz
  2.         PR2     = 0b11111001;
  3.         T2CON = 0b01001000;
  4.         TMR2IE = 1;
  5.  
  6.         ADCON0  = 0b10001100;           // Right justified, VDD Ref, A3 chanel, A/D enabled
  7.         ADCON1  = 0x00;                         // FOSC/2
  8.         ADON    = 1;                            // AD enabled

Majd ezt követi a kiszólóág rutin:
  1. if(TMR2IF && TMR2IE){
  2.                 unsigned char i = 0;
  3.                 ADC     = 0;
  4.                 Count++;
  5.                 if(Count>100){
  6.                         for(i=0; i<100; i++) ADC += read_ADC(3);
  7.                         ADC             = ADC/100;
  8.                         Count   = 0;
  9.                         LED2 = !LED2;    //csak hogy lássam is működést
  10.                 }
  11.                 TMR2IF = 0;
  12.         }

Majd ezt követi a kitöltés beállítása és az ADC által begyűjtött adatok feldolgozása.
Változó kitöltéssel működne a PWM.
  1. CCP1CON = 0x0C;                         // PWM engedélyezése
  2.                 PWMDuty(20);    // %-os érték


Hogy tudnám megmérni a valós pozitív feszültséget?
Következő: »»   1048 / 1203
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