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   454 / 1211
(#) vladcepes válasza kissi hozzászólására (») Okt 18, 2013 /
 
Értem, na hát ez itt magas már nekem.
(#) usane hozzászólása Okt 18, 2013 /
 
Hello!
Ez
Idézet:
„- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!”
szigoruan betartandó? Még nem használtam ennyi tápfeszes PICet, de most egy olyannal kell dolgoznom aminek van 3-4 táplába, és szeretném a NYÁKot minél kevésbé bonyolítani.
(#) Hp41C válasza usane hozzászólására (») Okt 18, 2013 /
 
Szó szerint kell érteni. Az adatlapban olvashatók a részletek: Minden táp - föld párhoz szűrőkondenzátor is kell.
A hozzászólás módosítva: Okt 18, 2013
(#) usane válasza Hp41C hozzászólására (») Okt 18, 2013 /
 
Értem, köszönöm.
(#) Beles válasza Hp41C hozzászólására (») Okt 18, 2013 /
 
Én a dugdosós próbapanelen sosem szoktam bekötni, csak egyet. S még kondit se teszek rá, Pickit2-ről kapja a tápot. Még nem volt vele gondom. Ezt csak azért írom, hogy így is működik, nem azért hogy nem kell bekötni. De amúgy kíváncsi lennék a miértjére, hogy miért kell bekötni mindet.
(#) Hp41C válasza Beles hozzászólására (») Okt 18, 2013 /
 
Ground bounce: A kapcsolási áramok által okozott referencia pont eltolódás. Egy kontrollerben többször tíz, többször száz lábon változhat a jel egyszerre, közel egyidőben. Vannak olyanok is, ahol jelentős áram kapcsolható ki vagy be (port lábak), egyszerre 8, 16, 32 (64). A egyidőben váltó meghajtók tranziens árama a táp ill a föld lábon keresztül folyik. Ha a föld / táp láb impedanciája nem elég alacsony, akkor a kontroller belső referencia pontja és a külső referencia pont feszültsége között akkora eltérés keletkezhet, ami hibás működéshez vezethet.

1uH -s hozzávezetés 1mA áram 10 ns alatti kikapcsolása 1V feszültséget indukál. Egy TTL LS kapu zajtartaléka 0.3V (ULin max = 0.8V, komparálás kb. 1.1V -nál). Egy 120 MHz -vel menő 16 bites dsPIC mind a 16 portbitjén 1..1 mA -t kapcsol ki egyszerre 1ns alatt: 18.75 nH föld vezeték induktivitás már hibás működéshez vezet (ha csak a port áramokat számoltuk).
A hozzászólás módosítva: Okt 18, 2013
(#) Beles válasza Hp41C hozzászólására (») Okt 18, 2013 /
 
húú, köszönöm a kimerítő választ! Lehet bekötöm mégis a kihagyott lábakat
A hozzászólás módosítva: Okt 18, 2013
(#) usane hozzászólása Okt 18, 2013 /
 
Újabb kérdésem lenne, általam eddig szintén nem használt funkcióval kapcsolatban, mégpedig a PPS.Ha én digitális I/O portokat akarok használni egy tetszőlegesen társított lábon a PPs által, és szeretném az inputokat IOC generálásra is használni, akkor el tudok-e követni olyan hibát, hogy egy portot olyan lábra programozok ami nem tudja az IOC-t?
Nem igazán tudtam még kibogarászni ezt a részt, mert az IOC CN- csatornákkhoz van rendelve, a PPS meg RP csatornákhoz. Kérdés, hogy ezek össze vannak-e kapcsolva.
Nem tudom érthető voltam-e.


pl. Vegyünk egyetlen bitet az egyszerűség kedvéért. Legyen mondjuk PortA bit0. Ezen bitem egy input. A PPS-ben ezt mondjuk a 10-es kivezetésre programozom.Ha a 10-es kivezetés alapból nem tudja az IOC-t akkor átprogramozás után fogja e tudni, vagy sem, ha a PortA bit0 az eredeti helyén tudta.
(#) usane válasza usane hozzászólására (») Okt 18, 2013 /
 
Nos esetemben (PIC24FJ256GB206) csak az RF7-en nincs IOC a digitális portokon, az viszont nincs rajta a remap táblán szóval ide gondolom nem tudom áthelyezni egyik funkciót sem, vagy csak ez nem helyezhető át? És elképzelhető, hogy van PIC amelynél előfordulhat?
(#) icserny válasza usane hozzászólására (») Okt 18, 2013 /
 
Amennyire én tudom, a CN funkció nem helyezhető át.
(#) usane válasza icserny hozzászólására (») Okt 18, 2013 /
 
Értem. Akkor valamilyen szinten jól sejtettem, hogy a "fizikai" kialakítástól függ és éppen ezért nem multiplexelhető.
(#) Attilawap hozzászólása Okt 19, 2013 /
 
Üdv! Megépítettem a Watt-féle égetőt, de valamiért nem működik. Viszont van más megoldás is. Ilyen égetőt szeretnék venni: http://www.ebay.com/itm/400552000101?ssPageName=STRK:MEWAX:IT&_....l2649
Légyszi mondjátok el a véleményeteket róla.
(#) icserny válasza Attilawap hozzászólására (») Okt 19, 2013 /
 
Olyat szeressél inkább, amit az MPLAB vagy az MPLAB X támogat!
(#) Attilawap válasza icserny hozzászólására (») Okt 19, 2013 /
 
Az a szoftver? És mivel jobb az?
(#) kissi válasza Attilawap hozzászólására (») Okt 19, 2013 /
 
Legfeljebb annyival, hogy az új típusú PIC-eket jó eséllyel implementálják rá, nem áll meg a 18-as sorozatnál, nem csak kb. 54 féle 18-ast ismer, lehet vele debuggolni, soros portot nézegetni és HP41 kolléga révén majd még sok mindent ... ! --> PK2 !
A hozzászólás módosítva: Okt 19, 2013
(#) SBahadurD hozzászólása Okt 20, 2013 /
 
Sziasztok!

Csináltam PIC16F505-el egy led villogtató áramkört. Az RB1 lábán adja a lednek a jelet.
Elvileg 2-3 másodpercenként kéne váltania a led állapotát. Ennek ellenére kb. 55 másodpercenként változik a led állapota.
Belső oszcillátort használok, ami elvileg 4MHz-en jár, így az utasítás végrehajtás 1MHz-el megy (kivétel elágazó utasítások).
END
  1. list      p=16F505            ; list directive to define processor
  2.         #include <p16F505.inc>        ; processor specific variable definitions
  3.  
  4.         __CONFIG   _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC_RB4EN
  5.  
  6.         CBLOCK  0x08
  7.         timer2, timer1, timer0
  8.         ENDC
  9.  
  10.         ORG     0x3FF             ; processor reset vector
  11.  
  12.         ORG     0x000             ; coding begins here
  13.         movwf   OSCCAL            ; update register with factory cal value
  14.  
  15.         MOVLW b'11111101'
  16.         TRIS PORTB
  17. allit
  18.         BSF PORTB,1
  19.         call var
  20.         BCF PORTB,1
  21.         call var
  22.         goto allit
  23. var
  24.         MOVLW 100
  25.         MOVWF timer2
  26. dec2
  27.         MOVWF timer1
  28. dec1
  29.         MOVWF timer0
  30. dec0
  31.         decfsz timer0
  32.         goto dec0
  33.         decfsz timer1
  34.         goto dec1
  35.         decfsz timer2
  36.         goto dec2
  37.         retlw 0
  38.  
  39.         END


Ez a kódom. A var rutinnak kb 2-3 millió ciklus alatt kéne lefutnia nem?
Akkor nekem miért vár kb. 55 másodpercet?
Köszi előre is!
(#) kissi válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
A beírt számot ( 100 ) Te 10-es számrendszerben gondoltad, a fordítód meg 16-osnak veszi ! Írd át vagy az alapértelmezett számrendszert vagy a számot !
A hozzászólás módosítva: Okt 20, 2013
(#) SBahadurD válasza kissi hozzászólására (») Okt 20, 2013 /
 
Amint tudom, kipróbálom.
De akkor minek van a 0x... formájú leírás? Azt hittem, csak azt veszi hexa számnak.
Köszi a segítséget!
(#) icserny válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Idézet:
„Azt hittem, csak azt veszi hexa számnak.”
Azt biztosan annak veszi. A 0x... nélküli számokat pedig az alapértelmezett számrendszer szerint értelmezi az assembler.
(#) kissi válasza icserny hozzászólására (») Okt 20, 2013 /
 
Idézet:
„Azt biztosan annak veszi. A 0x... nélküli számokat pedig az alapértelmezett számrendszer szerint értelmezi az assembler.”
Így van és az MPLAB alapértelmezett számrendszere a beépített asm programozásnál 16-os !
(#) SBahadurD válasza kissi hozzászólására (») Okt 20, 2013 /
 
Valóban, még warningot is dobott.
És ezt hol lehet átállítani? Mert az Edit/properties/tooltips fülön a Default type format résznél a Use watch preferences helyett átállítottam decimal-ra, de még mindig ugyanazt a warningot dobja. Én meg nem akarok programozás közben állandóan hexában számolni, ha nem muszáj.
Köszi.
(#) icserny válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Célszerűen a program elején elhelyezett direktívával:
  1. radix dec

(A fórummotor nem engedi, de "bekezdéssel" kell írni, szóval nem a sor legelejére...)
A hozzászólás módosítva: Okt 20, 2013
(#) SBahadurD válasza icserny hozzászólására (») Okt 20, 2013 /
 
Igen, ez segített. Köszi.

Újabb kérdésem lenne:

  1. radix dec      
  2.         list      p=16F505            ; list directive to define processor
  3.         #include <p16F505.inc>        ; processor specific variable definitions
  4.  
  5.         __CONFIG   _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC_RB4EN
  6.  
  7.         CBLOCK  0x08
  8.         timer2, timer1, timer0
  9.         ENDC
  10.  
  11.         ORG     0x3FF             ; processor reset vector
  12.  
  13.         ORG     0x000             ; coding begins here
  14.         movwf   OSCCAL            ; update register with factory cal value
  15.  
  16.         MOVLW b'11111101'
  17.         TRIS PORTB
  18. allit
  19.         BSF PORTB,1
  20.         call var
  21.         BCF PORTB,1
  22.         call var
  23.         goto allit
  24. var
  25.         MOVLW 100
  26.         MOVWF timer2
  27. dec2
  28.         MOVLW 100
  29.         MOVWF timer1
  30. dec1
  31.         nop
  32.         nop
  33.         nop
  34.         nop
  35.        .....
  36.         nop
  37.         nop
  38.         nop
  39.         nop
  40.         decfsz timer1
  41.         goto dec1
  42.         decfsz timer2
  43.         goto dec2
  44.         retlw 0
  45.  
  46.         END


Ezt a kódot írtam. 100 db nop parancs van egymás alatt.
Ennek elvileg kicsit több, mint 1'000'000 ciklusig kéne tartania nem? Az adatlap szerint a kalibrálás után a belső órajel elég pontos. Viszont most jól láthatóan gyorsabban villog, mint ahogy az órámon a másodpercek változnak. Az órám meg elég pontos.
Ha kiszedem az elején a kalibrálás parancsot, akkor meg egy kicsit lassabb az órámnál.
Ezek szerint mégis ennyire megbízhatatlan a belső oszcillátor (természetesen tudom, hogy nagy pontosságot nem lehet elvárni tőle, de ennél azért jobbra számítottam), vagy én számoltam el valamit és nem kéne több, mint egymillió ciklusig tartania?
(#) kissi válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Szimuláld le, én is úgy vettem észre a hibádat! 100 NOP-ot nem szokás írni, használd a ciklust, mint a késleltetésnél!
Az asm alapértelmezett számrendszerét átállíthatod a projekt ablak forrásfájlára (*.asm ) jobb klikket nyomva is, bár ez nem látszik a forrásfájlból! Vagy a tízes számrendszerbeli számot ponttal kezdve: 0xFF=0B11111111=.255
A hozzászólás módosítva: Okt 20, 2013
(#) SBahadurD válasza kissi hozzászólására (») Okt 20, 2013 /
 
Szerintem az óra ennyire pontatlan.
Természetesen nem használnék 100 NOP-ot normálesetben, csak a pontosítás végett tettem.
A jelenlegi alkalmazásban volt rá elég hely a memóriában.
Köszi a segítséget.
(#) kissi válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Pontosításra csak annyi NOP kell, amit nem tudsz megvalósítani a ciklussal, azaz 2-3 db !
(#) SBahadurD válasza kissi hozzászólására (») Okt 20, 2013 /
 
Tudom, ki lehetett volna számolni pontosan is, hogy mekkora legyen a ciklusváltozó száz ciklushoz, de lusta voltam.
(#) kissi válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Nem igazán szoktam számolni, lehet szimulálni is!
(#) SBahadurD válasza kissi hozzászólására (») Okt 20, 2013 /
 
Annyira nem tudom használni a szimulátort. Lehet ilyet, hogy valami hány ciklus?
Most kezdtem bele a PIC assemblybe (c-ben sem sokat PIC-eztem), és nem igazán ismerem még a szimulátort.
De próbálok ismerkedni vele. Van róla valami jó leírás? (Lehetőleg magyarul, de az angollal is elboldogulok.)
(#) kissi válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Pl. nézd meg ezt :Bővebben: Link
Következő: »»   454 / 1211
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