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   1177 / 1210
(#) Bakman válasza Naresh Jain hozzászólására (») Ápr 1, 2022 /
 
What type of fan do you have?
(#) Naresh Jain válasza Bakman hozzászólására (») Ápr 2, 2022 /
 
Ceiling fan 100 watts operates on AC 220v,please check the given codes in attached file in previous comments, working fine to control the single fan, but I want to add some more triac to control 100 watts lights on/off only, please add some more codes in program for this addition, because I can not write the code
A hozzászólás módosítva: Ápr 2, 2022
(#) Baxi hozzászólása Ápr 13, 2022 /
 
Hi Mesterek!
Olyan kérdésem lenne hogy 2db 8ch multiplexernek a vezérlését (3bitet) szeretném ugyan azon pic kimenetekkel vezérelni. Az engedélyező lábakkal felváltva pedig kiolvasni azok értékeit. A kérdésem az lenne hogy a 2db mux-nak a vezérlőlábait büntetlenül közösíthetem vagy nem árt ellenekkel illetve diódákkal "szétszedni"?
Válaszokat előre is köszönöm.
Szép napot!
(#) proli007 válasza Baxi hozzászólására (») Ápr 13, 2022 / 1
 
Hello! Nyugodtan összekötheted a vezérlő lábakat, hiszen azok bemenetek. Sőt az MPX Comm kimenetét is összekötheted. Ha az egyik INH bemenetet egy inverterrel (pld egy tranyö) kapcsolod, akkor azok vezérléséhez is elég egy porta láb.
(#) Baxi válasza proli007 hozzászólására (») Ápr 13, 2022 /
 
Köszönöm!
(#) Bakman hozzászólása Ápr 15, 2022 /
 
Napot!

MPLAB, PIC18F16Q40, I2C, MLX90614 szenzor.

A helyes kiolvasáshoz kellene egy Repeated Start a kommunikációs folyamatba de nem jön össze. A mellékletben kép a logikai analizátorról, mi a különbség a jó és a nem jó kommunikáció között. A jót egy régebbi I2C modullal (MSSP) rendelkező PIC-kel követtem el de ezzel az új típusúval nem győzök.

Mit módosítsak a kódon?

Előre is!

  1. extern volatile uint8_t mlx_msb, mlx_lsb;
  2.  
  3. static inline void wait4stop(void) {
  4.     while (!I2C1PIRbits.PCIF);
  5.     I2C1PIRbits.PCIF = 0;
  6.     I2C1PIRbits.SCIF = 0;
  7.     I2C1STAT1bits.CLRBF = 1;
  8. }
  9.  
  10. void read_mlx(void) {
  11.  
  12.     I2C1CNTH = 0;
  13.  
  14.     I2C1TXB = 0xB4; //write address
  15.     I2C1CNTL = 1;
  16.     I2C1CON0bits.S = 1;
  17.     while (!I2C1STAT1bits.TXBE);
  18.     I2C1TXB = 0x07; //RAM Tobj1
  19.     while (!I2C1STAT1bits.TXBE);
  20.  
  21.     wait4stop();
  22.  
  23.     I2C1TXB = 0xB5; //read address
  24.     I2C1CNTL = 0;
  25.     I2C1CON0bits.RSEN = 1;
  26.     I2C1CON0bits.S = 1;
  27.     while (!I2C1CON0bits.MDR);
  28.     I2C1CNTL = 2;
  29.     I2C1CON0bits.S = 1;
  30.     I2C1CON0bits.RSEN = 0;
  31.  
  32.     while (!I2C1STAT1bits.RXBF);
  33.     mlx_lsb = I2C1RXB; //LSB
  34.     while (!I2C1STAT1bits.RXBF);
  35.     mlx_msb = I2C1RXB; //MSB
  36.  
  37.     wait4stop();
  38.  
  39. }

MLX.png
    
(#) gyulank hozzászólása Ápr 15, 2022 /
 
Van egy AirGrid M5-öm, ami egyszer elromlott, újraforrasztották a soros portját, attól jó lett, 1 napig ment, aztán most azt csinálja, hogy csak akkor tudok rá kapcsolódni, ha a tcom-os routerre dugom. Ha egy másik routerbe, akkor sem, és ha közvetlenül a gépbe, akkor sem. Találtam egy rajzot. Ez alapján néztem multiméterrel a szakadásjelzővel, és az 1236 minden kombinációban sípolt. Lehet a 2-3 közt zárlat van, és az okozza? Azért itt kérdeztem, mert a keresés itt talált ethernettel kapcsolatos dolgokat.
(#) Bakman válasza Bakman hozzászólására (») Ápr 21, 2022 / 1
 
Álljon itt a helyes sorrend is az utókor számára:

  1. extern volatile uint8_t mlx_msb, mlx_lsb;
  2.  
  3. static inline void wait4stop(void) {
  4.     while (!I2C1PIRbits.PCIF);
  5.     I2C1PIRbits.PCIF = 0;
  6.     I2C1PIRbits.SCIF = 0;
  7.     I2C1STAT1bits.CLRBF = 1;
  8. }
  9.  
  10. void read_mlx(void) {
  11.  
  12.     I2C1CNTH = 0;
  13.  
  14.     I2C1TXB = 0xB4; //write address
  15.     I2C1CNTL = 1;
  16.     I2C1CON0bits.S = 1;
  17.     while (!I2C1STAT1bits.TXBE);
  18.     I2C1TXB = 0x07; //RAM Tobj1
  19.     while (!I2C1STAT1bits.TXBE);
  20.  
  21.     I2C1CON0bits.RSEN = 1;
  22.     I2C1CON0bits.S = 1;
  23.     while (!I2C1CON0bits.MDR);
  24.  
  25.     I2C1TXB = 0xB5; //read address
  26.     I2C1CNTL = 0;
  27.     I2C1CON0bits.S = 1;
  28.     while (!I2C1CON0bits.MDR);
  29.  
  30.     I2C1CNTL = 2;
  31.     I2C1CON0bits.S = 1;
  32.  
  33.     while (!I2C1STAT1bits.RXBF);
  34.     mlx_lsb = I2C1RXB; //LSB
  35.     while (!I2C1STAT1bits.RXBF);
  36.     mlx_msb = I2C1RXB; //MSB
  37.  
  38.     while (!I2C1CON0bits.MDR);
  39.     I2C1CON1bits.P = 1;
  40.     wait4stop();
  41.  
  42. }

MLX_ok.jpg
    
(#) Mengyán hozzászólása Ápr 24, 2022 /
 
Sziasztok! Bocs, ha hülyeséget kérdezek, gondoltam, a kezdő rovatba belefér. A Pickit 2-t és 3-at rá lehet venni új chip-ek felismerésére, vagy azokat már csak a 4-es tudja, és meg kell venni? Melóhelyen van egy Pic-es kártya, ha jön ki hozzá új firmware, akkor ezzel szoktuk beletolni, és "boldogság" van, ha működik. Most viszont módosítottak a hardveren, és ha jól emlékszem, 18FxxQyy pic van a kártyán. Na ezt a 3-as nem akarja felismerni. A 2-est meg sem próbáltam ezek után. Annyit tudok, hogy a fejlesztő ICD3-at használ.
(#) Bakman válasza Mengyán hozzászólására (») Ápr 24, 2022 / 1
 
Ha a Microchip akarná, tudná, de nem akarja, különben soha nem vennéd meg az újabb programozó HW-t.
(#) Mengyán válasza Bakman hozzászólására (») Ápr 24, 2022 /
 
Köszi! Hát ettől nem lettem boldogabb... Akkor eladóvá vált 2db Pickit 3 és egy Pickit 2 (bár az áment a főnököm mondja ki rá)
(#) Hp41C válasza Mengyán hozzászólására (») Ápr 25, 2022 / 1
 
Ne adjátok e! Csekély összegért alkalmassá tehető a cég számára: PICkit2 Plus
Ha kizárólag magán célra kell, akkor van más út is. Írj privátot.
(#) DJozso hozzászólása Ápr 26, 2022 /
 
Sziasztok! Olyan kérdésem van, hogy egy 18f típusjelű PIC-el, megoldható-e, hogy a tápfeszültség lassú esésénél(kikapcsoljuk a tápját) egy bizonyos feszültség értéknél, EEPRom-ba mentsen egy változót? Alapból tudhatja, vagy külső komparátor kell?
A hozzászólás módosítva: Ápr 26, 2022
(#) Bakman válasza DJozso hozzászólására (») Ápr 26, 2022 / 1
 
Milyen az a bizonyos PIC? Sokban van komparátor, HLVD. Ezek mellett nem sok külső alkatrész kell, csak egy-két ellenállás, dióda és egy nagyobb kondenzátor, valamint a konkrét áramkört is ehhez a rendszerhez kell tervezni.
(#) DJozso válasza Bakman hozzászólására (») Ápr 26, 2022 /
 
Hát, ez igazából tervezés alatt van még, meg kell pontosan határoznom, milyen perifériákat szeretnék használni. Amik itthon vannak: 18f2550, 18f4550, 18f46k22, 18f4685. Tudnál példát mutatni-mondani, egy bármely általad választott PIC-cel, hogyan lehetne ezt hardveresen megoldani, illetve szoftveresen lekezelni? Vagy hogy mi alapján találnék rajzot hozzá a nagy Googlén? Én arra gondoltam, hogy egy külső feszültség komparátort (LM393) beállítanék a PIC stabilizátora elé (12V-ba), hogy mondjuk 8V-nál a kimenete felugrana +tápra, és ez egy optocsatolón keresztül eljutna a PIC INT bemenetére, és a megszakítás megcsinálná a váltózó mentést. Ez így "csak" egy INT bemenetbe kerül... Bár nekem a projektemhez, egy INT bemenetre szűkségem lesz (impulzus számlálás), nem tudom van-e 2 INT bemenetes PIC, de ez adatlapból kideríthető.
(#) DJozso válasza DJozso hozzászólására (») Ápr 26, 2022 /
 
Egyenlőre köszönöm a segítséget, mert így, hogy tudom minek kell utána nézni, így már találtam az adatlapban regisztereket, amelyek segítenek... Tanulmányozom őket. Még a PIC HLVD In-re kötött alkatrészeket nem sikerült kiderítenem, de rajta vagyok. Köszönöm a "löketet".
(#) nedudgi válasza DJozso hozzászólására (») Ápr 26, 2022 / 1
 
Az MCP10x család egy háromlábú CPU felügyeleti áramkör. Ezek egy bizonyos feszültségküszöb átlépésekor változtatják a kimenetüket. Ha van egy szabad láb, akkor ezzel lehet megszakítást generálni.
Telepes táplálás esetén, (ahol a feszültségváltozás aránylag lassú) azokkal a kontrollerekkel, amik tartalmaznak DAC perifériát, és komparátort, vagy ADC-t, a tápfeszültséget is lehet mérni, vagy megszakítást generálni, láb felhasználása nélkül.
A hozzászólás módosítva: Ápr 26, 2022
(#) Kera_Will válasza DJozso hozzászólására (») Ápr 27, 2022 / 1
 
Ha portrol kapcsolod ki es be?
Avagy portrol inditasz sleep modjat.
Amikor a bemeneti porton szintet valtasz ,akkor indulhat eeprom irasa majd elkuldi a uC mélyalvásba kozel uA aramfelvetelbe kerul a keszulek tobbi resze egy masik porton feten keresztul kikapcsolva .Ugyanazon portrol felebresztve eeprom olvasassal indul majd power on a teljes keszuleknek is.
(#) sonajkniz válasza DJozso hozzászólására (») Ápr 27, 2022 /
 
Szia!
Én ezt úgy oldottam meg, hogy egy ellenállás dióda párossal létrehoztam egy 0.6V-os referenciafeszültséget. Ezt a program körönként ellenőrízte egy analóg bemeneten.
Amikor a tápfesz esni kezd, az analóg érték növekedni fog. Ekkor indítom el az EEPROM-ba a mentést. Arra azonban ügyelj, hogy elég nagy kondi legyen a PIC tápján, mert elég lassú folyamat az EEPROM írása!
(#) Hp41C válasza DJozso hozzászólására (») Ápr 27, 2022 /
 
Ezekben a típusokban van belső High/Low-Voltage Detect (HLVD) modul.
Lehetőség van a külső jel (HLVD láb) valamint a tápfeszültség beállítható (15 fokozat) leosztott feszültségét a belső 1.2V -os referenciához komparálni és megszakítást okozni.
(#) DJozso válasza Hp41C hozzászólására (») Ápr 29, 2022 /
 
A pic tápja 12V-ról lenne stabilizálva, 7805-el, a kondiknak annyit kellene bírni, amíg egy byte-ot beír a EEPromba. 2-5ms.... A HLVD lábra ráköthetek egy 12V-ról meghajtott ellenállás osztót, aminek az alsó ellenállásán közel 5V lenne? Vele párhuzamosan egy 5.1V zener lenne, a bemenet védelme miatt. Működhet ez így? A kapcsolási feszültséget, meg mondjuk 4.5V - ra állítanám. Köszönöm a választ.
(#) miki79 hozzászólása Máj 1, 2022 /
 
Sziasztok!
Azt hogyan,hol lehet megtanulni, hogy szeretnék egy bizonyos feladat elvégeztetni egy kontrolerrel.Akkor milyen regisztereket és milyen adatokat kell használni?
(#) Bakman válasza miki79 hozzászólására (») Máj 1, 2022 /
 
Ez így ebben a formában eléggé átfogó kérdés, nem is nagyon lehet rá válaszolni. A kontrollert úgy képzeld el, mint egy egyszerű processzort, ami körül vannak modulok. A regiszterek nagy többsége ezeket a modulokat vezérli, a modulok pedig a saját regisztereikben tárolják az eredményeket, onnan a processzor ki tudja olvasni azokat.

Hogy legyen valami konrét is. Pl. LED-et akarsz villogtatni. Adott lábat kimenetre állítod, a kimeneti szintet magasra kapcsold, vársz egy ideig, alacsonyra állítod, vársz egy kicsit majd kezdődik minden elöröl. Valahogy így (MPLAB, C nyelv):
  1. TRISAbits.TRISA0=0;
  2.  
  3. while(1){
  4.  
  5. LATAbits.LATA0=1;
  6. __delay_ms(500);
  7. LATAbits.LATA=0;
  8. __delay_ms(500);
  9.  
  10. }

A kód nem tartlamazza a kontroller konfigurációját.
(#) kissi válasza miki79 hozzászólására (») Máj 1, 2022 / 2
 
Szia!

A kontrollert, mint egy munkaszervezőt/kisfőnököt képzeld el...vannak különböző beosztottjai, akik más-más dologra képesek. Ennek a kisfőnöknek Te adod a parancsokat, hogy melyik alkalmazottjával mit és hogyan végeztessen el, persze ehhez Neked is ismerned kell az alkalmazottak képességeit és számát, valamint, mivel a munka megoldási menetét is Te adod, így a hozzátartozó algoritmust! A kisfőnök "csak" annyit tud, hogy kinek hogyan tudja átadni a Te utasításaidat, ill., fogadja a beosztottak visszajelzéseit és közvetíti Feléd ( illetve az alkalmazott algoritmusnak!)!
Ez azt jelenti, hogy a hatékony munkavégzés érdekében meg kell ismerned az alkalmazottak tulajdonságait, képességeit ( adatlap, perifériák!) és jól kell a feladatot algoritmizálnod!
Első a feladat algoritmizálása ( milyen beosztottak, milyen sorrendben, hogyan dolgozzanak!) és utána ennek figyelemebe vételével a parancsok megadása a kisfőnöknek valamilyen általad választott nyelven ( C, asm ) !
Ennél konkrétabban sajnos csak a feladat ismeretében lehet róla beszélni, de az már a programozás része, ha konkrétan kell, azaz "bérmunka" !

Remélem sikerült kissé rávilágítanom a feltett kérdésedre... !?
(#) Unfi hozzászólása Máj 11, 2022 /
 
Üdv Mindenki.
Érdeklődnék, hogy a szunyogriasztó 12f683-ra írt programját ki tudná nekem lefordítani 12f1822-re.
Szerintem a lábkiosztás egyezik.
A hozzászólás módosítva: Máj 11, 2022

12f683(1).asm
    
(#) Baxi hozzászólása Máj 21, 2022 /
 
Hi Mesterek!
Segítségre/tanácsra lenne szükségem. Van egy pickit2-öm s egy 18F26K22 ic. Az IC-t látta s teszteltem is programmal gyakorló nyákon, írtam olvastam stb. Szóval elkészült a végleges nyák, annyi különbséggel (a gyakorló panelhez képest) hogy a PGC lábat fel használtam, egy lefutóél detektálásra, azaz 5V-ra fel van rakva egy 10K ellenen keresztül a PGC-láb (RB6).
Gondom az lenne, hogy nem látja a pickit2 az ic-t, a gyakorló panelban sem. Cseréltem IC-t az sem látja, de más pic-et lát 16-18 családból is, mind a két panelon azaz a gyakorlón s a végleges nyákon is. Igaz a PGC lábról levettem a 10K ellent. Kaphatott a programozó a 10K ellen miatt, de akkor más IC-ket mért lát, csak a 18F26K22 nem. Többszöri "blank check" után kiírja hogy nem támogatott az IC (eddig nem volt vele baja). Ujra raktam a pickit2 prg-s, nem segített. Azért idegesítő mert ehhez készült el a hardver, nem szeretnék újra gyártani/tervezni a panelt.
Ötlet valakinek?

Névtelen.jpg
    
(#) kissi válasza Baxi hozzászólására (») Máj 21, 2022 /
 
Szia!

Kapcsold be a Vpp first funkciót !

Kipróbáltam, nekem működi ka 10k felhúzóellenállás mellett is!
Esetleg az USB kábelt cseréld ki, az néha tud vicces lenni ! )

Használd a Check Communication-t is !
A hozzászólás módosítva: Máj 21, 2022

Baxinak.jpg
    
(#) nedudgi válasza Baxi hozzászólására (») Máj 21, 2022 / 1
 
Azt ugye tudod, hogy a programot mindig egy rövid várakozással kell indítani, ha a programozó lábakat kimenetnek állítod?
Nem szép dolog, hogy a hozzászólást ezzel a Hi megszólítással indítod.
A hozzászólás módosítva: Máj 21, 2022
(#) Baxi válasza kissi hozzászólására (») Máj 21, 2022 /
 
Sajnos nem segített
Kecskemét környékéről van itt valaki, aki a3 db IC-t lecsekkolná nekem amit nem lát pickit-em?
(#) Bakman válasza Baxi hozzászólására (») Máj 21, 2022 / 1
 
Ha csak a K22-es családot nem látja, akkor hiányzik a megfelelő PK2DeviceFile.dat. Itt: Bővebben: Link.
Következő: »»   1177 / 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