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   726 / 1210
(#) Pali79 válasza morzsa15 hozzászólására (») Nov 15, 2015 /
 
Az még nem olyan biztos. Próbáld meg, hogy a PK2 saját programjával, kézzel választod ki a típust és beállítod a Use Vpp First Program Entry opciót és próbáld meg törölni a PIC-et. Ha így sem megy akkor valószínűleg kuka.
(#) morzsa15 válasza Pali79 hozzászólására (») Nov 15, 2015 /
 
Sajnos úgy látszik kuka.
Idézet:
„No device detected.”
(#) Kapagerenda hozzászólása Nov 15, 2015 /
 
Üdv,
16F887 el próbálok vezérelni egyidejüleg két DC motrot. Van hogy fellépnek nemkívánatos furcsa jelenségek. Például mind a két motor elkezd forogni ha megnyomom a gombot, pedig a gombnyomás után le kéne állnia mindennek. A mikrokontroller után bevan építve tranzisztorokbol kialakított 2db H híd, mivel forgásirányt is szerettem volna változtatni a két motoron. A bekötésekkel biztos nincs gond, mert már volt, hogy jól működtek a motorok.
Talán kellene optocsatolokat használnom, és a H hídakat lecserélni gyárilag készitett integrált áramkörös H hidakra?
Itt a példaprogram aminél már jelentkezik az előbb felvázolt gond.

  1. oid main() {
  2.   ANSEL = 0;                      // All I/O pins are configured as digital
  3.   ANSELH = 0;
  4.  PORTB = 0;
  5.  TRISB = 0b11111111;
  6.  PORTD = 0b00000000;
  7.  TRISD = 0b00000000;
  8.  PORTC = 0b00000000;
  9.  TRISC = 0b00000000;
  10.  PORTA = 0b00000000;
  11.  TRISA = 0b00000000;
  12.  
  13.      PORTD = 0b00000000;
  14.  
  15.  while(1){
  16.      
  17.       if(PORTB.F0 == 1)  {            
  18.                 PORTD = 0b00001000;    }  // DC1 motor forog, DC2 motor nem forog
  19.       else   {
  20.       PORTD = 0b00000000;    } // DC2 motor nem forog, DC2 motor nem forog
  21.      
  22.       }
  23.       }
(#) pajti2 válasza Hp41C hozzászólására (») Nov 15, 2015 /
 
Ja hogy ez már az mz, nem az mx. Szemezek velük én is, mert az 512k ramra, meg a hs usbre nagyon csorog a nyálam, de arra már nem mla, hanem harmony támogatás van, és elég sok sirámot olvastam róla. Gondoltam, had pihenjen még egy évet. Ha te már gyűröd erősen, egy gyors átfogó vélemény érdekelne róla, csak dióhéjban.
(#) pajti2 válasza Kapagerenda hozzászólására (») Nov 15, 2015 /
 
Ugyan gőzöm sincs, miazaz .F0, de ebben a nyúlfarknyi semmiben nem nagyon tud hiba lenni, szóval a problémád biztosan elektronikai. Valami átégett dióda gyárt rövidzárat, vagy pár vezetéken megpörkölődött a szigetelés, és összeérnek, esetleg átégett egy tranzisztorod, ilyesmikre gyanakodnék a helyedben.
(#) Pali79 válasza Kapagerenda hozzászólására (») Nov 15, 2015 /
 
Meg kellene PIC nélkül próbálni....
(#) sonajkniz válasza Kapagerenda hozzászólására (») Nov 15, 2015 /
 
Idézet:
„Talán kellene optocsatolokat használnom, és a H hídakat lecserélni gyárilag készitett integrált áramkörös H hidakra?”

Korábban már ajánlottam egy IC-t erre a feladatra. A tranzisztoros H hidak hajlamosak zárlatra kapcsolni. Különösen PWM vezérlés esetén. Ráadásul a tápfeszből levesznek 1.2V-ot.
Nem mellékesen, mire a tranzisztoros hidadat ellátod optocsatolókkal, árban ugyan ott vagy, csak van egy feleslegesen bonyolult áramköröd.
A hozzászólás módosítva: Nov 15, 2015
(#) Droot válasza don_peter hozzászólására (») Nov 15, 2015 /
 
Kipróbáltam a dolgot és nem hajlandó működni...
Tehát: Az OSC1 OSC0 lábon egy 16MHz-es kvarc van, 22pf-os kondikkal a test felé. Az RC4 és a test között van 2db LED. 5V tápot kap.

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <pic.h>
  4. #include <xc.h>
  5. #include <string.h>
  6.  
  7. #pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
  8. #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
  9. #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  10. #pragma config CP = OFF         // FLASH Program Memory Code Protection bits (Code protection off)
  11. #pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
  12. #pragma config LVP = OFF        // Low Voltage In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
  13. #pragma config CPD = OFF        // Data EE Memory Code Protection (Code Protection off)
  14. #pragma config WRT = ALL        // FLASH Program Memory Write Enable (Unprotected program memory may be written to by EECON control)
  15.  
  16. void main() {
  17.     ADCON1 = 0x06;
  18.     TRISCbits.TRISC4 = 0;
  19.     PORTCbits.RC4 = 1;
  20.     while(1)
  21.     {
  22.         ;
  23.     }
  24. }


Lehet, hogy a konfig bitekkel van gond?
A chip tuti, hogy jó, mert ráraktam egy bootloadert és azzal tudok rs232-n programot rányomni.
(#) pajti2 válasza Droot hozzászólására (») Nov 15, 2015 /
 
A kvarcot le tudod csekkolni valami áramkörben, hogy az biztosan jó-e? Akár az is lehet halott.

Szerintem teszt oszcillátor gyanánt próbálj ki kvarc helyett egy rc tagot. Pic adatlapon van rá példa, hogyan kösd be, config biteket meg persze hozzá kell majd igazítani. Akármilyen low freki megfelel rc frekinek, akár 100 hz, tök8, a lényeg csak hogy lásd életre kelni.

Config biteket illetően melyikben vagy bizonytalan?
(#) Droot válasza pajti2 hozzászólására (») Nov 15, 2015 /
 
Több kvarccal kipróbáltam, 20, 14MHz-essel is, de a bootloaderrel ment a 16-ossal ugyan ezzel a bekötéssel, semmihez sem nyúltam, szerintem tuti a programommal van a gond.

A config bitekben egyikben sem vagyok biztos, lehet valamit benéztem, lehagytam.

Holnap vagy még ma kipróbálom az rc oszcillátort is.
(#) Kapagerenda hozzászólása Nov 15, 2015 /
 
Igen azt az IC-t fejben is tartottam, kösz az infót és holnap veszek is. Úgy értettem, hogy esetleg az L293D ic-t kiegészíteni még optocsatolókkal is, hogy biztos legyen a normál működés. Egyébként ha lekötöm a hidakat a mikrokontrolleről akkor a vezérlő a kivánt kimeneteket helyezi magas állapotba nem pedig össze-vissza. A hidak bekötésével nincs semmi gond, valószínű nem a legmegfelelőbb tranzisztorokat használom és ez zavarhatja a kontroller működését.
(#) Droot válasza pajti2 hozzászólására (») Nov 15, 2015 /
 
Megnéztem, az alábbi konfig bitekkel, a main függvény ugyan az:
  1. #pragma config FOSC = EXTRC     // Oscillator Selection bits (RC oscillator)
  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 CP = OFF         // FLASH Program Memory Code Protection bits (Code protection off)
  5. #pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
  6. #pragma config LVP = OFF        // Low Voltage In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
  7. #pragma config CPD = OFF        // Data EE Memory Code Protection (Code Protection off)
  8. #pragma config WRT = ALL        // FLASH Program Memory Write Enable (Unprotected program memory may be written to by EECON control)


A GND és az OSC1 között 22pF és 10K az OSC1 és a Vcc között, ez 400kHz körüli freki. Eredmény semmi.
(#) Droot válasza Droot hozzászólására (») Nov 15, 2015 /
 
Megvan a hiba! Csak egy felhúzó ellenállás kellett!
(#) sonajkniz válasza Kapagerenda hozzászólására (») Nov 16, 2015 /
 
Szia!
Az IC mellé nem kell optocsatoló, de egy 220 ohmos ellenállás nem árt közéjük. Viszont mindegyik kimenetre tegyél testhez képest egy 100n-os kondit, a motorokkal párhuzamosan pedig 220n-osat.
(#) Kapagerenda válasza sonajkniz hozzászólására (») Nov 16, 2015 /
 
Értem, kösz! Ezekre egyébként miért van szükség?
(#) sonajkniz válasza Kapagerenda hozzászólására (») Nov 16, 2015 / 1
 
Az ellenállások csak védelmi célból, higy védjék a PIC kimeneteit. Éppenséggel elhagyhatóak.
A motormeghajtó kimeneteire, ill. a motorra, a motor álltal keltett nagyfrekis zavarok megszűrésére kellenek a kondik. Ezeket a zavarjeleket, ha nem szűröd meg, komolyan zokon veheti a PIC.
(#) pajti2 válasza Droot hozzászólására (») Nov 16, 2015 /
 
Képes voltál elfelejteni az #mclr felhúzást?
(#) Droot válasza pajti2 hozzászólására (») Nov 16, 2015 /
 
Nem elfelejteni! Azt gondolni, hogy van benne gyárilag! De így tanul az ember.
Az AVR-ekben kivétel nélkül van.
(#) usane válasza Droot hozzászólására (») Nov 16, 2015 /
 
Idézet:
„Azt gondolni, hogy van benne gyárilag!
Az AVR-ekben kivétel nélkül van.”

Akartam valami frappáns hasonlatot ezzel kapcsolatban, de inkább csak annyit mondok lap tetején sárga mező, és adatlap. A 100nF-os kondi sem elfelejtendő.
(#) Hp41C válasza usane hozzászólására (») Nov 16, 2015 /
 
Majd én:
Egy évvel ezelőtt készítettem el a AVR tranzisztor teszteremet. Majdnem két hétig eltartott, amíg kiderült, hogy 1nF X7R kondenzátorral a Vref lábon az AtMega328 nem mér rendesen. Mérve a kapacitást 982pF volt. Végső elkeseredésemben egy 22pF NPO kondenzátort forrasztottam rá. Egyből mőködött rendesen. Egy AtMega8 mindvégig jól mért ugyanabban az áramkörben. Bővebben: Link
Ekkor vesződségem nem volt soha PIC -kel.
A hozzászólás módosítva: Nov 16, 2015
(#) Pali79 válasza Hp41C hozzászólására (») Nov 16, 2015 /
 
Mi a csoda?! Hogy hogy AVR?
(#) jdani hozzászólása Nov 17, 2015 /
 
Üdv. Egy 24C08as EEpromba kellene beleégetnem a mellékelt fájlt PICkit2 programmal.
Viszont a kiterjesztése nem HEX.
Át tudná valaki konvertálni?
(#) Pali79 válasza jdani hozzászólására (») Nov 17, 2015 /
 
Nem nagyon volt még dolgom ilyennel, de szerintem ezt nem tudod közvetlenül PK-tel beírni. Ez az IC I2C-n keresztül kommunikál, amit PIC-kel tudsz megvalósítani.
(#) jdani válasza Pali79 hozzászólására (») Nov 17, 2015 /
 
Magával a PICkit2vel is lehet írni EEPROMot, ki is lehet választani manuálisan a 24C szériát.
Ilyenrajz is van hozzá. Egy más programot (HEX) beleírtam, visszaolvastam, benne volt. Csak ez BIN...
(#) kissi válasza jdani hozzászólására (») Nov 17, 2015 /
 
Így van, próbáltam neked konvertálni, de nem volt rajta a programozó és úgy látom, így nem menti el más formátumban ! Ha jó, akkor este átkonvertálom !
(#) Pali79 válasza jdani hozzászólására (») Nov 17, 2015 /
 
No, megint tanultam valamit!
(#) Hp41C válasza jdani hozzászólására (») Nov 17, 2015 /
 
EEPromok esetén a PICkit2 be tudja olvasni a *.bin állományokat is. Egyszerűen válaszd ki a bin állományt a file / import menüponttal.
A hozzászólás módosítva: Nov 17, 2015
(#) jdani válasza kissi hozzászólására (») Nov 17, 2015 /
 
Már megoldottam, de azért kösz
(#) mark.budai hozzászólása Nov 17, 2015 /
 
Sziasztok!
Szeretném megint a segítségeteket kérni.
Van egy PIC16F1709-es projektem, amit szeretnék debuggolni. (MPLAB X v2.26, XC8) Sajnos amikor a kalapács alatt a Build for debugging main project-re kattintok, kiírja alulra, hogy
  1. Loading symbols from C:/Elektronika/PIC/MPLABXProjects/Project5.X/dist/default/debug/Project5.X.debug.elf...
  2. The program file could not be loaded: null

Ez, ha jól fordítom, azt jelenti, hogy valamit nem tud betölteni.
Ha csak simán a debug gomb alatti Launch debugger main projectre kattintok, akkor azt írja ki, hogy a cél eszköz nem kész a debuggolásra.
Mit tudok tenni vele? A vezérlő adatlapjában azt olvastam, hogy a config biteknél nem kell beállítani a debugot, mert azt automatán csinálja.
(#) usane válasza mark.budai hozzászólására (») Nov 18, 2015 /
 
Project properties - XC8 global options alatt nézd meg mi van beállítva output formatnak. Ha coff akkor állítsd át efl-re és próbáld úgy.
Következő: »»   726 / 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