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   200 / 1211
(#) cross51 válasza icserny hozzászólására (») Jan 24, 2012 /
 
Üdv
Csak tudod az a probléma hogy nem tudok angolul , de szerencsére van közte magyar is
De köszi szépen
(#) icserny válasza cross51 hozzászólására (») Jan 24, 2012 /
 
Idézet:
„Csak tudod az a probléma hogy nem tudok angolul”
Ne izgasd vele magad, menet közben majd megtanulod azt is - a feltétlenül szükséges szinten!
(#) vilmosd válasza cross51 hozzászólására (») Jan 25, 2012 /
 
Annyiban tudok segiteni, hogy nekem van egy konyvespolcom, ahol talasz doksikat, demo programokat, demo paneleket, es meg sok minden mast kezdoknek. Nem csak PIC, hanem alap elektronika, es SW irodalmak is. toltogesd le a Teged erdeklo dolgokat, es tanulmanyozd.
(#) Balázs 1.3 JTD hozzászólása Jan 25, 2012 /
 
Sziasztok. Nem tudom volt-e már, de mik azok a "Capacitive touch channel"-ek, mire használhatóak, és hogyan?
(#) icserny válasza Balázs 1.3 JTD hozzászólására (») Jan 25, 2012 /
 
Leegyszerűsítve: Kapacitív "nyomógomb" érzékelő periféria
A többit elmondja a barátod!
(#) Balázs 1.3 JTD válasza icserny hozzászólására (») Jan 25, 2012 /
 
Azt hiszem maradok a normál gombnál
Végülis ez annyi gondolom, hogy felhúzóellenállás van a bemeneten, meg az ujjammal összezárom a testet a bemenettel, aztán rámérek hogy mennyit mutat az ADC.
(#) mechanika hozzászólása Jan 25, 2012 /
 
Sziasztok!
Semmilyen gyakorlatom nincs a pic-ek alkalmazásában.

A következő kérdésem lenne:

Az alábbi oldalon Bővebben: Link az "EXAMPLE 10" példát ha megépítem, akkor kapok egy led vezérlőt, amellyel egy led fényerejét tudom szabályozni a két gomb segítségével. Ha a nyomógombok helyére az alábbi Bővebben: Link vevőnek egy- egy kimenetét rákapcsolom, akkor egy 2 csatornás távvezérlővel a fényerő szabályozható távvezérléssel.

Jól gondolom, vagy tévedek?
Lehet valami egyéb buktatója a dolognak, amire nem gondoltam?
Köszi a segítséget!
(#) Hp41C válasza mechanika hozzászólására (») Jan 25, 2012 /
 
Szia!
Jól gondolod... HCS kompatibilis távirányítót kell alkalmazni, a vevőt fel kell programozni legalább a két gombhoz, amit használni fogsz, mindkét kimenetet monostabil módra kell állítani. A jó vételhez be kell tartani a földelés kialakítására tett javaslatokat.
Adatlap
(#) röntgen válasza mechanika hozzászólására (») Jan 25, 2012 / 1
 
Mivel nyitott kollektoros kimenete van az RF egységnek, ezért jó lehet a dolog, csak arra kell figyelni hogy legyen felhúzó ellenállás is a kimenetén.
(#) röntgen válasza röntgen hozzászólására (») Jan 25, 2012 /
 
Bocs a felhúzó a portb-n megvan alapból.
(#) mechanika válasza Hp41C hozzászólására (») Jan 25, 2012 /
 
Köszönöm a segítségeteket!

Akkor belevágok, de azért még elsőre nem vennék meg minden hozzávalót az égetéshez.
Tudtok tanácsot adni, hogy kit lehet megkörnyékezni a program beégetésben. Budakeszin lakom Buda és környéke, ahol nap mint nap mozgok.

Ha nem szabad itt ilyet kérni akkor bocsánat.
Köszi!
(#) Black King hozzászólása Jan 26, 2012 /
 
Sziasztok!

Kezdő vagyok pic-ek terén. Most építettem egy ilyen picall programozót:
Bővebben: Link
Nekem külsőre úgy tűnt működik (Vilogtak a ledek amikor valamilyen parancsot adtam neki) de mégse képes programozni.Próbáltam IC progal,WinPic800-al és PicAll-al de egyik se csinált semmit.Mit lehet a baj miket kellene át állítanom programon belül hogy működjön vagy mit kellene kicserélnem?
(#) Pez666 hozzászólása Jan 26, 2012 /
 
Hali!
Az a problémám akadt, hogy egy pic18f46k20-as felprogramozás után nem adja ki a feszültségeket a portokra, amit előírok.
A programot a végtelenségig leegszerűsítettem, az ic-t most használom először. Minden port konstans 0.1V-ot ad ki. Az MPLAB 3V felett azt írja ki, hogy többet mért a megengehetőnél (pedig 3.5V-ig használható).
Mi lehet a baj?
(#) janikukac hozzászólása Jan 26, 2012 /
 
Tisztelt Vilmosd !
Lenne egy kérdésem: a 20foglalatos PIC fejlesztőhöz, amely az Ön könyvtárában volt, használható-e 1N4004 helyett 1N4007?

Üdv: János !
(#) Hp41C válasza janikukac hozzászólására (») Jan 26, 2012 /
 
Minden további nélkül, az 1N4007 csak a maximális zárófeszültség értékében (1000V) tér el az 1N4004 -től (400V), még az 1N4001 (50V) is használható...
(#) janikukac válasza Hp41C hozzászólására (») Jan 26, 2012 /
 
Köszönöm szépen ! Üdv!
(#) icserny válasza Pez666 hozzászólására (») Jan 26, 2012 /
 
Látni kellene a kapcsolást, a programot, és a konfigurációs bitek beállítását!
(#) Pez666 válasza icserny hozzászólására (») Jan 26, 2012 /
 
A kapcsolás csak annyi, hogy a pickit2-höz kapcsoltam a master clear lábat, a pgc-t és a pgd-t, és persze a vdd és vss-s.
A program:
  1. LIST      P=PIC18F46K20          ; list directive to define processor
  2.      #INCLUDE <P18F46K20.INC>         ; processor specific variable definitions
  3.  
  4.  
  5.      ;Setup CONFIG11H
  6.      CONFIG FOSC = INTIO67, FCMEN = OFF, IESO = OFF
  7.      ;Setup CONFIG2L
  8.      CONFIG PWRT = ON, BOREN = OFF, BORV = 18
  9.      ;Setup CONFIG2H
  10.      CONFIG WDTEN = OFF, WDTPS = 1
  11.      ;Setup CONFIG3H
  12.      CONFIG MCLRE = ON, HFOFST = OFF, LPT1OSC = OFF, PBADEN = OFF
  13.      ;Setup CONFIG4L
  14.      CONFIG CCP2MX = PORTBE, STVREN = OFF, LVP = OFF, XINST = OFF, DEBUG = OFF
  15.      ;Setup CONFIG5L
  16.      CONFIG CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF
  17.      ;Setup CONFIG5H
  18.      CONFIG CPB = OFF, CPD = OFF
  19.      ;Setup CONFIG6L
  20.      CONFIG EBTR0 = OFF
  21.      ;Setup CONFIG6H
  22.      CONFIG EBTR1 = OFF
  23.      ;Setup CONFIG7L
  24.      CONFIG EBTR2 = OFF
  25.      ;Setup CONFIG7H
  26.      CONFIG EBTR3 = OFF
  27.  
  28. ;------------------------------------------------------------------------------
  29. ;
  30. ; VARIABLE DEFINITIONS
  31. ;
  32. ; Available data memory (also RAM) address space is divided into 16 banks, of
  33. ; which 9 may be addressed.  The Access Bank, Special Function Registers,
  34. ; and and General Purpose Registers are shown below:
  35. ;
  36. ; ACCESS LOW         0x000-0x05F   Bank 0
  37. ; GPR0               0x060-0x0FF   Bank 0
  38. ; GPR1               0x100-0x1FF   Bank 1
  39. ; GPR2               0x200-0x2FF   Bank 2
  40. ; GPR3               0x300-0x3FF   Bank 3
  41. ; GPR4               0x400-0x4FF   Bank 4
  42. ; GPR5               0x500-0x5FF   Bank 5
  43. ; GPR6               0x600-0x6FF   Bank 6
  44. ; GPR7               0x700-0x7FF   Bank 7
  45. ; GPR8               0x800-0x8FF   Bank 8
  46. ; GPR9               0x900-0x9FF   Bank 9
  47. ; GPR10              0xA00-0xAFF   Bank 10
  48. ; GPR11              0xB00-0xBFF   Bank 11
  49. ; GPR12              0xC00-0xCFF   Bank 12
  50. ; GPR13              0xD00-0xDFF   Bank 13
  51. ; GPR14              0xE00-0xEFF   Bank 14
  52. ; GPR15              0xF00-0xF5F   Bank 15
  53. ; ACCESS HIGH (SFR)  0xF60-0xFFF   Bank 15
  54. ;
  55. ;------------------------------------------------------------------------------
  56.  
  57.     CBLOCK 0x60 ; Sample GPR variable register allocations
  58.         delay1
  59. delay2
  60.     ENDC
  61.  
  62. W_TEMP         EQU        0x000  ; w register for context saving (ACCESS)
  63. STATUS_TEMP    EQU        0x001  ; status used for context saving
  64. BSR_TEMP       EQU        0x002  ; bank select used for ISR context saving
  65.  
  66. ;------------------------------------------------------------------------------
  67. ; EEPROM INITIALIZATION
  68. ;
  69. ; The 18F46K20 has 1024 bytes of non-volatile EEPROM starting at 0xF00000
  70. ;
  71. ;------------------------------------------------------------------------------
  72.  
  73. ;DATAEE    ORG  0xF00000 ; Starting address for EEPROM for 18F46K20
  74.  
  75.    ; DE    "MCHP"        ; Place 'M' 'C' 'H' 'P' at address 0,1,2,3
  76.  
  77. ;------------------------------------------------------------------------------
  78. ; RESET VECTOR
  79. ;------------------------------------------------------------------------------
  80.  
  81. RES_VECT  ORG     0x0000            ; processor reset vector
  82.           GOTO    START             ; go to beginning of program
  83.  
  84. ;------------------------------------------------------------------------------
  85. ; HIGH PRIORITY INTERRUPT VECTOR
  86. ;------------------------------------------------------------------------------
  87.  
  88. ISRH      ORG     0x0008
  89.  
  90.           ; Run the High Priority Interrupt Service Routine
  91.           GOTO    HIGH_ISR            
  92.  
  93. ;------------------------------------------------------------------------------
  94. ; LOW PRIORITY INTERRUPT VECTOR
  95. ;------------------------------------------------------------------------------
  96.  
  97. ISRL      ORG     0x0018
  98.          
  99.           ; Run the Low Priority Interrupt Service Routine
  100.           GOTO    LOW_ISR            
  101.  
  102. ;------------------------------------------------------------------------------
  103. ; HIGH PRIORITY INTERRUPT SERVICE ROUTINE
  104. ;------------------------------------------------------------------------------
  105.  
  106. HIGH_ISR  
  107.           ; Context Saving for High ISR
  108.           MOVWF   W_TEMP              ; save W register
  109.           MOVFF   STATUS, STATUS_TEMP ; save status register
  110.           MOVFF   BSR, BSR_TEMP       ; save bankselect register
  111.  
  112.           ; Insert High Priority ISR Here
  113.  
  114.           ; Restore Context for High ISR
  115.           MOVF    W_TEMP, W           ; restore W register
  116.           MOVFF   STATUS_TEMP, STATUS ; restore status register
  117.           MOVFF   BSR_TEMP, BSR       ; restore bank select register
  118.           RETFIE
  119.  
  120. ;------------------------------------------------------------------------------
  121. ; LOW PRIORITY INTERRUPT SERVICE ROUTINE
  122. ;------------------------------------------------------------------------------
  123.  
  124. LOW_ISR
  125.           ; Context Saving for Low ISR
  126.           MOVWF   W_TEMP              ; save W register
  127.           MOVFF   STATUS, STATUS_TEMP ; save status register
  128.           MOVFF   BSR, BSR_TEMP       ; save bankselect register
  129.  
  130.           ; Insert Low Priority ISR Here
  131.  
  132.           ; Context Saving for Low ISR
  133.           MOVWF   W_TEMP              ; save W register
  134.           MOVFF   STATUS, STATUS_TEMP ; save status register
  135.           MOVFF   BSR, BSR_TEMP       ; save bankselect register
  136.           RETFIE
  137.  
  138. ;------------------------------------------------------------------------------
  139. ; MAIN PROGRAM
  140. ;------------------------------------------------------------------------------
  141.  
  142. Init
  143. movlwb'11010110'
  144. movwfOSCCON
  145. clrfCVRCON
  146. clrfCVRCON2
  147. clrfPORTA
  148. clrfLATA
  149. clrfANSEL
  150. clrfTRISA
  151. Code_0
  152. ;clrfPORTA
  153. ;decfszdelay1
  154. ;goto$-1
  155. ;decfszdelay2
  156. ;goto$-3
  157. movlw0xff
  158. movwfPORTA
  159. movlw0xff
  160. movwfLATA
  161. gotoCode_0
  162.  
  163.           GOTO $                      ; loop program counter
  164.  
  165.           END
(#) icserny válasza Pez666 hozzászólására (») Jan 27, 2012 /
 
Ha futtatni akarod, akkor az MCLR lábat 10 kOhm-mal kösd a VDD-re. Minden VDD-VSS páros közé 100 nF kell, és minden VDD, VSS láb legyen bekötve! De ezek a fórumtopik fejlécében is ott állnak - s nem viccből.

A program bemásolásakor a kód gomb használata után máskor a C-t írd át "asm"-ra!
(#) n_yálastrubadúr hozzászólása Jan 27, 2012 /
 
Jó reggelt!
18F-es picek maguktól bankolnak?
(#) icserny válasza n_yálastrubadúr hozzászólására (») Jan 27, 2012 /
 
Nem, de a memória szervezése olyan, hogy az adatmemória eleje és a speciális funkciójú regiszterek (vagy azok nagy része) bankolás nélkül is elérhető. Bővebben: Link

Azt az adatlap mondja meg, hogy hol van a határ, mert van, amelyiknél 0x80, van amelyiknél 0x5F a határ. Ebből a szempontból nézve a CBLOCK 0x60 nem szerencsés választás...
(#) Hp41C válasza Pez666 hozzászólására (») Jan 27, 2012 /
 
Szia!

- Az sem szerencés, ha a két megszakítás szintet kiszolgáló rutin ugyan azokat a mentési regisztereket használja - a magasabb szintű kérés az alacsonyabbat félbeszakíthatja.
- Sok 18F kontrollernek okozott problémát (váratlan érték beírását), ha a movff utasításnak olyan regiszter a cél regisztere, amit a hardware ment a megszakításkor (STATUS, WREG, BSR). Utána kell nézni az Errata -kban...
(#) Pez666 válasza Hp41C hozzászólására (») Jan 27, 2012 /
 
Köszönöm a tanácsot! A megszakítások kezelése még tárgytalan, abban sem vagyok biztos, hogy a belső oszcillátor rendesen elindul.
(#) Pez666 válasza icserny hozzászólására (») Jan 27, 2012 /
 
Bekötöttem, de a hiba még mindig fennáll. A configokat jól állítottam be? Sima belső oszcillátort akarok használni 4MHz-en.
(#) icserny válasza Pez666 hozzászólására (») Jan 27, 2012 /
 
Az első konfigurációs sort még kibővítheted:
  1. CONFIG FOSC = INTIO67, FCMEN = OFF, IESO = OFF, PLLCFG_OFF, PRICLKEN_ON


Az Init címke után az OSCCON regisztert nem piszkálnám.
(#) janikukac hozzászólása Jan 27, 2012 3 /
 
Sziasztok!

Valaki megírna, hogy itt nekem a PIC fejlesztőbe pontos melyik aljzat kellene a tápfeszhez, innen: Bővebben: Link
(#) janikukac hozzászólása Jan 27, 2012 /
 
Most látom csak kitörölték a hsz-met... Na kár... :wow3:

Közben összedobtam a cuccot, csak 2 dolgo hiányzik már a fejlesztőből: Bővebben: Link
(#) janikukac válasza (Felhasználó 13571) hozzászólására (») Jan 27, 2012 /
 
[OFF] De hisz nem is boltot kerestem, csupán, mit ajánlanak... Na, nem baj, majd kitalálom.
(#) PLaci hozzászólása Jan 30, 2012 /
 
Sziasztok!
Bocsi a primitív kérdésért de elakadtam. Assemblyben programozok 16F627-t , 8.53-as MPLAB-al. A software debuggerét használom/nám, de nem akar működni. Az analog komparátor C2OUT lábát állítgatnám Hi illetve Lo ba a togle segítségéve. A kimeneten ugyan kiírja hogy (236) SIM-N0001 Note: Asynchronous Stimulus Toggle C2OUT fired. , de a regiszter nem vált át. Ha ugyan ezt megcsinálom egy portlábbal, ott szépen működik. Mit bénázok el?
(#) Lüke Aladár hozzászólása Jan 30, 2012 /
 
Üdv!
Egy érdekes (?) problémával találkoztam: a képen látható módon kötöttem nyomógombokat PIC16F887-re. Hiába próbáltam mindent, semmi reakció nem történt a megnyomásukra. Ha ugyanezt a variációt átteszem az RD lábakra (4-6), gyönyörűen működik. Az adatirányok mindkét esetben be vannak állítva megfelelően, az RA0 analóg bemenetként működik. Ez miért van?

pic.JPG
    
Következő: »»   200 / 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