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   992 / 1207
(#) GFI hozzászólása Nov 13, 2017 /
 
Heló!

dspic30f3011 nél hogyan tudom azt megcsinálni, hogy a printf parancs az uart2re írjon?

Köszi a válaszokat előre is.
(#) usane válasza GFI hozzászólására (») Nov 13, 2017 /
 
Melyik fordító?Bár a c30-ban is meg az XC16-ban is ugyanaz azt hiszem.

#include <libpic30.h>
main() {
__C30_UART = 2;
A hozzászólás módosítva: Nov 13, 2017
(#) dani555 hozzászólása Nov 14, 2017 /
 
Sziasztok!
Találkozott már valaki azzal a problémával, hogy az mplab xc8 fordítónál, ha digitális bemeneteket állítok be, akkor azt figyelmen kívül hagyja? Mintha nem is foglalkozna a nyomógombbal.... Egyébként egy bináris ledes számlálót készítettem, gombnyomásra számol visszafelé, majd kigyújt egy ledet, és azt 10 sec-ig égni hagyja. Szinte biztos, hogy nem a hw-ben van a hiba.... PIC16F628A a mikrokontroller...
Köszi a segítségeteket!

Más probléma: Kétszínű (ellenparalell tipusú, és közös katódú is érdekel) ledet mikrovez. lábra rá lehet kötni? Nyilván úgy, hogy mindkét színt használhassam. Próbáltam már, ugyanennél a fordítónál/controllernél, de ez sem sikerült. Mintha lenne valami baja az A portnak... Furcsán működik.

  1. #pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
  2. #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
  3. #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  4. #pragma config MCLRE = OFF      // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
  5. #pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
  6. #pragma config LVP = ON         // Low-Voltage Programming Enable bit (RB4/PGM pin has PGM function, low-voltage programming enabled)
  7. #pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
  8. #pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
  9.  
  10. // #pragma config statements should precede project file includes.
  11. // Use project enums instead of #define for ON and OFF.
  12.  
  13. #include <xc.h>
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16.  
  17. #define _XTAL_FREQ 4000000
  18.  
  19. void delay(int n);
  20.  
  21. void main()
  22. {
  23.     int i;
  24.     TRISB = 0x00;
  25.     PORTB = 0x09;                                                  
  26.    
  27.     TRISA1 = 0;
  28.     RA1 = 0;
  29.    
  30.     TRISA0 = 1;
  31.    
  32.     TRISA7 = 0;
  33.     RA7 = 1;
  34.    
  35.     while(1)
  36.     {
  37.         if(RA0 == 0)
  38.         {
  39.             delay(3);
  40.             if(RA0 == 0)
  41.             {
  42.                 for(i = 9; i >= 0; i = i-1)
  43.                 {
  44.                     delay(50);
  45.                     PORTB = i;
  46.                 }
  47.                 RA1 = 1;
  48.                 delay(500);
  49.             }
  50.            
  51.         }  
  52.     }
  53. }
  54.  
  55. void delay(int n)
  56. {
  57.     int i;
  58.     for(i = 1; i <= n; i = i+1)
  59.     {
  60.         __delay_ms(20);
  61.     }
  62.     return;
  63. }
(#) kissi válasza dani555 hozzászólására (») Nov 14, 2017 /
 
Szia !

Idézet:
„Mintha nem is foglalkozna a nyomógombbal....”

Az analóg lábakat ki kell kapcsolni ( CMCON regiszterbe tegyél 7 -et ! ) !

Idézet:
„Kétszínű (ellenparalell tipusú, és közös katódú is érdekel) ledet mikrovez. lábra rá lehet kötni?”


Persze, de hogyan szeretnéd, mert nem mindenféleképpen !
A hozzászólás módosítva: Nov 14, 2017
(#) dani555 válasza kissi hozzászólására (») Nov 15, 2017 /
 
És tényleg! Köszönöm! Ez volt a probléma!
Az antiparallel verzióra gondoltam, ha logikai 1 van a kimeneten az egyik szín "ég", ha 0 akkor a másik Azt úgy nem lehet, hogy a led egyik lába a mikrocont. kimenetére megy, a másik meg két megfelelő értékű "ellenállás közé"....

Itt láttam már ilyet: Bővebben: Link

Ezek mennyire valid-ak?
(#) kissi válasza dani555 hozzászólására (») Nov 15, 2017 /
 
Én így csinálnám...
(#) GFI válasza usane hozzászólására (») Nov 15, 2017 /
 
Ezt próbáltam már. Hibát nem ír ki, de nem működik, lehet máshol lesz a gond akkor.
(#) Hp41C válasza dani555 hozzászólására (») Nov 15, 2017 /
 
A port kimenetre egy invertert kötnék, a port kimenete és az inverter kimenete közé kötném a sorba kötött ellenállást és a duo led -et.
(#) kriszrap hozzászólása Nov 15, 2017 /
 
Sziasztok.
Azt szeretném ezzel 4 kapcsolot szeretnék használni egy ADC lábon.
Vagy inkább használjak 4 külön lábat??

Névtelen.png
    
(#) benjami válasza kriszrap hozzászólására (») Nov 15, 2017 /
 
Itt van rá a példa.
(#) kriszrap hozzászólása Nov 16, 2017 /
 
Jó a példa csak itt ha két gombot nyomsz le akkor nem tudod be azonositani hogy melyik kettőt nyomták le. Nem?
(#) sonajkniz válasza kriszrap hozzászólására (») Nov 16, 2017 /
 
Így csináld. Az A/D konvertert 8 bitesre állítsd, így ADRESH minden bitje egy gombnak felel meg.
(#) pajti2 válasza sonajkniz hozzászólására (») Nov 16, 2017 /
 
Pic ad-je a gyakorlatban necces annyira pontosan mérni. Ha nem extrém zavarvédettre építenek egy kapcsolást (az amatőr gyakorlat jellemzően nem arról híres), jobb csak a maximum 5 felső bitre számítani (vagy még annyira se), és a többit hibatűrésre feláldozni.

Az adott kapcsolást egyébként nem teljesen úgy használták a régi időkben. Ahhoz, hogy ott bitenként helyiértéket kaphass, váltókapcsolókat kellene a gombok pozíciójába raknod, ami 5V hiányában fixen 0V-ra húzza le az adott pozíciót. Anélkül nincsen meg az impedanciacsatolás (kimeneti ponton 1K-s forrásimpedancia). A jelzett pontra is jobb lenne egy jelkövető műveleti erősítő kapu (relatíve végtelen nagy bemeneti impedancia) impedanciacsatolónak, mert a pic ad bemenete sokkal jobban terhel, és úgy csak még tovább csökkenti a felhasználható mérési tartományt.
(#) pajti2 válasza kriszrap hozzászólására (») Nov 16, 2017 /
 
Én inkább gomb mátrixot használnék, ha van annyi láb rá. Ha nincs, választani nagyobb pic-et, vagy feldobni még egyet a panelra.

Ha ad-ben akarsz bízni, előbb nem ártana pár példa kapcsolással eljátszadozni mindenféle környezetben (hosszabb drótot rákötni parazita antennának, és megsétáltatni kicsit az áramkört, meg tapics felületet rakni nyákra, amihez hozzányúlkálsz, stb), hogy lásd, mennyire megbízható az, amit te sziklaszilárd ténynek hiszel, és csak utána arra hagyatkozni, amikor már biztosan tudod, hogy bírni fog annyit stabilitásra.
(#) sonajkniz válasza pajti2 hozzászólására (») Nov 16, 2017 /
 
Idézet:
„Az adott kapcsolást egyébként nem teljesen úgy használták a régi időkben. Ahhoz, hogy ott bitenként helyiértéket kaphass, váltókapcsolókat kellene a gombok pozíciójába raknod, ami 5V hiányában fixen 0V-ra húzza le az adott pozíciót. Anélkül nincsen meg az impedanciacsatolás (kimeneti ponton 1K-s forrásimpedancia)”


Igazad van. Én csak emlékezetből dobtam össze ezt a rajzot, és ez ugrott be elsőre.
De az elv attól még működőképes, főleg ha tényleg nem 8, csak 4, vagy 5 gombra terjed.
De a mellékelt ábrával biztosabban kivitelezhető.
(#) ktamas66 válasza pajti2 hozzászólására (») Nov 16, 2017 /
 
Ha ilyen alacsony felbontású eredményre van szükség nem kell ennyire precíznek lenni. Ha nagyobb a távolság a zavarok okozhatnak gondot, de közelebb nem kell komoly szűrés. Használtam már üzemmód váltáshoz ilyen 3k-s 10 állású potit, de I2C címbeállításhoz is sima feszültségosztót csak a felső 4 bitet használva.
(#) Pali79 válasza ktamas66 hozzászólására (») Nov 16, 2017 /
 
Ilyet hol lehet kapni?
(#) kriszrap hozzászólása Nov 16, 2017 /
 
Hmm láttam több megoldást és montátok hogy nagyon pici az esélye hogy adc vel pont akkorát mérjek ammekorát számolok.
Ezért eldobom az ötletett hogy egyszerre két gombot nyomjak. Ezért szoftveresen azt fogom csinálni hogy pár % os türést bele rakok pl 170-160 értéknél fel 100-50 le stb...
(#) ktamas66 válasza kriszrap hozzászólására (») Nov 16, 2017 /
 
Nem kell ilyen szűk értékben gondolkodni, ha veszed a mért érték felső 4 bitjét, nem igaz, hogy az AD nem tud 16 értéket stabilan megkülönböztetni, főleg ha a számított értékek nem pont a határok közelébe esnek.
Nem tudom ilyen potit hol lehet kapni, én is bontottam valamiből.
(#) Bakman válasza ktamas66 hozzászólására (») Nov 16, 2017 /
 
Ha jól látom, ez egy normál forgó kódkapcsoló és csináltak hozzá egy ellenállás hálót, annak a paneljára van ráforrasztva. A fekete pacák az ellenállások.
(#) f2f2 hozzászólása Nov 17, 2017 /
 
Idézet:
„Vpp first programming entry módszer”

Erről olvasnék mi is a lényege ?
ha a program memória elején át van programozva az ICSPCLK és/vagy ICSPDAT
akkor panelról nem lehet kiolvasni a megszokott eljárással.
Ez mit jelent? Fel sem ismeri ID re ?
És hogy ezt hogy is lehet csinálni ? a PK nak kell biztosítani a Vdd.... és még ?
Kössz
(#) Pali79 válasza f2f2 hozzászólására (») Nov 17, 2017 /
 
Van egy ilyen opció a programozó szoftverbe. Ha bekapcsolod akkor először a programozó lábat kapcsolja be és csak utána a tápfeszt. Ez főleg akkor hasznos, ha a programozó láb használva van a programban és kimenetre van kapcsolva már az elején. Ilyenkor a tápfesz bekapcsolásával elkezd futni a program a PIC-ben és nem lehet átkapcsolni programozásra.
(#) Hp41C válasza f2f2 hozzászólására (») Nov 17, 2017 /
 
Adva van egy alkalmas (Vpp first entry -t ismerő, önmagát programozni képes) PIC, ami már fel van programozva, a MCLR bemenet le van tiltva (digitális bemenetne van beállítva), a program a 0. címen a banksel TRISx, utána a clrf TRISx utasítással. (x azt a portot jelöli, amin a PGC és a PGD láb vezérelhető.) Később (azért elég az elején) módosítja a programtárat vagy az adat memóriát. A kontroller belső órajelről jár vagy a panelon ki van építve az oszcillátor.
Hogyan is lehet ezt a kontrollert törölni?
Ha bekapcsoljuk a Vdd tápot a program elindul, kimenetté állítja a PGC és PGD vonalakat. A MCLR alacsony szintjére nem reagál. A Vpp bekapcsolásakor a PGD és PGC vonalak meghajtása nem változik. Nem tudja felvenni a kapcsolatot a programozó a kontrollerrel. Ha elsőre sikerül felprogramozni, az ellenőrzés már nem fog menni...
Ha a Vpp feszültséget kapcsoljuk be elsőre, a kontroller egyből programozási módba lép a Vdd bekapcsolásakor. A program biztosan nem indul el.

Miért kell a Vpp first programming entry módszer esetén a programozónak biztosítania a Vdd tápot?
A Vpp bekapcsolása után kell a Vdd -t is bekapcsolni. Van olyan típus is, amelyiknél a Vpp first programming entry -vel indított programozást a Vpp last programming exit módon kell befelyezni. Az időzítést a programozó végzi. Azonban a programozó nem tud bármilyen Vdd -t biztosítani. Pl. A panelt 1.8V -os kontrollerhez tervezték és 2.0V -ról működik. Olyan alkatrészeket is tartalmaz, amelynek mondjuk 2.4V a absolute maximum tápfeszültsége. A PICkit2 esetében az előállítható minimális Vdd 2.5V.
(#) f2f2 válasza Hp41C hozzászólására (») Nov 17, 2017 /
 
Köszönöm mindkettőtöknek a bő választ.
Namost Vpp és Mclr ugyanarról a lábról van szó. Ha a Pickit nél az alsó pipát is bejelöljük, akkor
A Vpp t leküldi alacsony szintre. A Vpp first prg. módszer szerint alacsony szinten lenne bekapcsolva ? Ha ez már megvan azután kapja meg a Vdd tápot ?
Vagy ha Vpp re feszültség kell akkor, hogy kell előkészíteni ?
Kössz
A hozzászólás módosítva: Nov 17, 2017
(#) Hp41C válasza f2f2 hozzászólására (») Nov 17, 2017 /
 
A Vpp feszültséget a PICkit állítja elő, nem igényel előkészítést. Ezért van az, hogy ilyen esetben a Vdd -t is a PICkit -nek kell biztosítani ill. csak a PICkit biztosíthatja.
Nem az alsó pipa határozza meg a MCLR / Vpp láb állapotát a programozás / ellenőrzés alatt. A programozási algoritmus által előírt kezdő állapot beállításával indul minden programozási módba léptetés.
Vdd first entry: --- Lehet külső tápról biztosított Vdd mellett is programozni. (Törléshez ill. teljes törléshez min. Vdd érték van előírva).
A kezdő állapot (PGD = 0, PGC = 0, MCLR/Vpp = 0, Vdd = 0) után a Vdd -t kapcsolja be, aztán egyéb lépések következhetnek, közben valahol a MCLR is beáll magas vagy Vpp szintre.
Vpp first entry: --- Nem lehet külső tápról biztosított Vdd.
A kezdő állapot (PGD = 0, PGC = 0, MCLR/Vpp = 0, Vdd = 0) után a Vpp -t kapcsolja be, aztán egyéb lépések következhetnek közben a Vdd -t is bekapcsolja. Mivel a Vdd kapcsolását a programozó végzi, az általa biztosított feszültség táplálja az egész panelt.
(#) f2f2 válasza Hp41C hozzászólására (») Nov 17, 2017 /
 
Kössz
ezt a 18LF8490 et még a Vpp first entry sen se lehet kiolvasni.
A nyákon úgy mérem a PGC PGD lábak semmi másra nincsenek kötve.
Az Mclr en mérek 2k felhúzó ellenállást csak az van kötve
a 3 ból.
Ahogy én néztem át a pdf leírást, nem láttam direkt az LF nek eszköz ID ket.
Frekitáblázatnál látszik nagyon különböznek LF és F.
Egy elvérzés erre rácsatlakozni.
(#) kriszrap hozzászólása Nov 18, 2017 /
 
Sziasztok PC tábon lévö 5v os labat használnám pic üzemeltetésre problémákat okozhat???
(#) pajti2 válasza kriszrap hozzászólására (») Nov 18, 2017 /
 
A PC tápon időnként akkora tüske-zuhanások vannak, hogy ihaj. Ha pic-et arról hajtanál, tegyél a táp után egy diódát, és egy legalább 10µF kondit (mennyi áramot enne az a pic?).
(#) Hp41C válasza kriszrap hozzászólására (») Nov 18, 2017 /
 
Ne feledkezz meg egy biztosíték beiktatásáról. A PC táp elég nagy áramot tud leadni, mire ráébredsz a hibára, az áramköröd már el is égett.
Következő: »»   992 / 1207
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