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   1069 / 1203
(#) Peet19 válasza eSDi hozzászólására (») Jan 27, 2019 /
 
Oké, köszi.

glaci: köszi átolvasgatom.
(#) eSDi hozzászólása Feb 1, 2019 /
 
Sziasztok!

Mostanában szükségem lesz Bootloader-re. Használtátok már az MCC-ben lévő Bootloader Generator-t?
Az Application Reset Vector-t milyen címre kell beállítanom? Nem teljesen világos (pedig olvastam a manualt is), mert lefordítottam az alap 0x300-al, nem reklamált. De megnézve a program memóriát, ez a cím bőven a Bootloader-en belül van. Illetve a feltöltendő programban is kell majd módosítani a Reset és az Interrupt Vector-t, vagy azt intézi magának?
Egy-két újabb 16-os, 18-as PIC-re szeretném alkalmazni. A programmemória elég minden esetben, ezért gondoltam az MCC-s megoldásra.
(#) Gagyi hozzászólása Feb 3, 2019 /
 
Sziasztok!

Elnézést, ha túl triviálisat kérdezek, de talán megér egy kérdést:

Ha adott egy 5v-ról működő Pic mikrovezérlő, mellyel egy, vagy több 5v ról működő relét szeretnék működtetni. A kérdés az, hogy ti szoktatok-e külön tápot építeni a Pic és külön 5v-os tápot építeni a relék számára?
Attól félek, hogy ha közös 5v-os tápról hajtom a relét és a Pic-et, akkor a relék elengedésekor a Pic újraindulhat. Természetesen a reléhez van beépítve dióda.

Általában olyan kapcsolásokat láttam, ahol a relé +12V-ról, a Pic külön 5v-ról volt hajtva.

Köszönöm a segítségeteket!
(#) Bakman válasza Gagyi hozzászólására (») Feb 3, 2019 /
 
Mindenképpen ajánlott a külön tápegység, a félelmed nem alaptalan. A 12 V-os relék kevesebb árammal is beérik, mint az 5 V-os társaik. Megoldás lehet egy 12 V-os hálózati tápegység, valamint egy galvanikusan leválasztott 12 / 5 V-os DC-DC konverter. Természetesen a reléket optocsatolón keresztül hajtani.
(#) superuser válasza Bakman hozzászólására (») Feb 3, 2019 /
 
Azt gondolom, ha valaki tudja mit csinál; figyel a nyomvonal vezetésre, rak védő diódát, szűrő kondikat, elválasztja a tápot egy szűrő induktivitással, akkor elméleti szinten mehet minden 5V-ról.
Más kérdés, hogy érdemes-e...
Én is 12V tápegységet használnék, erről direktben mehetnek a relék, PIC részére kis áram esetén 5 vagy 3.3V LDO-t preferálnék, nagyobb áram esetén step-down konvertert.

ps.: reléket miért hajtanád optón keresztül? Egyszer nem raktam még optót reléhez. npn tranyó + dióda. Nem kevés plusz alkatrész az, ha van egy panelen mondjuk 8 reléd...
A hozzászólás módosítva: Feb 3, 2019
(#) Bakman válasza superuser hozzászólására (») Feb 3, 2019 /
 
Idézet:
„miért hajtanád optón keresztül”
A vezetett zavarok ellen. Igen, a GND-n is jöhet. Ez elinkább akkor érdekes, ha ADC-t is használsz a kontrollerben.
Idézet:
„Nem kevés plusz alkatrész az, ha van egy panelen mondjuk 8 reléd”
Biztos üzem vagy alkatrész spórolás?
(#) sonajkniz válasza Bakman hozzászólására (») Feb 3, 2019 /
 
A kérdés inkább az, mekkora relé?
Én a vezérléseimben pici 5V-os reléket használok. Ezekkel nincs gond. Ha nagyobb fogyasztót akarok használni akkor a kisrelével kapcsolatok egy nagyobb áramú relét vagy mágneskapcsolót.
Azzal természetesen egyetértek, hogy komolyabb relé kapcsolásához a legjobb a teljes galvanikus elválasztás.
(#) Bakman válasza sonajkniz hozzászólására (») Feb 3, 2019 /
 
Jó a kérdés, kabáthoz a gombot. Mágneskapcsolókhoz SSR, nagyobb relékhez FOD3182 és egy FET. Behatóbban nem méregettem de nekem itt-ott úgy tűnt, az érintkezők közötti esetleges íveket induktívan a relé tekercse is felfogja és továbbítja.
(#) don_peter hozzászólása Feb 3, 2019 /
 
Srácok szeretnék kérni egy kis segítséget.
Tanulgatom az Assembly nyelvet is és egy ilyen feltéttel szeretnék létrehozni:
  1. if(i%2==0) valami

Előre is köszi.
(#) Gagyi hozzászólása Feb 3, 2019 /
 
Sziasztok!

Erról a reléről lenne szó:

https://www.hestore.hu/prod_10036647.html
SRD 5Vdc SL c

3 db relét szeretnék meghajtani a Pic-kel. A Pic-re egy NPN tranyó ami kapcsolgatja a relét. A Pic tápja egy lm2576t-5.0 ic lesz. A kérdés csupán annyi, hogy a relék számára legyen-e egy másik táp ic. Ha 12v-os relét használok, akkor már csak 12V-os tápegységről mehet az elektronika. Ez a hátránya.
(#) superuser válasza Gagyi hozzászólására (») Feb 3, 2019 /
 
Mint láthatod megoszlanak a vélemények
Mérlegeld az alkalmazást, hogy van-e egy közel teljes test fóliád a nyák egyik oldalán, mennyire tudod biztosítani a megfelelő vezetékezést, esetleg a táp csillagpontos szétválasztását, stb.
(#) usane válasza Gagyi hozzászólására (») Feb 3, 2019 /
 
Ahogy előttem írták, alkalmazástól és relétől függ, de ha jól van elkészítve nem szabad neki újraindulni. Én még sosem terveztem dupla tápot relé miatt. Nálam a kapcsolandó feszültség szokta meghatározni a tápot. Igaz nem kapcsolgatok szivattyú meg ventilátor motorokat.
(#) kissi válasza don_peter hozzászólására (») Feb 3, 2019 /
 
Szia!
A feltételed azt jelenti, hogy páros az i, azaz
  1. BTFSC i,0
  2. GOTO PARATLAN__i__teendo
  3. PAROS_i_teendo: <-- ez lenne a valami
A hozzászólás módosítva: Feb 3, 2019
(#) pipi válasza Gagyi hozzászólására (») Feb 3, 2019 /
 
Hali!
Az lm2576 milyen tápról jár? Adj neki 12V-ot, és akkor lehet a 12V relé
(#) Tasznka válasza Gagyi hozzászólására (») Feb 3, 2019 /
 
A kontroller táp irányába dióda+kondi,így a relé nem ráncigálja a tápját.Ha a hidegítő kondik is megvannak,akkor nem lehet gond,max. ha analóg méréseket is szeretnél.
(#) don_peter válasza kissi hozzászólására (») Feb 3, 2019 /
 
Köszi, értelmezem a részletet.
(#) Gagyi válasza pipi hozzászólására (») Feb 3, 2019 /
 
Végülis úgy döntöttem, hogy megnézem van-e valamilyen régi adapterem. Találtam egy 6VA-es 12Voltos adaptert. Így a kérdés eldőlt. A pic egy lm2576-ról fog járni, míg az 5V-os relét 12v-osra cserélem és az adapterről táplálom. Így biztosan nem lehet gond.

Köszönöm a segítségeteket.
(#) Lamprologus válasza GFI hozzászólására (») Feb 4, 2019 /
 
Biztos a fő programot kezdi el fordítani?
Project - Source files listában a fő program legyen csak fekete, a többi szürke! ( jobb click Include..., excule... beállítás)


2. hiba:
Meg van az adva ... az i2c beállításainál:
#use I2C(MASTER, I2C1, FAST = 400000, STREAM = BME280_STREAM)
(#) usane válasza Lamprologus hozzászólására (») Feb 4, 2019 /
 
Idézet:
„STREAM = BME280_STREAM”
Ez a STREAM-nek ad értéket, ettől még a BME280_STREAM ismeretlen, szóval nincs megadva, és nem tudom, hogy a publikálónak hogy működhet így.
(#) Lamprologus válasza usane hozzászólására (») Feb 5, 2019 /
 
Az I2C beállításainál megadta, hogy ezentúl a portra a BME280_STREAM névvel fog hivatkozni, tehát innentől a fordító tudja, hogy a BME280_STREAM mit jelent. Ha hibát dob akkor az azért lehet mert nem azzal a fájlal kezdi a fordítást amibe az I2C port beállítása van.

Kipróbáltam, lefordítja hiba nélkül!
(#) usane válasza Lamprologus hozzászólására (») Feb 5, 2019 /
 
Ok. Nem vagyok otthon a CCS C-ben, de közben utánanéztem ennek a use-nak. Igazad van , de ez nekem furcsa. Ezért nem használok belső függvényeket. Jobb szeretem, ha tudom mi folyik a háttérben.
(#) Hujikolp hozzászólása Feb 5, 2019 /
 
Üdv!

EUSART2-t szeretném feléleszteni a PIC18F6722-ben. Ehhez vettem egy FT232RL-M panelt. Ha jól emlékszem, akkor a PIC RX-e megy a konverter TX-re, és a PIC TX-e, a konverter RX-re? GND-GND.
Továbbá, okozhat-e gondot, ha a PIC 3.6V-on megy és a konverteren a jumper 3.3V-on van? (eddig csak szemét jött )
A hozzászólás módosítva: Feb 5, 2019
(#) eSDi válasza Hujikolp hozzászólására (») Feb 5, 2019 /
 
Szerintem gondot nem okoz, hisz az FT tud 5V-ról is járni. A PIC-nek meg elég a 3.3V a magas szinthez. Ha szemét jön, akkor a Baud beállítások nem jók. Logikai analizátorral, vagy szkóppal nézz rá, ha van.
(#) Hp41C válasza Hujikolp hozzászólására (») Feb 5, 2019 /
 
PIC18F6722 vagy PIC18LF6722? Milyen frekvenciájú órajellel jár?
PIC18F6722 minimum 4.2V tápfeszültséggel üzemeltethető biztonságosan, a PIC18LF6722 3.6V -on max. 30MHz -cel.
(#) Hujikolp válasza Hp41C hozzászólására (») Feb 5, 2019 /
 
18F6722-es és eddig nem volt gond a működéssel ilyen feszültségen, az eddig írt programok mennek szépen (pl I2C). Akkor a bekötést jól csináltam? Mondjuk fordítva nem is jön adat Belső órajellel, 8Mhz-en ketyeg, baud 9600.
  1. BAUDCON2 = 0x00;
  2. RCSTA2 = 0x90;
  3. TXSTA2 = 0x26;
  4. SPBRG2 = 51;// Baud Rate = 9600;
  5. SPBRGH2 = 0x00;

Egy sima putch("A"); amit küldök, de ilyet kapok: (melléklet)
Tegyem ide a kódot is?
A hozzászólás módosítva: Feb 5, 2019
(#) Hujikolp válasza Hujikolp hozzászólására (») Feb 5, 2019 /
 
Oszcillátort átnéztem még egyszer, s mint kiderült, 1 Mhz-en futott. (nem lett beállítva a OSCCON, de mostmár 8MHz), de beállítás után most se kép, se hang az UART-on. A kód többi része továbbra is fut (I2C, TIMER0...)
főbb részek:
  1. OSCCON = 0b01110000;
  2. void EUSART_Initialize(void)
  3. {
  4.     BAUDCON2 = 0x00;
  5.     RCSTA2 = 0x90;
  6.     TXSTA2 = 0x24;
  7.     SPBRG2 = 51;
  8.     SPBRGH2 = 0x00;
  9. }
  10.  
  11. void EUSART_Write(uint8_t txData)
  12. {
  13.     while(0 == PIR3bits.TX2IF);
  14.     TXREG2 = txData;    // Write the data byte to the USART.
  15. }
  16.  
  17. void putch(char txData)
  18. {
  19.     EUSART_Write(txData);
  20. }


ezt a kódot a timer0 hívja meg:
  1. void interrupt high_isr(void)
  2. { //Check if it is TMR0 Overflow ISR
  3.         if(TMR0IE && TMR0IF)
  4.         {
  5.                 //TMR0 Overflow ISR
  6.                 counter++;      //Increment Over Flow Counter
  7.  
  8.                 if(counter==40)
  9.                 {
  10.             counter=0//Reset Counter
  11.                        
  12.                         if(worker==1){  //Toggle (LED)
  13.                                 worker=2;
  14.                 putch("A");
  15.                PCA9685_set_PWM_duty(PCA9685_11,  12, 00, 10); // fehér
  16.                         }
  17.             else {
  18.                                 worker=1;
  19.                 putch("A");
  20.                 PCA9685_set_PWM_duty(PCA9685_11,  12, 00, 00); // fehér
  21.             }
  22.                 }
  23.                
  24.                 //Clear Flag
  25.                 TMR0IF=0;
  26.         }
  27.    
  28. }
A hozzászólás módosítva: Feb 5, 2019
(#) superuser válasza Hujikolp hozzászólására (») Feb 6, 2019 /
 
- Hibakereséshez írjad a bájtokat közvetlenül a TXREG-be
  1. TXREG2='A'; DlyMs(2);
pl. a programod főágából, ezzel kizárhatod az interrupt kezeléssel összefüggő hibákat.

- Ha a processzoron van egy másodpercenként villanó LED, legközelebb nem fogod nagyságrendekkel félreállítani az oszcillátort.
(#) Hujikolp válasza superuser hozzászólására (») Feb 6, 2019 /
 
Köszönöm a segítséget mindenkinek! Sikerült megoldani, a probléma az volt, hogy én dupla idézőjellel adtam meg a karaktert (" "), de ez hibás az én esetemben, mert aposztróffal kell megadni: (' '). Mindig tanul az ember!
Így már jó High speed és Low speed esetén is, 8 bit vagy 16 bit Baud Rate Generator-ral. 9600-on működik szépen most már!
(#) superuser válasza Hujikolp hozzászólására (») Feb 6, 2019 /
 
Átsiklottam felette én is
Mondjuk az furcsa, hogy azt írtad "se kép se hang az UART-on", mert ilyenkor két dolog szokott történni:
1) kapsz egy figyelmeztetést a fordítótól, hogy string-et írtál a char helyére
2) ha ennek ellenére lefordítod a kódot, kiküld valamit az UART, legfeljebb nem pont azt amit szerettél volna...
A hozzászólás módosítva: Feb 6, 2019
(#) Hujikolp válasza superuser hozzászólására (») Feb 6, 2019 /
 
Előtte valóban volt "se kép, se hang", de azt sikerült orvosolnom, hogy az oszcillátor frekvenciáját jól állítottam be. Illetve, valamikor csinál olyat, hogy felprogramozom, de nem futtatja azt a kódot, ilyenkor táp ki-be és helyrejön. Alternatíva, hogy az egyik LED-et ilyenkor kikapcsolom, másikat be, s látom, hogy valóban módosult-e a program.
1) valóban dob rá egyet, most kipróbáltam: main.c:2695: warning: (358) illegal conversion of pointer to integer Valahogy nem vettem észre.
2) bit szinten 10000000 00000000 amit küldött, ami csak zaj kb.
Ami érdekes, hogy a kódot másoltam máshonnan, és ott idézőjellel volt, így gyanakszok, hogy ott "megette" a fordító.
A hozzászólás módosítva: Feb 6, 2019
Következő: »»   1069 / 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