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   990 / 1207
(#) bbalazs_ válasza don_peter hozzászólására (») Nov 7, 2017 /
 
Hex-Dec problema...
(#) Tasznka válasza don_peter hozzászólására (») Nov 7, 2017 /
 
BCD-ben kapod az értéket,azt alakítsd át decbe,és akkor jó lesz
(#) don_peter válasza don_peter hozzászólására (») Nov 7, 2017 /
 
Közben látom, hogy valami átváltást kell alkalmaznom.
Idézet:
„Binary Coded Decimal value of minutes bits, 1 digit; contains a value from 0 to 9”
Köszi srácok, adalapot éppen böngésztem és látom, hogy mi a probléma..
Köszi a segítséget..
A hozzászólás módosítva: Nov 7, 2017
(#) usane válasza don_peter hozzászólására (») Nov 7, 2017 /
 
Na ugye. Probléma megoldva.
(#) GFI válasza benjami hozzászólására (») Nov 7, 2017 /
 
Ez volt a gond, de most legalább kiáll hibára
(#) madzagos válasza kissi hozzászólására (») Nov 7, 2017 /
 
Kipróbáltam szuper! Köszönöm!
(#) f2f2 hozzászólása Nov 8, 2017 /
 
Üdv
kezemben egy PIC16F946 panelon
van kiépített ICSP csati 5 érrel jó sorrendben
Semmivel sehogy se tudok kiolvasni semmit belőle.
Külön 5V semmi
a pin36 Vpp lábat kikötöttem függyetlenül erre adva semmi

Már a ICSPCLK la ICSODAT lábait is lekötve direktben adom és semmi.
Van ennek valami titka még ?
Kössz
PK2 PK3al se
(#) Pali79 válasza f2f2 hozzászólására (») Nov 8, 2017 /
 
Ha be van kapcsolva a kódvédelem akkor nem is fogsz kiolvasni belőle semmit sem.
Esetleg még a Vpp first szokott megoldás lenni.
A hozzászólás módosítva: Nov 8, 2017
(#) usane válasza f2f2 hozzászólására (») Nov 8, 2017 /
 
Ha felismeri a programozó, és valaki más által programozott PIC akkor az van amit Pali79 mondott, ha fel sem ismeri akkor valószínűleg döglött.
(#) nagym6 válasza usane hozzászólására (») Nov 8, 2017 /
 
Klón pickit2 nálam bekapcsolt kódvédelemnél végig kiír egy azonos értéket, nem emlékszem vagy 00, vagy FF.
(#) usane válasza nagym6 hozzászólására (») Nov 8, 2017 /
 
Persze, ami alapérték be van állítva a regisztereknek a kiolvasás előttés mivel nem olvas ki semmit nem íródik felül, vagy valami ilyesmi, nem tudom konkrétan hogy kezeli a szoftver, de nem is lényeg.
Valamint a kérdező nem írta le mi is a a semmi amit nem tud kiolvasni, hoggy 0-k vagy ff-k, vagy nem is ismeri fel a programozó vagy lehet, hogy csak egy darab csoki tüskékkel. Várjuk a válaszát.
(#) f2f2 válasza Pali79 hozzászólására (») Nov 8, 2017 /
 
Köszönöm hogy többen is válaszoltatok

semmit az az hogy nem tud kapcsolódni sem
se config kiolvasás se semmi
No Device detected
2x sikerült, hogy ezután kiírta a következő hibát az valami selected szöveg volt

namost ha kódvédelem rajta van akkor csatlakozás, config kiolvasás sikeres nem ?
(#) f2f2 válasza usane hozzászólására (») Nov 8, 2017 /
 
A panel működik a program fut a display n is látom, hogy dolgozik
még így, hogy lekötöttem 3 lábat így is.
(#) Hp41C válasza f2f2 hozzászólására (») Nov 9, 2017 /
 
Ha hibás a csatlakozás vagy a PICkit2/3 nem képes ellátni elegendő árammal a panelt, a programozó nem tud kapcsolatot teremteni a kontrollerrel. Ekkor a panelt külső tápról járatva kellene megpróbálni.
Akkor sem tud kapcsolatot felvenni, ha a kontroller programja az első utasításokkal kimenetnek állítja a PGD és/vagy PGC lábakat. Ekkor a Vpp first programming entry módszer segíthet, de ekkor a Vdd tápot a PICkit -nek kell biztosítania.
Bekapcsolt kódvédelemmel is sikeres a konfigurációs szó és az eszközazonosító kiolvasása. A "Device not detected" arra utal, hogy ezt sem sikerült kiolvasni. Ebben az esetben minden adat azonos, a bekötés hibájától függően 0x00 (PICkit lehúzó ellnállás) vagy 0xFF. Ha minden adat 0x00, akkor a kódvédelem bekapcsoltnak látszik.

A Pk2DeviceFile.dat 1.62.14 verzióban már szerepel a típus.
Kézi típusmegadással, PIC16F946 -t kiválasztva kellene próbálkozni.
A hozzászólás módosítva: Nov 9, 2017
(#) dani555 hozzászólása Nov 9, 2017 /
 
Sziasztok!

Tapasztalt már valaki olyat, hogy egy egyszerű ledvillogtatásnál, (pic16f628a, mplab xc8)
ha 8 mhz nek választom az órajel frekijét, 2 mp-enként gyullad ki a led, ha 4 mhznek, akkor helyesen mpenként villan? Mitől lehet ez?

  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 8000000
  18.  
  19. void del(void)
  20. {
  21.     int c;
  22.     for(c = 1; c <= 20; c = c+1)
  23.     {
  24.         __delay_ms(50);
  25.     }
  26. }
  27.  
  28. void main()
  29. {
  30.     TRISB0 = 0;                         //RB0 as Output PIN
  31.    
  32.     while(1)
  33.     {
  34.        
  35.         RB0 = 1;                        // LED ON
  36.         del();                          // 1 Second Delay
  37.         RB0 = 0;                        // LED OFF
  38.         del();                          // 1 Second Delay
  39.     }
  40. }
(#) dani555 válasza dani555 hozzászólására (») Nov 9, 2017 /
 
Elnézést, nem villan, hanem a specifikációnak megfelelően villog
(#) kissi válasza dani555 hozzászólására (») Nov 9, 2017 /
 
Szia!

Az _XTAL_FREQ-el a fordító számára megadod a processzor órajelét és ez alapján számolja a késleltetést. Ha nem jót adsz meg, akkor nem az általad elvárt lesz a villogási frekvencia!
(#) proli007 válasza dani555 hozzászólására (») Nov 9, 2017 /
 
Hello! Miért csoda ez? Ha a programodban 1sec ideig ég, és 1sec ideig sötét, akkor bizony 2 másodpercenként "gyullad ki" a Led.
(#) dani555 válasza kissi hozzászólására (») Nov 9, 2017 /
 
Na mármost mit jelent a nem jo? Ez specifikálva van a pic adatlapjában?
(#) f2f2 válasza Hp41C hozzászólására (») Nov 9, 2017 /
 
Előszöris köszönöm a választ.

Vissszatérve a PIC16F946 panelon történő kiolvasásához
iszonyat időm elment rá tegnap.
A +5V stabil külső tápról az semmit se segített.
a Vpp lekötés felesleges volt mehetett vissza.
A ICSPCLK ra kötve volt még más is azt ki kellett venni
Az ICSPDAT szintén, ment másfele ezt muszáj volt felemelnem
és csak akkor volt jó a felismerés és olvasás, ha
az órajelre plusszban tettel felhúzó ellenállásként 10k
viszont a kommunikációs csatornára 1k ra 10k párhuzamosan (ne kérdezd meg így mi az eredő ellenállás) még azt megadtam neki. Pont az 1K ra még süket volt.

CP rá volt kapcsolva a CPD nem
ilyenkor nem lehet sehol semmi változtatást eszközölni jól gondolom ?
Ha csak az eeprom van pipálva ugye akkor abban nem lehet beiratni más értéket, mert
a futattott állomány is elvész?
Kössz
A hozzászólás módosítva: Nov 9, 2017
(#) kissi válasza dani555 hozzászólására (») Nov 9, 2017 /
 
Miért, úgy gondoltad, hogy Te mondod meg ?! Az adatlap a Biblia, anélkül nem érdemes/szabad PIC-ezni, még a használata mellett is belefutunk problémákba...Olvasd el az oszcillátorokkal kapcsolatos fejezetet
(#) Hp41C válasza dani555 hozzászólására (») Nov 9, 2017 /
 
Azt kell beállítani az _XTAL_FREQ értékeként, amilyen frekvenciával a megépített áramkörben működni fog. Honnan tudhatná a fordító, hogy a kontrollert külső quartz -ról járatjuk, mondjuk 3,579545 MHz -en?
A hozzászólás módosítva: Nov 9, 2017
(#) don_peter válasza dani555 hozzászólására (») Nov 9, 2017 /
 
proli007 rátapintott a lényegre..
A del() függvényed miatt van a jelentkezett elcsúszás.
a del függvény 1másodpercet késleltet.
Jó lesz az, csak nézegesd még kicsit..
(#) dani555 válasza don_peter hozzászólására (») Nov 9, 2017 /
 
hmm ez érdekes. Megpróbáltam de nélkül is a __delay_ms(1000) rel, és ugyan az a szimptóma.
(#) dani555 válasza dani555 hozzászólására (») Nov 9, 2017 /
 
*del()
(#) don_peter válasza dani555 hozzászólására (») Nov 9, 2017 /
 
  1. while(1)
  2.     {
  3.        
  4.         RB0 = 1;                        // LED ON
  5.         __delay_ms(100)
  6.         RB0 = 0;                        // LED OFF
  7.         __delay_ms(1000)
  8.     }

Próbáld ki ezt.
Ez 100ms ideig fog világítani és 1mp-es időközönként.
Persze csak, akkor ha jó minden beállítás.
(#) Bakman válasza don_peter hozzászólására (») Nov 9, 2017 /
 
A __delay_ms értéke 255 fölé is mehet?
(#) Hp41C válasza don_peter hozzászólására (») Nov 10, 2017 /
 
1000 + 100 = 1100 -> 1100 ms a periódusidő...

while(1)
{

RB0 = 1; // LED ON
__delay_ms(100);
RB0 = 0; // LED OFF
__delay_ms(250);
__delay_ms(250);
__delay_ms(200);
__delay_ms(200);
}
(#) don_peter válasza Bakman hozzászólására (») Nov 10, 2017 /
 
Jaja, jogos.. A gyári valszeg csak 1byte-os.
Én sajátot írtam és ebben gondolkodtam.

Hp41C-nél a tuti..
(#) usane válasza dani555 hozzászólására (») Nov 10, 2017 /
 
Jó hogy ugyanaz a szimptóma. A delay függvény órajel függő amit az _XTAL_FREQ paraméterrel adsz meg. Ha fele akkorát adsz meg akkor 2x lasabb lesz ha 2x akkorát akkor 2x gyorsabb lesz a késleltetés, és ezzel együtt a villogás. Nyilván ugyanez az eredmény ha nem az _XTAL_FREQ értéket változtatod hanem a kvarcot cserélgeted. Egyértelmű ha valaminek változtatod a sebességét az gyorsul vagy lassul. A kontroller sebességét az órajele adja.
A hozzászólás módosítva: Nov 10, 2017
Következő: »»   990 / 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