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   1045 / 1210
(#) kissi válasza don_peter hozzászólására (») Szept 6, 2018 / 1
 
Van benne logikai analizátor is, ha jól emlékszem a View menüpont alatt, ahol kijelölés után láthatod a lábak állapotát !
(#) don_peter válasza kissi hozzászólására (») Szept 6, 2018 /
 
Köszi, megleltem.. Erről sem tudtam, jó sokat tanultam ebben a pár napban. Nah ezért szeretem ezt a hobbit.
(#) Hp41C válasza don_peter hozzászólására (») Szept 6, 2018 /
 
A következő lecke címe: stimulus
(#) don_peter válasza kissi hozzászólására (») Szept 6, 2018 /
 
Amúgy van valami rejtett dolog, hogy be tudjam állítani az analizátort, hogy lássam a PWM jelet? Mert az istenért nem tudom beállítani.
(#) Hp41C válasza don_peter hozzászólására (») Szept 6, 2018 / 1
 
16F684 TRISC.RC5 = 0 és az analizátor csatorna beállításánál ECCPA vagy RC5 hozzáadása a megjelenített csatornák közé.
(#) don_peter válasza Hp41C hozzászólására (») Szept 6, 2018 /
 
Köszi ezt én is megtaláltam, de csak 50%-os kitöltöttség mellett tud mérni a program?
Mert se alatta se felette nem mutat semmit.
(#) usane válasza don_peter hozzászólására (») Szept 6, 2018 /
 
Akartam is kérdezni, hogy mióta is használod

Nem watch ablakról beszélt, a logikai analizátorrol. Az is van benne.
(#) don_peter válasza usane hozzászólására (») Szept 6, 2018 /
 
Jah, érdekes is volt ímikor mondtátok, hogy van benne.
4éve használom.. Szegénységi bizonyítványom, tudom.
De így is van gond, hogy most már használom.
Mutatom mert nem értem.
Header:
  1. __CONFIG(FCMDIS & IESODIS & SBOREN & UNPROTECT & UNPROTECT & MCLRDIS & PWRTEN & WDTDIS & INTIO);
  2. #define _XTAL_FREQ 1000000

C kód:
  1. #include <htc.h>                       
  2. #include <pic16f684.h>         
  3. #include <stdio.h>                     
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include "header.h"                    
  7.  
  8. #define LED3    RC4                     // Piros
  9.  
  10. void init();
  11. void PWMDuty(unsigned short duty);
  12.  
  13. void main(void){
  14.  
  15.         init();
  16.  
  17.         PWMDuty(10);
  18.  
  19.         while (1){
  20.                
  21.                 //LED3 = !LED3;
  22.                 __delay_ms(500);
  23.         }//while
  24.        
  25. }//main
  26.  
  27. // ---------------------------- //
  28. //  Függvények                                    //
  29. // ---------------------------- //
  30. void init(){
  31.  
  32.         TRISC   = 0x00;                         // kimenet
  33.         TRISA   = 0x00;                         // A4 bemenet
  34.         ANSEL   = 0x00;                         // AN3 analog többi láb digitális
  35.         CMCON0  = 7;                            // Comparator kikapcsolva
  36.         PEIE    = 0;                            // Peripheral interrupt engedélyezése
  37.         GIE             = 0;                            // Globális interrupt engedélyezése
  38.         OSCCON  = 0b01000001;           // 1MHz-es belső órajel beállítva
  39.  
  40.         CCPR1L  = 0b01111100;           // 124
  41.         CCP1CON = 0b00110000;
  42.  
  43.         PR2     = 0b11111001;           // 249
  44.         T2CON   = 0b00000100;
  45.  
  46. }
  47.  
  48. // Kitőltés beállítása
  49. void PWMDuty(unsigned short duty){
  50.         float temp = 0;
  51.         unsigned short temp2 = 0;
  52.         temp    = 1023.0 / 100.0;
  53.         temp2   = (float)(temp*duty);
  54.         CCPR1L  = temp2>>2;             // Felső 8bit
  55.         if((temp2&0x02)==0x02){
  56.                 if((temp2&0x01)==0x01){
  57.                         CCP1CON |= 0x0C;
  58.                 }else{
  59.                         CCP1CON |= 0x08;
  60.                 }
  61.         }else{
  62.                 if((temp2&0x01)==0x01){
  63.                         CCP1CON |= 0x04;
  64.                 }
  65.         }
  66. }

Látható, hogy a programban 10% kiköltést adtam meg, de a PWM nem indul, szimulátorban nem mutat semmit. Miért van ez? Még mindig valamit nem jól állítok be?
Feltöltöm a hex-et is.

pwm.hex
    
(#) Hp41C válasza don_peter hozzászólására (») Szept 6, 2018 /
 
Tud, ld. mellékelt képek. Sőt még a timer2 postscaler is működik a PWM mellett. Két megszakítási rutinba való belépés között 10ms telik el. (1000000Hz / 4 / (249+1) / 10) = 100 Hz --- 10 ms
(#) usane hozzászólása Szept 6, 2018 /
 
Üdv!

Mit tudok kezdeni azzal, ha az I2CSTAT start bitje indításkor 1-re áll be?
Azonkívül, hogy apróra töröm?
A hozzászólás módosítva: Szept 6, 2018
(#) ktamas66 válasza usane hozzászólására (») Szept 7, 2018 /
 
Melyik PIC ez? Esetleg a 32MX errata 21. pont.
(#) usane válasza ktamas66 hozzászólására (») Szept 7, 2018 /
 
PIC32MX274F256D.
Ezzel akarom összedrótozni a PIC12F1840-et, de nem vagyok képes létrehozni egy működő kommunikációt egyik master-slave verzióban sem. Ha a 8 bites volt a master akkor részben működött, de bizonytalanul, most átraktam a 32-est masternak, mert az errataazt írta slave módban vannak gondok, de így meg abszolút nem megy.
Nem tudom én nézek-e be valamit, vagy tényleg ilyen gáz ennek a PIC-nek az I2C modulja, de elegem volt, átdrótozom UART-ra.
(#) ktamas66 válasza usane hozzászólására (») Szept 8, 2018 /
 
Szabványos kommunikációval is próbáltad?
(#) usane válasza ktamas66 hozzászólására (») Szept 8, 2018 /
 
Igen. Megírtam szabványosan. Lehet, hogy valamit benéztem, de most nincs időm kidderíteni.
Az UARTot összedobtam egy óra alatt.
Szerintem valamit nem jól kezel ez a PIC mert a az MCP79410-es RTCC sem tudom szekvenciálisan olvasni és írni csak regiszterenként. Persze még mindig lehet, hogy én értek félre valamit, de adatlap szerint csináltam.
(#) f2f2 hozzászólása Szept 9, 2018 /
 
Milyen 8 bites PIC vezérlőn lehet beállítani SCI nél hogy a kommunikáció 2 stopbittel küldjön illetve ha ez beérkezve adott, akkor csak ezt vegye érvényesen inputnak is.
Szóval hogy ő csinálja meg ezt eszerint ne én.
Soros 4800 8 e 2 t kellene elérnem olyan mcu ban amit én is tudnék programozni.
PIC18F46K22 re írtam pár programot és mintha ennél nem lehetett volna a stopbitet beállítani
és a 9. adatbitről nekem kell gondoskodnom azt vettem ki. Jó lenne, ha a parity 9.bitet ő magától kalkulálná.
A hozzászólás módosítva: Szept 9, 2018
(#) Hp41C válasza f2f2 hozzászólására (») Szept 10, 2018 /
 
Két stop bitet nem tud, de használható 9 bites adattal. 9 bites módban, ha az adat 9. bitjét 1 -re állítod, majd beírod a 8 bitet a TXREG -be, a másik oldalon levő vevő két stopbites formában tudja majd venni. Ha érkezik egy 2 stopbites adat, akkor ki kell olvasni a vett 9. bitet majd a 8 bites adatot az RCREG -ből. Ellenőrizni kell az esetleges átviteli hibákat és azt, hogy a 9. bit 1 -e. 8 bit + parity + 2 stopbit nem megy a beépített modullal.
A hozzászólás módosítva: Szept 10, 2018
(#) f2f2 válasza Hp41C hozzászólására (») Szept 10, 2018 /
 
Kössz
Tehát ez az egész PIC kollekcióra fennáll, hogy csak gatyázósan lehet ezt így megoldani?
Esetleg más könnyen programozható mcu nál van ilyen, amit szeretnék ?
Megnézem Motoroláknál, hogy van ez...
(#) sonajkniz válasza f2f2 hozzászólására (») Szept 11, 2018 /
 
Írd meg az adatátvitelt szoftveresen. Akkor azt küldessz amit akarsz.
(#) Hp41C válasza f2f2 hozzászólására (») Szept 11, 2018 /
 
Nem kell olyan messzire szaladni, a PIC24F, PIC32 -ek között is lehet találni olyat, ami képes a 8 bit + paritás + 2 stopbitre.
(#) pajti2 válasza sonajkniz hozzászólására (») Szept 12, 2018 /
 
4800-at szoftveresen futtatni 16 mipsen olyan kérdést is felvet, hogy mi mindennek kell még futnia mellette, és arról még semmit sem tudunk.
(#) f2f2 válasza Hp41C hozzászólására (») Szept 12, 2018 /
 
Okay köszönöm. Nekem a 24 32 félelmetes még, de megnézek párat.
(#) sonajkniz válasza pajti2 hozzászólására (») Szept 12, 2018 /
 
Ez igaz. De mivel a 8 bites PIC család hardveres kommunikációja egyszerre csak egy byteot tud kezelni, ezért vajmi kevés feladatot tud közben a PIC végezni. Jó programszervezéssel ez a probléma többnyire megugorható. Ámbár nem tudni, a kolléga milyen nyelven programozik. Ha nem assemblyben, akkor természetesen nem működőképes az ötletem.
(#) Hp41C válasza sonajkniz hozzászólására (») Szept 12, 2018 / 1
 
Egy 48MHz-s 18F2550 C18 -ban programozva simán megküzd egy USB-HID, egy 9600 Baud (8n1) soros kommunikációval, közben veszi a DCF77 jelet és dekódolja és a PWM kimenetén keresztül 200 bit/s sebességgel adatokat ad át. Nem lehetetlen az összetett feladat elvégzése sem. Még C -ben sem... Kipróbáltam, működik. Azért a fordító "körmére kellett néznem."
(#) attika válasza Hp41C hozzászólására (») Szept 12, 2018 /
 
Ez kísértetiesen hasonlít a Propeller Clock bázisára.
Vagy tévedek?
(#) benjami válasza pajti2 hozzászólására (») Szept 12, 2018 / 1
 
Egy példa, hogy mit ki nem lehet hozni egy 12Mips-es 8bites PIC-ből.
(#) lóri hozzászólása Szept 12, 2018 /
 
Sziasztok!
Valaki írta valamelyik topikban, hogy spi buszra i2c-s eszközt akasztott, vagy fordítva. Erről mit gondoltok? Lenne egy i2c-s rtc, amit spi-re fűznék. Vagy nézzek olyan pic-et, aminek van spi és i2c-je? Vagy szoftveresen oldjam meg az i2c-t? Lenne egy RFM69c és egy eadgm kijelző, amik spi-t használnak ( kijelző megy i2c-n is), az óra viszont i2c. Persze van spi-buszos óra is, de ahhoz kell külső kvarc, aztán lehet, hogy ez lesz, de ez 1600 Forintocska. Ti hogy csinálnátok?
(#) kissi válasza lóri hozzászólására (») Szept 12, 2018 / 1
 
Szia !
Az SPI és az I2C különböző dolog, ezért I2C-s eszközt nem tudsz SPI buszra tenni !
Használj olyan PIC-et, amiben 2 I2C/SPI modul van ( pl. PIC18F26K22), az egyiket erre, a másikat arra !
(#) usane válasza kissi hozzászólására (») Szept 12, 2018 /
 
SPI-n lehet, hogy megoldható a szoftveres IIC, de nagyon trükkös lenne. Nem kis feladat, és csak akkor, ha csak küldeni kell, olvansi nem. Bár ha kikapcsolja az SPI-t és úgy figyeli azt a lábat akkor még az is. Nagyon ki kellene számolni és időzíteni mindent. Értelme nincs, mert egy sima I/O lábon sokkal egyszerűbben leprogramozható.
Oldd meg szoftveresen, vagy ja még nincs nyák és belefér a keretbe inkább cserélj PIC-et.

Ja ezt nem neked akartam írni
A hozzászólás módosítva: Szept 12, 2018
(#) pajti2 válasza benjami hozzászólására (») Szept 12, 2018 /
 
Te kipróbáltad azt a cuccot? Tényleg működött? Nálam már régen nincsen olyan vga cucc, hogy megnézhetném a saját szememmel.
(#) usane válasza Hp41C hozzászólására (») Szept 12, 2018 /
 
Sajnis az XC8 nem ennyire frankó. Ott nem kicsit kell a fordító körmére nézni.
Következő: »»   1045 / 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