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   895 / 1203
(#) pajti2 válasza Hp41C hozzászólására (») Jan 18, 2017 /
 
A 12f családokat nem ismerem, de nem valami olyasmi a cél az oszcillátor kalibrálással, hogy a gyártási eltéréseket balanszírozni lehessen? Nem igazán értem, hogy azt miért érdemes fixkódolni. Részemről inkább mérném és hitelesíteném egy referenciához, ha csakugyan fontos, vagy hagynám a fenébe, ha úgyis teljesen mindegy, mint például egy modellvasút váltó vezérlésénél, aminek az igényeihez képest simán sokezerszeres sebességgel fut az a pic, ha akár mit is csinálnak az osccal értékével. Van valami nagy titok a mélységekben?
(#) Hp41C válasza pajti2 hozzászólására (») Jan 18, 2017 /
 
Úgy általában lehet érdekes a korrekciós adat megtartása. Főleg az, hogy az utasításkód retlw legyen. Ha nem retlw és a program felhasználja a kalibrációt, el sem fog indulni.....
Ha töröljük a kontrollert, az értéke 0x3FFF lesz, ami nop -nak felel meg.
Kommunikációs alkalmazások pl. aszinkron soros adás / vétel.
A Microchip saját programozói beírás előtt kiolvassák ezeket az adatokat és automatikusan módosítják a beírandó programot. Persze ezekkel is el lehet veszteni az értéket. A PICkit2 programjában van kalibrációt meghatározó és visszaállító menüpont.
(#) kissi válasza pajti2 hozzászólására (») Jan 18, 2017 /
 
Idézet:
„de nem valami olyasmi a cél az oszcillátor kalibrálással, hogy a gyártási eltéréseket balanszírozni lehessen?”
De és pont ezt az értéket határozza meg a gyártó elvileg ( gondolom az egy "fazékban" készültek egy vagy több mintavétel után ugyanazt a kódot kapják !) és ezt a kalibrációs értéket menti el a ROM utolsó helyére RETLW kód konstansaként ! Ha akarod, felhasználod, ha akarod, újrakalibrálod !
A hozzászólás módosítva: Jan 18, 2017
(#) pajti2 válasza kissi hozzászólására (») Jan 18, 2017 /
 
Oké, szóval romba menti (átírni nem lehet, elveszni nem tud), programkód ki tudja olvasni onnét run time, és az osccal egy ram-regiszter, ami run time írható. Nekem a történet olybá tűnik, mint amit egy sima függvény automatán meg tud oldani. Miért kell belőle programozás-idejű fejfájást csinálni?
A hozzászólás módosítva: Jan 18, 2017
(#) kissi válasza pajti2 hozzászólására (») Jan 18, 2017 /
 
Idézet:
„Nekem a történet olybá tűnik, mint amit egy sima függvény automatán meg tud oldani. Miért kell belőle programozás-idejű fejfájást csinálni?”

Ezt hogy gondolod ? Odaadod a felhasználónak a felprogramozott PIC-et és majd ő kalibrálja ? Vagy minden PIC programozónak van otthon hiteles kalibráló jele és mérője, amivel tudná kalibrálni az oszcillátor frekvenciáját ? A gyártó segít azzal szerintem azzal, hogy akinek nincs, az kapott egy gyárilag 1 %-ra beállított oszcillátort (ha jól emlékszem és amit ő tovább pontosíthat, ha megvannak hozzá az eszközei !) és a gyártásnak se kell eleve 1 % pontosnak lenni, hanem a bemérésnél majd "behúzzák" !
(#) bbalazs_ válasza pajti2 hozzászólására (») Jan 18, 2017 /
 
Peldaul vannak eltero homersekleten uzemelo cuccok (jellemzoen mondjuk a meleg iranyaba, pl. gepkocsi motortere) aztan a sima szobahomersekleten mukodo belteri cuccok. Itt elegge eros homersekleti kompenzalasra van szukseg.
(#) Hp41C válasza pajti2 hozzászólására (») Jan 19, 2017 /
 
Idézet:
„Oké, szóval romba menti (átírni nem lehet, elveszni nem tud)”

Sajnos a program memóriájába teszk a kalibrációs értéket, így egy gondatlanul kiadott chip erase kitörli. Ezért írtam le az írás menetét... A későbbi típusoknál az ilyen ill. ehhez hasonló értékeket az un. kalibrációs memória tartományba teszik, amit az egyszerű chip erase nem töröl, de megvan a módszer, amivel kiolvasható törölhető és újraírható: PICkit2 -nem a Test memória funkciók.

Ha már itt tartunk:
A 12F629,12F676, 16F630, 16F676 programozási leírása nem említni a Vdd first programming entry módszert csak a Vpp first programming entry -t.
A hozzászólás módosítva: Jan 19, 2017
(#) kriszrap hozzászólása Jan 19, 2017 /
 
Sziasztok MikroC programmal nem lehet programozni ezt a picket:
pic 10F322 vagy megoldható valahogy???

szerk.: Pickit 3 felismeri feltudja programozni??

Mekkora belsö oscal rendelkezik ???
A hozzászólás módosítva: Jan 19, 2017
(#) Hp41C válasza kriszrap hozzászólására (») Jan 19, 2017 /
 
2 - Igen
3 - 16MHz és 31kHz. Ld: adatlap
(#) kriszrap válasza Hp41C hozzászólására (») Jan 19, 2017 /
 
Kerestem benne de nagyon hülye vagyok az adatlapokhoz (de próbálkozom...)
(#) Hp41C válasza kriszrap hozzászólására (») Jan 19, 2017 / 1
 
4.0 Fejezet: Oscillator Module a 24. laptól.
(#) sonajkniz hozzászólása Jan 19, 2017 /
 
Sziasztok!

Valaki értő elmagyarázná nekem, ez mi akar lenni:
"LPBOR: Low-Power Brown-out Reset Enable bit
1 = Low-power Brown-out Reset is enabled
0 = Low-power Brown-out Reset is disabled"

Mert a fordító szerinti "alacsony erő barna ki" szerintem nem az amit nekem sugall.
(#) bbalazs_ válasza sonajkniz hozzászólására (») Jan 19, 2017 /
 
Ha tul alacsony a tapfesz, akkor adjon-e resetet vagy ne. A nagyon alacsony tapfesz azt okozhatja, hogy bizonytalanul mukodik a cucc es nem azt csinalja, amit kell. Latszolag fut a program, de pl 2+2 osszeadas idonkent 12 lesz, mert bebillen a 3.bit veletlenszeruen.
(#) sonajkniz válasza bbalazs_ hozzászólására (») Jan 19, 2017 /
 
Ezt értem, de van külön Brown-out is. Az mit csinál?
Illetve, attól még hogy resetelődik nem fog megnőni a tápfesz.
Tehát vég nélküli resetbe kezd?
(#) bbalazs_ válasza sonajkniz hozzászólására (») Jan 19, 2017 /
 
Akkor az alacsony feszultsegu modban adja, tehat amikor low-powerben fut, lassan.
Valoszinuleg neked kell lekezelni a resetet, mert egy jelzobit mutatja, hogy ez okozta a resetet. pl. ilyenkor lekapcsolhatja mondjuk a sajat tapfeszet, ha van ilyen elektronika a nyak-on.
Szerintem arra valo, hogy a hibas mukodest megelozzuk, inkabb alljon le, de hulyeseget ne csinaljon.
De nihilo nihil, tehat ha nem adsz neki kakaot, akkor barmi elofordulhat. Ha nem kezeled le es tovabbra is fenn all az az allapot, akkor szerintem igen, amig valami minimalis aramot ki tud szivattyuzni a telepbol...
(#) kissi válasza sonajkniz hozzászólására (») Jan 19, 2017 /
 
Szia!
Idézet:
„Illetve, attól még hogy resetelődik nem fog megnőni a tápfesz.”
--> Igaz, ha hibás, akkor meg kell javítani !
Ez nem arra való, hogy a tápfeszt megjavítsa, hanem pl. egy erősáramú kábel miatti zavarójel a tápon ne "akassza ki" a processzor által vezérelt rendszert, hanem inkább induljon újra ( néhány ms alatt képes erre !)! Természetesen ha ez sokszor előfordul, akkor a tápvédelem, árnyékolás területen kell "körbenézni" !
(#) icserny válasza sonajkniz hozzászólására (») Jan 19, 2017 /
 
Low-power = kisfogyasztású
Brown ot Reset = a feszültség leesése esetén RESET-ben tartja a mikrovezérlőt (különben előfordulna, hogy a mikrovezérlő hülyeségeket csinál, mert ha kiesik a specifikációban előírt határok közül, akkor tudományosan ne jósolható meg, hogy mit fog csinálni: pl. hibásan hajt végre egy utasítást, vagy eltéveszti a soron következő utasítás címét)
(#) pajti2 válasza sonajkniz hozzászólására (») Jan 19, 2017 /
 
Idézet:
„"alacsony erő barna ki"”
Volt már olyan erős vérveszteséged, hogy elájultál? Ha még nem, akkor elárulom, hogyan megy. Előbb elkezded hidegnek érezni az izmaidat, és az egész testedet. Izzadni is kezdesz, noha fázol. Aztán zúgni kezd a füled, és minden olyan távolivá változik. A látóteredben kívülről befelé elkezd előbb kizöldülni a "kép", majd kibarnulni, és akkor veszíted el a látásodat is, majd az eszméletedet is. Az a brown-out. Az angol szereti történeti vagy szokvány alapon kezelni a fogalmait. Nem mindegyiket lehet értelmesen magyarra fordítani.
A hozzászólás módosítva: Jan 19, 2017
(#) gyoran válasza sonajkniz hozzászólására (») Jan 20, 2017 /
 
Szia
szerintem gyakorlatban pl. a következő dologra használhatod:
1) nem elég erős a tápellátás és néha vészesen leesik: Ha ezt észreveszed, mondjuk kigyújtasz egy LED-et, akkor szkópot, műszert stb. neki és megkeresni, mi okozza.
2) lemerül és gyenge a telep: gyorsan EEPROM-ba mentesz mindent ami fontos, alapállapotba helyezed, ami kell (pl. elzárod a vízcsapot, ha azt kezelsz vele ), közlöd a külvilággal, hogy elemcsere esedékes és megállsz.
Ehhez viszont kellhet még valami plusz hardver, mert a RESET-ből csak akkor kecmereg ki a PIC, ha a tápfesz Vbor fölé nő, azaz RESET esetén kicsit meg kell emelni az egyébként leesett tápfeszt. Egy elem pl. többnyire "gyárilag" tudja ezt, ha a RESET alatt nem terhelődik.
A hozzászólás módosítva: Jan 20, 2017
(#) gazspe hozzászólása Jan 20, 2017 /
 
Sziasztok!
Volt szó a témában, hogy RC körrel és egy PIC lábbal lehet analóg értéket mérni. Erről valaki tud valami dokumentációt adni? Googleval nem sikerült megértettnem a szándékom.
Választ előre is köszönöm
(#) Hp41C válasza gazspe hozzászólására (») Jan 20, 2017 /
 
Keresgélj errefelé.
(#) foxi63 válasza gazspe hozzászólására (») Jan 21, 2017 /
 
Szia!
először is kell egy schmidt trigger benenetű láb, ez 0,8 tápfesznél érzékel magasat. Az adott lábat alacsony szintre teszed,(kisütöd a kondit egy 200 Ohmos ellenálláson keresztül és nullázol egy számlálót. bemenetnek állítod a lábat ekkor elkezd feltöltődni a külső ellenálláson keresztül és vársz, amíg magasra nem billen. Leolvasod a számlálóból az értéket. Ez nem analóg mérés, csak bizonyos késleltető mehamizmus ami arányos a feltöltő ellenállás mértékével.(potméter) Azonban nem potméterként, hanem változtatható ellenállásként kell bekötni.
Remélem erre gondoltál...
üdv. Foxi
(#) balint730 hozzászólása Jan 21, 2017 /
 
Sziasztok.
MikroC pro-t használok de amikor lefordítom nem ment .hex fájlt. Mit kellene beállítanom, hogy legyen?
(#) Elektro.on válasza balint730 hozzászólására (») Jan 21, 2017 /
 
Tools --> Options menüben (F12 vel előjön) az output fülön nincs kikapcsolva valami?
A projekt könyvtárat beállítottad az elemén?
(#) balint730 válasza Elektro.on hozzászólására (») Jan 21, 2017 /
 
Ezek vannak bepipálva

Névtelen.png
    
(#) apromax hozzászólása Jan 21, 2017 /
 
Tudna valaki segíteni abban ez a két makró hogyan olvasható:
  1. #define mLCDPutChar(__lcd_char)         _uLCDchar = __lcd_char; _uLCDstate = 3;
  2. #define mLCDHome()                                      _uLCDstate = 5; _uLCDchar = 0;
(#) icserny válasza apromax hozzászólására (») Jan 22, 2017 / 1
 
Idézet:
„ez a két makró hogyan olvasható?”

Roppant egyszerűen: a #define után álló függvénynév helyébe a jobb oldalon álló utasításokat másolja be a programkódba fordítás előtt a preprocessor.
Nem ártana viszont kapcsos zárójelek közé tenni, így:
  1. #define mLCDPutChar(__lcd_char)         {_uLCDchar = __lcd_char; _uLCDstate = 3;}
  2. #define mLCDHome()                      {_uLCDstate = 5; _uLCDchar = 0;}
A hozzászólás módosítva: Jan 22, 2017
(#) minicooper hozzászólása Jan 22, 2017 /
 
Üdv.! Programoztam már PIC-et CCS-ben de most PIC24-re van szükségem úgyhogy átt kell térnem az MPLAB-re.A gond hogy 3 órányi googlezás után sem tudom miért nem forditódik le a kód és hogy mi benne a hiba.Néztem már a hivatalos XC16 dokumentációt azaz a "16-Bit Language Tools Libraries
Reference Manual"-t de az sem segitett rajtam mert szerinte jól van.Hozzáteszem amatőr szinten programoztam PIC-eket.Szóval a kérdés adott: Mi a baj a kóddal?
  1. // PIC24F16KA101 Configuration Bit Settings
  2.  
  3. // 'C' source line config statements
  4.  
  5. // FBS
  6.  
  7. // PIC24F16KA101 Configuration Bit Settings
  8.  
  9. // 'C' source line config statements
  10.  
  11. // FBS
  12. #pragma config BWRP = OFF               // Table Write Protect Boot (Boot segment may be written)
  13. #pragma config BSS = OFF                // Boot segment Protect (No boot program Flash segment)
  14.  
  15. // FGS
  16. #pragma config GWRP = OFF               // General Segment Code Flash Write Protection bit (General segment may be written)
  17. #pragma config GCP = OFF                // General Segment Code Flash Code Protection bit (No protection)
  18.  
  19. // FOSCSEL
  20. #pragma config FNOSC = FRCDIV           // Oscillator Select (8 MHz FRC oscillator with divide-by-N (FRCDIV))
  21. #pragma config IESO = ON                // Internal External Switch Over bit (Internal External Switchover mode enabled (Two-Speed Start-up enabled))
  22.  
  23. // FOSC
  24. #pragma config POSCMOD = NONE           // Primary Oscillator Configuration bits (Primary oscillator disabled)
  25. #pragma config OSCIOFNC = OFF           // CLKO Enable Configuration bit (CLKO output signal is active on the OSCO pin)
  26. #pragma config POSCFREQ = HS            // Primary Oscillator Frequency Range Configuration bits (Primary oscillator/external clock input frequency greater than 8 MHz)
  27. #pragma config SOSCSEL = SOSCHP         // SOSC Power Selection Configuration bits (Secondary oscillator configured for high-power operation)
  28. #pragma config FCKSM = CSDCMD           // Clock Switching and Monitor Selection (Both Clock Switching and Fail-safe Clock Monitor are disabled)
  29.  
  30. // FWDT
  31. #pragma config WDTPS = PS32768          // Watchdog Timer Postscale Select bits (1:32,768)
  32. #pragma config FWPSA = PR128            // WDT Prescaler (WDT prescaler ratio of 1:128)
  33. #pragma config WINDIS = OFF             // Windowed Watchdog Timer Disable bit (Standard WDT selected; windowed WDT disabled)
  34. #pragma config FWDTEN = ON              // Watchdog Timer Enable bit (WDT enabled)
  35.  
  36. // FPOR
  37. #pragma config BOREN = BOR3             // Brown-out Reset Enable bits (Brown-out Reset enabled in hardware; SBOREN bit disabled)
  38. #pragma config PWRTEN = ON              // Power-up Timer Enable bit (PWRT enabled)
  39. #pragma config I2C1SEL = PRI            // Alternate I2C1 Pin Mapping bit (Default location for SCL1/SDA1 pins)
  40. #pragma config BORV = V18               // Brown-out Reset Voltage bits (Brown-out Reset set to lowest voltage (1.8V))
  41. #pragma config MCLRE = ON               // MCLR Pin Enable bit (MCLR pin enabled; RA5 input pin disabled)
  42.  
  43. // FICD
  44. #pragma config ICS = PGx1               // ICD Pin Placement Select bits (PGC1/PGD1 are used for programming and debugging the device)
  45.  
  46. // FDS
  47. #pragma config DSWDTPS = DSWDTPSF       // Deep Sleep Watchdog Timer Postscale Select bits (1:2,147,483,648 (25.7 Days))
  48. #pragma config DSWDTOSC = LPRC          // DSWDT Reference Clock Select bit (DSWDT uses LPRC as reference clock)
  49. #pragma config RTCOSC = SOSC            // RTCC Reference Clock Select bit (RTCC uses SOSC as reference clock)
  50. #pragma config DSBOREN = ON             // Deep Sleep Zero-Power BOR Enable bit (Deep Sleep BOR enabled in Deep Sleep)
  51. #pragma config DSWDTEN = ON             // Deep Sleep Watchdog Timer Enable bit (DSWDT enabled)
  52.  
  53. // #pragma config statements should precede project file includes.
  54. // Use project enums instead of #define for ON and OFF.
  55.  
  56. #include <xc.h>
  57.  #include <libpic30.h>
  58.  
  59. #define FCY 8000000UL
  60.  
  61. #define _XTAL_FREQ 8000000
  62.  
  63. int main(void) {
  64.     while(1)
  65.     {
  66.         PORTA=0b11111111;
  67.         __delay_ms(1000);
  68.         PORTA=0b11111111;
  69.         __delay_ms(1000);
  70.     }
  71.     return 0;
  72. }

mplab.png
    
(#) Bakman válasza minicooper hozzászólására (») Jan 22, 2017 /
 
Nem ismerem a programnyelvet tüzetesen, de mintha az #include <delay_ms.h> hiányozna.
(#) Lamprologus válasza minicooper hozzászólására (») Jan 22, 2017 /
 
Ezt a PIC-et (PIC24F16KA101) ismeri a CCS-C, legalábbis a 5.053-as ...
Következő: »»   895 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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