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   549 / 1210
(#) Hilo hozzászólása Júl 24, 2014 /
 
Sziasztok,
telefonról PICkit2 vezérlést úgy képzeltem el, hogy mivel USB, ha jól tudom 4 szál ebből 2 adat, 2 a táp. Táp szálakat telefontól független forrásból kapná a PICkit2, és az adat menne az androidos rendszerről. A lényeg nem csak a hordozhatóság lenne, hanem hogy gép nélkül is tudjak a programon javítani ha kell. Ha jól tudom a Microchip oldalán vannak library-k linuxos mobil fejlesztésekhez is, csak nem tudom csinált már e bárki programot ilyenre.
(#) Pali79 válasza Hilo hozzászólására (») Júl 24, 2014 /
 
Hát ez az elképzelés azért teljesen más mint az első felvetésed. Kódot írni, átírni nem nagy dolog, de lefordítani és beégetni már neccesebb. Kíváncsi leszek az eredményre.
(#) icserny válasza Hilo hozzászólására (») Júl 24, 2014 /
 
A PICkit2 parancssori vezérléséhez való PK2CMD program esetleg adaptálható. A fordítók már nehezebben. Én inkább vennék egy olcsó laptopot, amin a Win XT eldöcög...
A hozzászólás módosítva: Júl 24, 2014
(#) kistee válasza Hilo hozzászólására (») Júl 25, 2014 /
 
Szia,

Lehet, hogy rosszul tudom, de a telón lévő USB csatlakozó nem ugyanolyan, mint a PC-n lévő. A PC-n Host-controller van, amihez különféle eszközök csatlakoztathatóak. A telefon (és a többi USB-s eszköz: pendrive, webkamera, stb.) USB felülete nem Host, hanem "kliens" jellegű. Persze ettől még működhet, legfeljebb valahogy meg kell erőszakolni az USB-t.
(#) Beles válasza kistee hozzászólására (») Júl 25, 2014 /
 
Már az ujjabbakon OTG-s usb van, ami nem csak kliens lehet, hanem host is. Pl egy Samsung S4-re lehet kötni egeret, billentyűzetet, pendrive-ot stb. Szóval elvileg nem lehetetlen, csak meg kell hozzá írn az eszköz illesztőt.
(#) Hp41C válasza kistee hozzászólására (») Júl 25, 2014 /
 
Okosabb telefonokon és kontrollereken az USB illesztő képes az USB On The Go funkióra, amelyben a kábel dölti el, hogy a telefon vagy kontroller USB master vagy slave lesz. Az USB OTG kábel egyik végén a 4. vezeték (ID) össze van kötve a földdel. Amelyik ezköz az ID vezetéken alacsony szintet érzékel, az lesz a host.
(#) SzervízMacska válasza Hp41C hozzászólására (») Júl 25, 2014 /
 
Nekem ez egy kicsit furcsa. Ha be van kötve az összes, s az egyik dugónál kettőt összekötünk, akkor azok a túlvégen is zárlatban vannak. Nem? Esetleg a telefon felől 5 csatlakozó van?
A hozzászólás módosítva: Júl 25, 2014
(#) Hp41C válasza SzervízMacska hozzászólására (») Júl 25, 2014 /
 
A kábel túlvégén az ID nincs bekötve.
A hozzászólás módosítva: Júl 25, 2014
(#) SzervízMacska válasza Hp41C hozzászólására (») Júl 25, 2014 /
 
Köszönöm!
(#) icserny válasza SzervízMacska hozzászólására (») Júl 25, 2014 /
 
Idézet:
„Esetleg a telefon felől 5 csatlakozó van?”

Hát persze! Bővebben: Link
(#) don_peter hozzászólása Júl 25, 2014 /
 
Uraim,
16F684-es PIC alvó módjának beállításában kérnék segítséget.
Már az elejétől mert még soha nem csináltam ilyet és nem tudom elkezdeni sem.

Készítettem egy ilyen kütyüt: Bővebben: Link
A baj az, hogy ha benne hagyom az elemet, akkor egy idő után biztosan leszívná, hiszen folyamatosan pörögne.
Arra gondoltam, hogy valahogy csökkenteni kellene az áramfelvételét, ha úgy sem megy.
Timer-el gondoltam beállítani egy 1-2 perces időt.
Ha ezen időn belül nem érkezne jel a lendítés kapcsolótól akkor mehetne alvó módba.
De hogyan?

Előre is köszi.

ui: 16f684 pdf

A lendítés (12. láb, RA1) és a nyomógomb (11. láb, RA2) is magas szinten van, alacsony szintre váltásnál teljesül a feltétel.
A hozzászólás módosítva: Júl 25, 2014
(#) kissi válasza don_peter hozzászólására (») Júl 25, 2014 /
 
Ha kimérted az inaktív időt, akkor kiadsz egy sleep parancsot és elmegy "csucsulni" ! Figyelj rá, hogy a nem használt külső és belső perifériákat előtte kapcsold le, mert különben az áramfelvételen látszani fog, mert pl. a kimeneti lábak megőrzik az állapotukat! Felébresztés pl. megszakítással lehet ( a lehetséges okokat megtalálod az adatlapban!) !
Induláskor egy NOP-al indít, ez nem fog zavarni !
A hozzászólás módosítva: Júl 25, 2014
(#) don_peter válasza don_peter hozzászólására (») Júl 25, 2014 /
 
Közben rájöttem, hogy az RA0-ás lábán van a ULPWU bit amivel engedélyezni kell és azt pedig PCON regiszterrel lehet beállítani.
Ami nem egyértelmű számomra az az, hogy bármelyik lábra be lehet állítani az élesztést vagy csak az A0-ra?

kissi: és bármelyik RA lábra, visszatér, ha teszek rá megszakítást?
Maga a megszakítás ébreszti a PIC-et vagy a megszakításban elhelyezett NOP parancs?
A hozzászólás módosítva: Júl 25, 2014
(#) Hp41C válasza don_peter hozzászólására (») Júl 25, 2014 /
 
Adatlap DS41202F 107. oldalon az 12-7. ábrán látható Wake-up kimenet ébreszti a kontrollert.
Azaz a megszakítás. Csak olyan periféria tudja felébreszteni, ami alvó állapotben is működik.
Ha a megszakítás tiltott (GIE = 0), a sleep utáni utasítással folytatja a programot. Ha a megszakítás engedélyezett (GIE = 1), akkor a megszakítási rutint futtatja le, mejd visszatér a sleep utáni programrészletre. A sleep utánra érdemes tenni egy nop -ot, hogy biztosan végrehajtsa a továbbiakban leírt utasításokat. Amennyiben reset érkezik alvó állopotban, a 0 címtől kezdi a végrehajtást. A PCON és a STATUS regiszterek megfelelő bitjeinek értékéból megtudható a reset oka.
(#) don_peter válasza Hp41C hozzászólására (») Júl 25, 2014 /
 
Hi-Tech 10-12-16 fordító a sleep utasítást nem ismeri.
C-ben mivel adom ki a parancsokat?
(#) don_peter válasza don_peter hozzászólására (») Júl 25, 2014 /
 
Ez utóbbi közben meg lett:
  1. asm("SLEEP");
és
  1. ams("NOP");
Hi-Tech fordítónál..
El is megy pihenni most már csak az ébresztéssel kell vacakoljak.
Köszi a segítséget.

Klöszben meg lett az ébresztés is
A hozzászólás módosítva: Júl 25, 2014
(#) morzsa15 hozzászólása Júl 25, 2014 /
 
Sziasztok!
Olyan kérdésem lenne hogy össze dobtam egy alap programot 16f877-es pic-hez ami lcdre ki írna dolgokat de nem találtam itthon 20mhz-s kristályt.. így kipróbáltam a nélkül az létezik hogy azért add ki az lcd ilyen fekete kockákat mert az nincsen benne?
(#) Pali79 válasza morzsa15 hozzászólására (») Júl 25, 2014 /
 
Vagy túl sok a kontraszt vagy nem megy a program. Ha nincs benne kavics akkor az utóbbi.
(#) morzsa15 válasza Pali79 hozzászólására (») Júl 25, 2014 /
 
Találtam most egy 27mhz eset de azzal is ugyan ez a helyzet esetleg tudsz valami teszt programot amivel ki tudom próbálni?
(#) Bakman válasza morzsa15 hozzászólására (») Júl 25, 2014 /
 
16F877 max. 20 MHz-en megy. A kijelző továbbra sem kap vezérlést.
(#) morzsa15 válasza Bakman hozzászólására (») Júl 25, 2014 /
 
Mert proteusba megy kristály nélkül is itt meg nem az mi?
(#) Pali79 válasza morzsa15 hozzászólására (») Júl 25, 2014 /
 
Felejtsd el a teszt progikat. Kell egy kavics hozzá vagy egy olyan pic amiben van belső oszcillátor.
(#) morzsa15 válasza Pali79 hozzászólására (») Júl 25, 2014 /
 
Okés akkor jövő hétfőig húzódik a dolog köszi minden kinek a segítséget.
(#) don_peter hozzászólása Júl 25, 2014 /
 
Nos eljutottam odáig, hogy működik a SLEEP, de nem vagyok biztos benne, hogy jól állítottam be.
Vetnétek rá egy pillantást? 16F684 és MPLAB, Hi-Tech fórdító.

init:
  1. void init(){
  2.         ANSEL = 0;                              // Minden láb digitális
  3.         CMCON0 = 7;                             // Comparator kikapcsolva
  4.         CCP1CON = 0;                    // Capt/Comp/PWM kikapcsolva   
  5.         INTCON = 0;                             // Összes interrupt láb kikapcsolva
  6.         PEIE   = 1;                             // Peripheral interrupt engedélyezése
  7.         GIE    = 1;                             // Globolis interrupt engedélyezése
  8.  
  9.         // Timer2 8MHz
  10.         PR2 = 250;
  11.         T2CON = 0b00111111;     // 8millió / 16elő és 8 utóosztás == 62.500/250 == 250 == 50lefutás ~1mp
  12.         TMR2IE = 1;
  13.        
  14.         // Sleep üzemmód beállítás
  15.         PCON = 0b01000000;
  16.         IOCA = 0b00000100;      // RA2 beállítva
  17.         WPUA = 0b00000100;
  18.         RAIE = 1;
  19.  
  20.         TRISC = 0;
  21.         TRISA = 4;
  22.         GSZENZ = 1;                             // Gyorsulási szenzort magas szintre állítjuk
  23. }

Megszakítási rutin:
  1. extern interrupt isr(void) {
  2.         timer_count++;
  3.                        
  4.         if(timer_count >= 50){
  5.                 LED7 = !LED7;
  6.                 timer_count = 0;
  7.                 mp_count++;
  8.                 if(mp_count >= 10){    //Addig ameddig mp.-számláló nagyobb vagy egyelő nem lesz tétlenségi idővel.
  9.                         PORTA = 4;
  10.                         PORTC = 0;
  11.                         mp_count = 0;
  12.                         timer_count = 0;
  13.                         asm("SLEEP");
  14.                 }
  15.         }
  16.        
  17.         if(RAIF == 1){
  18.                 RAIF = 0;
  19.                 asm("NOP");
  20.         }
  21.  
  22.         TMR2IF = 0;
  23. }

A timer2-vel mérem az időt, KB. 1mp-enként növeljük mp_count változót, amikor elérjük a 10-et akkor nullázunk mindent és elaltatjuk a PIC-et.
Mikor érkezik egy megszakítás az RA2-es lábról akkor feléled a PIC, vagy is lefut RAIF == 1 feltétel és onnét folytatja a futást ahol korábban abbahagyta.

Ez így működik, de van egy olyan érzésem, hogy valamit kifelejtettem vagy valamit nem jól adtam meg.
Előre is köszi.
A hozzászólás módosítva: Júl 25, 2014
(#) moltam válasza Hilo hozzászólására (») Júl 26, 2014 /
 
Helo.
Én most próbálom egy allwinner tablet NAND jára varázsolni a linuxot. Tud sd ről bootolni is, arról megy simán. Linux alá meg elvileg van program a pickithez.
(#) Povi25 hozzászólása Júl 26, 2014 /
 
Hello
Segiteseget szeretnek kerni, pic18f4520 at kene 20MHz kristallyal uzemelni de nem sikerul
MPLAB X IDE es XC8 al kellene megvalositani, belso orajat mar sikerult allitgatni
(#) kissi válasza Povi25 hozzászólására (») Júl 26, 2014 /
 
Ha a belsőről megy, akkor csak a konfigurációs biteket, ill. a hardvert szúrhattad ( vagy hibás ) el ! Az oszcillátornál HS legyen beállítva, kondik kellenek a kvarchoz!
(#) SzervízMacska válasza icserny hozzászólására (») Júl 26, 2014 /
 
Köszi István, a végére kilogikáztam. Az a mondat volt a módosítás...
(#) Povi25 válasza kissi hozzászólására (») Júl 27, 2014 /
 
Hardware tuti jo mert hi tech c ben sikerult jol mukodesre birni. Ha itt HSre allitom akkor egyszeruen semmi sem tortenik :/ tuti hogy a configban kell valamit beallitani
(#) brugo hozzászólása Júl 27, 2014 /
 
Szervusztok,
16f628 helyettesíthető 16f648 -al ?
Következő: »»   549 / 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