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   542 / 1210
(#) Pali79 válasza ktamas66 hozzászólására (») Jún 29, 2014 /
 
Nagyjából értem, csak az a gond, hogy a másik CCP már foglalt. De azért nagyon köszi!
(#) gaspar_zsolt hozzászólása Jún 30, 2014 /
 
Egy 16F1829-es PIC 4 PWM modulját szeretném használni. Kettőre azt írja, hogy ECCP.
Nekem a normál egyszerű modul kell, ez gondolom azáltal, hogy több, még az alapfunkciót ugyanúgy tudja.
Jól gondolom?
(#) ktamas66 válasza gaspar_zsolt hozzászólására (») Jún 30, 2014 /
 
Igen.
(#) gaspar_zsolt válasza ktamas66 hozzászólására (») Jún 30, 2014 /
 
Köszi!

Azt írja az adatlap, hogy 3 timer-t tudok hozzárendelni a 4db PWM generátorhoz.
Ha egyidőben szeretném állítani a 4 kimenetet, akkor ez azt eredményezi majd, hogy egyet csak valamelyikkel párban tudom vezérelni?
Vagy ettől nem függ.
(#) foxi63 válasza gaspar_zsolt hozzászólására (») Jún 30, 2014 /
 
A PWM generátoroknak közös az időalapjuk (valamelyik timer),de attól még teljesen függetlenek egymástól a kitöltés tekintetében.
Üdv.? Foxi
(#) Hp41C válasza gaspar_zsolt hozzászólására (») Jún 30, 2014 /
 
A CCPTMRS regiszter segítségével egymástól függetlenül választhatsz timert a 4 db PMW módba beállított CCP modulhoz: Timer2, Timer4, Timer6.
(#) gaspar_zsolt válasza Hp41C hozzászólására (») Jún 30, 2014 /
 
Köszönöm nektek!
Végül is akkor érdekes ez a 3 timer, ha 3 különböző PWM frekvenciát akarok használni. Ha egy elegendő, akkor kiválasztom pl a timer2-t és azt beállítom. A többi beállítást, meg a saját CCPxCON, CCPRxL, stb regiszterekben.

Keresgéltem olyan PIC-et, aminek 8 PWM modulja van, de ezek a "százlábú" QFN és hasonló tokozásban vannak. Vagy lehet, hogy én nem találtam egy kisebb, mondjuk 18-28 közötti DIL tokozásút?
A hozzászólás módosítva: Jún 30, 2014
(#) mrobi válasza gaspar_zsolt hozzászólására (») Jún 30, 2014 /
 
Esetleg szoftveres PWM-en nem gondolkodtál?
(#) gaspar_zsolt válasza mrobi hozzászólására (») Jún 30, 2014 /
 
Dehogy nem! Azt már kérdeztem is egy-két hete, hogyan mi módon lehet megoldani.
A hétvégén írtam is egy teszt programot SW PWM-re...

Csak ez is érdekel.
(#) usane válasza gaspar_zsolt hozzászólására (») Júl 1, 2014 /
 
Mihez kell a pwm? Csak a ccp modul jó? Olyan PIC van alacsony lábszámú is amiben PSMC van 8 csatorna vagy 14, ráadásul 8 bites.(PIC16F178x)
A hozzászólás módosítva: Júl 1, 2014
(#) jonatani01 hozzászólása Júl 2, 2014 /
 
Üdv!
Első alkalommal próbáltam használni a Timer2-t, pic16f690 vezérlőn, de valamiért nem akar életre kelni. Csak egy LED-et villogtatna B port 6-os kimenetén.
  1. #include <p16F690.inc>
  2.      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
  3.  
  4.         cblock 0x20
  5.  
  6.         endc
  7.  
  8.         org 0
  9.         goto    MAIN
  10.         org     4
  11.         goto    IT_RUT
  12.        
  13. MAIN
  14.         bsf             STATUS,RP0
  15.         clrf    TRISB
  16. ;                                                       ;_________
  17.         movlw   0xff                    ;ez a pár sor nem is lenne szükséges...
  18.         movwf   PR2                             ;
  19.         bcf             STATUS,RP0              ;
  20.         clrf    TMR2                    ;_________
  21.         bsf             PIE1,TMR2IE             ;timer2 interruptkérés engedélyezés
  22.  
  23.         bsf             INTCON,PEIE             ;interrupt engedélyezés
  24.         movlw   b'01111111'             ;pre-,postscaler beállítás | timer2 start
  25.         movwf   T2CON
  26. ;
  27.         bsf             INTCON,GIE              ;interruptkérés engedélyezés
  28.         bcf             STATUS,RP0
  29.         bsf             PORTB,6
  30.  
  31. Loop
  32.         goto    Loop
  33.  
  34. IT_RUT
  35.         btfsc   PIR1,TMR2IF
  36.         goto    TURN_LED
  37.         retfie
  38.  
  39. TURN_LED
  40.         bcf             PIR1,TMR2IF             ;flag törlése
  41.         movlw   0x40
  42.         xorwf   PORTB,f                 ;led "negálása"
  43.         retfie
  44.  
  45.         END

Mi lehet a baj szerintetek? A mikrovezérlő lehet a szar, vagy én?
(#) ktamas66 válasza jonatani01 hozzászólására (») Júl 2, 2014 / 1
 
Ezekbe a bankváltásokba nem kavarodtál bele ? A PIE1 másik bankban van.
(#) jonatani01 válasza ktamas66 hozzászólására (») Júl 2, 2014 /
 
Dehogynem!
De nem is csak azt néztem be... Köszi!!!
(#) ic20 hozzászólása Júl 3, 2014 /
 
Hello,
szeretnék egy kicsi segítséget kérni hogy pickit2 klonal lehet 18F-es pic szériát fel programozni ?
Válaszokat előre is köszönöm.
(#) vicsys válasza ic20 hozzászólására (») Júl 3, 2014 / 1
 
Igen, de attól függ pontosan melyiket.
(#) icserny válasza ic20 hozzászólására (») Júl 3, 2014 / 1
 
Ha a PICkit2 klón "butított", azaz csak 5V-os, akkor értelemszerűen csak az 5V-on programozható példányokat lehet vele programozni.
(#) Amjad hozzászólása Júl 3, 2014 /
 
Helo. Most láttam egy kézi kütyüt, ami az antennájától néhány tíz centire bekövetkezett esd kisülést jelezte hanggal. Ez néhány száz volt. Vagy több Lehet erre valami megoldás, hogy pl. egy wifi antenna által érzékelt kisülést piccel feldolgozható szintre hozzuk?
(#) Amjad válasza Amjad hozzászólására (») Júl 3, 2014 /
 
Esetleg egy zener a biztonság kedvéért, és simán rávezetni egy analóg lábra?
(#) nyekk hozzászólása Júl 4, 2014 /
 
Üdv.
Had kezdjem az elején,hátha más is belefut ebbe a hibába.Inkább nem írnám le meddig kisérleteztem, egy LPT égetővel .Persze körbe járva az összes beállítási lehetőséget stb.egy 12F675 -ös be szerettem volna programot égetni,de mindig hiba jelentésbe futottam.Végül szakadt a film rendeltem egy PicKit 2 clone-t .A OSCCAL nál most is jelen van a hibaüzenet :" invalid Value 3FFF" de ettől még a programot be tudom égetni.Ha 12F675 -ből szűzet teszek a pickit -be akkor minden ok,annyi külömbség ,hogy a beégetendő program oszlopában az utolsó sor végén szerepel egy 3444 ,ami a LTP égetővel való kisérletezés során a többiből eltünt.Ezt hogy tudom visszaállítani a többi Pick -ben,és pontosan mit jelent ?
Válaszotokat előre köszönöm!
(#) Hp41C válasza nyekk hozzászólására (») Júl 4, 2014 /
 
A PICkit2 a típuskiválasztásnál, felismertetésnél az OSCCAL értéket kiolvassa a kontrollerből és ezt az értéket írja vissza, ez látszik az utolsó utasításként a memóriában.
PICkit2 V2.62 program Tools / Osccal / Auto regenerate menüpontjával lehet újraszámíttatni. Vigyázat, ez a funkció törli a kontrollert.
(#) kissi válasza nyekk hozzászólására (») Júl 4, 2014 /
 
Az a belső oszcillátor kalibrálási értéke a gyártó vizsgálata alapján, programírás során beolvasva "elvileg" hiteles", 4 MHz-es lesz az oszcid !
Ugyanúgy lehet beleégetni, mint a többi adatot, ha tudod mennyi az értéke ( persze a programozó által kezelt, valószínűleg hex fájlba, beleépítve!) !

PK2-vel HP41C kolléga megoldása a legegyszerűbb!
A hozzászólás módosítva: Júl 4, 2014
(#) nyekk válasza Hp41C hozzászólására (») Júl 4, 2014 /
 
Próbáltam az Auto regenerate val viszahozni,de eredménytelen
(#) vilmosd válasza nyekk hozzászólására (») Júl 4, 2014 /
 
Nezd meg ezt. Igaz nemetul van, de van egy programocska amivel lehet kalibralni a PIC-et.
(#) nyekk válasza vilmosd hozzászólására (») Júl 4, 2014 /
 
Kössz,ki fogom próbálni
(#) csabagalcsaba hozzászólása Júl 5, 2014 /
 
Üdvözlet mindenkinek!
szeretnék egy kis segítséget kérni. kezdő pic programozó vagyok és írtam ezt az egyszerű futófény programot:
  1. A EQU 020h
  2. B EQU 021h
  3. D EQU 022h
  4.   ORG 0
  5.  CONFIG intrc OSC
  6.   GOTO BEÁLLÍTÁSOK
  7. ;**********************
  8. BEÁLLÍTÁSOK
  9.  CLRF PORTA
  10.  CLRF PORTC
  11.  BANKSEL TRISA
  12.  CLRF TRISA
  13.  BANKSEL TRISC
  14.  CLRF TRISC
  15.  BANKSEL PORTC
  16.  GOTO PROGRAM
  17. ;***************
  18. PROGRAM
  19.  MOVLW B'100000'
  20.  MOVWF PORTA
  21.  CALL IDŐ
  22.  MOVLW B'010000'
  23.  MOVWF PORTA
  24.  CALL IDŐ
  25.  CLRF PORTA
  26.  MOVLW B'100000'
  27.  MOVWF PORTC
  28.  CALL IDŐ
  29.  CLRF PORTC
  30.  MOVLW B'010000'
  31.  MOVWF PORTC
  32.  CALL IDŐ
  33.  CLRF PORTC
  34.  GOTO PROGRAM
  35. ;***************
  36. IDŐ
  37.  MOVLW D'99'
  38.  MOVWF B
  39.  MOVLW D'35'
  40.  MOVWF D
  41. X MOVLW D'20'
  42.  MOVWF A
  43. I DECFSZ A,F
  44.  GOTO I
  45. II DECFSZ B,F
  46.  GOTO X
  47. III DECFSZ D,F
  48.  GOTO X
  49. R RETURN
  50. ;**************
  51.  END


Oshon Pic Simulator IDE-ben írtam. A szimulátorban működik is de valamiért amikor rátöltöm a PIC-re akkor nem indul el a program és nem világítanak a LED-ek.
PIC16F630-at használok.
Tudna valaki nekem segíteni?
És még az a kérdésem lenne, hogy az analóg működésre képes bemeneteket hogyan tudnám tiltani és digitális I/O port ként használni.
Amit a szimulátorban a konfigurációs bitekben beállítok az a gépi kódú programban benne lesz?
Vagy az csak a szimulátornak a beállítása?

A válaszokat előre is köszönöm!
A hozzászólás módosítva: Júl 6, 2014
(#) Pali79 válasza csabagalcsaba hozzászólására (») Júl 5, 2014 /
 
Idézet:
„analóg működésre képes bemeneteket hogyan tudnám tiltani és digitális I/O port ként használni.”

Természetesen az adatlapból.
A kód beillesztésére használd a "Kód" gombot. Sokkal áttekinthetőbb.
(#) zenetom válasza csabagalcsaba hozzászólására (») Júl 5, 2014 /
 
Szia!
Bár nem ismerem ezt az Oshon IDE-t, de kerüld az ékezetes karakterek használatát (pl. a "BEÁLLÍTÁSOK" címke helyett "BEALLITASOK" legyen!!). És a címkék lehetőleg több karakteresek legyenek (pl. a nagy "I" betű helyett: "DELAY_1").
Az adatlap szerint a 16F630-ban nincs AD, csak a 16F676-ban.
Ott pedig így tudod kikapcsolni:
  1. BANKSEL ADCON0
  2. MOVLW D'128'
  3. MOVWF ADCON0
  4.  
  5. BANKSEL ANSEL
  6. MOVLW D'0'
  7. MOVWF ANSEL                ;csak 16F676-nál!


Szerk.: továbbá ajánlott a címke utáni kódot új sorba írni.
A hozzászólás módosítva: Júl 5, 2014
(#) kissi válasza csabagalcsaba hozzászólására (») Júl 5, 2014 / 1
 
Nem használom az OSHON szoftverét, de ha ott megy, a valóságban pedig nem, akkor a konfigurációs biteket érdemes megnézni ( pl. nem látom a WDT kikapcsolását, pedig az alapból megy, az MCLR is kérdéses lehet! ) !
(#) karak74 válasza csabagalcsaba hozzászólására (») Júl 5, 2014 /
 
Rövid válasz:
1. ellenőrizd az áramköri kialakítást.
2. Tiltsd le a CONFIG -ban a MCLR funkciót (azaz intézze a RESET-elést a PIC magának)
3. Tiltsd le a CONFIG -ban a WatchDog funkciót. (Gyári alapbeállításban ez is és a MCLR hardveres megvalósítása /a hardveres megvalósítás elvárása/ is aktív.)
4. Szintén a CONFIG-ban az a CONFIG intrc OSC nekem kevésnek tűnik. Nem kell még a végére valami? Pl.: CONFIG intrc OSC NOCLKOUT (vagy hasonló)?

A hosszú válasz (megpróbálom röviden):
Első körben teljesen egyetértek zenetom kolléga 16:21-kor adott válaszával. E mellett:
- A
Idézet:
„BEÁLLÍTÁSOK”
rész legelején én biztos-ami biztos alapon egy
  1. BANKSEL PORTA
  2. CLRF PCLATH

-val kezdeném, csak utána a többi.
- Az égető biztosan jó?
- Használj megjegyzéseket!
- Miért nem MPLAB-ot, vagy valami intelligens fejlesztőkörnyezetet használsz! Intelligens hibakeresést tesz lehetővé. Szerintem egy MPLAB csuklóból ordibált volna, hogy öreg, a configban engeded a MCLR külső lábról vezérlését, de közben ugyanoda jelet küldesz ki!, Vagy hogy a WatchDog túlfutott! Vagy arra is, (már ha igazam van abban, hogy a) CONFIG sorod hibás.
- E mellett persze működhet is a program, de nagy fukú illetlenség pl. a 0-ás címen kezdve a programozást nem elugrani az interrupt vektor(ok) mögé.
- Nem értem a számolástechnikádat. Persze ettől még működik a dolog. (Ha jól számoltam, úgy 208000 - 210000 ciklus, ami a belső 4MHz-cel számolva kb 1/5 másodperc.)
- Azt sem értem, miért kell 4 LED vezérléséhez két kapu? Én csak a C-re tenném a LED-eket.

Próbáltam a körülményekhez képest rövid lenni, de a sikerhez Te is kelessz!

Sok sikert, és bátorság! Legfeljebb megismered az amperillatot!
(#) karak74 válasza jonatani01 hozzászólására (») Júl 5, 2014 /
 
Szia!

Megoldódott már?
- Szimulációs tesztet futtattál? Persze mindenre kiterjedő analízissel! Fut-e a Timer2, mennyi idő alatt történik a megszakítás, történik-e? Felhúzóellenállások ki vannak kapcsolva? Mit mutatott a teszt?
- A PR2 mit takar? (A ..\Microchip\MPASM Suite\P16F690.INC -ban nincs ilyen.)
Következő: »»   542 / 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