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   345 / 1216
(#) pajti2 hozzászólása Dec 27, 2012 /
 
Ha valami cuccból csak VFBGA socketos van, azzal hogyan szokás elboldogulni veller pákával? Vannak valamerre olyan boardok, amikre eleve teszt socket van felforrasztva? Pld VFBGA 54-ball, 0,75 mm-es.

Én neten mindössze egy ilyesmit találtam:

http://www.patentgenius.com/patent/7695287.html#show-next-page

Nézzétek meg a 3D vonalas rajzot az oldal tetején. Ha éppen más nem akad, olyasmi "forrszemeket" - vagy minek nevezzem őket - látott már bárki, hogy kapható lenne valahol ?
(#) mrobi hozzászólása Dec 27, 2012 /
 
Sziasztok! Van olyan pic amivel egy ilyen feladatot meg lehetne oldani? Bővebben: Link.
(#) mps válasza mrobi hozzászólására (») Dec 28, 2012 /
 
Szia! Ha jól nézem a 12F1840 jó.
(#) glaci hozzászólása Dec 28, 2012 /
 
Szeretnék 18f4520 pic-kel csinálni egy megszakításon alapuló időzítőt ill. számlálót. C-ben többet is találtam, de én "pascal nyelven beszélek" és próbálom lefordítani de nem értem. Ha valaki le tudná kódolni micropascal-ra, az jó nagyon jó lenne. Pláne ha működik is.
  1. /*
  2. ** Timer0.c
  3. ** Timer test program for PIC18F4520
  4. **
  5. **
  6. */
  7.  
  8. //8 MHz clock and 1/16 prescaler
  9. //
  10.  
  11.  
  12. #include <p18f4520.h>
  13. #include <timers.h>
  14.  
  15. //function prototypes
  16. void init(void);
  17. void dly(unsigned int);
  18.  
  19.  
  20. // Defines
  21. #define LED         LATAbits.LATA0
  22. #define PB         PORTAbits.RA1
  23.  
  24. // Macros
  25. #define nop() _asm nop _endasm
  26.  
  27. void main(void)
  28. {
  29.    init();
  30.    while (1)
  31.    {
  32.       LED = 1;
  33.       dly(0xFFF0);         //516 ms delay
  34.       LED = 0;          
  35.       dly(60000);         //3.6 s delay
  36.       nop();        
  37.    }
  38. }
  39.  
  40.  
  41. void init(void)
  42. {
  43.    // run internal oscillator at 8 MHz
  44.    OSCCON = OSCCON | 0x70;
  45.    while (OSCCONbits.IOFS == 0) ;
  46.    PORTA = 0x00;
  47.    ADCON1 = 0x0F;      // set up PORTA to be digital I/Os
  48.    TRISA = 0x02;      // PORTA<7:2,0> outputs PORTA<1> input
  49.    OpenTimer0( TIMER_INT_OFF &
  50.                T0_16BIT &
  51.                T0_SOURCE_INT &
  52.                T0_PS_1_16 );
  53. }
  54.  
  55.  
  56.  
  57. void dly(unsigned int c)
  58. {
  59.    INTCONbits.TMR0IF = 0;
  60.    WriteTimer0(c);
  61.    while (INTCONbits.TMR0IF == 0)
  62.       ;
  63.  
  64.  
  65. }
(#) icserny válasza glaci hozzászólására (») Dec 28, 2012 /
 
Idézet:
„Szeretnék 18f4520 pic-kel csinálni egy megszakításon alapuló időzítőt ill. számlálót.”
Akkor felejtsd el a programot, amit belinkeltél, mivel az nem megszakításos!
Idézet:
„Ha valaki le tudná kódolni micropascal-ra”
Enyhén szólva egyelőre a feladat sem világos.
(#) glaci válasza icserny hozzászólására (») Dec 28, 2012 /
 
Szeretnék a programban, változókban elhelyezett értékeket, melyek idő értékeket reprezentálnak, összehasonlítani egy adott eseménytől eltelt idővel és ezen eltel idő után új eseményt generálni. Pl:újra hőmérsékletet mérni, ezt összehasonlítani az előző mérés eredményével és a kapott érték alapján ha szükséges, beavatkozni egy periférián keresztül, egy külső rendszerbe. És hogy ezen mérési idők között eltelt időben a program más teendőket lásson el, ezért szeretném megszakításból az időzítést megcsinálni.
(#) nem válasza Hp41C hozzászólására (») Dec 28, 2012 /
 
Köszönöm!
(#) nem válasza pajti2 hozzászólására (») Dec 28, 2012 /
 
Köszönöm! Hp41C az ellenkezőjét javasolta éppen De az lesz, hogy mintkét esetet kipróbálom és meglátjuk, mizu. Handsake-nek utána nézek, ha jól tudom, csak jumperelés kérdése, az meg már nem vész.
(#) pajti2 válasza nem hozzászólására (») Dec 28, 2012 /
 
Szerintem Hp41C nem az ellenkezőjét javasolta, hanem megemlítette, hogy ugyan menni fog úgy is, de ő spec egy trehányságnak tartja a dolgot. A handshake-hez nem jumperelés kell, hanem az, hogy bekösd és megfelelően kezeld a handshake jeleket is (DSR, DTR, RTS, CTS).
(#) pajti2 válasza glaci hozzászólására (») Dec 28, 2012 /
 
A pic-ekben vannak timerek, és lehet rájuk rakni megszakítás kiszolgálót. Fel kell rá programozni a timert, a megszakítás vezérlőt, engedélyezni a megszakítást, rutin végén jelezni a megszakítás vezérlőnek, hogy készen állsz az új megszakítás fogadására. Példakódokból is akad bőven pld az MC fórumain, google pajtás találatain, de az adott pic adatlapjain is. Pld:

http://www.microchip.com/forums/f41.aspx
http://www.microchip.com/forums/f19.aspx
http://www.microcontrollerboard.com/pic_interrupt.html
(#) glaci válasza pajti2 hozzászólására (») Dec 28, 2012 /
 
Köszi a linkeket ezeket is végignézem, hátha okosodok, bár már kétségeim tornyosulnak felettem
Már annyi lapot megnéztem, hogy már zúg a fejem.
az egyik lapon találtam egy 4520 pic-re írt alkalmazást de az is c-ben van. megpróbáltam pascalra adaptálni, de nem adja a kívánt eredményt. Ha megnéznéd, vagy ha mások is átsegítenének a nehezén, az jó lenne. a link Bővebben: Link
és ez az általam írt kód részlet mindent nem írtam be, csak a kritikus részletet
  1. .
  2. .
  3. .
  4.  
  5. var
  6. minta_utem:byte;
  7.  
  8. procedure pic_init;
  9. begin
  10. //8MHz kristály
  11. .
  12. .
  13. .
  14. .
  15.   T0CON.T0PS0:=1;
  16.   T0CON.T0PS1:=1;
  17.   T0CON.T0PS2:=1;         //1/256 előosztás
  18.   T0CON.T08BIT:=1;        //8bites mód
  19.   INTCON.TMR0IE :=1;      //engedélyezzük a megszakítás
  20.   INTCON.PEIE :=1;        //engedélyezzük perifériás megszakítást
  21.   INTCON.GIE :=1;          //engedélyezzók a globális megszakítást
  22.   T0CON.TMR0ON :=1;       //engedélyezzük a timer0-t
  23. .
  24. .
  25. .
  26. end;
  27.  
  28. procedure interrupt();
  29. begin
  30.   if INTCON.TMR0IF=1 then
  31.      begin
  32.         minta_utem := minta_utem + 1;
  33.         if minta_utem=30 then
  34.         begin
  35.            if portD=0 then portD.0:=1 else portD.0:=0;
  36.            minta_utem :=0;
  37.         end;
  38.         INTCON.TMR0IF:=0;
  39.      end;
  40.  
  41.  
  42. end;
  43.  
  44. begin
  45. pic_init;
  46. .
  47. .
  48. while (true) do
  49.    end
  50. .
  51. .
  52. .
  53.    
  54.    end;
  55. end.


ez azt lenne hivatot csinálni, hogy a d port 0 lábán levő ledet 1sec periódussal villogtatja, de nem csinál semmit.
A hozzászólás módosítva: Dec 28, 2012
(#) Hp41C válasza pajti2 hozzászólására (») Dec 28, 2012 / 1
 
Szia!
Idézet:
„Szerintem Hp41C nem az ellenkezőjét javasolta, hanem megemlítette, hogy ugyan menni fog úgy is, de ő spec egy trehányságnak tartja a dolgot.”

Gondosan végigolvasva az adatlapot, megtaláltam benne, hogy a töltéspumpa figyeli a V+ feszültséget, ha eléri az 5.5V -ot, " nem pumpál", ha 5.5V alá esik "újból pumpál"...
A V+ puffer kondenzátora az adatlap szeint köthető a 3.3V -ra is és a földre is.
A TI MAX3232, SN75C3232 adatlapjából:
Idézet:
„† C3 can be connected to VCC or GND.”

A MAxim MAX3222-MAX3241 adatlapjából:
Idézet:
„* C3 CAN BE RETURNED TO EITHER VCC OR GROUND.”

Valamint:
Dual Charge-Pump Voltage Converter
[quote]The MAX3222/MAX3232/MAX3237/MAX3241’s internal power supply consists of a regulated dual charge pump that provides output voltages of +5.5V (doubling charge pump) and -5.5V (inverting charge pump), regardless of the input voltage (VCC) over the 3.0V to 5.5V range. The charge pumps operate in a discontinuous mode; if the output voltages are less than 5.5V, the charge pumps are enabled, and if the output voltages exceed 5.5V, the charge pumps are disabled. Each charge pump requires a flying capacitor (C1, C2) and a reservoir capacitor (C3, C4) to generate the V+ and V- supplies. /quote]
(#) Kovabe hozzászólása Dec 28, 2012 /
 
Sziasztok egy kérdésem lenne: 16F690-ben ha belső osccilátorrol dolgozok akkor 4MHz alá is lehet állitani vagy csak 4?
(#) icserny válasza Kovabe hozzászólására (») Dec 28, 2012 /
 
Idézet:
„16F690-ben ha belső osccilátorrol dolgozok akkor 4MHz alá is lehet állitani?”
Az adatlap FIGURE 3-1. ábrája szerint igen, s az OSCCON regiszter RCF<2:0> bitjei választják ki a lehetséges frekvenciákat.
(#) Kovabe válasza icserny hozzászólására (») Dec 28, 2012 /
 
Köszönöm
Máskor inkább odafigyelek mert csak a szememet szurta ki, igaz angolhiányban szenvedek de igy ránézésre is megértem.
(#) cross51 hozzászólása Dec 28, 2012 /
 
Sziasztok!
Egy apró kérdésem lenne a PIC18F4550-essel kapcsolatban.
Annyi lenne ,hogy a VUSB lábra hány Voltot kell adni mer a datasheet-jében azt olvasom hogy beépített feszültségszabályzója van a PICCOLO projektnál meg ezt hagy 3,6 V nál nem lehet rá többet adni. Tehát mehet rá az 5 V az usbről vagy 3,3 voltos fesz szabi ?
Előre is köszi !
(#) potyo válasza cross51 hozzászólására (») Dec 29, 2012 /
 
Egyik sem kell. Bekapcsolod a belső feszültségstabilizátort a konfig biteknél, és a Vusb-GND közé meg kötsz egy 100-470nF kerámiakondenzátort és az elég is.
(#) cross51 válasza potyo hozzászólására (») Dec 29, 2012 /
 
Köszönöm
Bár mondjuk gondoltam mer néztem még utána és mindenhol egy 470n kondi volt földre kötve csak a pickit3 kapcsolásrajzán meg a VUSB 3,3 ra van húzva így nem tudtam eldönteni de köszi!
(#) pajti2 válasza glaci hozzászólására (») Dec 29, 2012 /
 
Első ránézésre nem tűnik rossznak. Biztos nem a fordító a gagyi? Ha csak sima for ciklusos késleltetést használsz interrupt helyett, akkor meg tudod villogtatni a ledet?
(#) cross51 válasza potyo hozzászólására (») Dec 29, 2012 /
 
És még annyit elfelejtettem megkérdezni, hogy kerámia kondi kell ugye, mert a piccolnoál elco volt írva 470n-1u-ig ?
(#) glaci válasza pajti2 hozzászólására (») Dec 29, 2012 /
 
Köszönöm, hogy ránéztél a kódra. Végül is, ez is megoldódott. A hiba az volt, hogy figyelmetlen voltam. Csak a portd.0 bitjét kellett volna vizsgálnom, mert a portd többi lábáról az lcd-t vezérli a főprogram, ezért nem lehetett villogtatni. Eredetileg is ezt akartam vizsgálni, csak elkapkodtam és csak később jöttem rá a hibára.
(#) Hp41C válasza cross51 hozzászólására (») Dec 29, 2012 /
 
Szia!
Tisztázzuk:
18F2550 / 4550: Két lehetőséged van a Vusb előállítására:
- Engedélyezed a belső 3.3V -os stabilizátort (CONFIG2L VREGEN bitje 1), ekkor a Vusb lábra 470nF, alacsony ESR -rel rendelkező, kerámia vagy tantál kondenzátort kell kötni (a föld felé).
- Külső feszültséget használsz: Ekkor egy stabil 3.3V -os feszültséget kell kötni a Vusb lábra, természetesen ezt a feszültséget is meg kell szűrni kondenzátorokkal, a belső stabilizátort le kell tiltani (CONFIG2L VREGEN bitje 0). Ez akkor lehet jó, ha a 18F2550 maga is 3.3V -os tápfeszültséget kap.

PICKit3 - 24FJ256GB106: Itt is a fenti két esetre van lehetőség (CW2 DISUVREG bitjének 0 értéke engedélyez). Figyelembe kell venni, hogy a 24FJ256GB106 tápfeszültsége maximum 3.6V lehet. (A Vusb kivezetés nem keverendő a Vbus kivezetéssel, ami az USB tápfeszültségének érzékelésére szolgál. Hogy a Vbus láb miért nem 5V toleráns ???).
(#) icserny válasza cross51 hozzászólására (») Dec 29, 2012 /
 
A CONFIG2L konfigurációs regiszter VREGEN bitje engedélyezi vagy tiltja a belső feszültségszabályozót. Ha engedélyezve van, akkor csak egy 470 nF körüli kondenzátor kell a VUSB kimenetre, s 3,3 V körüli feszültség mérhető rajta (ez az USB interész áramkör tápfeszültsége). Ha a VREGEN bit letiltja a belső feszültségszabályozót, akkor kívülről vezethető 3,3 V a VUSB lábra, de ez nem szokványos megoldás (mert minek rakjon az ember egy 3,3 V-os feszültségszabályozót egy olyan PIC mellé, amelyik csak 5 V-on képes 48 MHz-en ketyegni?)
(#) Hp41C válasza icserny hozzászólására (») Dec 29, 2012 /
 
Ha valaki nem igényli a full-speed -et, akkor 24MHz -cel egy 18LF2550 megbírkózik 3.3 .. 3.6V -on is és használható a low-speed USB. A kontroller tápja ekkor lehet azonos a Vusb -vel..
(#) Bell hozzászólása Dec 29, 2012 /
 
Sziasztok!
PIC18F2321 eepromjába szeretnék adatot elhelyezni assembly programozáskor, de sehol nem találom leírva hol kezdődik ennél a típusnál. Nulla nem jó, mert az a program memória.
  1. #define adat "ez meg az"
  2. DATAEE org 0x0000
  3. de adat
(#) Bell válasza Bell hozzászólására (») Dec 29, 2012 /
 
Megtaláltam az MPASM doksijában: 0xF00000. De miért nincs ez az adatlapokon...
A hozzászólás módosítva: Dec 29, 2012
(#) janimester hozzászólása Dec 29, 2012 /
 
Üdv. Nem tudna valaki adni nekem egy pices hőmérő kapcsolást. Megvan mindenem hozzá csak épp a tudás nem hogy megírjam a programot hozzá és a kapcsolását megtervezzem. Pic16f648-am és ds18b20-am van meg egy 16x2-es kijelzőm erre kellene valami egyszerű de nagyszerű kapcsi és asm vagy hex forrásfájl ha meglenne az asm is legalább át tudnám nézni a lényegét az egésznek
(#) kaqkk válasza janimester hozzászólására (») Dec 29, 2012 /
 
Van egy téma az oldalon : digitális hőmérő piccel ott nézz körül
(#) Bell válasza janimester hozzászólására (») Dec 29, 2012 /
 
A Google a Te barátod Bővebben: Link, azon belül is a második Bővebben: Link
A hozzászólás módosítva: Dec 29, 2012
(#) Balagemann2031 hozzászólása Dec 30, 2012 /
 
Sziasztok! Szeretnék csinálni egy encoderes hangerőszabályzót! Az encoder jeleit már fel tudom dolgozni, tehát tudom egy regiszter értékét növelni illetve csökkenteni. Arra gondoltam hogy PWM jellel vezérlek egy tranzisztort, ami pl egy fégfok bemenő jelét szabályozná. A kérdésem az lenne hogy ha PWM jellel szabályzok akkor kell egy pufferkondi, vagy tekercs vagy valami? (kb 40KHz es pwm jelre gondoltam, hogy az már megfelelő lehet) Köszi üdv!
Következő: »»   345 / 1216
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